From e1ba31afda9805925c8857f5928e7952fbd47798 Mon Sep 17 00:00:00 2001 From: lt Date: Wed, 29 Apr 2026 09:32:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=88=E6=9C=AC1.0.4=20-=20=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E5=89=8D=E5=87=86=E5=A4=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复system.py缩进错误 - 优化前端页面样式(待重构) - 改进API接口结构 - 完善文档和自动化脚本 - 平台基本功能稳定运行 --- README-xhs-promoter.md | 14 +- README.md | 2 +- README_NEW.md | 6 +- YUZHIRAN_PLATFORM.md | 2 +- automation/fill_wechat_via_xdotool.sh | 2 +- automation/publish_to_wechat_mp.sh | 2 +- automation/publish_to_zhihu.sh | 2 +- data/yzr.db | Bin 90112 -> 98304 bytes frontend_optimization_notes.md | 2 +- platform/MOBILE_OPTIMIZATION_REPORT.md | 2 +- platform/PORTFOLIO.md | 2 +- platform/backend/api/auth.py | 24 +- platform/backend/api/publishing.py | 4 +- platform/backend/api/system.py | 1 + platform/backend/api/topics.py | 6 +- platform/backend/app/api/articles.py | 2 +- platform/backend/app/api/auth.py | 21 +- platform/backend/app/api/system.py | 8 +- platform/backend/app/api/topics.py | 11 +- platform/backend/app/core/nvidia_client.py | 55 +- .../backend/app/core/nvidia_client.py.bak | 118 + platform/backend/app/core/publisher.py | 49 + platform/backend/app/database.py | 29 +- platform/backend/app/main.py | 2 +- platform/backend/core/security.py | 48 +- platform/backend/data/yzr.db | Bin 49152 -> 49152 bytes platform/backend/main.py | 46 +- platform/backend/models/__init__.py | 5 +- platform/backend/static/Dockerfile | 37 + platform/backend/static/debug-vue.js | 7 + platform/backend/static/debug.html | 194 + platform/backend/static/diagnostic.html | 269 + platform/backend/static/element-plus.css | 1 + platform/backend/static/element-plus.full.js | 59570 ++++++++++++++++ .../backend/static/element-plus/index.css | 1 + .../static/element-plus/index.full.min.js | 78 + platform/backend/static/final-diagnostic.html | 410 + platform/backend/static/final-solution.html | 452 + platform/backend/static/icon-192.png | Bin 0 -> 67 bytes platform/backend/static/icon-192.svg | 4 + platform/backend/static/icon-512.png | Bin 0 -> 67 bytes platform/backend/static/icon-512.svg | 4 + platform/backend/static/independent-test.html | 451 + platform/backend/static/index.html | 585 + platform/backend/static/index.html.bak | 170 + platform/backend/static/login.html | 350 + platform/backend/static/logs.html | 124 + platform/backend/static/manifest.json | 36 + platform/backend/static/nginx.conf | 128 + platform/backend/static/offline.html | 57 + platform/backend/static/package.json | 13 + .../backend/static/render-diagnostic.html | 315 + platform/backend/static/script-content.js | 476 + platform/backend/static/setup-fix.js | 398 + platform/backend/static/simple-vue-test.html | 96 + .../backend/static/static/element-plus.css | 1 + .../static/static/element-plus.full.js | 59570 ++++++++++++++++ .../static/static/element-plus/index.css | 1 + .../static/element-plus/index.full.min.js | 78 + platform/backend/static/static/icon-192.png | Bin 0 -> 67 bytes platform/backend/static/static/icon-192.svg | 4 + platform/backend/static/static/icon-512.png | Bin 0 -> 67 bytes platform/backend/static/static/icon-512.svg | 4 + .../backend/static/static/vue.global.prod.js | 13 + .../static/static/vue.global.prod.js.bak | 13 + .../backend/static/static/vue/vue.global.js | 18619 +++++ platform/backend/static/sw.js | 116 + platform/backend/static/temp.css | 0 platform/backend/static/test.html | 90 + platform/backend/static/topics.html | 306 + platform/backend/static/topics.html.bak | 415 + .../backend/static/topics.html.bak-1777375526 | 430 + platform/backend/static/topics.html.bak-1936 | 430 + platform/backend/static/topics.html.bak-1937 | 0 platform/backend/static/topics.html.bak2 | 446 + platform/backend/static/topics_vue3.html | 430 + platform/backend/static/users.html | 170 + platform/backend/static/vue-test.html | 61 + platform/backend/static/vue.global.prod.js | 13 + .../backend/static/vue.global.prod.js.bak | 13 + platform/backend/static/vue/vue.global.js | 18619 +++++ platform/backend/test_auth.py | 19 + platform/frontend/index.html | 651 +- platform/frontend/login.html | 351 +- platform/frontend/topics.html | 40 +- scripts/compliance_optimizer.py | 2 +- scripts/creator.py | 2 +- scripts/image_generator.py | 2 +- scripts/publisher.py | 2 +- scripts/wecom_notifier.py | 6 +- start-platform.sh | 9 +- tests/test_full_pipeline.py | 2 +- tests/test_pipeline.sh | 2 +- tests/test_publisher.sh | 2 +- tests/test_runner.sh | 2 +- tests/test_xhs_publish.sh | 2 +- 96 files changed, 165251 insertions(+), 376 deletions(-) create mode 100644 platform/backend/app/core/nvidia_client.py.bak create mode 100644 platform/backend/app/core/publisher.py create mode 100644 platform/backend/static/Dockerfile create mode 100644 platform/backend/static/debug-vue.js create mode 100644 platform/backend/static/debug.html create mode 100644 platform/backend/static/diagnostic.html create mode 100644 platform/backend/static/element-plus.css create mode 100644 platform/backend/static/element-plus.full.js create mode 100644 platform/backend/static/element-plus/index.css create mode 100644 platform/backend/static/element-plus/index.full.min.js create mode 100644 platform/backend/static/final-diagnostic.html create mode 100644 platform/backend/static/final-solution.html create mode 100644 platform/backend/static/icon-192.png create mode 100644 platform/backend/static/icon-192.svg create mode 100644 platform/backend/static/icon-512.png create mode 100644 platform/backend/static/icon-512.svg create mode 100644 platform/backend/static/independent-test.html create mode 100644 platform/backend/static/index.html create mode 100644 platform/backend/static/index.html.bak create mode 100644 platform/backend/static/login.html create mode 100644 platform/backend/static/logs.html create mode 100644 platform/backend/static/manifest.json create mode 100644 platform/backend/static/nginx.conf create mode 100644 platform/backend/static/offline.html create mode 100644 platform/backend/static/package.json create mode 100644 platform/backend/static/render-diagnostic.html create mode 100644 platform/backend/static/script-content.js create mode 100644 platform/backend/static/setup-fix.js create mode 100644 platform/backend/static/simple-vue-test.html create mode 100644 platform/backend/static/static/element-plus.css create mode 100644 platform/backend/static/static/element-plus.full.js create mode 100644 platform/backend/static/static/element-plus/index.css create mode 100644 platform/backend/static/static/element-plus/index.full.min.js create mode 100644 platform/backend/static/static/icon-192.png create mode 100644 platform/backend/static/static/icon-192.svg create mode 100644 platform/backend/static/static/icon-512.png create mode 100644 platform/backend/static/static/icon-512.svg create mode 100644 platform/backend/static/static/vue.global.prod.js create mode 100644 platform/backend/static/static/vue.global.prod.js.bak create mode 100644 platform/backend/static/static/vue/vue.global.js create mode 100644 platform/backend/static/sw.js create mode 100644 platform/backend/static/temp.css create mode 100644 platform/backend/static/test.html create mode 100644 platform/backend/static/topics.html create mode 100644 platform/backend/static/topics.html.bak create mode 100644 platform/backend/static/topics.html.bak-1777375526 create mode 100644 platform/backend/static/topics.html.bak-1936 create mode 100644 platform/backend/static/topics.html.bak-1937 create mode 100644 platform/backend/static/topics.html.bak2 create mode 100644 platform/backend/static/topics_vue3.html create mode 100644 platform/backend/static/users.html create mode 100644 platform/backend/static/vue-test.html create mode 100644 platform/backend/static/vue.global.prod.js create mode 100644 platform/backend/static/vue.global.prod.js.bak create mode 100644 platform/backend/static/vue/vue.global.js create mode 100644 platform/backend/test_auth.py diff --git a/README-xhs-promoter.md b/README-xhs-promoter.md index d7bee80..8ea5bac 100644 --- a/README-xhs-promoter.md +++ b/README-xhs-promoter.md @@ -1,4 +1,4 @@ -# 小红书自动化推广系统(yzr-yxl会话隔离版) +# 小红书自动化推广系统(宇之然项目组件) ## 📋 项目概览 @@ -7,7 +7,7 @@ ## 🗂️ 目录结构 ``` -/root/.openclaw/workspaces/yzr-yxl/ +/root/openclaw-workspace/projects/yu-zhi-ran/ ├── sessions/promoter/ # 🔒 会话隔离存储 │ ├── cookies/ # 登录状态 │ ├── screenshots/ # 操作截图 @@ -62,22 +62,22 @@ ### 1. 查看当前状态 ```bash -/root/.openclaw/workspaces/yzr-yxl/scripts/xhs-publish-advanced.sh status +/root/openclaw-workspace/projects/yu-zhi-ran/scripts/xhs-publish-advanced.sh status ``` ### 2. 查看帮助 ```bash -/root/.openclaw/workspaces/yzr-yxl/scripts/xhs-publish-advanced.sh help +/root/openclaw-workspace/projects/yu-zhi-ran/scripts/xhs-publish-advanced.sh help ``` ### 3. 创建示例内容 ```bash -/root/.openclaw/workspaces/yzr-yxl/scripts/xhs-publish-advanced.sh sample +/root/openclaw-workspace/projects/yu-zhi-ran/scripts/xhs-publish-advanced.sh sample ``` ### 4. 查看示例内容 ```bash -cat /root/.openclaw/workspaces/yzr-yxl/content/posts/sample-post.json +cat /root/openclaw-workspace/projects/yu-zhi-ran/content/posts/sample-post.json ``` ## 🔐 登录步骤(关键) @@ -91,7 +91,7 @@ cat /root/.openclaw/workspaces/yzr-yxl/content/posts/sample-post.json 3. 导出为 JSON 格式 4. 保存到服务器的隔离路径: ``` - /root/.openclaw/workspaces/yzr-yxl/sessions/promoter/cookies/xhs-session.json + /root/openclaw-workspace/projects/yu-zhi-ran/sessions/promoter/cookies/xhs-session.json ``` ### 方式二:手动复制Cookie diff --git a/README.md b/README.md index 0889613..1582716 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ ### 1. 环境准备 ```bash -cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/platform +cd /root/openclaw-workspace/projects/yu-zhi-ran/platform # 创建虚拟环境(推荐) backend/venv/bin/python -m venv backend/venv # 若不存在 diff --git a/README_NEW.md b/README_NEW.md index 6faf3d6..f1e7922 100644 --- a/README_NEW.md +++ b/README_NEW.md @@ -41,7 +41,7 @@ yu-zhi-ran/ ### 1️⃣ 启动管理平台(推荐) ```bash -cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran +cd /root/openclaw-workspace/projects/yu-zhi-ran ./start-platform.sh 8001 ``` @@ -52,7 +52,7 @@ cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran ### 2️⃣ 测试自动化流水线 ```bash -cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran +cd /root/openclaw-workspace/projects/yu-zhi-ran python test_full_pipeline.py --topic-id A01 ``` @@ -161,7 +161,7 @@ sources: ### 环境变量(platform/.env,可选) ```bash -PROJECT_ROOT=/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran +PROJECT_ROOT=/root/openclaw-workspace/projects/yu-zhi-ran LOG_LEVEL=INFO ``` diff --git a/YUZHIRAN_PLATFORM.md b/YUZHIRAN_PLATFORM.md index ea8c8b8..7e728c1 100644 --- a/YUZHIRAN_PLATFORM.md +++ b/YUZHIRAN_PLATFORM.md @@ -80,7 +80,7 @@ automation/scripts → ../scripts/ ### 方式一:直接运行自动化流水线(CLI) ```bash -cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran +cd /root/openclaw-workspace/projects/yu-zhi-ran # 手动执行各步骤 python scripts/collector.py # 采集选题 diff --git a/automation/fill_wechat_via_xdotool.sh b/automation/fill_wechat_via_xdotool.sh index d37ecd8..6477140 100755 --- a/automation/fill_wechat_via_xdotool.sh +++ b/automation/fill_wechat_via_xdotool.sh @@ -4,7 +4,7 @@ set -e -PROJECT_ROOT="/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran" +PROJECT_ROOT="/root/openclaw-workspace/projects/yu-zhi-ran" MARKDOWN_FILE="$PROJECT_ROOT/content/drafts/001-wechat.md" COVER_IMG="$PROJECT_ROOT/content/publishing/images/05-封面图.png" diff --git a/automation/publish_to_wechat_mp.sh b/automation/publish_to_wechat_mp.sh index d1e8675..0f70d3b 100755 --- a/automation/publish_to_wechat_mp.sh +++ b/automation/publish_to_wechat_mp.sh @@ -5,7 +5,7 @@ set -e -PROJECT_ROOT="/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran" +PROJECT_ROOT="/root/openclaw-workspace/projects/yu-zhi-ran" SESSION_STATE="/root/openclaw-workspace/projects/yu-zhi-ran/automation/wechat_state.json" if [ $# -ne 2 ]; then diff --git a/automation/publish_to_zhihu.sh b/automation/publish_to_zhihu.sh index 4ad9748..dda940b 100644 --- a/automation/publish_to_zhihu.sh +++ b/automation/publish_to_zhihu.sh @@ -7,7 +7,7 @@ set -e # 配置 -PROJECT_ROOT="/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran" +PROJECT_ROOT="/root/openclaw-workspace/projects/yu-zhi-ran" SESSION_STATE="/root/.openclaw/sessions/zhihu-state.json" ZHIHU_CREATOR_URL="https://www.zhihu.com/creator" diff --git a/data/yzr.db b/data/yzr.db index 4f887c905db97ad809c906e1c730c96ae0fc75d8..76abe957b51b37dc8e63ac4a847a7e88bbc85d4a 100644 GIT binary patch delta 3387 zcmb`JTTEMZ9LLXpEtigSeh1v3=-6NwHnU{q+i~4TkH) zrfJ)_U-Bu+;8^$Mz~LcpY-=|oDIF1L!Jw9eO!`@aE+XsQ@DLx8CS%y+!pq4_7CwW>=${jEf<|f`&C3)?iq`Fu!5-hWQMu zGt6t4$FSN5U*|S1))-c8Sk>A^YHKg3%V#+di|15mpWa% zx_ES{)y1t#jV{%?ROzDWqAvenBQkj^4pD~xp1;n2%YVTy@t61l7>8lF1;3_?1k$a* z3j72&;RalTZ{R8{!)4mzMR*?;;Vt^moq<>36z%gkeeC+78xGQkE=qfR7kji|j~49F zf<0QWN6W)KTChh8_Glq3h-O3+B7_Jc8W9bM0K$)`NB9tR2rt5es71KVCaZ{)$T$J6kuBAlo%rw8^sUl*G=KH3_rpnS(5A zqF_^83SGxZrkTZM6!PA^ClAYAJueK7WKI)&=fv{ll+)qtPEOhT?Dpi8LlOn*lG;}; zt2R+lY)+NlA7{(x%;4~FSEb#S{=`W2_{a;4`#Y!{W%ZKH1j0Yt%eGk;!H(?4?=U+ADXruBih@NoY&J#K1ZN`f7*fQ9f5R!XU)qa6=OUyc^&9UOa|F$t`f4_tB59JGsNQ6X zK;KF=QMJ*OU4A@k1Wj~xX?aYpwW5&mJ+yh<|LKgoByN&+$%Wga?4;YHBJ^lwnT@nO zO<(X#6unKNy-VF}R1uw(f?Fz{uqH0a@Oxn&m!!W5S~*jyDW1+bNIu`L;_D|Vv__jl omFzAhH4}T}L5U*;4XYC9POgfwkcxM#J$DQAa~IDH2aOZ{1K+ql_y7O^ delta 233 zcmZo@U~4$QIzgJXfPsNQY@&iaW5LFRV0lxY$~?0YuhP6+<7{ugf;98g&@8VcJ^ez@ zLN5>fTqAw+OwR&ugCG~n^h$r9ij)+`yd)>@%`fC-E^smO{|1`HAjbcDvtYq{el7-4 zaV{X=f_KtXcE)Hv{yzR%{v7^5eg}Si-bY*4FwW!NxS)k``y^h*A|_@FzD?8F1sDrA z3kq2AP5xldvVEHzqaPzs{Ni+W1;%tP{?q*Z{H^@e{I`HgBKfvo)MGSe6tduZ$-sY} h{}lgG{@wiB_&4$kPM0%aOxi4{P{_Car5&TVA^^>QMN { 如需回滚到旧版本: ```bash -cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/platform/frontend +cd /root/openclaw-workspace/projects/yu-zhi-ran/platform/frontend cp index.html.backup-optimize-* index.html ``` diff --git a/platform/MOBILE_OPTIMIZATION_REPORT.md b/platform/MOBILE_OPTIMIZATION_REPORT.md index d8c418e..61bc7f1 100644 --- a/platform/MOBILE_OPTIMIZATION_REPORT.md +++ b/platform/MOBILE_OPTIMIZATION_REPORT.md @@ -307,7 +307,7 @@ Lighthouse (Chrome DevTools): ### 开发环境运行 ```bash -cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/platform +cd /root/openclaw-workspace/projects/yu-zhi-ran/platform ./run.sh 8001 ``` diff --git a/platform/PORTFOLIO.md b/platform/PORTFOLIO.md index bd4cb0e..a354a75 100644 --- a/platform/PORTFOLIO.md +++ b/platform/PORTFOLIO.md @@ -63,7 +63,7 @@ frontend/ ```bash # 1. 进入 platform 目录 -cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran/platform +cd /root/openclaw-workspace/projects/yu-zhi-ran/platform # 2. (首次)创建数据目录 mkdir -p data logs diff --git a/platform/backend/api/auth.py b/platform/backend/api/auth.py index b95f9ed..a9e2188 100644 --- a/platform/backend/api/auth.py +++ b/platform/backend/api/auth.py @@ -8,7 +8,7 @@ import secrets from core.security import ( verify_password, get_password_hash, create_access_token, - create_audit_log + create_audit_log, get_current_user ) from app.database import get_db from app.models import User @@ -46,6 +46,7 @@ async def login( db=db, user_id=0, # 未知用户 action="login_failed", + username=login_data.username, resource_type="user", resource_id=None, details=f"用户名: {login_data.username}", @@ -73,7 +74,8 @@ async def login( db=db, user_id=user.id, action="login", - resource_type="user", + username=user.username, + resource_type="user", resource_id=user.id, details=f"登录成功", ip_address=request.client.host, @@ -94,13 +96,18 @@ async def login( @router.get("/me") async def read_users_me( - current_user=Depends(lambda: None), # 占位符,实际由依赖注入 - db: Session = Depends(get_db) + current_user: User = Depends(get_current_user) ): """获取当前用户信息""" - # 这里应该使用JWT验证中间件获取current_user - # 简化实现... - raise HTTPException(status_code=501, detail="功能待实现") + return { + "user": { + "id": current_user.id, + "username": current_user.username, + "role": current_user.role, + "created_at": current_user.created_at.isoformat() if current_user.created_at else None, + "updated_at": current_user.updated_at.isoformat() if current_user.updated_at else None + } + } @router.post("/register") async def register( @@ -133,7 +140,8 @@ async def register( db=db, user_id=new_user.id, action="create_user", - resource_type="user", + username=new_user.username, + resource_type="user", resource_id=new_user.id, details=f"角色: {user_data.role}" ) diff --git a/platform/backend/api/publishing.py b/platform/backend/api/publishing.py index 15bb86b..072b265 100644 --- a/platform/backend/api/publishing.py +++ b/platform/backend/api/publishing.py @@ -13,7 +13,7 @@ from app.models import Topic, User router = APIRouter() class PublishRequest(BaseModel): - topic_id: int + topic_id: str @router.post("/create") async def create_publication( @@ -52,7 +52,7 @@ async def create_publication( # 更新选题状态和发布时间 topic.published_at = datetime.utcnow() - topic.published_urls = urls + topic.platform_urls = urls topic.status = "已发布" topic.updated_at = datetime.utcnow() diff --git a/platform/backend/api/system.py b/platform/backend/api/system.py index 7443fee..390b9ba 100644 --- a/platform/backend/api/system.py +++ b/platform/backend/api/system.py @@ -4,6 +4,7 @@ from sqlalchemy import func from datetime import datetime, date from fastapi import APIRouter, Depends from sqlalchemy.orm import Session +from app.models import Topic import os from app.database import get_db diff --git a/platform/backend/api/topics.py b/platform/backend/api/topics.py index 6a403c6..c331482 100644 --- a/platform/backend/api/topics.py +++ b/platform/backend/api/topics.py @@ -56,7 +56,7 @@ async def get_topics( "updated_at": topic.updated_at.isoformat() if topic.updated_at else None, "generated_at": topic.generated_at.isoformat() if topic.generated_at else None, "published_at": topic.published_at.isoformat() if topic.published_at else None, - "published_urls": topic.published_urls + "platform_urls": topic.platform_urls }) return result @@ -140,7 +140,7 @@ async def update_topic( @router.delete("/{topic_id}") async def delete_topic( - topic_id: int, + topic_id: str, current_user: User = Depends(get_current_admin_user), db: Session = Depends(get_db) ): @@ -185,5 +185,5 @@ async def get_topic( "updated_at": topic.updated_at.isoformat() if topic.updated_at else None, "generated_at": topic.generated_at.isoformat() if topic.generated_at else None, "published_at": topic.published_at.isoformat() if topic.published_at else None, - "published_urls": topic.published_urls + "platform_urls": topic.platform_urls } \ No newline at end of file diff --git a/platform/backend/app/api/articles.py b/platform/backend/app/api/articles.py index 5a1e3d1..2678f3d 100644 --- a/platform/backend/app/api/articles.py +++ b/platform/backend/app/api/articles.py @@ -5,7 +5,7 @@ from datetime import datetime, date router = APIRouter(prefix="/api/articles", tags=["articles"]) -PROJECT_ROOT = Path('/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran') +PROJECT_ROOT = Path('/root/openclaw-workspace/projects/yu-zhi-ran') @router.get("/drafts") def list_drafts(publish_date: str = None): diff --git a/platform/backend/app/api/auth.py b/platform/backend/app/api/auth.py index cda77ae..c6630d6 100644 --- a/platform/backend/app/api/auth.py +++ b/platform/backend/app/api/auth.py @@ -138,17 +138,7 @@ def login(login_data: LoginRequest, request: Request, db: Session = Depends(get_ ) return TokenResponse(token=token, role=user.role, user=UserResponse.from_orm(user)) -@router.get("/me") -def get_current_user(request: Request, db: Session = Depends(get_db)): - """获取当前登录用户信息""" - auth_header = request.headers.get("Authorization") - if not auth_header or not auth_header.startswith("Bearer "): - raise HTTPException(status_code=401, detail="未提供认证令牌") - token = auth_header.split(" ")[1] - user = verify_token(token, db) - return {"user": UserResponse.from_orm(user)} - -def get_current_user(request: Request, db: Session = Depends(get_db)): +def get_current_user(request: Request, db: Session = Depends(get_db)) -> User: """依赖项:验证用户登录""" auth_header = request.headers.get("Authorization") if not auth_header or not auth_header.startswith("Bearer "): @@ -156,3 +146,12 @@ def get_current_user(request: Request, db: Session = Depends(get_db)): token = auth_header.split(" ")[1] user = verify_token(token, db) return user +@router.get("/me") +def get_me( + request: Request, + db: Session = Depends(get_db), + current_user: User = Depends(get_current_user) +): + """获取当前登录用户信息""" + return {"user": UserResponse.from_orm(current_user)} + diff --git a/platform/backend/app/api/system.py b/platform/backend/app/api/system.py index 607e010..7d28cf5 100644 --- a/platform/backend/app/api/system.py +++ b/platform/backend/app/api/system.py @@ -31,10 +31,10 @@ def get_status(db: Session = Depends(get_db)): # 确保返回所有状态 status_map = { - '待处理': by_status.get('pending', 0), - '待审查': by_status.get('review', 0), - '待发布': by_status.get('ready', 0), - '已发布': by_status.get('published', 0) + 'pending': by_status.get('pending', 0), + 'review': by_status.get('review', 0), + 'ready': by_status.get('ready', 0), + 'published': by_status.get('published', 0) } # 计算今日新增 diff --git a/platform/backend/app/api/topics.py b/platform/backend/app/api/topics.py index e607852..3984989 100644 --- a/platform/backend/app/api/topics.py +++ b/platform/backend/app/api/topics.py @@ -183,8 +183,15 @@ def generate_packages(topic_id: str): 手动触发单个选题的发布包生成。 相当于执行 publisher.py 针对单个选题。 """ - # TODO: 实际调用 publisher.py 逻辑,这里先返回模拟响应 - return {"message": "Package generation triggered", "topic_id": topic_id, "status": "pending"} + from ..core.publisher import run_publisher + result = run_publisher(topic_id) + if not result["ok"]: + raise HTTPException(status_code=500, detail=result["error"]) + return { + "message": f"Package generation completed for topic {topic_id}", + "topic_id": topic_id, + "output": result.get("result", "") + } @router.delete("/{topic_id}") def delete_topic(topic_id: str, db: Session = Depends(get_db)): diff --git a/platform/backend/app/core/nvidia_client.py b/platform/backend/app/core/nvidia_client.py index 5a08259..a0ef48c 100644 --- a/platform/backend/app/core/nvidia_client.py +++ b/platform/backend/app/core/nvidia_client.py @@ -1,11 +1,11 @@ """ -NVIDIA 专用 LLM 客户端(fixed configuration) -使用 OpenAI 兼容接口调用 stepfun-ai/step-3.5-flash +NVIDIA 专用 LLM 客户端(优化配置) +支持 Google Gemma 和其他 NVIDIA 模型 """ import requests import json -from typing import Optional +from typing import Optional, Dict, Any class LLMError(Exception): pass @@ -13,36 +13,61 @@ class LLMError(Exception): # 固定配置(你的可用 key) CONFIG = { "base_url": "https://integrate.api.nvidia.com/v1", - "api_key": "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", - "model": "stepfun-ai/step-3.5-flash", + "api_key": "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", } def call_llm( prompt: str, + model: str = "google/gemma-3n-e4b-it", system_prompt: str = "你是一个专业的内容创作助手。", - temperature: float = 0.7, - max_tokens: int = 2000, + temperature: float = 0.20, + max_tokens: int = 512, + top_p: float = 0.70, + frequency_penalty: float = 0.00, + presence_penalty: float = 0.00, stream: bool = False, + additional_params: Optional[Dict[str, Any]] = None, ) -> str: """ 调用 NVIDIA LLM 生成文本 + + 参数: + prompt: 用户提示词 + model: 模型名称,默认 google/gemma-3n-e4b-it + system_prompt: 系统提示词 + temperature: 温度参数 (0.0-2.0),默认 0.20 + max_tokens: 最大生成 token 数,默认 512 + top_p: 核采样参数 (0.0-1.0),默认 0.70 + frequency_penalty: 频率惩罚 (0.0-2.0),默认 0.00 + presence_penalty: 存在惩罚 (0.0-2.0),默认 0.00 + stream: 是否流式输出,默认 False + additional_params: 额外参数(如 reasoning_effort) """ endpoint = f"{CONFIG['base_url'].rstrip('/')}/chat/completions" headers = { "Authorization": f"Bearer {CONFIG['api_key']}", "Content-Type": "application/json" } + + # 基础参数 payload = { - "model": CONFIG["model"], + "model": model, "messages": [ {"role": "system", "content": system_prompt}, {"role": "user", "content": prompt} ], "temperature": temperature, "max_tokens": max_tokens, + "top_p": top_p, + "frequency_penalty": frequency_penalty, + "presence_penalty": presence_penalty, "stream": stream, } - + + # 添加额外参数(如 reasoning_effort) + if additional_params: + payload.update(additional_params) + try: resp = requests.post(endpoint, json=payload, headers=headers, timeout=120, stream=stream) if resp.status_code != 200: @@ -103,7 +128,15 @@ def expand_content_with_llm(topic: dict, section_title: str, section_content: st prompt = f"# 参考资料\n{context}\n\n{prompt}" try: - result = call_llm(prompt, temperature=0.8, max_tokens=2000) + result = call_llm( + prompt, + model="google/gemma-3n-e4b-it", + temperature=0.20, + max_tokens=2000, + top_p=0.70, + frequency_penalty=0.00, + presence_penalty=0.00 + ) return result.strip() except Exception as e: return f"## {section_title}\n\n(LLM 调用失败:{e},请手动补充)" @@ -111,7 +144,7 @@ def expand_content_with_llm(topic: dict, section_title: str, section_content: st # 测试 if __name__ == "__main__": try: - print(f"[nvidia_client] 使用模型: {CONFIG['model']}") + print(f"[nvidia_client] 使用模型: google/gemma-3n-e4b-it") resp = call_llm("你好,请用一句话介绍你自己。", max_tokens=50) print(f"[nvidia_client] 响应: {resp}") except Exception as e: diff --git a/platform/backend/app/core/nvidia_client.py.bak b/platform/backend/app/core/nvidia_client.py.bak new file mode 100644 index 0000000..5a08259 --- /dev/null +++ b/platform/backend/app/core/nvidia_client.py.bak @@ -0,0 +1,118 @@ +""" +NVIDIA 专用 LLM 客户端(fixed configuration) +使用 OpenAI 兼容接口调用 stepfun-ai/step-3.5-flash +""" + +import requests +import json +from typing import Optional + +class LLMError(Exception): + pass + +# 固定配置(你的可用 key) +CONFIG = { + "base_url": "https://integrate.api.nvidia.com/v1", + "api_key": "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", + "model": "stepfun-ai/step-3.5-flash", +} + +def call_llm( + prompt: str, + system_prompt: str = "你是一个专业的内容创作助手。", + temperature: float = 0.7, + max_tokens: int = 2000, + stream: bool = False, +) -> str: + """ + 调用 NVIDIA LLM 生成文本 + """ + endpoint = f"{CONFIG['base_url'].rstrip('/')}/chat/completions" + headers = { + "Authorization": f"Bearer {CONFIG['api_key']}", + "Content-Type": "application/json" + } + payload = { + "model": CONFIG["model"], + "messages": [ + {"role": "system", "content": system_prompt}, + {"role": "user", "content": prompt} + ], + "temperature": temperature, + "max_tokens": max_tokens, + "stream": stream, + } + + try: + resp = requests.post(endpoint, json=payload, headers=headers, timeout=120, stream=stream) + if resp.status_code != 200: + raise LLMError(f"HTTP {resp.status_code}: {resp.text[:200]}") + if stream: + full = [] + for line in resp.iter_lines(): + if not line: + continue + if line.startswith(b'data: '): + data = line[6:] + if data == b'[DONE]': + break + try: + chunk = json.loads(data) + delta = chunk['choices'][0]['delta'] + # 支持 reasoning_content 或 reasoning 字段 + if 'reasoning_content' in delta and delta['reasoning_content']: + full.append(delta['reasoning_content']) + if 'content' in delta and delta['content']: + full.append(delta['content']) + except Exception: + continue + return "".join(full) + else: + data = resp.json() + msg = data["choices"][0]["message"] + content = msg.get('content') or msg.get('reasoning') or msg.get('reasoning_content') + return content.strip() if content else '' + except requests.RequestException as e: + raise LLMError(f"Request failed: {e}") + +def expand_content_with_llm(topic: dict, section_title: str, section_content: str, context: str = "") -> str: + """扩写大纲章节,返回包含 ## 标题的完整 Markdown""" + prompt = f"""你是一个专业的内容创作者。请将以下大纲扩展为完整的文章章节。 + +# 选题信息 +- 标题:{topic.get('title')} +- 领域:{topic.get('field')} +- 核心观点:{topic.get('core_concept', '')} +- 受众痛点:{topic.get('audience_pain', '')} +- 独特视角:{topic.get('unique_angle', '')} + +# 当前章节 +## {section_title} +{section_content} + +# 要求 +- 以 `## {section_title}` 作为章节标题开头 +- 字数:300-500字 +- 风格:客观、专业、易懂 +- 使用 Markdown 格式 +- 包含具体数据或案例(如果有) +- 保持与整体文章调性一致 + +直接输出完整的 Markdown 章节(包括 ## 标题和正文段落)。""" + if context: + prompt = f"# 参考资料\n{context}\n\n{prompt}" + + try: + result = call_llm(prompt, temperature=0.8, max_tokens=2000) + return result.strip() + except Exception as e: + return f"## {section_title}\n\n(LLM 调用失败:{e},请手动补充)" + +# 测试 +if __name__ == "__main__": + try: + print(f"[nvidia_client] 使用模型: {CONFIG['model']}") + resp = call_llm("你好,请用一句话介绍你自己。", max_tokens=50) + print(f"[nvidia_client] 响应: {resp}") + except Exception as e: + print(f"[nvidia_client] 错误: {e}") diff --git a/platform/backend/app/core/publisher.py b/platform/backend/app/core/publisher.py new file mode 100644 index 0000000..a71a1ff --- /dev/null +++ b/platform/backend/app/core/publisher.py @@ -0,0 +1,49 @@ +from pathlib import Path +import subprocess +import sys + +PROJECT_ROOT = Path(__file__).resolve().parents[4] + +def run_publisher(topic_id: str = None): + """运行发布包生成脚本 + + Args: + topic_id: 可选,指定单个选题ID + + Returns: + dict: 包含 ok, result/error, topic_id 等字段 + """ + try: + script_path = PROJECT_ROOT / "scripts" / "publisher.py" + if not script_path.exists(): + return {"ok": False, "error": f"Publisher script not found: {script_path}"} + + cmd = [sys.executable, str(script_path)] + if topic_id: + cmd.extend(["--topic-id", topic_id]) + + result = subprocess.run( + cmd, + capture_output=True, + text=True, + cwd=PROJECT_ROOT, + timeout=300 # 5分钟超时 + ) + + if result.returncode == 0: + return { + "ok": True, + "result": result.stdout, + "topic_id": topic_id + } + else: + return { + "ok": False, + "error": result.stderr, + "result": result.stdout, + "topic_id": topic_id + } + except subprocess.TimeoutExpired: + return {"ok": False, "error": "Publisher timed out after 5 minutes", "topic_id": topic_id} + except Exception as e: + return {"ok": False, "error": str(e), "topic_id": topic_id} diff --git a/platform/backend/app/database.py b/platform/backend/app/database.py index 7494a8b..8f98b10 100644 --- a/platform/backend/app/database.py +++ b/platform/backend/app/database.py @@ -5,15 +5,30 @@ import os from pathlib import Path # 计算项目根目录(backend/app/database.py -> yu-zhi-ran) -# __file__: platform/backend/app/database.py -# parents[0]=app, [1]=backend, [2]=platform, [3]=yu-zhi-ran PROJECT_ROOT = Path(__file__).resolve().parent.parent.parent.parent -DATA_DIR = os.getenv('DATA_DIR', str(PROJECT_ROOT / 'data')) -os.makedirs(DATA_DIR, exist_ok=True) -DB_PATH = os.path.join(DATA_DIR, 'yzr.db') -SQLALCHEMY_DATABASE_URL = f"sqlite:///{DB_PATH}" -engine = create_engine(SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False}) +# 数据库配置:通过环境变量控制 +USE_POSTGRES = os.getenv('USE_POSTGRES', 'false').lower() == 'true' + +if USE_POSTGRES: + # PostgreSQL 生产数据库 + POSTGRES_CONFIG = { + 'host': os.getenv('PG_HOST', '127.0.0.1'), + 'port': os.getenv('PG_PORT', '5432'), + 'database': os.getenv('PG_DATABASE', 'yzr_nr'), + 'user': os.getenv('PG_USER', 'yzr_nr'), + 'password': os.getenv('PG_PASSWORD', 'aTX3WKKnPfRnM5PC') + } + SQLALCHEMY_DATABASE_URL = f"postgresql://{POSTGRES_CONFIG['user']}:{POSTGRES_CONFIG['password']}@{POSTGRES_CONFIG['host']}:{POSTGRES_CONFIG['port']}/{POSTGRES_CONFIG['database']}" + engine = create_engine(SQLALCHEMY_DATABASE_URL, pool_pre_ping=True) +else: + # SQLite 开发数据库 + DATA_DIR = os.getenv('DATA_DIR', str(PROJECT_ROOT / 'data')) + os.makedirs(DATA_DIR, exist_ok=True) + DB_PATH = os.path.join(DATA_DIR, 'yzr.db') + SQLALCHEMY_DATABASE_URL = f"sqlite:///{DB_PATH}" + engine = create_engine(SQLALCHEMY_DATABASE_URL, connect_args={"check_same_thread": False}) + SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine) Base = declarative_base() diff --git a/platform/backend/app/main.py b/platform/backend/app/main.py index 43edc05..90a5b34 100644 --- a/platform/backend/app/main.py +++ b/platform/backend/app/main.py @@ -39,7 +39,7 @@ app.include_router(admin.router) app.include_router(audit.router) # 挂载前端 -FRONTEND_DIR = Path(__file__).parent.parent.parent / "frontend" +FRONTEND_DIR = Path(__file__).parent.parent / "static" if FRONTEND_DIR.exists() and (FRONTEND_DIR / "index.html").exists(): app.mount("/", StaticFiles(directory=str(FRONTEND_DIR), html=True), name="frontend") logger.info(f"Frontend mounted at / from {FRONTEND_DIR}") diff --git a/platform/backend/core/security.py b/platform/backend/core/security.py index 85850a6..335b451 100644 --- a/platform/backend/core/security.py +++ b/platform/backend/core/security.py @@ -3,7 +3,6 @@ from datetime import datetime, timedelta from typing import Optional from jose import JWTError, jwt -from passlib.context import CryptContext from fastapi.security import OAuth2PasswordBearer from fastapi import Depends, HTTPException, status from sqlalchemy.orm import Session @@ -11,8 +10,7 @@ from sqlalchemy.orm import Session from app.models import User from app.database import get_db -# 密码加密 -pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") +import bcrypt # JWT配置 SECRET_KEY = "your-secret-key-here" # 生产环境应从环境变量读取 @@ -21,13 +19,27 @@ ACCESS_TOKEN_EXPIRE_MINUTES = 10080 # 7天 oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/api/auth/login") + def verify_password(plain_password: str, hashed_password: str) -> bool: - """验证密码""" - return pwd_context.verify(plain_password, hashed_password) + """验证密码(使用 bcrypt 直接比较)""" + try: + # 确保输入为字节 + if isinstance(plain_password, str): + plain_password = plain_password.encode('utf-8') + if isinstance(hashed_password, str): + hashed_password = hashed_password.encode('utf-8') + return bcrypt.checkpw(plain_password, hashed_password) + except Exception: + return False + def get_password_hash(password: str) -> str: - """生成密码哈希""" - return pwd_context.hash(password) + """生成密码哈希(使用 bcrypt)""" + if isinstance(password, str): + password = password.encode('utf-8') + hashed = bcrypt.hashpw(password, bcrypt.gensalt()) + return hashed.decode('utf-8') + def create_access_token(data: dict, expires_delta: Optional[timedelta] = None): """创建JWT token""" @@ -40,6 +52,7 @@ def create_access_token(data: dict, expires_delta: Optional[timedelta] = None): encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM) return encoded_jwt + async def get_current_user( token: str = Depends(oauth2_scheme), db: Session = Depends(get_db) @@ -57,17 +70,19 @@ async def get_current_user( raise credentials_exception except JWTError: raise credentials_exception - + user = db.query(User).filter(User.username == username).first() if user is None: raise credentials_exception return user + async def get_current_active_user(current_user: User = Depends(get_current_user)): """获取活跃用户(简单检查)""" # 这里可以添加更多活跃性检查逻辑 return current_user + async def get_current_admin_user(current_user: User = Depends(get_current_user)): """获取管理员用户""" if current_user.role != "admin": @@ -77,10 +92,12 @@ async def get_current_admin_user(current_user: User = Depends(get_current_user)) ) return current_user + def create_audit_log( db: Session, user_id: int, action: str, + username: str = "", resource_type: str = "", resource_id: int = None, details: str = "", @@ -88,9 +105,20 @@ def create_audit_log( user_agent: str = "" ): """创建审计日志""" - from ..models import AuditLog + from app.models import AuditLog, User + + # 如果未提供 username,尝试从 user_id 查询 + if not username: + if user_id and user_id != 0: + user = db.query(User).filter(User.id == user_id).first() + if user: + username = user.username + if not username: + username = "unknown" + audit_log = AuditLog( user_id=user_id, + username=username, action=action, resource_type=resource_type, resource_id=resource_id, @@ -99,4 +127,4 @@ def create_audit_log( user_agent=user_agent ) db.add(audit_log) - db.commit() \ No newline at end of file + db.commit() diff --git a/platform/backend/data/yzr.db b/platform/backend/data/yzr.db index a0a3a5cca93d50c776aceb1c4a4466f7f9de0e51..62e2ca18a65c2b53d3d09e96fcc20878dfa6a99a 100644 GIT binary patch delta 1058 zcmZ9LT~E_s6vx|jW9v#8U6~!hjTl+j#)UQ}PQ=BKni%hVi(=Fuuuhl`A(M=`%FZ=>>t70(TEz!joZ+!YtvzGhc`M;d!JcR;PC{XilWc9&b ziL92dz3OjvIas$-bwESb>bJOvV`cb5a#M{B0-q713X=hzC&{*oe{h7fkIAF4kyFbNMU=9}XwXU?PDf?^uL@axx+TIiN%_`7-gfPR`#{ECf+;Cx2P2Ri~v|agKen zXi-G_P821Y2A?*!o+{PHv}%8Ehq+KAqU@2Vav%>ZRzEy3ZN%bgI33gidl`YBh)4>5 z8M-kzl%6nxvzlqE6UkAC>N%s!LB>SMYAlOu1!&#am4pb^Tgie^PgZAhm^|S?qz7qs zra;2v$J{eBxtR|&69h{T1m&n%*-b`q)XMPP;huJSy?k1XC>PPpF_ zUYZGWrv(j_ly2zM8$OzOvl~64wd~lVWk;%kH0;BPev}GEQdT$TLQOk~8mK|1?Fuzm zX`DY#p+y$cO#+`qH)l`kD;ih(jl*&E_=2AcvdBX~aRM1&u*c}alo=aX#1GTq7Wf&W!A1@jf*}EK9?=J;CC^pNrYR4H>Sg-+yH9st+>YBaFMXlY@X5`F?rb3Ex9*cfd9vIk<(VuI(HnH_K KSfStjcKrj58%^y1 delta 1074 zcmZY8&rcIU6bJC#F3>L9rRQ!QEeOAC5MnS|6pNaIvMh^BqHU0s)HcIDmh%AEdV z?2fVC+hhFcmW8vW9t4d6MXTwA0Rj(PdTWKPJ$pr+DZ!EsC=j^cKg6?7@ z1a7Pn$v8oe`uYn|*y!t*Mg6u-s@0AK6`(t{5RotXm$%Bwfi`3L>b{&9`DH6vrEIIY z^6TGhqTXoV%%O#1P(uoB(e&2B_1>`Y?`FNw;Ka}#3~Bq5z!P|IaM%j{FW<&97{iI4tGT$NP5o1!P@hF0?VTgEZw-L zKMD$wpAxfHxtNqIc#5JJ#|FiJ;WWoa7FHbMu+!r~u|QBe4JXa(v)}t(SbWNuPP>dV zBlW@wDUTJc3H;_cACJ5)#)m|`ZhJmG?pqs!-6Ye`bgEE>jm1&fna@y|;W?UQBt?=RmzMeW!LJ17rH_TN& znJ8N2-ANhgE}<&_L_-=6r67==A19;Mo^w-PQE#cl(}lostsw!;M1G!nW|d#3z2eX< z7nWQg1mURp?%hv|4zx7m-Mk+*L-9*oj?HA@IVJw5DN^jWXy+GVe6RjdAyBn uc#02i+^0grX7c$_D}2A;MS2awhve}OO9BUb2;EpH+Q-rxImcywyZ!?zq@JVz diff --git a/platform/backend/main.py b/platform/backend/main.py index f6e103b..b3106bb 100644 --- a/platform/backend/main.py +++ b/platform/backend/main.py @@ -1,13 +1,13 @@ -# 宇之然内容创作平台 - 主应用入口 - import sys import os sys.path.insert(0, os.path.dirname(__file__)) from fastapi import FastAPI, Request from fastapi.middleware.cors import CORSMiddleware +from fastapi.responses import FileResponse from contextlib import asynccontextmanager import uvicorn +from starlette.staticfiles import StaticFiles from app.database import init_db from core.security import SECRET_KEY @@ -16,14 +16,10 @@ from api import auth, topics, system, publishing, articles, logs, admin @asynccontextmanager async def lifespan(app: FastAPI): """应用生命周期管理""" - # 启动时初始化数据库 print("正在初始化数据库...") init_db() print("数据库初始化完成") - yield - - # 关闭时清理资源 print("应用关闭") app = FastAPI( @@ -33,16 +29,16 @@ app = FastAPI( lifespan=lifespan ) -# CORS配置(允许前端访问) +# CORS配置 app.add_middleware( CORSMiddleware, - allow_origins=["*"], # 生产环境应指定具体域名 + allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) -# 路由注册 +# API 路由(必须先于静态文件注册) app.include_router(auth.router, prefix="/api/auth", tags=["认证"]) app.include_router(topics.router, prefix="/api/topics", tags=["选题管理"]) app.include_router(system.router, prefix="/api/system", tags=["系统状态"]) @@ -51,14 +47,34 @@ app.include_router(articles.router, prefix="/api/articles", tags=["文章预览" app.include_router(logs.router, prefix="/api/logs", tags=["日志系统"]) app.include_router(admin.router, prefix="/api/admin", tags=["管理员"]) +# 健康检查 @app.get("/health") async def health_check(): - """健康检查接口""" return {"status": "healthy", "timestamp": __import__('datetime').datetime.now().isoformat()} +# 独立页面路由(必须在 SPA catch-all 之前) +@app.get("/topics.html") +async def topics_page(): + return FileResponse("static/topics.html") + +@app.get("/logs.html") +async def logs_page(): + return FileResponse("static/logs.html") + +@app.get("/users.html") +async def users_page(): + return FileResponse("static/users.html") + +# 静态文件(不干扰API) +app.mount("/static", StaticFiles(directory="static"), name="static") + +# SPA:所有非 API 路径返回 index.html(最后注册) +@app.get("/{full_path:path}") +async def serve_spa(full_path: str): + return FileResponse("static/index.html") + @app.exception_handler(Exception) async def global_exception_handler(request: Request, exc: Exception): - """全局异常处理器""" import traceback print(f"全局异常: {exc}") print(f"堆栈跟踪:\n{traceback.format_exc()}") @@ -69,10 +85,4 @@ async def global_exception_handler(request: Request, exc: Exception): } if __name__ == "__main__": - uvicorn.run( - "main:app", - host="0.0.0.0", - port=8001, - reload=True, # 开发环境启用热重载 - log_level="info" - ) \ No newline at end of file + uvicorn.run("main:app", host="0.0.0.0", port=8001, reload=True, log_level="info") diff --git a/platform/backend/models/__init__.py b/platform/backend/models/__init__.py index a8b6f6a..77e7f59 100644 --- a/platform/backend/models/__init__.py +++ b/platform/backend/models/__init__.py @@ -20,7 +20,7 @@ class User(Base): class Topic(Base): __tablename__ = "topics" - id = Column(Integer, primary_key=True, index=True) + id = Column(String(50), primary_key=True, index=True) title = Column(String(500), nullable=False) field = Column(String(100)) priority_score = Column(Integer, default=0) @@ -34,12 +34,13 @@ class Topic(Base): ) generated_at = Column(DateTime(timezone=True)) # 新增字段 published_at = Column(DateTime(timezone=True)) # 新增字段 - published_urls = Column(JSON) # {"zhihu": "url", ...} + platform_urls = Column(JSON) # {"zhihu": "url", ...} class AuditLog(Base): __tablename__ = "audit_logs" id = Column(Integer, primary_key=True, index=True) + username = Column(String(50), nullable=False) user_id = Column(Integer, index=True) action = Column(String(50), index=True) # login, create_user, delete_user, publish resource_type = Column(String(50)) # user, topic, article diff --git a/platform/backend/static/Dockerfile b/platform/backend/static/Dockerfile new file mode 100644 index 0000000..a67af8f --- /dev/null +++ b/platform/backend/static/Dockerfile @@ -0,0 +1,37 @@ +# 宇之然内容创作平台 - 前端Docker镜像 + +FROM nginx:alpine as builder + +# 安装构建工具(用于优化HTML) +RUN apk add --no-cache python3 py3-pip +COPY index.html /tmp/index.html +COPY login.html /tmp/login.html + +# 简单压缩HTML(实际生产应使用Webpack等构建工具) +RUN cat /tmp/index.html | tr -d '\n' > /tmp/index.min.html && \ + mv /tmp/index.min.html /tmp/index.html + +WORKDIR /usr/share/nginx/html + +# 复制静态资源 +COPY . . + +# 生产阶段 - 直接使用Nginx +FROM nginx:alpine + +# 复制优化后的前端文件 +COPY --from=builder /usr/share/nginx/html /usr/share/nginx/html + +# 配置Nginx +COPY nginx.conf /etc/nginx/conf.d/default.conf + +# 健康检查 +HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ + CMD wget --quiet --tries=1 --spider http://localhost/ || exit 1 + +EXPOSE 8000 + +# 标签信息 +LABEL maintainer="宇之然团队" +LABEL version="1.0.0" +LABEL description="企业级内容创作管理系统前端" \ No newline at end of file diff --git a/platform/backend/static/debug-vue.js b/platform/backend/static/debug-vue.js new file mode 100644 index 0000000..0619ec1 --- /dev/null +++ b/platform/backend/static/debug-vue.js @@ -0,0 +1,7 @@ +(function() { + var d = document.createElement('div'); + d.style.cssText = 'position:fixed;top:0;left:0;background:rgba(0,0,0,0.9);color:#fff;padding:8px;font-size:12px;z-index:999999;max-width:90vw;overflow:auto;'; + d.innerHTML = 'Vue: ' + typeof Vue + '
ElementPlus: ' + typeof ElementPlus + '
Time: ' + new Date().toLocaleTimeString(); + document.body.appendChild(d); + console.log('Debug panel injected', d.innerHTML); +})(); diff --git a/platform/backend/static/debug.html b/platform/backend/static/debug.html new file mode 100644 index 0000000..25f58a9 --- /dev/null +++ b/platform/backend/static/debug.html @@ -0,0 +1,194 @@ + + + + + + + 宇之然内容创作平台 - Vue调试 + + + + + + + + + + +
+ + + + +
+ + + +
+
+

🔍 Vue调试控制台

+ + +
+ 调试输出:
+ {{ log }} +
+ + +
+ + + +
+ + +
+

测试结果:

+
    +
  • {{ result }}
  • +
+
+ + +
+ + + + + + + + + + + + + + + + + +
ID标题状态
{{ topic.id }}{{ topic.title }} + + + {{ getStatusText(topic.status) }} + +
+
+
+
+
+
+ + + + diff --git a/platform/backend/static/diagnostic.html b/platform/backend/static/diagnostic.html new file mode 100644 index 0000000..d976bf9 --- /dev/null +++ b/platform/backend/static/diagnostic.html @@ -0,0 +1,269 @@ + + + + + + + 宇之然内容创作平台 - 诊断测试 + + + + + + + + + + +
+ + + + +
+ + + +
+
+

🔍 功能诊断测试

+ + +
+

✅ 测试结果:

+
    +
  • {{ result }}
  • +
+
+ + +
+

📋 选题管理功能测试

+ +
+
+

批量操作测试

+ + ✅ 通过 +
+ +
+

数据加载测试

+ + ✅ 通过 +
+
+ + +
+ + + + + + + + + + + + + + + + + + + +
ID标题状态操作
{{ topic.id }}{{ topic.title }} + + + {{ getStatusText(topic.status) }} + + + + +
+
+
+ + +
+

📄 系统日志功能测试

+ +
+ + + +
+ +
{{ logContent }}
+
+ + +
+

👥 用户管理功能测试

+ +
+

用户列表

+ +
+ + + + + + + + + + + + + + + + + + +
ID用户名角色操作
{{ user.id }}{{ user.username }} + + {{ user.role === 'admin' ? '管理员' : '编辑' }} + + + +
+
+
+
+
+
+ + + + diff --git a/platform/backend/static/element-plus.css b/platform/backend/static/element-plus.css new file mode 100644 index 0000000..d074ff0 --- /dev/null +++ b/platform/backend/static/element-plus.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:-moz-fit-content;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;top:-1px;bottom:-1px;left:-1px;right:-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:-moz-fit-content;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__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{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-list{max-height:204px;font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center;margin:0;padding:6px 0}.el-cascader__suggestion-item{text-align:left;cursor:pointer;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>span{margin-right:10px}.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 (max-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 (min-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 (min-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 (min-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 (min-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{-webkit-appearance:none;-moz-appearance:none;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{color:var(--el-datepicker-hover-text-color)}.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__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;top:0;bottom:0;left:0;right: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;top:0;bottom:0;left:0;right: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,0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translate(0,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:-moz-fit-content;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{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--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;top:0;bottom:0;left:0;right: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,0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translate(0,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,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__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,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;-webkit-appearance:none;-moz-appearance:none;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-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;top:0;bottom:0;left:0;right: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;-webkit-backface-visibility:hidden;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;top:0;bottom:0;left:0;right: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,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;top:0;bottom:0;left:0;right: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{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.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;top:0;bottom:0;left:0;right: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);-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;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}.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,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;-webkit-appearance:none;-moz-appearance:none;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;-webkit-appearance:none;-moz-appearance:none;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:-moz-fit-content;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;-webkit-appearance:none;-moz-appearance:none;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;-webkit-appearance:none;-moz-appearance:none;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;-webkit-appearance:none;-moz-appearance:none;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;top:0;bottom:0;left:0;right: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;-webkit-appearance:none;-moz-appearance:none;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;-webkit-appearance:none;-moz-appearance:none;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--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;top:0;bottom:0;left:0;right: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;top:0;bottom:0;left:0;right: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} \ No newline at end of file diff --git a/platform/backend/static/element-plus.full.js b/platform/backend/static/element-plus.full.js new file mode 100644 index 0000000..e1e3310 --- /dev/null +++ b/platform/backend/static/element-plus.full.js @@ -0,0 +1,59570 @@ +/*! Element Plus v2.13.7 */ + +(function(global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue')) : + typeof define === 'function' && define.amd ? define(['exports', 'vue'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.ElementPlus = {}), global.Vue)); +})(this, function(exports, vue) { +Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); +//#region \0rolldown/runtime.js + var __create = Object.create; + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __getProtoOf = Object.getPrototypeOf; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports); + var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { + key = keys[i]; + if (!__hasOwnProp.call(to, key) && key !== except) { + __defProp(to, key, { + get: ((k) => from[k]).bind(null, key), + enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }); + } + } + } + return to; + }; + var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { + value: mod, + enumerable: true + }) : target, mod)); + +//#endregion + +//#region ../../packages/utils/dom/aria.ts + const FOCUSABLE_ELEMENT_SELECTORS = `a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])`; + const isShadowRoot$1 = (e) => { + if (typeof ShadowRoot === "undefined") return false; + return e instanceof ShadowRoot; + }; + const isHTMLElement$1 = (e) => { + if (typeof Element === "undefined") return false; + return e instanceof Element; + }; + /** + * Determine if the testing element is visible on screen no matter if its on the viewport or not + */ + const isVisible = (element) => { + return getComputedStyle(element).position === "fixed" ? false : element.offsetParent !== null; + }; + const obtainAllFocusableElements$1 = (element) => { + return Array.from(element.querySelectorAll(FOCUSABLE_ELEMENT_SELECTORS)).filter((item) => isFocusable(item) && isVisible(item)); + }; + /** + * @desc Determine if target element is focusable + * @param element {HTMLElement} + * @returns {Boolean} true if it is focusable + */ + const isFocusable = (element) => { + if (element.tabIndex > 0 || element.tabIndex === 0 && element.getAttribute("tabIndex") !== null) return true; + if (element.tabIndex < 0 || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true") return false; + switch (element.nodeName) { + case "A": return !!element.href && element.rel !== "ignore"; + case "INPUT": return !(element.type === "hidden" || element.type === "file"); + case "BUTTON": + case "SELECT": + case "TEXTAREA": return true; + default: return false; + } + }; + /** + * Trigger an event + * mouseenter, mouseleave, mouseover, keyup, change, click, etc. + * @param {HTMLElement} elm + * @param {String} name + * @param {*} opts + */ + const triggerEvent = function(elm, name, ...opts) { + let eventName; + if (name.includes("mouse") || name.includes("click")) eventName = "MouseEvents"; + else if (name.includes("key")) eventName = "KeyboardEvent"; + else eventName = "HTMLEvents"; + const evt = document.createEvent(eventName); + evt.initEvent(name, ...opts); + elm.dispatchEvent(evt); + return elm; + }; + const isLeaf = (el) => !el.getAttribute("aria-owns"); + const getSibling = (el, distance, elClass) => { + const { parentNode } = el; + if (!parentNode) return null; + const siblings = parentNode.querySelectorAll(elClass); + return siblings[Array.prototype.indexOf.call(siblings, el) + distance] || null; + }; + const focusElement = (el, options) => { + if (!el || !el.focus) return; + let cleanup = false; + if (isHTMLElement$1(el) && !isFocusable(el) && !el.getAttribute("tabindex")) { + el.setAttribute("tabindex", "-1"); + cleanup = true; + } + el.focus(options); + if (isHTMLElement$1(el) && cleanup) el.removeAttribute("tabindex"); + }; + const focusNode = (el) => { + if (!el) return; + focusElement(el); + !isLeaf(el) && el.click(); + }; + +//#endregion +//#region ../../packages/constants/aria.ts + const EVENT_CODE = { + 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" + }; + +//#endregion +//#region ../../packages/constants/date.ts + const datePickTypes = [ + "year", + "years", + "month", + "months", + "date", + "dates", + "week", + "datetime", + "datetimerange", + "daterange", + "monthrange", + "yearrange" + ]; + const WEEK_DAYS = [ + "sun", + "mon", + "tue", + "wed", + "thu", + "fri", + "sat" + ]; + +//#endregion +//#region ../../packages/constants/event.ts + const UPDATE_MODEL_EVENT = "update:modelValue"; + const CHANGE_EVENT = "change"; + const INPUT_EVENT = "input"; + +//#endregion +//#region ../../packages/constants/key.ts + const INSTALLED_KEY = Symbol("INSTALLED_KEY"); + +//#endregion +//#region ../../packages/constants/size.ts + const componentSizes = [ + "", + "default", + "small", + "large" + ]; + const componentSizeMap = { + large: 40, + default: 32, + small: 24 + }; + +//#endregion +//#region ../../packages/constants/column-alignment.ts + const columnAlignment = [ + "left", + "center", + "right" + ]; + +//#endregion +//#region ../../packages/constants/form.ts + const MINIMUM_INPUT_WIDTH = 11; + const BORDER_HORIZONTAL_WIDTH = 2; + +//#endregion +//#region ../../node_modules/.pnpm/@vueuse+shared@12.0.0_typescript@5.5.4/node_modules/@vueuse/shared/index.mjs + function computedEager(fn, options) { + var _a; + const result = (0, vue.shallowRef)(); + (0, vue.watchEffect)(() => { + result.value = fn(); + }, { + ...options, + flush: (_a = options == null ? void 0 : options.flush) != null ? _a : "sync" + }); + return (0, vue.readonly)(result); + } + function tryOnScopeDispose(fn) { + if ((0, vue.getCurrentScope)()) { + (0, vue.onScopeDispose)(fn); + return true; + } + return false; + } + function toValue$1(r) { + return typeof r === "function" ? r() : (0, vue.unref)(r); + } + function toReactive(objectRef) { + if (!(0, vue.isRef)(objectRef)) return (0, vue.reactive)(objectRef); + return (0, vue.reactive)(new Proxy({}, { + get(_, p, receiver) { + return (0, vue.unref)(Reflect.get(objectRef.value, p, receiver)); + }, + set(_, p, value) { + if ((0, vue.isRef)(objectRef.value[p]) && !(0, vue.isRef)(value)) objectRef.value[p].value = value; + else objectRef.value[p] = value; + return true; + }, + deleteProperty(_, p) { + return Reflect.deleteProperty(objectRef.value, p); + }, + has(_, p) { + return Reflect.has(objectRef.value, p); + }, + ownKeys() { + return Object.keys(objectRef.value); + }, + getOwnPropertyDescriptor() { + return { + enumerable: true, + configurable: true + }; + } + })); + } + function reactiveComputed(fn) { + return toReactive((0, vue.computed)(fn)); + } + const isClient = typeof window !== "undefined" && typeof document !== "undefined"; + const isWorker = typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope; + const isDef = (val) => typeof val !== "undefined"; + const notNullish = (val) => val != null; + const toString$1 = Object.prototype.toString; + const isObject$2 = (val) => toString$1.call(val) === "[object Object]"; + const clamp$2 = (n, min, max) => Math.min(max, Math.max(min, n)); + const noop$1 = () => {}; + const isIOS = /* @__PURE__ */ getIsIOS(); + function getIsIOS() { + var _a, _b; + return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent)); + } + function createFilterWrapper(filter, fn) { + function wrapper(...args) { + return new Promise((resolve, reject) => { + Promise.resolve(filter(() => fn.apply(this, args), { + fn, + thisArg: this, + args + })).then(resolve).catch(reject); + }); + } + return wrapper; + } + function debounceFilter(ms, options = {}) { + let timer; + let maxTimer; + let lastRejector = noop$1; + const _clearTimeout = (timer2) => { + clearTimeout(timer2); + lastRejector(); + lastRejector = noop$1; + }; + const filter = (invoke) => { + const duration = toValue$1(ms); + const maxDuration = toValue$1(options.maxWait); + if (timer) _clearTimeout(timer); + if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) { + if (maxTimer) { + _clearTimeout(maxTimer); + maxTimer = null; + } + return Promise.resolve(invoke()); + } + return new Promise((resolve, reject) => { + lastRejector = options.rejectOnCancel ? reject : resolve; + if (maxDuration && !maxTimer) maxTimer = setTimeout(() => { + if (timer) _clearTimeout(timer); + maxTimer = null; + resolve(invoke()); + }, maxDuration); + timer = setTimeout(() => { + if (maxTimer) _clearTimeout(maxTimer); + maxTimer = null; + resolve(invoke()); + }, duration); + }); + }; + return filter; + } + function throttleFilter(...args) { + let lastExec = 0; + let timer; + let isLeading = true; + let lastRejector = noop$1; + let lastValue; + let ms; + let trailing; + let leading; + let rejectOnCancel; + if (!(0, vue.isRef)(args[0]) && typeof args[0] === "object") ({delay: ms, trailing = true, leading = true, rejectOnCancel = false} = args[0]); + else [ms, trailing = true, leading = true, rejectOnCancel = false] = args; + const clear = () => { + if (timer) { + clearTimeout(timer); + timer = void 0; + lastRejector(); + lastRejector = noop$1; + } + }; + const filter = (_invoke) => { + const duration = toValue$1(ms); + const elapsed = Date.now() - lastExec; + const invoke = () => { + return lastValue = _invoke(); + }; + clear(); + if (duration <= 0) { + lastExec = Date.now(); + return invoke(); + } + if (elapsed > duration && (leading || !isLeading)) { + lastExec = Date.now(); + invoke(); + } else if (trailing) lastValue = new Promise((resolve, reject) => { + lastRejector = rejectOnCancel ? reject : resolve; + timer = setTimeout(() => { + lastExec = Date.now(); + isLeading = true; + resolve(invoke()); + clear(); + }, Math.max(0, duration - elapsed)); + }); + if (!leading && !timer) timer = setTimeout(() => isLeading = true, duration); + isLeading = false; + return lastValue; + }; + return filter; + } + function cacheStringFunction$1(fn) { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + return cache[str] || (cache[str] = fn(str)); + }; + } + const hyphenateRE$1 = /\B([A-Z])/g; + const hyphenate$1 = cacheStringFunction$1((str) => str.replace(hyphenateRE$1, "-$1").toLowerCase()); + const camelizeRE$1 = /-(\w)/g; + const camelize$1 = cacheStringFunction$1((str) => { + return str.replace(camelizeRE$1, (_, c) => c ? c.toUpperCase() : ""); + }); + function getLifeCycleTarget(target) { + return target || (0, vue.getCurrentInstance)(); + } + function useDebounceFn(fn, ms = 200, options = {}) { + return createFilterWrapper(debounceFilter(ms, options), fn); + } + function refDebounced(value, ms = 200, options = {}) { + const debounced = (0, vue.ref)(value.value); + const updater = useDebounceFn(() => { + debounced.value = value.value; + }, ms, options); + (0, vue.watch)(value, () => updater()); + return debounced; + } + function useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) { + return createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn); + } + function tryOnMounted(fn, sync = true, target) { + if (getLifeCycleTarget()) (0, vue.onMounted)(fn, target); + else if (sync) fn(); + else (0, vue.nextTick)(fn); + } + function useTimeoutFn(cb, interval, options = {}) { + const { immediate = true } = options; + const isPending = (0, vue.ref)(false); + let timer = null; + function clear() { + if (timer) { + clearTimeout(timer); + timer = null; + } + } + function stop() { + isPending.value = false; + clear(); + } + function start(...args) { + clear(); + isPending.value = true; + timer = setTimeout(() => { + isPending.value = false; + timer = null; + cb(...args); + }, toValue$1(interval)); + } + if (immediate) { + isPending.value = true; + if (isClient) start(); + } + tryOnScopeDispose(stop); + return { + isPending: (0, vue.readonly)(isPending), + start, + stop + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/@vueuse+core@12.0.0_typescript@5.5.4/node_modules/@vueuse/core/index.mjs + const defaultWindow = isClient ? window : void 0; + const defaultDocument = isClient ? window.document : void 0; + const defaultNavigator = isClient ? window.navigator : void 0; + const defaultLocation = isClient ? window.location : void 0; + function unrefElement(elRef) { + var _a; + const plain = toValue$1(elRef); + return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain; + } + function useEventListener(...args) { + let target; + let events; + let listeners; + let options; + if (typeof args[0] === "string" || Array.isArray(args[0])) { + [events, listeners, options] = args; + target = defaultWindow; + } else [target, events, listeners, options] = args; + if (!target) return noop$1; + if (!Array.isArray(events)) events = [events]; + if (!Array.isArray(listeners)) listeners = [listeners]; + const cleanups = []; + const cleanup = () => { + cleanups.forEach((fn) => fn()); + cleanups.length = 0; + }; + const register = (el, event, listener, options2) => { + el.addEventListener(event, listener, options2); + return () => el.removeEventListener(event, listener, options2); + }; + const stopWatch = (0, vue.watch)(() => [unrefElement(target), toValue$1(options)], ([el, options2]) => { + cleanup(); + if (!el) return; + const optionsClone = isObject$2(options2) ? { ...options2 } : options2; + cleanups.push(...events.flatMap((event) => { + return listeners.map((listener) => register(el, event, listener, optionsClone)); + })); + }, { + immediate: true, + flush: "post" + }); + const stop = () => { + stopWatch(); + cleanup(); + }; + tryOnScopeDispose(stop); + return stop; + } + let _iOSWorkaround = false; + function onClickOutside(target, handler, options = {}) { + const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options; + if (!window) return noop$1; + if (isIOS && !_iOSWorkaround) { + _iOSWorkaround = true; + Array.from(window.document.body.children).forEach((el) => el.addEventListener("click", noop$1)); + window.document.documentElement.addEventListener("click", noop$1); + } + let shouldListen = true; + const shouldIgnore = (event) => { + return toValue$1(ignore).some((target2) => { + if (typeof target2 === "string") return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el)); + else { + const el = unrefElement(target2); + return el && (event.target === el || event.composedPath().includes(el)); + } + }); + }; + function hasMultipleRoots(target2) { + const vm = toValue$1(target2); + return vm && vm.$.subTree.shapeFlag === 16; + } + function checkMultipleRoots(target2, event) { + const vm = toValue$1(target2); + const children = vm.$.subTree && vm.$.subTree.children; + if (children == null || !Array.isArray(children)) return false; + return children.some((child) => child.el === event.target || event.composedPath().includes(child.el)); + } + const listener = (event) => { + const el = unrefElement(target); + if (event.target == null) return; + if (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event)) return; + if (!el || el === event.target || event.composedPath().includes(el)) return; + if (event.detail === 0) shouldListen = !shouldIgnore(event); + if (!shouldListen) { + shouldListen = true; + return; + } + handler(event); + }; + let isProcessingClick = false; + const cleanup = [ + useEventListener(window, "click", (event) => { + if (!isProcessingClick) { + isProcessingClick = true; + setTimeout(() => { + isProcessingClick = false; + }, 0); + listener(event); + } + }, { + passive: true, + capture + }), + useEventListener(window, "pointerdown", (e) => { + const el = unrefElement(target); + shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el)); + }, { passive: true }), + detectIframe && useEventListener(window, "blur", (event) => { + setTimeout(() => { + var _a; + const el = unrefElement(target); + if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window.document.activeElement))) handler(event); + }, 0); + }) + ].filter(Boolean); + const stop = () => cleanup.forEach((fn) => fn()); + return stop; + } + function useMounted() { + const isMounted = (0, vue.ref)(false); + const instance = (0, vue.getCurrentInstance)(); + if (instance) (0, vue.onMounted)(() => { + isMounted.value = true; + }, instance); + return isMounted; + } + function useSupported(callback) { + const isMounted = useMounted(); + return (0, vue.computed)(() => { + isMounted.value; + return Boolean(callback()); + }); + } + function useMutationObserver(target, callback, options = {}) { + const { window = defaultWindow, ...mutationOptions } = options; + let observer; + const isSupported = useSupported(() => window && "MutationObserver" in window); + const cleanup = () => { + if (observer) { + observer.disconnect(); + observer = void 0; + } + }; + const targets = (0, vue.computed)(() => { + const value = toValue$1(target); + const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish); + return new Set(items); + }); + const stopWatch = (0, vue.watch)(() => targets.value, (targets2) => { + cleanup(); + if (isSupported.value && targets2.size) { + observer = new MutationObserver(callback); + targets2.forEach((el) => observer.observe(el, mutationOptions)); + } + }, { + immediate: true, + flush: "post" + }); + const takeRecords = () => { + return observer == null ? void 0 : observer.takeRecords(); + }; + const stop = () => { + stopWatch(); + cleanup(); + }; + tryOnScopeDispose(stop); + return { + isSupported, + stop, + takeRecords + }; + } + function useActiveElement(options = {}) { + var _a; + const { window = defaultWindow, deep = true, triggerOnRemoval = false } = options; + const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document; + const getDeepActiveElement = () => { + var _a2; + let element = document == null ? void 0 : document.activeElement; + if (deep) while (element == null ? void 0 : element.shadowRoot) element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement; + return element; + }; + const activeElement = (0, vue.ref)(); + const trigger = () => { + activeElement.value = getDeepActiveElement(); + }; + if (window) { + useEventListener(window, "blur", (event) => { + if (event.relatedTarget !== null) return; + trigger(); + }, true); + useEventListener(window, "focus", trigger, true); + } + if (triggerOnRemoval) useMutationObserver(document, (mutations) => { + mutations.filter((m) => m.removedNodes.length).map((n) => Array.from(n.removedNodes)).flat().forEach((node) => { + if (node === activeElement.value) trigger(); + }); + }, { + childList: true, + subtree: true + }); + trigger(); + return activeElement; + } + function useMediaQuery(query, options = {}) { + const { window = defaultWindow } = options; + const isSupported = useSupported(() => window && "matchMedia" in window && typeof window.matchMedia === "function"); + let mediaQuery; + const matches = (0, vue.ref)(false); + const handler = (event) => { + matches.value = event.matches; + }; + const cleanup = () => { + if (!mediaQuery) return; + if ("removeEventListener" in mediaQuery) mediaQuery.removeEventListener("change", handler); + else mediaQuery.removeListener(handler); + }; + const stopWatch = (0, vue.watchEffect)(() => { + if (!isSupported.value) return; + cleanup(); + mediaQuery = window.matchMedia(toValue$1(query)); + if ("addEventListener" in mediaQuery) mediaQuery.addEventListener("change", handler); + else mediaQuery.addListener(handler); + matches.value = mediaQuery.matches; + }); + tryOnScopeDispose(() => { + stopWatch(); + cleanup(); + mediaQuery = void 0; + }); + return matches; + } + function cloneFnJSON(source) { + return JSON.parse(JSON.stringify(source)); + } + function useCssVar(prop, target, options = {}) { + const { window = defaultWindow, initialValue, observe = false } = options; + const variable = (0, vue.ref)(initialValue); + const elRef = (0, vue.computed)(() => { + var _a; + return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement); + }); + function updateCssVar() { + var _a; + const key = toValue$1(prop); + const el = toValue$1(elRef); + if (el && window && key) variable.value = ((_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim()) || initialValue; + } + if (observe) useMutationObserver(elRef, updateCssVar, { + attributeFilter: ["style", "class"], + window + }); + (0, vue.watch)([elRef, () => toValue$1(prop)], (_, old) => { + if (old[0] && old[1]) old[0].style.removeProperty(old[1]); + updateCssVar(); + }, { immediate: true }); + (0, vue.watch)(variable, (val) => { + var _a; + const raw_prop = toValue$1(prop); + if (((_a = elRef.value) == null ? void 0 : _a.style) && raw_prop) if (val == null) elRef.value.style.removeProperty(raw_prop); + else elRef.value.style.setProperty(raw_prop, val); + }); + return variable; + } + function useDocumentVisibility(options = {}) { + const { document = defaultDocument } = options; + if (!document) return (0, vue.ref)("visible"); + const visibility = (0, vue.ref)(document.visibilityState); + useEventListener(document, "visibilitychange", () => { + visibility.value = document.visibilityState; + }); + return visibility; + } + function useResizeObserver(target, callback, options = {}) { + const { window = defaultWindow, ...observerOptions } = options; + let observer; + const isSupported = useSupported(() => window && "ResizeObserver" in window); + const cleanup = () => { + if (observer) { + observer.disconnect(); + observer = void 0; + } + }; + const stopWatch = (0, vue.watch)((0, vue.computed)(() => { + const _targets = toValue$1(target); + return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)]; + }), (els) => { + cleanup(); + if (isSupported.value && window) { + observer = new ResizeObserver(callback); + for (const _el of els) if (_el) observer.observe(_el, observerOptions); + } + }, { + immediate: true, + flush: "post" + }); + const stop = () => { + cleanup(); + stopWatch(); + }; + tryOnScopeDispose(stop); + return { + isSupported, + stop + }; + } + function useElementBounding(target, options = {}) { + const { reset = true, windowResize = true, windowScroll = true, immediate = true, updateTiming = "sync" } = options; + const height = (0, vue.ref)(0); + const bottom = (0, vue.ref)(0); + const left = (0, vue.ref)(0); + const right = (0, vue.ref)(0); + const top = (0, vue.ref)(0); + const width = (0, vue.ref)(0); + const x = (0, vue.ref)(0); + const y = (0, vue.ref)(0); + function recalculate() { + const el = unrefElement(target); + if (!el) { + if (reset) { + height.value = 0; + bottom.value = 0; + left.value = 0; + right.value = 0; + top.value = 0; + width.value = 0; + x.value = 0; + y.value = 0; + } + return; + } + const rect = el.getBoundingClientRect(); + height.value = rect.height; + bottom.value = rect.bottom; + left.value = rect.left; + right.value = rect.right; + top.value = rect.top; + width.value = rect.width; + x.value = rect.x; + y.value = rect.y; + } + function update() { + if (updateTiming === "sync") recalculate(); + else if (updateTiming === "next-frame") requestAnimationFrame(() => recalculate()); + } + useResizeObserver(target, update); + (0, vue.watch)(() => unrefElement(target), (ele) => !ele && update()); + useMutationObserver(target, update, { attributeFilter: ["style", "class"] }); + if (windowScroll) useEventListener("scroll", update, { + capture: true, + passive: true + }); + if (windowResize) useEventListener("resize", update, { passive: true }); + tryOnMounted(() => { + if (immediate) update(); + }); + return { + height, + bottom, + left, + right, + top, + width, + x, + y, + update + }; + } + function useElementSize(target, initialSize = { + width: 0, + height: 0 + }, options = {}) { + const { window = defaultWindow, box = "content-box" } = options; + const isSVG = (0, vue.computed)(() => { + var _a, _b; + return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes("svg"); + }); + const width = (0, vue.ref)(initialSize.width); + const height = (0, vue.ref)(initialSize.height); + const { stop: stop1 } = useResizeObserver(target, ([entry]) => { + const boxSize = box === "border-box" ? entry.borderBoxSize : box === "content-box" ? entry.contentBoxSize : entry.devicePixelContentBoxSize; + if (window && isSVG.value) { + const $elem = unrefElement(target); + if ($elem) { + const rect = $elem.getBoundingClientRect(); + width.value = rect.width; + height.value = rect.height; + } + } else if (boxSize) { + const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize]; + width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0); + height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0); + } else { + width.value = entry.contentRect.width; + height.value = entry.contentRect.height; + } + }, options); + tryOnMounted(() => { + const ele = unrefElement(target); + if (ele) { + width.value = "offsetWidth" in ele ? ele.offsetWidth : initialSize.width; + height.value = "offsetHeight" in ele ? ele.offsetHeight : initialSize.height; + } + }); + const stop2 = (0, vue.watch)(() => unrefElement(target), (ele) => { + width.value = ele ? initialSize.width : 0; + height.value = ele ? initialSize.height : 0; + }); + function stop() { + stop1(); + stop2(); + } + return { + width, + height, + stop + }; + } + function useIntersectionObserver(target, callback, options = {}) { + const { root, rootMargin = "0px", threshold = 0, window = defaultWindow, immediate = true } = options; + const isSupported = useSupported(() => window && "IntersectionObserver" in window); + const targets = (0, vue.computed)(() => { + const _target = toValue$1(target); + return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish); + }); + let cleanup = noop$1; + const isActive = (0, vue.ref)(immediate); + const stopWatch = isSupported.value ? (0, vue.watch)(() => [ + targets.value, + unrefElement(root), + isActive.value + ], ([targets2, root2]) => { + cleanup(); + if (!isActive.value) return; + if (!targets2.length) return; + const observer = new IntersectionObserver(callback, { + root: unrefElement(root2), + rootMargin, + threshold + }); + targets2.forEach((el) => el && observer.observe(el)); + cleanup = () => { + observer.disconnect(); + cleanup = noop$1; + }; + }, { + immediate, + flush: "post" + }) : noop$1; + const stop = () => { + cleanup(); + stopWatch(); + isActive.value = false; + }; + tryOnScopeDispose(stop); + return { + isSupported, + isActive, + pause() { + cleanup(); + isActive.value = false; + }, + resume() { + isActive.value = true; + }, + stop + }; + } + const DEFAULT_UNITS = [ + { + max: 6e4, + value: 1e3, + name: "second" + }, + { + max: 276e4, + value: 6e4, + name: "minute" + }, + { + max: 72e6, + value: 36e5, + name: "hour" + }, + { + max: 5184e5, + value: 864e5, + name: "day" + }, + { + max: 24192e5, + value: 6048e5, + name: "week" + }, + { + max: 28512e6, + value: 2592e6, + name: "month" + }, + { + max: Number.POSITIVE_INFINITY, + value: 31536e6, + name: "year" + } + ]; + function useVModel(props, key, emit, options = {}) { + var _a, _b, _c; + const { clone = false, passive = false, eventName, deep = false, defaultValue, shouldEmit } = options; + const vm = (0, vue.getCurrentInstance)(); + const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy)); + let event = eventName; + if (!key) key = "modelValue"; + event = event || `update:${key.toString()}`; + const cloneFn = (val) => !clone ? val : typeof clone === "function" ? clone(val) : cloneFnJSON(val); + const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue; + const triggerEmit = (value) => { + if (shouldEmit) { + if (shouldEmit(value)) _emit(event, value); + } else _emit(event, value); + }; + if (passive) { + const proxy = (0, vue.ref)(getValue()); + let isUpdating = false; + (0, vue.watch)(() => props[key], (v) => { + if (!isUpdating) { + isUpdating = true; + proxy.value = cloneFn(v); + (0, vue.nextTick)(() => isUpdating = false); + } + }); + (0, vue.watch)(proxy, (v) => { + if (!isUpdating && (v !== props[key] || deep)) triggerEmit(v); + }, { deep }); + return proxy; + } else return (0, vue.computed)({ + get() { + return getValue(); + }, + set(value) { + triggerEmit(value); + } + }); + } + function useWindowFocus(options = {}) { + const { window = defaultWindow } = options; + if (!window) return (0, vue.ref)(false); + const focused = (0, vue.ref)(window.document.hasFocus()); + useEventListener(window, "blur", () => { + focused.value = false; + }); + useEventListener(window, "focus", () => { + focused.value = true; + }); + return focused; + } + function useWindowSize(options = {}) { + const { window = defaultWindow, initialWidth = Number.POSITIVE_INFINITY, initialHeight = Number.POSITIVE_INFINITY, listenOrientation = true, includeScrollbar = true, type = "inner" } = options; + const width = (0, vue.ref)(initialWidth); + const height = (0, vue.ref)(initialHeight); + const update = () => { + if (window) if (type === "outer") { + width.value = window.outerWidth; + height.value = window.outerHeight; + } else if (includeScrollbar) { + width.value = window.innerWidth; + height.value = window.innerHeight; + } else { + width.value = window.document.documentElement.clientWidth; + height.value = window.document.documentElement.clientHeight; + } + }; + update(); + tryOnMounted(update); + useEventListener("resize", update, { passive: true }); + if (listenOrientation) (0, vue.watch)(useMediaQuery("(orientation: portrait)"), () => update()); + return { + width, + height + }; + } + +//#endregion +//#region ../../packages/utils/browser.ts + const isFirefox = () => isClient && /firefox/i.test(window.navigator.userAgent); + const isAndroid = () => isClient && /android/i.test(window.navigator.userAgent); + +//#endregion +//#region ../../packages/utils/dom/event.ts + const composeEventHandlers = (theirsHandler, oursHandler, { checkForDefaultPrevented = true } = {}) => { + const handleEvent = (event) => { + const shouldPrevent = theirsHandler?.(event); + if (checkForDefaultPrevented === false || !shouldPrevent) return oursHandler?.(event); + }; + return handleEvent; + }; + const whenMouse = (handler) => { + return (e) => e.pointerType === "mouse" ? handler(e) : void 0; + }; + const getEventCode = (event) => { + if (event.code && event.code !== "Unidentified") return event.code; + const key = getEventKey(event); + if (key) { + if (Object.values(EVENT_CODE).includes(key)) return key; + switch (key) { + case " ": return EVENT_CODE.space; + default: return ""; + } + } + return ""; + }; + const getEventKey = (event) => { + let key = event.key && event.key !== "Unidentified" ? event.key : ""; + if (!key && event.type === "keyup" && isAndroid()) { + const target = event.target; + key = target.value.charAt(target.selectionStart - 1); + } + return key; + }; + +//#endregion +//#region ../../packages/utils/dom/position.ts + const getOffsetTop = (el) => { + let offset = 0; + let parent = el; + while (parent) { + offset += parent.offsetTop; + parent = parent.offsetParent; + } + return offset; + }; + const getOffsetTopDistance = (el, containerEl) => { + return Math.abs(getOffsetTop(el) - getOffsetTop(containerEl)); + }; + const getClientXY = (event) => { + let clientX; + let clientY; + if (event.type === "touchend") { + clientY = event.changedTouches[0].clientY; + clientX = event.changedTouches[0].clientX; + } else if (event.type.startsWith("touch")) { + clientY = event.touches[0].clientY; + clientX = event.touches[0].clientX; + } else { + clientY = event.clientY; + clientX = event.clientX; + } + return { + clientX, + clientY + }; + }; + +//#endregion +//#region ../../packages/utils/easings.ts + function easeInOutCubic(t, b, c, d) { + const cc = c - b; + t /= d / 2; + if (t < 1) return cc / 2 * t * t * t + b; + return cc / 2 * ((t -= 2) * t * t + 2) + b; + } + +//#endregion +//#region ../../node_modules/.pnpm/@vue+shared@3.5.25/node_modules/@vue/shared/dist/shared.esm-bundler.js +/** + * @vue/shared v3.5.25 + * (c) 2018-present Yuxi (Evan) You and Vue contributors + * @license MIT + **/ + /* @__NO_SIDE_EFFECTS__ */ + function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; + } + const NOOP = () => {}; + const hasOwnProperty$14 = Object.prototype.hasOwnProperty; + const hasOwn = (val, key) => hasOwnProperty$14.call(val, key); + const isArray$1 = Array.isArray; + const isDate = (val) => toTypeString(val) === "[object Date]"; + const isFunction$1 = (val) => typeof val === "function"; + const isString = (val) => typeof val === "string"; + const isObject$1 = (val) => val !== null && typeof val === "object"; + const isPromise = (val) => { + return (isObject$1(val) || isFunction$1(val)) && isFunction$1(val.then) && isFunction$1(val.catch); + }; + const objectToString$1 = Object.prototype.toString; + const toTypeString = (value) => objectToString$1.call(value); + const isPlainObject$1 = (val) => toTypeString(val) === "[object Object]"; + const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + return cache[str] || (cache[str] = fn(str)); + }); + }; + const camelizeRE = /-\w/g; + const camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + }); + const hyphenateRE = /\B([A-Z])/g; + const hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase()); + const capitalize$1 = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); + }); + const toHandlerKey = cacheStringFunction((str) => { + return str ? `on${capitalize$1(str)}` : ``; + }); + const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; + const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_freeGlobal.js +/** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof global == "object" && global && global.Object === Object && global; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_root.js +/** Detect free variable `self`. */ + var freeSelf = typeof self == "object" && self && self.Object === Object && self; + /** Used as a reference to the global object. */ + var root = freeGlobal || freeSelf || Function("return this")(); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Symbol.js +/** Built-in value references. */ + var Symbol$1 = root.Symbol; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getRawTag.js +/** Used for built-in method references. */ + var objectProto$4 = Object.prototype; + /** Used to check objects for own properties. */ + var hasOwnProperty$13 = objectProto$4.hasOwnProperty; + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString$1 = objectProto$4.toString; + /** Built-in value references. */ + var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : void 0; + /** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ + function getRawTag(value) { + var isOwn = hasOwnProperty$13.call(value, symToStringTag$1), tag = value[symToStringTag$1]; + try { + value[symToStringTag$1] = void 0; + var unmasked = true; + } catch (e) {} + var result = nativeObjectToString$1.call(value); + if (unmasked) if (isOwn) value[symToStringTag$1] = tag; + else delete value[symToStringTag$1]; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_objectToString.js +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = Object.prototype.toString; + /** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ + function objectToString(value) { + return nativeObjectToString.call(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGetTag.js +/** `Object#toString` result references. */ + var nullTag = "[object Null]", undefinedTag = "[object Undefined]"; + /** Built-in value references. */ + var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : void 0; + /** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + function baseGetTag(value) { + if (value == null) return value === void 0 ? undefinedTag : nullTag; + return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isObjectLike.js +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return value != null && typeof value == "object"; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isSymbol.js +/** `Object#toString` result references. */ + var symbolTag$3 = "[object Symbol]"; + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$3; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayMap.js +/** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function arrayMap(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length, result = Array(length); + while (++index < length) result[index] = iteratee(array[index], index, array); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArray.js +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseToString.js +/** Used as references for various `Number` constants. */ + var INFINITY$3 = Infinity; + /** Used to convert symbols to primitives and strings. */ + var symbolProto$2 = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0; + /** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ + function baseToString(value) { + if (typeof value == "string") return value; + if (isArray(value)) return arrayMap(value, baseToString) + ""; + if (isSymbol(value)) return symbolToString ? symbolToString.call(value) : ""; + var result = value + ""; + return result == "0" && 1 / value == -INFINITY$3 ? "-0" : result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_trimmedEndIndex.js +/** Used to match a single whitespace character. */ + var reWhitespace = /\s/; + /** + * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace + * character of `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the index of the last non-whitespace character. + */ + function trimmedEndIndex(string) { + var index = string.length; + while (index-- && reWhitespace.test(string.charAt(index))); + return index; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTrim.js +/** Used to match leading whitespace. */ + var reTrimStart = /^\s+/; + /** + * The base implementation of `_.trim`. + * + * @private + * @param {string} string The string to trim. + * @returns {string} Returns the trimmed string. + */ + function baseTrim(string) { + return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isObject.js +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return value != null && (type == "object" || type == "function"); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toNumber.js +/** Used as references for various `Number` constants. */ + var NAN = NaN; + /** Used to detect bad signed hexadecimal string values. */ + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + /** Used to detect binary string values. */ + var reIsBinary = /^0b[01]+$/i; + /** Used to detect octal string values. */ + var reIsOctal = /^0o[0-7]+$/i; + /** Built-in method references without a dependency on `root`. */ + var freeParseInt = parseInt; + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + function toNumber(value) { + if (typeof value == "number") return value; + if (isSymbol(value)) return NAN; + if (isObject(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject(other) ? other + "" : other; + } + if (typeof value != "string") return value === 0 ? value : +value; + value = baseTrim(value); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toFinite.js +/** Used as references for various `Number` constants. */ + var INFINITY$2 = Infinity, MAX_INTEGER = 17976931348623157e292; + /** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */ + function toFinite(value) { + if (!value) return value === 0 ? value : 0; + value = toNumber(value); + if (value === INFINITY$2 || value === -INFINITY$2) return (value < 0 ? -1 : 1) * MAX_INTEGER; + return value === value ? value : 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toInteger.js +/** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ + function toInteger(value) { + var result = toFinite(value), remainder = result % 1; + return result === result ? remainder ? result - remainder : result : 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/identity.js +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ + function identity(value) { + return value; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isFunction.js +/** `Object#toString` result references. */ + var asyncTag = "[object AsyncFunction]", funcTag$2 = "[object Function]", genTag$1 = "[object GeneratorFunction]", proxyTag = "[object Proxy]"; + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + if (!isObject(value)) return false; + var tag = baseGetTag(value); + return tag == funcTag$2 || tag == genTag$1 || tag == asyncTag || tag == proxyTag; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_coreJsData.js +/** Used to detect overreaching core-js shims. */ + var coreJsData = root["__core-js_shared__"]; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isMasked.js +/** Used to detect methods masquerading as native. */ + var maskSrcKey = function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); + return uid ? "Symbol(src)_1." + uid : ""; + }(); + /** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ + function isMasked(func) { + return !!maskSrcKey && maskSrcKey in func; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_toSource.js +/** Used to resolve the decompiled source of functions. */ + var funcToString$2 = Function.prototype.toString; + /** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ + function toSource(func) { + if (func != null) { + try { + return funcToString$2.call(func); + } catch (e) {} + try { + return func + ""; + } catch (e) {} + } + return ""; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsNative.js +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + /** Used to detect host constructors (Safari). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + /** Used for built-in method references. */ + var funcProto$1 = Function.prototype, objectProto$3 = Object.prototype; + /** Used to resolve the decompiled source of functions. */ + var funcToString$1 = funcProto$1.toString; + /** Used to check objects for own properties. */ + var hasOwnProperty$12 = objectProto$3.hasOwnProperty; + /** Used to detect if a method is native. */ + var reIsNative = RegExp("^" + funcToString$1.call(hasOwnProperty$12).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); + /** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ + function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) return false; + return (isFunction(value) ? reIsNative : reIsHostCtor).test(toSource(value)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getValue.js +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function getValue$1(object, key) { + return object == null ? void 0 : object[key]; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getNative.js +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = getValue$1(object, key); + return baseIsNative(value) ? value : void 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_WeakMap.js + var WeakMap$1 = getNative(root, "WeakMap"); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseCreate.js +/** Built-in value references. */ + var objectCreate = Object.create; + /** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ + var baseCreate = function() { + function object() {} + return function(proto) { + if (!isObject(proto)) return {}; + if (objectCreate) return objectCreate(proto); + object.prototype = proto; + var result = new object(); + object.prototype = void 0; + return result; + }; + }(); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_apply.js +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ + function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/noop.js +/** + * This method returns `undefined`. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Util + * @example + * + * _.times(2, _.noop); + * // => [undefined, undefined] + */ + function noop() {} + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copyArray.js +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ + function copyArray(source, array) { + var index = -1, length = source.length; + array || (array = Array(length)); + while (++index < length) array[index] = source[index]; + return array; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_shortOut.js +/** Used to detect hot functions by number of calls within a span of milliseconds. */ + var HOT_COUNT = 800, HOT_SPAN = 16; + var nativeNow = Date.now; + /** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ + function shortOut(func) { + var count = 0, lastCalled = 0; + return function() { + var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) return arguments[0]; + } else count = 0; + return func.apply(void 0, arguments); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/constant.js +/** + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true + */ + function constant(value) { + return function() { + return value; + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_defineProperty.js + var defineProperty = function() { + try { + var func = getNative(Object, "defineProperty"); + func({}, "", {}); + return func; + } catch (e) {} + }(); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSetToString.js +/** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, "toString", { + "configurable": true, + "enumerable": false, + "value": constant(string), + "writable": true + }); + }; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setToString.js +/** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var setToString = shortOut(baseSetToString); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayEach.js +/** + * A specialized version of `_.forEach` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ + function arrayEach(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) if (iteratee(array[index], index, array) === false) break; + return array; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFindIndex.js +/** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, index = fromIndex + (fromRight ? 1 : -1); + while (fromRight ? index-- : ++index < length) if (predicate(array[index], index, array)) return index; + return -1; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsNaN.js +/** + * The base implementation of `_.isNaN` without support for number objects. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + */ + function baseIsNaN(value) { + return value !== value; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_strictIndexOf.js +/** + * A specialized version of `_.indexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, length = array.length; + while (++index < length) if (array[index] === value) return index; + return -1; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIndexOf.js +/** + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseIndexOf(array, value, fromIndex) { + return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayIncludes.js +/** + * A specialized version of `_.includes` for arrays without support for + * specifying an index to search from. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ + function arrayIncludes(array, value) { + return !!(array == null ? 0 : array.length) && baseIndexOf(array, value, 0) > -1; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isIndex.js +/** Used as references for various `Number` constants. */ + var MAX_SAFE_INTEGER$1 = 9007199254740991; + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER$1 : length; + return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssignValue.js +/** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function baseAssignValue(object, key, value) { + if (key == "__proto__" && defineProperty) defineProperty(object, key, { + "configurable": true, + "enumerable": true, + "value": value, + "writable": true + }); + else object[key] = value; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/eq.js +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ + function eq(value, other) { + return value === other || value !== value && other !== other; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assignValue.js +/** Used to check objects for own properties. */ + var hasOwnProperty$11 = Object.prototype.hasOwnProperty; + /** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty$11.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) baseAssignValue(object, key, value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copyObject.js +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + var index = -1, length = props.length; + while (++index < length) { + var key = props[index]; + var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0; + if (newValue === void 0) newValue = source[key]; + if (isNew) baseAssignValue(object, key, newValue); + else assignValue(object, key, newValue); + } + return object; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_overRest.js + var nativeMax$2 = Math.max; + /** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ + function overRest(func, start, transform) { + start = nativeMax$2(start === void 0 ? func.length - 1 : start, 0); + return function() { + var args = arguments, index = -1, length = nativeMax$2(args.length - start, 0), array = Array(length); + while (++index < length) array[index] = args[start + index]; + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) otherArgs[index] = args[index]; + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseRest.js +/** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ + function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ""); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isLength.js +/** Used as references for various `Number` constants. */ + var MAX_SAFE_INTEGER = 9007199254740991; + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + function isLength(value) { + return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArrayLike.js +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isIterateeCall.js +/** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ + function isIterateeCall(value, index, object) { + if (!isObject(object)) return false; + var type = typeof index; + if (type == "number" ? isArrayLike(object) && isIndex(index, object.length) : type == "string" && index in object) return eq(object[index], value); + return false; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createAssigner.js +/** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0; + customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : void 0; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? void 0 : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) assigner(object, source, index, customizer); + } + return object; + }); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isPrototype.js +/** Used for built-in method references. */ + var objectProto$2 = Object.prototype; + /** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ + function isPrototype(value) { + var Ctor = value && value.constructor; + return value === (typeof Ctor == "function" && Ctor.prototype || objectProto$2); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTimes.js +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ + function baseTimes(n, iteratee) { + var index = -1, result = Array(n); + while (++index < n) result[index] = iteratee(index); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsArguments.js +/** `Object#toString` result references. */ + var argsTag$3 = "[object Arguments]"; + /** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag$3; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArguments.js +/** Used for built-in method references. */ + var objectProto$1 = Object.prototype; + /** Used to check objects for own properties. */ + var hasOwnProperty$10 = objectProto$1.hasOwnProperty; + /** Built-in value references. */ + var propertyIsEnumerable$1 = objectProto$1.propertyIsEnumerable; + /** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + var isArguments = baseIsArguments(function() { + return arguments; + }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty$10.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee"); + }; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/stubFalse.js +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ + function stubFalse() { + return false; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isBuffer.js +/** Detect free variable `exports`. */ + var freeExports$2 = typeof exports == "object" && exports && !exports.nodeType && exports; + /** Detect free variable `module`. */ + var freeModule$2 = freeExports$2 && typeof module == "object" && module && !module.nodeType && module; + /** Built-in value references. */ + var Buffer$2 = freeModule$2 && freeModule$2.exports === freeExports$2 ? root.Buffer : void 0; + /** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ + var isBuffer = (Buffer$2 ? Buffer$2.isBuffer : void 0) || stubFalse; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsTypedArray.js +/** `Object#toString` result references. */ + var argsTag$2 = "[object Arguments]", arrayTag$2 = "[object Array]", boolTag$3 = "[object Boolean]", dateTag$3 = "[object Date]", errorTag$2 = "[object Error]", funcTag$1 = "[object Function]", mapTag$5 = "[object Map]", numberTag$3 = "[object Number]", objectTag$4 = "[object Object]", regexpTag$3 = "[object RegExp]", setTag$5 = "[object Set]", stringTag$3 = "[object String]", weakMapTag$2 = "[object WeakMap]"; + var arrayBufferTag$3 = "[object ArrayBuffer]", dataViewTag$4 = "[object DataView]", float32Tag$2 = "[object Float32Array]", float64Tag$2 = "[object Float64Array]", int8Tag$2 = "[object Int8Array]", int16Tag$2 = "[object Int16Array]", int32Tag$2 = "[object Int32Array]", uint8Tag$2 = "[object Uint8Array]", uint8ClampedTag$2 = "[object Uint8ClampedArray]", uint16Tag$2 = "[object Uint16Array]", uint32Tag$2 = "[object Uint32Array]"; + /** Used to identify `toStringTag` values of typed arrays. */ + var typedArrayTags = {}; + typedArrayTags[float32Tag$2] = typedArrayTags[float64Tag$2] = typedArrayTags[int8Tag$2] = typedArrayTags[int16Tag$2] = typedArrayTags[int32Tag$2] = typedArrayTags[uint8Tag$2] = typedArrayTags[uint8ClampedTag$2] = typedArrayTags[uint16Tag$2] = typedArrayTags[uint32Tag$2] = true; + typedArrayTags[argsTag$2] = typedArrayTags[arrayTag$2] = typedArrayTags[arrayBufferTag$3] = typedArrayTags[boolTag$3] = typedArrayTags[dataViewTag$4] = typedArrayTags[dateTag$3] = typedArrayTags[errorTag$2] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag$5] = typedArrayTags[numberTag$3] = typedArrayTags[objectTag$4] = typedArrayTags[regexpTag$3] = typedArrayTags[setTag$5] = typedArrayTags[stringTag$3] = typedArrayTags[weakMapTag$2] = false; + /** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ + function baseIsTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseUnary.js +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ + function baseUnary(func) { + return function(value) { + return func(value); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nodeUtil.js +/** Detect free variable `exports`. */ + var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports; + /** Detect free variable `module`. */ + var freeModule$1 = freeExports$1 && typeof module == "object" && module && !module.nodeType && module; + /** Detect free variable `process` from Node.js. */ + var freeProcess = freeModule$1 && freeModule$1.exports === freeExports$1 && freeGlobal.process; + /** Used to access faster Node.js helpers. */ + var nodeUtil = function() { + try { + var types = freeModule$1 && freeModule$1.require && freeModule$1.require("util").types; + if (types) return types; + return freeProcess && freeProcess.binding && freeProcess.binding("util"); + } catch (e) {} + }(); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isTypedArray.js + var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + /** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ + var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayLikeKeys.js +/** Used to check objects for own properties. */ + var hasOwnProperty$9 = Object.prototype.hasOwnProperty; + /** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ + function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length; + for (var key in value) if ((inherited || hasOwnProperty$9.call(value, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length)))) result.push(key); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_overArg.js +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeKeys.js + var nativeKeys = overArg(Object.keys, Object); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseKeys.js +/** Used to check objects for own properties. */ + var hasOwnProperty$8 = Object.prototype.hasOwnProperty; + /** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeys(object) { + if (!isPrototype(object)) return nativeKeys(object); + var result = []; + for (var key in Object(object)) if (hasOwnProperty$8.call(object, key) && key != "constructor") result.push(key); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/keys.js +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeKeysIn.js +/** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function nativeKeysIn(object) { + var result = []; + if (object != null) for (var key in Object(object)) result.push(key); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseKeysIn.js +/** Used to check objects for own properties. */ + var hasOwnProperty$7 = Object.prototype.hasOwnProperty; + /** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeysIn(object) { + if (!isObject(object)) return nativeKeysIn(object); + var isProto = isPrototype(object), result = []; + for (var key in object) if (!(key == "constructor" && (isProto || !hasOwnProperty$7.call(object, key)))) result.push(key); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/keysIn.js +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ + function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isKey.js +/** Used to match property names within property paths. */ + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/; + /** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ + function isKey(value, object) { + if (isArray(value)) return false; + var type = typeof value; + if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) return true; + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeCreate.js + var nativeCreate = getNative(Object, "create"); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashClear.js +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ + function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashDelete.js +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashGet.js +/** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED$2 = "__lodash_hash_undefined__"; + /** Used to check objects for own properties. */ + var hasOwnProperty$6 = Object.prototype.hasOwnProperty; + /** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED$2 ? void 0 : result; + } + return hasOwnProperty$6.call(data, key) ? data[key] : void 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashHas.js +/** Used to check objects for own properties. */ + var hasOwnProperty$5 = Object.prototype.hasOwnProperty; + /** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== void 0 : hasOwnProperty$5.call(data, key); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashSet.js +/** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED$1 = "__lodash_hash_undefined__"; + /** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED$1 : value; + return this; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Hash.js +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Hash(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + Hash.prototype.clear = hashClear; + Hash.prototype["delete"] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheClear.js +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assocIndexOf.js +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function assocIndexOf(array, key) { + var length = array.length; + while (length--) if (eq(array[length][0], key)) return length; + return -1; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheDelete.js +/** Built-in value references. */ + var splice = Array.prototype.splice; + /** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function listCacheDelete(key) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) return false; + if (index == data.length - 1) data.pop(); + else splice.call(data, index, 1); + --this.size; + return true; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheGet.js +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function listCacheGet(key) { + var data = this.__data__, index = assocIndexOf(data, key); + return index < 0 ? void 0 : data[index][1]; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheHas.js +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheSet.js +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ + function listCacheSet(key, value) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + ++this.size; + data.push([key, value]); + } else data[index][1] = value; + return this; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_ListCache.js +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function ListCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + ListCache.prototype.clear = listCacheClear; + ListCache.prototype["delete"] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Map.js + var Map$1 = getNative(root, "Map"); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheClear.js +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ + function mapCacheClear() { + this.size = 0; + this.__data__ = { + "hash": new Hash(), + "map": new (Map$1 || ListCache)(), + "string": new Hash() + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isKeyable.js +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ + function isKeyable(value) { + var type = typeof value; + return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getMapData.js +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ + function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheDelete.js +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function mapCacheDelete(key) { + var result = getMapData(this, key)["delete"](key); + this.size -= result ? 1 : 0; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheGet.js +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function mapCacheGet(key) { + return getMapData(this, key).get(key); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheHas.js +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function mapCacheHas(key) { + return getMapData(this, key).has(key); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheSet.js +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ + function mapCacheSet(key, value) { + var data = getMapData(this, key), size = data.size; + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_MapCache.js +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function MapCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype["delete"] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/memoize.js +/** Error message constants. */ + var FUNC_ERROR_TEXT$2 = "Expected a function"; + /** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ + function memoize(func, resolver) { + if (typeof func != "function" || resolver != null && typeof resolver != "function") throw new TypeError(FUNC_ERROR_TEXT$2); + var memoized = function() { + var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; + if (cache.has(key)) return cache.get(key); + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache)(); + return memoized; + } + memoize.Cache = MapCache; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_memoizeCapped.js +/** Used as the maximum memoize cache size. */ + var MAX_MEMOIZE_SIZE = 500; + /** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ + function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) cache.clear(); + return key; + }); + var cache = result.cache; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stringToPath.js +/** Used to match property names within property paths. */ + var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + /** Used to match backslashes in property paths. */ + var reEscapeChar = /\\(\\)?/g; + /** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ + var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46) result.push(""); + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); + }); + return result; + }); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toString.js +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ + function toString(value) { + return value == null ? "" : baseToString(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_castPath.js +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ + function castPath(value, object) { + if (isArray(value)) return value; + return isKey(value, object) ? [value] : stringToPath(toString(value)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_toKey.js +/** Used as references for various `Number` constants. */ + var INFINITY$1 = Infinity; + /** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ + function toKey(value) { + if (typeof value == "string" || isSymbol(value)) return value; + var result = value + ""; + return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGet.js +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ + function baseGet(object, path) { + path = castPath(path, object); + var index = 0, length = path.length; + while (object != null && index < length) object = object[toKey(path[index++])]; + return index && index == length ? object : void 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/get.js +/** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ + function get(object, path, defaultValue) { + var result = object == null ? void 0 : baseGet(object, path); + return result === void 0 ? defaultValue : result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayPush.js +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + function arrayPush(array, values) { + var index = -1, length = values.length, offset = array.length; + while (++index < length) array[offset + index] = values[index]; + return array; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isFlattenable.js +/** Built-in value references. */ + var spreadableSymbol = Symbol$1 ? Symbol$1.isConcatSpreadable : void 0; + /** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ + function isFlattenable(value) { + return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFlatten.js +/** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ + function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, length = array.length; + predicate || (predicate = isFlattenable); + result || (result = []); + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) if (depth > 1) baseFlatten(value, depth - 1, predicate, isStrict, result); + else arrayPush(result, value); + else if (!isStrict) result[result.length] = value; + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flatten.js +/** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ + function flatten(array) { + return (array == null ? 0 : array.length) ? baseFlatten(array, 1) : []; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_flatRest.js +/** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + function flatRest(func) { + return setToString(overRest(func, void 0, flatten), func + ""); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getPrototype.js +/** Built-in value references. */ + var getPrototype = overArg(Object.getPrototypeOf, Object); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isPlainObject.js +/** `Object#toString` result references. */ + var objectTag$3 = "[object Object]"; + /** Used for built-in method references. */ + var funcProto = Function.prototype, objectProto = Object.prototype; + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; + /** Used to check objects for own properties. */ + var hasOwnProperty$4 = objectProto.hasOwnProperty; + /** Used to infer the `Object` constructor. */ + var objectCtorString = funcToString.call(Object); + /** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ + function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag$3) return false; + var proto = getPrototype(value); + if (proto === null) return true; + var Ctor = hasOwnProperty$4.call(proto, "constructor") && proto.constructor; + return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSlice.js +/** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function baseSlice(array, start, end) { + var index = -1, length = array.length; + if (start < 0) start = -start > length ? 0 : length + start; + end = end > length ? length : end; + if (end < 0) end += length; + length = start > end ? 0 : end - start >>> 0; + start >>>= 0; + var result = Array(length); + while (++index < length) result[index] = array[index + start]; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/castArray.js +/** + * Casts `value` as an array if it's not one. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Lang + * @param {*} value The value to inspect. + * @returns {Array} Returns the cast array. + * @example + * + * _.castArray(1); + * // => [1] + * + * _.castArray({ 'a': 1 }); + * // => [{ 'a': 1 }] + * + * _.castArray('abc'); + * // => ['abc'] + * + * _.castArray(null); + * // => [null] + * + * _.castArray(undefined); + * // => [undefined] + * + * _.castArray(); + * // => [] + * + * var array = [1, 2, 3]; + * console.log(_.castArray(array) === array); + * // => true + */ + function castArray$1() { + if (!arguments.length) return []; + var value = arguments[0]; + return isArray(value) ? value : [value]; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseClamp.js +/** + * The base implementation of `_.clamp` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + */ + function baseClamp(number, lower, upper) { + if (number === number) { + if (upper !== void 0) number = number <= upper ? number : upper; + if (lower !== void 0) number = number >= lower ? number : lower; + } + return number; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/clamp.js +/** + * Clamps `number` within the inclusive `lower` and `upper` bounds. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Number + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + * @example + * + * _.clamp(-10, -5, 5); + * // => -5 + * + * _.clamp(10, -5, 5); + * // => 5 + */ + function clamp$1(number, lower, upper) { + if (upper === void 0) { + upper = lower; + lower = void 0; + } + if (upper !== void 0) { + upper = toNumber(upper); + upper = upper === upper ? upper : 0; + } + if (lower !== void 0) { + lower = toNumber(lower); + lower = lower === lower ? lower : 0; + } + return baseClamp(toNumber(number), lower, upper); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackClear.js +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ + function stackClear() { + this.__data__ = new ListCache(); + this.size = 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackDelete.js +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function stackDelete(key) { + var data = this.__data__, result = data["delete"](key); + this.size = data.size; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackGet.js +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function stackGet(key) { + return this.__data__.get(key); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackHas.js +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function stackHas(key) { + return this.__data__.has(key); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackSet.js +/** Used as the size to enable large array optimizations. */ + var LARGE_ARRAY_SIZE$1 = 200; + /** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ + function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map$1 || pairs.length < LARGE_ARRAY_SIZE$1 - 1) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Stack.js +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Stack(entries) { + this.size = (this.__data__ = new ListCache(entries)).size; + } + Stack.prototype.clear = stackClear; + Stack.prototype["delete"] = stackDelete; + Stack.prototype.get = stackGet; + Stack.prototype.has = stackHas; + Stack.prototype.set = stackSet; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssign.js +/** + * The base implementation of `_.assign` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssignIn.js +/** + * The base implementation of `_.assignIn` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneBuffer.js +/** Detect free variable `exports`. */ + var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; + /** Detect free variable `module`. */ + var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; + /** Built-in value references. */ + var Buffer$1 = freeModule && freeModule.exports === freeExports ? root.Buffer : void 0, allocUnsafe = Buffer$1 ? Buffer$1.allocUnsafe : void 0; + /** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ + function cloneBuffer(buffer, isDeep) { + if (isDeep) return buffer.slice(); + var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + buffer.copy(result); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayFilter.js +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + function arrayFilter(array, predicate) { + var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) result[resIndex++] = value; + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/stubArray.js +/** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ + function stubArray() { + return []; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getSymbols.js +/** Built-in value references. */ + var propertyIsEnumerable = Object.prototype.propertyIsEnumerable; + var nativeGetSymbols = Object.getOwnPropertySymbols; + /** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) return []; + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); + }; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copySymbols.js +/** + * Copies own symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ + function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getSymbolsIn.js +/** + * Creates an array of the own and inherited enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbolsIn = !Object.getOwnPropertySymbols ? stubArray : function(object) { + var result = []; + while (object) { + arrayPush(result, getSymbols(object)); + object = getPrototype(object); + } + return result; + }; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copySymbolsIn.js +/** + * Copies own and inherited symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ + function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn(source), object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGetAllKeys.js +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ + function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getAllKeys.js +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getAllKeysIn.js +/** + * Creates an array of own and inherited enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_DataView.js + var DataView = getNative(root, "DataView"); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Promise.js + var Promise$1 = getNative(root, "Promise"); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Set.js + var Set$1 = getNative(root, "Set"); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getTag.js +/** `Object#toString` result references. */ + var mapTag$4 = "[object Map]", objectTag$2 = "[object Object]", promiseTag = "[object Promise]", setTag$4 = "[object Set]", weakMapTag$1 = "[object WeakMap]"; + var dataViewTag$3 = "[object DataView]"; + /** Used to detect maps, sets, and weakmaps. */ + var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$1), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap$1); + /** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + var getTag = baseGetTag; + if (DataView && getTag(new DataView(/* @__PURE__ */ new ArrayBuffer(1))) != dataViewTag$3 || Map$1 && getTag(new Map$1()) != mapTag$4 || Promise$1 && getTag(Promise$1.resolve()) != promiseTag || Set$1 && getTag(new Set$1()) != setTag$4 || WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag$1) getTag = function(value) { + var result = baseGetTag(value), Ctor = result == objectTag$2 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : ""; + if (ctorString) switch (ctorString) { + case dataViewCtorString: return dataViewTag$3; + case mapCtorString: return mapTag$4; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag$4; + case weakMapCtorString: return weakMapTag$1; + } + return result; + }; + var _getTag_default = getTag; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneArray.js +/** Used to check objects for own properties. */ + var hasOwnProperty$3 = Object.prototype.hasOwnProperty; + /** + * Initializes an array clone. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. + */ + function initCloneArray(array) { + var length = array.length, result = new array.constructor(length); + if (length && typeof array[0] == "string" && hasOwnProperty$3.call(array, "index")) { + result.index = array.index; + result.input = array.input; + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Uint8Array.js +/** Built-in value references. */ + var Uint8Array$1 = root.Uint8Array; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneArrayBuffer.js +/** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ + function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array$1(result).set(new Uint8Array$1(arrayBuffer)); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneDataView.js +/** + * Creates a clone of `dataView`. + * + * @private + * @param {Object} dataView The data view to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned data view. + */ + function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneRegExp.js +/** Used to match `RegExp` flags from their coerced string values. */ + var reFlags = /\w*$/; + /** + * Creates a clone of `regexp`. + * + * @private + * @param {Object} regexp The regexp to clone. + * @returns {Object} Returns the cloned regexp. + */ + function cloneRegExp(regexp) { + var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result.lastIndex = regexp.lastIndex; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneSymbol.js +/** Used to convert symbols to primitives and strings. */ + var symbolProto$1 = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : void 0; + /** + * Creates a clone of the `symbol` object. + * + * @private + * @param {Object} symbol The symbol object to clone. + * @returns {Object} Returns the cloned symbol object. + */ + function cloneSymbol(symbol) { + return symbolValueOf$1 ? Object(symbolValueOf$1.call(symbol)) : {}; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneTypedArray.js +/** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ + function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneByTag.js +/** `Object#toString` result references. */ + var boolTag$2 = "[object Boolean]", dateTag$2 = "[object Date]", mapTag$3 = "[object Map]", numberTag$2 = "[object Number]", regexpTag$2 = "[object RegExp]", setTag$3 = "[object Set]", stringTag$2 = "[object String]", symbolTag$2 = "[object Symbol]"; + var arrayBufferTag$2 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag$1 = "[object Float32Array]", float64Tag$1 = "[object Float64Array]", int8Tag$1 = "[object Int8Array]", int16Tag$1 = "[object Int16Array]", int32Tag$1 = "[object Int32Array]", uint8Tag$1 = "[object Uint8Array]", uint8ClampedTag$1 = "[object Uint8ClampedArray]", uint16Tag$1 = "[object Uint16Array]", uint32Tag$1 = "[object Uint32Array]"; + /** + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag$2: return cloneArrayBuffer(object); + case boolTag$2: + case dateTag$2: return new Ctor(+object); + case dataViewTag$2: return cloneDataView(object, isDeep); + case float32Tag$1: + case float64Tag$1: + case int8Tag$1: + case int16Tag$1: + case int32Tag$1: + case uint8Tag$1: + case uint8ClampedTag$1: + case uint16Tag$1: + case uint32Tag$1: return cloneTypedArray(object, isDeep); + case mapTag$3: return new Ctor(); + case numberTag$2: + case stringTag$2: return new Ctor(object); + case regexpTag$2: return cloneRegExp(object); + case setTag$3: return new Ctor(); + case symbolTag$2: return cloneSymbol(object); + } + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneObject.js +/** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneObject(object) { + return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsMap.js +/** `Object#toString` result references. */ + var mapTag$2 = "[object Map]"; + /** + * The base implementation of `_.isMap` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + */ + function baseIsMap(value) { + return isObjectLike(value) && _getTag_default(value) == mapTag$2; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isMap.js + var nodeIsMap = nodeUtil && nodeUtil.isMap; + /** + * Checks if `value` is classified as a `Map` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + * @example + * + * _.isMap(new Map); + * // => true + * + * _.isMap(new WeakMap); + * // => false + */ + var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsSet.js +/** `Object#toString` result references. */ + var setTag$2 = "[object Set]"; + /** + * The base implementation of `_.isSet` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + */ + function baseIsSet(value) { + return isObjectLike(value) && _getTag_default(value) == setTag$2; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isSet.js + var nodeIsSet = nodeUtil && nodeUtil.isSet; + /** + * Checks if `value` is classified as a `Set` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + * @example + * + * _.isSet(new Set); + * // => true + * + * _.isSet(new WeakSet); + * // => false + */ + var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseClone.js +/** Used to compose bitmasks for cloning. */ + var CLONE_DEEP_FLAG$2 = 1, CLONE_FLAT_FLAG$1 = 2, CLONE_SYMBOLS_FLAG$2 = 4; + /** `Object#toString` result references. */ + var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$1 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag$1 = "[object Map]", numberTag$1 = "[object Number]", objectTag$1 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$1 = "[object Set]", stringTag$1 = "[object String]", symbolTag$1 = "[object Symbol]", weakMapTag = "[object WeakMap]"; + var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$1 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; + /** Used to identify `toStringTag` values supported by `_.clone`. */ + var cloneableTags = {}; + cloneableTags[argsTag$1] = cloneableTags[arrayTag$1] = cloneableTags[arrayBufferTag$1] = cloneableTags[dataViewTag$1] = cloneableTags[boolTag$1] = cloneableTags[dateTag$1] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag$1] = cloneableTags[numberTag$1] = cloneableTags[objectTag$1] = cloneableTags[regexpTag$1] = cloneableTags[setTag$1] = cloneableTags[stringTag$1] = cloneableTags[symbolTag$1] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; + cloneableTags[errorTag$1] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; + /** + * The base implementation of `_.clone` and `_.cloneDeep` which tracks + * traversed objects. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} bitmask The bitmask flags. + * 1 - Deep clone + * 2 - Flatten inherited properties + * 4 - Clone symbols + * @param {Function} [customizer] The function to customize cloning. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The parent object of `value`. + * @param {Object} [stack] Tracks traversed objects and their clone counterparts. + * @returns {*} Returns the cloned value. + */ + function baseClone(value, bitmask, customizer, key, object, stack) { + var result, isDeep = bitmask & CLONE_DEEP_FLAG$2, isFlat = bitmask & CLONE_FLAT_FLAG$1, isFull = bitmask & CLONE_SYMBOLS_FLAG$2; + if (customizer) result = object ? customizer(value, key, object, stack) : customizer(value); + if (result !== void 0) return result; + if (!isObject(value)) return value; + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) return copyArray(value, result); + } else { + var tag = _getTag_default(value), isFunc = tag == funcTag || tag == genTag; + if (isBuffer(value)) return cloneBuffer(value, isDeep); + if (tag == objectTag$1 || tag == argsTag$1 || isFunc && !object) { + result = isFlat || isFunc ? {} : initCloneObject(value); + if (!isDeep) return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value)); + } else { + if (!cloneableTags[tag]) return object ? value : {}; + result = initCloneByTag(value, tag, isDeep); + } + } + stack || (stack = new Stack()); + var stacked = stack.get(value); + if (stacked) return stacked; + stack.set(value, result); + if (isSet(value)) value.forEach(function(subValue) { + result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); + }); + else if (isMap(value)) value.forEach(function(subValue, key) { + result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + var props = isArr ? void 0 : (isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys)(value); + arrayEach(props || value, function(subValue, key) { + if (props) { + key = subValue; + subValue = value[key]; + } + assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/cloneDeep.js +/** Used to compose bitmasks for cloning. */ + var CLONE_DEEP_FLAG$1 = 1, CLONE_SYMBOLS_FLAG$1 = 4; + /** + * This method is like `_.clone` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @returns {*} Returns the deep cloned value. + * @see _.clone + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var deep = _.cloneDeep(objects); + * console.log(deep[0] === objects[0]); + * // => false + */ + function cloneDeep(value) { + return baseClone(value, CLONE_DEEP_FLAG$1 | CLONE_SYMBOLS_FLAG$1); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setCacheAdd.js +/** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED = "__lodash_hash_undefined__"; + /** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ + function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setCacheHas.js +/** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ + function setCacheHas(value) { + return this.__data__.has(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_SetCache.js +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ + function SetCache(values) { + var index = -1, length = values == null ? 0 : values.length; + this.__data__ = new MapCache(); + while (++index < length) this.add(values[index]); + } + SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; + SetCache.prototype.has = setCacheHas; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arraySome.js +/** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function arraySome(array, predicate) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) if (predicate(array[index], index, array)) return true; + return false; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cacheHas.js +/** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function cacheHas(cache, key) { + return cache.has(key); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalArrays.js +/** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$5 = 1, COMPARE_UNORDERED_FLAG$3 = 2; + /** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, arrLength = array.length, othLength = other.length; + if (arrLength != othLength && !(isPartial && othLength > arrLength)) return false; + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) return arrStacked == other && othStacked == array; + var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new SetCache() : void 0; + stack.set(array, other); + stack.set(other, array); + while (++index < arrLength) { + var arrValue = array[index], othValue = other[index]; + if (customizer) var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); + if (compared !== void 0) { + if (compared) continue; + result = false; + break; + } + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) return seen.push(othIndex); + })) { + result = false; + break; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + result = false; + break; + } + } + stack["delete"](array); + stack["delete"](other); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapToArray.js +/** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ + function mapToArray(map) { + var index = -1, result = Array(map.size); + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setToArray.js +/** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ + function setToArray(set) { + var index = -1, result = Array(set.size); + set.forEach(function(value) { + result[++index] = value; + }); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalByTag.js +/** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$4 = 1, COMPARE_UNORDERED_FLAG$2 = 2; + /** `Object#toString` result references. */ + var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]"; + var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]"; + /** Used to convert symbols to primitives and strings. */ + var symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; + /** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) return false; + object = object.buffer; + other = other.buffer; + case arrayBufferTag: + if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array$1(object), new Uint8Array$1(other))) return false; + return true; + case boolTag: + case dateTag: + case numberTag: return eq(+object, +other); + case errorTag: return object.name == other.name && object.message == other.message; + case regexpTag: + case stringTag: return object == other + ""; + case mapTag: var convert = mapToArray; + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4; + convert || (convert = setToArray); + if (object.size != other.size && !isPartial) return false; + var stacked = stack.get(object); + if (stacked) return stacked == other; + bitmask |= COMPARE_UNORDERED_FLAG$2; + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack["delete"](object); + return result; + case symbolTag: if (symbolValueOf) return symbolValueOf.call(object) == symbolValueOf.call(other); + } + return false; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalObjects.js +/** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$3 = 1; + /** Used to check objects for own properties. */ + var hasOwnProperty$2 = Object.prototype.hasOwnProperty; + /** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, objProps = getAllKeys(object), objLength = objProps.length; + if (objLength != getAllKeys(other).length && !isPartial) return false; + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) return false; + } + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) return objStacked == other && othStacked == object; + var result = true; + stack.set(object, other); + stack.set(other, object); + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], othValue = other[key]; + if (customizer) var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); + if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { + result = false; + break; + } + skipCtor || (skipCtor = key == "constructor"); + } + if (result && !skipCtor) { + var objCtor = object.constructor, othCtor = other.constructor; + if (objCtor != othCtor && "constructor" in object && "constructor" in other && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) result = false; + } + stack["delete"](object); + stack["delete"](other); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsEqualDeep.js +/** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$2 = 1; + /** `Object#toString` result references. */ + var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]"; + /** Used to check objects for own properties. */ + var hasOwnProperty$1 = Object.prototype.hasOwnProperty; + /** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : _getTag_default(object), othTag = othIsArr ? arrayTag : _getTag_default(other); + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) return false; + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack()); + return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) { + var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty$1.call(other, "__wrapped__"); + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; + stack || (stack = new Stack()); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) return false; + stack || (stack = new Stack()); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsEqual.js +/** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) return true; + if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) return value !== value && other !== other; + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsMatch.js +/** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$1 = 1, COMPARE_UNORDERED_FLAG$1 = 2; + /** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ + function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, length = index, noCustomizer = !customizer; + if (object == null) return !length; + object = Object(object); + while (index--) { + var data = matchData[index]; + if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) return false; + } + while (++index < length) { + data = matchData[index]; + var key = data[0], objValue = object[key], srcValue = data[1]; + if (noCustomizer && data[2]) { + if (objValue === void 0 && !(key in object)) return false; + } else { + var stack = new Stack(); + if (customizer) var result = customizer(objValue, srcValue, key, object, source, stack); + if (!(result === void 0 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) return false; + } + } + return true; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isStrictComparable.js +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ + function isStrictComparable(value) { + return value === value && !isObject(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getMatchData.js +/** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ + function getMatchData(object) { + var result = keys(object), length = result.length; + while (length--) { + var key = result[length], value = object[key]; + result[length] = [ + key, + value, + isStrictComparable(value) + ]; + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_matchesStrictComparable.js +/** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) return false; + return object[key] === srcValue && (srcValue !== void 0 || key in Object(object)); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMatches.js +/** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) return matchesStrictComparable(matchData[0][0], matchData[0][1]); + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseHasIn.js +/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ + function baseHasIn(object, key) { + return object != null && key in Object(object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hasPath.js +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ + function hasPath(object, path, hasFunc) { + path = castPath(path, object); + var index = -1, length = path.length, result = false; + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) break; + object = object[key]; + } + if (result || ++index != length) return result; + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/hasIn.js +/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ + function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMatchesProperty.js +/** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; + /** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) return matchesStrictComparable(toKey(path), srcValue); + return function(object) { + var objValue = get(object, path); + return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseProperty.js +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? void 0 : object[key]; + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePropertyDeep.js +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/property.js +/** + * Creates a function that returns the value at `path` of a given object. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + * @example + * + * var objects = [ + * { 'a': { 'b': 2 } }, + * { 'a': { 'b': 1 } } + * ]; + * + * _.map(objects, _.property('a.b')); + * // => [2, 1] + * + * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); + * // => [1, 2] + */ + function property(path) { + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIteratee.js +/** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ + function baseIteratee(value) { + if (typeof value == "function") return value; + if (value == null) return identity; + if (typeof value == "object") return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); + return property(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createBaseFor.js +/** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length; + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) break; + } + return object; + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFor.js +/** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseFor = createBaseFor(); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseForOwn.js +/** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createBaseEach.js +/** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) return collection; + if (!isArrayLike(collection)) return eachFunc(collection, iteratee); + var length = collection.length, index = fromRight ? length : -1, iterable = Object(collection); + while (fromRight ? index-- : ++index < length) if (iteratee(iterable[index], index, iterable) === false) break; + return collection; + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseEach.js +/** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ + var baseEach = createBaseEach(baseForOwn); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/now.js +/** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ + var now = function() { + return root.Date.now(); + }; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/debounce.js +/** Error message constants. */ + var FUNC_ERROR_TEXT$1 = "Expected a function"; + var nativeMax$1 = Math.max, nativeMin$1 = Math.min; + /** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ + function debounce(func, wait, options) { + var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; + if (typeof func != "function") throw new TypeError(FUNC_ERROR_TEXT$1); + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = "maxWait" in options; + maxWait = maxing ? nativeMax$1(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + function invokeFunc(time) { + var args = lastArgs, thisArg = lastThis; + lastArgs = lastThis = void 0; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + function leadingEdge(time) { + lastInvokeTime = time; + timerId = setTimeout(timerExpired, wait); + return leading ? invokeFunc(time) : result; + } + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; + return maxing ? nativeMin$1(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; + } + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; + return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; + } + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) return trailingEdge(time); + timerId = setTimeout(timerExpired, remainingWait(time)); + } + function trailingEdge(time) { + timerId = void 0; + if (trailing && lastArgs) return invokeFunc(time); + lastArgs = lastThis = void 0; + return result; + } + function cancel() { + if (timerId !== void 0) clearTimeout(timerId); + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = void 0; + } + function flush() { + return timerId === void 0 ? result : trailingEdge(now()); + } + function debounced() { + var time = now(), isInvoking = shouldInvoke(time); + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + if (isInvoking) { + if (timerId === void 0) return leadingEdge(lastCallTime); + if (maxing) { + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === void 0) timerId = setTimeout(timerExpired, wait); + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assignMergeValue.js +/** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignMergeValue(object, key, value) { + if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(key in object)) baseAssignValue(object, key, value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArrayLikeObject.js +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_safeGet.js +/** + * Gets the value at `key`, unless `key` is "__proto__" or "constructor". + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function safeGet(object, key) { + if (key === "constructor" && typeof object[key] === "function") return; + if (key == "__proto__") return; + return object[key]; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toPlainObject.js +/** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example + * + * function Foo() { + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } + * + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } + */ + function toPlainObject(value) { + return copyObject(value, keysIn(value)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMergeDeep.js +/** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ + function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : void 0; + var isCommon = newValue === void 0; + if (isCommon) { + var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); + newValue = srcValue; + if (isArr || isBuff || isTyped) if (isArray(objValue)) newValue = objValue; + else if (isArrayLikeObject(objValue)) newValue = copyArray(objValue); + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } else newValue = []; + else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) newValue = toPlainObject(objValue); + else if (!isObject(objValue) || isFunction(objValue)) newValue = initCloneObject(srcValue); + } else isCommon = false; + } + if (isCommon) { + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack["delete"](srcValue); + } + assignMergeValue(object, key, newValue); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMerge.js +/** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ + function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) return; + baseFor(source, function(srcValue, key) { + stack || (stack = new Stack()); + if (isObject(srcValue)) baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + else { + var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : void 0; + if (newValue === void 0) newValue = srcValue; + assignMergeValue(object, key, newValue); + } + }, keysIn); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayIncludesWith.js +/** + * This function is like `arrayIncludes` except that it accepts a comparator. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ + function arrayIncludesWith(array, value, comparator) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) if (comparator(value, array[index])) return true; + return false; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/last.js +/** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ + function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : void 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/findLastIndex.js + var nativeMax = Math.max, nativeMin = Math.min; + /** + * This method is like `_.findIndex` except that it iterates over elements + * of `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); + * // => 2 + * + * // The `_.matches` iteratee shorthand. + * _.findLastIndex(users, { 'user': 'barney', 'active': true }); + * // => 0 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastIndex(users, ['active', false]); + * // => 2 + * + * // The `_.property` iteratee shorthand. + * _.findLastIndex(users, 'active'); + * // => 0 + */ + function findLastIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) return -1; + var index = length - 1; + if (fromIndex !== void 0) { + index = toInteger(fromIndex); + index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return baseFindIndex(array, baseIteratee(predicate, 3), index, true); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMap.js +/** + * The base implementation of `_.map` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function baseMap(collection, iteratee) { + var index = -1, result = isArrayLike(collection) ? Array(collection.length) : []; + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/map.js +/** + * Creates an array of values by running each element in `collection` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, + * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, + * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, + * `template`, `trim`, `trimEnd`, `trimStart`, and `words` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + * @example + * + * function square(n) { + * return n * n; + * } + * + * _.map([4, 8], square); + * // => [16, 64] + * + * _.map({ 'a': 4, 'b': 8 }, square); + * // => [16, 64] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // The `_.property` iteratee shorthand. + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ + function map(collection, iteratee) { + return (isArray(collection) ? arrayMap : baseMap)(collection, baseIteratee(iteratee, 3)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flatMap.js +/** + * Creates a flattened array of values by running each element in `collection` + * thru `iteratee` and flattening the mapped results. The iteratee is invoked + * with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [n, n]; + * } + * + * _.flatMap([1, 2], duplicate); + * // => [1, 1, 2, 2] + */ + function flatMap(collection, iteratee) { + return baseFlatten(map(collection, iteratee), 1); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flattenDeep.js +/** Used as references for various `Number` constants. */ + var INFINITY = Infinity; + /** + * Recursively flattens `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flattenDeep([1, [2, [3, [4]], 5]]); + * // => [1, 2, 3, 4, 5] + */ + function flattenDeep(array) { + return (array == null ? 0 : array.length) ? baseFlatten(array, INFINITY) : []; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/fromPairs.js +/** + * The inverse of `_.toPairs`; this method returns an object composed + * from key-value `pairs`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} pairs The key-value pairs. + * @returns {Object} Returns the new object. + * @example + * + * _.fromPairs([['a', 1], ['b', 2]]); + * // => { 'a': 1, 'b': 2 } + */ + function fromPairs(pairs) { + var index = -1, length = pairs == null ? 0 : pairs.length, result = {}; + while (++index < length) { + var pair = pairs[index]; + result[pair[0]] = pair[1]; + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_parent.js +/** + * Gets the parent value at `path` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} path The path to get the parent value of. + * @returns {*} Returns the parent value. + */ + function parent(object, path) { + return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isEqual.js +/** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */ + function isEqual$1(value, other) { + return baseIsEqual(value, other); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isNil.js +/** + * Checks if `value` is `null` or `undefined`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is nullish, else `false`. + * @example + * + * _.isNil(null); + * // => true + * + * _.isNil(void 0); + * // => true + * + * _.isNil(NaN); + * // => false + */ + function isNil(value) { + return value == null; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isNull.js +/** + * Checks if `value` is `null`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `null`, else `false`. + * @example + * + * _.isNull(null); + * // => true + * + * _.isNull(void 0); + * // => false + */ + function isNull(value) { + return value === null; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isUndefined.js +/** + * Checks if `value` is `undefined`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ + function isUndefined$1(value) { + return value === void 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/merge.js +/** + * This method is like `_.assign` except that it recursively merges own and + * inherited enumerable string keyed properties of source objects into the + * destination object. Source properties that resolve to `undefined` are + * skipped if a destination value exists. Array and plain object properties + * are merged recursively. Other objects and value types are overridden by + * assignment. Source objects are applied from left to right. Subsequent + * sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @example + * + * var object = { + * 'a': [{ 'b': 2 }, { 'd': 4 }] + * }; + * + * var other = { + * 'a': [{ 'c': 3 }, { 'e': 5 }] + * }; + * + * _.merge(object, other); + * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } + */ + var merge = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); + }); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseUnset.js +/** Used to check objects for own properties. */ + var hasOwnProperty = Object.prototype.hasOwnProperty; + /** + * The base implementation of `_.unset`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The property path to unset. + * @returns {boolean} Returns `true` if the property is deleted, else `false`. + */ + function baseUnset(object, path) { + path = castPath(path, object); + var index = -1, length = path.length; + if (!length) return true; + var isRootPrimitive = object == null || typeof object !== "object" && typeof object !== "function"; + while (++index < length) { + var key = path[index]; + if (typeof key !== "string") continue; + if (key === "__proto__" && !hasOwnProperty.call(object, "__proto__")) return false; + if (key === "constructor" && index + 1 < length && typeof path[index + 1] === "string" && path[index + 1] === "prototype") { + if (isRootPrimitive && index === 0) continue; + return false; + } + } + var obj = parent(object, path); + return obj == null || delete obj[toKey(last(path))]; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_customOmitClone.js +/** + * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain + * objects. + * + * @private + * @param {*} value The value to inspect. + * @param {string} key The key of the property to inspect. + * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. + */ + function customOmitClone(value) { + return isPlainObject(value) ? void 0 : value; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/omit.js +/** Used to compose bitmasks for cloning. */ + var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; + /** + * The opposite of `_.pick`; this method creates an object composed of the + * own and inherited enumerable property paths of `object` that are not omitted. + * + * **Note:** This method is considerably slower than `_.pick`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to omit. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.omit(object, ['a', 'c']); + * // => { 'b': '2' } + */ + var omit = flatRest(function(object, paths) { + var result = {}; + if (object == null) return result; + var isDeep = false; + paths = arrayMap(paths, function(path) { + path = castPath(path, object); + isDeep || (isDeep = path.length > 1); + return path; + }); + copyObject(object, getAllKeysIn(object), result); + if (isDeep) result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); + var length = paths.length; + while (length--) baseUnset(result, paths[length]); + return result; + }); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSet.js +/** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ + function baseSet(object, path, value, customizer) { + if (!isObject(object)) return object; + path = castPath(path, object); + var index = -1, length = path.length, lastIndex = length - 1, nested = object; + while (nested != null && ++index < length) { + var key = toKey(path[index]), newValue = value; + if (key === "__proto__" || key === "constructor" || key === "prototype") return object; + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : void 0; + if (newValue === void 0) newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {}; + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePickBy.js +/** + * The base implementation of `_.pickBy` without support for iteratee shorthands. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @param {Function} predicate The function invoked per property. + * @returns {Object} Returns the new object. + */ + function basePickBy(object, paths, predicate) { + var index = -1, length = paths.length, result = {}; + while (++index < length) { + var path = paths[index], value = baseGet(object, path); + if (predicate(value, path)) baseSet(result, castPath(path, object), value); + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePick.js +/** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ + function basePick(object, paths) { + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); + }); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/pick.js +/** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ + var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); + }); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/set.js +/** + * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, + * it's created. Arrays are created for missing index properties while objects + * are created for all other missing properties. Use `_.setWith` to customize + * `path` creation. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.set(object, 'a[0].b.c', 4); + * console.log(object.a[0].b.c); + * // => 4 + * + * _.set(object, ['x', '0', 'y', 'z'], 5); + * console.log(object.x[0].y.z); + * // => 5 + */ + function set(object, path, value) { + return object == null ? object : baseSet(object, path, value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/throttle.js +/** Error message constants. */ + var FUNC_ERROR_TEXT = "Expected a function"; + /** + * Creates a throttled function that only invokes `func` at most once per + * every `wait` milliseconds. The throttled function comes with a `cancel` + * method to cancel delayed `func` invocations and a `flush` method to + * immediately invoke them. Provide `options` to indicate whether `func` + * should be invoked on the leading and/or trailing edge of the `wait` + * timeout. The `func` is invoked with the last arguments provided to the + * throttled function. Subsequent calls to the throttled function return the + * result of the last `func` invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the throttled function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.throttle` and `_.debounce`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to throttle. + * @param {number} [wait=0] The number of milliseconds to throttle invocations to. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=true] + * Specify invoking on the leading edge of the timeout. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new throttled function. + * @example + * + * // Avoid excessively updating the position while scrolling. + * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); + * + * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. + * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); + * jQuery(element).on('click', throttled); + * + * // Cancel the trailing throttled invocation. + * jQuery(window).on('popstate', throttled.cancel); + */ + function throttle(func, wait, options) { + var leading = true, trailing = true; + if (typeof func != "function") throw new TypeError(FUNC_ERROR_TEXT); + if (isObject(options)) { + leading = "leading" in options ? !!options.leading : leading; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + "leading": leading, + "maxWait": wait, + "trailing": trailing + }); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createSet.js +/** + * Creates a set object of `values`. + * + * @private + * @param {Array} values The values to add to the set. + * @returns {Object} Returns the new set. + */ + var createSet = !(Set$1 && 1 / setToArray(new Set$1([, -0]))[1] == Infinity) ? noop : function(values) { + return new Set$1(values); + }; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseUniq.js +/** Used as the size to enable large array optimizations. */ + var LARGE_ARRAY_SIZE = 200; + /** + * The base implementation of `_.uniqBy` without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ + function baseUniq(array, iteratee, comparator) { + var index = -1, includes = arrayIncludes, length = array.length, isCommon = true, result = [], seen = result; + if (comparator) { + isCommon = false; + includes = arrayIncludesWith; + } else if (length >= LARGE_ARRAY_SIZE) { + var set = iteratee ? null : createSet(array); + if (set) return setToArray(set); + isCommon = false; + includes = cacheHas; + seen = new SetCache(); + } else seen = iteratee ? [] : result; + outer: while (++index < length) { + var value = array[index], computed = iteratee ? iteratee(value) : value; + value = comparator || value !== 0 ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) if (seen[seenIndex] === computed) continue outer; + if (iteratee) seen.push(computed); + result.push(value); + } else if (!includes(seen, computed, comparator)) { + if (seen !== result) seen.push(computed); + result.push(value); + } + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/union.js +/** + * Creates an array of unique values, in order, from all given arrays using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of combined values. + * @example + * + * _.union([2], [1, 2]); + * // => [2, 1] + */ + var union = baseRest(function(arrays) { + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); + }); + +//#endregion +//#region ../../packages/utils/types.ts + const isUndefined = (val) => val === void 0; + const isBoolean = (val) => typeof val === "boolean"; + const isNumber = (val) => typeof val === "number"; + const isEmpty = (val) => !val && val !== 0 || isArray$1(val) && val.length === 0 || isObject$1(val) && !Object.keys(val).length; + const isElement$1 = (e) => { + if (typeof Element === "undefined") return false; + return e instanceof Element; + }; + const isPropAbsent = (prop) => isNil(prop); + const isStringNumber = (val) => { + if (!isString(val)) return false; + return !Number.isNaN(Number(val)); + }; + const isWindow = (val) => val === window; + +//#endregion +//#region ../../packages/utils/raf.ts + const rAF = (fn) => isClient ? window.requestAnimationFrame(fn) : setTimeout(fn, 16); + const cAF = (handle) => isClient ? window.cancelAnimationFrame(handle) : clearTimeout(handle); + +//#endregion +//#region ../../packages/utils/strings.ts +/** + * fork from {@link https://github.com/sindresorhus/escape-string-regexp} + */ + const escapeStringRegexp = (string = "") => string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d"); + const capitalize = (str) => capitalize$1(str); + +//#endregion +//#region ../../packages/utils/objects.ts + const keysOf = (arr) => Object.keys(arr); + const entriesOf = (arr) => Object.entries(arr); + const getProp = (obj, path, defaultValue) => { + return { + get value() { + return get(obj, path, defaultValue); + }, + set value(val) { + set(obj, path, val); + } + }; + }; + +//#endregion +//#region ../../packages/utils/error.ts + var ElementPlusError = class extends Error { + constructor(m) { + super(m); + this.name = "ElementPlusError"; + } + }; + function throwError(scope, m) { + throw new ElementPlusError(`[${scope}] ${m}`); + } + function debugWarn(scope, message) {} + +//#endregion +//#region ../../packages/utils/dom/style.ts + const SCOPE$9 = "utils/dom/style"; + const classNameToArray = (cls = "") => cls.split(" ").filter((item) => !!item.trim()); + const hasClass = (el, cls) => { + if (!el || !cls) return false; + if (cls.includes(" ")) throw new Error("className should not contain space."); + return el.classList.contains(cls); + }; + const addClass = (el, cls) => { + if (!el || !cls.trim()) return; + el.classList.add(...classNameToArray(cls)); + }; + const removeClass = (el, cls) => { + if (!el || !cls.trim()) return; + el.classList.remove(...classNameToArray(cls)); + }; + const getStyle = (element, styleName) => { + if (!isClient || !element || !styleName || isShadowRoot$1(element)) return ""; + let key = camelize(styleName); + if (key === "float") key = "cssFloat"; + try { + const style = element.style[key]; + if (style) return style; + const computed = document.defaultView?.getComputedStyle(element, ""); + return computed ? computed[key] : ""; + } catch { + return element.style[key]; + } + }; + const setStyle = (element, styleName, value) => { + if (!element || !styleName) return; + if (isObject$1(styleName)) entriesOf(styleName).forEach(([prop, value]) => setStyle(element, prop, value)); + else { + const key = camelize(styleName); + element.style[key] = value; + } + }; + function addUnit(value, defaultUnit = "px") { + if (!value && value !== 0) return ""; + if (isNumber(value) || isStringNumber(value)) return `${value}${defaultUnit}`; + else if (isString(value)) return value; + /* @__PURE__ */ debugWarn(SCOPE$9, "binding value must be a string or number"); + } + +//#endregion +//#region ../../packages/utils/dom/scroll.ts + const isScroll = (el, isVertical) => { + if (!isClient) return false; + const key = { + undefined: "overflow", + true: "overflow-y", + false: "overflow-x" + }[String(isVertical)]; + const overflow = getStyle(el, key); + return [ + "scroll", + "auto", + "overlay" + ].some((s) => overflow.includes(s)); + }; + const getScrollContainer = (el, isVertical) => { + if (!isClient) return; + let parent = el; + while (parent) { + if ([ + window, + document, + document.documentElement + ].includes(parent)) return window; + if (isScroll(parent, isVertical)) return parent; + if (isShadowRoot$1(parent)) parent = parent.host; + else parent = parent.parentNode; + } + return parent; + }; + let scrollBarWidth; + const getScrollBarWidth = (namespace) => { + if (!isClient) return 0; + if (scrollBarWidth !== void 0) return scrollBarWidth; + const outer = document.createElement("div"); + outer.className = `${namespace}-scrollbar__wrap`; + outer.style.visibility = "hidden"; + outer.style.width = "100px"; + outer.style.position = "absolute"; + outer.style.top = "-9999px"; + document.body.appendChild(outer); + const widthNoScroll = outer.offsetWidth; + outer.style.overflow = "scroll"; + const inner = document.createElement("div"); + inner.style.width = "100%"; + outer.appendChild(inner); + const widthWithScroll = inner.offsetWidth; + outer.parentNode?.removeChild(outer); + scrollBarWidth = widthNoScroll - widthWithScroll; + return scrollBarWidth; + }; + /** + * Scroll with in the container element, positioning the **selected** element at the top + * of the container + */ + function scrollIntoView(container, selected) { + if (!isClient) return; + if (!selected) { + container.scrollTop = 0; + return; + } + const offsetParents = []; + let pointer = selected.offsetParent; + while (pointer !== null && container !== pointer && container.contains(pointer)) { + offsetParents.push(pointer); + pointer = pointer.offsetParent; + } + const top = selected.offsetTop + offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0); + const bottom = top + selected.offsetHeight; + const viewRectTop = container.scrollTop; + const viewRectBottom = viewRectTop + container.clientHeight; + if (top < viewRectTop) container.scrollTop = top; + else if (bottom > viewRectBottom) container.scrollTop = bottom - container.clientHeight; + } + function animateScrollTo(container, from, to, duration, callback) { + const startTime = Date.now(); + let handle; + const scroll = () => { + const time = Date.now() - startTime; + const nextScrollTop = easeInOutCubic(time > duration ? duration : time, from, to, duration); + if (isWindow(container)) container.scrollTo(window.pageXOffset, nextScrollTop); + else container.scrollTop = nextScrollTop; + if (time < duration) handle = rAF(scroll); + else if (isFunction$1(callback)) callback(); + }; + scroll(); + return () => { + handle && cAF(handle); + }; + } + const getScrollElement = (target, container) => { + if (isWindow(container)) return target.ownerDocument.documentElement; + return container; + }; + const getScrollTop = (container) => { + if (isWindow(container)) return window.scrollY; + return container.scrollTop; + }; + +//#endregion +//#region ../../packages/utils/dom/element.ts + const getElement = ((target) => { + if (!isClient || target === "") return null; + if (isString(target)) try { + return document.querySelector(target); + } catch { + return null; + } + return target; + }); + +//#endregion +//#region ../../packages/utils/vue/global-node.ts + const globalNodes = []; + let target = !isClient ? void 0 : document.body; + function createGlobalNode(id) { + const el = document.createElement("div"); + if (id !== void 0) el.setAttribute("id", id); + if (target) { + target.appendChild(el); + globalNodes.push(el); + } + return el; + } + function removeGlobalNode(el) { + globalNodes.splice(globalNodes.indexOf(el), 1); + el.remove(); + } + +//#endregion +//#region ../../node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.25/node_modules/@element-plus/icons-vue/dist/index.js +/*! Element Plus Icons Vue v2.3.2 */ + var arrow_down_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ArrowDown", + __name: "arrow-down", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var arrow_left_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ArrowLeft", + __name: "arrow-left", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var arrow_right_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ArrowRight", + __name: "arrow-right", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var arrow_up_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ArrowUp", + __name: "arrow-up", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var back_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Back", + __name: "back", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("path", { + fill: "currentColor", + d: "M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64" + }), (0, vue.createElementVNode)("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" + })])); + } + }); + var calendar_default$1 = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Calendar", + __name: "calendar", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var caret_right_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "CaretRight", + __name: "caret-right", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("path", { + fill: "currentColor", + d: "M384 192v640l384-320.064z" + })])); + } + }); + var caret_top_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "CaretTop", + __name: "caret-top", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("path", { + fill: "currentColor", + d: "M512 320 192 704h639.936z" + })])); + } + }); + var check_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Check", + __name: "check", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var circle_check_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "CircleCheckFilled", + __name: "circle-check-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var circle_check_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "CircleCheck", + __name: "circle-check", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + }), (0, vue.createElementVNode)("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" + })])); + } + }); + var circle_close_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "CircleCloseFilled", + __name: "circle-close-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var circle_close_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "CircleClose", + __name: "circle-close", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + }), (0, vue.createElementVNode)("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" + })])); + } + }); + var clock_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Clock", + __name: "clock", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + (0, vue.createElementVNode)("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" + }), + (0, vue.createElementVNode)("path", { + fill: "currentColor", + d: "M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32" + }), + (0, vue.createElementVNode)("path", { + fill: "currentColor", + d: "M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32" + }) + ])); + } + }); + var close_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Close", + __name: "close", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var d_arrow_left_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "DArrowLeft", + __name: "d-arrow-left", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var d_arrow_right_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "DArrowRight", + __name: "d-arrow-right", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var delete_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Delete", + __name: "delete", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var document_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Document", + __name: "document", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var full_screen_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "FullScreen", + __name: "full-screen", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var hide_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Hide", + __name: "hide", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + }), (0, vue.createElementVNode)("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" + })])); + } + }); + var info_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "InfoFilled", + __name: "info-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var loading_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Loading", + __name: "loading", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var minus_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Minus", + __name: "minus", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("path", { + fill: "currentColor", + d: "M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64" + })])); + } + }); + var more_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "MoreFilled", + __name: "more-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var more_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "More", + __name: "more", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var picture_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "PictureFilled", + __name: "picture-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var plus_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Plus", + __name: "plus", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var question_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "QuestionFilled", + __name: "question-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var refresh_left_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "RefreshLeft", + __name: "refresh-left", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var refresh_right_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "RefreshRight", + __name: "refresh-right", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var scale_to_original_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ScaleToOriginal", + __name: "scale-to-original", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var search_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Search", + __name: "search", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var sort_down_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "SortDown", + __name: "sort-down", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var sort_up_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "SortUp", + __name: "sort-up", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var star_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "StarFilled", + __name: "star-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var star_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Star", + __name: "star", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var success_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "SuccessFilled", + __name: "success-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var view_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "View", + __name: "view", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var warning_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "WarningFilled", + __name: "warning-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var zoom_in_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ZoomIn", + __name: "zoom-in", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var zoom_out_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ZoomOut", + __name: "zoom-out", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + +//#endregion +//#region ../../packages/utils/vue/props/runtime.ts + const epPropKey = "__epPropKey"; + const definePropType = (val) => val; + const isEpProp = (val) => isObject$1(val) && !!val[epPropKey]; + /** + * @description Build prop. It can better optimize prop types + * @description 生成 prop,能更好地优化类型 + * @example + // limited options + // the type will be PropType<'light' | 'dark'> + buildProp({ + type: String, + values: ['light', 'dark'], + } as const) + * @example + // limited options and other types + // the type will be PropType<'small' | 'large' | number> + buildProp({ + type: [String, Number], + values: ['small', 'large'], + validator: (val: unknown): val is number => typeof val === 'number', + } as const) + @link see more: https://github.com/element-plus/element-plus/pull/3341 + */ + const buildProp = (prop, key) => { + if (!isObject$1(prop) || isEpProp(prop)) return prop; + const { values, required, default: defaultValue, type, validator } = prop; + const epProp = { + type, + required: !!required, + validator: values || validator ? (val) => { + let valid = false; + let allowedValues = []; + if (values) { + allowedValues = Array.from(values); + if (hasOwn(prop, "default")) allowedValues.push(defaultValue); + valid ||= allowedValues.includes(val); + } + if (validator) valid ||= validator(val); + if (!valid && allowedValues.length > 0) { + const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", "); + (0, vue.warn)(`Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(val)}.`); + } + return valid; + } : void 0, + [epPropKey]: true + }; + if (hasOwn(prop, "default")) epProp.default = defaultValue; + return epProp; + }; + const buildProps = (props) => fromPairs(Object.entries(props).map(([key, option]) => [key, buildProp(option, key)])); + +//#endregion +//#region ../../packages/utils/vue/icon.ts + const iconPropType = definePropType([ + String, + Object, + Function + ]); + const CloseComponents = { Close: close_default }; + const TypeComponents = { + Close: close_default, + SuccessFilled: success_filled_default, + InfoFilled: info_filled_default, + WarningFilled: warning_filled_default, + CircleCloseFilled: circle_close_filled_default + }; + const TypeComponentsMap = { + primary: info_filled_default, + success: success_filled_default, + warning: warning_filled_default, + error: circle_close_filled_default, + info: info_filled_default + }; + const ValidateComponentsMap = { + validating: loading_default, + success: circle_check_default, + error: circle_close_default + }; + +//#endregion +//#region ../../packages/utils/vue/install.ts + const withPropsDefaultsSetter = (target) => { + const _p = target.props; + const props = isArray$1(_p) ? fromPairs(_p.map((key) => [key, {}])) : _p; + target.setPropsDefaults = (defaults) => { + if (!props) return; + for (const [key, value] of Object.entries(defaults)) { + const prop = props[key]; + if (!hasOwn(props, key)) continue; + if (isPlainObject(prop)) { + props[key] = { + ...prop, + default: value + }; + continue; + } + props[key] = { + type: prop, + default: value + }; + } + target.props = props; + }; + }; + const withInstall = (main, extra) => { + main.install = (app) => { + for (const comp of [main, ...Object.values(extra ?? {})]) app.component(comp.name, comp); + }; + if (extra) for (const [key, comp] of Object.entries(extra)) main[key] = comp; + withPropsDefaultsSetter(main); + return main; + }; + const withInstallFunction = (fn, name) => { + fn.install = (app) => { + fn._context = app._context; + app.config.globalProperties[name] = fn; + }; + return fn; + }; + const withInstallDirective = (directive, name) => { + directive.install = (app) => { + app.directive(name, directive); + }; + return directive; + }; + const withNoopInstall = (component) => { + component.install = NOOP; + withPropsDefaultsSetter(component); + return component; + }; + +//#endregion +//#region ../../packages/utils/vue/refs.ts + const composeRefs = (...refs) => { + return (el) => { + refs.forEach((ref) => { + ref.value = el; + }); + }; + }; + +//#endregion +//#region ../../packages/utils/vue/validator.ts + const isValidComponentSize = (val) => ["", ...componentSizes].includes(val); + +//#endregion +//#region ../../packages/utils/vue/vnode.ts + const SCOPE$8 = "utils/vue/vnode"; + let PatchFlags = /* @__PURE__ */ function(PatchFlags) { + PatchFlags[PatchFlags["TEXT"] = 1] = "TEXT"; + PatchFlags[PatchFlags["CLASS"] = 2] = "CLASS"; + PatchFlags[PatchFlags["STYLE"] = 4] = "STYLE"; + PatchFlags[PatchFlags["PROPS"] = 8] = "PROPS"; + PatchFlags[PatchFlags["FULL_PROPS"] = 16] = "FULL_PROPS"; + PatchFlags[PatchFlags["HYDRATE_EVENTS"] = 32] = "HYDRATE_EVENTS"; + PatchFlags[PatchFlags["STABLE_FRAGMENT"] = 64] = "STABLE_FRAGMENT"; + PatchFlags[PatchFlags["KEYED_FRAGMENT"] = 128] = "KEYED_FRAGMENT"; + PatchFlags[PatchFlags["UNKEYED_FRAGMENT"] = 256] = "UNKEYED_FRAGMENT"; + PatchFlags[PatchFlags["NEED_PATCH"] = 512] = "NEED_PATCH"; + PatchFlags[PatchFlags["DYNAMIC_SLOTS"] = 1024] = "DYNAMIC_SLOTS"; + PatchFlags[PatchFlags["HOISTED"] = -1] = "HOISTED"; + PatchFlags[PatchFlags["BAIL"] = -2] = "BAIL"; + return PatchFlags; + }({}); + function isFragment(node) { + return (0, vue.isVNode)(node) && node.type === vue.Fragment; + } + function isComment(node) { + return (0, vue.isVNode)(node) && node.type === vue.Comment; + } + function isValidElementNode(node) { + return (0, vue.isVNode)(node) && !isFragment(node) && !isComment(node); + } + const getNormalizedProps = (node) => { + if (!(0, vue.isVNode)(node)) { + /* @__PURE__ */ debugWarn(SCOPE$8, "[getNormalizedProps] must be a VNode"); + return {}; + } + const raw = node.props || {}; + const type = ((0, vue.isVNode)(node.type) ? node.type.props : void 0) || {}; + const props = {}; + Object.keys(type).forEach((key) => { + if (hasOwn(type[key], "default")) props[key] = type[key].default; + }); + Object.keys(raw).forEach((key) => { + props[camelize(key)] = raw[key]; + }); + return props; + }; + const flattedChildren = (children) => { + const vNodes = isArray$1(children) ? children : [children]; + const result = []; + vNodes.forEach((child) => { + if (isArray$1(child)) result.push(...flattedChildren(child)); + else if ((0, vue.isVNode)(child) && child.component?.subTree) result.push(child, ...flattedChildren(child.component.subTree)); + else if ((0, vue.isVNode)(child) && isArray$1(child.children)) result.push(...flattedChildren(child.children)); + else if ((0, vue.isVNode)(child) && child.shapeFlag === 2) result.push(...flattedChildren(child.type())); + else result.push(child); + }); + return result; + }; + +//#endregion +//#region ../../packages/utils/arrays.ts + const unique = (arr) => [...new Set(arr)]; + const extractFirst = (arr) => { + return isArray$1(arr) ? arr[0] : arr; + }; + /** like `_.castArray`, except falsy value returns empty array. */ + const castArray = (arr) => { + if (!arr && arr !== 0) return []; + return isArray$1(arr) ? arr : [arr]; + }; + +//#endregion +//#region ../../packages/utils/typescript.ts + const mutable = (val) => val; + +//#endregion +//#region ../../packages/utils/throttleByRaf.ts + function throttleByRaf(cb) { + let timer = 0; + const throttle = (...args) => { + if (timer) cAF(timer); + timer = rAF(() => { + cb(...args); + timer = 0; + }); + }; + throttle.cancel = () => { + cAF(timer); + timer = 0; + }; + return throttle; + } + +//#endregion +//#region ../../packages/utils/numbers.ts +/** + * Due to browser rendering and calculation precision loss issues, + * boundary checks cannot be based solely on value equality; + * a certain range of fluctuation is permissible. + */ + function isGreaterThan(a, b, epsilon = .03) { + return a - b > epsilon; + } + +//#endregion +//#region ../../packages/hooks/use-attrs/index.ts + const DEFAULT_EXCLUDE_KEYS = ["class", "style"]; + const LISTENER_PREFIX = /^on[A-Z]/; + const useAttrs = (params = {}) => { + const { excludeListeners = false, excludeKeys } = params; + const allExcludeKeys = (0, vue.computed)(() => { + return (excludeKeys?.value || []).concat(DEFAULT_EXCLUDE_KEYS); + }); + const instance = (0, vue.getCurrentInstance)(); + if (!instance) { + /* @__PURE__ */ debugWarn("use-attrs", "getCurrentInstance() returned null. useAttrs() must be called at the top of a setup function"); + return (0, vue.computed)(() => ({})); + } + return (0, vue.computed)(() => fromPairs(Object.entries(instance.proxy?.$attrs).filter(([key]) => !allExcludeKeys.value.includes(key) && !(excludeListeners && LISTENER_PREFIX.test(key))))); + }; + +//#endregion +//#region ../../packages/hooks/use-calc-input-width/index.ts + function useCalcInputWidth() { + const calculatorRef = (0, vue.shallowRef)(); + const calculatorWidth = (0, vue.ref)(0); + const inputStyle = (0, vue.computed)(() => ({ minWidth: `${Math.max(calculatorWidth.value, MINIMUM_INPUT_WIDTH)}px` })); + const resetCalculatorWidth = () => { + calculatorWidth.value = calculatorRef.value?.getBoundingClientRect().width ?? 0; + }; + useResizeObserver(calculatorRef, resetCalculatorWidth); + return { + calculatorRef, + calculatorWidth, + inputStyle + }; + } + +//#endregion +//#region ../../packages/hooks/use-deprecated/index.ts + const useDeprecated = ({ from, replacement, scope, version, ref, type = "API" }, condition) => { + (0, vue.watch)(() => (0, vue.unref)(condition), (val) => { + if (val) /* @__PURE__ */ debugWarn(scope, `[${type}] ${from} is about to be deprecated in version ${version}, please use ${replacement} instead. +For more detail, please visit: ${ref} +`); + }, { immediate: true }); + }; + +//#endregion +//#region ../../packages/hooks/use-draggable/index.ts + const useDraggable = (targetRef, dragRef, draggable, overflow) => { + const transform = { + offsetX: 0, + offsetY: 0 + }; + const isDragging = (0, vue.ref)(false); + const adjustPosition = (moveX, moveY) => { + if (targetRef.value) { + const { offsetX, offsetY } = transform; + const targetRect = targetRef.value.getBoundingClientRect(); + const targetLeft = targetRect.left; + const targetTop = targetRect.top; + const targetWidth = targetRect.width; + const targetHeight = targetRect.height; + const clientWidth = document.documentElement.clientWidth; + const clientHeight = document.documentElement.clientHeight; + const minLeft = -targetLeft + offsetX; + const minTop = -targetTop + offsetY; + const maxLeft = clientWidth - targetLeft - targetWidth + offsetX; + const maxTop = clientHeight - targetTop - (targetHeight < clientHeight ? targetHeight : 0) + offsetY; + if (!overflow?.value) { + moveX = Math.min(Math.max(moveX, minLeft), maxLeft); + moveY = Math.min(Math.max(moveY, minTop), maxTop); + } + transform.offsetX = moveX; + transform.offsetY = moveY; + targetRef.value.style.transform = `translate(${addUnit(moveX)}, ${addUnit(moveY)})`; + } + }; + const onMousedown = (e) => { + const downX = e.clientX; + const downY = e.clientY; + const { offsetX, offsetY } = transform; + const onMousemove = (e) => { + if (!isDragging.value) isDragging.value = true; + adjustPosition(offsetX + e.clientX - downX, offsetY + e.clientY - downY); + }; + const onMouseup = () => { + isDragging.value = false; + document.removeEventListener("mousemove", onMousemove); + document.removeEventListener("mouseup", onMouseup); + }; + document.addEventListener("mousemove", onMousemove); + document.addEventListener("mouseup", onMouseup); + }; + const onDraggable = () => { + if (dragRef.value && targetRef.value) { + dragRef.value.addEventListener("mousedown", onMousedown); + window.addEventListener("resize", updatePosition); + } + }; + const offDraggable = () => { + if (dragRef.value && targetRef.value) { + dragRef.value.removeEventListener("mousedown", onMousedown); + window.removeEventListener("resize", updatePosition); + } + }; + const resetPosition = () => { + transform.offsetX = 0; + transform.offsetY = 0; + if (targetRef.value) targetRef.value.style.transform = ""; + }; + const updatePosition = () => { + const { offsetX, offsetY } = transform; + adjustPosition(offsetX, offsetY); + }; + (0, vue.onMounted)(() => { + (0, vue.watchEffect)(() => { + if (draggable.value) onDraggable(); + else offDraggable(); + }); + }); + (0, vue.onBeforeUnmount)(() => { + offDraggable(); + }); + return { + isDragging, + resetPosition, + updatePosition + }; + }; + +//#endregion +//#region ../../packages/hooks/use-focus/index.ts + const useFocus = (el) => { + return { focus: () => { + el.value?.focus?.(); + } }; + }; + +//#endregion +//#region ../../packages/locale/lang/en.ts + var en_default = { + 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}" + } + } + }; + +//#endregion +//#region ../../packages/hooks/use-locale/index.ts + const buildTranslator = (locale) => (path, option) => translate(path, option, (0, vue.unref)(locale)); + const translate = (path, option, locale) => get(locale, path, path).replace(/\{(\w+)\}/g, (_, key) => `${option?.[key] ?? `{${key}}`}`); + const buildLocaleContext = (locale) => { + return { + lang: (0, vue.computed)(() => (0, vue.unref)(locale).name), + locale: (0, vue.isRef)(locale) ? locale : (0, vue.ref)(locale), + t: buildTranslator(locale) + }; + }; + const localeContextKey = Symbol("localeContextKey"); + const useLocale = (localeOverrides) => { + const locale = localeOverrides || (0, vue.inject)(localeContextKey, (0, vue.ref)()); + return buildLocaleContext((0, vue.computed)(() => locale.value || en_default)); + }; + +//#endregion +//#region ../../packages/hooks/use-namespace/index.ts + const defaultNamespace = "el"; + const statePrefix = "is-"; + const _bem = (namespace, block, blockSuffix, element, modifier) => { + let cls = `${namespace}-${block}`; + if (blockSuffix) cls += `-${blockSuffix}`; + if (element) cls += `__${element}`; + if (modifier) cls += `--${modifier}`; + return cls; + }; + const namespaceContextKey = Symbol("namespaceContextKey"); + const useGetDerivedNamespace = (namespaceOverrides) => { + const derivedNamespace = namespaceOverrides || ((0, vue.getCurrentInstance)() ? (0, vue.inject)(namespaceContextKey, (0, vue.ref)(defaultNamespace)) : (0, vue.ref)(defaultNamespace)); + return (0, vue.computed)(() => { + return (0, vue.unref)(derivedNamespace) || defaultNamespace; + }); + }; + const useNamespace = (block, namespaceOverrides) => { + const namespace = useGetDerivedNamespace(namespaceOverrides); + const b = (blockSuffix = "") => _bem(namespace.value, block, blockSuffix, "", ""); + const e = (element) => element ? _bem(namespace.value, block, "", element, "") : ""; + const m = (modifier) => modifier ? _bem(namespace.value, block, "", "", modifier) : ""; + const be = (blockSuffix, element) => blockSuffix && element ? _bem(namespace.value, block, blockSuffix, element, "") : ""; + const em = (element, modifier) => element && modifier ? _bem(namespace.value, block, "", element, modifier) : ""; + const bm = (blockSuffix, modifier) => blockSuffix && modifier ? _bem(namespace.value, block, blockSuffix, "", modifier) : ""; + const bem = (blockSuffix, element, modifier) => blockSuffix && element && modifier ? _bem(namespace.value, block, blockSuffix, element, modifier) : ""; + const is = (name, ...args) => { + const state = args.length >= 1 ? args[0] : true; + return name && state ? `${statePrefix}${name}` : ""; + }; + const cssVar = (object) => { + const styles = {}; + for (const key in object) if (object[key]) styles[`--${namespace.value}-${key}`] = object[key]; + return styles; + }; + const cssVarBlock = (object) => { + const styles = {}; + for (const key in object) if (object[key]) styles[`--${namespace.value}-${block}-${key}`] = object[key]; + return styles; + }; + const cssVarName = (name) => `--${namespace.value}-${name}`; + const cssVarBlockName = (name) => `--${namespace.value}-${block}-${name}`; + return { + namespace, + b, + e, + m, + be, + em, + bm, + bem, + is, + cssVar, + cssVarName, + cssVarBlock, + cssVarBlockName + }; + }; + +//#endregion +//#region ../../packages/hooks/use-lockscreen/index.ts +/** + * Hook that monitoring the ref value to lock or unlock the screen. + * When the trigger became true, it assumes modal is now opened and vice versa. + * @param trigger {Ref} + */ + const useLockscreen = (trigger, options = {}) => { + if (!(0, vue.isRef)(trigger)) throwError("[useLockscreen]", "You need to pass a ref param to this function"); + const ns = options.ns || useNamespace("popup"); + const hiddenCls = (0, vue.computed)(() => ns.bm("parent", "hidden")); + let scrollBarWidth = 0; + let withoutHiddenClass = false; + let bodyWidth = "0"; + let cleaned = false; + const cleanup = () => { + if (cleaned) return; + cleaned = true; + setTimeout(() => { + if (typeof document === "undefined") return; + if (withoutHiddenClass && document) { + document.body.style.width = bodyWidth; + removeClass(document.body, hiddenCls.value); + } + }, 200); + }; + (0, vue.watch)(trigger, (val) => { + if (!val) { + cleanup(); + return; + } + cleaned = false; + withoutHiddenClass = !hasClass(document.body, hiddenCls.value); + if (withoutHiddenClass) { + bodyWidth = document.body.style.width; + addClass(document.body, hiddenCls.value); + } + scrollBarWidth = getScrollBarWidth(ns.namespace.value); + const bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight; + const bodyOverflowY = getStyle(document.body, "overflowY"); + if (scrollBarWidth > 0 && (bodyHasOverflow || bodyOverflowY === "scroll") && withoutHiddenClass) document.body.style.width = `calc(100% - ${scrollBarWidth}px)`; + }); + (0, vue.onScopeDispose)(() => cleanup()); + }; + +//#endregion +//#region ../../packages/hooks/use-modal/index.ts + const modalStack = []; + const closeModal = (e) => { + if (modalStack.length === 0) return; + if (getEventCode(e) === EVENT_CODE.esc) { + e.stopPropagation(); + modalStack[modalStack.length - 1].handleClose(); + } + }; + const useModal = (instance, visibleRef) => { + (0, vue.watch)(visibleRef, (val) => { + if (val) modalStack.push(instance); + else modalStack.splice(modalStack.indexOf(instance), 1); + }); + }; + if (isClient) useEventListener(document, "keydown", closeModal); + +//#endregion +//#region ../../packages/hooks/use-model-toggle/index.ts + const _prop = buildProp({ + type: definePropType(Boolean), + default: null + }); + const _event = buildProp({ type: definePropType(Function) }); + const createModelToggleComposable = (name) => { + const updateEventKey = `update:${name}`; + const updateEventKeyRaw = `onUpdate:${name}`; + const useModelToggleEmits = [updateEventKey]; + const useModelToggleProps = { + [name]: _prop, + [updateEventKeyRaw]: _event + }; + const useModelToggle = ({ indicator, toggleReason, shouldHideWhenRouteChanges, shouldProceed, onShow, onHide }) => { + const instance = (0, vue.getCurrentInstance)(); + const { emit } = instance; + const props = instance.props; + const hasUpdateHandler = (0, vue.computed)(() => isFunction$1(props[updateEventKeyRaw])); + const isModelBindingAbsent = (0, vue.computed)(() => props[name] === null); + const doShow = (event) => { + if (indicator.value === true) return; + indicator.value = true; + if (toggleReason) toggleReason.value = event; + if (isFunction$1(onShow)) onShow(event); + }; + const doHide = (event) => { + if (indicator.value === false) return; + indicator.value = false; + if (toggleReason) toggleReason.value = event; + if (isFunction$1(onHide)) onHide(event); + }; + const show = (event) => { + if (props.disabled === true || isFunction$1(shouldProceed) && !shouldProceed()) return; + const shouldEmit = hasUpdateHandler.value && isClient; + if (shouldEmit) emit(updateEventKey, true); + if (isModelBindingAbsent.value || !shouldEmit) doShow(event); + }; + const hide = (event) => { + if (props.disabled === true || !isClient) return; + const shouldEmit = hasUpdateHandler.value && isClient; + if (shouldEmit) emit(updateEventKey, false); + if (isModelBindingAbsent.value || !shouldEmit) doHide(event); + }; + const onChange = (val) => { + if (!isBoolean(val)) return; + if (props.disabled && val) { + if (hasUpdateHandler.value) emit(updateEventKey, false); + } else if (indicator.value !== val) if (val) doShow(); + else doHide(); + }; + const toggle = () => { + if (indicator.value) hide(); + else show(); + }; + (0, vue.watch)(() => props[name], onChange); + if (shouldHideWhenRouteChanges && instance.appContext.config.globalProperties.$route !== void 0) (0, vue.watch)(() => ({ ...instance.proxy.$route }), () => { + if (shouldHideWhenRouteChanges.value && indicator.value) hide(); + }); + (0, vue.onMounted)(() => { + onChange(props[name]); + }); + return { + hide, + show, + toggle, + hasUpdateHandler + }; + }; + return { + useModelToggle, + useModelToggleProps, + useModelToggleEmits + }; + }; + const { useModelToggle, useModelToggleProps, useModelToggleEmits } = createModelToggleComposable("modelValue"); + +//#endregion +//#region ../../packages/hooks/use-prevent-global/index.ts + const usePreventGlobal = (indicator, evt, cb) => { + const prevent = (e) => { + if (cb(e)) e.stopImmediatePropagation(); + }; + let stop = void 0; + (0, vue.watch)(() => indicator.value, (val) => { + if (val) stop = useEventListener(document, evt, prevent, true); + else stop?.(); + }, { immediate: true }); + }; + +//#endregion +//#region ../../packages/hooks/use-prop/index.ts + const useProp = (name) => { + const vm = (0, vue.getCurrentInstance)(); + return (0, vue.computed)(() => (vm?.proxy?.$props)?.[name]); + }; + +//#endregion +//#region ../../node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/dist/index.mjs + var L = "top", W = "bottom", T$1 = "right", P$1 = "left", me = "auto", Q = [ + L, + W, + T$1, + P$1 + ], Y$1 = "start", Z = "end", Ye = "clippingParents", je = "viewport", ee = "popper", Ge = "reference", De = Q.reduce(function(e, t) { + return e.concat([t + "-" + Y$1, t + "-" + Z]); + }, []), Ee = [].concat(Q, [me]).reduce(function(e, t) { + return e.concat([ + t, + t + "-" + Y$1, + t + "-" + Z + ]); + }, []), Je = "beforeRead", Ke = "read", Qe = "afterRead", Ze = "beforeMain", et = "main", tt = "afterMain", nt = "beforeWrite", rt = "write", ot = "afterWrite", it = [ + Je, + Ke, + Qe, + Ze, + et, + tt, + nt, + rt, + ot + ]; + function V(e) { + return e ? (e.nodeName || "").toLowerCase() : null; + } + function B(e) { + if (e == null) return window; + if (e.toString() !== "[object Window]") { + var t = e.ownerDocument; + return t && t.defaultView || window; + } + return e; + } + function G(e) { + return e instanceof B(e).Element || e instanceof Element; + } + function R(e) { + return e instanceof B(e).HTMLElement || e instanceof HTMLElement; + } + function Ae(e) { + if (typeof ShadowRoot == "undefined") return !1; + return e instanceof B(e).ShadowRoot || e instanceof ShadowRoot; + } + function Tt(e) { + var t = e.state; + Object.keys(t.elements).forEach(function(n) { + var r = t.styles[n] || {}, o = t.attributes[n] || {}, a = t.elements[n]; + !R(a) || !V(a) || (Object.assign(a.style, r), Object.keys(o).forEach(function(c) { + var s = o[c]; + s === !1 ? a.removeAttribute(c) : a.setAttribute(c, s === !0 ? "" : s); + })); + }); + } + function Bt(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(r) { + var o = t.elements[r], a = t.attributes[r] || {}, s = Object.keys(t.styles.hasOwnProperty(r) ? t.styles[r] : n[r]).reduce(function(i, f) { + return i[f] = "", i; + }, {}); + !R(o) || !V(o) || (Object.assign(o.style, s), Object.keys(a).forEach(function(i) { + o.removeAttribute(i); + })); + }); + }; + } + var ke = { + name: "applyStyles", + enabled: !0, + phase: "write", + fn: Tt, + effect: Bt, + requires: ["computeStyles"] + }; + function C(e) { + return e.split("-")[0]; + } + var J = Math.max, ve = Math.min, te = Math.round; + function Le() { + var e = navigator.userAgentData; + return e != null && e.brands && Array.isArray(e.brands) ? e.brands.map(function(t) { + return t.brand + "/" + t.version; + }).join(" ") : navigator.userAgent; + } + function at() { + return !/^((?!chrome|android).)*safari/i.test(Le()); + } + function ne(e, t, n) { + t === void 0 && (t = !1), n === void 0 && (n = !1); + var r = e.getBoundingClientRect(), o = 1, a = 1; + t && R(e) && (o = e.offsetWidth > 0 && te(r.width) / e.offsetWidth || 1, a = e.offsetHeight > 0 && te(r.height) / e.offsetHeight || 1); + var s = (G(e) ? B(e) : window).visualViewport, i = !at() && n, f = (r.left + (i && s ? s.offsetLeft : 0)) / o, u = (r.top + (i && s ? s.offsetTop : 0)) / a, m = r.width / o, h = r.height / a; + return { + width: m, + height: h, + top: u, + right: f + m, + bottom: u + h, + left: f, + x: f, + y: u + }; + } + function Pe(e) { + var t = ne(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 st(e, t) { + var n = t.getRootNode && t.getRootNode(); + if (e.contains(t)) return !0; + if (n && Ae(n)) { + var r = t; + do { + if (r && e.isSameNode(r)) return !0; + r = r.parentNode || r.host; + } while (r); + } + return !1; + } + function I$1(e) { + return B(e).getComputedStyle(e); + } + function Rt(e) { + return [ + "table", + "td", + "th" + ].indexOf(V(e)) >= 0; + } + function N$1(e) { + return ((G(e) ? e.ownerDocument : e.document) || window.document).documentElement; + } + function ye(e) { + return V(e) === "html" ? e : e.assignedSlot || e.parentNode || (Ae(e) ? e.host : null) || N$1(e); + } + function ft(e) { + return !R(e) || I$1(e).position === "fixed" ? null : e.offsetParent; + } + function Ht(e) { + var t = /firefox/i.test(Le()); + if (/Trident/i.test(Le()) && R(e)) { + if (I$1(e).position === "fixed") return null; + } + var o = ye(e); + for (Ae(o) && (o = o.host); R(o) && ["html", "body"].indexOf(V(o)) < 0;) { + var a = I$1(o); + if (a.transform !== "none" || a.perspective !== "none" || a.contain === "paint" || ["transform", "perspective"].indexOf(a.willChange) !== -1 || t && a.willChange === "filter" || t && a.filter && a.filter !== "none") return o; + o = o.parentNode; + } + return null; + } + function se(e) { + for (var t = B(e), n = ft(e); n && Rt(n) && I$1(n).position === "static";) n = ft(n); + return n && (V(n) === "html" || V(n) === "body" && I$1(n).position === "static") ? t : n || Ht(e) || t; + } + function Me(e) { + return ["top", "bottom"].indexOf(e) >= 0 ? "x" : "y"; + } + function fe(e, t, n) { + return J(e, ve(t, n)); + } + function St(e, t, n) { + var r = fe(e, t, n); + return r > n ? n : r; + } + function ct() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; + } + function ut(e) { + return Object.assign({}, ct(), e); + } + function pt(e, t) { + return t.reduce(function(n, r) { + return n[r] = e, n; + }, {}); + } + var Vt = function(e, t) { + return e = typeof e == "function" ? e(Object.assign({}, t.rects, { placement: t.placement })) : e, ut(typeof e != "number" ? e : pt(e, Q)); + }; + function Ct(e) { + var t, n = e.state, r = e.name, o = e.options, a = n.elements.arrow, c = n.modifiersData.popperOffsets, s = C(n.placement), i = Me(s), u = [P$1, T$1].indexOf(s) >= 0 ? "height" : "width"; + if (!(!a || !c)) { + var m = Vt(o.padding, n), h = Pe(a), l = i === "y" ? L : P$1, g = i === "y" ? W : T$1, p = n.rects.reference[u] + n.rects.reference[i] - c[i] - n.rects.popper[u], y = c[i] - n.rects.reference[i], b = se(a), x = b ? i === "y" ? b.clientHeight || 0 : b.clientWidth || 0 : 0, O = p / 2 - y / 2, d = m[l], v = x - h[u] - m[g], w = x / 2 - h[u] / 2 + O, $ = fe(d, w, v), j = i; + n.modifiersData[r] = (t = {}, t[j] = $, t.centerOffset = $ - w, t); + } + } + function qt(e) { + var t = e.state, r = e.options.element, o = r === void 0 ? "[data-popper-arrow]" : r; + o != null && (typeof o == "string" && (o = t.elements.popper.querySelector(o), !o) || st(t.elements.popper, o) && (t.elements.arrow = o)); + } + var lt = { + name: "arrow", + enabled: !0, + phase: "main", + fn: Ct, + effect: qt, + requires: ["popperOffsets"], + requiresIfExists: ["preventOverflow"] + }; + function re(e) { + return e.split("-")[1]; + } + var It = { + top: "auto", + right: "auto", + bottom: "auto", + left: "auto" + }; + function Nt(e, t) { + var n = e.x, r = e.y, o = t.devicePixelRatio || 1; + return { + x: te(n * o) / o || 0, + y: te(r * o) / o || 0 + }; + } + function dt(e) { + var t, n = e.popper, r = e.popperRect, o = e.placement, a = e.variation, c = e.offsets, s = e.position, i = e.gpuAcceleration, f = e.adaptive, u = e.roundOffsets, m = e.isFixed, h = c.x, l = h === void 0 ? 0 : h, g = c.y, p = g === void 0 ? 0 : g, y = typeof u == "function" ? u({ + x: l, + y: p + }) : { + x: l, + y: p + }; + l = y.x, p = y.y; + var b = c.hasOwnProperty("x"), x = c.hasOwnProperty("y"), O = P$1, d = L, v = window; + if (f) { + var w = se(n), $ = "clientHeight", j = "clientWidth"; + if (w === B(n) && (w = N$1(n), I$1(w).position !== "static" && s === "absolute" && ($ = "scrollHeight", j = "scrollWidth")), w = w, o === L || (o === P$1 || o === T$1) && a === Z) { + d = W; + var D = m && w === v && v.visualViewport ? v.visualViewport.height : w[$]; + p -= D - r.height, p *= i ? 1 : -1; + } + if (o === P$1 || (o === L || o === W) && a === Z) { + O = T$1; + var E = m && w === v && v.visualViewport ? v.visualViewport.width : w[j]; + l -= E - r.width, l *= i ? 1 : -1; + } + } + var A = Object.assign({ position: s }, f && It), H = u === !0 ? Nt({ + x: l, + y: p + }, B(n)) : { + x: l, + y: p + }; + if (l = H.x, p = H.y, i) { + var k; + return Object.assign({}, A, (k = {}, k[d] = x ? "0" : "", k[O] = b ? "0" : "", k.transform = (v.devicePixelRatio || 1) <= 1 ? "translate(" + l + "px, " + p + "px)" : "translate3d(" + l + "px, " + p + "px, 0)", k)); + } + return Object.assign({}, A, (t = {}, t[d] = x ? p + "px" : "", t[O] = b ? l + "px" : "", t.transform = "", t)); + } + function Ft(e) { + var t = e.state, n = e.options, r = n.gpuAcceleration, o = r === void 0 ? !0 : r, a = n.adaptive, c = a === void 0 ? !0 : a, s = n.roundOffsets, i = s === void 0 ? !0 : s, f = { + placement: C(t.placement), + variation: re(t.placement), + popper: t.elements.popper, + popperRect: t.rects.popper, + gpuAcceleration: o, + isFixed: t.options.strategy === "fixed" + }; + t.modifiersData.popperOffsets != null && (t.styles.popper = Object.assign({}, t.styles.popper, dt(Object.assign({}, f, { + offsets: t.modifiersData.popperOffsets, + position: t.options.strategy, + adaptive: c, + roundOffsets: i + })))), t.modifiersData.arrow != null && (t.styles.arrow = Object.assign({}, t.styles.arrow, dt(Object.assign({}, f, { + offsets: t.modifiersData.arrow, + position: "absolute", + adaptive: !1, + roundOffsets: i + })))), t.attributes.popper = Object.assign({}, t.attributes.popper, { "data-popper-placement": t.placement }); + } + var We = { + name: "computeStyles", + enabled: !0, + phase: "beforeWrite", + fn: Ft, + data: {} + }, ge = { passive: !0 }; + function Ut(e) { + var t = e.state, n = e.instance, r = e.options, o = r.scroll, a = o === void 0 ? !0 : o, c = r.resize, s = c === void 0 ? !0 : c, i = B(t.elements.popper), f = [].concat(t.scrollParents.reference, t.scrollParents.popper); + return a && f.forEach(function(u) { + u.addEventListener("scroll", n.update, ge); + }), s && i.addEventListener("resize", n.update, ge), function() { + a && f.forEach(function(u) { + u.removeEventListener("scroll", n.update, ge); + }), s && i.removeEventListener("resize", n.update, ge); + }; + } + var Te = { + name: "eventListeners", + enabled: !0, + phase: "write", + fn: function() {}, + effect: Ut, + data: {} + }, _t = { + left: "right", + right: "left", + bottom: "top", + top: "bottom" + }; + function be(e) { + return e.replace(/left|right|bottom|top/g, function(t) { + return _t[t]; + }); + } + var zt = { + start: "end", + end: "start" + }; + function ht(e) { + return e.replace(/start|end/g, function(t) { + return zt[t]; + }); + } + function Be(e) { + var t = B(e); + return { + scrollLeft: t.pageXOffset, + scrollTop: t.pageYOffset + }; + } + function Re(e) { + return ne(N$1(e)).left + Be(e).scrollLeft; + } + function Xt(e, t) { + var n = B(e), r = N$1(e), o = n.visualViewport, a = r.clientWidth, c = r.clientHeight, s = 0, i = 0; + if (o) { + a = o.width, c = o.height; + var f = at(); + (f || !f && t === "fixed") && (s = o.offsetLeft, i = o.offsetTop); + } + return { + width: a, + height: c, + x: s + Re(e), + y: i + }; + } + function Yt(e) { + var t, n = N$1(e), r = Be(e), o = (t = e.ownerDocument) == null ? void 0 : t.body, a = J(n.scrollWidth, n.clientWidth, o ? o.scrollWidth : 0, o ? o.clientWidth : 0), c = J(n.scrollHeight, n.clientHeight, o ? o.scrollHeight : 0, o ? o.clientHeight : 0), s = -r.scrollLeft + Re(e), i = -r.scrollTop; + return I$1(o || n).direction === "rtl" && (s += J(n.clientWidth, o ? o.clientWidth : 0) - a), { + width: a, + height: c, + x: s, + y: i + }; + } + function He(e) { + var t = I$1(e), n = t.overflow, r = t.overflowX, o = t.overflowY; + return /auto|scroll|overlay|hidden/.test(n + o + r); + } + function mt(e) { + return [ + "html", + "body", + "#document" + ].indexOf(V(e)) >= 0 ? e.ownerDocument.body : R(e) && He(e) ? e : mt(ye(e)); + } + function ce(e, t) { + var n; + t === void 0 && (t = []); + var r = mt(e), o = r === ((n = e.ownerDocument) == null ? void 0 : n.body), a = B(r), c = o ? [a].concat(a.visualViewport || [], He(r) ? r : []) : r, s = t.concat(c); + return o ? s : s.concat(ce(ye(c))); + } + function Se(e) { + return Object.assign({}, e, { + left: e.x, + top: e.y, + right: e.x + e.width, + bottom: e.y + e.height + }); + } + function Gt(e, t) { + var n = ne(e, !1, t === "fixed"); + return n.top = n.top + e.clientTop, n.left = 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 vt(e, t, n) { + return t === je ? Se(Xt(e, n)) : G(t) ? Gt(t, n) : Se(Yt(N$1(e))); + } + function Jt(e) { + var t = ce(ye(e)), r = ["absolute", "fixed"].indexOf(I$1(e).position) >= 0 && R(e) ? se(e) : e; + return G(r) ? t.filter(function(o) { + return G(o) && st(o, r) && V(o) !== "body"; + }) : []; + } + function Kt(e, t, n, r) { + var o = t === "clippingParents" ? Jt(e) : [].concat(t), a = [].concat(o, [n]), c = a[0], s = a.reduce(function(i, f) { + var u = vt(e, f, r); + return i.top = J(u.top, i.top), i.right = ve(u.right, i.right), i.bottom = ve(u.bottom, i.bottom), i.left = J(u.left, i.left), i; + }, vt(e, c, r)); + return s.width = s.right - s.left, s.height = s.bottom - s.top, s.x = s.left, s.y = s.top, s; + } + function yt(e) { + var t = e.reference, n = e.element, r = e.placement, o = r ? C(r) : null, a = r ? re(r) : null, c = t.x + t.width / 2 - n.width / 2, s = t.y + t.height / 2 - n.height / 2, i; + switch (o) { + case L: + i = { + x: c, + y: t.y - n.height + }; + break; + case W: + i = { + x: c, + y: t.y + t.height + }; + break; + case T$1: + i = { + x: t.x + t.width, + y: s + }; + break; + case P$1: + i = { + x: t.x - n.width, + y: s + }; + break; + default: i = { + x: t.x, + y: t.y + }; + } + var f = o ? Me(o) : null; + if (f != null) { + var u = f === "y" ? "height" : "width"; + switch (a) { + case Y$1: + i[f] = i[f] - (t[u] / 2 - n[u] / 2); + break; + case Z: + i[f] = i[f] + (t[u] / 2 - n[u] / 2); + break; + } + } + return i; + } + function oe(e, t) { + t === void 0 && (t = {}); + var n = t, r = n.placement, o = r === void 0 ? e.placement : r, a = n.strategy, c = a === void 0 ? e.strategy : a, s = n.boundary, i = s === void 0 ? Ye : s, f = n.rootBoundary, u = f === void 0 ? je : f, m = n.elementContext, h = m === void 0 ? ee : m, l = n.altBoundary, g = l === void 0 ? !1 : l, p = n.padding, y = p === void 0 ? 0 : p, b = ut(typeof y != "number" ? y : pt(y, Q)), x = h === ee ? Ge : ee, O = e.rects.popper, d = e.elements[g ? x : h], v = Kt(G(d) ? d : d.contextElement || N$1(e.elements.popper), i, u, c), w = ne(e.elements.reference), $ = yt({ + reference: w, + element: O, + placement: o + }), j = Se(Object.assign({}, O, $)), D = h === ee ? j : w, E = { + top: v.top - D.top + b.top, + bottom: D.bottom - v.bottom + b.bottom, + left: v.left - D.left + b.left, + right: D.right - v.right + b.right + }, A = e.modifiersData.offset; + if (h === ee && A) { + var H = A[o]; + Object.keys(E).forEach(function(k) { + var F = [T$1, W].indexOf(k) >= 0 ? 1 : -1, U = [L, W].indexOf(k) >= 0 ? "y" : "x"; + E[k] += H[U] * F; + }); + } + return E; + } + function Qt(e, t) { + t === void 0 && (t = {}); + var n = t, r = n.placement, o = n.boundary, a = n.rootBoundary, c = n.padding, s = n.flipVariations, i = n.allowedAutoPlacements, f = i === void 0 ? Ee : i, u = re(r), m = u ? s ? De : De.filter(function(g) { + return re(g) === u; + }) : Q, h = m.filter(function(g) { + return f.indexOf(g) >= 0; + }); + h.length === 0 && (h = m); + var l = h.reduce(function(g, p) { + return g[p] = oe(e, { + placement: p, + boundary: o, + rootBoundary: a, + padding: c + })[C(p)], g; + }, {}); + return Object.keys(l).sort(function(g, p) { + return l[g] - l[p]; + }); + } + function Zt(e) { + if (C(e) === me) return []; + var t = be(e); + return [ + ht(e), + t, + ht(t) + ]; + } + function en(e) { + var t = e.state, n = e.options, r = e.name; + if (!t.modifiersData[r]._skip) { + for (var o = n.mainAxis, a = o === void 0 ? !0 : o, c = n.altAxis, s = c === void 0 ? !0 : c, i = n.fallbackPlacements, f = n.padding, u = n.boundary, m = n.rootBoundary, h = n.altBoundary, l = n.flipVariations, g = l === void 0 ? !0 : l, p = n.allowedAutoPlacements, y = t.options.placement, x = C(y) === y, O = i || (x || !g ? [be(y)] : Zt(y)), d = [y].concat(O).reduce(function(z, q) { + return z.concat(C(q) === me ? Qt(t, { + placement: q, + boundary: u, + rootBoundary: m, + padding: f, + flipVariations: g, + allowedAutoPlacements: p + }) : q); + }, []), v = t.rects.reference, w = t.rects.popper, $ = /* @__PURE__ */ new Map(), j = !0, D = d[0], E = 0; E < d.length; E++) { + var A = d[E], H = C(A), k = re(A) === Y$1, F = [L, W].indexOf(H) >= 0, U = F ? "width" : "height", M = oe(t, { + placement: A, + boundary: u, + rootBoundary: m, + altBoundary: h, + padding: f + }), S = F ? k ? T$1 : P$1 : k ? W : L; + v[U] > w[U] && (S = be(S)); + var ue = be(S), _ = []; + if (a && _.push(M[H] <= 0), s && _.push(M[S] <= 0, M[ue] <= 0), _.every(function(z) { + return z; + })) { + D = A, j = !1; + break; + } + $.set(A, _); + } + if (j) { + for (var pe = g ? 3 : 1, xe = function(z) { + var q = d.find(function(de) { + var ae = $.get(de); + if (ae) return ae.slice(0, z).every(function(K) { + return K; + }); + }); + if (q) return D = q, "break"; + }, ie = pe; ie > 0; ie--) if (xe(ie) === "break") break; + } + t.placement !== D && (t.modifiersData[r]._skip = !0, t.placement = D, t.reset = !0); + } + } + var gt = { + name: "flip", + enabled: !0, + phase: "main", + fn: en, + requiresIfExists: ["offset"], + data: { _skip: !1 } + }; + function bt(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 wt(e) { + return [ + L, + T$1, + W, + P$1 + ].some(function(t) { + return e[t] >= 0; + }); + } + function tn(e) { + var t = e.state, n = e.name, r = t.rects.reference, o = t.rects.popper, a = t.modifiersData.preventOverflow, c = oe(t, { elementContext: "reference" }), s = oe(t, { altBoundary: !0 }), i = bt(c, r), f = bt(s, o, a), u = wt(i), m = wt(f); + t.modifiersData[n] = { + referenceClippingOffsets: i, + popperEscapeOffsets: f, + isReferenceHidden: u, + hasPopperEscaped: m + }, t.attributes.popper = Object.assign({}, t.attributes.popper, { + "data-popper-reference-hidden": u, + "data-popper-escaped": m + }); + } + var xt = { + name: "hide", + enabled: !0, + phase: "main", + requiresIfExists: ["preventOverflow"], + fn: tn + }; + function nn(e, t, n) { + var r = C(e), o = [P$1, L].indexOf(r) >= 0 ? -1 : 1, a = typeof n == "function" ? n(Object.assign({}, t, { placement: e })) : n, c = a[0], s = a[1]; + return c = c || 0, s = (s || 0) * o, [P$1, T$1].indexOf(r) >= 0 ? { + x: s, + y: c + } : { + x: c, + y: s + }; + } + function rn(e) { + var t = e.state, n = e.options, r = e.name, o = n.offset, a = o === void 0 ? [0, 0] : o, c = Ee.reduce(function(u, m) { + return u[m] = nn(m, t.rects, a), u; + }, {}), s = c[t.placement], i = s.x, f = s.y; + t.modifiersData.popperOffsets != null && (t.modifiersData.popperOffsets.x += i, t.modifiersData.popperOffsets.y += f), t.modifiersData[r] = c; + } + var Ot = { + name: "offset", + enabled: !0, + phase: "main", + requires: ["popperOffsets"], + fn: rn + }; + function on(e) { + var t = e.state, n = e.name; + t.modifiersData[n] = yt({ + reference: t.rects.reference, + element: t.rects.popper, + placement: t.placement + }); + } + var Ve = { + name: "popperOffsets", + enabled: !0, + phase: "read", + fn: on, + data: {} + }; + function an(e) { + return e === "x" ? "y" : "x"; + } + function sn(e) { + var t = e.state, n = e.options, r = e.name, o = n.mainAxis, a = o === void 0 ? !0 : o, c = n.altAxis, s = c === void 0 ? !1 : c, i = n.boundary, f = n.rootBoundary, u = n.altBoundary, m = n.padding, h = n.tether, l = h === void 0 ? !0 : h, g = n.tetherOffset, p = g === void 0 ? 0 : g, y = oe(t, { + boundary: i, + rootBoundary: f, + padding: m, + altBoundary: u + }), b = C(t.placement), x = re(t.placement), O = !x, d = Me(b), v = an(d), w = t.modifiersData.popperOffsets, $ = t.rects.reference, j = t.rects.popper, D = typeof p == "function" ? p(Object.assign({}, t.rects, { placement: t.placement })) : p, E = typeof D == "number" ? { + mainAxis: D, + altAxis: D + } : Object.assign({ + mainAxis: 0, + altAxis: 0 + }, D), A = t.modifiersData.offset ? t.modifiersData.offset[t.placement] : null, H = { + x: 0, + y: 0 + }; + if (w) { + if (a) { + var k, F = d === "y" ? L : P$1, U = d === "y" ? W : T$1, M = d === "y" ? "height" : "width", S = w[d], ue = S + y[F], _ = S - y[U], pe = l ? -j[M] / 2 : 0, xe = x === Y$1 ? $[M] : j[M], ie = x === Y$1 ? -j[M] : -$[M], le = t.elements.arrow, z = l && le ? Pe(le) : { + width: 0, + height: 0 + }, q = t.modifiersData["arrow#persistent"] ? t.modifiersData["arrow#persistent"].padding : ct(), de = q[F], ae = q[U], K = fe(0, $[M], z[M]), Et = O ? $[M] / 2 - pe - K - de - E.mainAxis : xe - K - de - E.mainAxis, At = O ? -$[M] / 2 + pe + K + ae + E.mainAxis : ie + K + ae + E.mainAxis, Oe = t.elements.arrow && se(t.elements.arrow), kt = Oe ? d === "y" ? Oe.clientTop || 0 : Oe.clientLeft || 0 : 0, Ce = (k = A == null ? void 0 : A[d]) != null ? k : 0, Lt = S + Et - Ce - kt, Pt = S + At - Ce, qe = fe(l ? ve(ue, Lt) : ue, S, l ? J(_, Pt) : _); + w[d] = qe, H[d] = qe - S; + } + if (s) { + var Ie, Mt = d === "x" ? L : P$1, Wt = d === "x" ? W : T$1, X = w[v], he = v === "y" ? "height" : "width", Ne = X + y[Mt], Fe = X - y[Wt], $e = [L, P$1].indexOf(b) !== -1, Ue = (Ie = A == null ? void 0 : A[v]) != null ? Ie : 0, _e = $e ? Ne : X - $[he] - j[he] - Ue + E.altAxis, ze = $e ? X + $[he] + j[he] - Ue - E.altAxis : Fe, Xe = l && $e ? St(_e, X, ze) : fe(l ? _e : Ne, X, l ? ze : Fe); + w[v] = Xe, H[v] = Xe - X; + } + t.modifiersData[r] = H; + } + } + var $t = { + name: "preventOverflow", + enabled: !0, + phase: "main", + fn: sn, + requiresIfExists: ["offset"] + }; + function fn(e) { + return { + scrollLeft: e.scrollLeft, + scrollTop: e.scrollTop + }; + } + function cn(e) { + return e === B(e) || !R(e) ? Be(e) : fn(e); + } + function un(e) { + var t = e.getBoundingClientRect(), n = te(t.width) / e.offsetWidth || 1, r = te(t.height) / e.offsetHeight || 1; + return n !== 1 || r !== 1; + } + function pn(e, t, n) { + n === void 0 && (n = !1); + var r = R(t), o = R(t) && un(t), a = N$1(t), c = ne(e, o, n), s = { + scrollLeft: 0, + scrollTop: 0 + }, i = { + x: 0, + y: 0 + }; + return (r || !r && !n) && ((V(t) !== "body" || He(a)) && (s = cn(t)), R(t) ? (i = ne(t, !0), i.x += t.clientLeft, i.y += t.clientTop) : a && (i.x = Re(a))), { + x: c.left + s.scrollLeft - i.x, + y: c.top + s.scrollTop - i.y, + width: c.width, + height: c.height + }; + } + function ln(e) { + var t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), r = []; + e.forEach(function(a) { + t.set(a.name, a); + }); + function o(a) { + n.add(a.name); + [].concat(a.requires || [], a.requiresIfExists || []).forEach(function(s) { + if (!n.has(s)) { + var i = t.get(s); + i && o(i); + } + }), r.push(a); + } + return e.forEach(function(a) { + n.has(a.name) || o(a); + }), r; + } + function dn(e) { + var t = ln(e); + return it.reduce(function(n, r) { + return n.concat(t.filter(function(o) { + return o.phase === r; + })); + }, []); + } + function hn(e) { + var t; + return function() { + return t || (t = new Promise(function(n) { + Promise.resolve().then(function() { + t = void 0, n(e()); + }); + })), t; + }; + } + function mn(e) { + var t = e.reduce(function(n, r) { + var o = n[r.name]; + return n[r.name] = o ? Object.assign({}, o, r, { + options: Object.assign({}, o.options, r.options), + data: Object.assign({}, o.data, r.data) + }) : r, n; + }, {}); + return Object.keys(t).map(function(n) { + return t[n]; + }); + } + var jt = { + placement: "bottom", + modifiers: [], + strategy: "absolute" + }; + function Dt() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; + return !t.some(function(r) { + return !(r && typeof r.getBoundingClientRect == "function"); + }); + } + function we(e) { + e === void 0 && (e = {}); + var t = e, n = t.defaultModifiers, r = n === void 0 ? [] : n, o = t.defaultOptions, a = o === void 0 ? jt : o; + return function(c, s, i) { + i === void 0 && (i = a); + var f = { + placement: "bottom", + orderedModifiers: [], + options: Object.assign({}, jt, a), + modifiersData: {}, + elements: { + reference: c, + popper: s + }, + attributes: {}, + styles: {} + }, u = [], m = !1, h = { + state: f, + setOptions: function(p) { + var y = typeof p == "function" ? p(f.options) : p; + g(), f.options = Object.assign({}, a, f.options, y), f.scrollParents = { + reference: G(c) ? ce(c) : c.contextElement ? ce(c.contextElement) : [], + popper: ce(s) + }; + var b = dn(mn([].concat(r, f.options.modifiers))); + return f.orderedModifiers = b.filter(function(x) { + return x.enabled; + }), l(), h.update(); + }, + forceUpdate: function() { + if (!m) { + var p = f.elements, y = p.reference, b = p.popper; + if (Dt(y, b)) { + f.rects = { + reference: pn(y, se(b), f.options.strategy === "fixed"), + popper: Pe(b) + }, f.reset = !1, f.placement = f.options.placement, f.orderedModifiers.forEach(function(j) { + return f.modifiersData[j.name] = Object.assign({}, j.data); + }); + for (var x = 0; x < f.orderedModifiers.length; x++) { + if (f.reset === !0) { + f.reset = !1, x = -1; + continue; + } + var O = f.orderedModifiers[x], d = O.fn, v = O.options, w = v === void 0 ? {} : v, $ = O.name; + typeof d == "function" && (f = d({ + state: f, + options: w, + name: $, + instance: h + }) || f); + } + } + } + }, + update: hn(function() { + return new Promise(function(p) { + h.forceUpdate(), p(f); + }); + }), + destroy: function() { + g(), m = !0; + } + }; + if (!Dt(c, s)) return h; + h.setOptions(i).then(function(p) { + !m && i.onFirstUpdate && i.onFirstUpdate(p); + }); + function l() { + f.orderedModifiers.forEach(function(p) { + var y = p.name, b = p.options, x = b === void 0 ? {} : b, O = p.effect; + if (typeof O == "function") { + var d = O({ + state: f, + name: y, + instance: h, + options: x + }), v = function() {}; + u.push(d || v); + } + }); + } + function g() { + u.forEach(function(p) { + return p(); + }), u = []; + } + return h; + }; + } + var vn = we(), gn = we({ defaultModifiers: [ + Te, + Ve, + We, + ke + ] }), wn = we({ defaultModifiers: [ + Te, + Ve, + We, + ke, + Ot, + gt, + $t, + lt, + xt + ] }); + +//#endregion +//#region ../../packages/hooks/use-popper/index.ts + const usePopper = (referenceElementRef, popperElementRef, opts = {}) => { + const stateUpdater = { + name: "updateState", + enabled: true, + phase: "write", + fn: ({ state }) => { + const derivedState = deriveState(state); + Object.assign(states.value, derivedState); + }, + requires: ["computeStyles"] + }; + const options = (0, vue.computed)(() => { + const { onFirstUpdate, placement, strategy, modifiers } = (0, vue.unref)(opts); + return { + onFirstUpdate, + placement: placement || "bottom", + strategy: strategy || "absolute", + modifiers: [ + ...modifiers || [], + stateUpdater, + { + name: "applyStyles", + enabled: false + } + ] + }; + }); + const instanceRef = (0, vue.shallowRef)(); + const states = (0, vue.ref)({ + styles: { + popper: { + position: (0, vue.unref)(options).strategy, + left: "0", + top: "0" + }, + arrow: { position: "absolute" } + }, + attributes: {} + }); + const destroy = () => { + if (!instanceRef.value) return; + instanceRef.value.destroy(); + instanceRef.value = void 0; + }; + (0, vue.watch)(options, (newOptions) => { + const instance = (0, vue.unref)(instanceRef); + if (instance) instance.setOptions(newOptions); + }, { deep: true }); + (0, vue.watch)([referenceElementRef, popperElementRef], ([referenceElement, popperElement]) => { + destroy(); + if (!referenceElement || !popperElement) return; + instanceRef.value = wn(referenceElement, popperElement, (0, vue.unref)(options)); + }); + (0, vue.onBeforeUnmount)(() => { + destroy(); + }); + return { + state: (0, vue.computed)(() => ({ ...(0, vue.unref)(instanceRef)?.state || {} })), + styles: (0, vue.computed)(() => (0, vue.unref)(states).styles), + attributes: (0, vue.computed)(() => (0, vue.unref)(states).attributes), + update: () => (0, vue.unref)(instanceRef)?.update(), + forceUpdate: () => (0, vue.unref)(instanceRef)?.forceUpdate(), + instanceRef: (0, vue.computed)(() => (0, vue.unref)(instanceRef)) + }; + }; + function deriveState(state) { + const elements = Object.keys(state.elements); + return { + styles: fromPairs(elements.map((element) => [element, state.styles[element] || {}])), + attributes: fromPairs(elements.map((element) => [element, state.attributes[element]])) + }; + } + +//#endregion +//#region ../../packages/hooks/use-same-target/index.ts + const useSameTarget = (handleClick) => { + if (!handleClick) return { + onClick: NOOP, + onMousedown: NOOP, + onMouseup: NOOP + }; + let mousedownTarget = false; + let mouseupTarget = false; + const onClick = (e) => { + if (mousedownTarget && mouseupTarget) handleClick(e); + mousedownTarget = mouseupTarget = false; + }; + const onMousedown = (e) => { + mousedownTarget = e.target === e.currentTarget; + }; + const onMouseup = (e) => { + mouseupTarget = e.target === e.currentTarget; + }; + return { + onClick, + onMousedown, + onMouseup + }; + }; + +//#endregion +//#region ../../packages/hooks/use-teleport/index.ts + const useTeleport = (contentRenderer, appendToBody) => { + const isTeleportVisible = (0, vue.ref)(false); + if (!isClient) return { + isTeleportVisible, + showTeleport: NOOP, + hideTeleport: NOOP, + renderTeleport: NOOP + }; + let $el = null; + const showTeleport = () => { + isTeleportVisible.value = true; + if ($el !== null) return; + $el = createGlobalNode(); + }; + const hideTeleport = () => { + isTeleportVisible.value = false; + if ($el !== null) { + removeGlobalNode($el); + $el = null; + } + }; + const renderTeleport = () => { + return appendToBody.value !== true ? contentRenderer() : isTeleportVisible.value ? [(0, vue.h)(vue.Teleport, { to: $el }, contentRenderer())] : void 0; + }; + (0, vue.onUnmounted)(hideTeleport); + return { + isTeleportVisible, + showTeleport, + hideTeleport, + renderTeleport + }; + }; + +//#endregion +//#region ../../packages/hooks/use-throttle-render/index.ts + const useThrottleRender = (loading, throttle = 0) => { + if (throttle === 0) return loading; + const throttled = (0, vue.ref)(isObject$1(throttle) && Boolean(throttle.initVal)); + let timeoutHandle = null; + const dispatchThrottling = (timer) => { + if (isUndefined(timer)) { + throttled.value = loading.value; + return; + } + if (timeoutHandle) clearTimeout(timeoutHandle); + timeoutHandle = setTimeout(() => { + throttled.value = loading.value; + }, timer); + }; + const dispatcher = (type) => { + if (type === "leading") if (isNumber(throttle)) dispatchThrottling(throttle); + else dispatchThrottling(throttle.leading); + else if (isObject$1(throttle)) dispatchThrottling(throttle.trailing); + else throttled.value = false; + }; + (0, vue.onMounted)(() => dispatcher("leading")); + (0, vue.watch)(() => loading.value, (val) => { + dispatcher(val ? "leading" : "trailing"); + }); + return throttled; + }; + +//#endregion +//#region ../../packages/hooks/use-timeout/index.ts + function useTimeout() { + let timeoutHandle; + const registerTimeout = (fn, delay) => { + cancelTimeout(); + timeoutHandle = globalThis.setTimeout(fn, delay); + }; + const cancelTimeout = () => { + if (timeoutHandle === void 0) return; + globalThis.clearTimeout(timeoutHandle); + timeoutHandle = void 0; + }; + tryOnScopeDispose(() => cancelTimeout()); + return { + registerTimeout, + cancelTimeout + }; + } + +//#endregion +//#region ../../packages/hooks/use-transition-fallthrough/index.ts +/* istanbul ignore file */ + const AFTER_APPEAR = "after-appear"; + const AFTER_ENTER = "after-enter"; + const AFTER_LEAVE = "after-leave"; + const APPEAR = "appear"; + const APPEAR_CANCELLED = "appear-cancelled"; + const BEFORE_ENTER = "before-enter"; + const BEFORE_LEAVE = "before-leave"; + const ENTER = "enter"; + const ENTER_CANCELLED = "enter-cancelled"; + const LEAVE = "leave"; + const LEAVE_CANCELLED = "leave-cancelled"; + const useTransitionFallthroughEmits = [ + AFTER_APPEAR, + AFTER_ENTER, + AFTER_LEAVE, + APPEAR, + APPEAR_CANCELLED, + BEFORE_ENTER, + BEFORE_LEAVE, + ENTER, + ENTER_CANCELLED, + LEAVE, + LEAVE_CANCELLED + ]; + /** + * NOTE: + * This is only a delegator for delegating transition callbacks. + * Use this at your need. + */ + /** + * Simple usage + * + * In your setups: + * + * setup() { + * const fallthroughMethods = useTransitionFallthrough() + * return fallthrough + * } + * + * In your template: + * + * + * + */ + const useTransitionFallthrough = () => { + const { emit } = (0, vue.getCurrentInstance)(); + return { + onAfterAppear: () => { + emit(AFTER_APPEAR); + }, + onAfterEnter: () => { + emit(AFTER_ENTER); + }, + onAfterLeave: () => { + emit(AFTER_LEAVE); + }, + onAppearCancelled: () => { + emit(APPEAR_CANCELLED); + }, + onBeforeEnter: () => { + emit(BEFORE_ENTER); + }, + onBeforeLeave: () => { + emit(BEFORE_LEAVE); + }, + onEnter: () => { + emit(ENTER); + }, + onEnterCancelled: () => { + emit(ENTER_CANCELLED); + }, + onLeave: () => { + emit(LEAVE); + }, + onLeaveCancelled: () => { + emit(LEAVE_CANCELLED); + } + }; + }; + +//#endregion +//#region ../../packages/hooks/use-id/index.ts + const defaultIdInjection = { + prefix: Math.floor(Math.random() * 1e4), + current: 0 + }; + const ID_INJECTION_KEY = Symbol("elIdInjection"); + const useIdInjection = () => { + return (0, vue.getCurrentInstance)() ? (0, vue.inject)(ID_INJECTION_KEY, defaultIdInjection) : defaultIdInjection; + }; + const useId = (deterministicId) => { + const idInjection = useIdInjection(); + if (!isClient && idInjection === defaultIdInjection) /* @__PURE__ */ debugWarn("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, +})`); + const namespace = useGetDerivedNamespace(); + return computedEager(() => (0, vue.unref)(deterministicId) || `${namespace.value}-id-${idInjection.prefix}-${idInjection.current++}`); + }; + +//#endregion +//#region ../../packages/hooks/use-escape-keydown/index.ts + let registeredEscapeHandlers = []; + const cachedHandler = (event) => { + if (getEventCode(event) === EVENT_CODE.esc) registeredEscapeHandlers.forEach((registeredHandler) => registeredHandler(event)); + }; + const useEscapeKeydown = (handler) => { + (0, vue.onMounted)(() => { + if (registeredEscapeHandlers.length === 0) document.addEventListener("keydown", cachedHandler); + if (isClient) registeredEscapeHandlers.push(handler); + }); + (0, vue.onBeforeUnmount)(() => { + registeredEscapeHandlers = registeredEscapeHandlers.filter((registeredHandler) => registeredHandler !== handler); + if (registeredEscapeHandlers.length === 0) { + if (isClient) document.removeEventListener("keydown", cachedHandler); + } + }); + }; + +//#endregion +//#region ../../packages/hooks/use-popper-container/index.ts + const usePopperContainerId = () => { + const namespace = useGetDerivedNamespace(); + const idInjection = useIdInjection(); + const id = (0, vue.computed)(() => { + return `${namespace.value}-popper-container-${idInjection.prefix}`; + }); + return { + id, + selector: (0, vue.computed)(() => `#${id.value}`) + }; + }; + const createContainer = (id) => { + const container = document.createElement("div"); + container.id = id; + document.body.appendChild(container); + return container; + }; + const usePopperContainer = () => { + const { id, selector } = usePopperContainerId(); + (0, vue.onBeforeMount)(() => { + if (!isClient) return; + if (!document.body.querySelector(selector.value)) createContainer(id.value); + }); + return { + id, + selector + }; + }; + +//#endregion +//#region ../../packages/hooks/use-intermediate-render/index.ts + const useDelayedRender = ({ indicator, intermediateIndicator, shouldSetIntermediate = () => true, beforeShow, afterShow, afterHide, beforeHide }) => { + (0, vue.watch)(() => (0, vue.unref)(indicator), (val) => { + if (val) { + beforeShow?.(); + (0, vue.nextTick)(() => { + if (!(0, vue.unref)(indicator)) return; + if (shouldSetIntermediate("show")) intermediateIndicator.value = true; + }); + } else { + beforeHide?.(); + (0, vue.nextTick)(() => { + if ((0, vue.unref)(indicator)) return; + if (shouldSetIntermediate("hide")) intermediateIndicator.value = false; + }); + } + }); + (0, vue.watch)(() => intermediateIndicator.value, (val) => { + if (val) afterShow?.(); + else afterHide?.(); + }); + }; + +//#endregion +//#region ../../packages/hooks/use-delayed-toggle/index.ts +/** + * @deprecated Removed after 3.0.0, Use `UseDelayedToggleProps` instead. + */ + const useDelayedToggleProps = buildProps({ + showAfter: { + type: Number, + default: 0 + }, + hideAfter: { + type: Number, + default: 200 + }, + autoClose: { + type: Number, + default: 0 + } + }); + const useDelayedTogglePropsDefaults = { + showAfter: 0, + hideAfter: 200, + autoClose: 0 + }; + const useDelayedToggle = ({ showAfter, hideAfter, autoClose, open, close }) => { + const { registerTimeout } = useTimeout(); + const { registerTimeout: registerTimeoutForAutoClose, cancelTimeout: cancelTimeoutForAutoClose } = useTimeout(); + const onOpen = (event, delay = (0, vue.unref)(showAfter)) => { + registerTimeout(() => { + open(event); + const _autoClose = (0, vue.unref)(autoClose); + if (isNumber(_autoClose) && _autoClose > 0) registerTimeoutForAutoClose(() => { + close(event); + }, _autoClose); + }, delay); + }; + const onClose = (event, delay = (0, vue.unref)(hideAfter)) => { + cancelTimeoutForAutoClose(); + registerTimeout(() => { + close(event); + }, delay); + }; + return { + onOpen, + onClose + }; + }; + +//#endregion +//#region ../../packages/hooks/use-forward-ref/index.ts + const FORWARD_REF_INJECTION_KEY = Symbol("elForwardRef"); + const useForwardRef = (forwardRef) => { + const setForwardRef = ((el) => { + forwardRef.value = el; + }); + (0, vue.provide)(FORWARD_REF_INJECTION_KEY, { setForwardRef }); + }; + const useForwardRefDirective = (setForwardRef) => { + return { + mounted(el) { + setForwardRef(el); + }, + updated(el) { + setForwardRef(el); + }, + unmounted() { + setForwardRef(null); + } + }; + }; + +//#endregion +//#region ../../packages/hooks/use-z-index/index.ts + const initial = { current: 0 }; + const zIndex = (0, vue.ref)(0); + const defaultInitialZIndex = 2e3; + const ZINDEX_INJECTION_KEY = Symbol("elZIndexContextKey"); + const zIndexContextKey = Symbol("zIndexContextKey"); + const useZIndex = (zIndexOverrides) => { + const increasingInjection = (0, vue.getCurrentInstance)() ? (0, vue.inject)(ZINDEX_INJECTION_KEY, initial) : initial; + const zIndexInjection = zIndexOverrides || ((0, vue.getCurrentInstance)() ? (0, vue.inject)(zIndexContextKey, void 0) : void 0); + const initialZIndex = (0, vue.computed)(() => { + const zIndexFromInjection = (0, vue.unref)(zIndexInjection); + return isNumber(zIndexFromInjection) ? zIndexFromInjection : defaultInitialZIndex; + }); + const currentZIndex = (0, vue.computed)(() => initialZIndex.value + zIndex.value); + const nextZIndex = () => { + increasingInjection.current++; + zIndex.value = increasingInjection.current; + return currentZIndex.value; + }; + if (!isClient && !(0, vue.inject)(ZINDEX_INJECTION_KEY)) /* @__PURE__ */ debugWarn("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 })`); + return { + initialZIndex, + currentZIndex, + nextZIndex + }; + }; + +//#endregion +//#region ../../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs + const min$1 = Math.min; + const max$1 = Math.max; + const round = Math.round; + const floor$1 = Math.floor; + const createCoords = (v) => ({ + x: v, + y: v + }); + const oppositeSideMap = { + left: "right", + right: "left", + bottom: "top", + top: "bottom" + }; + const oppositeAlignmentMap = { + start: "end", + end: "start" + }; + function clamp(start, value, end) { + return max$1(start, min$1(value, end)); + } + function evaluate(value, param) { + return typeof value === "function" ? value(param) : value; + } + function getSide(placement) { + return placement.split("-")[0]; + } + function getAlignment(placement) { + return placement.split("-")[1]; + } + function getOppositeAxis(axis) { + return axis === "x" ? "y" : "x"; + } + function getAxisLength(axis) { + return axis === "y" ? "height" : "width"; + } + const yAxisSides = /* @__PURE__ */ new Set(["top", "bottom"]); + function getSideAxis(placement) { + return yAxisSides.has(getSide(placement)) ? "y" : "x"; + } + function getAlignmentAxis(placement) { + return getOppositeAxis(getSideAxis(placement)); + } + function getAlignmentSides(placement, rects, rtl) { + if (rtl === void 0) rtl = false; + const alignment = getAlignment(placement); + const alignmentAxis = getAlignmentAxis(placement); + const length = getAxisLength(alignmentAxis); + let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top"; + if (rects.reference[length] > rects.floating[length]) mainAlignmentSide = getOppositePlacement(mainAlignmentSide); + return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)]; + } + function getExpandedPlacements(placement) { + const oppositePlacement = getOppositePlacement(placement); + return [ + getOppositeAlignmentPlacement(placement), + oppositePlacement, + getOppositeAlignmentPlacement(oppositePlacement) + ]; + } + function getOppositeAlignmentPlacement(placement) { + return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]); + } + const lrPlacement = ["left", "right"]; + const rlPlacement = ["right", "left"]; + const tbPlacement = ["top", "bottom"]; + const btPlacement = ["bottom", "top"]; + function getSideList(side, isStart, rtl) { + switch (side) { + case "top": + case "bottom": + if (rtl) return isStart ? rlPlacement : lrPlacement; + return isStart ? lrPlacement : rlPlacement; + case "left": + case "right": return isStart ? tbPlacement : btPlacement; + default: return []; + } + } + function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) { + const alignment = getAlignment(placement); + let list = getSideList(getSide(placement), direction === "start", rtl); + if (alignment) { + list = list.map((side) => side + "-" + alignment); + if (flipAlignment) list = list.concat(list.map(getOppositeAlignmentPlacement)); + } + return list; + } + function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]); + } + function expandPaddingObject(padding) { + return { + top: 0, + right: 0, + bottom: 0, + left: 0, + ...padding + }; + } + function getPaddingObject(padding) { + return typeof padding !== "number" ? expandPaddingObject(padding) : { + top: padding, + right: padding, + bottom: padding, + left: padding + }; + } + function rectToClientRect(rect) { + const { x, y, width, height } = rect; + return { + width, + height, + top: y, + left: x, + right: x + width, + bottom: y + height, + x, + y + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/@floating-ui+core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs + function computeCoordsFromPlacement(_ref, placement, rtl) { + let { reference, floating } = _ref; + const sideAxis = getSideAxis(placement); + const alignmentAxis = getAlignmentAxis(placement); + const alignLength = getAxisLength(alignmentAxis); + const side = getSide(placement); + const isVertical = sideAxis === "y"; + const commonX = reference.x + reference.width / 2 - floating.width / 2; + const commonY = reference.y + reference.height / 2 - floating.height / 2; + const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2; + let coords; + switch (side) { + case "top": + coords = { + x: commonX, + y: reference.y - floating.height + }; + break; + case "bottom": + coords = { + x: commonX, + y: reference.y + reference.height + }; + break; + case "right": + coords = { + x: reference.x + reference.width, + y: commonY + }; + break; + case "left": + coords = { + x: reference.x - floating.width, + y: commonY + }; + break; + default: coords = { + x: reference.x, + y: reference.y + }; + } + switch (getAlignment(placement)) { + case "start": + coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1); + break; + case "end": + coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1); + break; + } + return coords; + } + /** + * Computes the `x` and `y` coordinates that will place the floating element + * next to a given reference element. + * + * This export does not have any `platform` interface logic. You will need to + * write one for the platform you are using Floating UI with. + */ + const computePosition$1 = async (reference, floating, config) => { + const { placement = "bottom", strategy = "absolute", middleware = [], platform } = config; + const validMiddleware = middleware.filter(Boolean); + const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating)); + let rects = await platform.getElementRects({ + reference, + floating, + strategy + }); + let { x, y } = computeCoordsFromPlacement(rects, placement, rtl); + let statefulPlacement = placement; + let middlewareData = {}; + let resetCount = 0; + for (let i = 0; i < validMiddleware.length; i++) { + const { name, fn } = validMiddleware[i]; + const { x: nextX, y: nextY, data, reset } = await fn({ + x, + y, + initialPlacement: placement, + placement: statefulPlacement, + strategy, + middlewareData, + rects, + platform, + elements: { + reference, + floating + } + }); + x = nextX != null ? nextX : x; + y = nextY != null ? nextY : y; + middlewareData = { + ...middlewareData, + [name]: { + ...middlewareData[name], + ...data + } + }; + if (reset && resetCount <= 50) { + resetCount++; + if (typeof reset === "object") { + if (reset.placement) statefulPlacement = reset.placement; + if (reset.rects) rects = reset.rects === true ? await platform.getElementRects({ + reference, + floating, + strategy + }) : reset.rects; + ({x, y} = computeCoordsFromPlacement(rects, statefulPlacement, rtl)); + } + i = -1; + } + } + return { + x, + y, + placement: statefulPlacement, + strategy, + middlewareData + }; + }; + /** + * Resolves with an object of overflow side offsets that determine how much the + * element is overflowing a given clipping boundary on each side. + * - positive = overflowing the boundary by that number of pixels + * - negative = how many pixels left before it will overflow + * - 0 = lies flush with the boundary + * @see https://floating-ui.com/docs/detectOverflow + */ + async function detectOverflow$1(state, options) { + var _await$platform$isEle; + if (options === void 0) options = {}; + const { x, y, platform, rects, elements, strategy } = state; + const { boundary = "clippingAncestors", rootBoundary = "viewport", elementContext = "floating", altBoundary = false, padding = 0 } = evaluate(options, state); + const paddingObject = getPaddingObject(padding); + const element = elements[altBoundary ? elementContext === "floating" ? "reference" : "floating" : elementContext]; + const clippingClientRect = rectToClientRect(await platform.getClippingRect({ + element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating)), + boundary, + rootBoundary, + strategy + })); + const rect = elementContext === "floating" ? { + x, + y, + width: rects.floating.width, + height: rects.floating.height + } : rects.reference; + const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)); + const offsetScale = await (platform.isElement == null ? void 0 : platform.isElement(offsetParent)) ? await (platform.getScale == null ? void 0 : platform.getScale(offsetParent)) || { + x: 1, + y: 1 + } : { + x: 1, + y: 1 + }; + const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({ + elements, + rect, + offsetParent, + strategy + }) : rect); + return { + top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y, + bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y, + left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x, + right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x + }; + } + /** + * Provides data to position an inner element of the floating element so that it + * appears centered to the reference element. + * @see https://floating-ui.com/docs/arrow + */ + const arrow$1 = (options) => ({ + name: "arrow", + options, + async fn(state) { + const { x, y, placement, rects, platform, elements, middlewareData } = state; + const { element, padding = 0 } = evaluate(options, state) || {}; + if (element == null) return {}; + const paddingObject = getPaddingObject(padding); + const coords = { + x, + y + }; + const axis = getAlignmentAxis(placement); + const length = getAxisLength(axis); + const arrowDimensions = await platform.getDimensions(element); + const isYAxis = axis === "y"; + const minProp = isYAxis ? "top" : "left"; + const maxProp = isYAxis ? "bottom" : "right"; + const clientProp = isYAxis ? "clientHeight" : "clientWidth"; + const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length]; + const startDiff = coords[axis] - rects.reference[axis]; + const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element)); + let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0; + if (!clientSize || !await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent))) clientSize = elements.floating[clientProp] || rects.floating[length]; + const centerToReference = endDiff / 2 - startDiff / 2; + const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1; + const minPadding = min$1(paddingObject[minProp], largestPossiblePadding); + const maxPadding = min$1(paddingObject[maxProp], largestPossiblePadding); + const min$1$1 = minPadding; + const max = clientSize - arrowDimensions[length] - maxPadding; + const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference; + const offset = clamp(min$1$1, center, max); + const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0; + const alignmentOffset = shouldAddOffset ? center < min$1$1 ? center - min$1$1 : center - max : 0; + return { + [axis]: coords[axis] + alignmentOffset, + data: { + [axis]: offset, + centerOffset: center - offset - alignmentOffset, + ...shouldAddOffset && { alignmentOffset } + }, + reset: shouldAddOffset + }; + } + }); + /** + * Optimizes the visibility of the floating element by flipping the `placement` + * in order to keep it in view when the preferred placement(s) will overflow the + * clipping boundary. Alternative to `autoPlacement`. + * @see https://floating-ui.com/docs/flip + */ + const flip$1 = function(options) { + if (options === void 0) options = {}; + return { + name: "flip", + options, + async fn(state) { + var _middlewareData$arrow, _middlewareData$flip; + const { placement, middlewareData, rects, initialPlacement, platform, elements } = state; + const { mainAxis: checkMainAxis = true, crossAxis: checkCrossAxis = true, fallbackPlacements: specifiedFallbackPlacements, fallbackStrategy = "bestFit", fallbackAxisSideDirection = "none", flipAlignment = true, ...detectOverflowOptions } = evaluate(options, state); + if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) return {}; + const side = getSide(placement); + const initialSideAxis = getSideAxis(initialPlacement); + const isBasePlacement = getSide(initialPlacement) === initialPlacement; + const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)); + const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement)); + const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== "none"; + if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl)); + const placements = [initialPlacement, ...fallbackPlacements]; + const overflow = await detectOverflow$1(state, detectOverflowOptions); + const overflows = []; + let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || []; + if (checkMainAxis) overflows.push(overflow[side]); + if (checkCrossAxis) { + const sides = getAlignmentSides(placement, rects, rtl); + overflows.push(overflow[sides[0]], overflow[sides[1]]); + } + overflowsData = [...overflowsData, { + placement, + overflows + }]; + if (!overflows.every((side) => side <= 0)) { + var _middlewareData$flip2, _overflowsData$filter; + const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1; + const nextPlacement = placements[nextIndex]; + if (nextPlacement) { + if (!(checkCrossAxis === "alignment" ? initialSideAxis !== getSideAxis(nextPlacement) : false) || overflowsData.every((d) => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) return { + data: { + index: nextIndex, + overflows: overflowsData + }, + reset: { placement: nextPlacement } + }; + } + let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement; + if (!resetPlacement) switch (fallbackStrategy) { + case "bestFit": { + var _overflowsData$filter2; + const placement = (_overflowsData$filter2 = overflowsData.filter((d) => { + if (hasFallbackAxisSideDirection) { + const currentSideAxis = getSideAxis(d.placement); + return currentSideAxis === initialSideAxis || currentSideAxis === "y"; + } + return true; + }).map((d) => [d.placement, d.overflows.filter((overflow) => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0]; + if (placement) resetPlacement = placement; + break; + } + case "initialPlacement": + resetPlacement = initialPlacement; + break; + } + if (placement !== resetPlacement) return { reset: { placement: resetPlacement } }; + } + return {}; + } + }; + }; + const originSides = /* @__PURE__ */ new Set(["left", "top"]); + async function convertValueToCoords(state, options) { + const { placement, platform, elements } = state; + const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)); + const side = getSide(placement); + const alignment = getAlignment(placement); + const isVertical = getSideAxis(placement) === "y"; + const mainAxisMulti = originSides.has(side) ? -1 : 1; + const crossAxisMulti = rtl && isVertical ? -1 : 1; + const rawValue = evaluate(options, state); + let { mainAxis, crossAxis, alignmentAxis } = typeof rawValue === "number" ? { + mainAxis: rawValue, + crossAxis: 0, + alignmentAxis: null + } : { + mainAxis: rawValue.mainAxis || 0, + crossAxis: rawValue.crossAxis || 0, + alignmentAxis: rawValue.alignmentAxis + }; + if (alignment && typeof alignmentAxis === "number") crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis; + return isVertical ? { + x: crossAxis * crossAxisMulti, + y: mainAxis * mainAxisMulti + } : { + x: mainAxis * mainAxisMulti, + y: crossAxis * crossAxisMulti + }; + } + /** + * Modifies the placement by translating the floating element along the + * specified axes. + * A number (shorthand for `mainAxis` or distance), or an axes configuration + * object may be passed. + * @see https://floating-ui.com/docs/offset + */ + const offset$1 = function(options) { + if (options === void 0) options = 0; + return { + name: "offset", + options, + async fn(state) { + var _middlewareData$offse, _middlewareData$arrow; + const { x, y, placement, middlewareData } = state; + const diffCoords = await convertValueToCoords(state, options); + if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) return {}; + return { + x: x + diffCoords.x, + y: y + diffCoords.y, + data: { + ...diffCoords, + placement + } + }; + } + }; + }; + /** + * Optimizes the visibility of the floating element by shifting it in order to + * keep it in view when it will overflow the clipping boundary. + * @see https://floating-ui.com/docs/shift + */ + const shift$1 = function(options) { + if (options === void 0) options = {}; + return { + name: "shift", + options, + async fn(state) { + const { x, y, placement } = state; + const { mainAxis: checkMainAxis = true, crossAxis: checkCrossAxis = false, limiter = { fn: (_ref) => { + let { x, y } = _ref; + return { + x, + y + }; + } }, ...detectOverflowOptions } = evaluate(options, state); + const coords = { + x, + y + }; + const overflow = await detectOverflow$1(state, detectOverflowOptions); + const crossAxis = getSideAxis(getSide(placement)); + const mainAxis = getOppositeAxis(crossAxis); + let mainAxisCoord = coords[mainAxis]; + let crossAxisCoord = coords[crossAxis]; + if (checkMainAxis) { + const minSide = mainAxis === "y" ? "top" : "left"; + const maxSide = mainAxis === "y" ? "bottom" : "right"; + const min = mainAxisCoord + overflow[minSide]; + const max = mainAxisCoord - overflow[maxSide]; + mainAxisCoord = clamp(min, mainAxisCoord, max); + } + if (checkCrossAxis) { + const minSide = crossAxis === "y" ? "top" : "left"; + const maxSide = crossAxis === "y" ? "bottom" : "right"; + const min = crossAxisCoord + overflow[minSide]; + const max = crossAxisCoord - overflow[maxSide]; + crossAxisCoord = clamp(min, crossAxisCoord, max); + } + const limitedCoords = limiter.fn({ + ...state, + [mainAxis]: mainAxisCoord, + [crossAxis]: crossAxisCoord + }); + return { + ...limitedCoords, + data: { + x: limitedCoords.x - x, + y: limitedCoords.y - y, + enabled: { + [mainAxis]: checkMainAxis, + [crossAxis]: checkCrossAxis + } + } + }; + } + }; + }; + +//#endregion +//#region ../../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs + function hasWindow() { + return typeof window !== "undefined"; + } + function getNodeName(node) { + if (isNode(node)) return (node.nodeName || "").toLowerCase(); + return "#document"; + } + function getWindow(node) { + var _node$ownerDocument; + return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window; + } + function getDocumentElement(node) { + var _ref; + return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement; + } + function isNode(value) { + if (!hasWindow()) return false; + return value instanceof Node || value instanceof getWindow(value).Node; + } + function isElement(value) { + if (!hasWindow()) return false; + return value instanceof Element || value instanceof getWindow(value).Element; + } + function isHTMLElement(value) { + if (!hasWindow()) return false; + return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement; + } + function isShadowRoot(value) { + if (!hasWindow() || typeof ShadowRoot === "undefined") return false; + return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot; + } + const invalidOverflowDisplayValues = /* @__PURE__ */ new Set(["inline", "contents"]); + function isOverflowElement(element) { + const { overflow, overflowX, overflowY, display } = getComputedStyle$1(element); + return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display); + } + const tableElements = /* @__PURE__ */ new Set([ + "table", + "td", + "th" + ]); + function isTableElement(element) { + return tableElements.has(getNodeName(element)); + } + const topLayerSelectors = [":popover-open", ":modal"]; + function isTopLayer(element) { + return topLayerSelectors.some((selector) => { + try { + return element.matches(selector); + } catch (_e) { + return false; + } + }); + } + const transformProperties = [ + "transform", + "translate", + "scale", + "rotate", + "perspective" + ]; + const willChangeValues = [ + "transform", + "translate", + "scale", + "rotate", + "perspective", + "filter" + ]; + const containValues = [ + "paint", + "layout", + "strict", + "content" + ]; + function isContainingBlock(elementOrCss) { + const webkit = isWebKit(); + const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss; + return transformProperties.some((value) => css[value] ? css[value] !== "none" : false) || (css.containerType ? css.containerType !== "normal" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== "none" : false) || !webkit && (css.filter ? css.filter !== "none" : false) || willChangeValues.some((value) => (css.willChange || "").includes(value)) || containValues.some((value) => (css.contain || "").includes(value)); + } + function getContainingBlock(element) { + let currentNode = getParentNode(element); + while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) { + if (isContainingBlock(currentNode)) return currentNode; + else if (isTopLayer(currentNode)) return null; + currentNode = getParentNode(currentNode); + } + return null; + } + function isWebKit() { + if (typeof CSS === "undefined" || !CSS.supports) return false; + return CSS.supports("-webkit-backdrop-filter", "none"); + } + const lastTraversableNodeNames = /* @__PURE__ */ new Set([ + "html", + "body", + "#document" + ]); + function isLastTraversableNode(node) { + return lastTraversableNodeNames.has(getNodeName(node)); + } + function getComputedStyle$1(element) { + return getWindow(element).getComputedStyle(element); + } + function getNodeScroll(element) { + if (isElement(element)) return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; + return { + scrollLeft: element.scrollX, + scrollTop: element.scrollY + }; + } + function getParentNode(node) { + if (getNodeName(node) === "html") return node; + const result = node.assignedSlot || node.parentNode || isShadowRoot(node) && node.host || getDocumentElement(node); + return isShadowRoot(result) ? result.host : result; + } + function getNearestOverflowAncestor(node) { + const parentNode = getParentNode(node); + if (isLastTraversableNode(parentNode)) return node.ownerDocument ? node.ownerDocument.body : node.body; + if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) return parentNode; + return getNearestOverflowAncestor(parentNode); + } + function getOverflowAncestors(node, list, traverseIframes) { + var _node$ownerDocument2; + if (list === void 0) list = []; + if (traverseIframes === void 0) traverseIframes = true; + const scrollableAncestor = getNearestOverflowAncestor(node); + const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body); + const win = getWindow(scrollableAncestor); + if (isBody) { + const frameElement = getFrameElement(win); + return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []); + } + return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes)); + } + function getFrameElement(win) { + return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null; + } + +//#endregion +//#region ../../node_modules/.pnpm/@floating-ui+dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs + function getCssDimensions(element) { + const css = getComputedStyle$1(element); + let width = parseFloat(css.width) || 0; + let height = parseFloat(css.height) || 0; + const hasOffset = isHTMLElement(element); + const offsetWidth = hasOffset ? element.offsetWidth : width; + const offsetHeight = hasOffset ? element.offsetHeight : height; + const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight; + if (shouldFallback) { + width = offsetWidth; + height = offsetHeight; + } + return { + width, + height, + $: shouldFallback + }; + } + function unwrapElement(element) { + return !isElement(element) ? element.contextElement : element; + } + function getScale(element) { + const domElement = unwrapElement(element); + if (!isHTMLElement(domElement)) return createCoords(1); + const rect = domElement.getBoundingClientRect(); + const { width, height, $ } = getCssDimensions(domElement); + let x = ($ ? round(rect.width) : rect.width) / width; + let y = ($ ? round(rect.height) : rect.height) / height; + if (!x || !Number.isFinite(x)) x = 1; + if (!y || !Number.isFinite(y)) y = 1; + return { + x, + y + }; + } + const noOffsets = /* @__PURE__ */ createCoords(0); + function getVisualOffsets(element) { + const win = getWindow(element); + if (!isWebKit() || !win.visualViewport) return noOffsets; + return { + x: win.visualViewport.offsetLeft, + y: win.visualViewport.offsetTop + }; + } + function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) { + if (isFixed === void 0) isFixed = false; + if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) return false; + return isFixed; + } + function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) { + if (includeScale === void 0) includeScale = false; + if (isFixedStrategy === void 0) isFixedStrategy = false; + const clientRect = element.getBoundingClientRect(); + const domElement = unwrapElement(element); + let scale = createCoords(1); + if (includeScale) if (offsetParent) { + if (isElement(offsetParent)) scale = getScale(offsetParent); + } else scale = getScale(element); + const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0); + let x = (clientRect.left + visualOffsets.x) / scale.x; + let y = (clientRect.top + visualOffsets.y) / scale.y; + let width = clientRect.width / scale.x; + let height = clientRect.height / scale.y; + if (domElement) { + const win = getWindow(domElement); + const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent; + let currentWin = win; + let currentIFrame = getFrameElement(currentWin); + while (currentIFrame && offsetParent && offsetWin !== currentWin) { + const iframeScale = getScale(currentIFrame); + const iframeRect = currentIFrame.getBoundingClientRect(); + const css = getComputedStyle$1(currentIFrame); + const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x; + const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y; + x *= iframeScale.x; + y *= iframeScale.y; + width *= iframeScale.x; + height *= iframeScale.y; + x += left; + y += top; + currentWin = getWindow(currentIFrame); + currentIFrame = getFrameElement(currentWin); + } + } + return rectToClientRect({ + width, + height, + x, + y + }); + } + function getWindowScrollBarX(element, rect) { + const leftScroll = getNodeScroll(element).scrollLeft; + if (!rect) return getBoundingClientRect(getDocumentElement(element)).left + leftScroll; + return rect.left + leftScroll; + } + function getHTMLOffset(documentElement, scroll) { + const htmlRect = documentElement.getBoundingClientRect(); + return { + x: htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect), + y: htmlRect.top + scroll.scrollTop + }; + } + function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) { + let { elements, rect, offsetParent, strategy } = _ref; + const isFixed = strategy === "fixed"; + const documentElement = getDocumentElement(offsetParent); + const topLayer = elements ? isTopLayer(elements.floating) : false; + if (offsetParent === documentElement || topLayer && isFixed) return rect; + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + let scale = createCoords(1); + const offsets = createCoords(0); + const isOffsetParentAnElement = isHTMLElement(offsetParent); + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) scroll = getNodeScroll(offsetParent); + if (isHTMLElement(offsetParent)) { + const offsetRect = getBoundingClientRect(offsetParent); + scale = getScale(offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } + } + const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0); + return { + width: rect.width * scale.x, + height: rect.height * scale.y, + x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x, + y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y + }; + } + function getClientRects(element) { + return Array.from(element.getClientRects()); + } + function getDocumentRect(element) { + const html = getDocumentElement(element); + const scroll = getNodeScroll(element); + const body = element.ownerDocument.body; + const width = max$1(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth); + const height = max$1(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight); + let x = -scroll.scrollLeft + getWindowScrollBarX(element); + const y = -scroll.scrollTop; + if (getComputedStyle$1(body).direction === "rtl") x += max$1(html.clientWidth, body.clientWidth) - width; + return { + width, + height, + x, + y + }; + } + const SCROLLBAR_MAX = 25; + function getViewportRect(element, strategy) { + const win = getWindow(element); + const html = getDocumentElement(element); + const visualViewport = win.visualViewport; + let width = html.clientWidth; + let height = html.clientHeight; + let x = 0; + let y = 0; + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + const visualViewportBased = isWebKit(); + if (!visualViewportBased || visualViewportBased && strategy === "fixed") { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + const windowScrollbarX = getWindowScrollBarX(html); + if (windowScrollbarX <= 0) { + const doc = html.ownerDocument; + const body = doc.body; + const bodyStyles = getComputedStyle(body); + const bodyMarginInline = doc.compatMode === "CSS1Compat" ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0; + const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline); + if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) width -= clippingStableScrollbarWidth; + } else if (windowScrollbarX <= SCROLLBAR_MAX) width += windowScrollbarX; + return { + width, + height, + x, + y + }; + } + const absoluteOrFixed = /* @__PURE__ */ new Set(["absolute", "fixed"]); + function getInnerBoundingClientRect(element, strategy) { + const clientRect = getBoundingClientRect(element, true, strategy === "fixed"); + const top = clientRect.top + element.clientTop; + const left = clientRect.left + element.clientLeft; + const scale = isHTMLElement(element) ? getScale(element) : createCoords(1); + return { + width: element.clientWidth * scale.x, + height: element.clientHeight * scale.y, + x: left * scale.x, + y: top * scale.y + }; + } + function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) { + let rect; + if (clippingAncestor === "viewport") rect = getViewportRect(element, strategy); + else if (clippingAncestor === "document") rect = getDocumentRect(getDocumentElement(element)); + else if (isElement(clippingAncestor)) rect = getInnerBoundingClientRect(clippingAncestor, strategy); + else { + const visualOffsets = getVisualOffsets(element); + rect = { + x: clippingAncestor.x - visualOffsets.x, + y: clippingAncestor.y - visualOffsets.y, + width: clippingAncestor.width, + height: clippingAncestor.height + }; + } + return rectToClientRect(rect); + } + function hasFixedPositionAncestor(element, stopNode) { + const parentNode = getParentNode(element); + if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) return false; + return getComputedStyle$1(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode); + } + function getClippingElementAncestors(element, cache) { + const cachedResult = cache.get(element); + if (cachedResult) return cachedResult; + let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== "body"); + let currentContainingBlockComputedStyle = null; + const elementIsFixed = getComputedStyle$1(element).position === "fixed"; + let currentNode = elementIsFixed ? getParentNode(element) : element; + while (isElement(currentNode) && !isLastTraversableNode(currentNode)) { + const computedStyle = getComputedStyle$1(currentNode); + const currentNodeIsContaining = isContainingBlock(currentNode); + if (!currentNodeIsContaining && computedStyle.position === "fixed") currentContainingBlockComputedStyle = null; + if (elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode)) result = result.filter((ancestor) => ancestor !== currentNode); + else currentContainingBlockComputedStyle = computedStyle; + currentNode = getParentNode(currentNode); + } + cache.set(element, result); + return result; + } + function getClippingRect(_ref) { + let { element, boundary, rootBoundary, strategy } = _ref; + const clippingAncestors = [...boundary === "clippingAncestors" ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary), rootBoundary]; + const firstClippingAncestor = clippingAncestors[0]; + const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => { + const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy); + accRect.top = max$1(rect.top, accRect.top); + accRect.right = min$1(rect.right, accRect.right); + accRect.bottom = min$1(rect.bottom, accRect.bottom); + accRect.left = max$1(rect.left, accRect.left); + return accRect; + }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy)); + return { + width: clippingRect.right - clippingRect.left, + height: clippingRect.bottom - clippingRect.top, + x: clippingRect.left, + y: clippingRect.top + }; + } + function getDimensions(element) { + const { width, height } = getCssDimensions(element); + return { + width, + height + }; + } + function getRectRelativeToOffsetParent(element, offsetParent, strategy) { + const isOffsetParentAnElement = isHTMLElement(offsetParent); + const documentElement = getDocumentElement(offsetParent); + const isFixed = strategy === "fixed"; + const rect = getBoundingClientRect(element, true, isFixed, offsetParent); + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + const offsets = createCoords(0); + function setLeftRTLScrollbarOffset() { + offsets.x = getWindowScrollBarX(documentElement); + } + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) scroll = getNodeScroll(offsetParent); + if (isOffsetParentAnElement) { + const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } else if (documentElement) setLeftRTLScrollbarOffset(); + } + if (isFixed && !isOffsetParentAnElement && documentElement) setLeftRTLScrollbarOffset(); + const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0); + return { + x: rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x, + y: rect.top + scroll.scrollTop - offsets.y - htmlOffset.y, + width: rect.width, + height: rect.height + }; + } + function isStaticPositioned(element) { + return getComputedStyle$1(element).position === "static"; + } + function getTrueOffsetParent(element, polyfill) { + if (!isHTMLElement(element) || getComputedStyle$1(element).position === "fixed") return null; + if (polyfill) return polyfill(element); + let rawOffsetParent = element.offsetParent; + if (getDocumentElement(element) === rawOffsetParent) rawOffsetParent = rawOffsetParent.ownerDocument.body; + return rawOffsetParent; + } + function getOffsetParent(element, polyfill) { + const win = getWindow(element); + if (isTopLayer(element)) return win; + if (!isHTMLElement(element)) { + let svgOffsetParent = getParentNode(element); + while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) { + if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) return svgOffsetParent; + svgOffsetParent = getParentNode(svgOffsetParent); + } + return win; + } + let offsetParent = getTrueOffsetParent(element, polyfill); + while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) offsetParent = getTrueOffsetParent(offsetParent, polyfill); + if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) return win; + return offsetParent || getContainingBlock(element) || win; + } + const getElementRects = async function(data) { + const getOffsetParentFn = this.getOffsetParent || getOffsetParent; + const getDimensionsFn = this.getDimensions; + const floatingDimensions = await getDimensionsFn(data.floating); + return { + reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy), + floating: { + x: 0, + y: 0, + width: floatingDimensions.width, + height: floatingDimensions.height + } + }; + }; + function isRTL$1(element) { + return getComputedStyle$1(element).direction === "rtl"; + } + const platform = { + convertOffsetParentRelativeRectToViewportRelativeRect, + getDocumentElement, + getClippingRect, + getOffsetParent, + getElementRects, + getClientRects, + getDimensions, + getScale, + isElement, + isRTL: isRTL$1 + }; + function rectsAreEqual(a, b) { + return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height; + } + function observeMove(element, onMove) { + let io = null; + let timeoutId; + const root = getDocumentElement(element); + function cleanup() { + var _io; + clearTimeout(timeoutId); + (_io = io) == null || _io.disconnect(); + io = null; + } + function refresh(skip, threshold) { + if (skip === void 0) skip = false; + if (threshold === void 0) threshold = 1; + cleanup(); + const elementRectForRootMargin = element.getBoundingClientRect(); + const { left, top, width, height } = elementRectForRootMargin; + if (!skip) onMove(); + if (!width || !height) return; + const insetTop = floor$1(top); + const insetRight = floor$1(root.clientWidth - (left + width)); + const insetBottom = floor$1(root.clientHeight - (top + height)); + const insetLeft = floor$1(left); + const options = { + rootMargin: -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px", + threshold: max$1(0, min$1(1, threshold)) || 1 + }; + let isFirstUpdate = true; + function handleObserve(entries) { + const ratio = entries[0].intersectionRatio; + if (ratio !== threshold) { + if (!isFirstUpdate) return refresh(); + if (!ratio) timeoutId = setTimeout(() => { + refresh(false, 1e-7); + }, 1e3); + else refresh(false, ratio); + } + if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) refresh(); + isFirstUpdate = false; + } + try { + io = new IntersectionObserver(handleObserve, { + ...options, + root: root.ownerDocument + }); + } catch (_e) { + io = new IntersectionObserver(handleObserve, options); + } + io.observe(element); + } + refresh(true); + return cleanup; + } + /** + * Automatically updates the position of the floating element when necessary. + * Should only be called when the floating element is mounted on the DOM or + * visible on the screen. + * @returns cleanup function that should be invoked when the floating element is + * removed from the DOM or hidden from the screen. + * @see https://floating-ui.com/docs/autoUpdate + */ + function autoUpdate(reference, floating, update, options) { + if (options === void 0) options = {}; + const { ancestorScroll = true, ancestorResize = true, elementResize = typeof ResizeObserver === "function", layoutShift = typeof IntersectionObserver === "function", animationFrame = false } = options; + const referenceEl = unwrapElement(reference); + const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : []; + ancestors.forEach((ancestor) => { + ancestorScroll && ancestor.addEventListener("scroll", update, { passive: true }); + ancestorResize && ancestor.addEventListener("resize", update); + }); + const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null; + let reobserveFrame = -1; + let resizeObserver = null; + if (elementResize) { + resizeObserver = new ResizeObserver((_ref) => { + let [firstEntry] = _ref; + if (firstEntry && firstEntry.target === referenceEl && resizeObserver) { + resizeObserver.unobserve(floating); + cancelAnimationFrame(reobserveFrame); + reobserveFrame = requestAnimationFrame(() => { + var _resizeObserver; + (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating); + }); + } + update(); + }); + if (referenceEl && !animationFrame) resizeObserver.observe(referenceEl); + resizeObserver.observe(floating); + } + let frameId; + let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null; + if (animationFrame) frameLoop(); + function frameLoop() { + const nextRefRect = getBoundingClientRect(reference); + if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) update(); + prevRefRect = nextRefRect; + frameId = requestAnimationFrame(frameLoop); + } + update(); + return () => { + var _resizeObserver2; + ancestors.forEach((ancestor) => { + ancestorScroll && ancestor.removeEventListener("scroll", update); + ancestorResize && ancestor.removeEventListener("resize", update); + }); + cleanupIo?.(); + (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect(); + resizeObserver = null; + if (animationFrame) cancelAnimationFrame(frameId); + }; + } + /** + * Resolves with an object of overflow side offsets that determine how much the + * element is overflowing a given clipping boundary on each side. + * - positive = overflowing the boundary by that number of pixels + * - negative = how many pixels left before it will overflow + * - 0 = lies flush with the boundary + * @see https://floating-ui.com/docs/detectOverflow + */ + const detectOverflow = detectOverflow$1; + /** + * Modifies the placement by translating the floating element along the + * specified axes. + * A number (shorthand for `mainAxis` or distance), or an axes configuration + * object may be passed. + * @see https://floating-ui.com/docs/offset + */ + const offset = offset$1; + /** + * Optimizes the visibility of the floating element by shifting it in order to + * keep it in view when it will overflow the clipping boundary. + * @see https://floating-ui.com/docs/shift + */ + const shift = shift$1; + /** + * Optimizes the visibility of the floating element by flipping the `placement` + * in order to keep it in view when the preferred placement(s) will overflow the + * clipping boundary. Alternative to `autoPlacement`. + * @see https://floating-ui.com/docs/flip + */ + const flip = flip$1; + /** + * Provides data to position an inner element of the floating element so that it + * appears centered to the reference element. + * @see https://floating-ui.com/docs/arrow + */ + const arrow = arrow$1; + /** + * Computes the `x` and `y` coordinates that will place the floating element + * next to a given reference element. + */ + const computePosition = (reference, floating, options) => { + const cache = /* @__PURE__ */ new Map(); + const mergedOptions = { + platform, + ...options + }; + const platformWithCache = { + ...mergedOptions.platform, + _c: cache + }; + return computePosition$1(reference, floating, { + ...mergedOptions, + platform: platformWithCache + }); + }; + +//#endregion +//#region ../../packages/hooks/use-floating/index.ts + const useFloatingProps = buildProps({}); + const unrefReference = (elRef) => { + if (!isClient) return; + if (!elRef) return elRef; + const unrefEl = unrefElement(elRef); + if (unrefEl) return unrefEl; + return (0, vue.isRef)(elRef) ? unrefEl : elRef; + }; + const getPositionDataWithUnit = (record, key) => { + const value = record?.[key]; + return isNil(value) ? "" : `${value}px`; + }; + const useFloating = ({ middleware, placement, strategy }) => { + const referenceRef = (0, vue.ref)(); + const contentRef = (0, vue.ref)(); + const states = { + x: (0, vue.ref)(), + y: (0, vue.ref)(), + placement, + strategy, + middlewareData: (0, vue.ref)({}) + }; + const update = async () => { + if (!isClient) return; + const referenceEl = unrefReference(referenceRef); + const contentEl = unrefElement(contentRef); + if (!referenceEl || !contentEl) return; + const data = await computePosition(referenceEl, contentEl, { + placement: (0, vue.unref)(placement), + strategy: (0, vue.unref)(strategy), + middleware: (0, vue.unref)(middleware) + }); + keysOf(states).forEach((key) => { + states[key].value = data[key]; + }); + }; + (0, vue.onMounted)(() => { + (0, vue.watchEffect)(() => { + update(); + }); + }); + return { + ...states, + update, + referenceRef, + contentRef + }; + }; + const arrowMiddleware = ({ arrowRef, padding }) => { + return { + name: "arrow", + options: { + element: arrowRef, + padding + }, + fn(args) { + const arrowEl = (0, vue.unref)(arrowRef); + if (!arrowEl) return {}; + return arrow({ + element: arrowEl, + padding + }).fn(args); + } + }; + }; + +//#endregion +//#region ../../packages/hooks/use-cursor/index.ts + function useCursor(input) { + let selectionInfo; + function recordCursor() { + if (input.value == void 0) return; + const { selectionStart, selectionEnd, value } = input.value; + if (selectionStart == null || selectionEnd == null) return; + selectionInfo = { + selectionStart, + selectionEnd, + value, + beforeTxt: value.slice(0, Math.max(0, selectionStart)), + afterTxt: value.slice(Math.max(0, selectionEnd)) + }; + } + function setCursor() { + if (input.value == void 0 || selectionInfo == void 0) return; + const { value } = input.value; + const { beforeTxt, afterTxt, selectionStart } = selectionInfo; + if (beforeTxt == void 0 || afterTxt == void 0 || selectionStart == void 0) return; + let startPos = value.length; + if (value.endsWith(afterTxt)) startPos = value.length - afterTxt.length; + else if (value.startsWith(beforeTxt)) startPos = beforeTxt.length; + else { + const beforeLastChar = beforeTxt[selectionStart - 1]; + const newIndex = value.indexOf(beforeLastChar, selectionStart - 1); + if (newIndex !== -1) startPos = newIndex + 1; + } + input.value.setSelectionRange(startPos, startPos); + } + return [recordCursor, setCursor]; + } + +//#endregion +//#region ../../packages/hooks/use-ordered-children/index.ts + const getOrderedChildren = (vm, childComponentName, children) => { + return flattedChildren(vm.subTree).filter((n) => (0, vue.isVNode)(n) && n.type?.name === childComponentName && !!n.component).map((n) => n.component.uid).map((uid) => children[uid]).filter((p) => !!p); + }; + const useOrderedChildren = (vm, childComponentName) => { + const children = (0, vue.shallowRef)({}); + const orderedChildren = (0, vue.shallowRef)([]); + const nodesMap = /* @__PURE__ */ new WeakMap(); + const addChild = (child) => { + children.value[child.uid] = child; + (0, vue.triggerRef)(children); + (0, vue.onMounted)(() => { + const childNode = child.getVnode().el; + const parentNode = childNode.parentNode; + if (!nodesMap.has(parentNode)) { + nodesMap.set(parentNode, []); + const originalFn = parentNode.insertBefore.bind(parentNode); + parentNode.insertBefore = (node, anchor) => { + if (nodesMap.get(parentNode).some((el) => node === el || anchor === el)) (0, vue.triggerRef)(children); + return originalFn(node, anchor); + }; + } + nodesMap.get(parentNode).push(childNode); + }); + }; + const removeChild = (child) => { + delete children.value[child.uid]; + (0, vue.triggerRef)(children); + const childNode = child.getVnode().el; + const parentNode = childNode.parentNode; + const childNodes = nodesMap.get(parentNode); + const index = childNodes.indexOf(childNode); + childNodes.splice(index, 1); + }; + const sortChildren = () => { + orderedChildren.value = getOrderedChildren(vm, childComponentName, children.value); + }; + const IsolatedRenderer = (props) => { + return props.render(); + }; + return { + children: orderedChildren, + addChild, + removeChild, + ChildrenSorter: (0, vue.defineComponent)({ setup(_, { slots }) { + return () => { + sortChildren(); + return slots.default ? (0, vue.h)(IsolatedRenderer, { render: slots.default }) : null; + }; + } }) + }; + }; + +//#endregion +//#region ../../packages/hooks/use-size/index.ts + const useSizeProp = buildProp({ + type: String, + values: componentSizes, + required: false + }); + const useSizeProps = { size: useSizeProp }; + const SIZE_INJECTION_KEY = Symbol("size"); + const useGlobalSize = () => { + const injectedSize = (0, vue.inject)(SIZE_INJECTION_KEY, {}); + return (0, vue.computed)(() => { + return (0, vue.unref)(injectedSize.size) || ""; + }); + }; + +//#endregion +//#region ../../packages/hooks/use-focus-controller/index.ts + function useFocusController(target, { disabled, beforeFocus, afterFocus, beforeBlur, afterBlur } = {}) { + const { emit } = (0, vue.getCurrentInstance)(); + const wrapperRef = (0, vue.shallowRef)(); + const isFocused = (0, vue.ref)(false); + const handleFocus = (event) => { + const cancelFocus = isFunction$1(beforeFocus) ? beforeFocus(event) : false; + if ((0, vue.unref)(disabled) || isFocused.value || cancelFocus) return; + isFocused.value = true; + emit("focus", event); + afterFocus?.(); + }; + const handleBlur = (event) => { + const cancelBlur = isFunction$1(beforeBlur) ? beforeBlur(event) : false; + if ((0, vue.unref)(disabled) || event.relatedTarget && wrapperRef.value?.contains(event.relatedTarget) || cancelBlur) return; + isFocused.value = false; + emit("blur", event); + afterBlur?.(); + }; + const handleClick = (event) => { + if ((0, vue.unref)(disabled) || isFocusable(event.target) || wrapperRef.value?.contains(document.activeElement) && wrapperRef.value !== document.activeElement) return; + target.value?.focus(); + }; + (0, vue.watch)([wrapperRef, () => (0, vue.unref)(disabled)], ([el, disabled]) => { + if (!el) return; + if (disabled) el.removeAttribute("tabindex"); + else el.setAttribute("tabindex", "-1"); + }); + useEventListener(wrapperRef, "focus", handleFocus, true); + useEventListener(wrapperRef, "blur", handleBlur, true); + useEventListener(wrapperRef, "click", handleClick, true); + return { + isFocused, + wrapperRef, + handleFocus, + handleBlur + }; + } + +//#endregion +//#region ../../packages/hooks/use-composition/index.ts + function useComposition({ afterComposition, emit }) { + const isComposing = (0, vue.ref)(false); + const handleCompositionStart = (event) => { + emit?.("compositionstart", event); + isComposing.value = true; + }; + const handleCompositionUpdate = (event) => { + emit?.("compositionupdate", event); + isComposing.value = true; + }; + const handleCompositionEnd = (event) => { + emit?.("compositionend", event); + if (isComposing.value) { + isComposing.value = false; + (0, vue.nextTick)(() => afterComposition(event)); + } + }; + const handleComposition = (event) => { + event.type === "compositionend" ? handleCompositionEnd(event) : handleCompositionUpdate(event); + }; + return { + isComposing, + handleComposition, + handleCompositionStart, + handleCompositionUpdate, + handleCompositionEnd + }; + } + +//#endregion +//#region ../../packages/hooks/use-empty-values/index.ts + const emptyValuesContextKey = Symbol("emptyValuesContextKey"); + const SCOPE = "use-empty-values"; + const DEFAULT_EMPTY_VALUES = [ + "", + void 0, + null + ]; + const DEFAULT_VALUE_ON_CLEAR = void 0; + /** + * @deprecated Removed after 3.0.0, Use `UseEmptyValuesProps` instead. + */ + const useEmptyValuesProps = buildProps({ + emptyValues: Array, + valueOnClear: { + type: definePropType([ + String, + Number, + Boolean, + Function + ]), + default: void 0, + validator: (val) => { + val = isFunction$1(val) ? val() : val; + if (isArray$1(val)) return val.every((item) => !item); + return !val; + } + } + }); + const useEmptyValues = (props, defaultValue) => { + const config = (0, vue.getCurrentInstance)() ? (0, vue.inject)(emptyValuesContextKey, (0, vue.ref)({})) : (0, vue.ref)({}); + const emptyValues = (0, vue.computed)(() => props.emptyValues || config.value.emptyValues || DEFAULT_EMPTY_VALUES); + const valueOnClear = (0, vue.computed)(() => { + if (isFunction$1(props.valueOnClear)) return props.valueOnClear(); + else if (props.valueOnClear !== void 0) return props.valueOnClear; + else if (isFunction$1(config.value.valueOnClear)) return config.value.valueOnClear(); + else if (config.value.valueOnClear !== void 0) return config.value.valueOnClear; + return defaultValue !== void 0 ? defaultValue : DEFAULT_VALUE_ON_CLEAR; + }); + const isEmptyValue = (value) => { + let result = true; + if (isArray$1(value)) result = emptyValues.value.some((emptyValue) => { + return isEqual$1(value, emptyValue); + }); + else result = emptyValues.value.includes(value); + return result; + }; + if (!isEmptyValue(valueOnClear.value)) /* @__PURE__ */ debugWarn(SCOPE, "value-on-clear should be a value of empty-values"); + return { + emptyValues, + valueOnClear, + isEmptyValue + }; + }; + +//#endregion +//#region ../../packages/hooks/use-aria/index.ts +/** + * @deprecated Removed after 3.0.0, Use `AriaProps` instead. + */ + const ariaProps = buildProps({ + ariaLabel: String, + ariaOrientation: { + type: String, + values: [ + "horizontal", + "vertical", + "undefined" + ] + }, + ariaControls: String + }); + const useAriaProps = (arias) => { + return pick(ariaProps, arias); + }; + +//#endregion +//#region ../../packages/components/config-provider/src/constants.ts + const configProviderContextKey = Symbol(); + +//#endregion +//#region ../../packages/components/config-provider/src/hooks/use-global-config.ts + const globalConfig = (0, vue.ref)(); + function useGlobalConfig(key, defaultValue = void 0) { + const config = (0, vue.getCurrentInstance)() ? (0, vue.inject)(configProviderContextKey, globalConfig) : globalConfig; + if (key) return (0, vue.computed)(() => config.value?.[key] ?? defaultValue); + else return config; + } + function useGlobalComponentSettings(block, sizeFallback) { + const config = useGlobalConfig(); + const ns = useNamespace(block, (0, vue.computed)(() => config.value?.namespace || defaultNamespace)); + const locale = useLocale((0, vue.computed)(() => config.value?.locale)); + const zIndex = useZIndex((0, vue.computed)(() => config.value?.zIndex || defaultInitialZIndex)); + const size = (0, vue.computed)(() => (0, vue.unref)(sizeFallback) || config.value?.size || ""); + provideGlobalConfig((0, vue.computed)(() => (0, vue.unref)(config) || {})); + return { + ns, + locale, + zIndex, + size + }; + } + const provideGlobalConfig = (config, app, global = false) => { + const inSetup = !!(0, vue.getCurrentInstance)(); + const oldConfig = inSetup ? useGlobalConfig() : void 0; + const provideFn = app?.provide ?? (inSetup ? vue.provide : void 0); + if (!provideFn) { + /* @__PURE__ */ debugWarn("provideGlobalConfig", "provideGlobalConfig() can only be used inside setup()."); + return; + } + const context = (0, vue.computed)(() => { + const cfg = (0, vue.unref)(config); + if (!oldConfig?.value) return cfg; + return mergeConfig(oldConfig.value, cfg); + }); + provideFn(configProviderContextKey, context); + provideFn(localeContextKey, (0, vue.computed)(() => context.value.locale)); + provideFn(namespaceContextKey, (0, vue.computed)(() => context.value.namespace)); + provideFn(zIndexContextKey, (0, vue.computed)(() => context.value.zIndex)); + provideFn(SIZE_INJECTION_KEY, { size: (0, vue.computed)(() => context.value.size || "") }); + provideFn(emptyValuesContextKey, (0, vue.computed)(() => ({ + emptyValues: context.value.emptyValues, + valueOnClear: context.value.valueOnClear + }))); + if (global || !globalConfig.value) globalConfig.value = context.value; + return context; + }; + const mergeConfig = (a, b) => { + const keys = [...new Set([...keysOf(a), ...keysOf(b)])]; + const obj = {}; + for (const key of keys) obj[key] = b[key] !== void 0 ? b[key] : a[key]; + return obj; + }; + +//#endregion +//#region ../../packages/components/config-provider/src/config-provider-props.ts + const configProviderProps = buildProps({ + a11y: { + type: Boolean, + default: true + }, + locale: { type: definePropType(Object) }, + size: useSizeProp, + button: { type: definePropType(Object) }, + card: { type: definePropType(Object) }, + dialog: { type: definePropType(Object) }, + link: { type: definePropType(Object) }, + experimentalFeatures: { type: definePropType(Object) }, + keyboardNavigation: { + type: Boolean, + default: true + }, + message: { type: definePropType(Object) }, + zIndex: Number, + namespace: { + type: String, + default: "el" + }, + table: { type: definePropType(Object) }, + ...useEmptyValuesProps + }); + +//#endregion +//#region ../../packages/components/config-provider/src/config-provider.ts + const messageConfig = { placement: "top" }; + const ConfigProvider = (0, vue.defineComponent)({ + name: "ElConfigProvider", + props: configProviderProps, + setup(props, { slots }) { + const config = provideGlobalConfig(props); + (0, vue.watch)(() => props.message, (val) => { + Object.assign(messageConfig, config?.value?.message ?? {}, val ?? {}); + }, { + immediate: true, + deep: true + }); + return () => (0, vue.renderSlot)(slots, "default", { config: config?.value }); + } + }); + +//#endregion +//#region ../../packages/components/config-provider/index.ts + const ElConfigProvider = withInstall(ConfigProvider); + +//#endregion +//#region ../../packages/element-plus/version.ts + const version$1 = "2.13.7"; + +//#endregion +//#region ../../packages/element-plus/make-installer.ts + const makeInstaller = (components = []) => { + const install = (app, options) => { + if (app[INSTALLED_KEY]) return; + app[INSTALLED_KEY] = true; + components.forEach((c) => app.use(c)); + if (options) provideGlobalConfig(options, app, true); + }; + return { + version: version$1, + install + }; + }; + +//#endregion +//#region ../../packages/components/teleport/src/teleport.ts + const teleportProps = buildProps({ + to: { + type: definePropType([String, Object]), + required: true + }, + disabled: Boolean + }); + +//#endregion +//#region ../../packages/components/teleport/src/teleport.vue?vue&type=script&setup=true&lang.ts + var teleport_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "teleport", + props: teleportProps, + setup(__props) { + return (_ctx, _cache) => { + return _ctx.disabled ? (0, vue.renderSlot)(_ctx.$slots, "default", { key: 0 }) : ((0, vue.openBlock)(), (0, vue.createBlock)(vue.Teleport, { + key: 1, + to: _ctx.to + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 8, ["to"])); + }; + } + }); + +//#endregion +//#region ../../packages/components/teleport/src/teleport.vue + var teleport_default = teleport_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/teleport/index.ts + const ElTeleport = withInstall(teleport_default); + +//#endregion +//#region ../../packages/components/affix/src/affix.ts +/** + * @deprecated Removed after 3.0.0, Use `AffixProps` instead. + */ + const affixProps = buildProps({ + zIndex: { + type: definePropType([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: teleportProps.to.type, + default: "body" + } + }); + const affixEmits = { + scroll: ({ scrollTop, fixed }) => isNumber(scrollTop) && isBoolean(fixed), + [CHANGE_EVENT]: (fixed) => isBoolean(fixed) + }; + +//#endregion +//#region ../../packages/components/affix/src/affix.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$22 = "ElAffix"; + var affix_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$22, + __name: "affix", + props: affixProps, + emits: affixEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("affix"); + const target = (0, vue.shallowRef)(); + const root = (0, vue.shallowRef)(); + const scrollContainer = (0, vue.shallowRef)(); + const { height: windowHeight } = useWindowSize(); + const { height: rootHeight, width: rootWidth, top: rootTop, bottom: rootBottom, left: rootLeft, update: updateRoot } = useElementBounding(root, { windowScroll: false }); + const targetRect = useElementBounding(target); + const fixed = (0, vue.ref)(false); + const scrollTop = (0, vue.ref)(0); + const transform = (0, vue.ref)(0); + const teleportDisabled = (0, vue.computed)(() => { + return !props.teleported || !fixed.value; + }); + const rootStyle = (0, vue.computed)(() => { + return { + display: "flow-root", + height: fixed.value ? `${rootHeight.value}px` : "", + width: fixed.value ? `${rootWidth.value}px` : "" + }; + }); + const affixStyle = (0, vue.computed)(() => { + if (!fixed.value) return {}; + const offset = addUnit(props.offset); + return { + height: `${rootHeight.value}px`, + width: `${rootWidth.value}px`, + top: props.position === "top" ? offset : "", + bottom: props.position === "bottom" ? offset : "", + left: props.teleported ? `${rootLeft.value}px` : "", + transform: transform.value ? `translateY(${transform.value}px)` : "", + zIndex: props.zIndex + }; + }); + const update = () => { + if (!scrollContainer.value) return; + scrollTop.value = scrollContainer.value instanceof Window ? document.documentElement.scrollTop : scrollContainer.value.scrollTop || 0; + const { position, target, offset } = props; + const rootHeightOffset = offset + rootHeight.value; + if (position === "top") if (target) { + const difference = targetRect.bottom.value - rootHeightOffset; + fixed.value = offset > rootTop.value && targetRect.bottom.value > 0; + transform.value = difference < 0 ? difference : 0; + } else fixed.value = offset > rootTop.value; + else if (target) { + const difference = windowHeight.value - targetRect.top.value - rootHeightOffset; + fixed.value = windowHeight.value - offset < rootBottom.value && windowHeight.value > targetRect.top.value; + transform.value = difference < 0 ? -difference : 0; + } else fixed.value = windowHeight.value - offset < rootBottom.value; + }; + const updateRootRect = async () => { + if (!fixed.value) { + updateRoot(); + return; + } + fixed.value = false; + await (0, vue.nextTick)(); + updateRoot(); + fixed.value = true; + }; + const handleScroll = async () => { + updateRoot(); + await (0, vue.nextTick)(); + emit("scroll", { + scrollTop: scrollTop.value, + fixed: fixed.value + }); + }; + (0, vue.watch)(fixed, (val) => emit(CHANGE_EVENT, val)); + (0, vue.onMounted)(() => { + if (props.target) { + target.value = document.querySelector(props.target) ?? void 0; + if (!target.value) throwError(COMPONENT_NAME$22, `Target does not exist: ${props.target}`); + } else target.value = document.documentElement; + scrollContainer.value = getScrollContainer(root.value, true); + updateRoot(); + }); + (0, vue.onActivated)(() => { + (0, vue.nextTick)(updateRootRect); + }); + (0, vue.onDeactivated)(() => { + fixed.value = false; + }); + useEventListener(scrollContainer, "scroll", handleScroll); + (0, vue.watchEffect)(update); + __expose({ + update, + updateRoot: updateRootRect + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "root", + ref: root, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + style: (0, vue.normalizeStyle)(rootStyle.value) + }, [(0, vue.createVNode)((0, vue.unref)(ElTeleport), { + disabled: teleportDisabled.value, + to: __props.appendTo + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)({ [(0, vue.unref)(ns).m("fixed")]: fixed.value }), + style: (0, vue.normalizeStyle)(affixStyle.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 6)]), + _: 3 + }, 8, ["disabled", "to"])], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/affix/src/affix.vue + var affix_default = affix_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/affix/index.ts + const ElAffix = withInstall(affix_default); + +//#endregion +//#region ../../packages/components/alert/src/alert.ts + const alertEffects = ["light", "dark"]; + /** + * @deprecated Removed after 3.0.0, Use `AlertProps` instead. + */ + const alertProps = buildProps({ + title: { + type: String, + default: "" + }, + description: { + type: String, + default: "" + }, + type: { + type: String, + values: keysOf(TypeComponentsMap), + default: "info" + }, + closable: { + type: Boolean, + default: true + }, + closeText: { + type: String, + default: "" + }, + showIcon: Boolean, + center: Boolean, + effect: { + type: String, + values: alertEffects, + default: "light" + } + }); + const alertEmits = { close: (evt) => evt instanceof MouseEvent }; + +//#endregion +//#region ../../packages/components/icon/src/icon.ts +/** + * @deprecated Removed after 3.0.0, Use `IconProps` instead. + */ + const iconProps = buildProps({ + size: { type: definePropType([Number, String]) }, + color: { type: String } + }); + +//#endregion +//#region ../../packages/components/icon/src/icon.vue?vue&type=script&setup=true&lang.ts + var icon_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElIcon", + inheritAttrs: false, + __name: "icon", + props: iconProps, + setup(__props) { + const props = __props; + const ns = useNamespace("icon"); + const style = (0, vue.computed)(() => { + const { size, color } = props; + const fontSize = addUnit(size); + if (!fontSize && !color) return {}; + return { + fontSize, + "--color": color + }; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("i", (0, vue.mergeProps)({ + class: (0, vue.unref)(ns).b(), + style: style.value + }, _ctx.$attrs), [(0, vue.renderSlot)(_ctx.$slots, "default")], 16); + }; + } + }); + +//#endregion +//#region ../../packages/components/icon/src/icon.vue + var icon_default = icon_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/icon/index.ts + const ElIcon = withInstall(icon_default); + +//#endregion +//#region ../../packages/components/alert/src/alert.vue?vue&type=script&setup=true&lang.ts + var alert_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAlert", + __name: "alert", + props: alertProps, + emits: alertEmits, + setup(__props, { emit: __emit }) { + const { Close } = TypeComponents; + const props = __props; + const emit = __emit; + const slots = (0, vue.useSlots)(); + const ns = useNamespace("alert"); + const visible = (0, vue.ref)(true); + const iconComponent = (0, vue.computed)(() => TypeComponentsMap[props.type]); + const hasDesc = (0, vue.computed)(() => { + if (props.description) return true; + const slotContent = slots.default?.(); + if (!slotContent) return false; + return flattedChildren(slotContent).some((child) => !isComment(child)); + }); + const close = (evt) => { + visible.value = false; + emit("close", evt); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + name: (0, vue.unref)(ns).b("fade"), + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).m(__props.type), + (0, vue.unref)(ns).is("center", __props.center), + (0, vue.unref)(ns).is(__props.effect) + ]), + role: "alert" + }, [__props.showIcon && (_ctx.$slots.icon || iconComponent.value) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon"), (0, vue.unref)(ns).is("big", hasDesc.value)]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "icon", {}, () => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(iconComponent.value)))])]), + _: 3 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) }, [ + __props.title || _ctx.$slots.title ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("title"), { "with-description": hasDesc.value }]) + }, [(0, vue.renderSlot)(_ctx.$slots, "title", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + hasDesc.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("description")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.description), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + __props.closable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [__props.closeText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("close-btn"), (0, vue.unref)(ns).is("customed")]), + onClick: close + }, (0, vue.toDisplayString)(__props.closeText), 3)) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close-btn")), + onClick: close + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(Close))]), + _: 1 + }, 8, ["class"]))], 64)) : (0, vue.createCommentVNode)("v-if", true) + ], 2)], 2), [[vue.vShow, visible.value]])]), + _: 3 + }, 8, ["name"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/alert/src/alert.vue + var alert_default = alert_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/alert/index.ts + const ElAlert = withInstall(alert_default); + +//#endregion +//#region ../../packages/components/popper/src/popper.ts + const Effect = { + LIGHT: "light", + DARK: "dark" + }; + const roleTypes = [ + "dialog", + "grid", + "group", + "listbox", + "menu", + "navigation", + "tooltip", + "tree" + ]; + /** + * @deprecated Removed after 3.0.0, Use `PopperProps` instead. + */ + const popperProps = buildProps({ role: { + type: String, + values: roleTypes, + default: "tooltip" + } }); + /** @deprecated use `popperProps` instead, and it will be deprecated in the next major version */ + const usePopperProps = popperProps; + +//#endregion +//#region ../../packages/components/popper/src/constants.ts + const POPPER_INJECTION_KEY = Symbol("popper"); + const POPPER_CONTENT_INJECTION_KEY = Symbol("popperContent"); + +//#endregion +//#region ../../packages/components/popper/src/popper.vue?vue&type=script&setup=true&lang.ts + var popper_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPopper", + inheritAttrs: false, + __name: "popper", + props: popperProps, + setup(__props, { expose: __expose }) { + const props = __props; + const popperProvides = { + triggerRef: (0, vue.ref)(), + popperInstanceRef: (0, vue.ref)(), + contentRef: (0, vue.ref)(), + referenceRef: (0, vue.ref)(), + role: (0, vue.computed)(() => props.role) + }; + __expose(popperProvides); + (0, vue.provide)(POPPER_INJECTION_KEY, popperProvides); + return (_ctx, _cache) => { + return (0, vue.renderSlot)(_ctx.$slots, "default"); + }; + } + }); + +//#endregion +//#region ../../packages/components/popper/src/popper.vue + var popper_default = popper_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/popper/src/arrow.vue?vue&type=script&setup=true&lang.ts + var arrow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPopperArrow", + inheritAttrs: false, + __name: "arrow", + setup(__props, { expose: __expose }) { + const ns = useNamespace("popper"); + const { arrowRef, arrowStyle } = (0, vue.inject)(POPPER_CONTENT_INJECTION_KEY, void 0); + (0, vue.onBeforeUnmount)(() => { + arrowRef.value = void 0; + }); + __expose({ arrowRef }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + ref_key: "arrowRef", + ref: arrowRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("arrow")), + style: (0, vue.normalizeStyle)((0, vue.unref)(arrowStyle)), + "data-popper-arrow": "" + }, null, 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/popper/src/arrow.vue + var arrow_default = arrow_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/popper/src/trigger.ts +/** + * @deprecated Removed after 3.0.0, Use `PopperTriggerProps` instead. + */ + const popperTriggerProps = buildProps({ + virtualRef: { type: definePropType(Object) }, + virtualTriggering: Boolean, + onMouseenter: { type: definePropType(Function) }, + onMouseleave: { type: definePropType(Function) }, + onClick: { type: definePropType(Function) }, + onKeydown: { type: definePropType(Function) }, + onFocus: { type: definePropType(Function) }, + onBlur: { type: definePropType(Function) }, + onContextmenu: { type: definePropType(Function) }, + id: String, + open: Boolean + }); + /** @deprecated use `popperTriggerProps` instead, and it will be deprecated in the next major version */ + const usePopperTriggerProps = popperTriggerProps; + +//#endregion +//#region ../../packages/components/slot/src/only-child.tsx + const NAME = "ElOnlyChild"; + const OnlyChild = /* @__PURE__ */ (0, vue.defineComponent)({ + name: NAME, + setup(_, { slots, attrs }) { + const forwardRefDirective = useForwardRefDirective((0, vue.inject)(FORWARD_REF_INJECTION_KEY)?.setForwardRef ?? NOOP); + return () => { + const defaultSlot = slots.default?.(attrs); + if (!defaultSlot) return null; + const [firstLegitNode, length] = findFirstLegitChild(defaultSlot); + if (!firstLegitNode) { + /* @__PURE__ */ debugWarn(NAME, "no valid child node found"); + return null; + } + if (length > 1) /* @__PURE__ */ debugWarn(NAME, "requires exact only one valid child."); + return (0, vue.withDirectives)((0, vue.cloneVNode)(firstLegitNode, attrs), [[forwardRefDirective]]); + }; + } + }); + function findFirstLegitChild(node) { + if (!node) return [null, 0]; + const children = node; + const len = children.filter((c) => c.type !== vue.Comment).length; + for (const child of children) { + /** + * when user uses h(Fragment, [text]) to render plain string, + * this switch case just cannot handle, when the value is primitives + * we should just return the wrapped string + */ + if (isObject$1(child)) switch (child.type) { + case vue.Comment: continue; + case vue.Text: + case "svg": return [wrapTextContent(child), len]; + case vue.Fragment: return findFirstLegitChild(child.children); + default: return [child, len]; + } + return [wrapTextContent(child), len]; + } + return [null, 0]; + } + function wrapTextContent(s) { + const ns = useNamespace("only-child"); + return (0, vue.createVNode)("span", { "class": ns.e("content") }, [s]); + } + +//#endregion +//#region ../../packages/components/popper/src/trigger.vue?vue&type=script&setup=true&lang.ts + var trigger_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPopperTrigger", + inheritAttrs: false, + __name: "trigger", + props: popperTriggerProps, + setup(__props, { expose: __expose }) { + const props = __props; + const { role, triggerRef } = (0, vue.inject)(POPPER_INJECTION_KEY, void 0); + useForwardRef(triggerRef); + const ariaControls = (0, vue.computed)(() => { + return ariaHaspopup.value ? props.id : void 0; + }); + const ariaDescribedby = (0, vue.computed)(() => { + if (role && role.value === "tooltip") return props.open && props.id ? props.id : void 0; + }); + const ariaHaspopup = (0, vue.computed)(() => { + if (role && role.value !== "tooltip") return role.value; + }); + const ariaExpanded = (0, vue.computed)(() => { + return ariaHaspopup.value ? `${props.open}` : void 0; + }); + let virtualTriggerAriaStopWatch = void 0; + const TRIGGER_ELE_EVENTS = [ + "onMouseenter", + "onMouseleave", + "onClick", + "onKeydown", + "onFocus", + "onBlur", + "onContextmenu" + ]; + (0, vue.onMounted)(() => { + (0, vue.watch)(() => props.virtualRef, (virtualEl) => { + if (virtualEl) triggerRef.value = unrefElement(virtualEl); + }, { immediate: true }); + (0, vue.watch)(triggerRef, (el, prevEl) => { + virtualTriggerAriaStopWatch?.(); + virtualTriggerAriaStopWatch = void 0; + if (isElement$1(prevEl)) TRIGGER_ELE_EVENTS.forEach((eventName) => { + const handler = props[eventName]; + if (handler) prevEl.removeEventListener(eventName.slice(2).toLowerCase(), handler, ["onFocus", "onBlur"].includes(eventName)); + }); + if (isElement$1(el)) { + TRIGGER_ELE_EVENTS.forEach((eventName) => { + const handler = props[eventName]; + if (handler) el.addEventListener(eventName.slice(2).toLowerCase(), handler, ["onFocus", "onBlur"].includes(eventName)); + }); + if (isFocusable(el)) virtualTriggerAriaStopWatch = (0, vue.watch)([ + ariaControls, + ariaDescribedby, + ariaHaspopup, + ariaExpanded + ], (watches) => { + [ + "aria-controls", + "aria-describedby", + "aria-haspopup", + "aria-expanded" + ].forEach((key, idx) => { + isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]); + }); + }, { immediate: true }); + } + if (isElement$1(prevEl) && isFocusable(prevEl)) [ + "aria-controls", + "aria-describedby", + "aria-haspopup", + "aria-expanded" + ].forEach((key) => prevEl.removeAttribute(key)); + }, { immediate: true }); + }); + (0, vue.onBeforeUnmount)(() => { + virtualTriggerAriaStopWatch?.(); + virtualTriggerAriaStopWatch = void 0; + if (triggerRef.value && isElement$1(triggerRef.value)) { + const el = triggerRef.value; + TRIGGER_ELE_EVENTS.forEach((eventName) => { + const handler = props[eventName]; + if (handler) el.removeEventListener(eventName.slice(2).toLowerCase(), handler, ["onFocus", "onBlur"].includes(eventName)); + }); + triggerRef.value = void 0; + } + }); + __expose({ triggerRef }); + return (_ctx, _cache) => { + return !__props.virtualTriggering ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(OnlyChild), (0, vue.mergeProps)({ key: 0 }, _ctx.$attrs, { + "aria-controls": ariaControls.value, + "aria-describedby": ariaDescribedby.value, + "aria-expanded": ariaExpanded.value, + "aria-haspopup": ariaHaspopup.value + }), { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 16, [ + "aria-controls", + "aria-describedby", + "aria-expanded", + "aria-haspopup" + ])) : (0, vue.createCommentVNode)("v-if", true); + }; + } + }); + +//#endregion +//#region ../../packages/components/popper/src/trigger.vue + var trigger_default = trigger_vue_vue_type_script_setup_true_lang_default$1; + +//#endregion +//#region ../../packages/components/popper/src/arrow.ts +/** + * @deprecated Removed after 3.0.0, Use `PopperArrowProps` instead. + */ + const popperArrowProps = buildProps({ arrowOffset: { + type: Number, + default: 5 + } }); + const popperArrowPropsDefaults = { arrowOffset: 5 }; + /** @deprecated use `popperArrowProps` instead, and it will be deprecated in the next major version */ + const usePopperArrowProps = popperArrowProps; + +//#endregion +//#region ../../packages/components/popper/src/content.ts + const POSITIONING_STRATEGIES = ["fixed", "absolute"]; + /** + * @deprecated Removed after 3.0.0, Use `PopperCoreConfigProps` instead. + */ + const popperCoreConfigProps = buildProps({ + boundariesPadding: { + type: Number, + default: 0 + }, + fallbackPlacements: { + type: definePropType(Array), + default: void 0 + }, + gpuAcceleration: { + type: Boolean, + default: true + }, + offset: { + type: Number, + default: 12 + }, + placement: { + type: String, + values: Ee, + default: "bottom" + }, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + strategy: { + type: String, + values: POSITIONING_STRATEGIES, + default: "absolute" + } + }); + /** + * @deprecated Removed after 3.0.0, Use `PopperContentProps` instead. + */ + const popperContentProps = buildProps({ + ...popperCoreConfigProps, + ...popperArrowProps, + id: String, + style: { type: definePropType([ + String, + Array, + Object + ]) }, + className: { type: definePropType([ + String, + Array, + Object + ]) }, + effect: { + type: definePropType(String), + default: "dark" + }, + visible: Boolean, + enterable: { + type: Boolean, + default: true + }, + pure: Boolean, + focusOnShow: Boolean, + trapping: Boolean, + popperClass: { type: definePropType([ + String, + Array, + Object + ]) }, + popperStyle: { type: definePropType([ + String, + Array, + Object + ]) }, + referenceEl: { type: definePropType(Object) }, + triggerTargetEl: { type: definePropType(Object) }, + stopPopperMouseEvent: { + type: Boolean, + default: true + }, + virtualTriggering: Boolean, + zIndex: Number, + ...useAriaProps(["ariaLabel"]), + loop: Boolean + }); + const popperCoreConfigPropsDefaults = { + boundariesPadding: 0, + gpuAcceleration: true, + offset: 12, + placement: "bottom", + popperOptions: () => ({}), + strategy: "absolute" + }; + const popperContentPropsDefaults = { + ...popperCoreConfigPropsDefaults, + ...popperArrowPropsDefaults, + effect: "dark", + enterable: true, + stopPopperMouseEvent: true, + visible: false, + pure: false, + focusOnShow: false, + trapping: false, + virtualTriggering: false, + loop: false, + style: void 0, + popperStyle: void 0 + }; + const popperContentEmits = { + mouseenter: (evt) => evt instanceof MouseEvent, + mouseleave: (evt) => evt instanceof MouseEvent, + focus: () => true, + blur: () => true, + close: () => true + }; + /** @deprecated use `popperCoreConfigProps` instead, and it will be deprecated in the next major version */ + const usePopperCoreConfigProps = popperCoreConfigProps; + /** @deprecated use `popperContentProps` instead, and it will be deprecated in the next major version */ + const usePopperContentProps = popperContentProps; + /** @deprecated use `popperContentEmits` instead, and it will be deprecated in the next major version */ + const usePopperContentEmits = popperContentEmits; + +//#endregion +//#region ../../packages/components/focus-trap/src/tokens.ts + const FOCUS_AFTER_TRAPPED = "focus-trap.focus-after-trapped"; + const FOCUS_AFTER_RELEASED = "focus-trap.focus-after-released"; + const FOCUSOUT_PREVENTED = "focus-trap.focusout-prevented"; + const FOCUS_AFTER_TRAPPED_OPTS = { + cancelable: true, + bubbles: false + }; + const FOCUSOUT_PREVENTED_OPTS = { + cancelable: true, + bubbles: false + }; + const ON_TRAP_FOCUS_EVT = "focusAfterTrapped"; + const ON_RELEASE_FOCUS_EVT = "focusAfterReleased"; + const FOCUS_TRAP_INJECTION_KEY = Symbol("elFocusTrap"); + +//#endregion +//#region ../../packages/components/focus-trap/src/utils.ts + const focusReason = (0, vue.ref)(); + const lastUserFocusTimestamp = (0, vue.ref)(0); + const lastAutomatedFocusTimestamp = (0, vue.ref)(0); + let focusReasonUserCount = 0; + const obtainAllFocusableElements = (element) => { + const nodes = []; + const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT, { acceptNode: (node) => { + const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden"; + if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; + return node.tabIndex >= 0 || node === document.activeElement ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP; + } }); + while (walker.nextNode()) nodes.push(walker.currentNode); + return nodes; + }; + const getVisibleElement = (elements, container) => { + for (const element of elements) if (!isHidden(element, container)) return element; + }; + const isHidden = (element, container) => { + if (getComputedStyle(element).visibility === "hidden") return true; + while (element) { + if (container && element === container) return false; + if (getComputedStyle(element).display === "none") return true; + element = element.parentElement; + } + return false; + }; + const getEdges = (container) => { + const focusable = obtainAllFocusableElements(container); + return [getVisibleElement(focusable, container), getVisibleElement(focusable.reverse(), container)]; + }; + const isSelectable = (element) => { + return element instanceof HTMLInputElement && "select" in element; + }; + const tryFocus = (element, shouldSelect) => { + if (element) { + const prevFocusedElement = document.activeElement; + focusElement(element, { preventScroll: true }); + lastAutomatedFocusTimestamp.value = window.performance.now(); + if (element !== prevFocusedElement && isSelectable(element) && shouldSelect) element.select(); + } + }; + function removeFromStack(list, item) { + const copy = [...list]; + const idx = list.indexOf(item); + if (idx !== -1) copy.splice(idx, 1); + return copy; + } + const createFocusableStack = () => { + let stack = []; + const push = (layer) => { + const currentLayer = stack[0]; + if (currentLayer && layer !== currentLayer) currentLayer.pause(); + stack = removeFromStack(stack, layer); + stack.unshift(layer); + }; + const remove = (layer) => { + stack = removeFromStack(stack, layer); + stack[0]?.resume?.(); + }; + return { + push, + remove + }; + }; + const focusFirstDescendant = (elements, shouldSelect = false) => { + const prevFocusedElement = document.activeElement; + for (const element of elements) { + tryFocus(element, shouldSelect); + if (document.activeElement !== prevFocusedElement) return; + } + }; + const focusableStack = createFocusableStack(); + const isFocusCausedByUserEvent = () => { + return lastUserFocusTimestamp.value > lastAutomatedFocusTimestamp.value; + }; + const notifyFocusReasonPointer = () => { + focusReason.value = "pointer"; + lastUserFocusTimestamp.value = window.performance.now(); + }; + const notifyFocusReasonKeydown = () => { + focusReason.value = "keyboard"; + lastUserFocusTimestamp.value = window.performance.now(); + }; + const useFocusReason = () => { + (0, vue.onMounted)(() => { + if (focusReasonUserCount === 0) { + document.addEventListener("mousedown", notifyFocusReasonPointer); + document.addEventListener("touchstart", notifyFocusReasonPointer); + document.addEventListener("keydown", notifyFocusReasonKeydown); + } + focusReasonUserCount++; + }); + (0, vue.onBeforeUnmount)(() => { + focusReasonUserCount--; + if (focusReasonUserCount <= 0) { + document.removeEventListener("mousedown", notifyFocusReasonPointer); + document.removeEventListener("touchstart", notifyFocusReasonPointer); + document.removeEventListener("keydown", notifyFocusReasonKeydown); + } + }); + return { + focusReason, + lastUserFocusTimestamp, + lastAutomatedFocusTimestamp + }; + }; + const createFocusOutPreventedEvent = (detail) => { + return new CustomEvent(FOCUSOUT_PREVENTED, { + ...FOCUSOUT_PREVENTED_OPTS, + detail + }); + }; + +//#endregion +//#region ../../packages/components/focus-trap/src/focus-trap.vue?vue&type=script&lang.ts + var focus_trap_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElFocusTrap", + inheritAttrs: false, + props: { + loop: Boolean, + trapped: Boolean, + focusTrapEl: Object, + focusStartEl: { + type: [Object, String], + default: "first" + } + }, + emits: [ + ON_TRAP_FOCUS_EVT, + ON_RELEASE_FOCUS_EVT, + "focusin", + "focusout", + "focusout-prevented", + "release-requested" + ], + setup(props, { emit }) { + const forwardRef = (0, vue.ref)(); + let lastFocusBeforeTrapped; + let lastFocusAfterTrapped; + const { focusReason } = useFocusReason(); + useEscapeKeydown((event) => { + if (props.trapped && !focusLayer.paused) emit("release-requested", event); + }); + const focusLayer = { + paused: false, + pause() { + this.paused = true; + }, + resume() { + this.paused = false; + } + }; + const onKeydown = (e) => { + if (!props.loop && !props.trapped) return; + if (focusLayer.paused) return; + const { altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e; + const { loop } = props; + const isTabbing = getEventCode(e) === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey; + const currentFocusingEl = document.activeElement; + if (isTabbing && currentFocusingEl) { + const container = currentTarget; + const [first, last] = getEdges(container); + if (!(first && last)) { + if (currentFocusingEl === container) { + const focusoutPreventedEvent = createFocusOutPreventedEvent({ focusReason: focusReason.value }); + emit("focusout-prevented", focusoutPreventedEvent); + if (!focusoutPreventedEvent.defaultPrevented) e.preventDefault(); + } + } else if (!shiftKey && currentFocusingEl === last) { + const focusoutPreventedEvent = createFocusOutPreventedEvent({ focusReason: focusReason.value }); + emit("focusout-prevented", focusoutPreventedEvent); + if (!focusoutPreventedEvent.defaultPrevented) { + e.preventDefault(); + if (loop) tryFocus(first, true); + } + } else if (shiftKey && [first, container].includes(currentFocusingEl)) { + const focusoutPreventedEvent = createFocusOutPreventedEvent({ focusReason: focusReason.value }); + emit("focusout-prevented", focusoutPreventedEvent); + if (!focusoutPreventedEvent.defaultPrevented) { + e.preventDefault(); + if (loop) tryFocus(last, true); + } + } + } + }; + (0, vue.provide)(FOCUS_TRAP_INJECTION_KEY, { + focusTrapRef: forwardRef, + onKeydown + }); + (0, vue.watch)(() => props.focusTrapEl, (focusTrapEl) => { + if (focusTrapEl) forwardRef.value = focusTrapEl; + }, { immediate: true }); + (0, vue.watch)([forwardRef], ([forwardRef], [oldForwardRef]) => { + if (forwardRef) { + forwardRef.addEventListener("keydown", onKeydown); + forwardRef.addEventListener("focusin", onFocusIn); + forwardRef.addEventListener("focusout", onFocusOut); + } + if (oldForwardRef) { + oldForwardRef.removeEventListener("keydown", onKeydown); + oldForwardRef.removeEventListener("focusin", onFocusIn); + oldForwardRef.removeEventListener("focusout", onFocusOut); + } + }); + const trapOnFocus = (e) => { + emit(ON_TRAP_FOCUS_EVT, e); + }; + const releaseOnFocus = (e) => emit(ON_RELEASE_FOCUS_EVT, e); + const onFocusIn = (e) => { + const trapContainer = (0, vue.unref)(forwardRef); + if (!trapContainer) return; + const target = e.target; + const relatedTarget = e.relatedTarget; + const isFocusedInTrap = target && trapContainer.contains(target); + if (!props.trapped) { + if (!(relatedTarget && trapContainer.contains(relatedTarget))) lastFocusBeforeTrapped = relatedTarget; + } + if (isFocusedInTrap) emit("focusin", e); + if (focusLayer.paused) return; + if (props.trapped) if (isFocusedInTrap) lastFocusAfterTrapped = target; + else tryFocus(lastFocusAfterTrapped, true); + }; + const onFocusOut = (e) => { + const trapContainer = (0, vue.unref)(forwardRef); + if (focusLayer.paused || !trapContainer) return; + if (props.trapped) { + const relatedTarget = e.relatedTarget; + if (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) setTimeout(() => { + if (!focusLayer.paused && props.trapped) { + const focusoutPreventedEvent = createFocusOutPreventedEvent({ focusReason: focusReason.value }); + emit("focusout-prevented", focusoutPreventedEvent); + if (!focusoutPreventedEvent.defaultPrevented) tryFocus(lastFocusAfterTrapped, true); + } + }, 0); + } else { + const target = e.target; + if (!(target && trapContainer.contains(target))) emit("focusout", e); + } + }; + async function startTrap() { + await (0, vue.nextTick)(); + const trapContainer = (0, vue.unref)(forwardRef); + if (trapContainer) { + focusableStack.push(focusLayer); + const prevFocusedElement = trapContainer.contains(document.activeElement) ? lastFocusBeforeTrapped : document.activeElement; + lastFocusBeforeTrapped = prevFocusedElement; + if (!trapContainer.contains(prevFocusedElement)) { + const focusEvent = new Event(FOCUS_AFTER_TRAPPED, FOCUS_AFTER_TRAPPED_OPTS); + trapContainer.addEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus); + trapContainer.dispatchEvent(focusEvent); + if (!focusEvent.defaultPrevented) (0, vue.nextTick)(() => { + let focusStartEl = props.focusStartEl; + if (!isString(focusStartEl)) { + tryFocus(focusStartEl); + if (document.activeElement !== focusStartEl) focusStartEl = "first"; + } + if (focusStartEl === "first") focusFirstDescendant(obtainAllFocusableElements(trapContainer), true); + if (document.activeElement === prevFocusedElement || focusStartEl === "container") tryFocus(trapContainer); + }); + } + } + } + function stopTrap() { + const trapContainer = (0, vue.unref)(forwardRef); + if (trapContainer) { + trapContainer.removeEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus); + const releasedEvent = new CustomEvent(FOCUS_AFTER_RELEASED, { + ...FOCUS_AFTER_TRAPPED_OPTS, + detail: { focusReason: focusReason.value } + }); + trapContainer.addEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus); + trapContainer.dispatchEvent(releasedEvent); + if (!releasedEvent.defaultPrevented && (focusReason.value == "keyboard" || !isFocusCausedByUserEvent() || trapContainer.contains(document.activeElement))) tryFocus(lastFocusBeforeTrapped ?? document.body); + trapContainer.removeEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus); + focusableStack.remove(focusLayer); + lastFocusBeforeTrapped = null; + lastFocusAfterTrapped = null; + } + } + (0, vue.onMounted)(() => { + if (props.trapped) startTrap(); + (0, vue.watch)(() => props.trapped, (trapped) => { + if (trapped) startTrap(); + else stopTrap(); + }); + }); + (0, vue.onBeforeUnmount)(() => { + if (props.trapped) stopTrap(); + if (forwardRef.value) { + forwardRef.value.removeEventListener("keydown", onKeydown); + forwardRef.value.removeEventListener("focusin", onFocusIn); + forwardRef.value.removeEventListener("focusout", onFocusOut); + forwardRef.value = void 0; + } + lastFocusBeforeTrapped = null; + lastFocusAfterTrapped = null; + }); + return { onKeydown }; + } + }); + +//#endregion +//#region \0plugin-vue:export-helper + var _plugin_vue_export_helper_default = (sfc, props) => { + const target = sfc.__vccOpts || sfc; + for (const [key, val] of props) target[key] = val; + return target; + }; + +//#endregion +//#region ../../packages/components/focus-trap/src/focus-trap.vue + function _sfc_render$21(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.renderSlot)(_ctx.$slots, "default", { handleKeydown: _ctx.onKeydown }); + } + var focus_trap_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(focus_trap_vue_vue_type_script_lang_default, [["render", _sfc_render$21]]); + +//#endregion +//#region ../../packages/components/focus-trap/index.ts + var focus_trap_default = focus_trap_default$1; + +//#endregion +//#region ../../packages/components/form/src/form.ts +/** + * @deprecated Removed after 3.0.0, Use `FormMetaProps` instead. + */ + const formMetaProps = buildProps({ + size: { + type: String, + values: componentSizes + }, + disabled: Boolean + }); + /** + * @deprecated Removed after 3.0.0, Use `FormProps` instead. + */ + const formProps = buildProps({ + ...formMetaProps, + model: Object, + rules: { type: definePropType(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: true + }, + validateOnRuleChange: { + type: Boolean, + default: true + }, + hideRequiredAsterisk: Boolean, + scrollToError: Boolean, + scrollIntoViewOptions: { + type: definePropType([Object, Boolean]), + default: true + } + }); + const formEmits = { validate: (prop, isValid, message) => (isArray$1(prop) || isString(prop)) && isBoolean(isValid) && isString(message) }; + +//#endregion +//#region ../../packages/components/form/src/constants.ts + const formContextKey = Symbol("formContextKey"); + const formItemContextKey = Symbol("formItemContextKey"); + +//#endregion +//#region ../../packages/components/form/src/hooks/use-form-common-props.ts + const useFormSize = (fallback, ignore = {}) => { + const emptyRef = (0, vue.ref)(void 0); + const size = ignore.prop ? emptyRef : useProp("size"); + const globalConfig = ignore.global ? emptyRef : useGlobalSize(); + const form = ignore.form ? { size: void 0 } : (0, vue.inject)(formContextKey, void 0); + const formItem = ignore.formItem ? { size: void 0 } : (0, vue.inject)(formItemContextKey, void 0); + return (0, vue.computed)(() => size.value || (0, vue.unref)(fallback) || formItem?.size || form?.size || globalConfig.value || ""); + }; + const useFormDisabled = (fallback) => { + const disabled = useProp("disabled"); + const form = (0, vue.inject)(formContextKey, void 0); + return (0, vue.computed)(() => { + return disabled.value ?? (0, vue.unref)(fallback) ?? form?.disabled ?? false; + }); + }; + const useSize = useFormSize; + const useDisabled = useFormDisabled; + +//#endregion +//#region ../../packages/components/form/src/hooks/use-form-item.ts + const useFormItem = () => { + return { + form: (0, vue.inject)(formContextKey, void 0), + formItem: (0, vue.inject)(formItemContextKey, void 0) + }; + }; + const useFormItemInputId = (props, { formItemContext, disableIdGeneration, disableIdManagement }) => { + if (!disableIdGeneration) disableIdGeneration = (0, vue.ref)(false); + if (!disableIdManagement) disableIdManagement = (0, vue.ref)(false); + const instance = (0, vue.getCurrentInstance)(); + const inLabel = () => { + let parent = instance?.parent; + while (parent) { + if (parent.type.name === "ElFormItem") return false; + if (parent.type.name === "ElLabelWrap") return true; + parent = parent.parent; + } + return false; + }; + const inputId = (0, vue.ref)(); + let idUnwatch = void 0; + const isLabeledByFormItem = (0, vue.computed)(() => { + return !!(!(props.label || props.ariaLabel) && formItemContext && formItemContext.inputIds && formItemContext.inputIds?.length <= 1); + }); + (0, vue.onMounted)(() => { + idUnwatch = (0, vue.watch)([(0, vue.toRef)(props, "id"), disableIdGeneration], ([id, disableIdGeneration]) => { + const newId = id ?? (!disableIdGeneration ? useId().value : void 0); + if (newId !== inputId.value) { + if (formItemContext?.removeInputId && !inLabel()) { + inputId.value && formItemContext.removeInputId(inputId.value); + if (!disableIdManagement?.value && !disableIdGeneration && newId) formItemContext.addInputId(newId); + } + inputId.value = newId; + } + }, { immediate: true }); + }); + (0, vue.onUnmounted)(() => { + idUnwatch && idUnwatch(); + if (formItemContext?.removeInputId) inputId.value && formItemContext.removeInputId(inputId.value); + }); + return { + isLabeledByFormItem, + inputId + }; + }; + +//#endregion +//#region ../../packages/components/form/src/utils.ts + const SCOPE$7 = "ElForm"; + function useFormLabelWidth() { + const potentialLabelWidthArr = (0, vue.ref)([]); + const autoLabelWidth = (0, vue.computed)(() => { + if (!potentialLabelWidthArr.value.length) return "0"; + const max = Math.max(...potentialLabelWidthArr.value); + return max ? `${max}px` : ""; + }); + function getLabelWidthIndex(width) { + const index = potentialLabelWidthArr.value.indexOf(width); + if (index === -1 && autoLabelWidth.value === "0") /* @__PURE__ */ debugWarn(SCOPE$7, `unexpected width ${width}`); + return index; + } + function registerLabelWidth(val, oldVal) { + if (val && oldVal) { + const index = getLabelWidthIndex(oldVal); + potentialLabelWidthArr.value.splice(index, 1, val); + } else if (val) potentialLabelWidthArr.value.push(val); + } + function deregisterLabelWidth(val) { + const index = getLabelWidthIndex(val); + if (index > -1) potentialLabelWidthArr.value.splice(index, 1); + } + return { + autoLabelWidth, + registerLabelWidth, + deregisterLabelWidth + }; + } + const filterFields = (fields, props) => { + const normalized = castArray$1(props).map((prop) => isArray$1(prop) ? prop.join(".") : prop); + return normalized.length > 0 ? fields.filter((field) => field.propString && normalized.includes(field.propString)) : fields; + }; + +//#endregion +//#region ../../packages/components/form/src/form.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$21 = "ElForm"; + var form_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$21, + __name: "form", + props: formProps, + emits: formEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const formRef = (0, vue.ref)(); + const fields = (0, vue.reactive)([]); + const initialValues = /* @__PURE__ */ new Map(); + const formSize = useFormSize(); + const ns = useNamespace("form"); + const formClasses = (0, vue.computed)(() => { + const { labelPosition, inline } = props; + return [ + ns.b(), + ns.m(formSize.value || "default"), + { + [ns.m(`label-${labelPosition}`)]: labelPosition, + [ns.m("inline")]: inline + } + ]; + }); + const getField = (prop) => { + return filterFields(fields, [prop])[0]; + }; + const addField = (field) => { + if (!fields.includes(field)) fields.push(field); + if (field.propString) if (initialValues.has(field.propString)) field.setInitialValue(initialValues.get(field.propString)); + else initialValues.set(field.propString, cloneDeep(field.fieldValue)); + }; + const removeField = (field, oldPropString) => { + if (oldPropString) { + initialValues.delete(oldPropString); + return; + } + const idx = fields.indexOf(field); + if (idx > -1) { + fields.splice(idx, 1); + if (field.propString) initialValues.set(field.propString, cloneDeep(field.getInitialValue())); + } + }; + const setInitialValues = (initModel) => { + if (!props.model) { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$21, "model is required for setInitialValues to work."); + return; + } + if (!initModel) { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$21, "initModel is required for setInitialValues to work."); + return; + } + for (const key of initialValues.keys()) initialValues.set(key, cloneDeep(getProp(initModel, key).value)); + fields.forEach((field) => { + if (field.prop) field.setInitialValue(getProp(initModel, field.prop).value); + }); + }; + const resetFields = (properties = []) => { + if (!props.model) { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$21, "model is required for resetFields to work."); + return; + } + filterFields(fields, properties).forEach((field) => field.resetField()); + const activePropStrings = new Set(fields.map((f) => f.propString).filter(Boolean)); + const propsToCheck = properties.length > 0 ? castArray$1(properties).map((p) => isArray$1(p) ? p.join(".") : p) : [...initialValues.keys()]; + for (const propString of propsToCheck) if (!activePropStrings.has(propString) && initialValues.has(propString)) getProp(props.model, propString).value = cloneDeep(initialValues.get(propString)); + }; + const clearValidate = (props = []) => { + filterFields(fields, props).forEach((field) => field.clearValidate()); + }; + const isValidatable = (0, vue.computed)(() => { + const hasModel = !!props.model; + if (!hasModel) /* @__PURE__ */ debugWarn(COMPONENT_NAME$21, "model is required for validate to work."); + return hasModel; + }); + const obtainValidateFields = (props) => { + if (fields.length === 0) return []; + const filteredFields = filterFields(fields, props); + if (!filteredFields.length) { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$21, "please pass correct props!"); + return []; + } + return filteredFields; + }; + const validate = async (callback) => validateField(void 0, callback); + const doValidateField = async (props = []) => { + if (!isValidatable.value) return false; + const fields = obtainValidateFields(props); + if (fields.length === 0) return true; + let validationErrors = {}; + for (const field of fields) try { + await field.validate(""); + if (field.validateState === "error" && !field.error) field.resetField(); + } catch (fields) { + validationErrors = { + ...validationErrors, + ...fields + }; + } + if (Object.keys(validationErrors).length === 0) return true; + return Promise.reject(validationErrors); + }; + const validateField = async (modelProps = [], callback) => { + let result = false; + const shouldThrow = !isFunction$1(callback); + try { + result = await doValidateField(modelProps); + if (result === true) await callback?.(result); + return result; + } catch (e) { + if (e instanceof Error) throw e; + const invalidFields = e; + if (props.scrollToError) { + if (formRef.value) formRef.value.querySelector(`.${ns.b()}-item.is-error`)?.scrollIntoView(props.scrollIntoViewOptions); + } + !result && await callback?.(false, invalidFields); + return shouldThrow && Promise.reject(invalidFields); + } + }; + const scrollToField = (prop) => { + const field = getField(prop); + if (field) field.$el?.scrollIntoView(props.scrollIntoViewOptions); + }; + (0, vue.watch)(() => props.rules, () => { + if (props.validateOnRuleChange) validate().catch((err) => /* @__PURE__ */ debugWarn(err)); + }, { + deep: true, + flush: "post" + }); + (0, vue.provide)(formContextKey, (0, vue.reactive)({ + ...(0, vue.toRefs)(props), + emit, + resetFields, + clearValidate, + validateField, + getField, + addField, + removeField, + setInitialValues, + ...useFormLabelWidth() + })); + __expose({ + validate, + validateField, + resetFields, + clearValidate, + scrollToField, + getField, + fields, + setInitialValues + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("form", { + ref_key: "formRef", + ref: formRef, + class: (0, vue.normalizeClass)(formClasses.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/form/src/form.vue + var form_default = form_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/form/src/form-item.ts + const formItemValidateStates = [ + "", + "error", + "validating", + "success" + ]; + /** + * @deprecated Removed after 3.0.0, Use `FormItemProps` instead. + */ + const formItemProps = buildProps({ + label: String, + labelWidth: { type: [String, Number] }, + labelPosition: { + type: String, + values: [ + "left", + "right", + "top", + "" + ], + default: "" + }, + prop: { type: definePropType([String, Array]) }, + required: { + type: Boolean, + default: void 0 + }, + rules: { type: definePropType([Object, Array]) }, + error: String, + validateStatus: { + type: String, + values: formItemValidateStates + }, + for: String, + inlineMessage: { + type: Boolean, + default: void 0 + }, + showMessage: { + type: Boolean, + default: true + }, + size: { + type: String, + values: componentSizes + } + }); + +//#endregion +//#region ../../node_modules/.pnpm/async-validator@4.2.5_patch_hash=cc6d77b35ed2a1683012935ca9ed998d418912785fcf78c6497d3268ac596d23/node_modules/async-validator/dist-web/index.js + function _extends() { + _extends = Object.assign ? Object.assign.bind() : function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key]; + } + return target; + }; + return _extends.apply(this, arguments); + } + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + _setPrototypeOf(subClass, superClass); + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {})); + return true; + } catch (e) { + return false; + } + } + function _construct(Parent, args, Class) { + if (_isNativeReflectConstruct()) _construct = Reflect.construct.bind(); + else _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var instance = new (Function.bind.apply(Parent, a))(); + if (Class) _setPrototypeOf(instance, Class.prototype); + return instance; + }; + return _construct.apply(null, arguments); + } + function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; + } + function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? /* @__PURE__ */ new Map() : void 0; + _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !_isNativeFunction(Class)) return Class; + if (typeof Class !== "function") throw new TypeError("Super expression must either be null or a function"); + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + _cache.set(Class, Wrapper); + } + function Wrapper() { + return _construct(Class, arguments, _getPrototypeOf(this).constructor); + } + Wrapper.prototype = Object.create(Class.prototype, { constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } }); + return _setPrototypeOf(Wrapper, Class); + }; + return _wrapNativeSuper(Class); + } + var formatRegExp = /%[sdj%]/g; + var warning = function warning() {}; + if (typeof process !== "undefined" && process.env && false); + function convertFieldsError(errors) { + if (!errors || !errors.length) return null; + var fields = {}; + errors.forEach(function(error) { + var field = error.field; + fields[field] = fields[field] || []; + fields[field].push(error); + }); + return fields; + } + function format(template) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) args[_key - 1] = arguments[_key]; + var i = 0; + var len = args.length; + if (typeof template === "function") return template.apply(null, args); + if (typeof template === "string") return template.replace(formatRegExp, function(x) { + if (x === "%%") return "%"; + if (i >= len) return x; + switch (x) { + case "%s": return String(args[i++]); + case "%d": return Number(args[i++]); + case "%j": + try { + return JSON.stringify(args[i++]); + } catch (_) { + return "[Circular]"; + } + break; + default: return x; + } + }); + return template; + } + function isNativeStringType(type) { + return type === "string" || type === "url" || type === "hex" || type === "email" || type === "date" || type === "pattern"; + } + function isEmptyValue(value, type) { + if (value === void 0 || value === null) return true; + if (type === "array" && Array.isArray(value) && !value.length) return true; + if (isNativeStringType(type) && typeof value === "string" && !value) return true; + return false; + } + function asyncParallelArray(arr, func, callback) { + var results = []; + var total = 0; + var arrLength = arr.length; + function count(errors) { + results.push.apply(results, errors || []); + total++; + if (total === arrLength) callback(results); + } + arr.forEach(function(a) { + func(a, count); + }); + } + function asyncSerialArray(arr, func, callback) { + var index = 0; + var arrLength = arr.length; + function next(errors) { + if (errors && errors.length) { + callback(errors); + return; + } + var original = index; + index = index + 1; + if (original < arrLength) func(arr[original], next); + else callback([]); + } + next([]); + } + function flattenObjArr(objArr) { + var ret = []; + Object.keys(objArr).forEach(function(k) { + ret.push.apply(ret, objArr[k] || []); + }); + return ret; + } + var AsyncValidationError = /* @__PURE__ */ function(_Error) { + _inheritsLoose(AsyncValidationError, _Error); + function AsyncValidationError(errors, fields) { + var _this = _Error.call(this, "Async Validation Error") || this; + _this.errors = errors; + _this.fields = fields; + return _this; + } + return AsyncValidationError; + }(/* @__PURE__ */ _wrapNativeSuper(Error)); + function asyncMap(objArr, option, func, callback, source) { + if (option.first) { + var _pending = new Promise(function(resolve, reject) { + asyncSerialArray(flattenObjArr(objArr), func, function next(errors) { + callback(errors); + return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve(source); + }); + }); + _pending["catch"](function(e) { + return e; + }); + return _pending; + } + var firstFields = option.firstFields === true ? Object.keys(objArr) : option.firstFields || []; + var objArrKeys = Object.keys(objArr); + var objArrLength = objArrKeys.length; + var total = 0; + var results = []; + var pending = new Promise(function(resolve, reject) { + var next = function next(errors) { + results.push.apply(results, errors); + total++; + if (total === objArrLength) { + callback(results); + return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve(source); + } + }; + if (!objArrKeys.length) { + callback(results); + resolve(source); + } + objArrKeys.forEach(function(key) { + var arr = objArr[key]; + if (firstFields.indexOf(key) !== -1) asyncSerialArray(arr, func, next); + else asyncParallelArray(arr, func, next); + }); + }); + pending["catch"](function(e) { + return e; + }); + return pending; + } + function isErrorObj(obj) { + return !!(obj && obj.message !== void 0); + } + function getValue(value, path) { + var v = value; + for (var i = 0; i < path.length; i++) { + if (v == void 0) return v; + v = v[path[i]]; + } + return v; + } + function complementError(rule, source) { + return function(oe) { + var fieldValue; + if (rule.fullFields) fieldValue = getValue(source, rule.fullFields); + else fieldValue = source[oe.field || rule.fullField]; + if (isErrorObj(oe)) { + oe.field = oe.field || rule.fullField; + oe.fieldValue = fieldValue; + return oe; + } + return { + message: typeof oe === "function" ? oe() : oe, + fieldValue, + field: oe.field || rule.fullField + }; + }; + } + function deepMerge(target, source) { + if (source) { + for (var s in source) if (source.hasOwnProperty(s)) { + var value = source[s]; + if (typeof value === "object" && typeof target[s] === "object") target[s] = _extends({}, target[s], value); + else target[s] = value; + } + } + return target; + } + var required$1 = function required(rule, value, source, errors, options, type) { + if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) errors.push(format(options.messages.required, rule.fullField)); + }; + /** + * Rule for validating whitespace. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param source The source object being validated. + * @param errors An array of errors that this rule may add + * validation errors to. + * @param options The validation options. + * @param options.messages The validation messages. + */ + var whitespace = function whitespace(rule, value, source, errors, options) { + if (/^\s+$/.test(value) || value === "") errors.push(format(options.messages.whitespace, rule.fullField)); + }; + var urlReg; + var getUrlRegex = (function() { + if (urlReg) return urlReg; + var word = "[a-fA-F\\d:]"; + var b = function b(options) { + return options && options.includeBoundaries ? "(?:(?<=\\s|^)(?=" + word + ")|(?<=" + word + ")(?=\\s|$))" : ""; + }; + var v4 = "(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}"; + var v6seg = "[a-fA-F\\d]{1,4}"; + var v6 = ("\n(?:\n(?:" + v6seg + ":){7}(?:" + v6seg + "|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:" + v6seg + ":){6}(?:" + v4 + "|:" + v6seg + "|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:" + v6seg + ":){5}(?::" + v4 + "|(?::" + v6seg + "){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:" + v6seg + ":){4}(?:(?::" + v6seg + "){0,1}:" + v4 + "|(?::" + v6seg + "){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:" + v6seg + ":){3}(?:(?::" + v6seg + "){0,2}:" + v4 + "|(?::" + v6seg + "){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:" + v6seg + ":){2}(?:(?::" + v6seg + "){0,3}:" + v4 + "|(?::" + v6seg + "){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:" + v6seg + ":){1}(?:(?::" + v6seg + "){0,4}:" + v4 + "|(?::" + v6seg + "){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::" + v6seg + "){0,5}:" + v4 + "|(?::" + v6seg + "){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n").replace(/\s*\/\/.*$/gm, "").replace(/\n/g, "").trim(); + var v46Exact = new RegExp("(?:^" + v4 + "$)|(?:^" + v6 + "$)"); + var v4exact = new RegExp("^" + v4 + "$"); + var v6exact = new RegExp("^" + v6 + "$"); + var ip = function ip(options) { + return options && options.exact ? v46Exact : new RegExp("(?:" + b(options) + v4 + b(options) + ")|(?:" + b(options) + v6 + b(options) + ")", "g"); + }; + ip.v4 = function(options) { + return options && options.exact ? v4exact : new RegExp("" + b(options) + v4 + b(options), "g"); + }; + ip.v6 = function(options) { + return options && options.exact ? v6exact : new RegExp("" + b(options) + v6 + b(options), "g"); + }; + var protocol = "(?:(?:[a-z]+:)?//)"; + var auth = "(?:\\S+(?::\\S*)?@)?"; + var ipv4 = ip.v4().source; + var ipv6 = ip.v6().source; + var regex = "(?:" + protocol + "|www\\.)" + auth + "(?:localhost|" + ipv4 + "|" + ipv6 + "|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s\"]*)?"; + urlReg = new RegExp("(?:^" + regex + "$)", "i"); + return urlReg; + }); + var pattern$2 = { + email: /^(([^<>()\[\]\\.,;:\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 + }; + var types = { + integer: function integer(value) { + return types.number(value) && parseInt(value, 10) === value; + }, + "float": function float(value) { + return types.number(value) && !types.integer(value); + }, + array: function array(value) { + return Array.isArray(value); + }, + regexp: function regexp(value) { + if (value instanceof RegExp) return true; + try { + return !!new RegExp(value); + } catch (e) { + return false; + } + }, + date: function date(value) { + return typeof value.getTime === "function" && typeof value.getMonth === "function" && typeof value.getYear === "function" && !isNaN(value.getTime()); + }, + number: function number(value) { + if (isNaN(value)) return false; + return typeof value === "number"; + }, + object: function object(value) { + return typeof value === "object" && !types.array(value); + }, + method: function method(value) { + return typeof value === "function"; + }, + email: function email(value) { + return typeof value === "string" && value.length <= 320 && !!value.match(pattern$2.email); + }, + url: function url(value) { + return typeof value === "string" && value.length <= 2048 && !!value.match(getUrlRegex()); + }, + hex: function hex(value) { + return typeof value === "string" && !!value.match(pattern$2.hex); + } + }; + var type$1 = function type(rule, value, source, errors, options) { + if (rule.required && value === void 0) { + required$1(rule, value, source, errors, options); + return; + } + var custom = [ + "integer", + "float", + "array", + "regexp", + "object", + "method", + "email", + "number", + "date", + "url", + "hex" + ]; + var ruleType = rule.type; + if (custom.indexOf(ruleType) > -1) { + if (!types[ruleType](value)) errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type)); + } else if (ruleType && typeof value !== rule.type) errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type)); + }; + var range = function range(rule, value, source, errors, options) { + var len = typeof rule.len === "number"; + var min = typeof rule.min === "number"; + var max = typeof rule.max === "number"; + var val = value; + var key = null; + var num = typeof value === "number"; + var str = typeof value === "string"; + var arr = Array.isArray(value); + if (num) key = "number"; + else if (str) key = "string"; + else if (arr) key = "array"; + if (!key) return false; + if (arr) val = value.length; + if (str) val = value.length; + if (len) { + if (val !== rule.len) errors.push(format(options.messages[key].len, rule.fullField, rule.len)); + } else if (min && !max && val < rule.min) errors.push(format(options.messages[key].min, rule.fullField, rule.min)); + else if (max && !min && val > rule.max) errors.push(format(options.messages[key].max, rule.fullField, rule.max)); + else if (min && max && (val < rule.min || val > rule.max)) errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max)); + }; + var ENUM$1 = "enum"; + var enumerable$1 = function enumerable(rule, value, source, errors, options) { + rule[ENUM$1] = Array.isArray(rule[ENUM$1]) ? rule[ENUM$1] : []; + if (rule[ENUM$1].indexOf(value) === -1) errors.push(format(options.messages[ENUM$1], rule.fullField, rule[ENUM$1].join(", "))); + }; + var pattern$1 = function pattern(rule, value, source, errors, options) { + if (rule.pattern) { + if (rule.pattern instanceof RegExp) { + rule.pattern.lastIndex = 0; + if (!rule.pattern.test(value)) errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)); + } else if (typeof rule.pattern === "string") { + if (!new RegExp(rule.pattern).test(value)) errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)); + } + } + }; + var rules = { + required: required$1, + whitespace, + type: type$1, + range, + "enum": enumerable$1, + pattern: pattern$1 + }; + var string = function string(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value, "string") && !rule.required) return callback(); + rules.required(rule, value, source, errors, options, "string"); + if (!isEmptyValue(value, "string")) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + rules.pattern(rule, value, source, errors, options); + if (rule.whitespace === true) rules.whitespace(rule, value, source, errors, options); + } + } + callback(errors); + }; + var method = function method(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) rules.type(rule, value, source, errors, options); + } + callback(errors); + }; + var number = function number(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (value === "") value = void 0; + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); + }; + var _boolean = function _boolean(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) rules.type(rule, value, source, errors, options); + } + callback(errors); + }; + var regexp = function regexp(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (!isEmptyValue(value)) rules.type(rule, value, source, errors, options); + } + callback(errors); + }; + var integer = function integer(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); + }; + var floatFn = function floatFn(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); + }; + var array = function array(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if ((value === void 0 || value === null) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options, "array"); + if (value !== void 0 && value !== null) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); + }; + var object = function object(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) rules.type(rule, value, source, errors, options); + } + callback(errors); + }; + var ENUM = "enum"; + var enumerable = function enumerable(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) rules[ENUM](rule, value, source, errors, options); + } + callback(errors); + }; + var pattern = function pattern(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value, "string") && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (!isEmptyValue(value, "string")) rules.pattern(rule, value, source, errors, options); + } + callback(errors); + }; + var date = function date(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value, "date") && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (!isEmptyValue(value, "date")) { + var dateObject; + if (value instanceof Date) dateObject = value; + else dateObject = new Date(value); + rules.type(rule, dateObject, source, errors, options); + if (dateObject) rules.range(rule, dateObject.getTime(), source, errors, options); + } + } + callback(errors); + }; + var required = function required(rule, value, callback, source, options) { + var errors = []; + var type = Array.isArray(value) ? "array" : typeof value; + rules.required(rule, value, source, errors, options, type); + callback(errors); + }; + var type = function type(rule, value, callback, source, options) { + var ruleType = rule.type; + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value, ruleType) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options, ruleType); + if (!isEmptyValue(value, ruleType)) rules.type(rule, value, source, errors, options); + } + callback(errors); + }; + var any = function any(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + } + callback(errors); + }; + var validators = { + string, + method, + number, + "boolean": _boolean, + regexp, + integer, + "float": floatFn, + array, + object, + "enum": enumerable, + pattern, + date, + url: type, + hex: type, + email: type, + required, + any + }; + function newMessages() { + 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 clone() { + var cloned = JSON.parse(JSON.stringify(this)); + cloned.clone = this.clone; + return cloned; + } + }; + } + var messages = newMessages(); + /** + * Encapsulates a validation schema. + * + * @param descriptor An object declaring validation rules + * for this schema. + */ + var Schema = /* @__PURE__ */ function() { + function Schema(descriptor) { + this.rules = null; + this._messages = messages; + this.define(descriptor); + } + var _proto = Schema.prototype; + _proto.define = function define(rules) { + var _this = this; + if (!rules) throw new Error("Cannot configure a schema with no rules"); + if (typeof rules !== "object" || Array.isArray(rules)) throw new Error("Rules must be an object"); + this.rules = {}; + Object.keys(rules).forEach(function(name) { + var item = rules[name]; + _this.rules[name] = Array.isArray(item) ? item : [item]; + }); + }; + _proto.messages = function messages(_messages) { + if (_messages) this._messages = deepMerge(newMessages(), _messages); + return this._messages; + }; + _proto.validate = function validate(source_, o, oc) { + var _this2 = this; + if (o === void 0) o = {}; + if (oc === void 0) oc = function oc() {}; + var source = source_; + var options = o; + var callback = oc; + if (typeof options === "function") { + callback = options; + options = {}; + } + if (!this.rules || Object.keys(this.rules).length === 0) { + if (callback) callback(null, source); + return Promise.resolve(source); + } + function complete(results) { + var errors = []; + var fields = {}; + function add(e) { + if (Array.isArray(e)) { + var _errors; + errors = (_errors = errors).concat.apply(_errors, e); + } else errors.push(e); + } + for (var i = 0; i < results.length; i++) add(results[i]); + if (!errors.length) callback(null, source); + else { + fields = convertFieldsError(errors); + callback(errors, fields); + } + } + if (options.messages) { + var messages$1 = this.messages(); + if (messages$1 === messages) messages$1 = newMessages(); + deepMerge(messages$1, options.messages); + options.messages = messages$1; + } else options.messages = this.messages(); + var series = {}; + (options.keys || Object.keys(this.rules)).forEach(function(z) { + var arr = _this2.rules[z]; + var value = source[z]; + arr.forEach(function(r) { + var rule = r; + if (typeof rule.transform === "function") { + if (source === source_) source = _extends({}, source); + value = source[z] = rule.transform(value); + } + if (typeof rule === "function") rule = { validator: rule }; + else rule = _extends({}, rule); + rule.validator = _this2.getValidationMethod(rule); + if (!rule.validator) return; + rule.field = z; + rule.fullField = rule.fullField || z; + rule.type = _this2.getType(rule); + series[z] = series[z] || []; + series[z].push({ + rule, + value, + source, + field: z + }); + }); + }); + var errorFields = {}; + return asyncMap(series, options, function(data, doIt) { + var rule = data.rule; + var deep = (rule.type === "object" || rule.type === "array") && (typeof rule.fields === "object" || typeof rule.defaultField === "object"); + deep = deep && (rule.required || !rule.required && data.value); + rule.field = data.field; + function addFullField(key, schema) { + return _extends({}, schema, { + fullField: rule.fullField + "." + key, + fullFields: rule.fullFields ? [].concat(rule.fullFields, [key]) : [key] + }); + } + function cb(e) { + if (e === void 0) e = []; + var errorList = Array.isArray(e) ? e : [e]; + if (!options.suppressWarning && errorList.length) Schema.warning("async-validator:", errorList); + if (errorList.length && rule.message !== void 0) errorList = [].concat(rule.message); + var filledErrors = errorList.map(complementError(rule, source)); + if (options.first && filledErrors.length) { + errorFields[rule.field] = 1; + return doIt(filledErrors); + } + if (!deep) doIt(filledErrors); + else { + if (rule.required && !data.value) { + if (rule.message !== void 0) filledErrors = [].concat(rule.message).map(complementError(rule, source)); + else if (options.error) filledErrors = [options.error(rule, format(options.messages.required, rule.field))]; + return doIt(filledErrors); + } + var fieldsSchema = {}; + if (rule.defaultField) Object.keys(data.value).map(function(key) { + fieldsSchema[key] = rule.defaultField; + }); + fieldsSchema = _extends({}, fieldsSchema, data.rule.fields); + var paredFieldsSchema = {}; + Object.keys(fieldsSchema).forEach(function(field) { + var fieldSchema = fieldsSchema[field]; + paredFieldsSchema[field] = (Array.isArray(fieldSchema) ? fieldSchema : [fieldSchema]).map(addFullField.bind(null, field)); + }); + var schema = new Schema(paredFieldsSchema); + schema.messages(options.messages); + if (data.rule.options) { + data.rule.options.messages = options.messages; + data.rule.options.error = options.error; + } + schema.validate(data.value, data.rule.options || options, function(errs) { + var finalErrors = []; + if (filledErrors && filledErrors.length) finalErrors.push.apply(finalErrors, filledErrors); + if (errs && errs.length) finalErrors.push.apply(finalErrors, errs); + doIt(finalErrors.length ? finalErrors : null); + }); + } + } + var res; + if (rule.asyncValidator) res = rule.asyncValidator(rule, data.value, cb, data.source, options); + else if (rule.validator) { + try { + res = rule.validator(rule, data.value, cb, data.source, options); + } catch (error) { + console.error == null || console.error(error); + if (!options.suppressValidatorError) setTimeout(function() { + throw error; + }, 0); + cb(error.message); + } + if (res === true) cb(); + else if (res === false) cb(typeof rule.message === "function" ? rule.message(rule.fullField || rule.field) : rule.message || (rule.fullField || rule.field) + " fails"); + else if (res instanceof Array) cb(res); + else if (res instanceof Error) cb(res.message); + } + if (res && res.then) res.then(function() { + return cb(); + }, function(e) { + return cb(e); + }); + }, function(results) { + complete(results); + }, source); + }; + _proto.getType = function getType(rule) { + if (rule.type === void 0 && rule.pattern instanceof RegExp) rule.type = "pattern"; + if (typeof rule.validator !== "function" && rule.type && !validators.hasOwnProperty(rule.type)) throw new Error(format("Unknown rule type %s", rule.type)); + return rule.type || "string"; + }; + _proto.getValidationMethod = function getValidationMethod(rule) { + if (typeof rule.validator === "function") return rule.validator; + var keys = Object.keys(rule); + var messageIndex = keys.indexOf("message"); + if (messageIndex !== -1) keys.splice(messageIndex, 1); + if (keys.length === 1 && keys[0] === "required") return validators.required; + return validators[this.getType(rule)] || void 0; + }; + return Schema; + }(); + Schema.register = function register(type, validator) { + if (typeof validator !== "function") throw new Error("Cannot register a validator by type, validator is not a function"); + validators[type] = validator; + }; + Schema.warning = warning; + Schema.messages = messages; + Schema.validators = validators; + +//#endregion +//#region ../../packages/components/form/src/form-label-wrap.tsx + const COMPONENT_NAME$20 = "ElLabelWrap"; + var form_label_wrap_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$20, + props: { + isAutoWidth: Boolean, + updateAll: Boolean + }, + setup(props, { slots }) { + const formContext = (0, vue.inject)(formContextKey, void 0); + const formItemContext = (0, vue.inject)(formItemContextKey); + if (!formItemContext) throwError(COMPONENT_NAME$20, "usage: "); + const ns = useNamespace("form"); + const el = (0, vue.ref)(); + const computedWidth = (0, vue.ref)(0); + const getLabelWidth = () => { + if (el.value?.firstElementChild) { + const width = window.getComputedStyle(el.value.firstElementChild).width; + return Math.ceil(Number.parseFloat(width)); + } else return 0; + }; + const updateLabelWidth = (action = "update") => { + (0, vue.nextTick)(() => { + if (slots.default && props.isAutoWidth) { + if (action === "update") computedWidth.value = getLabelWidth(); + else if (action === "remove") formContext?.deregisterLabelWidth(computedWidth.value); + } + }); + }; + const updateLabelWidthFn = () => updateLabelWidth("update"); + (0, vue.onMounted)(() => { + updateLabelWidthFn(); + }); + (0, vue.onBeforeUnmount)(() => { + updateLabelWidth("remove"); + }); + (0, vue.onUpdated)(() => updateLabelWidthFn()); + (0, vue.watch)(computedWidth, (val, oldVal) => { + if (props.updateAll) formContext?.registerLabelWidth(val, oldVal); + }); + useResizeObserver((0, vue.computed)(() => el.value?.firstElementChild ?? null), updateLabelWidthFn); + return () => { + if (!slots) return null; + const { isAutoWidth } = props; + if (isAutoWidth) { + const autoLabelWidth = formContext?.autoLabelWidth; + const hasLabel = formItemContext?.hasLabel; + const style = {}; + if (hasLabel && autoLabelWidth && autoLabelWidth !== "auto") { + const marginWidth = Math.max(0, Number.parseInt(autoLabelWidth, 10) - computedWidth.value); + const marginPosition = (formItemContext.labelPosition || formContext.labelPosition) === "left" ? "marginRight" : "marginLeft"; + if (marginWidth) style[marginPosition] = `${marginWidth}px`; + } + return (0, vue.createVNode)("div", { + "ref": el, + "class": [ns.be("item", "label-wrap")], + "style": style + }, [slots.default?.()]); + } else return (0, vue.createVNode)(vue.Fragment, { "ref": el }, [slots.default?.()]); + }; + } + }); + +//#endregion +//#region ../../packages/components/form/src/form-item.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$78 = ["role", "aria-labelledby"]; + var form_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElFormItem", + __name: "form-item", + props: formItemProps, + setup(__props, { expose: __expose }) { + const props = __props; + const slots = (0, vue.useSlots)(); + const formContext = (0, vue.inject)(formContextKey, void 0); + const parentFormItemContext = (0, vue.inject)(formItemContextKey, void 0); + const _size = useFormSize(void 0, { formItem: false }); + const ns = useNamespace("form-item"); + const labelId = useId().value; + const inputIds = (0, vue.ref)([]); + const validateState = (0, vue.ref)(""); + const validateStateDebounced = refDebounced(validateState, 100); + const validateMessage = (0, vue.ref)(""); + const formItemRef = (0, vue.ref)(); + let initialValue = void 0; + let isResettingField = false; + const labelPosition = (0, vue.computed)(() => props.labelPosition || formContext?.labelPosition); + const labelStyle = (0, vue.computed)(() => { + if (labelPosition.value === "top") return {}; + return { width: addUnit(props.labelWidth ?? formContext?.labelWidth) }; + }); + const contentStyle = (0, vue.computed)(() => { + if (labelPosition.value === "top" || formContext?.inline) return {}; + if (!props.label && !props.labelWidth && isNested) return {}; + const labelWidth = addUnit(props.labelWidth ?? formContext?.labelWidth); + if (!props.label && !slots.label) return { marginLeft: labelWidth }; + return {}; + }); + const formItemClasses = (0, vue.computed)(() => [ + ns.b(), + ns.m(_size.value), + ns.is("error", validateState.value === "error"), + ns.is("validating", validateState.value === "validating"), + ns.is("success", validateState.value === "success"), + ns.is("required", isRequired.value || props.required), + ns.is("no-asterisk", formContext?.hideRequiredAsterisk), + formContext?.requireAsteriskPosition === "right" ? "asterisk-right" : "asterisk-left", + { + [ns.m("feedback")]: formContext?.statusIcon, + [ns.m(`label-${labelPosition.value}`)]: labelPosition.value + } + ]); + const _inlineMessage = (0, vue.computed)(() => isBoolean(props.inlineMessage) ? props.inlineMessage : formContext?.inlineMessage || false); + const validateClasses = (0, vue.computed)(() => [ns.e("error"), { [ns.em("error", "inline")]: _inlineMessage.value }]); + const propString = (0, vue.computed)(() => { + if (!props.prop) return ""; + return isArray$1(props.prop) ? props.prop.join(".") : props.prop; + }); + const hasLabel = (0, vue.computed)(() => { + return !!(props.label || slots.label); + }); + const labelFor = (0, vue.computed)(() => { + return props.for ?? (inputIds.value.length === 1 ? inputIds.value[0] : void 0); + }); + const isGroup = (0, vue.computed)(() => { + return !labelFor.value && hasLabel.value; + }); + const isNested = !!parentFormItemContext; + const fieldValue = (0, vue.computed)(() => { + const model = formContext?.model; + if (!model || !props.prop) return; + return getProp(model, props.prop).value; + }); + const normalizedRules = (0, vue.computed)(() => { + const { required } = props; + const rules = []; + if (props.rules) rules.push(...castArray$1(props.rules)); + const formRules = formContext?.rules; + if (formRules && props.prop) { + const _rules = getProp(formRules, props.prop).value; + if (_rules) rules.push(...castArray$1(_rules)); + } + if (required !== void 0) { + const requiredRules = rules.map((rule, i) => [rule, i]).filter(([rule]) => "required" in rule); + if (requiredRules.length > 0) for (const [rule, i] of requiredRules) { + if (rule.required === required) continue; + rules[i] = { + ...rule, + required + }; + } + else rules.push({ required }); + } + return rules; + }); + const validateEnabled = (0, vue.computed)(() => normalizedRules.value.length > 0); + const getFilteredRule = (trigger) => { + return normalizedRules.value.filter((rule) => { + if (!rule.trigger || !trigger) return true; + if (isArray$1(rule.trigger)) return rule.trigger.includes(trigger); + else return rule.trigger === trigger; + }).map(({ trigger, ...rule }) => rule); + }; + const isRequired = (0, vue.computed)(() => normalizedRules.value.some((rule) => rule.required)); + const shouldShowError = (0, vue.computed)(() => validateStateDebounced.value === "error" && props.showMessage && (formContext?.showMessage ?? true)); + const currentLabel = (0, vue.computed)(() => `${props.label || ""}${formContext?.labelSuffix || ""}`); + const setValidationState = (state) => { + validateState.value = state; + }; + const onValidationFailed = (error) => { + const { errors, fields } = error; + if (!errors || !fields) console.error(error); + setValidationState("error"); + validateMessage.value = errors ? errors?.[0]?.message ?? `${props.prop} is required` : ""; + formContext?.emit("validate", props.prop, false, validateMessage.value); + }; + const onValidationSucceeded = () => { + setValidationState("success"); + formContext?.emit("validate", props.prop, true, ""); + }; + const doValidate = async (rules) => { + const modelName = propString.value; + return new Schema({ [modelName]: rules }).validate({ [modelName]: fieldValue.value }, { firstFields: true }).then(() => { + onValidationSucceeded(); + return true; + }).catch((err) => { + onValidationFailed(err); + return Promise.reject(err); + }); + }; + const validate = async (trigger, callback) => { + if (isResettingField || !props.prop) return false; + const hasCallback = isFunction$1(callback); + if (!validateEnabled.value) { + callback?.(false); + return false; + } + const rules = getFilteredRule(trigger); + if (rules.length === 0) { + callback?.(true); + return true; + } + setValidationState("validating"); + return doValidate(rules).then(() => { + callback?.(true); + return true; + }).catch((err) => { + const { fields } = err; + callback?.(false, fields); + return hasCallback ? false : Promise.reject(fields); + }); + }; + const clearValidate = () => { + setValidationState(""); + validateMessage.value = ""; + isResettingField = false; + }; + const resetField = async () => { + const model = formContext?.model; + if (!model || !props.prop) return; + const computedValue = getProp(model, props.prop); + isResettingField = true; + computedValue.value = cloneDeep(initialValue); + await (0, vue.nextTick)(); + clearValidate(); + isResettingField = false; + }; + const addInputId = (id) => { + if (!inputIds.value.includes(id)) inputIds.value.push(id); + }; + const removeInputId = (id) => { + inputIds.value = inputIds.value.filter((listId) => listId !== id); + }; + const setInitialValue = (value) => { + initialValue = cloneDeep(value); + }; + const getInitialValue = () => initialValue; + (0, vue.watch)(() => props.error, (val) => { + validateMessage.value = val || ""; + setValidationState(val ? "error" : ""); + }, { immediate: true }); + (0, vue.watch)(() => props.validateStatus, (val) => setValidationState(val || "")); + const context = (0, vue.reactive)({ + ...(0, vue.toRefs)(props), + $el: formItemRef, + size: _size, + validateMessage, + validateState, + labelId, + inputIds, + isGroup, + hasLabel, + fieldValue, + addInputId, + removeInputId, + resetField, + clearValidate, + validate, + propString, + setInitialValue, + getInitialValue + }); + (0, vue.provide)(formItemContextKey, context); + (0, vue.watch)(propString, (newPropString, oldPropString) => { + if (!formContext || !oldPropString) return; + formContext.removeField(context, oldPropString); + if (newPropString) { + setInitialValue(fieldValue.value); + formContext.addField(context); + } + }); + (0, vue.onMounted)(() => { + if (props.prop) { + setInitialValue(fieldValue.value); + formContext?.addField(context); + } + }); + (0, vue.onBeforeUnmount)(() => { + formContext?.removeField(context); + }); + __expose({ + size: _size, + validateMessage, + validateState, + validate, + clearValidate, + resetField, + setInitialValue + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "formItemRef", + ref: formItemRef, + class: (0, vue.normalizeClass)(formItemClasses.value), + role: isGroup.value ? "group" : void 0, + "aria-labelledby": isGroup.value ? (0, vue.unref)(labelId) : void 0 + }, [(0, vue.createVNode)((0, vue.unref)(form_label_wrap_default), { + "is-auto-width": labelStyle.value.width === "auto", + "update-all": (0, vue.unref)(formContext)?.labelWidth === "auto" + }, { + default: (0, vue.withCtx)(() => [!!(__props.label || _ctx.$slots.label) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(labelFor.value ? "label" : "div"), { + key: 0, + id: (0, vue.unref)(labelId), + for: labelFor.value, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("label")), + style: (0, vue.normalizeStyle)(labelStyle.value) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "label", { label: currentLabel.value }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(currentLabel.value), 1)])]), + _: 3 + }, 8, [ + "id", + "for", + "class", + "style" + ])) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, ["is-auto-width", "update-all"]), (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")), + style: (0, vue.normalizeStyle)(contentStyle.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "default"), (0, vue.createVNode)(vue.TransitionGroup, { name: `${(0, vue.unref)(ns).namespace.value}-zoom-in-top` }, { + default: (0, vue.withCtx)(() => [shouldShowError.value ? (0, vue.renderSlot)(_ctx.$slots, "error", { + key: 0, + error: validateMessage.value + }, () => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(validateClasses.value) }, (0, vue.toDisplayString)(validateMessage.value), 3)]) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, ["name"])], 6)], 10, _hoisted_1$78); + }; + } + }); + +//#endregion +//#region ../../packages/components/form/src/form-item.vue + var form_item_default = form_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/form/index.ts + const ElForm = withInstall(form_default, { FormItem: form_item_default }); + const ElFormItem = withNoopInstall(form_item_default); + +//#endregion +//#region ../../packages/components/popper/src/utils.ts + const buildPopperOptions = (props, modifiers = []) => { + const { placement, strategy, popperOptions } = props; + const options = { + placement, + strategy, + ...popperOptions, + modifiers: [...genModifiers(props), ...modifiers] + }; + deriveExtraModifiers(options, popperOptions?.modifiers); + return options; + }; + const unwrapMeasurableEl = ($el) => { + if (!isClient) return; + return unrefElement($el); + }; + function genModifiers(options) { + const { offset, gpuAcceleration, fallbackPlacements } = options; + return [ + { + name: "offset", + options: { offset: [0, offset ?? 12] } + }, + { + name: "preventOverflow", + options: { padding: { + top: 0, + bottom: 0, + left: 0, + right: 0 + } } + }, + { + name: "flip", + options: { + padding: 5, + fallbackPlacements + } + }, + { + name: "computeStyles", + options: { gpuAcceleration } + } + ]; + } + function deriveExtraModifiers(options, modifiers) { + if (modifiers) options.modifiers = [...options.modifiers, ...modifiers ?? []]; + } + +//#endregion +//#region ../../packages/components/popper/src/composables/use-content.ts + const DEFAULT_ARROW_OFFSET = 0; + const usePopperContent = (props) => { + const { popperInstanceRef, contentRef, triggerRef, role } = (0, vue.inject)(POPPER_INJECTION_KEY, void 0); + const arrowRef = (0, vue.ref)(); + const arrowOffset = (0, vue.computed)(() => props.arrowOffset); + const eventListenerModifier = (0, vue.computed)(() => { + return { + name: "eventListeners", + enabled: !!props.visible + }; + }); + const arrowModifier = (0, vue.computed)(() => { + const arrowEl = (0, vue.unref)(arrowRef); + const offset = (0, vue.unref)(arrowOffset) ?? DEFAULT_ARROW_OFFSET; + return { + name: "arrow", + enabled: !isUndefined$1(arrowEl), + options: { + element: arrowEl, + padding: offset + } + }; + }); + const options = (0, vue.computed)(() => { + return { + onFirstUpdate: () => { + update(); + }, + ...buildPopperOptions(props, [(0, vue.unref)(arrowModifier), (0, vue.unref)(eventListenerModifier)]) + }; + }); + const computedReference = (0, vue.computed)(() => unwrapMeasurableEl(props.referenceEl) || (0, vue.unref)(triggerRef)); + const { attributes, state, styles, update, forceUpdate, instanceRef } = usePopper(computedReference, contentRef, options); + (0, vue.watch)(instanceRef, (instance) => popperInstanceRef.value = instance, { flush: "sync" }); + (0, vue.onMounted)(() => { + (0, vue.watch)(() => (0, vue.unref)(computedReference)?.getBoundingClientRect?.(), () => { + update(); + }); + }); + let stopResizeObserver; + (0, vue.watch)(() => props.visible, (visible) => { + stopResizeObserver?.(); + stopResizeObserver = void 0; + if (visible) stopResizeObserver = useResizeObserver(contentRef, update).stop; + }); + (0, vue.onBeforeUnmount)(() => { + popperInstanceRef.value = void 0; + stopResizeObserver?.(); + stopResizeObserver = void 0; + }); + return { + attributes, + arrowRef, + contentRef, + instanceRef, + state, + styles, + role, + forceUpdate, + update + }; + }; + +//#endregion +//#region ../../packages/components/popper/src/composables/use-content-dom.ts + const usePopperContentDOM = (props, { attributes, styles, role }) => { + const { nextZIndex } = useZIndex(); + const ns = useNamespace("popper"); + const contentAttrs = (0, vue.computed)(() => (0, vue.unref)(attributes).popper); + const contentZIndex = (0, vue.ref)(isNumber(props.zIndex) ? props.zIndex : nextZIndex()); + const contentClass = (0, vue.computed)(() => [ + ns.b(), + ns.is("pure", props.pure), + ns.is(props.effect), + props.popperClass + ]); + const contentStyle = (0, vue.computed)(() => { + return [ + { zIndex: (0, vue.unref)(contentZIndex) }, + (0, vue.unref)(styles).popper, + props.popperStyle || {} + ]; + }); + const ariaModal = (0, vue.computed)(() => role.value === "dialog" ? "false" : void 0); + const arrowStyle = (0, vue.computed)(() => (0, vue.unref)(styles).arrow || {}); + const updateZIndex = () => { + contentZIndex.value = isNumber(props.zIndex) ? props.zIndex : nextZIndex(); + }; + return { + ariaModal, + arrowStyle, + contentAttrs, + contentClass, + contentStyle, + contentZIndex, + updateZIndex + }; + }; + +//#endregion +//#region ../../packages/components/popper/src/composables/use-focus-trap.ts + const usePopperContentFocusTrap = (props, emit) => { + const trapped = (0, vue.ref)(false); + const focusStartRef = (0, vue.ref)(); + const onFocusAfterTrapped = () => { + emit("focus"); + }; + const onFocusAfterReleased = (event) => { + if (event.detail?.focusReason !== "pointer") { + focusStartRef.value = "first"; + emit("blur"); + } + }; + const onFocusInTrap = (event) => { + if (props.visible && !trapped.value) { + if (event.target) focusStartRef.value = event.target; + trapped.value = true; + } + }; + const onFocusoutPrevented = (event) => { + if (!props.trapping) { + if (event.detail.focusReason === "pointer") event.preventDefault(); + trapped.value = false; + } + }; + const onReleaseRequested = () => { + trapped.value = false; + emit("close"); + }; + (0, vue.onBeforeUnmount)(() => { + focusStartRef.value = void 0; + }); + return { + focusStartRef, + trapped, + onFocusAfterReleased, + onFocusAfterTrapped, + onFocusInTrap, + onFocusoutPrevented, + onReleaseRequested + }; + }; + +//#endregion +//#region ../../packages/components/popper/src/content.vue?vue&type=script&setup=true&lang.ts + var content_vue_vue_type_script_setup_true_lang_default$2 = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPopperContent", + __name: "content", + props: popperContentProps, + emits: popperContentEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const emit = __emit; + const props = __props; + const { focusStartRef, trapped, onFocusAfterReleased, onFocusAfterTrapped, onFocusInTrap, onFocusoutPrevented, onReleaseRequested } = usePopperContentFocusTrap(props, emit); + const { attributes, arrowRef, contentRef, styles, instanceRef, role, update } = usePopperContent(props); + const { ariaModal, arrowStyle, contentAttrs, contentClass, contentStyle, updateZIndex } = usePopperContentDOM(props, { + styles, + attributes, + role + }); + const formItemContext = (0, vue.inject)(formItemContextKey, void 0); + (0, vue.provide)(POPPER_CONTENT_INJECTION_KEY, { + arrowStyle, + arrowRef + }); + if (formItemContext) (0, vue.provide)(formItemContextKey, { + ...formItemContext, + addInputId: NOOP, + removeInputId: NOOP + }); + let triggerTargetAriaStopWatch = void 0; + const updatePopper = (shouldUpdateZIndex = true) => { + update(); + shouldUpdateZIndex && updateZIndex(); + }; + const togglePopperAlive = () => { + updatePopper(false); + if (props.visible && props.focusOnShow) trapped.value = true; + else if (props.visible === false) trapped.value = false; + }; + (0, vue.onMounted)(() => { + (0, vue.watch)(() => props.triggerTargetEl, (triggerTargetEl, prevTriggerTargetEl) => { + triggerTargetAriaStopWatch?.(); + triggerTargetAriaStopWatch = void 0; + const el = (0, vue.unref)(triggerTargetEl || contentRef.value); + const prevEl = (0, vue.unref)(prevTriggerTargetEl || contentRef.value); + if (isElement$1(el)) triggerTargetAriaStopWatch = (0, vue.watch)([ + role, + () => props.ariaLabel, + ariaModal, + () => props.id + ], (watches) => { + [ + "role", + "aria-label", + "aria-modal", + "id" + ].forEach((key, idx) => { + isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]); + }); + }, { immediate: true }); + if (prevEl !== el && isElement$1(prevEl)) [ + "role", + "aria-label", + "aria-modal", + "id" + ].forEach((key) => { + prevEl.removeAttribute(key); + }); + }, { immediate: true }); + (0, vue.watch)(() => props.visible, togglePopperAlive, { immediate: true }); + }); + (0, vue.onBeforeUnmount)(() => { + triggerTargetAriaStopWatch?.(); + triggerTargetAriaStopWatch = void 0; + contentRef.value = void 0; + }); + __expose({ + popperContentRef: contentRef, + popperInstanceRef: instanceRef, + updatePopper, + contentStyle + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", (0, vue.mergeProps)({ + ref_key: "contentRef", + ref: contentRef + }, (0, vue.unref)(contentAttrs), { + style: (0, vue.unref)(contentStyle), + class: (0, vue.unref)(contentClass), + tabindex: "-1", + onMouseenter: _cache[0] || (_cache[0] = (e) => _ctx.$emit("mouseenter", e)), + onMouseleave: _cache[1] || (_cache[1] = (e) => _ctx.$emit("mouseleave", e)) + }), [(0, vue.createVNode)((0, vue.unref)(focus_trap_default), { + loop: __props.loop, + trapped: (0, vue.unref)(trapped), + "trap-on-focus-in": true, + "focus-trap-el": (0, vue.unref)(contentRef), + "focus-start-el": (0, vue.unref)(focusStartRef), + onFocusAfterTrapped: (0, vue.unref)(onFocusAfterTrapped), + onFocusAfterReleased: (0, vue.unref)(onFocusAfterReleased), + onFocusin: (0, vue.unref)(onFocusInTrap), + onFocusoutPrevented: (0, vue.unref)(onFocusoutPrevented), + onReleaseRequested: (0, vue.unref)(onReleaseRequested) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, [ + "loop", + "trapped", + "focus-trap-el", + "focus-start-el", + "onFocusAfterTrapped", + "onFocusAfterReleased", + "onFocusin", + "onFocusoutPrevented", + "onReleaseRequested" + ])], 16); + }; + } + }); + +//#endregion +//#region ../../packages/components/popper/src/content.vue + var content_default = content_vue_vue_type_script_setup_true_lang_default$2; + +//#endregion +//#region ../../packages/components/popper/index.ts + const ElPopper = withInstall(popper_default); + +//#endregion +//#region ../../packages/components/tooltip/src/content.ts + const useTooltipContentPropsDefaults = { + ...useDelayedTogglePropsDefaults, + ...popperContentPropsDefaults, + content: "", + visible: null, + teleported: true + }; + /** + * @deprecated Removed after 3.0.0, Use `ElTooltipContentProps` instead. + */ + const useTooltipContentProps = buildProps({ + ...useDelayedToggleProps, + ...popperContentProps, + appendTo: { type: teleportProps.to.type }, + content: { + type: String, + default: "" + }, + rawContent: Boolean, + persistent: Boolean, + visible: { + type: definePropType(Boolean), + default: null + }, + transition: String, + teleported: { + type: Boolean, + default: true + }, + disabled: Boolean, + ...useAriaProps(["ariaLabel"]) + }); + +//#endregion +//#region ../../packages/components/tooltip/src/trigger.ts + const useTooltipTriggerPropsDefaults = { + trigger: "hover", + triggerKeys: () => [ + EVENT_CODE.enter, + EVENT_CODE.numpadEnter, + EVENT_CODE.space + ] + }; + /** + * @deprecated Removed after 3.0.0, Use `UseTooltipTriggerProps` instead. + */ + const useTooltipTriggerProps = buildProps({ + ...popperTriggerProps, + disabled: Boolean, + trigger: { + type: definePropType([String, Array]), + default: "hover" + }, + triggerKeys: { + type: definePropType(Array), + default: () => [ + EVENT_CODE.enter, + EVENT_CODE.numpadEnter, + EVENT_CODE.space + ] + }, + focusOnTarget: Boolean + }); + +//#endregion +//#region ../../packages/components/tooltip/src/tooltip.ts + const { useModelToggleProps: useTooltipModelToggleProps, useModelToggleEmits: useTooltipModelToggleEmits, useModelToggle: useTooltipModelToggle } = createModelToggleComposable("visible"); + /** + * @deprecated Removed after 3.0.0, Use `UseTooltipProps` instead. + */ + const useTooltipProps = buildProps({ + ...popperProps, + ...useTooltipModelToggleProps, + ...useTooltipContentProps, + ...useTooltipTriggerProps, + ...popperArrowProps, + showArrow: { + type: Boolean, + default: true + } + }); + const tooltipEmits = [ + ...useTooltipModelToggleEmits, + "before-show", + "before-hide", + "show", + "hide", + "open", + "close" + ]; + +//#endregion +//#region ../../packages/components/tooltip/src/constants.ts + const TOOLTIP_INJECTION_KEY = Symbol("elTooltip"); + +//#endregion +//#region ../../packages/components/tooltip/src/utils.ts + const isTriggerType = (trigger, type) => { + if (isArray$1(trigger)) return trigger.includes(type); + return trigger === type; + }; + const whenTrigger = (trigger, type, handler) => { + return (e) => { + isTriggerType((0, vue.unref)(trigger), type) && handler(e); + }; + }; + +//#endregion +//#region ../../packages/components/tooltip/src/trigger.vue?vue&type=script&setup=true&lang.ts + var trigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTooltipTrigger", + __name: "trigger", + props: useTooltipTriggerProps, + setup(__props, { expose: __expose }) { + const props = __props; + const ns = useNamespace("tooltip"); + const { controlled, id, open, onOpen, onClose, onToggle } = (0, vue.inject)(TOOLTIP_INJECTION_KEY, void 0); + const triggerRef = (0, vue.ref)(null); + const stopWhenControlledOrDisabled = () => { + if ((0, vue.unref)(controlled) || props.disabled) return true; + }; + const trigger = (0, vue.toRef)(props, "trigger"); + const onMouseenter = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "hover", (e) => { + onOpen(e); + if (props.focusOnTarget && e.target) (0, vue.nextTick)(() => { + focusElement(e.target, { preventScroll: true }); + }); + })); + const onMouseleave = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "hover", onClose)); + const onClick = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "click", (e) => { + if (e.button === 0) onToggle(e); + })); + const onFocus = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "focus", onOpen)); + const onBlur = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "focus", onClose)); + const onContextMenu = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "contextmenu", (e) => { + e.preventDefault(); + onToggle(e); + })); + const onKeydown = composeEventHandlers(stopWhenControlledOrDisabled, (e) => { + const code = getEventCode(e); + if (props.triggerKeys.includes(code)) { + e.preventDefault(); + onToggle(e); + } + }); + __expose({ triggerRef }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(trigger_default), { + id: (0, vue.unref)(id), + "virtual-ref": __props.virtualRef, + open: (0, vue.unref)(open), + "virtual-triggering": __props.virtualTriggering, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("trigger")), + onBlur: (0, vue.unref)(onBlur), + onClick: (0, vue.unref)(onClick), + onContextmenu: (0, vue.unref)(onContextMenu), + onFocus: (0, vue.unref)(onFocus), + onMouseenter: (0, vue.unref)(onMouseenter), + onMouseleave: (0, vue.unref)(onMouseleave), + onKeydown: (0, vue.unref)(onKeydown) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, [ + "id", + "virtual-ref", + "open", + "virtual-triggering", + "class", + "onBlur", + "onClick", + "onContextmenu", + "onFocus", + "onMouseenter", + "onMouseleave", + "onKeydown" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tooltip/src/trigger.vue + var trigger_default$1 = trigger_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tooltip/src/content.vue?vue&type=script&setup=true&lang.ts + var content_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTooltipContent", + inheritAttrs: false, + __name: "content", + props: useTooltipContentProps, + setup(__props, { expose: __expose }) { + const props = __props; + const { selector } = usePopperContainerId(); + const ns = useNamespace("tooltip"); + const contentRef = (0, vue.ref)(); + const popperContentRef = computedEager(() => contentRef.value?.popperContentRef); + let stopHandle; + const { controlled, id, open, trigger, onClose, onOpen, onShow, onHide, onBeforeShow, onBeforeHide } = (0, vue.inject)(TOOLTIP_INJECTION_KEY, void 0); + const transitionClass = (0, vue.computed)(() => { + return props.transition || `${ns.namespace.value}-fade-in-linear`; + }); + const persistentRef = (0, vue.computed)(() => { + return props.persistent; + }); + (0, vue.onBeforeUnmount)(() => { + stopHandle?.(); + }); + const shouldRender = (0, vue.computed)(() => { + return (0, vue.unref)(persistentRef) ? true : (0, vue.unref)(open); + }); + const shouldShow = (0, vue.computed)(() => { + return props.disabled ? false : (0, vue.unref)(open); + }); + const appendTo = (0, vue.computed)(() => { + return props.appendTo || selector.value; + }); + const contentStyle = (0, vue.computed)(() => props.style ?? {}); + const ariaHidden = (0, vue.ref)(true); + const onTransitionLeave = () => { + onHide(); + isFocusInsideContent() && focusElement(document.body, { preventScroll: true }); + ariaHidden.value = true; + }; + const stopWhenControlled = () => { + if ((0, vue.unref)(controlled)) return true; + }; + const onContentEnter = composeEventHandlers(stopWhenControlled, () => { + if (props.enterable && isTriggerType((0, vue.unref)(trigger), "hover")) onOpen(); + }); + const onContentLeave = composeEventHandlers(stopWhenControlled, () => { + if (isTriggerType((0, vue.unref)(trigger), "hover")) onClose(); + }); + const onBeforeEnter = () => { + contentRef.value?.updatePopper?.(); + onBeforeShow?.(); + }; + const onBeforeLeave = () => { + onBeforeHide?.(); + }; + const onAfterShow = () => { + onShow(); + }; + const onBlur = () => { + if (!props.virtualTriggering) onClose(); + }; + const isFocusInsideContent = (event) => { + const popperContent = contentRef.value?.popperContentRef; + const activeElement = event?.relatedTarget || document.activeElement; + return popperContent?.contains(activeElement); + }; + (0, vue.watch)(() => (0, vue.unref)(open), (val) => { + if (!val) stopHandle?.(); + else { + ariaHidden.value = false; + stopHandle = onClickOutside(popperContentRef, () => { + if ((0, vue.unref)(controlled)) return; + if (castArray((0, vue.unref)(trigger)).every((item) => { + return item !== "hover" && item !== "focus"; + })) onClose(); + }, { detectIframe: true }); + } + }, { flush: "post" }); + __expose({ + contentRef, + isFocusInsideContent + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTeleport), { + disabled: !__props.teleported, + to: appendTo.value + }, { + default: (0, vue.withCtx)(() => [shouldRender.value || !ariaHidden.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + key: 0, + name: transitionClass.value, + appear: !persistentRef.value, + onAfterLeave: onTransitionLeave, + onBeforeEnter, + onAfterEnter: onAfterShow, + onBeforeLeave, + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(content_default), (0, vue.mergeProps)({ + id: (0, vue.unref)(id), + ref_key: "contentRef", + ref: contentRef + }, _ctx.$attrs, { + "aria-label": __props.ariaLabel, + "aria-hidden": ariaHidden.value, + "boundaries-padding": __props.boundariesPadding, + "fallback-placements": __props.fallbackPlacements, + "gpu-acceleration": __props.gpuAcceleration, + offset: __props.offset, + placement: __props.placement, + "popper-options": __props.popperOptions, + "arrow-offset": __props.arrowOffset, + strategy: __props.strategy, + effect: __props.effect, + enterable: __props.enterable, + pure: __props.pure, + "popper-class": __props.popperClass, + "popper-style": [__props.popperStyle, contentStyle.value], + "reference-el": __props.referenceEl, + "trigger-target-el": __props.triggerTargetEl, + visible: shouldShow.value, + "z-index": __props.zIndex, + loop: __props.loop, + onMouseenter: (0, vue.unref)(onContentEnter), + onMouseleave: (0, vue.unref)(onContentLeave), + onBlur, + onClose: (0, vue.unref)(onClose) + }), { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$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" + ]), [[vue.vShow, shouldShow.value]])]), + _: 3 + }, 8, ["name", "appear"])) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, ["disabled", "to"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tooltip/src/content.vue + var content_default$2 = content_vue_vue_type_script_setup_true_lang_default$1; + +//#endregion +//#region ../../packages/components/tooltip/src/tooltip.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$77 = ["innerHTML"]; + const _hoisted_2$43 = { key: 1 }; + var tooltip_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTooltip", + __name: "tooltip", + props: useTooltipProps, + emits: tooltipEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + usePopperContainer(); + const ns = useNamespace("tooltip"); + const id = useId(); + const popperRef = (0, vue.ref)(); + const contentRef = (0, vue.ref)(); + const updatePopper = () => { + const popperComponent = (0, vue.unref)(popperRef); + if (popperComponent) popperComponent.popperInstanceRef?.update(); + }; + const open = (0, vue.ref)(false); + const toggleReason = (0, vue.ref)(); + const { show, hide, hasUpdateHandler } = useTooltipModelToggle({ + indicator: open, + toggleReason + }); + const { onOpen, onClose } = useDelayedToggle({ + showAfter: (0, vue.toRef)(props, "showAfter"), + hideAfter: (0, vue.toRef)(props, "hideAfter"), + autoClose: (0, vue.toRef)(props, "autoClose"), + open: show, + close: hide + }); + const controlled = (0, vue.computed)(() => isBoolean(props.visible) && !hasUpdateHandler.value); + const kls = (0, vue.computed)(() => { + return [ns.b(), props.popperClass]; + }); + (0, vue.provide)(TOOLTIP_INJECTION_KEY, { + controlled, + id, + open: (0, vue.readonly)(open), + trigger: (0, vue.toRef)(props, "trigger"), + onOpen, + onClose, + onToggle: (event) => { + if ((0, vue.unref)(open)) onClose(event); + else onOpen(event); + }, + onShow: () => { + emit("show", toggleReason.value); + }, + onHide: () => { + emit("hide", toggleReason.value); + }, + onBeforeShow: () => { + emit("before-show", toggleReason.value); + }, + onBeforeHide: () => { + emit("before-hide", toggleReason.value); + }, + updatePopper + }); + (0, vue.watch)(() => props.disabled, (disabled) => { + if (disabled && open.value) open.value = false; + if (!disabled && isBoolean(props.visible)) open.value = props.visible; + }); + const isFocusInsideContent = (event) => { + return contentRef.value?.isFocusInsideContent(event); + }; + (0, vue.onDeactivated)(() => open.value && hide()); + (0, vue.onBeforeUnmount)(() => { + toggleReason.value = void 0; + }); + __expose({ + popperRef, + contentRef, + isFocusInsideContent, + updatePopper, + onOpen, + onClose, + hide + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElPopper), { + ref_key: "popperRef", + ref: popperRef, + role: __props.role + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(trigger_default$1, { + disabled: __props.disabled, + trigger: __props.trigger, + "trigger-keys": __props.triggerKeys, + "virtual-ref": __props.virtualRef, + "virtual-triggering": __props.virtualTriggering, + "focus-on-target": __props.focusOnTarget + }, { + default: (0, vue.withCtx)(() => [_ctx.$slots.default ? (0, vue.renderSlot)(_ctx.$slots, "default", { key: 0 }) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, [ + "disabled", + "trigger", + "trigger-keys", + "virtual-ref", + "virtual-triggering", + "focus-on-target" + ]), (0, vue.createVNode)(content_default$2, { + ref_key: "contentRef", + ref: contentRef, + "aria-label": __props.ariaLabel, + "boundaries-padding": __props.boundariesPadding, + content: __props.content, + disabled: __props.disabled, + effect: __props.effect, + enterable: __props.enterable, + "fallback-placements": __props.fallbackPlacements, + "hide-after": __props.hideAfter, + "gpu-acceleration": __props.gpuAcceleration, + offset: __props.offset, + persistent: __props.persistent, + "popper-class": kls.value, + "popper-style": __props.popperStyle, + placement: __props.placement, + "popper-options": __props.popperOptions, + "arrow-offset": __props.arrowOffset, + pure: __props.pure, + "raw-content": __props.rawContent, + "reference-el": __props.referenceEl, + "trigger-target-el": __props.triggerTargetEl, + "show-after": __props.showAfter, + strategy: __props.strategy, + teleported: __props.teleported, + transition: __props.transition, + "virtual-triggering": __props.virtualTriggering, + "z-index": __props.zIndex, + "append-to": __props.appendTo, + loop: __props.loop + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "content", {}, () => [__props.rawContent ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + innerHTML: __props.content + }, null, 8, _hoisted_1$77)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2$43, (0, vue.toDisplayString)(__props.content), 1))]), __props.showArrow ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(arrow_default), { key: 0 })) : (0, vue.createCommentVNode)("v-if", true)]), + _: 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" + ])]), + _: 3 + }, 8, ["role"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tooltip/src/tooltip.vue + var tooltip_default = tooltip_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tooltip/index.ts + const ElTooltip = withInstall(tooltip_default); + +//#endregion +//#region ../../packages/components/input/src/input.ts +/** + * @deprecated Removed after 3.0.0, Use `InputProps` instead. + */ + const inputProps = buildProps({ + id: { + type: String, + default: void 0 + }, + size: useSizeProp, + disabled: { + type: Boolean, + default: void 0 + }, + modelValue: { + type: definePropType([ + String, + Number, + Object + ]), + default: "" + }, + modelModifiers: { + type: definePropType(Object), + default: () => ({}) + }, + maxlength: { type: [String, Number] }, + minlength: { type: [String, Number] }, + type: { + type: definePropType(String), + default: "text" + }, + resize: { + type: String, + values: [ + "none", + "both", + "horizontal", + "vertical" + ] + }, + autosize: { + type: definePropType([Boolean, Object]), + default: false + }, + autocomplete: { + type: definePropType(String), + default: "off" + }, + formatter: { type: Function }, + parser: { type: Function }, + placeholder: { type: String }, + form: { type: String }, + readonly: Boolean, + clearable: Boolean, + clearIcon: { + type: iconPropType, + default: circle_close_default + }, + showPassword: Boolean, + showWordLimit: Boolean, + wordLimitPosition: { + type: String, + values: ["inside", "outside"], + default: "inside" + }, + suffixIcon: { type: iconPropType }, + prefixIcon: { type: iconPropType }, + containerRole: { + type: String, + default: void 0 + }, + tabindex: { + type: [String, Number], + default: 0 + }, + validateEvent: { + type: Boolean, + default: true + }, + inputStyle: { + type: definePropType([ + Object, + Array, + String + ]), + default: () => mutable({}) + }, + countGraphemes: { type: definePropType(Function) }, + autofocus: Boolean, + rows: { + type: Number, + default: 2 + }, + ...useAriaProps(["ariaLabel"]), + inputmode: { + type: definePropType(String), + default: void 0 + }, + name: String + }); + const inputEmits = { + [UPDATE_MODEL_EVENT]: (value) => isString(value), + input: (value) => isString(value), + change: (value, evt) => isString(value) && (evt instanceof Event || evt === void 0), + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: (evt) => evt === void 0 || evt instanceof MouseEvent, + mouseleave: (evt) => evt instanceof MouseEvent, + mouseenter: (evt) => evt instanceof MouseEvent, + keydown: (evt) => evt instanceof Event, + compositionstart: (evt) => evt instanceof CompositionEvent, + compositionupdate: (evt) => evt instanceof CompositionEvent, + compositionend: (evt) => evt instanceof CompositionEvent + }; + /** + * @description default values for InputProps, used in components that extend InputProps like Autocomplete + */ + const inputPropsDefaults = { + disabled: void 0, + modelValue: "", + modelModifiers: () => ({}), + type: "text", + autocomplete: "off", + clearIcon: (0, vue.markRaw)(circle_close_default), + wordLimitPosition: "inside", + tabindex: 0, + validateEvent: true, + inputStyle: () => ({}), + rows: 2 + }; + +//#endregion +//#region ../../packages/components/input/src/utils.ts + let hiddenTextarea = void 0; + const HIDDEN_STYLE = { + height: "0", + visibility: "hidden", + overflow: isFirefox() ? "" : "hidden", + position: "absolute", + "z-index": "-1000", + top: "0", + right: "0" + }; + const CONTEXT_STYLE = [ + "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" + ]; + const looseToNumber = (val) => { + const n = Number.parseFloat(val); + return Number.isNaN(n) ? val : n; + }; + function calculateNodeStyling(targetElement) { + const style = window.getComputedStyle(targetElement); + const boxSizing = style.getPropertyValue("box-sizing"); + const paddingSize = Number.parseFloat(style.getPropertyValue("padding-bottom")) + Number.parseFloat(style.getPropertyValue("padding-top")); + const borderSize = Number.parseFloat(style.getPropertyValue("border-bottom-width")) + Number.parseFloat(style.getPropertyValue("border-top-width")); + return { + contextStyle: CONTEXT_STYLE.map((name) => [name, style.getPropertyValue(name)]), + paddingSize, + borderSize, + boxSizing + }; + } + function calcTextareaHeight(targetElement, minRows = 1, maxRows) { + if (!hiddenTextarea) { + hiddenTextarea = document.createElement("textarea"); + let hostNode = document.body; + if (!isFirefox() && targetElement.parentNode) hostNode = targetElement.parentNode; + hostNode.appendChild(hiddenTextarea); + } + const { paddingSize, borderSize, boxSizing, contextStyle } = calculateNodeStyling(targetElement); + contextStyle.forEach(([key, value]) => hiddenTextarea?.style.setProperty(key, value)); + Object.entries(HIDDEN_STYLE).forEach(([key, value]) => hiddenTextarea?.style.setProperty(key, value, "important")); + hiddenTextarea.value = targetElement.value || targetElement.placeholder || ""; + let height = hiddenTextarea.scrollHeight; + const result = {}; + if (boxSizing === "border-box") height = height + borderSize; + else if (boxSizing === "content-box") height = height - paddingSize; + hiddenTextarea.value = ""; + const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize; + if (isNumber(minRows)) { + let minHeight = singleRowHeight * minRows; + if (boxSizing === "border-box") minHeight = minHeight + paddingSize + borderSize; + height = Math.max(minHeight, height); + result.minHeight = `${minHeight}px`; + } + if (isNumber(maxRows)) { + let maxHeight = singleRowHeight * maxRows; + if (boxSizing === "border-box") maxHeight = maxHeight + paddingSize + borderSize; + height = Math.min(maxHeight, height); + } + result.height = `${height}px`; + hiddenTextarea.parentNode?.removeChild(hiddenTextarea); + hiddenTextarea = void 0; + return result; + } + +//#endregion +//#region ../../packages/components/input/src/input.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$76 = [ + "id", + "name", + "minlength", + "maxlength", + "type", + "disabled", + "readonly", + "autocomplete", + "tabindex", + "aria-label", + "placeholder", + "form", + "autofocus", + "role", + "inputmode" + ]; + const _hoisted_2$42 = [ + "id", + "name", + "minlength", + "maxlength", + "tabindex", + "disabled", + "readonly", + "autocomplete", + "aria-label", + "placeholder", + "form", + "autofocus", + "rows", + "role", + "inputmode" + ]; + const COMPONENT_NAME$19 = "ElInput"; + var input_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$19, + inheritAttrs: false, + __name: "input", + props: inputProps, + emits: inputEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const rawAttrs = (0, vue.useAttrs)(); + const slots = (0, vue.useSlots)(); + const containerKls = (0, vue.computed)(() => [ + props.type === "textarea" ? nsTextarea.b() : nsInput.b(), + nsInput.m(inputSize.value), + nsInput.is("disabled", inputDisabled.value), + nsInput.is("exceed", inputExceed.value), + { + [nsInput.b("group")]: slots.prepend || slots.append, + [nsInput.m("prefix")]: slots.prefix || props.prefixIcon, + [nsInput.m("suffix")]: slots.suffix || props.suffixIcon || props.clearable || props.showPassword, + [nsInput.bm("suffix", "password-clear")]: showClear.value && showPwdVisible.value, + [nsInput.b("hidden")]: props.type === "hidden" + }, + rawAttrs.class + ]); + const wrapperKls = (0, vue.computed)(() => [nsInput.e("wrapper"), nsInput.is("focus", isFocused.value)]); + const attrs = useAttrs(); + const maxlength = (0, vue.computed)(() => props.maxlength?.toString()); + const { form: elForm, formItem: elFormItem } = useFormItem(); + const { inputId } = useFormItemInputId(props, { formItemContext: elFormItem }); + const inputSize = useFormSize(); + const inputDisabled = useFormDisabled(); + const nsInput = useNamespace("input"); + const nsTextarea = useNamespace("textarea"); + const input = (0, vue.shallowRef)(); + const textarea = (0, vue.shallowRef)(); + const hovering = (0, vue.ref)(false); + const passwordVisible = (0, vue.ref)(false); + const countStyle = (0, vue.ref)(); + const textareaCalcStyle = (0, vue.shallowRef)(props.inputStyle); + const saveValue = (0, vue.ref)(""); + const _ref = (0, vue.computed)(() => input.value || textarea.value); + const { wrapperRef, isFocused, handleFocus, handleBlur } = useFocusController(_ref, { + disabled: inputDisabled, + afterBlur() { + if (props.validateEvent) elFormItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const needStatusIcon = (0, vue.computed)(() => elForm?.statusIcon ?? false); + const validateState = (0, vue.computed)(() => elFormItem?.validateState || ""); + const validateIcon = (0, vue.computed)(() => validateState.value && ValidateComponentsMap[validateState.value]); + const passwordIcon = (0, vue.computed)(() => passwordVisible.value ? view_default : hide_default); + const containerStyle = (0, vue.computed)(() => [rawAttrs.style]); + const textareaStyle = (0, vue.computed)(() => [ + props.inputStyle, + textareaCalcStyle.value, + { resize: props.resize } + ]); + const nativeInputValue = (0, vue.computed)(() => isNil(props.modelValue) ? "" : String(props.modelValue)); + const showClear = (0, vue.computed)(() => props.clearable && !inputDisabled.value && !props.readonly && !!nativeInputValue.value && (isFocused.value || hovering.value)); + const showPwdVisible = (0, vue.computed)(() => props.showPassword && !inputDisabled.value && !!nativeInputValue.value); + const isWordLimitVisible = (0, vue.computed)(() => props.showWordLimit && !!maxlength.value && (props.type === "text" || props.type === "textarea") && !inputDisabled.value && !props.readonly && !props.showPassword); + const textLength = (0, vue.computed)(() => { + if (props.countGraphemes && props.showWordLimit) return props.countGraphemes(nativeInputValue.value); + return nativeInputValue.value.length; + }); + const inputExceed = (0, vue.computed)(() => !!isWordLimitVisible.value && textLength.value > Number(maxlength.value)); + const suffixVisible = (0, vue.computed)(() => !!slots.suffix || !!props.suffixIcon || showClear.value || props.showPassword || isWordLimitVisible.value || !!validateState.value && needStatusIcon.value); + const hasModelModifiers = (0, vue.computed)(() => !!Object.keys(props.modelModifiers).length); + const [recordCursor, setCursor] = useCursor(input); + useResizeObserver(textarea, (entries) => { + onceInitSizeTextarea(); + if (!isWordLimitVisible.value || props.resize !== "both" && props.resize !== "horizontal") return; + const { width } = entries[0].contentRect; + countStyle.value = { right: `calc(100% - ${width + 22 - 10}px)` }; + }); + const resizeTextarea = () => { + const { type, autosize } = props; + if (!isClient || type !== "textarea" || !textarea.value) return; + if (autosize) { + const minRows = isObject$1(autosize) ? autosize.minRows : void 0; + const maxRows = isObject$1(autosize) ? autosize.maxRows : void 0; + const textareaStyle = calcTextareaHeight(textarea.value, minRows, maxRows); + textareaCalcStyle.value = { + overflowY: "hidden", + ...textareaStyle + }; + (0, vue.nextTick)(() => { + textarea.value.offsetHeight; + textareaCalcStyle.value = textareaStyle; + }); + } else textareaCalcStyle.value = { minHeight: calcTextareaHeight(textarea.value).minHeight }; + }; + const createOnceInitResize = (resizeTextarea) => { + let isInit = false; + return () => { + if (isInit || !props.autosize) return; + if (!(textarea.value?.offsetParent === null)) { + setTimeout(resizeTextarea); + isInit = true; + } + }; + }; + const onceInitSizeTextarea = createOnceInitResize(resizeTextarea); + const setNativeInputValue = () => { + const input = _ref.value; + const formatterValue = props.formatter ? props.formatter(nativeInputValue.value) : nativeInputValue.value; + if (!input || input.value === formatterValue || props.type === "file") return; + input.value = formatterValue; + }; + const formatValue = (value) => { + const { trim, number } = props.modelModifiers; + if (trim) value = value.trim(); + if (number) value = `${looseToNumber(value)}`; + if (props.formatter && props.parser) value = props.parser(value); + return value; + }; + const handleInput = async (event) => { + if (isComposing.value) return; + const { lazy } = props.modelModifiers; + let { value } = event.target; + let shouldForceNativeUpdate = false; + if (lazy) { + emit(INPUT_EVENT, value); + return; + } + value = formatValue(value); + if (props.countGraphemes && maxlength.value != null) { + const limit = Number(maxlength.value); + const graphemes = props.countGraphemes(value); + const saveGraphemes = props.countGraphemes(saveValue.value); + if (graphemes > limit && graphemes > saveGraphemes) if (saveGraphemes > limit) { + value = saveValue.value; + shouldForceNativeUpdate = true; + } else { + const prevValue = saveValue.value; + const nextValue = value; + let prefixLen = 0; + while (prefixLen < prevValue.length && prefixLen < nextValue.length && prevValue[prefixLen] === nextValue[prefixLen]) prefixLen++; + let prevSuffixIndex = prevValue.length; + let nextSuffixIndex = nextValue.length; + while (prevSuffixIndex > prefixLen && nextSuffixIndex > prefixLen && prevValue[prevSuffixIndex - 1] === nextValue[nextSuffixIndex - 1]) { + prevSuffixIndex--; + nextSuffixIndex--; + } + const before = nextValue.slice(0, prefixLen); + const removed = prevValue.slice(prefixLen, prevSuffixIndex); + const inserted = nextValue.slice(prefixLen, nextSuffixIndex); + const after = nextValue.slice(nextSuffixIndex); + const baseCount = saveGraphemes - props.countGraphemes(removed); + const availableInserted = Math.max(0, limit - baseCount); + let acceptedInserted = ""; + if (availableInserted > 0) if (typeof Intl !== "undefined" && "Segmenter" in Intl) { + const segmenter = new Intl.Segmenter(void 0, { granularity: "grapheme" }); + for (const { segment } of segmenter.segment(inserted)) { + const candidate = acceptedInserted + segment; + if (props.countGraphemes(candidate) > availableInserted) break; + acceptedInserted = candidate; + } + } else for (const char of Array.from(inserted)) { + const candidate = acceptedInserted + char; + if (props.countGraphemes(candidate) > availableInserted) break; + acceptedInserted = candidate; + } + value = before + acceptedInserted + after; + shouldForceNativeUpdate = true; + } + } + if (String(value) === nativeInputValue.value) { + if (props.formatter || shouldForceNativeUpdate) { + const target = event.target; + const blockedValue = target.value; + const selectionStart = target.selectionStart; + const selectionEnd = target.selectionEnd; + setNativeInputValue(); + if (shouldForceNativeUpdate && _ref.value && selectionStart != null && selectionEnd != null) { + const restoredValue = _ref.value.value; + const afterTxt = blockedValue.slice(Math.max(0, selectionEnd)); + let caretPos = Math.min(selectionStart, restoredValue.length); + if (afterTxt && restoredValue.endsWith(afterTxt)) caretPos = restoredValue.length - afterTxt.length; + _ref.value.setSelectionRange(caretPos, caretPos); + } + } + return; + } + saveValue.value = value; + recordCursor(); + emit(UPDATE_MODEL_EVENT, value); + emit(INPUT_EVENT, value); + await (0, vue.nextTick)(); + if (props.formatter && props.parser || !hasModelModifiers.value) setNativeInputValue(); + setCursor(); + }; + const handleChange = async (event) => { + let { value } = event.target; + value = formatValue(value); + if (props.modelModifiers.lazy) emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value, event); + await (0, vue.nextTick)(); + setNativeInputValue(); + }; + const { isComposing, handleCompositionStart, handleCompositionUpdate, handleCompositionEnd } = useComposition({ + emit, + afterComposition: handleInput + }); + const handlePasswordVisible = () => { + passwordVisible.value = !passwordVisible.value; + }; + const focus = () => _ref.value?.focus(); + const blur = () => _ref.value?.blur(); + const handleMouseLeave = (evt) => { + hovering.value = false; + emit("mouseleave", evt); + }; + const handleMouseEnter = (evt) => { + hovering.value = true; + emit("mouseenter", evt); + }; + const handleKeydown = (evt) => { + emit("keydown", evt); + }; + const select = () => { + _ref.value?.select(); + }; + const clear = (evt) => { + emit(UPDATE_MODEL_EVENT, ""); + emit(CHANGE_EVENT, ""); + emit("clear", evt); + emit(INPUT_EVENT, ""); + }; + (0, vue.watch)(() => props.modelValue, () => { + (0, vue.nextTick)(() => resizeTextarea()); + if (props.validateEvent) elFormItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + (0, vue.watch)(() => nativeInputValue.value, (val) => { + saveValue.value = val; + }, { immediate: true }); + (0, vue.watch)(nativeInputValue, (newValue) => { + if (!_ref.value) return; + const { trim, number } = props.modelModifiers; + const elValue = _ref.value.value; + const displayValue = (number || props.type === "number") && !/^0\d/.test(elValue) ? `${looseToNumber(elValue)}` : elValue; + if (displayValue === newValue) return; + if (document.activeElement === _ref.value && _ref.value.type !== "range") { + if (trim && displayValue.trim() === newValue) return; + } + setNativeInputValue(); + }); + (0, vue.watch)(() => props.type, async () => { + await (0, vue.nextTick)(); + setNativeInputValue(); + resizeTextarea(); + }); + (0, vue.onMounted)(() => { + if (!props.formatter && props.parser) /* @__PURE__ */ debugWarn(COMPONENT_NAME$19, "If you set the parser, you also need to set the formatter."); + setNativeInputValue(); + (0, vue.nextTick)(resizeTextarea); + }); + __expose({ + input, + textarea, + ref: _ref, + textareaStyle, + autosize: (0, vue.toRef)(props, "autosize"), + isComposing, + passwordVisible, + focus, + blur, + select, + clear, + resizeTextarea + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([containerKls.value, { + [(0, vue.unref)(nsInput).bm("group", "append")]: _ctx.$slots.append, + [(0, vue.unref)(nsInput).bm("group", "prepend")]: _ctx.$slots.prepend + }]), + style: (0, vue.normalizeStyle)(containerStyle.value), + onMouseenter: handleMouseEnter, + onMouseleave: handleMouseLeave + }, [(0, vue.createCommentVNode)(" input "), __props.type !== "textarea" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [ + (0, vue.createCommentVNode)(" prepend slot "), + _ctx.$slots.prepend ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).be("group", "prepend")) + }, [(0, vue.renderSlot)(_ctx.$slots, "prepend")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + ref_key: "wrapperRef", + ref: wrapperRef, + class: (0, vue.normalizeClass)(wrapperKls.value) + }, [ + (0, vue.createCommentVNode)(" prefix slot "), + _ctx.$slots.prefix || __props.prefixIcon ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("prefix")) + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("prefix-inner")) }, [(0, vue.renderSlot)(_ctx.$slots, "prefix"), __props.prefixIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("icon")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.prefixIcon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)], 2)], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("input", (0, vue.mergeProps)({ + id: (0, vue.unref)(inputId), + ref_key: "input", + ref: input, + class: (0, vue.unref)(nsInput).e("inner") + }, (0, vue.unref)(attrs), { + name: __props.name, + minlength: __props.countGraphemes ? void 0 : __props.minlength, + maxlength: __props.countGraphemes ? void 0 : maxlength.value, + type: __props.showPassword ? passwordVisible.value ? "text" : "password" : __props.type, + disabled: (0, vue.unref)(inputDisabled), + readonly: __props.readonly, + autocomplete: __props.autocomplete, + tabindex: __props.tabindex, + "aria-label": __props.ariaLabel, + placeholder: __props.placeholder, + style: __props.inputStyle, + form: __props.form, + autofocus: __props.autofocus, + role: __props.containerRole, + inputmode: __props.inputmode, + onCompositionstart: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleCompositionStart) && (0, vue.unref)(handleCompositionStart)(...args)), + onCompositionupdate: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleCompositionUpdate) && (0, vue.unref)(handleCompositionUpdate)(...args)), + onCompositionend: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(handleCompositionEnd) && (0, vue.unref)(handleCompositionEnd)(...args)), + onInput: handleInput, + onChange: handleChange, + onKeydown: handleKeydown + }), null, 16, _hoisted_1$76), + (0, vue.createCommentVNode)(" suffix slot "), + suffixVisible.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("suffix")) + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("suffix-inner")) }, [ + !showClear.value || !showPwdVisible.value || !isWordLimitVisible.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.renderSlot)(_ctx.$slots, "suffix"), __props.suffixIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("icon")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.suffixIcon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)], 64)) : (0, vue.createCommentVNode)("v-if", true), + showClear.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("icon"), (0, vue.unref)(nsInput).e("clear")]), + onMousedown: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]), + onClick: clear + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.clearIcon)))]), + _: 1 + }, 8, ["class", "onMousedown"])) : (0, vue.createCommentVNode)("v-if", true), + showPwdVisible.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 2, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("icon"), (0, vue.unref)(nsInput).e("password")]), + onClick: handlePasswordVisible, + onMousedown: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]), + onMouseup: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "password-icon", { visible: passwordVisible.value }, () => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(passwordIcon.value)))])]), + _: 3 + }, 8, [ + "class", + "onMousedown", + "onMouseup" + ])) : (0, vue.createCommentVNode)("v-if", true), + isWordLimitVisible.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 3, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("count"), (0, vue.unref)(nsInput).is("outside", __props.wordLimitPosition === "outside")]) + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("count-inner")) }, (0, vue.toDisplayString)(textLength.value) + " / " + (0, vue.toDisplayString)(maxlength.value), 3)], 2)) : (0, vue.createCommentVNode)("v-if", true), + validateState.value && validateIcon.value && needStatusIcon.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 4, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(nsInput).e("icon"), + (0, vue.unref)(nsInput).e("validateIcon"), + (0, vue.unref)(nsInput).is("loading", validateState.value === "validating") + ]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(validateIcon.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true) + ], 2)], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2), + (0, vue.createCommentVNode)(" append slot "), + _ctx.$slots.append ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).be("group", "append")) + }, [(0, vue.renderSlot)(_ctx.$slots, "append")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [ + (0, vue.createCommentVNode)(" textarea "), + (0, vue.createElementVNode)("textarea", (0, vue.mergeProps)({ + id: (0, vue.unref)(inputId), + ref_key: "textarea", + ref: textarea, + class: [ + (0, vue.unref)(nsTextarea).e("inner"), + (0, vue.unref)(nsInput).is("focus", (0, vue.unref)(isFocused)), + (0, vue.unref)(nsTextarea).is("clearable", __props.clearable) + ] + }, (0, vue.unref)(attrs), { + name: __props.name, + minlength: __props.countGraphemes ? void 0 : __props.minlength, + maxlength: __props.countGraphemes ? void 0 : maxlength.value, + tabindex: __props.tabindex, + disabled: (0, vue.unref)(inputDisabled), + readonly: __props.readonly, + autocomplete: __props.autocomplete, + style: textareaStyle.value, + "aria-label": __props.ariaLabel, + placeholder: __props.placeholder, + form: __props.form, + autofocus: __props.autofocus, + rows: __props.rows, + role: __props.containerRole, + inputmode: __props.inputmode, + onCompositionstart: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(handleCompositionStart) && (0, vue.unref)(handleCompositionStart)(...args)), + onCompositionupdate: _cache[4] || (_cache[4] = (...args) => (0, vue.unref)(handleCompositionUpdate) && (0, vue.unref)(handleCompositionUpdate)(...args)), + onCompositionend: _cache[5] || (_cache[5] = (...args) => (0, vue.unref)(handleCompositionEnd) && (0, vue.unref)(handleCompositionEnd)(...args)), + onInput: handleInput, + onFocus: _cache[6] || (_cache[6] = (...args) => (0, vue.unref)(handleFocus) && (0, vue.unref)(handleFocus)(...args)), + onBlur: _cache[7] || (_cache[7] = (...args) => (0, vue.unref)(handleBlur) && (0, vue.unref)(handleBlur)(...args)), + onChange: handleChange, + onKeydown: handleKeydown + }), null, 16, _hoisted_2$42), + showClear.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsTextarea).e("icon"), (0, vue.unref)(nsTextarea).e("clear")]), + onMousedown: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]), + onClick: clear + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.clearIcon)))]), + _: 1 + }, 8, ["class", "onMousedown"])) : (0, vue.createCommentVNode)("v-if", true), + isWordLimitVisible.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + style: (0, vue.normalizeStyle)(countStyle.value), + class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("count"), (0, vue.unref)(nsInput).is("outside", __props.wordLimitPosition === "outside")]) + }, (0, vue.toDisplayString)(textLength.value) + " / " + (0, vue.toDisplayString)(maxlength.value), 7)) : (0, vue.createCommentVNode)("v-if", true) + ], 64))], 38); + }; + } + }); + +//#endregion +//#region ../../packages/components/input/src/input.vue + var input_default = input_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/input/index.ts + const ElInput = withInstall(input_default); + +//#endregion +//#region ../../packages/components/autocomplete/src/autocomplete.ts +/** + * @deprecated Removed after 3.0.0, Use `AutocompleteProps` instead. + */ + const autocompleteProps = buildProps({ + ...inputProps, + valueKey: { + type: String, + default: "value" + }, + modelValue: { + type: [String, Number], + default: "" + }, + debounce: { + type: Number, + default: 300 + }, + placement: { + type: definePropType(String), + values: [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end" + ], + default: "bottom-start" + }, + fetchSuggestions: { + type: definePropType([Function, Array]), + default: NOOP + }, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + triggerOnFocus: { + type: Boolean, + default: true + }, + selectWhenUnmatched: Boolean, + hideLoading: Boolean, + teleported: useTooltipContentProps.teleported, + appendTo: useTooltipContentProps.appendTo, + highlightFirstItem: Boolean, + fitInputWidth: Boolean, + loopNavigation: { + type: Boolean, + default: true + } + }); + const autocompleteEmits = { + [UPDATE_MODEL_EVENT]: (value) => isString(value) || isNumber(value), + [INPUT_EVENT]: (value) => isString(value) || isNumber(value), + [CHANGE_EVENT]: (value) => isString(value) || isNumber(value), + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true, + select: (item) => isObject$1(item) + }; + +//#endregion +//#region ../../packages/components/scrollbar/src/scrollbar.ts +/** + * @deprecated Removed after 3.0.0, Use `ScrollbarProps` instead. + */ + const scrollbarProps = buildProps({ + distance: { + type: Number, + default: 0 + }, + height: { + type: [String, Number], + default: "" + }, + maxHeight: { + type: [String, Number], + default: "" + }, + native: Boolean, + wrapStyle: { + type: definePropType([ + String, + Object, + Array + ]), + default: "" + }, + wrapClass: { + type: [String, Array], + default: "" + }, + viewClass: { + type: [String, Array], + default: "" + }, + viewStyle: { + type: [ + String, + Array, + Object + ], + 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, + ...useAriaProps(["ariaLabel", "ariaOrientation"]) + }); + const scrollbarEmits = { + "end-reached": (direction) => [ + "left", + "right", + "top", + "bottom" + ].includes(direction), + scroll: ({ scrollTop, scrollLeft }) => [scrollTop, scrollLeft].every(isNumber) + }; + +//#endregion +//#region ../../packages/components/scrollbar/src/bar.ts +/** + * @deprecated Removed after 3.0.0, Use `BarProps` instead. + */ + const barProps = buildProps({ + always: { + type: Boolean, + default: true + }, + minSize: { + type: Number, + required: true + } + }); + +//#endregion +//#region ../../packages/components/scrollbar/src/util.ts + const GAP = 4; + const BAR_MAP = { + 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" + } + }; + const renderThumbStyle = ({ move, size, bar }) => ({ + [bar.size]: size, + transform: `translate${bar.axis}(${move}%)` + }); + +//#endregion +//#region ../../packages/components/scrollbar/src/thumb.ts +/** + * @deprecated Removed after 3.0.0, Use `ThumbProps` instead. + */ + const thumbProps = buildProps({ + vertical: Boolean, + size: String, + move: Number, + ratio: { + type: Number, + required: true + }, + always: Boolean + }); + +//#endregion +//#region ../../packages/components/scrollbar/src/constants.ts + const scrollbarContextKey = Symbol("scrollbarContextKey"); + +//#endregion +//#region ../../packages/components/scrollbar/src/thumb.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$18 = "Thumb"; + var thumb_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "thumb", + props: thumbProps, + setup(__props) { + const props = __props; + const scrollbar = (0, vue.inject)(scrollbarContextKey); + const ns = useNamespace("scrollbar"); + if (!scrollbar) throwError(COMPONENT_NAME$18, "can not inject scrollbar context"); + const instance = (0, vue.ref)(); + const thumb = (0, vue.ref)(); + const thumbState = (0, vue.ref)({}); + const visible = (0, vue.ref)(false); + let cursorDown = false; + let cursorLeave = false; + let baseScrollHeight = 0; + let baseScrollWidth = 0; + let originalOnSelectStart = isClient ? document.onselectstart : null; + const bar = (0, vue.computed)(() => BAR_MAP[props.vertical ? "vertical" : "horizontal"]); + const thumbStyle = (0, vue.computed)(() => renderThumbStyle({ + size: props.size, + move: props.move, + bar: bar.value + })); + const offsetRatio = (0, vue.computed)(() => instance.value[bar.value.offset] ** 2 / scrollbar.wrapElement[bar.value.scrollSize] / props.ratio / thumb.value[bar.value.offset]); + const clickThumbHandler = (e) => { + e.stopPropagation(); + if (e.ctrlKey || [1, 2].includes(e.button)) return; + window.getSelection()?.removeAllRanges(); + startDrag(e); + const el = e.currentTarget; + if (!el) return; + thumbState.value[bar.value.axis] = el[bar.value.offset] - (e[bar.value.client] - el.getBoundingClientRect()[bar.value.direction]); + }; + const clickTrackHandler = (e) => { + if (!thumb.value || !instance.value || !scrollbar.wrapElement) return; + const thumbPositionPercentage = (Math.abs(e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) - thumb.value[bar.value.offset] / 2) * 100 * offsetRatio.value / instance.value[bar.value.offset]; + scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize] / 100; + }; + const startDrag = (e) => { + e.stopImmediatePropagation(); + cursorDown = true; + baseScrollHeight = scrollbar.wrapElement.scrollHeight; + baseScrollWidth = scrollbar.wrapElement.scrollWidth; + document.addEventListener("mousemove", mouseMoveDocumentHandler); + document.addEventListener("mouseup", mouseUpDocumentHandler); + originalOnSelectStart = document.onselectstart; + document.onselectstart = () => false; + }; + const mouseMoveDocumentHandler = (e) => { + if (!instance.value || !thumb.value) return; + if (cursorDown === false) return; + const prevPage = thumbState.value[bar.value.axis]; + if (!prevPage) return; + const thumbPositionPercentage = ((instance.value.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) * -1 - (thumb.value[bar.value.offset] - prevPage)) * 100 * offsetRatio.value / instance.value[bar.value.offset]; + if (bar.value.scroll === "scrollLeft") scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * baseScrollWidth / 100; + else scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * baseScrollHeight / 100; + }; + const mouseUpDocumentHandler = () => { + cursorDown = false; + thumbState.value[bar.value.axis] = 0; + document.removeEventListener("mousemove", mouseMoveDocumentHandler); + document.removeEventListener("mouseup", mouseUpDocumentHandler); + restoreOnselectstart(); + if (cursorLeave) visible.value = false; + }; + const mouseMoveScrollbarHandler = () => { + cursorLeave = false; + visible.value = !!props.size; + }; + const mouseLeaveScrollbarHandler = () => { + cursorLeave = true; + visible.value = cursorDown; + }; + (0, vue.onBeforeUnmount)(() => { + restoreOnselectstart(); + document.removeEventListener("mouseup", mouseUpDocumentHandler); + }); + const restoreOnselectstart = () => { + if (document.onselectstart !== originalOnSelectStart) document.onselectstart = originalOnSelectStart; + }; + useEventListener((0, vue.toRef)(scrollbar, "scrollbarElement"), "mousemove", mouseMoveScrollbarHandler); + useEventListener((0, vue.toRef)(scrollbar, "scrollbarElement"), "mouseleave", mouseLeaveScrollbarHandler); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + name: (0, vue.unref)(ns).b("fade"), + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("div", { + ref_key: "instance", + ref: instance, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("bar"), (0, vue.unref)(ns).is(bar.value.key)]), + onMousedown: clickTrackHandler, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.createElementVNode)("div", { + ref_key: "thumb", + ref: thumb, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("thumb")), + style: (0, vue.normalizeStyle)(thumbStyle.value), + onMousedown: clickThumbHandler + }, null, 38)], 34), [[vue.vShow, __props.always || visible.value]])]), + _: 1 + }, 8, ["name"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/scrollbar/src/thumb.vue + var thumb_default = thumb_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/scrollbar/src/bar.vue?vue&type=script&setup=true&lang.ts + var bar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "bar", + props: barProps, + setup(__props, { expose: __expose }) { + const props = __props; + const scrollbar = (0, vue.inject)(scrollbarContextKey); + const moveX = (0, vue.ref)(0); + const moveY = (0, vue.ref)(0); + const sizeWidth = (0, vue.ref)(""); + const sizeHeight = (0, vue.ref)(""); + const ratioY = (0, vue.ref)(1); + const ratioX = (0, vue.ref)(1); + const handleScroll = (wrap) => { + if (wrap) { + const offsetHeight = wrap.offsetHeight - GAP; + const offsetWidth = wrap.offsetWidth - GAP; + moveY.value = wrap.scrollTop * 100 / offsetHeight * ratioY.value; + moveX.value = wrap.scrollLeft * 100 / offsetWidth * ratioX.value; + } + }; + const update = () => { + const wrap = scrollbar?.wrapElement; + if (!wrap) return; + const offsetHeight = wrap.offsetHeight - GAP; + const offsetWidth = wrap.offsetWidth - GAP; + const originalHeight = offsetHeight ** 2 / wrap.scrollHeight; + const originalWidth = offsetWidth ** 2 / wrap.scrollWidth; + const height = Math.max(originalHeight, props.minSize); + const width = Math.max(originalWidth, props.minSize); + ratioY.value = originalHeight / (offsetHeight - originalHeight) / (height / (offsetHeight - height)); + ratioX.value = originalWidth / (offsetWidth - originalWidth) / (width / (offsetWidth - width)); + sizeHeight.value = height + GAP < offsetHeight ? `${height}px` : ""; + sizeWidth.value = width + GAP < offsetWidth ? `${width}px` : ""; + }; + __expose({ + handleScroll, + update + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [(0, vue.createVNode)(thumb_default, { + move: moveX.value, + ratio: ratioX.value, + size: sizeWidth.value, + always: __props.always + }, null, 8, [ + "move", + "ratio", + "size", + "always" + ]), (0, vue.createVNode)(thumb_default, { + move: moveY.value, + ratio: ratioY.value, + size: sizeHeight.value, + vertical: "", + always: __props.always + }, null, 8, [ + "move", + "ratio", + "size", + "always" + ])], 64); + }; + } + }); + +//#endregion +//#region ../../packages/components/scrollbar/src/bar.vue + var bar_default = bar_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/scrollbar/src/scrollbar.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$75 = ["tabindex"]; + const COMPONENT_NAME$17 = "ElScrollbar"; + var scrollbar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$17, + __name: "scrollbar", + props: scrollbarProps, + emits: scrollbarEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("scrollbar"); + let stopResizeObserver = void 0; + let stopWrapResizeObserver = void 0; + let stopResizeListener = void 0; + let wrapScrollTop = 0; + let wrapScrollLeft = 0; + let direction = ""; + const distanceScrollState = { + bottom: false, + top: false, + right: false, + left: false + }; + const scrollbarRef = (0, vue.ref)(); + const wrapRef = (0, vue.ref)(); + const resizeRef = (0, vue.ref)(); + const barRef = (0, vue.ref)(); + const wrapStyle = (0, vue.computed)(() => { + const style = {}; + const height = addUnit(props.height); + const maxHeight = addUnit(props.maxHeight); + if (height) style.height = height; + if (maxHeight) style.maxHeight = maxHeight; + return [props.wrapStyle, style]; + }); + const wrapKls = (0, vue.computed)(() => { + return [ + props.wrapClass, + ns.e("wrap"), + { [ns.em("wrap", "hidden-default")]: !props.native } + ]; + }); + const resizeKls = (0, vue.computed)(() => { + return [ns.e("view"), props.viewClass]; + }); + const shouldSkipDirection = (direction) => { + return distanceScrollState[direction] ?? false; + }; + const DIRECTION_PAIRS = { + top: "bottom", + bottom: "top", + left: "right", + right: "left" + }; + const updateTriggerStatus = (arrivedStates) => { + const oppositeDirection = DIRECTION_PAIRS[direction]; + if (!oppositeDirection) return; + const arrived = arrivedStates[direction]; + const oppositeArrived = arrivedStates[oppositeDirection]; + if (arrived && !distanceScrollState[direction]) distanceScrollState[direction] = true; + if (!oppositeArrived && distanceScrollState[oppositeDirection]) distanceScrollState[oppositeDirection] = false; + }; + const handleScroll = () => { + if (wrapRef.value) { + barRef.value?.handleScroll(wrapRef.value); + const prevTop = wrapScrollTop; + const prevLeft = wrapScrollLeft; + wrapScrollTop = wrapRef.value.scrollTop; + wrapScrollLeft = wrapRef.value.scrollLeft; + const arrivedStates = { + bottom: !isGreaterThan(wrapRef.value.scrollHeight - props.distance, wrapRef.value.clientHeight + wrapScrollTop), + top: wrapScrollTop <= props.distance && prevTop !== 0, + right: !isGreaterThan(wrapRef.value.scrollWidth - props.distance, wrapRef.value.clientWidth + wrapScrollLeft) && prevLeft !== wrapScrollLeft, + left: wrapScrollLeft <= props.distance && prevLeft !== 0 + }; + emit("scroll", { + scrollTop: wrapScrollTop, + scrollLeft: wrapScrollLeft + }); + if (prevTop !== wrapScrollTop) direction = wrapScrollTop > prevTop ? "bottom" : "top"; + if (prevLeft !== wrapScrollLeft) direction = wrapScrollLeft > prevLeft ? "right" : "left"; + if (props.distance > 0) { + if (shouldSkipDirection(direction)) return; + updateTriggerStatus(arrivedStates); + } + if (arrivedStates[direction]) emit("end-reached", direction); + } + }; + function scrollTo(arg1, arg2) { + if (isObject$1(arg1)) wrapRef.value.scrollTo(arg1); + else if (isNumber(arg1) && isNumber(arg2)) wrapRef.value.scrollTo(arg1, arg2); + } + const setScrollTop = (value) => { + if (!isNumber(value)) { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$17, "value must be a number"); + return; + } + wrapRef.value.scrollTop = value; + }; + const setScrollLeft = (value) => { + if (!isNumber(value)) { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$17, "value must be a number"); + return; + } + wrapRef.value.scrollLeft = value; + }; + const update = () => { + barRef.value?.update(); + distanceScrollState[direction] = false; + if (wrapRef.value) barRef.value?.handleScroll(wrapRef.value); + }; + (0, vue.watch)(() => props.noresize, (noresize) => { + if (noresize) { + stopResizeObserver?.(); + stopWrapResizeObserver?.(); + stopResizeListener?.(); + } else { + ({stop: stopResizeObserver} = useResizeObserver(resizeRef, update)); + ({stop: stopWrapResizeObserver} = useResizeObserver(wrapRef, update)); + stopResizeListener = useEventListener("resize", update); + } + }, { immediate: true }); + (0, vue.watch)(() => [props.maxHeight, props.height], () => { + if (!props.native) (0, vue.nextTick)(() => { + update(); + }); + }); + (0, vue.provide)(scrollbarContextKey, (0, vue.reactive)({ + scrollbarElement: scrollbarRef, + wrapElement: wrapRef + })); + (0, vue.onActivated)(() => { + if (wrapRef.value) { + wrapRef.value.scrollTop = wrapScrollTop; + wrapRef.value.scrollLeft = wrapScrollLeft; + } + }); + (0, vue.onMounted)(() => { + if (!props.native) (0, vue.nextTick)(() => { + update(); + }); + }); + (0, vue.onUpdated)(() => update()); + __expose({ + wrapRef, + update, + scrollTo, + setScrollTop, + setScrollLeft, + handleScroll + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "scrollbarRef", + ref: scrollbarRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) + }, [(0, vue.createElementVNode)("div", { + ref_key: "wrapRef", + ref: wrapRef, + class: (0, vue.normalizeClass)(wrapKls.value), + style: (0, vue.normalizeStyle)(wrapStyle.value), + tabindex: __props.tabindex, + onScroll: handleScroll + }, [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.tag), { + id: __props.id, + ref_key: "resizeRef", + ref: resizeRef, + class: (0, vue.normalizeClass)(resizeKls.value), + style: (0, vue.normalizeStyle)(__props.viewStyle), + role: __props.role, + "aria-label": __props.ariaLabel, + "aria-orientation": __props.ariaOrientation + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, [ + "id", + "class", + "style", + "role", + "aria-label", + "aria-orientation" + ]))], 46, _hoisted_1$75), !__props.native ? ((0, vue.openBlock)(), (0, vue.createBlock)(bar_default, { + key: 0, + ref_key: "barRef", + ref: barRef, + always: __props.always, + "min-size": __props.minSize + }, null, 8, ["always", "min-size"])) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/scrollbar/src/scrollbar.vue + var scrollbar_default = scrollbar_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/scrollbar/index.ts + const ElScrollbar = withInstall(scrollbar_default); + +//#endregion +//#region ../../packages/components/autocomplete/src/autocomplete.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$74 = ["aria-expanded", "aria-owns"]; + const _hoisted_2$41 = { key: 0 }; + const _hoisted_3$18 = [ + "id", + "aria-selected", + "onClick" + ]; + const COMPONENT_NAME$16 = "ElAutocomplete"; + var autocomplete_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$16, + inheritAttrs: false, + __name: "autocomplete", + props: autocompleteProps, + emits: autocompleteEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const passInputProps = (0, vue.computed)(() => { + const inputProps = ElInput.props ?? []; + return pick(props, isArray$1(inputProps) ? inputProps : Object.keys(inputProps)); + }); + const rawAttrs = (0, vue.useAttrs)(); + const disabled = useFormDisabled(); + const ns = useNamespace("autocomplete"); + const inputRef = (0, vue.ref)(); + const regionRef = (0, vue.ref)(); + const popperRef = (0, vue.ref)(); + const listboxRef = (0, vue.ref)(); + let readonly = false; + let ignoreFocusEvent = false; + const suggestions = (0, vue.ref)([]); + const highlightedIndex = (0, vue.ref)(-1); + const dropdownWidth = (0, vue.ref)(""); + const activated = (0, vue.ref)(false); + const suggestionDisabled = (0, vue.ref)(false); + const loading = (0, vue.ref)(false); + const listboxId = useId(); + const styles = (0, vue.computed)(() => rawAttrs.style); + const suggestionVisible = (0, vue.computed)(() => { + return (suggestions.value.length > 0 || loading.value) && activated.value; + }); + const suggestionLoading = (0, vue.computed)(() => !props.hideLoading && loading.value); + const refInput = (0, vue.computed)(() => { + if (inputRef.value) return Array.from(inputRef.value.$el.querySelectorAll("input")); + return []; + }); + const onSuggestionShow = () => { + if (suggestionVisible.value) dropdownWidth.value = `${inputRef.value.$el.offsetWidth}px`; + }; + const onHide = () => { + highlightedIndex.value = -1; + }; + const getData = async (queryString) => { + if (suggestionDisabled.value) return; + const cb = (suggestionList) => { + loading.value = false; + if (suggestionDisabled.value) return; + if (isArray$1(suggestionList)) { + suggestions.value = suggestionList; + highlightedIndex.value = props.highlightFirstItem ? 0 : -1; + } else throwError(COMPONENT_NAME$16, "autocomplete suggestions must be an array"); + }; + loading.value = true; + if (isArray$1(props.fetchSuggestions)) cb(props.fetchSuggestions); + else { + const result = await props.fetchSuggestions(queryString, cb); + if (isArray$1(result)) cb(result); + } + }; + const debouncedGetData = useDebounceFn(getData, (0, vue.computed)(() => props.debounce)); + const handleInput = (value) => { + const valuePresented = !!value; + emit(INPUT_EVENT, value); + emit(UPDATE_MODEL_EVENT, value); + suggestionDisabled.value = false; + activated.value ||= valuePresented; + if (!props.triggerOnFocus && !value) { + suggestionDisabled.value = true; + suggestions.value = []; + return; + } + debouncedGetData(value); + }; + const handleMouseDown = (event) => { + if (disabled.value) return; + if (event.target?.tagName !== "INPUT" || refInput.value.includes(document.activeElement)) activated.value = true; + }; + const handleChange = (value) => { + emit(CHANGE_EVENT, value); + }; + const handleFocus = (evt) => { + if (!ignoreFocusEvent) { + activated.value = true; + emit("focus", evt); + const queryString = props.modelValue ?? ""; + if (props.triggerOnFocus && !readonly) debouncedGetData(String(queryString)); + } else ignoreFocusEvent = false; + }; + const handleBlur = (evt) => { + setTimeout(() => { + if (popperRef.value?.isFocusInsideContent()) { + ignoreFocusEvent = true; + return; + } + activated.value && close(); + emit("blur", evt); + }); + }; + const handleClear = () => { + activated.value = false; + emit(UPDATE_MODEL_EVENT, ""); + emit("clear"); + }; + const handleKeyEnter = async () => { + if (inputRef.value?.isComposing) return; + if (suggestionVisible.value && highlightedIndex.value >= 0 && highlightedIndex.value < suggestions.value.length) handleSelect(suggestions.value[highlightedIndex.value]); + else { + if (props.selectWhenUnmatched) { + emit("select", { value: props.modelValue }); + suggestions.value = []; + highlightedIndex.value = -1; + } + activated.value = true; + debouncedGetData(String(props.modelValue)); + } + }; + const handleKeyEscape = (evt) => { + if (suggestionVisible.value) { + evt.preventDefault(); + evt.stopPropagation(); + close(); + } + }; + const close = () => { + activated.value = false; + }; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + inputRef.value?.blur(); + }; + const handleSelect = async (item) => { + emit(INPUT_EVENT, item[props.valueKey]); + emit(UPDATE_MODEL_EVENT, item[props.valueKey]); + emit("select", item); + suggestions.value = []; + highlightedIndex.value = -1; + }; + const highlight = (index) => { + if (!suggestionVisible.value || loading.value) return; + if (index < 0) { + if (!props.loopNavigation) { + highlightedIndex.value = -1; + return; + } + index = suggestions.value.length - 1; + } + if (index >= suggestions.value.length) index = props.loopNavigation ? 0 : suggestions.value.length - 1; + const [suggestion, suggestionList] = getSuggestionContext(); + const highlightItem = suggestionList[index]; + const scrollTop = suggestion.scrollTop; + const { offsetTop, scrollHeight } = highlightItem; + if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) suggestion.scrollTop = offsetTop + scrollHeight - suggestion.clientHeight; + if (offsetTop < scrollTop) suggestion.scrollTop = offsetTop; + highlightedIndex.value = index; + inputRef.value?.ref?.setAttribute("aria-activedescendant", `${listboxId.value}-item-${highlightedIndex.value}`); + }; + const getSuggestionContext = () => { + const suggestion = regionRef.value.querySelector(`.${ns.be("suggestion", "wrap")}`); + return [suggestion, suggestion.querySelectorAll(`.${ns.be("suggestion", "list")} li`)]; + }; + const stopHandle = onClickOutside(listboxRef, (event) => { + if (popperRef.value?.isFocusInsideContent()) return; + const hadIgnoredFocus = ignoreFocusEvent; + ignoreFocusEvent = false; + if (!suggestionVisible.value) return; + if (hadIgnoredFocus) handleBlur(new FocusEvent("blur", event)); + else close(); + }); + const handleKeydown = (e) => { + switch (getEventCode(e)) { + case EVENT_CODE.up: + e.preventDefault(); + highlight(highlightedIndex.value - 1); + break; + case EVENT_CODE.down: + e.preventDefault(); + highlight(highlightedIndex.value + 1); + break; + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + e.preventDefault(); + handleKeyEnter(); + break; + case EVENT_CODE.tab: + close(); + break; + case EVENT_CODE.esc: + handleKeyEscape(e); + break; + case EVENT_CODE.home: + e.preventDefault(); + highlight(0); + break; + case EVENT_CODE.end: + e.preventDefault(); + highlight(suggestions.value.length - 1); + break; + case EVENT_CODE.pageUp: + e.preventDefault(); + highlight(Math.max(0, highlightedIndex.value - 10)); + break; + case EVENT_CODE.pageDown: + e.preventDefault(); + highlight(Math.min(suggestions.value.length - 1, highlightedIndex.value + 10)); + break; + } + }; + (0, vue.onBeforeUnmount)(() => { + stopHandle?.(); + }); + (0, vue.onMounted)(() => { + const inputElement = inputRef.value?.ref; + if (!inputElement) return; + [ + { + key: "role", + value: "textbox" + }, + { + key: "aria-autocomplete", + value: "list" + }, + { + key: "aria-controls", + value: listboxId.value + }, + { + key: "aria-activedescendant", + value: `${listboxId.value}-item-${highlightedIndex.value}` + } + ].forEach(({ key, value }) => inputElement.setAttribute(key, value)); + readonly = inputElement.hasAttribute("readonly"); + }); + __expose({ + highlightedIndex, + activated, + loading, + inputRef, + popperRef, + suggestions, + handleSelect, + handleKeyEnter, + focus, + blur, + close, + highlight, + getData + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), { + ref_key: "popperRef", + ref: popperRef, + visible: suggestionVisible.value, + placement: __props.placement, + "fallback-placements": ["bottom-start", "top-start"], + "popper-class": [(0, vue.unref)(ns).e("popper"), __props.popperClass], + "popper-style": __props.popperStyle, + teleported: __props.teleported, + "append-to": __props.appendTo, + "gpu-acceleration": false, + pure: "", + "manual-mode": "", + effect: "light", + trigger: "click", + transition: `${(0, vue.unref)(ns).namespace.value}-zoom-in-top`, + persistent: "", + role: "listbox", + onBeforeShow: onSuggestionShow, + onHide + }, { + content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref_key: "regionRef", + ref: regionRef, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("suggestion"), (0, vue.unref)(ns).is("loading", suggestionLoading.value)]), + style: (0, vue.normalizeStyle)({ + [__props.fitInputWidth ? "width" : "minWidth"]: dropdownWidth.value, + outline: "none" + }), + role: "region" + }, [ + _ctx.$slots.header ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("suggestion", "header")), + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "header")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createVNode)((0, vue.unref)(ElScrollbar), { + id: (0, vue.unref)(listboxId), + tag: "ul", + "wrap-class": (0, vue.unref)(ns).be("suggestion", "wrap"), + "view-class": (0, vue.unref)(ns).be("suggestion", "list"), + role: "listbox" + }, { + default: (0, vue.withCtx)(() => [suggestionLoading.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("li", _hoisted_2$41, [(0, vue.renderSlot)(_ctx.$slots, "loading", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(ns).is("loading")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(loading_default))]), + _: 1 + }, 8, ["class"])])])) : ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, (0, vue.renderList)(suggestions.value, (item, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + id: `${(0, vue.unref)(listboxId)}-item-${index}`, + key: index, + class: (0, vue.normalizeClass)({ highlighted: highlightedIndex.value === index }), + role: "option", + "aria-selected": highlightedIndex.value === index, + onClick: ($event) => handleSelect(item) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", { item }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(item[__props.valueKey]), 1)])], 10, _hoisted_3$18); + }), 128))]), + _: 3 + }, 8, [ + "id", + "wrap-class", + "view-class" + ]), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("suggestion", "footer")), + onClick: _cache[1] || (_cache[1] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 6)]), + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref_key: "listboxRef", + ref: listboxRef, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), _ctx.$attrs.class]), + style: (0, vue.normalizeStyle)(styles.value), + role: "combobox", + "aria-haspopup": "listbox", + "aria-expanded": suggestionVisible.value, + "aria-owns": (0, vue.unref)(listboxId) + }, [(0, vue.createVNode)((0, vue.unref)(ElInput), (0, vue.mergeProps)({ + ref_key: "inputRef", + ref: inputRef + }, (0, vue.mergeProps)(passInputProps.value, _ctx.$attrs), { + "model-value": __props.modelValue, + disabled: (0, vue.unref)(disabled), + onInput: handleInput, + onChange: handleChange, + onFocus: handleFocus, + onBlur: handleBlur, + onClear: handleClear, + onKeydown: handleKeydown, + onMousedown: handleMouseDown + }), (0, vue.createSlots)({ _: 2 }, [ + _ctx.$slots.prepend ? { + name: "prepend", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "prepend")]), + key: "0" + } : void 0, + _ctx.$slots.append ? { + name: "append", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "append")]), + key: "1" + } : void 0, + _ctx.$slots.prefix ? { + name: "prefix", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "prefix")]), + key: "2" + } : void 0, + _ctx.$slots.suffix ? { + name: "suffix", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "suffix")]), + key: "3" + } : void 0 + ]), 1040, ["model-value", "disabled"])], 14, _hoisted_1$74)]), + _: 3 + }, 8, [ + "visible", + "placement", + "popper-class", + "popper-style", + "teleported", + "append-to", + "transition" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/autocomplete/src/autocomplete.vue + var autocomplete_default = autocomplete_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/autocomplete/index.ts + const ElAutocomplete = withInstall(autocomplete_default); + +//#endregion +//#region ../../packages/components/avatar/src/avatar.ts +/** + * @deprecated Removed after 3.0.0, Use `AvatarProps` instead. + */ + const avatarProps = buildProps({ + size: { + type: [Number, String], + values: componentSizes, + validator: (val) => isNumber(val) + }, + shape: { + type: String, + values: ["circle", "square"] + }, + icon: { type: iconPropType }, + src: { + type: String, + default: "" + }, + alt: String, + srcSet: String, + fit: { + type: definePropType(String), + default: "cover" + } + }); + const avatarEmits = { error: (evt) => evt instanceof Event }; + +//#endregion +//#region ../../packages/components/avatar/src/constants.ts + const avatarGroupContextKey = Symbol("avatarGroupContextKey"); + +//#endregion +//#region ../../packages/components/avatar/src/avatar.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$73 = [ + "src", + "alt", + "srcset" + ]; + var avatar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAvatar", + __name: "avatar", + props: avatarProps, + emits: avatarEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const avatarGroupContext = (0, vue.inject)(avatarGroupContextKey, void 0); + const ns = useNamespace("avatar"); + const hasLoadError = (0, vue.ref)(false); + const size = (0, vue.computed)(() => props.size ?? avatarGroupContext?.size); + const shape = (0, vue.computed)(() => props.shape ?? avatarGroupContext?.shape ?? "circle"); + const avatarClass = (0, vue.computed)(() => { + const { icon } = props; + const classList = [ns.b()]; + if (isString(size.value)) classList.push(ns.m(size.value)); + if (icon) classList.push(ns.m("icon")); + if (shape.value) classList.push(ns.m(shape.value)); + return classList; + }); + const sizeStyle = (0, vue.computed)(() => { + return isNumber(size.value) ? ns.cssVarBlock({ size: addUnit(size.value) }) : void 0; + }); + const fitStyle = (0, vue.computed)(() => ({ objectFit: props.fit })); + (0, vue.watch)(() => [props.src, props.srcSet], () => hasLoadError.value = false); + function handleError(e) { + hasLoadError.value = true; + emit("error", e); + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + class: (0, vue.normalizeClass)(avatarClass.value), + style: (0, vue.normalizeStyle)(sizeStyle.value) + }, [(__props.src || __props.srcSet) && !hasLoadError.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("img", { + key: 0, + src: __props.src, + alt: __props.alt, + srcset: __props.srcSet, + style: (0, vue.normalizeStyle)(fitStyle.value), + onError: handleError + }, null, 44, _hoisted_1$73)) : __props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 1 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + })) : (0, vue.renderSlot)(_ctx.$slots, "default", { key: 2 })], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/avatar/src/avatar.vue + var avatar_default = avatar_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/avatar/src/avatar-group-props.ts + const avatarGroupProps = { + size: { + type: definePropType([Number, String]), + values: componentSizes, + validator: (val) => isNumber(val) + }, + shape: { + type: definePropType(String), + values: ["circle", "square"] + }, + collapseAvatars: Boolean, + collapseAvatarsTooltip: Boolean, + maxCollapseAvatars: { + type: Number, + default: 1 + }, + effect: { + type: definePropType(String), + default: "light" + }, + placement: { + type: definePropType(String), + values: Ee, + default: "top" + }, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + collapseClass: String, + collapseStyle: { type: definePropType([ + String, + Array, + Object + ]) } + }; + +//#endregion +//#region ../../packages/components/avatar/src/avatar-group.tsx + var avatar_group_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAvatarGroup", + props: avatarGroupProps, + setup(props, { slots }) { + const ns = useNamespace("avatar-group"); + (0, vue.provide)(avatarGroupContextKey, (0, vue.reactive)({ + size: (0, vue.toRef)(props, "size"), + shape: (0, vue.toRef)(props, "shape") + })); + return () => { + const avatars = flattedChildren(slots.default?.() ?? []); + let visibleAvatars = avatars; + if (props.collapseAvatars && avatars.length > props.maxCollapseAvatars) { + visibleAvatars = avatars.slice(0, props.maxCollapseAvatars); + const hiddenAvatars = avatars.slice(props.maxCollapseAvatars); + visibleAvatars.push((0, vue.createVNode)(ElTooltip, { + "popperClass": props.popperClass, + "popperStyle": props.popperStyle, + "placement": props.placement, + "effect": props.effect, + "disabled": !props.collapseAvatarsTooltip + }, { + default: () => (0, vue.createVNode)(avatar_default, { + "size": props.size, + "shape": props.shape, + "class": props.collapseClass, + "style": props.collapseStyle + }, { default: () => [(0, vue.createTextVNode)("+ "), hiddenAvatars.length] }), + content: () => (0, vue.createVNode)("div", { "class": ns.e("collapse-avatars") }, [hiddenAvatars.map((node, idx) => (0, vue.isVNode)(node) ? (0, vue.cloneVNode)(node, { key: node.key ?? idx }) : node)]) + })); + } + return (0, vue.createVNode)("div", { "class": ns.b() }, [visibleAvatars]); + }; + } + }); + +//#endregion +//#region ../../packages/components/avatar/index.ts + const ElAvatar = withInstall(avatar_default, { AvatarGroup: avatar_group_default }); + const ElAvatarGroup = withNoopInstall(avatar_group_default); + +//#endregion +//#region ../../packages/components/backtop/src/backtop.ts +/** + * @deprecated Removed after 3.0.0, Use `BacktopProps` instead. + */ + const backtopProps = { + visibilityHeight: { + type: Number, + default: 200 + }, + target: { + type: String, + default: "" + }, + right: { + type: Number, + default: 40 + }, + bottom: { + type: Number, + default: 40 + } + }; + const backtopEmits = { click: (evt) => evt instanceof MouseEvent }; + +//#endregion +//#region ../../packages/components/backtop/src/use-backtop.ts + const useBackTop = (props, emit, componentName) => { + const el = (0, vue.shallowRef)(); + const container = (0, vue.shallowRef)(); + const visible = (0, vue.ref)(false); + const handleScroll = () => { + if (el.value) visible.value = el.value.scrollTop >= props.visibilityHeight; + }; + const handleClick = (event) => { + el.value?.scrollTo({ + top: 0, + behavior: "smooth" + }); + emit("click", event); + }; + useEventListener(container, "scroll", useThrottleFn(handleScroll, 300, true)); + (0, vue.onMounted)(() => { + container.value = document; + el.value = document.documentElement; + if (props.target) { + el.value = document.querySelector(props.target) ?? void 0; + if (!el.value) throwError(componentName, `target does not exist: ${props.target}`); + container.value = el.value; + } + handleScroll(); + }); + return { + visible, + handleClick + }; + }; + +//#endregion +//#region ../../packages/components/backtop/src/backtop.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$15 = "ElBacktop"; + var backtop_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$15, + __name: "backtop", + props: backtopProps, + emits: backtopEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("backtop"); + const { handleClick, visible } = useBackTop(props, emit, COMPONENT_NAME$15); + const backTopStyle = (0, vue.computed)(() => ({ + right: `${props.right}px`, + bottom: `${props.bottom}px` + })); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { name: `${(0, vue.unref)(ns).namespace.value}-fade-in` }, { + default: (0, vue.withCtx)(() => [(0, vue.unref)(visible) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + style: (0, vue.normalizeStyle)(backTopStyle.value), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)((...args) => (0, vue.unref)(handleClick) && (0, vue.unref)(handleClick)(...args), ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(caret_top_default))]), + _: 1 + }, 8, ["class"])])], 6)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, ["name"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/backtop/src/backtop.vue + var backtop_default = backtop_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/backtop/index.ts + const ElBacktop = withInstall(backtop_default); + +//#endregion +//#region ../../packages/components/badge/src/badge.ts +/** + * @deprecated Removed after 3.0.0, Use `BadgeProps` instead. + */ + const badgeProps = buildProps({ + 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: true + }, + color: String, + badgeStyle: { type: definePropType([ + String, + Object, + Array + ]) }, + offset: { + type: definePropType(Array), + default: () => [0, 0] + }, + badgeClass: { type: String } + }); + +//#endregion +//#region ../../packages/components/badge/src/badge.vue?vue&type=script&setup=true&lang.ts + var badge_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElBadge", + __name: "badge", + props: badgeProps, + setup(__props, { expose: __expose }) { + const props = __props; + const ns = useNamespace("badge"); + const content = (0, vue.computed)(() => { + if (props.isDot) return ""; + if (isNumber(props.value) && isNumber(props.max)) return props.max < props.value ? `${props.max}+` : `${props.value}`; + return `${props.value}`; + }); + const style = (0, vue.computed)(() => { + return [{ + backgroundColor: props.color, + marginRight: addUnit(-props.offset[0]), + marginTop: addUnit(props.offset[1]) + }, props.badgeStyle ?? {}]; + }); + __expose({ content }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [(0, vue.renderSlot)(_ctx.$slots, "default"), (0, vue.createVNode)(vue.Transition, { name: `${(0, vue.unref)(ns).namespace.value}-zoom-in-center` }, { + default: (0, vue.withCtx)(() => [!__props.hidden && (content.value || __props.isDot || _ctx.$slots.content) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("sup", { + key: 0, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("content"), + (0, vue.unref)(ns).em("content", __props.type), + (0, vue.unref)(ns).is("fixed", !!_ctx.$slots.default), + (0, vue.unref)(ns).is("dot", __props.isDot), + (0, vue.unref)(ns).is("hide-zero", !__props.showZero && __props.value === 0), + __props.badgeClass + ]), + style: (0, vue.normalizeStyle)(style.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "content", { value: content.value }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(content.value), 1)])], 6)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, ["name"])], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/badge/src/badge.vue + var badge_default = badge_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/badge/index.ts + const ElBadge = withInstall(badge_default); + +//#endregion +//#region ../../packages/components/breadcrumb/src/breadcrumb.ts +/** + * @deprecated Removed after 3.0.0, Use `BreadcrumbProps` instead. + */ + const breadcrumbProps = buildProps({ + separator: { + type: String, + default: "/" + }, + separatorIcon: { type: iconPropType } + }); + +//#endregion +//#region ../../packages/components/breadcrumb/src/constants.ts + const breadcrumbKey = Symbol("breadcrumbKey"); + +//#endregion +//#region ../../packages/components/breadcrumb/src/breadcrumb.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$72 = ["aria-label"]; + var breadcrumb_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElBreadcrumb", + __name: "breadcrumb", + props: breadcrumbProps, + setup(__props) { + const { t } = useLocale(); + const props = __props; + const ns = useNamespace("breadcrumb"); + const breadcrumb = (0, vue.ref)(); + (0, vue.provide)(breadcrumbKey, props); + (0, vue.onMounted)(() => { + const items = breadcrumb.value.querySelectorAll(`.${ns.e("item")}`); + if (items.length) items[items.length - 1].setAttribute("aria-current", "page"); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "breadcrumb", + ref: breadcrumb, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + "aria-label": (0, vue.unref)(t)("el.breadcrumb.label"), + role: "navigation" + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 10, _hoisted_1$72); + }; + } + }); + +//#endregion +//#region ../../packages/components/breadcrumb/src/breadcrumb.vue + var breadcrumb_default = breadcrumb_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/breadcrumb/src/breadcrumb-item.ts +/** + * @deprecated Removed after 3.0.0, Use `BreadcrumbItemProps` instead. + */ + const breadcrumbItemProps = buildProps({ + to: { + type: definePropType([String, Object]), + default: "" + }, + replace: Boolean + }); + +//#endregion +//#region ../../packages/components/breadcrumb/src/breadcrumb-item.vue?vue&type=script&setup=true&lang.ts + var breadcrumb_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElBreadcrumbItem", + __name: "breadcrumb-item", + props: breadcrumbItemProps, + setup(__props) { + const props = __props; + const instance = (0, vue.getCurrentInstance)(); + const breadcrumbContext = (0, vue.inject)(breadcrumbKey, void 0); + const ns = useNamespace("breadcrumb"); + const router = instance.appContext.config.globalProperties.$router; + const onClick = () => { + if (!props.to || !router) return; + props.replace ? router.replace(props.to) : router.push(props.to); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("item")) }, [(0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("inner"), (0, vue.unref)(ns).is("link", !!__props.to)]), + role: "link", + onClick + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2), (0, vue.unref)(breadcrumbContext)?.separatorIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("separator")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.unref)(breadcrumbContext).separatorIcon)))]), + _: 1 + }, 8, ["class"])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("separator")), + role: "presentation" + }, (0, vue.toDisplayString)((0, vue.unref)(breadcrumbContext)?.separator), 3))], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/breadcrumb/src/breadcrumb-item.vue + var breadcrumb_item_default = breadcrumb_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/breadcrumb/index.ts + const ElBreadcrumb = withInstall(breadcrumb_default, { BreadcrumbItem: breadcrumb_item_default }); + const ElBreadcrumbItem = withNoopInstall(breadcrumb_item_default); + +//#endregion +//#region ../../packages/components/button/src/button.ts + const buttonTypes = [ + "default", + "primary", + "success", + "warning", + "info", + "danger", + "text", + "" + ]; + const buttonNativeTypes = [ + "button", + "submit", + "reset" + ]; + /** + * @deprecated Removed after 3.0.0, Use `ButtonProps` instead. + */ + const buttonProps = buildProps({ + size: useSizeProp, + disabled: { + type: Boolean, + default: void 0 + }, + type: { + type: String, + values: buttonTypes, + default: "" + }, + icon: { type: iconPropType }, + nativeType: { + type: String, + values: buttonNativeTypes, + default: "button" + }, + loading: Boolean, + loadingIcon: { + type: iconPropType, + default: () => loading_default + }, + 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: definePropType([String, Object]), + default: "button" + } + }); + const buttonEmits = { click: (evt) => evt instanceof MouseEvent }; + +//#endregion +//#region ../../packages/components/button/src/constants.ts + const buttonGroupContextKey = Symbol("buttonGroupContextKey"); + +//#endregion +//#region ../../packages/components/button/src/use-button.ts + const useButton = (props, emit) => { + useDeprecated({ + from: "type.text", + replacement: "link", + version: "3.0.0", + scope: "props", + ref: "https://element-plus.org/en-US/component/button.html#button-attributes" + }, (0, vue.computed)(() => props.type === "text")); + const buttonGroupContext = (0, vue.inject)(buttonGroupContextKey, void 0); + const globalConfig = useGlobalConfig("button"); + const { form } = useFormItem(); + const _size = useFormSize((0, vue.computed)(() => buttonGroupContext?.size)); + const _disabled = useFormDisabled(); + const _ref = (0, vue.ref)(); + const slots = (0, vue.useSlots)(); + const _type = (0, vue.computed)(() => props.type || buttonGroupContext?.type || globalConfig.value?.type || ""); + const autoInsertSpace = (0, vue.computed)(() => props.autoInsertSpace ?? globalConfig.value?.autoInsertSpace ?? false); + const _plain = (0, vue.computed)(() => props.plain ?? globalConfig.value?.plain ?? false); + const _round = (0, vue.computed)(() => props.round ?? globalConfig.value?.round ?? false); + const _text = (0, vue.computed)(() => props.text ?? globalConfig.value?.text ?? false); + const _dashed = (0, vue.computed)(() => props.dashed ?? globalConfig.value?.dashed ?? false); + const _props = (0, vue.computed)(() => { + if (props.tag === "button") return { + ariaDisabled: _disabled.value || props.loading, + disabled: _disabled.value || props.loading, + autofocus: props.autofocus, + type: props.nativeType + }; + return {}; + }); + const shouldAddSpace = (0, vue.computed)(() => { + const defaultSlot = slots.default?.(); + if (autoInsertSpace.value && defaultSlot?.length === 1) { + const slot = defaultSlot[0]; + if (slot?.type === vue.Text) { + const text = slot.children; + return /^\p{Unified_Ideograph}{2}$/u.test(text.trim()); + } + } + return false; + }); + const handleClick = (evt) => { + if (_disabled.value || props.loading) { + evt.stopPropagation(); + return; + } + if (props.nativeType === "reset") form?.resetFields(); + emit("click", evt); + }; + return { + _disabled, + _size, + _type, + _ref, + _props, + _plain, + _round, + _text, + _dashed, + shouldAddSpace, + handleClick + }; + }; + +//#endregion +//#region ../../node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/module/util.js +/** + * Take input from [0, n] and return it as [0, 1] + * @hidden + */ + function bound01(n, max) { + if (isOnePointZero(n)) n = "100%"; + const isPercent = isPercentage(n); + n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n))); + if (isPercent) n = parseInt(String(n * max), 10) / 100; + if (Math.abs(n - max) < 1e-6) return 1; + if (max === 360) n = (n < 0 ? n % max + max : n % max) / parseFloat(String(max)); + else n = n % max / parseFloat(String(max)); + return n; + } + /** + * Force a number between 0 and 1 + * @hidden + */ + function clamp01(val) { + return Math.min(1, Math.max(0, val)); + } + /** + * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1 + * + * @hidden + */ + function isOnePointZero(n) { + return typeof n === "string" && n.indexOf(".") !== -1 && parseFloat(n) === 1; + } + /** + * Check to see if string passed in is a percentage + * @hidden + */ + function isPercentage(n) { + return typeof n === "string" && n.indexOf("%") !== -1; + } + /** + * Return a valid alpha value [0,1] with all invalid values being set to 1 + * @hidden + */ + function boundAlpha(a) { + a = parseFloat(a); + if (isNaN(a) || a < 0 || a > 1) a = 1; + return a; + } + /** + * Replace a decimal with it's percentage value + * @hidden + */ + function convertToPercentage(n) { + if (Number(n) <= 1) return `${Number(n) * 100}%`; + return n; + } + /** + * Force a hex value to have 2 characters + * @hidden + */ + function pad2(c) { + return c.length === 1 ? "0" + c : String(c); + } + +//#endregion +//#region ../../node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/module/conversion.js +/** + * Handle bounds / percentage checking to conform to CSS color spec + * + * *Assumes:* r, g, b in [0, 255] or [0, 1] + * *Returns:* { r, g, b } in [0, 255] + */ + function rgbToRgb(r, g, b) { + return { + r: bound01(r, 255) * 255, + g: bound01(g, 255) * 255, + b: bound01(b, 255) * 255 + }; + } + /** + * Converts an RGB color value to HSL. + * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1] + * *Returns:* { h, s, l } in [0,1] + */ + function rgbToHsl(r, g, b) { + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + const max = Math.max(r, g, b); + const min = Math.min(r, g, b); + let h = 0; + let s = 0; + const l = (max + min) / 2; + if (max === min) { + s = 0; + h = 0; + } else { + const d = max - min; + s = l > .5 ? d / (2 - max - min) : d / (max + min); + switch (max) { + case r: + h = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / d + 2; + break; + case b: + h = (r - g) / d + 4; + break; + default: break; + } + h /= 6; + } + return { + h, + s, + l + }; + } + function hue2rgb(p, q, t) { + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * (6 * t); + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; + } + /** + * Converts an HSL color value to RGB. + * + * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100] + * *Returns:* { r, g, b } in the set [0, 255] + */ + function hslToRgb(h, s, l) { + let r; + let g; + let b; + h = bound01(h, 360); + s = bound01(s, 100); + l = bound01(l, 100); + if (s === 0) { + g = l; + b = l; + r = l; + } else { + const q = l < .5 ? l * (1 + s) : l + s - l * s; + const p = 2 * l - q; + r = hue2rgb(p, q, h + 1 / 3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1 / 3); + } + return { + r: r * 255, + g: g * 255, + b: b * 255 + }; + } + /** + * Converts an RGB color value to HSV + * + * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1] + * *Returns:* { h, s, v } in [0,1] + */ + function rgbToHsv(r, g, b) { + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + const max = Math.max(r, g, b); + const min = Math.min(r, g, b); + let h = 0; + const v = max; + const d = max - min; + const s = max === 0 ? 0 : d / max; + if (max === min) h = 0; + else { + switch (max) { + case r: + h = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / d + 2; + break; + case b: + h = (r - g) / d + 4; + break; + default: break; + } + h /= 6; + } + return { + h, + s, + v + }; + } + /** + * Converts an HSV color value to RGB. + * + * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] + * *Returns:* { r, g, b } in the set [0, 255] + */ + function hsvToRgb(h, s, v) { + h = bound01(h, 360) * 6; + s = bound01(s, 100); + v = bound01(v, 100); + const i = Math.floor(h); + const f = h - i; + const p = v * (1 - s); + const q = v * (1 - f * s); + const t = v * (1 - (1 - f) * s); + const mod = i % 6; + const r = [ + v, + q, + p, + p, + t, + v + ][mod]; + const g = [ + t, + v, + v, + q, + p, + p + ][mod]; + const b = [ + p, + p, + t, + v, + v, + q + ][mod]; + return { + r: r * 255, + g: g * 255, + b: b * 255 + }; + } + /** + * Converts an RGB color to hex + * + * *Assumes:* r, g, and b are contained in the set [0, 255] + * *Returns:* a 3 or 6 character hex + */ + function rgbToHex(r, g, b, allow3Char) { + const hex = [ + pad2(Math.round(r).toString(16)), + pad2(Math.round(g).toString(16)), + pad2(Math.round(b).toString(16)) + ]; + if (allow3Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1))) return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); + return hex.join(""); + } + /** + * Converts an RGBA color plus alpha transparency to hex + * + * *Assumes:* r, g, b are contained in the set [0, 255] and a in [0, 1] + * *Returns:* a 4 or 8 character rgba hex + */ + function rgbaToHex(r, g, b, a, allow4Char) { + const hex = [ + pad2(Math.round(r).toString(16)), + pad2(Math.round(g).toString(16)), + pad2(Math.round(b).toString(16)), + pad2(convertDecimalToHex(a)) + ]; + if (allow4Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1)) && hex[3].startsWith(hex[3].charAt(1))) return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0); + return hex.join(""); + } + /** + * Converts CMYK to RBG + * Assumes c, m, y, k are in the set [0, 100] + */ + function cmykToRgb(c, m, y, k) { + const cConv = c / 100; + const mConv = m / 100; + const yConv = y / 100; + const kConv = k / 100; + return { + r: 255 * (1 - cConv) * (1 - kConv), + g: 255 * (1 - mConv) * (1 - kConv), + b: 255 * (1 - yConv) * (1 - kConv) + }; + } + function rgbToCmyk(r, g, b) { + let c = 1 - r / 255; + let m = 1 - g / 255; + let y = 1 - b / 255; + let k = Math.min(c, m, y); + if (k === 1) { + c = 0; + m = 0; + y = 0; + } else { + c = (c - k) / (1 - k) * 100; + m = (m - k) / (1 - k) * 100; + y = (y - k) / (1 - k) * 100; + } + k *= 100; + return { + c: Math.round(c), + m: Math.round(m), + y: Math.round(y), + k: Math.round(k) + }; + } + /** Converts a decimal to a hex value */ + function convertDecimalToHex(d) { + return Math.round(parseFloat(d) * 255).toString(16); + } + /** Converts a hex value to a decimal */ + function convertHexToDecimal(h) { + return parseIntFromHex(h) / 255; + } + /** Parse a base-16 hex value into a base-10 integer */ + function parseIntFromHex(val) { + return parseInt(val, 16); + } + function numberInputToObject(color) { + return { + r: color >> 16, + g: (color & 65280) >> 8, + b: color & 255 + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js +/** + * @hidden + */ + const names = { + 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" + }; + +//#endregion +//#region ../../node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/module/format-input.js +/** + * Given a string or object, convert that input to RGB + * + * Possible string inputs: + * ``` + * "red" + * "#f00" or "f00" + * "#ff0000" or "ff0000" + * "#ff000000" or "ff000000" + * "rgb 255 0 0" or "rgb (255, 0, 0)" + * "rgb 1.0 0 0" or "rgb (1, 0, 0)" + * "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1" + * "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1" + * "hsl(0, 100%, 50%)" or "hsl 0 100% 50%" + * "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1" + * "hsv(0, 100%, 100%)" or "hsv 0 100% 100%" + * "cmyk(0, 20, 0, 0)" or "cmyk 0 20 0 0" + * ``` + */ + function inputToRGB(color) { + let rgb = { + r: 0, + g: 0, + b: 0 + }; + let a = 1; + let s = null; + let v = null; + let l = null; + let ok = false; + let format = false; + if (typeof color === "string") color = stringInputToObject(color); + if (typeof color === "object") { + if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) { + rgb = rgbToRgb(color.r, color.g, color.b); + ok = true; + format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb"; + } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) { + s = convertToPercentage(color.s); + v = convertToPercentage(color.v); + rgb = hsvToRgb(color.h, s, v); + ok = true; + format = "hsv"; + } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) { + s = convertToPercentage(color.s); + l = convertToPercentage(color.l); + rgb = hslToRgb(color.h, s, l); + ok = true; + format = "hsl"; + } else if (isValidCSSUnit(color.c) && isValidCSSUnit(color.m) && isValidCSSUnit(color.y) && isValidCSSUnit(color.k)) { + rgb = cmykToRgb(color.c, color.m, color.y, color.k); + ok = true; + format = "cmyk"; + } + if (Object.prototype.hasOwnProperty.call(color, "a")) a = color.a; + } + a = boundAlpha(a); + return { + ok, + format: color.format || format, + r: Math.min(255, Math.max(rgb.r, 0)), + g: Math.min(255, Math.max(rgb.g, 0)), + b: Math.min(255, Math.max(rgb.b, 0)), + a + }; + } + const CSS_UNIT = "(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)"; + const PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?"; + const PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?"; + const matchers = { + CSS_UNIT: new RegExp(CSS_UNIT), + rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), + rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), + hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), + hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), + hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), + hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), + cmyk: new RegExp("cmyk" + PERMISSIVE_MATCH4), + 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})$/ + }; + /** + * Permissive string parsing. Take in a number of formats, and output an object + * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}` or `{c, m, y, k}` or `{c, m, y, k, a}` + */ + function stringInputToObject(color) { + color = color.trim().toLowerCase(); + if (color.length === 0) return false; + let named = false; + if (names[color]) { + color = names[color]; + named = true; + } else if (color === "transparent") return { + r: 0, + g: 0, + b: 0, + a: 0, + format: "name" + }; + let match = matchers.rgb.exec(color); + if (match) return { + r: match[1], + g: match[2], + b: match[3] + }; + match = matchers.rgba.exec(color); + if (match) return { + r: match[1], + g: match[2], + b: match[3], + a: match[4] + }; + match = matchers.hsl.exec(color); + if (match) return { + h: match[1], + s: match[2], + l: match[3] + }; + match = matchers.hsla.exec(color); + if (match) return { + h: match[1], + s: match[2], + l: match[3], + a: match[4] + }; + match = matchers.hsv.exec(color); + if (match) return { + h: match[1], + s: match[2], + v: match[3] + }; + match = matchers.hsva.exec(color); + if (match) return { + h: match[1], + s: match[2], + v: match[3], + a: match[4] + }; + match = matchers.cmyk.exec(color); + if (match) return { + c: match[1], + m: match[2], + y: match[3], + k: match[4] + }; + match = matchers.hex8.exec(color); + if (match) return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + a: convertHexToDecimal(match[4]), + format: named ? "name" : "hex8" + }; + match = matchers.hex6.exec(color); + if (match) return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + format: named ? "name" : "hex" + }; + match = matchers.hex4.exec(color); + if (match) return { + r: parseIntFromHex(match[1] + match[1]), + g: parseIntFromHex(match[2] + match[2]), + b: parseIntFromHex(match[3] + match[3]), + a: convertHexToDecimal(match[4] + match[4]), + format: named ? "name" : "hex8" + }; + match = matchers.hex3.exec(color); + if (match) return { + r: parseIntFromHex(match[1] + match[1]), + g: parseIntFromHex(match[2] + match[2]), + b: parseIntFromHex(match[3] + match[3]), + format: named ? "name" : "hex" + }; + return false; + } + /** + * Check to see if it looks like a CSS unit + * (see `matchers` above for definition). + */ + function isValidCSSUnit(color) { + if (typeof color === "number") return !Number.isNaN(color); + return matchers.CSS_UNIT.test(color); + } + +//#endregion +//#region ../../node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/module/index.js + var TinyColor = class TinyColor { + constructor(color = "", opts = {}) { + if (color instanceof TinyColor) return color; + if (typeof color === "number") color = numberInputToObject(color); + this.originalInput = color; + const rgb = inputToRGB(color); + this.originalInput = color; + this.r = rgb.r; + this.g = rgb.g; + this.b = rgb.b; + this.a = rgb.a; + this.roundA = Math.round(100 * this.a) / 100; + this.format = opts.format ?? rgb.format; + this.gradientType = opts.gradientType; + if (this.r < 1) this.r = Math.round(this.r); + if (this.g < 1) this.g = Math.round(this.g); + if (this.b < 1) this.b = Math.round(this.b); + this.isValid = rgb.ok; + } + isDark() { + return this.getBrightness() < 128; + } + isLight() { + return !this.isDark(); + } + /** + * Returns the perceived brightness of the color, from 0-255. + */ + getBrightness() { + const rgb = this.toRgb(); + return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1e3; + } + /** + * Returns the perceived luminance of a color, from 0-1. + */ + getLuminance() { + const rgb = this.toRgb(); + let R; + let G; + let B; + const RsRGB = rgb.r / 255; + const GsRGB = rgb.g / 255; + const BsRGB = rgb.b / 255; + if (RsRGB <= .03928) R = RsRGB / 12.92; + else R = Math.pow((RsRGB + .055) / 1.055, 2.4); + if (GsRGB <= .03928) G = GsRGB / 12.92; + else G = Math.pow((GsRGB + .055) / 1.055, 2.4); + if (BsRGB <= .03928) B = BsRGB / 12.92; + else B = Math.pow((BsRGB + .055) / 1.055, 2.4); + return .2126 * R + .7152 * G + .0722 * B; + } + /** + * Returns the alpha value of a color, from 0-1. + */ + getAlpha() { + return this.a; + } + /** + * Sets the alpha value on the current color. + * + * @param alpha - The new alpha value. The accepted range is 0-1. + */ + setAlpha(alpha) { + this.a = boundAlpha(alpha); + this.roundA = Math.round(100 * this.a) / 100; + return this; + } + /** + * Returns whether the color is monochrome. + */ + isMonochrome() { + const { s } = this.toHsl(); + return s === 0; + } + /** + * Returns the object as a HSVA object. + */ + toHsv() { + const hsv = rgbToHsv(this.r, this.g, this.b); + return { + h: hsv.h * 360, + s: hsv.s, + v: hsv.v, + a: this.a + }; + } + /** + * Returns the hsva values interpolated into a string with the following format: + * "hsva(xxx, xxx, xxx, xx)". + */ + toHsvString() { + const hsv = rgbToHsv(this.r, this.g, this.b); + const h = Math.round(hsv.h * 360); + const s = Math.round(hsv.s * 100); + const v = Math.round(hsv.v * 100); + return this.a === 1 ? `hsv(${h}, ${s}%, ${v}%)` : `hsva(${h}, ${s}%, ${v}%, ${this.roundA})`; + } + /** + * Returns the object as a HSLA object. + */ + toHsl() { + const hsl = rgbToHsl(this.r, this.g, this.b); + return { + h: hsl.h * 360, + s: hsl.s, + l: hsl.l, + a: this.a + }; + } + /** + * Returns the hsla values interpolated into a string with the following format: + * "hsla(xxx, xxx, xxx, xx)". + */ + toHslString() { + const hsl = rgbToHsl(this.r, this.g, this.b); + const h = Math.round(hsl.h * 360); + const s = Math.round(hsl.s * 100); + const l = Math.round(hsl.l * 100); + return this.a === 1 ? `hsl(${h}, ${s}%, ${l}%)` : `hsla(${h}, ${s}%, ${l}%, ${this.roundA})`; + } + /** + * Returns the hex value of the color. + * @param allow3Char will shorten hex value to 3 char if possible + */ + toHex(allow3Char = false) { + return rgbToHex(this.r, this.g, this.b, allow3Char); + } + /** + * Returns the hex value of the color -with a # prefixed. + * @param allow3Char will shorten hex value to 3 char if possible + */ + toHexString(allow3Char = false) { + return "#" + this.toHex(allow3Char); + } + /** + * Returns the hex 8 value of the color. + * @param allow4Char will shorten hex value to 4 char if possible + */ + toHex8(allow4Char = false) { + return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char); + } + /** + * Returns the hex 8 value of the color -with a # prefixed. + * @param allow4Char will shorten hex value to 4 char if possible + */ + toHex8String(allow4Char = false) { + return "#" + this.toHex8(allow4Char); + } + /** + * Returns the shorter hex value of the color depends on its alpha -with a # prefixed. + * @param allowShortChar will shorten hex value to 3 or 4 char if possible + */ + toHexShortString(allowShortChar = false) { + return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar); + } + /** + * Returns the object as a RGBA object. + */ + toRgb() { + return { + r: Math.round(this.r), + g: Math.round(this.g), + b: Math.round(this.b), + a: this.a + }; + } + /** + * Returns the RGBA values interpolated into a string with the following format: + * "RGBA(xxx, xxx, xxx, xx)". + */ + toRgbString() { + const r = Math.round(this.r); + const g = Math.round(this.g); + const b = Math.round(this.b); + return this.a === 1 ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${this.roundA})`; + } + /** + * Returns the object as a RGBA object. + */ + toPercentageRgb() { + const fmt = (x) => `${Math.round(bound01(x, 255) * 100)}%`; + return { + r: fmt(this.r), + g: fmt(this.g), + b: fmt(this.b), + a: this.a + }; + } + /** + * Returns the RGBA relative values interpolated into a string + */ + toPercentageRgbString() { + const rnd = (x) => Math.round(bound01(x, 255) * 100); + return this.a === 1 ? `rgb(${rnd(this.r)}%, ${rnd(this.g)}%, ${rnd(this.b)}%)` : `rgba(${rnd(this.r)}%, ${rnd(this.g)}%, ${rnd(this.b)}%, ${this.roundA})`; + } + toCmyk() { + return { ...rgbToCmyk(this.r, this.g, this.b) }; + } + toCmykString() { + const { c, m, y, k } = rgbToCmyk(this.r, this.g, this.b); + return `cmyk(${c}, ${m}, ${y}, ${k})`; + } + /** + * The 'real' name of the color -if there is one. + */ + toName() { + if (this.a === 0) return "transparent"; + if (this.a < 1) return false; + const hex = "#" + rgbToHex(this.r, this.g, this.b, false); + for (const [key, value] of Object.entries(names)) if (hex === value) return key; + return false; + } + toString(format) { + const formatSet = Boolean(format); + format = format ?? this.format; + let formattedString = false; + const hasAlpha = this.a < 1 && this.a >= 0; + if (!formatSet && hasAlpha && (format.startsWith("hex") || format === "name")) { + if (format === "name" && this.a === 0) return this.toName(); + return this.toRgbString(); + } + if (format === "rgb") formattedString = this.toRgbString(); + if (format === "prgb") formattedString = this.toPercentageRgbString(); + if (format === "hex" || format === "hex6") formattedString = this.toHexString(); + if (format === "hex3") formattedString = this.toHexString(true); + if (format === "hex4") formattedString = this.toHex8String(true); + if (format === "hex8") formattedString = this.toHex8String(); + if (format === "name") formattedString = this.toName(); + if (format === "hsl") formattedString = this.toHslString(); + if (format === "hsv") formattedString = this.toHsvString(); + if (format === "cmyk") formattedString = this.toCmykString(); + return formattedString || this.toHexString(); + } + toNumber() { + return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b); + } + clone() { + return new TinyColor(this.toString()); + } + /** + * Lighten the color a given amount. Providing 100 will always return white. + * @param amount - valid between 1-100 + */ + lighten(amount = 10) { + const hsl = this.toHsl(); + hsl.l += amount / 100; + hsl.l = clamp01(hsl.l); + return new TinyColor(hsl); + } + /** + * Brighten the color a given amount, from 0 to 100. + * @param amount - valid between 1-100 + */ + brighten(amount = 10) { + const rgb = this.toRgb(); + rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100)))); + rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100)))); + rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100)))); + return new TinyColor(rgb); + } + /** + * Darken the color a given amount, from 0 to 100. + * Providing 100 will always return black. + * @param amount - valid between 1-100 + */ + darken(amount = 10) { + const hsl = this.toHsl(); + hsl.l -= amount / 100; + hsl.l = clamp01(hsl.l); + return new TinyColor(hsl); + } + /** + * Mix the color with pure white, from 0 to 100. + * Providing 0 will do nothing, providing 100 will always return white. + * @param amount - valid between 1-100 + */ + tint(amount = 10) { + return this.mix("white", amount); + } + /** + * Mix the color with pure black, from 0 to 100. + * Providing 0 will do nothing, providing 100 will always return black. + * @param amount - valid between 1-100 + */ + shade(amount = 10) { + return this.mix("black", amount); + } + /** + * Desaturate the color a given amount, from 0 to 100. + * Providing 100 will is the same as calling greyscale + * @param amount - valid between 1-100 + */ + desaturate(amount = 10) { + const hsl = this.toHsl(); + hsl.s -= amount / 100; + hsl.s = clamp01(hsl.s); + return new TinyColor(hsl); + } + /** + * Saturate the color a given amount, from 0 to 100. + * @param amount - valid between 1-100 + */ + saturate(amount = 10) { + const hsl = this.toHsl(); + hsl.s += amount / 100; + hsl.s = clamp01(hsl.s); + return new TinyColor(hsl); + } + /** + * Completely desaturates a color into greyscale. + * Same as calling `desaturate(100)` + */ + greyscale() { + return this.desaturate(100); + } + /** + * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue. + * Values outside of this range will be wrapped into this range. + */ + spin(amount) { + const hsl = this.toHsl(); + const hue = (hsl.h + amount) % 360; + hsl.h = hue < 0 ? 360 + hue : hue; + return new TinyColor(hsl); + } + /** + * Mix the current color a given amount with another color, from 0 to 100. + * 0 means no mixing (return current color). + */ + mix(color, amount = 50) { + const rgb1 = this.toRgb(); + const rgb2 = new TinyColor(color).toRgb(); + const p = amount / 100; + return new TinyColor({ + r: (rgb2.r - rgb1.r) * p + rgb1.r, + g: (rgb2.g - rgb1.g) * p + rgb1.g, + b: (rgb2.b - rgb1.b) * p + rgb1.b, + a: (rgb2.a - rgb1.a) * p + rgb1.a + }); + } + analogous(results = 6, slices = 30) { + const hsl = this.toHsl(); + const part = 360 / slices; + const ret = [this]; + for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) { + hsl.h = (hsl.h + part) % 360; + ret.push(new TinyColor(hsl)); + } + return ret; + } + /** + * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js + */ + complement() { + const hsl = this.toHsl(); + hsl.h = (hsl.h + 180) % 360; + return new TinyColor(hsl); + } + monochromatic(results = 6) { + const hsv = this.toHsv(); + const { h } = hsv; + const { s } = hsv; + let { v } = hsv; + const res = []; + const modification = 1 / results; + while (results--) { + res.push(new TinyColor({ + h, + s, + v + })); + v = (v + modification) % 1; + } + return res; + } + splitcomplement() { + const hsl = this.toHsl(); + const { h } = hsl; + return [ + this, + new TinyColor({ + h: (h + 72) % 360, + s: hsl.s, + l: hsl.l + }), + new TinyColor({ + h: (h + 216) % 360, + s: hsl.s, + l: hsl.l + }) + ]; + } + /** + * Compute how the color would appear on a background + */ + onBackground(background) { + const fg = this.toRgb(); + const bg = new TinyColor(background).toRgb(); + const alpha = fg.a + bg.a * (1 - fg.a); + return new TinyColor({ + r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha, + g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha, + b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha, + a: alpha + }); + } + /** + * Alias for `polyad(3)` + */ + triad() { + return this.polyad(3); + } + /** + * Alias for `polyad(4)` + */ + tetrad() { + return this.polyad(4); + } + /** + * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...) + * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc... + */ + polyad(n) { + const hsl = this.toHsl(); + const { h } = hsl; + const result = [this]; + const increment = 360 / n; + for (let i = 1; i < n; i++) result.push(new TinyColor({ + h: (h + i * increment) % 360, + s: hsl.s, + l: hsl.l + })); + return result; + } + /** + * compare color vs current color + */ + equals(color) { + const comparedColor = new TinyColor(color); + /** + * RGB and CMYK do not have the same color gamut, so a CMYK conversion will never be 100%. + * This means we need to compare CMYK to CMYK to ensure accuracy of the equals function. + */ + if (this.format === "cmyk" || comparedColor.format === "cmyk") return this.toCmykString() === comparedColor.toCmykString(); + return this.toRgbString() === comparedColor.toRgbString(); + } + }; + +//#endregion +//#region ../../packages/components/button/src/button-custom.ts + function darken(color, amount = 20) { + return color.mix("#141414", amount).toString(); + } + function useButtonCustomStyle(props) { + const _disabled = useFormDisabled(); + const ns = useNamespace("button"); + return (0, vue.computed)(() => { + let styles = {}; + let buttonColor = props.color; + if (buttonColor) { + const match = buttonColor.match(/var\((.*?)\)/); + if (match) buttonColor = window.getComputedStyle(window.document.documentElement).getPropertyValue(match[1]); + const color = new TinyColor(buttonColor); + const activeBgColor = props.dark ? color.tint(20).toString() : darken(color, 20); + if (props.plain) { + styles = ns.cssVarBlock({ + "bg-color": props.dark ? darken(color, 90) : color.tint(90).toString(), + "text-color": buttonColor, + "border-color": props.dark ? darken(color, 50) : color.tint(50).toString(), + "hover-text-color": `var(${ns.cssVarName("color-white")})`, + "hover-bg-color": buttonColor, + "hover-border-color": buttonColor, + "active-bg-color": activeBgColor, + "active-text-color": `var(${ns.cssVarName("color-white")})`, + "active-border-color": activeBgColor + }); + if (_disabled.value) { + styles[ns.cssVarBlockName("disabled-bg-color")] = props.dark ? darken(color, 90) : color.tint(90).toString(); + styles[ns.cssVarBlockName("disabled-text-color")] = props.dark ? darken(color, 50) : color.tint(50).toString(); + styles[ns.cssVarBlockName("disabled-border-color")] = props.dark ? darken(color, 80) : color.tint(80).toString(); + } + } else if (props.link || props.text) { + const hoverColor = props.dark ? darken(color, 30) : color.tint(30).toString(); + styles = ns.cssVarBlock({ + "text-color": buttonColor, + "hover-text-color": hoverColor, + "active-text-color": activeBgColor + }); + if (props.link) { + styles[ns.cssVarBlockName("hover-link-text-color")] = hoverColor; + styles[ns.cssVarBlockName("active-color")] = activeBgColor; + } + if (_disabled.value) { + const disabledColor = props.dark ? darken(color, 50) : color.tint(50).toString(); + styles[ns.cssVarBlockName("disabled-bg-color")] = "transparent"; + styles[ns.cssVarBlockName("disabled-text-color")] = disabledColor; + styles[ns.cssVarBlockName("disabled-border-color")] = "transparent"; + } + } else { + const hoverBgColor = props.dark ? darken(color, 30) : color.tint(30).toString(); + const textColor = color.isDark() ? `var(${ns.cssVarName("color-white")})` : `var(${ns.cssVarName("color-black")})`; + styles = ns.cssVarBlock({ + "bg-color": buttonColor, + "text-color": textColor, + "border-color": buttonColor, + "hover-bg-color": hoverBgColor, + "hover-text-color": textColor, + "hover-border-color": hoverBgColor, + "active-bg-color": activeBgColor, + "active-border-color": activeBgColor + }); + if (_disabled.value) { + const disabledButtonColor = props.dark ? darken(color, 50) : color.tint(50).toString(); + styles[ns.cssVarBlockName("disabled-bg-color")] = disabledButtonColor; + styles[ns.cssVarBlockName("disabled-text-color")] = props.dark ? "rgba(255, 255, 255, 0.5)" : `var(${ns.cssVarName("color-white")})`; + styles[ns.cssVarBlockName("disabled-border-color")] = disabledButtonColor; + } + } + } + return styles; + }); + } + +//#endregion +//#region ../../packages/components/button/src/button.vue?vue&type=script&setup=true&lang.ts + var button_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElButton", + __name: "button", + props: buttonProps, + emits: buttonEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const buttonStyle = useButtonCustomStyle(props); + const ns = useNamespace("button"); + const { _ref, _size, _type, _disabled, _props, _plain, _round, _text, _dashed, shouldAddSpace, handleClick } = useButton(props, emit); + const buttonKls = (0, vue.computed)(() => [ + ns.b(), + ns.m(_type.value), + ns.m(_size.value), + ns.is("disabled", _disabled.value), + ns.is("loading", props.loading), + ns.is("plain", _plain.value), + ns.is("round", _round.value), + ns.is("circle", props.circle), + ns.is("text", _text.value), + ns.is("dashed", _dashed.value), + ns.is("link", props.link), + ns.is("has-bg", props.bg) + ]); + __expose({ + ref: _ref, + size: _size, + type: _type, + disabled: _disabled, + shouldAddSpace + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.tag), (0, vue.mergeProps)({ + ref_key: "_ref", + ref: _ref + }, (0, vue.unref)(_props), { + class: buttonKls.value, + style: (0, vue.unref)(buttonStyle), + onClick: (0, vue.unref)(handleClick) + }), { + default: (0, vue.withCtx)(() => [__props.loading ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [_ctx.$slots.loading ? (0, vue.renderSlot)(_ctx.$slots, "loading", { key: 0 }) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).is("loading")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.loadingIcon)))]), + _: 1 + }, 8, ["class"]))], 64)) : __props.icon || _ctx.$slots.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 1 }, { + default: (0, vue.withCtx)(() => [__props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon), { key: 0 })) : (0, vue.renderSlot)(_ctx.$slots, "icon", { key: 1 })]), + _: 3 + })) : (0, vue.createCommentVNode)("v-if", true), _ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 2, + class: (0, vue.normalizeClass)({ [(0, vue.unref)(ns).em("text", "expand")]: (0, vue.unref)(shouldAddSpace) }) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 16, [ + "class", + "style", + "onClick" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/button/src/button.vue + var button_default$1 = button_vue_vue_type_script_setup_true_lang_default$1; + +//#endregion +//#region ../../packages/components/button/src/button-group.ts +/** + * @deprecated Removed after 3.0.0, Use `ButtonGroupProps` instead. + */ + const buttonGroupProps = { + size: buttonProps.size, + type: buttonProps.type, + direction: { + type: definePropType(String), + values: ["horizontal", "vertical"], + default: "horizontal" + } + }; + +//#endregion +//#region ../../packages/components/button/src/button-group.vue?vue&type=script&setup=true&lang.ts + var button_group_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElButtonGroup", + __name: "button-group", + props: buttonGroupProps, + setup(__props) { + const props = __props; + (0, vue.provide)(buttonGroupContextKey, (0, vue.reactive)({ + size: (0, vue.toRef)(props, "size"), + type: (0, vue.toRef)(props, "type") + })); + const ns = useNamespace("button"); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("group"), (0, vue.unref)(ns).bm("group", props.direction)]) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/button/src/button-group.vue + var button_group_default = button_group_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/button/index.ts + const ElButton = withInstall(button_default$1, { ButtonGroup: button_group_default }); + const ElButtonGroup = withNoopInstall(button_group_default); + +//#endregion +//#region ../../packages/components/calendar/src/calendar.ts + const isValidRange$1 = (range) => isArray$1(range) && range.length === 2 && range.every((item) => isDate(item)); + /** + * @deprecated Removed after 3.0.0, Use `CalendarProps` instead. + */ + const calendarProps = buildProps({ + modelValue: { type: Date }, + range: { + type: definePropType(Array), + validator: isValidRange$1 + }, + controllerType: { + type: String, + values: ["button", "select"], + default: "button" + }, + formatter: { type: definePropType(Function) } + }); + const calendarEmits = { + [UPDATE_MODEL_EVENT]: (value) => isDate(value), + [INPUT_EVENT]: (value) => isDate(value) + }; + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js + var require_dayjs_min = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(t, e) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).dayjs = e(); + })(exports, (function() { + "use strict"; + var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", c = "month", f = "quarter", h = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { + 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(t) { + var e = [ + "th", + "st", + "nd", + "rd" + ], n = t % 100; + return "[" + t + (e[(n - 20) % 10] || e[n] || e[0]) + "]"; + } + }, m = function(t, e, n) { + var r = String(t); + return !r || r.length >= e ? t : "" + Array(e + 1 - r.length).join(n) + t; + }, v = { + s: m, + z: function(t) { + var e = -t.utcOffset(), n = Math.abs(e), r = Math.floor(n / 60), i = n % 60; + return (e <= 0 ? "+" : "-") + m(r, 2, "0") + ":" + m(i, 2, "0"); + }, + m: function t(e, n) { + if (e.date() < n.date()) return -t(n, e); + var r = 12 * (n.year() - e.year()) + (n.month() - e.month()), i = e.clone().add(r, c), s = n - i < 0, u = e.clone().add(r + (s ? -1 : 1), c); + return +(-(r + (n - i) / (s ? i - u : u - i)) || 0); + }, + a: function(t) { + return t < 0 ? Math.ceil(t) || 0 : Math.floor(t); + }, + p: function(t) { + return { + M: c, + y: h, + w: o, + d: a, + D: d, + h: u, + m: s, + s: i, + ms: r, + Q: f + }[t] || String(t || "").toLowerCase().replace(/s$/, ""); + }, + u: function(t) { + return void 0 === t; + } + }, g = "en", D = {}; + D[g] = M; + var p = "$isDayjsObject", S = function(t) { + return t instanceof _ || !(!t || !t[p]); + }, w = function t(e, n, r) { + var i; + if (!e) return g; + if ("string" == typeof e) { + var s = e.toLowerCase(); + D[s] && (i = s), n && (D[s] = n, i = s); + var u = e.split("-"); + if (!i && u.length > 1) return t(u[0]); + } else { + var a = e.name; + D[a] = e, i = a; + } + return !r && i && (g = i), i || !r && g; + }, O = function(t, e) { + if (S(t)) return t.clone(); + var n = "object" == typeof e ? e : {}; + return n.date = t, n.args = arguments, new _(n); + }, b = v; + b.l = w, b.i = S, b.w = function(t, e) { + return O(t, { + locale: e.$L, + utc: e.$u, + x: e.$x, + $offset: e.$offset + }); + }; + var _ = function() { + function M(t) { + this.$L = w(t.locale, null, !0), this.parse(t), this.$x = this.$x || t.x || {}, this[p] = !0; + } + var m = M.prototype; + return m.parse = function(t) { + this.$d = function(t) { + var e = t.date, n = t.utc; + if (null === e) return /* @__PURE__ */ new Date(NaN); + if (b.u(e)) return /* @__PURE__ */ new Date(); + if (e instanceof Date) return new Date(e); + if ("string" == typeof e && !/Z$/i.test(e)) { + var r = e.match($); + if (r) { + var i = r[2] - 1 || 0, s = (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, s)) : new Date(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s); + } + } + return new Date(e); + }(t), this.init(); + }, m.init = function() { + var t = this.$d; + this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t.getDay(), this.$H = t.getHours(), this.$m = t.getMinutes(), this.$s = t.getSeconds(), this.$ms = t.getMilliseconds(); + }, m.$utils = function() { + return b; + }, m.isValid = function() { + return !(this.$d.toString() === l); + }, m.isSame = function(t, e) { + var n = O(t); + return this.startOf(e) <= n && n <= this.endOf(e); + }, m.isAfter = function(t, e) { + return O(t) < this.startOf(e); + }, m.isBefore = function(t, e) { + return this.endOf(e) < O(t); + }, m.$g = function(t, e, n) { + return b.u(t) ? this[e] : this.set(n, t); + }, m.unix = function() { + return Math.floor(this.valueOf() / 1e3); + }, m.valueOf = function() { + return this.$d.getTime(); + }, m.startOf = function(t, e) { + var n = this, r = !!b.u(e) || e, f = b.p(t), l = function(t, e) { + var i = b.w(n.$u ? Date.UTC(n.$y, e, t) : new Date(n.$y, e, t), n); + return r ? i : i.endOf(a); + }, $ = function(t, e) { + return b.w(n.toDate()[t].apply(n.toDate("s"), (r ? [ + 0, + 0, + 0, + 0 + ] : [ + 23, + 59, + 59, + 999 + ]).slice(e)), n); + }, y = this.$W, M = this.$M, m = this.$D, v = "set" + (this.$u ? "UTC" : ""); + switch (f) { + case h: return r ? l(1, 0) : l(31, 11); + case c: return r ? l(1, M) : l(0, M + 1); + case o: + var g = this.$locale().weekStart || 0, D = (y < g ? y + 7 : y) - g; + return l(r ? m - D : m + (6 - D), M); + case a: + case d: return $(v + "Hours", 0); + case u: return $(v + "Minutes", 1); + case s: return $(v + "Seconds", 2); + case i: return $(v + "Milliseconds", 3); + default: return this.clone(); + } + }, m.endOf = function(t) { + return this.startOf(t, !1); + }, m.$set = function(t, e) { + var n, o = b.p(t), f = "set" + (this.$u ? "UTC" : ""), l = (n = {}, n[a] = f + "Date", n[d] = f + "Date", n[c] = f + "Month", n[h] = f + "FullYear", n[u] = f + "Hours", n[s] = f + "Minutes", n[i] = f + "Seconds", n[r] = f + "Milliseconds", n)[o], $ = o === a ? this.$D + (e - this.$W) : e; + if (o === c || o === h) { + var y = this.clone().set(d, 1); + y.$d[l]($), y.init(), this.$d = y.set(d, Math.min(this.$D, y.daysInMonth())).$d; + } else l && this.$d[l]($); + return this.init(), this; + }, m.set = function(t, e) { + return this.clone().$set(t, e); + }, m.get = function(t) { + return this[b.p(t)](); + }, m.add = function(r, f) { + var d, l = this; + r = Number(r); + var $ = b.p(f), y = function(t) { + var e = O(l); + return b.w(e.date(e.date() + Math.round(t * r)), l); + }; + if ($ === c) return this.set(c, this.$M + r); + if ($ === h) return this.set(h, this.$y + r); + if ($ === a) return y(1); + if ($ === o) return y(7); + var M = (d = {}, d[s] = e, d[u] = n, d[i] = t, d)[$] || 1, m = this.$d.getTime() + r * M; + return b.w(m, this); + }, m.subtract = function(t, e) { + return this.add(-1 * t, e); + }, m.format = function(t) { + var e = this, n = this.$locale(); + if (!this.isValid()) return n.invalidDate || l; + var r = t || "YYYY-MM-DDTHH:mm:ssZ", i = b.z(this), s = this.$H, u = this.$m, a = this.$M, o = n.weekdays, c = n.months, f = n.meridiem, h = function(t, n, i, s) { + return t && (t[n] || t(e, r)) || i[n].slice(0, s); + }, d = function(t) { + return b.s(s % 12 || 12, t, "0"); + }, $ = f || function(t, e, n) { + var r = t < 12 ? "AM" : "PM"; + return n ? r.toLowerCase() : r; + }; + return r.replace(y, (function(t, r) { + return r || function(t) { + switch (t) { + case "YY": return String(e.$y).slice(-2); + case "YYYY": return b.s(e.$y, 4, "0"); + case "M": return a + 1; + case "MM": return b.s(a + 1, 2, "0"); + case "MMM": return h(n.monthsShort, a, c, 3); + case "MMMM": return h(c, a); + case "D": return e.$D; + case "DD": return b.s(e.$D, 2, "0"); + case "d": return String(e.$W); + case "dd": return h(n.weekdaysMin, e.$W, o, 2); + case "ddd": return h(n.weekdaysShort, e.$W, o, 3); + case "dddd": return o[e.$W]; + case "H": return String(s); + case "HH": return b.s(s, 2, "0"); + case "h": return d(1); + case "hh": return d(2); + case "a": return $(s, u, !0); + case "A": return $(s, u, !1); + case "m": return String(u); + case "mm": return b.s(u, 2, "0"); + case "s": return String(e.$s); + case "ss": return b.s(e.$s, 2, "0"); + case "SSS": return b.s(e.$ms, 3, "0"); + case "Z": return i; + } + return null; + }(t) || i.replace(":", ""); + })); + }, m.utcOffset = function() { + return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); + }, m.diff = function(r, d, l) { + var $, y = this, M = b.p(d), m = O(r), v = (m.utcOffset() - this.utcOffset()) * e, g = this - m, D = function() { + return b.m(y, m); + }; + switch (M) { + case h: + $ = D() / 12; + break; + case c: + $ = D(); + break; + case f: + $ = D() / 3; + break; + case o: + $ = (g - v) / 6048e5; + break; + case a: + $ = (g - v) / 864e5; + break; + case u: + $ = g / n; + break; + case s: + $ = g / e; + break; + case i: + $ = g / t; + break; + default: $ = g; + } + return l ? $ : b.a($); + }, m.daysInMonth = function() { + return this.endOf(c).$D; + }, m.$locale = function() { + return D[this.$L]; + }, m.locale = function(t, e) { + if (!t) return this.$L; + var n = this.clone(), r = w(t, e, !0); + return r && (n.$L = r), n; + }, m.clone = function() { + return b.w(this.$d, this); + }, m.toDate = function() { + return new Date(this.valueOf()); + }, m.toJSON = function() { + return this.isValid() ? this.toISOString() : null; + }, m.toISOString = function() { + return this.$d.toISOString(); + }, m.toString = function() { + return this.$d.toUTCString(); + }, M; + }(), k = _.prototype; + return O.prototype = k, [ + ["$ms", r], + ["$s", i], + ["$m", s], + ["$H", u], + ["$W", a], + ["$M", c], + ["$y", h], + ["$D", d] + ].forEach((function(t) { + k[t[1]] = function(e) { + return this.$g(e, t[0], t[1]); + }; + })), O.extend = function(t, e) { + return t.$i || (t(e, _, O), t.$i = !0), O; + }, O.locale = w, O.isDayjs = S, O.unix = function(t) { + return O(1e3 * t); + }, O.en = D[g], O.Ls = D, O.p = {}, O; + })); + })); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/customParseFormat.js + var require_customParseFormat = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, t) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_customParseFormat = t(); + })(exports, (function() { + "use strict"; + 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?/, o = /\d*[^-_:/,()\s\d]+/, s = {}, a = function(e) { + return (e = +e) + (e > 68 ? 1900 : 2e3); + }; + var f = function(e) { + return function(t) { + this[e] = +t; + }; + }, h = [/[+-]\d\d:?(\d\d)?|Z/, function(e) { + (this.zone || (this.zone = {})).offset = function(e) { + if (!e) return 0; + if ("Z" === e) return 0; + var t = e.match(/([+-]|\d\d)/g), n = 60 * t[1] + (+t[2] || 0); + return 0 === n ? 0 : "+" === t[0] ? -n : n; + }(e); + }], u = function(e) { + var t = s[e]; + return t && (t.indexOf ? t : t.s.concat(t.f)); + }, d = function(e, t) { + var n, r = s.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; + }, c = { + A: [o, function(e) { + this.afternoon = d(e, !1); + }], + a: [o, 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, f("seconds")], + ss: [i, f("seconds")], + m: [i, f("minutes")], + mm: [i, f("minutes")], + H: [i, f("hours")], + h: [i, f("hours")], + HH: [i, f("hours")], + hh: [i, f("hours")], + D: [i, f("day")], + DD: [r, f("day")], + Do: [o, function(e) { + var t = s.ordinal; + if (this.day = e.match(/\d+/)[0], t) for (var r = 1; r <= 31; r += 1) t(r).replace(/\[|\]/g, "") === e && (this.day = r); + }], + w: [i, f("week")], + ww: [r, f("week")], + M: [i, f("month")], + MM: [r, f("month")], + MMM: [o, 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 new Error(); + this.month = n % 12 || n; + }], + MMMM: [o, function(e) { + var t = u("months").indexOf(e) + 1; + if (t < 1) throw new Error(); + this.month = t % 12 || t; + }], + Y: [/[+-]?\d+/, f("year")], + YY: [r, function(e) { + this.year = a(e); + }], + YYYY: [/\d{4}/, f("year")], + Z: h, + ZZ: h + }; + function l(n) { + var r = n, i = s && s.formats; + for (var o = (n = r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, (function(t, n, r) { + var o = r && r.toUpperCase(); + return n || i[r] || e[r] || i[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, (function(e, t, n) { + return t || n.slice(1); + })); + }))).match(t), a = o.length, f = 0; f < a; f += 1) { + var h = o[f], u = c[h], d = u && u[0], l = u && u[1]; + o[f] = l ? { + regex: d, + parser: l + } : h.replace(/^\[|\]$/g, ""); + } + return function(e) { + for (var t = {}, n = 0, r = 0; n < a; n += 1) { + var i = o[n]; + if ("string" == typeof i) r += i.length; + else { + var s = i.regex, f = i.parser, h = e.slice(r), u = s.exec(h)[0]; + f.call(t, u), e = e.replace(u, ""); + } + } + return function(e) { + var t = e.afternoon; + if (void 0 !== t) { + var n = e.hours; + t ? n < 12 && (e.hours += 12) : 12 === n && (e.hours = 0), delete e.afternoon; + } + }(t), t; + }; + } + return function(e, t, n) { + n.p.customParseFormat = !0, e && e.parseTwoDigitYear && (a = e.parseTwoDigitYear); + var r = t.prototype, i = r.parse; + r.parse = function(e) { + var t = e.date, r = e.utc, o = e.args; + this.$u = r; + var a = o[1]; + if ("string" == typeof a) { + var f = !0 === o[2], h = !0 === o[3], u = f || h, d = o[2]; + h && (d = o[2]), s = this.$locale(), !f && d && (s = n.Ls[d]), this.$d = function(e, t, n, r) { + try { + if (["x", "X"].indexOf(t) > -1) return /* @__PURE__ */ new Date(("X" === t ? 1e3 : 1) * e); + var i = l(t)(e), o = i.year, s = i.month, a = i.day, f = i.hours, h = i.minutes, u = i.seconds, d = i.milliseconds, c = i.zone, m = i.week, M = /* @__PURE__ */ new Date(), Y = a || (o || s ? 1 : M.getDate()), p = o || M.getFullYear(), v = 0; + o && !s || (v = s > 0 ? s - 1 : M.getMonth()); + var D, w = f || 0, g = h || 0, y = u || 0, L = d || 0; + return c ? new Date(Date.UTC(p, v, Y, w, g, y, L + 60 * c.offset * 1e3)) : n ? new Date(Date.UTC(p, v, Y, w, g, y, L)) : (D = new Date(p, v, Y, w, g, y, L), m && (D = r(D).week(m).toDate()), D); + } catch (e) { + return /* @__PURE__ */ new Date(""); + } + }(t, a, r, n), this.init(), d && !0 !== d && (this.$L = this.locale(d).$L), u && t != this.format(a) && (this.$d = /* @__PURE__ */ new Date("")), s = {}; + } else if (a instanceof Array) for (var c = a.length, m = 1; m <= c; m += 1) { + o[1] = a[m - 1]; + var M = n.apply(this, o); + if (M.isValid()) { + this.$d = M.$d, this.$L = M.$L, this.init(); + break; + } + m === c && (this.$d = /* @__PURE__ */ new Date("")); + } + else i.call(this, e); + }; + }; + })); + })); + +//#endregion +//#region ../../packages/components/time-picker/src/constants.ts +var import_customParseFormat = /* @__PURE__ */ __toESM(require_customParseFormat()); +var import_dayjs_min = /* @__PURE__ */ __toESM(require_dayjs_min()); + const timeUnits = [ + "hours", + "minutes", + "seconds" + ]; + const PICKER_BASE_INJECTION_KEY = "EP_PICKER_BASE"; + const PICKER_POPPER_OPTIONS_INJECTION_KEY = "ElPopperOptions"; + const ROOT_COMMON_PICKER_INJECTION_KEY = Symbol("commonPickerContextKey"); + const DEFAULT_FORMATS_TIME = "HH:mm:ss"; + const DEFAULT_FORMATS_DATE = "YYYY-MM-DD"; + const DEFAULT_FORMATS_DATEPICKER = { + date: DEFAULT_FORMATS_DATE, + dates: DEFAULT_FORMATS_DATE, + week: "gggg[w]ww", + year: "YYYY", + years: "YYYY", + month: "YYYY-MM", + months: "YYYY-MM", + datetime: `${DEFAULT_FORMATS_DATE} ${DEFAULT_FORMATS_TIME}`, + monthrange: "YYYY-MM", + yearrange: "YYYY", + daterange: DEFAULT_FORMATS_DATE, + datetimerange: `${DEFAULT_FORMATS_DATE} ${DEFAULT_FORMATS_TIME}` + }; + +//#endregion +//#region ../../packages/components/time-picker/src/utils.ts + const buildTimeList = (value, bound) => { + return [ + value > 0 ? value - 1 : void 0, + value, + value < bound ? value + 1 : void 0 + ]; + }; + const rangeArr = (n) => Array.from(Array.from({ length: n }).keys()); + const extractDateFormat = (format) => { + return format.replace(/\W?m{1,2}|\W?ZZ/g, "").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, "").trim(); + }; + const extractTimeFormat = (format) => { + return format.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g, "").trim(); + }; + const dateEquals = function(a, b) { + const aIsDate = isDate(a); + const bIsDate = isDate(b); + if (aIsDate && bIsDate) return a.getTime() === b.getTime(); + if (!aIsDate && !bIsDate) return a === b; + return false; + }; + const valueEquals = function(a, b) { + const aIsArray = isArray$1(a); + const bIsArray = isArray$1(b); + if (aIsArray && bIsArray) { + if (a.length !== b.length) return false; + return a.every((item, index) => dateEquals(item, b[index])); + } + if (!aIsArray && !bIsArray) return dateEquals(a, b); + return false; + }; + const parseDate = function(date, format, lang) { + const day = isEmpty(format) || format === "x" ? (0, import_dayjs_min.default)(date).locale(lang) : (0, import_dayjs_min.default)(date, format).locale(lang); + return day.isValid() ? day : void 0; + }; + const formatter = function(date, format, lang) { + if (isEmpty(format)) return date; + if (format === "x") return +date; + return (0, import_dayjs_min.default)(date).locale(lang).format(format); + }; + const makeList = (total, method) => { + const arr = []; + const disabledArr = method?.(); + for (let i = 0; i < total; i++) arr.push(disabledArr?.includes(i) ?? false); + return arr; + }; + const dayOrDaysToDate = (dayOrDays) => { + return isArray$1(dayOrDays) ? dayOrDays.map((d) => d.toDate()) : dayOrDays.toDate(); + }; + +//#endregion +//#region ../../packages/components/time-picker/src/composables/use-common-picker.ts + const useCommonPicker = (props, emit) => { + const { lang } = useLocale(); + const pickerVisible = (0, vue.ref)(false); + const pickerActualVisible = (0, vue.ref)(false); + const userInput = (0, vue.ref)(null); + const valueIsEmpty = (0, vue.computed)(() => { + const { modelValue } = props; + return !modelValue || isArray$1(modelValue) && !modelValue.filter(Boolean).length; + }); + const emitInput = (input) => { + if (!valueEquals(props.modelValue, input)) { + let formatted; + if (isArray$1(input)) formatted = input.map((item) => formatter(item, props.valueFormat, lang.value)); + else if (input) formatted = formatter(input, props.valueFormat, lang.value); + emit(UPDATE_MODEL_EVENT, input ? formatted : input, lang.value); + } + }; + const parsedValue = (0, vue.computed)(() => { + let dayOrDays; + if (valueIsEmpty.value) { + if (pickerOptions.value.getDefaultValue) dayOrDays = pickerOptions.value.getDefaultValue(); + } else if (isArray$1(props.modelValue)) dayOrDays = props.modelValue.map((d) => parseDate(d, props.valueFormat, lang.value)); + else dayOrDays = parseDate(props.modelValue ?? "", props.valueFormat, lang.value); + if (pickerOptions.value.getRangeAvailableTime) { + const availableResult = pickerOptions.value.getRangeAvailableTime(dayOrDays); + if (!isEqual$1(availableResult, dayOrDays)) { + dayOrDays = availableResult; + if (!valueIsEmpty.value) emitInput(dayOrDaysToDate(dayOrDays)); + } + } + if (isArray$1(dayOrDays) && dayOrDays.some((day) => !day)) dayOrDays = []; + return dayOrDays; + }); + const pickerOptions = (0, vue.ref)({}); + const onSetPickerOption = (e) => { + pickerOptions.value[e[0]] = e[1]; + pickerOptions.value.panelReady = true; + }; + const onCalendarChange = (e) => { + emit("calendar-change", e); + }; + const onPanelChange = (value, mode, view) => { + emit("panel-change", value, mode, view); + }; + const onPick = (date = "", visible = false) => { + pickerVisible.value = visible; + let result; + if (isArray$1(date)) result = date.map((_) => _.toDate()); + else result = date ? date.toDate() : date; + userInput.value = null; + emitInput(result); + }; + return { + parsedValue, + pickerActualVisible, + pickerOptions, + pickerVisible, + userInput, + valueIsEmpty, + emitInput, + onCalendarChange, + onPanelChange, + onPick, + onSetPickerOption + }; + }; + +//#endregion +//#region ../../packages/components/time-picker/src/props/shared.ts + const disabledTimeListsProps = buildProps({ + disabledHours: { type: definePropType(Function) }, + disabledMinutes: { type: definePropType(Function) }, + disabledSeconds: { type: definePropType(Function) } + }); + const timePanelSharedProps = buildProps({ + visible: Boolean, + actualVisible: { + type: Boolean, + default: void 0 + }, + format: { + type: String, + default: "" + } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/common/props.ts + const timePickerDefaultProps = buildProps({ + automaticDropdown: { + type: Boolean, + default: true + }, + id: { type: definePropType([Array, String]) }, + name: { type: definePropType([Array, String]) }, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + format: String, + valueFormat: String, + dateFormat: String, + timeFormat: String, + type: { + type: String, + default: "" + }, + clearable: { + type: Boolean, + default: true + }, + clearIcon: { + type: definePropType([String, Object]), + default: circle_close_default + }, + editable: { + type: Boolean, + default: true + }, + saveOnBlur: { + type: Boolean, + default: true + }, + prefixIcon: { + type: definePropType([String, Object]), + default: "" + }, + size: useSizeProp, + readonly: Boolean, + disabled: { + type: Boolean, + default: void 0 + }, + placeholder: { + type: String, + default: "" + }, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + modelValue: { + type: definePropType([ + Date, + Array, + String, + Number + ]), + default: "" + }, + rangeSeparator: { + type: String, + default: "-" + }, + startPlaceholder: String, + endPlaceholder: String, + defaultValue: { type: definePropType([Date, Array]) }, + defaultTime: { type: definePropType([Date, Array]) }, + isRange: Boolean, + ...disabledTimeListsProps, + disabledDate: { type: Function }, + cellClassName: { type: Function }, + shortcuts: { + type: Array, + default: () => [] + }, + arrowControl: Boolean, + tabindex: { + type: definePropType([String, Number]), + default: 0 + }, + validateEvent: { + type: Boolean, + default: true + }, + unlinkPanels: Boolean, + placement: { + type: definePropType(String), + values: Ee, + default: "bottom" + }, + fallbackPlacements: { + type: definePropType(Array), + default: [ + "bottom", + "top", + "right", + "left" + ] + }, + ...useEmptyValuesProps, + ...useAriaProps(["ariaLabel"]), + showNow: { + type: Boolean, + default: true + }, + showConfirm: { + type: Boolean, + default: true + }, + showFooter: { + type: Boolean, + default: true + }, + showWeekNumber: Boolean + }); + const timePickerRangeTriggerProps = buildProps({ + id: { type: definePropType(Array) }, + name: { type: definePropType(Array) }, + modelValue: { type: definePropType([Array, String]) }, + startPlaceholder: String, + endPlaceholder: String, + disabled: Boolean + }); + /** + * @deprecated Use `timePickerRangeTriggerProps` instead. This will be removed in future versions. + */ + const timePickerRngeTriggerProps = timePickerRangeTriggerProps; + +//#endregion +//#region ../../packages/components/time-picker/src/common/picker-range-trigger.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$71 = [ + "id", + "name", + "placeholder", + "value", + "disabled" + ]; + const _hoisted_2$40 = [ + "id", + "name", + "placeholder", + "value", + "disabled" + ]; + var picker_range_trigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "PickerRangeTrigger", + inheritAttrs: false, + __name: "picker-range-trigger", + props: timePickerRangeTriggerProps, + emits: [ + "mouseenter", + "mouseleave", + "click", + "touchstart", + "focus", + "blur", + "startInput", + "endInput", + "startChange", + "endChange" + ], + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const { formItem } = useFormItem(); + const { inputId } = useFormItemInputId((0, vue.reactive)({ id: (0, vue.computed)(() => props.id?.[0]) }), { formItemContext: formItem }); + const attrs = useAttrs(); + const nsDate = useNamespace("date"); + const nsRange = useNamespace("range"); + const inputRef = (0, vue.ref)(); + const endInputRef = (0, vue.ref)(); + const { wrapperRef, isFocused } = useFocusController(inputRef, { disabled: (0, vue.computed)(() => props.disabled) }); + const handleClick = (evt) => { + emit("click", evt); + }; + const handleMouseEnter = (evt) => { + emit("mouseenter", evt); + }; + const handleMouseLeave = (evt) => { + emit("mouseleave", evt); + }; + const handleTouchStart = (evt) => { + emit("touchstart", evt); + }; + const handleStartInput = (evt) => { + emit("startInput", evt); + }; + const handleEndInput = (evt) => { + emit("endInput", evt); + }; + const handleStartChange = (evt) => { + emit("startChange", evt); + }; + const handleEndChange = (evt) => { + emit("endChange", evt); + }; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + inputRef.value?.blur(); + endInputRef.value?.blur(); + }; + __expose({ + focus, + blur + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "wrapperRef", + ref: wrapperRef, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsDate).is("active", (0, vue.unref)(isFocused)), _ctx.$attrs.class]), + style: (0, vue.normalizeStyle)(_ctx.$attrs.style), + onClick: handleClick, + onMouseenter: handleMouseEnter, + onMouseleave: handleMouseLeave, + onTouchstartPassive: handleTouchStart + }, [ + (0, vue.renderSlot)(_ctx.$slots, "prefix"), + (0, vue.createElementVNode)("input", (0, vue.mergeProps)((0, vue.unref)(attrs), { + id: (0, vue.unref)(inputId), + ref_key: "inputRef", + ref: inputRef, + name: _ctx.name && _ctx.name[0], + placeholder: _ctx.startPlaceholder, + value: _ctx.modelValue && _ctx.modelValue[0], + class: (0, vue.unref)(nsRange).b("input"), + disabled: _ctx.disabled, + onInput: handleStartInput, + onChange: handleStartChange + }), null, 16, _hoisted_1$71), + (0, vue.renderSlot)(_ctx.$slots, "range-separator"), + (0, vue.createElementVNode)("input", (0, vue.mergeProps)((0, vue.unref)(attrs), { + id: _ctx.id && _ctx.id[1], + ref_key: "endInputRef", + ref: endInputRef, + name: _ctx.name && _ctx.name[1], + placeholder: _ctx.endPlaceholder, + value: _ctx.modelValue && _ctx.modelValue[1], + class: (0, vue.unref)(nsRange).b("input"), + disabled: _ctx.disabled, + onInput: handleEndInput, + onChange: handleEndChange + }), null, 16, _hoisted_2$40), + (0, vue.renderSlot)(_ctx.$slots, "suffix") + ], 38); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/common/picker-range-trigger.vue + var picker_range_trigger_default = picker_range_trigger_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/time-picker/src/common/picker.vue?vue&type=script&setup=true&lang.ts + var picker_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Picker", + __name: "picker", + props: timePickerDefaultProps, + emits: [ + UPDATE_MODEL_EVENT, + CHANGE_EVENT, + "focus", + "blur", + "clear", + "calendar-change", + "panel-change", + "visible-change", + "keydown" + ], + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const attrs = (0, vue.useAttrs)(); + const nsDate = useNamespace("date"); + const nsInput = useNamespace("input"); + const nsRange = useNamespace("range"); + const { formItem } = useFormItem(); + const elPopperOptions = (0, vue.inject)(PICKER_POPPER_OPTIONS_INJECTION_KEY, {}); + const emptyValues = useEmptyValues(props, null); + const refPopper = (0, vue.ref)(); + const inputRef = (0, vue.ref)(); + const valueOnOpen = (0, vue.ref)(null); + let hasJustTabExitedInput = false; + const pickerDisabled = useFormDisabled(); + const commonPicker = useCommonPicker(props, emit); + const { parsedValue, pickerActualVisible, userInput, pickerVisible, pickerOptions, valueIsEmpty, emitInput, onPick, onSetPickerOption, onCalendarChange, onPanelChange } = commonPicker; + const { isFocused, handleFocus, handleBlur } = useFocusController(inputRef, { + disabled: pickerDisabled, + beforeFocus() { + return props.readonly; + }, + afterFocus() { + if (!props.automaticDropdown) return; + pickerVisible.value = true; + }, + beforeBlur(event) { + return !hasJustTabExitedInput && refPopper.value?.isFocusInsideContent(event); + }, + afterBlur() { + if (isTimePicker.value && !props.saveOnBlur) { + if (!valueIsEmpty.value) pickerOptions.value.handleCancel?.(); + } else handleChange(); + pickerVisible.value = false; + hasJustTabExitedInput = false; + props.validateEvent && formItem?.validate("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const hovering = (0, vue.ref)(false); + const rangeInputKls = (0, vue.computed)(() => [ + nsDate.b("editor"), + nsDate.bm("editor", props.type), + nsInput.e("wrapper"), + nsDate.is("disabled", pickerDisabled.value), + nsDate.is("active", pickerVisible.value), + nsRange.b("editor"), + pickerSize ? nsRange.bm("editor", pickerSize.value) : "", + attrs.class + ]); + const clearIconKls = (0, vue.computed)(() => [ + nsInput.e("icon"), + nsRange.e("close-icon"), + !showClearBtn.value ? nsRange.em("close-icon", "hidden") : "" + ]); + (0, vue.watch)(pickerVisible, (val) => { + if (!val) { + userInput.value = null; + (0, vue.nextTick)(() => { + emitChange(props.modelValue); + }); + } else (0, vue.nextTick)(() => { + if (val) valueOnOpen.value = props.modelValue; + }); + }); + const emitChange = (val, isClear) => { + if (isClear || !valueEquals(val, valueOnOpen.value)) { + emit(CHANGE_EVENT, val); + isClear && (valueOnOpen.value = val); + props.validateEvent && formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }; + const emitKeydown = (e) => { + emit("keydown", e); + }; + const refInput = (0, vue.computed)(() => { + if (inputRef.value) return Array.from(inputRef.value.$el.querySelectorAll("input")); + return []; + }); + const setSelectionRange = (start, end, pos) => { + const _inputs = refInput.value; + if (!_inputs.length) return; + if (!pos || pos === "min") { + _inputs[0].setSelectionRange(start, end); + _inputs[0].focus(); + } else if (pos === "max") { + _inputs[1].setSelectionRange(start, end); + _inputs[1].focus(); + } + }; + const onBeforeShow = () => { + pickerActualVisible.value = true; + }; + const onShow = () => { + emit("visible-change", true); + }; + const onHide = () => { + pickerActualVisible.value = false; + pickerVisible.value = false; + emit("visible-change", false); + }; + const handleOpen = () => { + pickerVisible.value = true; + }; + const handleClose = () => { + pickerVisible.value = false; + }; + const displayValue = (0, vue.computed)(() => { + const formattedValue = formatToString(parsedValue.value); + if (isArray$1(userInput.value)) return [userInput.value[0] ?? (formattedValue && formattedValue[0]) ?? "", userInput.value[1] ?? (formattedValue && formattedValue[1]) ?? ""]; + else if (userInput.value !== null) return userInput.value; + if (isTimePicker.value && valueIsEmpty.value && !props.saveOnBlur) return ""; + if (!isTimePicker.value && valueIsEmpty.value) return ""; + if (!pickerVisible.value && valueIsEmpty.value) return ""; + if (formattedValue) return isDatesPicker.value || isMonthsPicker.value || isYearsPicker.value ? formattedValue.join(", ") : formattedValue; + return ""; + }); + const isTimeLikePicker = (0, vue.computed)(() => props.type.includes("time")); + const isTimePicker = (0, vue.computed)(() => props.type.startsWith("time")); + const isDatesPicker = (0, vue.computed)(() => props.type === "dates"); + const isMonthsPicker = (0, vue.computed)(() => props.type === "months"); + const isYearsPicker = (0, vue.computed)(() => props.type === "years"); + const triggerIcon = (0, vue.computed)(() => props.prefixIcon || (isTimeLikePicker.value ? clock_default : calendar_default$1)); + const showClearBtn = (0, vue.computed)(() => props.clearable && !pickerDisabled.value && !props.readonly && !valueIsEmpty.value && (hovering.value || isFocused.value)); + const onClear = (event) => { + if (props.readonly || pickerDisabled.value) return; + if (showClearBtn.value) { + event?.stopPropagation(); + if (pickerOptions.value.handleClear) pickerOptions.value.handleClear(); + else emitInput(emptyValues.valueOnClear.value); + emitChange(emptyValues.valueOnClear.value, true); + onHide(); + } + emit("clear"); + }; + const onMouseDownInput = async (event) => { + if (props.readonly || pickerDisabled.value) return; + if (event.target?.tagName !== "INPUT" || isFocused.value || !props.automaticDropdown) pickerVisible.value = true; + }; + const onMouseEnter = () => { + if (props.readonly || pickerDisabled.value) return; + if (!valueIsEmpty.value && props.clearable) hovering.value = true; + }; + const onMouseLeave = () => { + hovering.value = false; + }; + const onTouchStartInput = (event) => { + if (props.readonly || pickerDisabled.value) return; + if (event.touches[0].target?.tagName !== "INPUT" || isFocused.value || !props.automaticDropdown) pickerVisible.value = true; + }; + const isRangeInput = (0, vue.computed)(() => { + return props.type.includes("range"); + }); + const pickerSize = useFormSize(); + const popperEl = (0, vue.computed)(() => (0, vue.unref)(refPopper)?.popperRef?.contentRef); + const stophandle = onClickOutside(inputRef, (e) => { + const unrefedPopperEl = (0, vue.unref)(popperEl); + const inputEl = unrefElement(inputRef); + if (unrefedPopperEl && (e.target === unrefedPopperEl || e.composedPath().includes(unrefedPopperEl)) || e.target === inputEl || inputEl && e.composedPath().includes(inputEl)) return; + pickerVisible.value = false; + }); + (0, vue.onBeforeUnmount)(() => { + stophandle?.(); + }); + const handleChange = () => { + if (isTimePicker.value && !props.saveOnBlur) return; + const isRangeEmpty = isArray$1(userInput.value) && userInput.value.every((v) => v === ""); + if (userInput.value && !isRangeEmpty) { + const value = parseUserInputToDayjs(displayValue.value); + if (value) { + if (isValidValue(value)) emitInput(dayOrDaysToDate(value)); + userInput.value = null; + } + } + if (userInput.value === "" || isRangeEmpty) { + emitInput(emptyValues.valueOnClear.value); + emitChange(emptyValues.valueOnClear.value, true); + userInput.value = null; + } + }; + const parseUserInputToDayjs = (value) => { + if (!value) return null; + return pickerOptions.value.parseUserInput(value); + }; + const formatToString = (value) => { + if (!value) return null; + return isArray$1(value) ? value.map((_) => _.format(props.format)) : value.format(props.format); + }; + const isValidValue = (value) => { + return pickerOptions.value.isValidValue(value); + }; + const handleKeydownInput = async (event) => { + if (props.readonly || pickerDisabled.value) return; + const code = getEventCode(event); + emitKeydown(event); + if (code === EVENT_CODE.esc) { + if (pickerVisible.value === true) { + pickerVisible.value = false; + event.preventDefault(); + event.stopPropagation(); + } + return; + } + if (code === EVENT_CODE.down) { + if (pickerOptions.value.handleFocusPicker) { + event.preventDefault(); + event.stopPropagation(); + } + if (pickerVisible.value === false) { + pickerVisible.value = true; + await (0, vue.nextTick)(); + } + if (pickerOptions.value.handleFocusPicker) { + pickerOptions.value.handleFocusPicker(); + return; + } + } + if (code === EVENT_CODE.tab) { + hasJustTabExitedInput = true; + return; + } + if (code === EVENT_CODE.enter || code === EVENT_CODE.numpadEnter) { + if (!pickerVisible.value) pickerVisible.value = true; + else if (userInput.value === null || userInput.value === "" || isValidValue(parseUserInputToDayjs(displayValue.value))) { + handleChange(); + pickerVisible.value = false; + } + event.preventDefault(); + event.stopPropagation(); + return; + } + if (userInput.value) { + event.stopPropagation(); + return; + } + if (pickerOptions.value.handleKeydownInput) pickerOptions.value.handleKeydownInput(event); + }; + const onUserInput = (e) => { + userInput.value = e; + if (!pickerVisible.value) pickerVisible.value = true; + }; + const handleStartInput = (event) => { + const target = event.target; + if (userInput.value) userInput.value = [target.value, userInput.value[1]]; + else userInput.value = [target.value, null]; + }; + const handleEndInput = (event) => { + const target = event.target; + if (userInput.value) userInput.value = [userInput.value[0], target.value]; + else userInput.value = [null, target.value]; + }; + const handleStartChange = () => { + const values = userInput.value; + const value = parseUserInputToDayjs(values && values[0]); + const parsedVal = (0, vue.unref)(parsedValue); + if (value && value.isValid()) { + userInput.value = [formatToString(value), displayValue.value?.[1] || null]; + const newValue = [value, parsedVal && (parsedVal[1] || null)]; + if (isValidValue(newValue)) { + emitInput(dayOrDaysToDate(newValue)); + userInput.value = null; + } + } + }; + const handleEndChange = () => { + const values = (0, vue.unref)(userInput); + const value = parseUserInputToDayjs(values && values[1]); + const parsedVal = (0, vue.unref)(parsedValue); + if (value && value.isValid()) { + userInput.value = [(0, vue.unref)(displayValue)?.[0] || null, formatToString(value)]; + const newValue = [parsedVal && parsedVal[0], value]; + if (isValidValue(newValue)) { + emitInput(dayOrDaysToDate(newValue)); + userInput.value = null; + } + } + }; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + inputRef.value?.blur(); + }; + (0, vue.provide)(PICKER_BASE_INJECTION_KEY, { + props, + emptyValues + }); + (0, vue.provide)(ROOT_COMMON_PICKER_INJECTION_KEY, commonPicker); + __expose({ + focus, + blur, + handleOpen, + handleClose, + onPick + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), (0, vue.mergeProps)({ + ref_key: "refPopper", + ref: refPopper, + visible: (0, vue.unref)(pickerVisible), + effect: "light", + pure: "", + trigger: "click" + }, _ctx.$attrs, { + role: "dialog", + teleported: "", + transition: `${(0, vue.unref)(nsDate).namespace.value}-zoom-in-top`, + "popper-class": [`${(0, vue.unref)(nsDate).namespace.value}-picker__popper`, _ctx.popperClass], + "popper-style": _ctx.popperStyle, + "popper-options": (0, vue.unref)(elPopperOptions), + "fallback-placements": _ctx.fallbackPlacements, + "gpu-acceleration": false, + placement: _ctx.placement, + "stop-popper-mouse-event": false, + "hide-after": 0, + persistent: "", + onBeforeShow, + onShow, + onHide + }), { + default: (0, vue.withCtx)(() => [!isRangeInput.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElInput), { + key: 0, + id: _ctx.id, + ref_key: "inputRef", + ref: inputRef, + "container-role": "combobox", + "model-value": displayValue.value, + name: _ctx.name, + size: (0, vue.unref)(pickerSize), + disabled: (0, vue.unref)(pickerDisabled), + placeholder: _ctx.placeholder, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(nsDate).b("editor"), + (0, vue.unref)(nsDate).bm("editor", _ctx.type), + (0, vue.unref)(nsDate).is("focus", (0, vue.unref)(pickerVisible)), + _ctx.$attrs.class + ]), + style: (0, vue.normalizeStyle)(_ctx.$attrs.style), + readonly: !_ctx.editable || _ctx.readonly || isDatesPicker.value || isMonthsPicker.value || isYearsPicker.value || _ctx.type === "week", + "aria-label": _ctx.ariaLabel, + tabindex: _ctx.tabindex, + "validate-event": false, + onInput: onUserInput, + onFocus: (0, vue.unref)(handleFocus), + onBlur: (0, vue.unref)(handleBlur), + onKeydown: handleKeydownInput, + onChange: handleChange, + onMousedown: onMouseDownInput, + onMouseenter: onMouseEnter, + onMouseleave: onMouseLeave, + onTouchstartPassive: onTouchStartInput, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, { + prefix: (0, vue.withCtx)(() => [triggerIcon.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("icon")), + onMousedown: (0, vue.withModifiers)(onMouseDownInput, ["prevent"]), + onTouchstartPassive: onTouchStartInput + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(triggerIcon.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)]), + suffix: (0, vue.withCtx)(() => [showClearBtn.value && _ctx.clearIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)(`${(0, vue.unref)(nsInput).e("icon")} clear-icon`), + onMousedown: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]), + onClick: onClear + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.clearIcon)))]), + _: 1 + }, 8, ["class", "onMousedown"])) : (0, vue.createCommentVNode)("v-if", true)]), + _: 1 + }, 8, [ + "id", + "model-value", + "name", + "size", + "disabled", + "placeholder", + "class", + "style", + "readonly", + "aria-label", + "tabindex", + "onFocus", + "onBlur" + ])) : ((0, vue.openBlock)(), (0, vue.createBlock)(picker_range_trigger_default, { + key: 1, + id: _ctx.id, + ref_key: "inputRef", + ref: inputRef, + "model-value": displayValue.value, + name: _ctx.name, + disabled: (0, vue.unref)(pickerDisabled), + readonly: !_ctx.editable || _ctx.readonly, + "start-placeholder": _ctx.startPlaceholder, + "end-placeholder": _ctx.endPlaceholder, + class: (0, vue.normalizeClass)(rangeInputKls.value), + style: (0, vue.normalizeStyle)(_ctx.$attrs.style), + "aria-label": _ctx.ariaLabel, + tabindex: _ctx.tabindex, + autocomplete: "off", + role: "combobox", + onClick: onMouseDownInput, + onFocus: (0, vue.unref)(handleFocus), + onBlur: (0, vue.unref)(handleBlur), + onStartInput: handleStartInput, + onStartChange: handleStartChange, + onEndInput: handleEndInput, + onEndChange: handleEndChange, + onMousedown: onMouseDownInput, + onMouseenter: onMouseEnter, + onMouseleave: onMouseLeave, + onTouchstartPassive: onTouchStartInput, + onKeydown: handleKeydownInput + }, { + prefix: (0, vue.withCtx)(() => [triggerIcon.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("icon"), (0, vue.unref)(nsRange).e("icon")]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(triggerIcon.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)]), + "range-separator": (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "range-separator", {}, () => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(nsRange).b("separator")) }, (0, vue.toDisplayString)(_ctx.rangeSeparator), 3)])]), + suffix: (0, vue.withCtx)(() => [_ctx.clearIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)(clearIconKls.value), + onMousedown: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]), + onClick: onClear + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.clearIcon)))]), + _: 1 + }, 8, ["class", "onMousedown"])) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, [ + "id", + "model-value", + "name", + "disabled", + "readonly", + "start-placeholder", + "end-placeholder", + "class", + "style", + "aria-label", + "tabindex", + "onFocus", + "onBlur" + ]))]), + content: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", { + visible: (0, vue.unref)(pickerVisible), + actualVisible: (0, vue.unref)(pickerActualVisible), + parsedValue: (0, vue.unref)(parsedValue), + format: _ctx.format, + dateFormat: _ctx.dateFormat, + timeFormat: _ctx.timeFormat, + unlinkPanels: _ctx.unlinkPanels, + type: _ctx.type, + defaultValue: _ctx.defaultValue, + showNow: _ctx.showNow, + showConfirm: _ctx.showConfirm, + showFooter: _ctx.showFooter, + showWeekNumber: _ctx.showWeekNumber, + onPick: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(onPick) && (0, vue.unref)(onPick)(...args)), + onSelectRange: setSelectionRange, + onSetPickerOption: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(onSetPickerOption) && (0, vue.unref)(onSetPickerOption)(...args)), + onCalendarChange: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(onCalendarChange) && (0, vue.unref)(onCalendarChange)(...args)), + onClear, + onPanelChange: _cache[4] || (_cache[4] = (...args) => (0, vue.unref)(onPanelChange) && (0, vue.unref)(onPanelChange)(...args)), + onMousedown: _cache[5] || (_cache[5] = (0, vue.withModifiers)(() => {}, ["stop"])) + })]), + _: 3 + }, 16, [ + "visible", + "transition", + "popper-class", + "popper-style", + "popper-options", + "fallback-placements", + "placement" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/common/picker.vue + var picker_default = picker_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/time-picker/src/props/panel-time-picker.ts + const panelTimePickerProps = buildProps({ + ...timePanelSharedProps, + datetimeRole: String, + parsedValue: { type: definePropType(Object) } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/composables/use-time-panel.ts + const useTimePanel = ({ getAvailableHours, getAvailableMinutes, getAvailableSeconds }) => { + const getAvailableTime = (date, role, first, compareDate) => { + const availableTimeGetters = { + hour: getAvailableHours, + minute: getAvailableMinutes, + second: getAvailableSeconds + }; + let result = date; + [ + "hour", + "minute", + "second" + ].forEach((type) => { + if (availableTimeGetters[type]) { + let availableTimeSlots; + const method = availableTimeGetters[type]; + switch (type) { + case "minute": + availableTimeSlots = method(result.hour(), role, compareDate); + break; + case "second": + availableTimeSlots = method(result.hour(), result.minute(), role, compareDate); + break; + default: + availableTimeSlots = method(role, compareDate); + break; + } + if (availableTimeSlots?.length && !availableTimeSlots.includes(result[type]())) { + const pos = first ? 0 : availableTimeSlots.length - 1; + result = result[type](availableTimeSlots[pos]); + } + } + }); + return result; + }; + const timePickerOptions = {}; + const onSetOption = ([key, val]) => { + timePickerOptions[key] = val; + }; + return { + timePickerOptions, + getAvailableTime, + onSetOption + }; + }; + +//#endregion +//#region ../../packages/components/time-picker/src/composables/use-time-picker.ts + const makeAvailableArr = (disabledList) => { + const trueOrNumber = (isDisabled, index) => isDisabled || index; + const getNumber = (predicate) => predicate !== true; + return disabledList.map(trueOrNumber).filter(getNumber); + }; + const getTimeLists = (disabledHours, disabledMinutes, disabledSeconds) => { + const getHoursList = (role, compare) => { + return makeList(24, disabledHours && (() => disabledHours?.(role, compare))); + }; + const getMinutesList = (hour, role, compare) => { + return makeList(60, disabledMinutes && (() => disabledMinutes?.(hour, role, compare))); + }; + const getSecondsList = (hour, minute, role, compare) => { + return makeList(60, disabledSeconds && (() => disabledSeconds?.(hour, minute, role, compare))); + }; + return { + getHoursList, + getMinutesList, + getSecondsList + }; + }; + const buildAvailableTimeSlotGetter = (disabledHours, disabledMinutes, disabledSeconds) => { + const { getHoursList, getMinutesList, getSecondsList } = getTimeLists(disabledHours, disabledMinutes, disabledSeconds); + const getAvailableHours = (role, compare) => { + return makeAvailableArr(getHoursList(role, compare)); + }; + const getAvailableMinutes = (hour, role, compare) => { + return makeAvailableArr(getMinutesList(hour, role, compare)); + }; + const getAvailableSeconds = (hour, minute, role, compare) => { + return makeAvailableArr(getSecondsList(hour, minute, role, compare)); + }; + return { + getAvailableHours, + getAvailableMinutes, + getAvailableSeconds + }; + }; + const useOldValue = (props, options) => { + const oldValue = (0, vue.ref)(props.parsedValue); + (0, vue.watch)(() => props.visible, (val) => { + const modelValue = (0, vue.toValue)(options.modelValue); + const valueOnClear = (0, vue.toValue)(options.valueOnClear); + if (val && modelValue === valueOnClear) { + oldValue.value = valueOnClear; + return; + } + if (!val) oldValue.value = props.parsedValue; + }); + return oldValue; + }; + +//#endregion +//#region ../../packages/directives/click-outside/index.ts + const nodeList = /* @__PURE__ */ new Map(); + if (isClient) { + let startClick; + document.addEventListener("mousedown", (e) => startClick = e); + document.addEventListener("mouseup", (e) => { + if (startClick) { + for (const handlers of nodeList.values()) for (const { documentHandler } of handlers) documentHandler(e, startClick); + startClick = void 0; + } + }); + } + function createDocumentHandler(el, binding) { + let excludes = []; + if (isArray$1(binding.arg)) excludes = binding.arg; + else if (isElement$1(binding.arg)) excludes.push(binding.arg); + return function(mouseup, mousedown) { + const popperRef = binding.instance.popperRef; + const mouseUpTarget = mouseup.target; + const mouseDownTarget = mousedown?.target; + const isBound = !binding || !binding.instance; + const isTargetExists = !mouseUpTarget || !mouseDownTarget; + const isContainedByEl = el.contains(mouseUpTarget) || el.contains(mouseDownTarget); + const isSelf = el === mouseUpTarget; + const isTargetExcluded = excludes.length && excludes.some((item) => item?.contains(mouseUpTarget)) || excludes.length && excludes.includes(mouseDownTarget); + const isContainedByPopper = popperRef && (popperRef.contains(mouseUpTarget) || popperRef.contains(mouseDownTarget)); + if (isBound || isTargetExists || isContainedByEl || isSelf || isTargetExcluded || isContainedByPopper) return; + binding.value(mouseup, mousedown); + }; + } + const ClickOutside = { + beforeMount(el, binding) { + if (!nodeList.has(el)) nodeList.set(el, []); + nodeList.get(el).push({ + documentHandler: createDocumentHandler(el, binding), + bindingFn: binding.value + }); + }, + updated(el, binding) { + if (!nodeList.has(el)) nodeList.set(el, []); + const handlers = nodeList.get(el); + const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue); + const newHandler = { + documentHandler: createDocumentHandler(el, binding), + bindingFn: binding.value + }; + if (oldHandlerIndex >= 0) handlers.splice(oldHandlerIndex, 1, newHandler); + else handlers.push(newHandler); + }, + unmounted(el) { + nodeList.delete(el); + } + }; + +//#endregion +//#region ../../packages/directives/repeat-click/index.ts + const REPEAT_INTERVAL = 100; + const REPEAT_DELAY = 600; + const SCOPE$6 = "_RepeatClick"; + const vRepeatClick = { + beforeMount(el, binding) { + const value = binding.value; + const { interval = REPEAT_INTERVAL, delay = REPEAT_DELAY } = isFunction$1(value) ? {} : value; + let intervalId; + let delayId; + const handler = () => isFunction$1(value) ? value() : value.handler(); + const clear = () => { + if (delayId) { + clearTimeout(delayId); + delayId = void 0; + } + if (intervalId) { + clearInterval(intervalId); + intervalId = void 0; + } + }; + const start = (evt) => { + if (evt.button !== 0) return; + clear(); + handler(); + document.addEventListener("mouseup", clear, { once: true }); + delayId = setTimeout(() => { + intervalId = setInterval(() => { + handler(); + }, interval); + }, delay); + }; + el[SCOPE$6] = { + start, + clear + }; + el.addEventListener("mousedown", start); + }, + unmounted(el) { + if (!el[SCOPE$6]) return; + const { start, clear } = el[SCOPE$6]; + if (start) el.removeEventListener("mousedown", start); + if (clear) { + clear(); + document.removeEventListener("mouseup", clear); + } + el[SCOPE$6] = null; + } + }; + +//#endregion +//#region ../../packages/directives/trap-focus/index.ts + const FOCUSABLE_CHILDREN = "_trap-focus-children"; + const FOCUS_STACK = []; + const FOCUS_HANDLER = (e) => { + if (FOCUS_STACK.length === 0) return; + const code = getEventCode(e); + const focusableElement = FOCUS_STACK[FOCUS_STACK.length - 1][FOCUSABLE_CHILDREN]; + if (focusableElement.length > 0 && code === EVENT_CODE.tab) { + if (focusableElement.length === 1) { + e.preventDefault(); + if (document.activeElement !== focusableElement[0]) focusableElement[0].focus(); + return; + } + const goingBackward = e.shiftKey; + const isFirst = e.target === focusableElement[0]; + const isLast = e.target === focusableElement[focusableElement.length - 1]; + if (isFirst && goingBackward) { + e.preventDefault(); + focusableElement[focusableElement.length - 1].focus(); + } + if (isLast && !goingBackward) { + e.preventDefault(); + focusableElement[0].focus(); + } + } + }; + const TrapFocus = { + beforeMount(el) { + el[FOCUSABLE_CHILDREN] = obtainAllFocusableElements$1(el); + FOCUS_STACK.push(el); + if (FOCUS_STACK.length <= 1) document.addEventListener("keydown", FOCUS_HANDLER); + }, + updated(el) { + (0, vue.nextTick)(() => { + el[FOCUSABLE_CHILDREN] = obtainAllFocusableElements$1(el); + }); + }, + unmounted() { + FOCUS_STACK.shift(); + if (FOCUS_STACK.length === 0) document.removeEventListener("keydown", FOCUS_HANDLER); + } + }; + +//#endregion +//#region ../../node_modules/.pnpm/normalize-wheel-es@1.2.0/node_modules/normalize-wheel-es/dist/index.mjs + var v = !1, o, f, s, u, d, N, l, p, m, w, D, x, E, M, F; + function a() { + if (!v) { + v = !0; + var e = navigator.userAgent, n = /(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e), i = /(Mac OS X)|(Windows)|(Linux)/.exec(e); + if (x = /\b(iPhone|iP[ao]d)/.exec(e), E = /\b(iP[ao]d)/.exec(e), w = /Android/i.exec(e), M = /FBAN\/\w+;/i.exec(e), F = /Mobile/i.exec(e), D = !!/Win64/.exec(e), n) { + o = n[1] ? parseFloat(n[1]) : n[5] ? parseFloat(n[5]) : NaN, o && document && document.documentMode && (o = document.documentMode); + var r = /(?:Trident\/(\d+.\d+))/.exec(e); + N = r ? parseFloat(r[1]) + 4 : o, f = n[2] ? parseFloat(n[2]) : NaN, s = n[3] ? parseFloat(n[3]) : NaN, u = n[4] ? parseFloat(n[4]) : NaN, u ? (n = /(?:Chrome\/(\d+\.\d+))/.exec(e), d = n && n[1] ? parseFloat(n[1]) : NaN) : d = NaN; + } else o = f = s = d = u = NaN; + if (i) { + if (i[1]) { + var t = /(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e); + l = t ? parseFloat(t[1].replace("_", ".")) : !0; + } else l = !1; + p = !!i[2], m = !!i[3]; + } else l = p = m = !1; + } + } + var _ = { + ie: function() { + return a() || o; + }, + ieCompatibilityMode: function() { + return a() || N > o; + }, + ie64: function() { + return _.ie() && D; + }, + firefox: function() { + return a() || f; + }, + opera: function() { + return a() || s; + }, + webkit: function() { + return a() || u; + }, + safari: function() { + return _.webkit(); + }, + chrome: function() { + return a() || d; + }, + windows: function() { + return a() || p; + }, + osx: function() { + return a() || l; + }, + linux: function() { + return a() || m; + }, + iphone: function() { + return a() || x; + }, + mobile: function() { + return a() || x || E || w || F; + }, + nativeApp: function() { + return a() || M; + }, + android: function() { + return a() || w; + }, + ipad: function() { + return a() || E; + } + }, A = _; + var c = !!(typeof window < "u" && window.document && window.document.createElement), h$26 = { + canUseDOM: c, + canUseWorkers: typeof Worker < "u", + canUseEventListeners: c && !!(window.addEventListener || window.attachEvent), + canUseViewport: c && !!window.screen, + isInWorker: !c + }; + var X; + h$26.canUseDOM && (X = document.implementation && document.implementation.hasFeature && document.implementation.hasFeature("", "") !== !0); + function S(e, n) { + if (!h$26.canUseDOM || n && !("addEventListener" in document)) return !1; + var i = "on" + e, r = i in document; + if (!r) { + var t = document.createElement("div"); + t.setAttribute(i, "return;"), r = typeof t[i] == "function"; + } + return !r && X && e === "wheel" && (r = document.implementation.hasFeature("Events.wheel", "3.0")), r; + } + var b = S; + var O = 10, I = 40, P = 800; + function T(e) { + var n = 0, i = 0, r = 0, t = 0; + return "detail" in e && (i = e.detail), "wheelDelta" in e && (i = -e.wheelDelta / 120), "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (n = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (n = i, i = 0), r = n * O, t = i * O, "deltaY" in e && (t = e.deltaY), "deltaX" in e && (r = e.deltaX), (r || t) && e.deltaMode && (e.deltaMode == 1 ? (r *= I, t *= I) : (r *= P, t *= P)), r && !n && (n = r < 1 ? -1 : 1), t && !i && (i = t < 1 ? -1 : 1), { + spinX: n, + spinY: i, + pixelX: r, + pixelY: t + }; + } + T.getEventType = function() { + return A.firefox() ? "DOMMouseScroll" : b("wheel") ? "wheel" : "mousewheel"; + }; + var Y = T; + /** + * Checks if an event is supported in the current execution environment. + * + * NOTE: This will not work correctly for non-generic events such as `change`, + * `reset`, `load`, `error`, and `select`. + * + * Borrows from Modernizr. + * + * @param {string} eventNameSuffix Event name, e.g. "click". + * @param {?boolean} capture Check if the capture phase is supported. + * @return {boolean} True if the event is supported. + * @internal + * @license Modernizr 3.0.0pre (Custom Build) | MIT + */ + +//#endregion +//#region ../../packages/directives/mousewheel/index.ts + const SCOPE$5 = "_Mousewheel"; + const mousewheel = function(element, callback) { + if (element && element.addEventListener) { + removeWheelHandler(element); + const fn = function(event) { + const normalized = Y(event); + callback && Reflect.apply(callback, this, [event, normalized]); + }; + element[SCOPE$5] = { wheelHandler: fn }; + element.addEventListener("wheel", fn, { passive: true }); + } + }; + const removeWheelHandler = (element) => { + if (element[SCOPE$5]?.wheelHandler) { + element.removeEventListener("wheel", element[SCOPE$5].wheelHandler); + element[SCOPE$5] = null; + } + }; + const Mousewheel = { + beforeMount(el, binding) { + mousewheel(el, binding.value); + }, + unmounted(el) { + removeWheelHandler(el); + }, + updated(el, binding) { + if (binding.value !== binding.oldValue) mousewheel(el, binding.value); + } + }; + +//#endregion +//#region ../../packages/components/time-picker/src/props/basic-time-spinner.ts + const basicTimeSpinnerProps = buildProps({ + role: { + type: String, + required: true + }, + spinnerDate: { + type: definePropType(Object), + required: true + }, + showSeconds: { + type: Boolean, + default: true + }, + arrowControl: Boolean, + amPmMode: { + type: definePropType(String), + default: "" + }, + ...disabledTimeListsProps + }); + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker-com/basic-time-spinner.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$70 = ["onClick"]; + const _hoisted_2$39 = ["onMouseenter"]; + var basic_time_spinner_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "basic-time-spinner", + props: basicTimeSpinnerProps, + emits: [ + CHANGE_EVENT, + "select-range", + "set-option" + ], + setup(__props, { emit: __emit }) { + const props = __props; + const { isRange, format, saveOnBlur } = (0, vue.inject)(PICKER_BASE_INJECTION_KEY).props; + const emit = __emit; + const ns = useNamespace("time"); + const { getHoursList, getMinutesList, getSecondsList } = getTimeLists(props.disabledHours, props.disabledMinutes, props.disabledSeconds); + let isScrolling = false; + const ignoreScroll = { + hours: false, + minutes: false, + seconds: false + }; + const currentScrollbar = (0, vue.ref)(); + const listRefsMap = { + hours: (0, vue.ref)(), + minutes: (0, vue.ref)(), + seconds: (0, vue.ref)() + }; + const spinnerItems = (0, vue.computed)(() => { + return props.showSeconds ? timeUnits : timeUnits.slice(0, 2); + }); + const timePartials = (0, vue.computed)(() => { + const { spinnerDate } = props; + return { + hours: spinnerDate.hour(), + minutes: spinnerDate.minute(), + seconds: spinnerDate.second() + }; + }); + const timeList = (0, vue.computed)(() => { + const { hours, minutes } = (0, vue.unref)(timePartials); + const { role, spinnerDate } = props; + const compare = !isRange ? spinnerDate : void 0; + return { + hours: getHoursList(role, compare), + minutes: getMinutesList(hours, role, compare), + seconds: getSecondsList(hours, minutes, role, compare) + }; + }); + const arrowControlTimeList = (0, vue.computed)(() => { + const { hours, minutes, seconds } = (0, vue.unref)(timePartials); + return { + hours: buildTimeList(hours, 23), + minutes: buildTimeList(minutes, 59), + seconds: buildTimeList(seconds, 59) + }; + }); + const debouncedResetScroll = debounce((type) => { + isScrolling = false; + adjustCurrentSpinner(type); + }, 200); + const getAmPmFlag = (hour) => { + if (!!!props.amPmMode) return ""; + const isCapital = props.amPmMode === "A"; + let content = hour < 12 ? " am" : " pm"; + if (isCapital) content = content.toUpperCase(); + return content; + }; + const emitSelectRange = (type) => { + let range = [0, 0]; + const actualFormat = format || DEFAULT_FORMATS_TIME; + const hourIndex = actualFormat.indexOf("HH"); + const minuteIndex = actualFormat.indexOf("mm"); + const secondIndex = actualFormat.indexOf("ss"); + switch (type) { + case "hours": + if (hourIndex !== -1) range = [hourIndex, hourIndex + 2]; + break; + case "minutes": + if (minuteIndex !== -1) range = [minuteIndex, minuteIndex + 2]; + break; + case "seconds": + if (secondIndex !== -1) range = [secondIndex, secondIndex + 2]; + break; + } + const [left, right] = range; + emit("select-range", left, right); + currentScrollbar.value = type; + }; + const adjustCurrentSpinner = (type) => { + adjustSpinner(type, (0, vue.unref)(timePartials)[type]); + }; + const adjustSpinners = () => { + adjustCurrentSpinner("hours"); + adjustCurrentSpinner("minutes"); + adjustCurrentSpinner("seconds"); + }; + const getScrollbarElement = (el) => el.querySelector(`.${ns.namespace.value}-scrollbar__wrap`); + const adjustSpinner = (type, value) => { + if (props.arrowControl) return; + const scrollbar = (0, vue.unref)(listRefsMap[type]); + if (scrollbar && scrollbar.$el) { + if (!saveOnBlur) { + ignoreScroll[type] = true; + rAF(() => { + ignoreScroll[type] = false; + }); + } + getScrollbarElement(scrollbar.$el).scrollTop = Math.max(0, value * typeItemHeight(type)); + } + }; + const typeItemHeight = (type) => { + const listItem = (0, vue.unref)(listRefsMap[type])?.$el.querySelector("li"); + if (listItem) return Number.parseFloat(getStyle(listItem, "height")) || 0; + return 0; + }; + const onIncrement = () => { + scrollDown(1); + }; + const onDecrement = () => { + scrollDown(-1); + }; + const scrollDown = (step) => { + if (!currentScrollbar.value) emitSelectRange("hours"); + const label = currentScrollbar.value; + const now = (0, vue.unref)(timePartials)[label]; + const next = findNextUnDisabled(label, now, step, currentScrollbar.value === "hours" ? 24 : 60); + modifyDateField(label, next); + adjustSpinner(label, next); + (0, vue.nextTick)(() => emitSelectRange(label)); + }; + const findNextUnDisabled = (type, now, step, total) => { + let next = (now + step + total) % total; + const list = (0, vue.unref)(timeList)[type]; + while (list[next] && next !== now) next = (next + step + total) % total; + return next; + }; + const modifyDateField = (type, value) => { + if ((0, vue.unref)(timeList)[type][value]) return; + const { hours, minutes, seconds } = (0, vue.unref)(timePartials); + let changeTo; + switch (type) { + case "hours": + changeTo = props.spinnerDate.hour(value).minute(minutes).second(seconds); + break; + case "minutes": + changeTo = props.spinnerDate.hour(hours).minute(value).second(seconds); + break; + case "seconds": + changeTo = props.spinnerDate.hour(hours).minute(minutes).second(value); + break; + } + emit(CHANGE_EVENT, changeTo); + }; + const handleClick = (type, { value, disabled }) => { + if (!disabled) { + modifyDateField(type, value); + emitSelectRange(type); + adjustSpinner(type, value); + } + }; + const handleScroll = (type) => { + if (!saveOnBlur && ignoreScroll[type]) return; + const scrollbar = (0, vue.unref)(listRefsMap[type]); + if (!scrollbar) return; + isScrolling = true; + debouncedResetScroll(type); + modifyDateField(type, Math.min(Math.round((getScrollbarElement(scrollbar.$el).scrollTop - (scrollBarHeight(type) * .5 - 10) / typeItemHeight(type) + 3) / typeItemHeight(type)), type === "hours" ? 23 : 59)); + }; + const scrollBarHeight = (type) => { + return (0, vue.unref)(listRefsMap[type]).$el.offsetHeight; + }; + const bindScrollEvent = () => { + const bindFunction = (type) => { + const scrollbar = (0, vue.unref)(listRefsMap[type]); + if (scrollbar && scrollbar.$el) getScrollbarElement(scrollbar.$el).onscroll = () => { + handleScroll(type); + }; + }; + bindFunction("hours"); + bindFunction("minutes"); + bindFunction("seconds"); + }; + (0, vue.onMounted)(() => { + (0, vue.nextTick)(() => { + !props.arrowControl && bindScrollEvent(); + adjustSpinners(); + if (props.role === "start") emitSelectRange("hours"); + }); + }); + const setRef = (scrollbar, type) => { + listRefsMap[type].value = scrollbar ?? void 0; + }; + emit("set-option", [`${props.role}_scrollDown`, scrollDown]); + emit("set-option", [`${props.role}_emitSelectRange`, emitSelectRange]); + (0, vue.watch)(() => props.spinnerDate, () => { + if (isScrolling) return; + adjustSpinners(); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("spinner"), { "has-seconds": _ctx.showSeconds }]) }, [!_ctx.arrowControl ? ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, (0, vue.renderList)(spinnerItems.value, (item) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElScrollbar), { + key: item, + ref_for: true, + ref: (scrollbar) => setRef(scrollbar, item), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("spinner", "wrapper")), + "wrap-style": "max-height: inherit;", + "view-class": (0, vue.unref)(ns).be("spinner", "list"), + noresize: "", + tag: "ul", + onMouseenter: ($event) => emitSelectRange(item), + onMousemove: ($event) => adjustCurrentSpinner(item) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(timeList.value[item], (disabled, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).be("spinner", "item"), + (0, vue.unref)(ns).is("active", key === timePartials.value[item]), + (0, vue.unref)(ns).is("disabled", disabled) + ]), + onClick: ($event) => handleClick(item, { + value: key, + disabled + }) + }, [item === "hours" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(("0" + (_ctx.amPmMode ? key % 12 || 12 : key)).slice(-2)) + (0, vue.toDisplayString)(getAmPmFlag(key)), 1)], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(("0" + key).slice(-2)), 1)], 64))], 10, _hoisted_1$70); + }), 128))]), + _: 2 + }, 1032, [ + "class", + "view-class", + "onMouseenter", + "onMousemove" + ]); + }), 128)) : (0, vue.createCommentVNode)("v-if", true), _ctx.arrowControl ? ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, (0, vue.renderList)(spinnerItems.value, (item) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: item, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("spinner", "wrapper"), (0, vue.unref)(ns).is("arrow")]), + onMouseenter: ($event) => emitSelectRange(item) + }, [ + (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)(["arrow-up", (0, vue.unref)(ns).be("spinner", "arrow")]) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_up_default))]), + _: 1 + }, 8, ["class"])), [[(0, vue.unref)(vRepeatClick), onDecrement]]), + (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)(["arrow-down", (0, vue.unref)(ns).be("spinner", "arrow")]) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_down_default))]), + _: 1 + }, 8, ["class"])), [[(0, vue.unref)(vRepeatClick), onIncrement]]), + (0, vue.createElementVNode)("ul", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("spinner", "list")) }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(arrowControlTimeList.value[item], (time, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).be("spinner", "item"), + (0, vue.unref)(ns).is("active", time === timePartials.value[item]), + (0, vue.unref)(ns).is("disabled", timeList.value[item][time]) + ]) + }, [(0, vue.unref)(isNumber)(time) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [item === "hours" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(("0" + (_ctx.amPmMode ? time % 12 || 12 : time)).slice(-2)) + (0, vue.toDisplayString)(getAmPmFlag(time)), 1)], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(("0" + time).slice(-2)), 1)], 64))], 64)) : (0, vue.createCommentVNode)("v-if", true)], 2); + }), 128))], 2) + ], 42, _hoisted_2$39); + }), 128)) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker-com/basic-time-spinner.vue + var basic_time_spinner_default = basic_time_spinner_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker-com/panel-time-pick.vue?vue&type=script&setup=true&lang.ts + var panel_time_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "panel-time-pick", + props: panelTimePickerProps, + emits: [ + "pick", + "select-range", + "set-picker-option" + ], + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const pickerBase = (0, vue.inject)(PICKER_BASE_INJECTION_KEY); + const { arrowControl, disabledHours, disabledMinutes, disabledSeconds, defaultValue } = pickerBase.props; + const { getAvailableHours, getAvailableMinutes, getAvailableSeconds } = buildAvailableTimeSlotGetter(disabledHours, disabledMinutes, disabledSeconds); + const ns = useNamespace("time"); + const { t, lang } = useLocale(); + const selectionRange = (0, vue.ref)([0, 2]); + const oldValue = useOldValue(props, { + modelValue: (0, vue.computed)(() => pickerBase.props.modelValue), + valueOnClear: (0, vue.computed)(() => pickerBase?.emptyValues ? pickerBase.emptyValues.valueOnClear.value : null) + }); + const transitionName = (0, vue.computed)(() => { + return isUndefined(props.actualVisible) ? `${ns.namespace.value}-zoom-in-top` : ""; + }); + const showSeconds = (0, vue.computed)(() => { + return props.format.includes("ss"); + }); + const amPmMode = (0, vue.computed)(() => { + if (props.format.includes("A")) return "A"; + if (props.format.includes("a")) return "a"; + return ""; + }); + const isValidValue = (_date) => { + const parsedDate = (0, import_dayjs_min.default)(_date).locale(lang.value); + const result = getRangeAvailableTime(parsedDate); + return parsedDate.isSame(result); + }; + const handleCancel = () => { + const old = oldValue.value; + emit("pick", old, false); + (0, vue.nextTick)(() => { + oldValue.value = old; + }); + }; + const handleConfirm = (visible = false, first = false) => { + if (first) return; + emit("pick", props.parsedValue, visible); + }; + const handleChange = (_date) => { + if (!props.visible) return; + emit("pick", getRangeAvailableTime(_date).millisecond(0), true); + }; + const setSelectionRange = (start, end) => { + emit("select-range", start, end); + selectionRange.value = [start, end]; + }; + const changeSelectionRange = (step) => { + const actualFormat = props.format; + const hourIndex = actualFormat.indexOf("HH"); + const minuteIndex = actualFormat.indexOf("mm"); + const secondIndex = actualFormat.indexOf("ss"); + const list = []; + const mapping = []; + if (hourIndex !== -1) { + list.push(hourIndex); + mapping.push("hours"); + } + if (minuteIndex !== -1) { + list.push(minuteIndex); + mapping.push("minutes"); + } + if (secondIndex !== -1 && showSeconds.value) { + list.push(secondIndex); + mapping.push("seconds"); + } + const next = (list.indexOf(selectionRange.value[0]) + step + list.length) % list.length; + timePickerOptions["start_emitSelectRange"](mapping[next]); + }; + const handleKeydown = (event) => { + const code = getEventCode(event); + const { left, right, up, down } = EVENT_CODE; + if ([left, right].includes(code)) { + changeSelectionRange(code === left ? -1 : 1); + event.preventDefault(); + return; + } + if ([up, down].includes(code)) { + const step = code === up ? -1 : 1; + timePickerOptions["start_scrollDown"](step); + event.preventDefault(); + return; + } + }; + const { timePickerOptions, onSetOption, getAvailableTime } = useTimePanel({ + getAvailableHours, + getAvailableMinutes, + getAvailableSeconds + }); + const getRangeAvailableTime = (date) => { + return getAvailableTime(date, props.datetimeRole || "", true); + }; + const parseUserInput = (value) => { + if (!value) return null; + return (0, import_dayjs_min.default)(value, props.format).locale(lang.value); + }; + const getDefaultValue = () => { + return (0, import_dayjs_min.default)(defaultValue).locale(lang.value); + }; + emit("set-picker-option", ["isValidValue", isValidValue]); + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["handleKeydownInput", handleKeydown]); + emit("set-picker-option", ["getRangeAvailableTime", getRangeAvailableTime]); + emit("set-picker-option", ["getDefaultValue", getDefaultValue]); + emit("set-picker-option", ["handleCancel", handleCancel]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { name: transitionName.value }, { + default: (0, vue.withCtx)(() => [_ctx.actualVisible || _ctx.visible ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("panel")) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("panel", "content"), { "has-seconds": showSeconds.value }]) }, [(0, vue.createVNode)(basic_time_spinner_default, { + ref: "spinner", + role: _ctx.datetimeRole || "start", + "arrow-control": (0, vue.unref)(arrowControl), + "show-seconds": showSeconds.value, + "am-pm-mode": amPmMode.value, + "spinner-date": _ctx.parsedValue, + "disabled-hours": (0, vue.unref)(disabledHours), + "disabled-minutes": (0, vue.unref)(disabledMinutes), + "disabled-seconds": (0, vue.unref)(disabledSeconds), + onChange: handleChange, + onSetOption: (0, vue.unref)(onSetOption), + onSelectRange: setSelectionRange + }, null, 8, [ + "role", + "arrow-control", + "show-seconds", + "am-pm-mode", + "spinner-date", + "disabled-hours", + "disabled-minutes", + "disabled-seconds", + "onSetOption" + ])], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "footer")) }, [(0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("panel", "btn"), "cancel"]), + onClick: handleCancel + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.cancel")), 3), (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("panel", "btn"), "confirm"]), + onClick: _cache[0] || (_cache[0] = ($event) => handleConfirm()) + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.confirm")), 3)], 2)], 2)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 1 + }, 8, ["name"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker-com/panel-time-pick.vue + var panel_time_pick_default = panel_time_pick_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/time-picker/src/props/panel-time-range.ts + const panelTimeRangeProps = buildProps({ + ...timePanelSharedProps, + parsedValue: { type: definePropType(Array) } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker-com/panel-time-range.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$69 = ["disabled"]; + var panel_time_range_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "panel-time-range", + props: panelTimeRangeProps, + emits: [ + "pick", + "select-range", + "set-picker-option" + ], + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const makeSelectRange = (start, end) => { + const result = []; + for (let i = start; i <= end; i++) result.push(i); + return result; + }; + const { t, lang } = useLocale(); + const nsTime = useNamespace("time"); + const nsPicker = useNamespace("picker"); + const pickerBase = (0, vue.inject)(PICKER_BASE_INJECTION_KEY); + const { arrowControl, disabledHours, disabledMinutes, disabledSeconds, defaultValue } = pickerBase.props; + const startContainerKls = (0, vue.computed)(() => [ + nsTime.be("range-picker", "body"), + nsTime.be("panel", "content"), + nsTime.is("arrow", arrowControl), + showSeconds.value ? "has-seconds" : "" + ]); + const endContainerKls = (0, vue.computed)(() => [ + nsTime.be("range-picker", "body"), + nsTime.be("panel", "content"), + nsTime.is("arrow", arrowControl), + showSeconds.value ? "has-seconds" : "" + ]); + const startTime = (0, vue.computed)(() => props.parsedValue[0]); + const endTime = (0, vue.computed)(() => props.parsedValue[1]); + const oldValue = useOldValue(props, { + modelValue: (0, vue.computed)(() => pickerBase.props.modelValue), + valueOnClear: (0, vue.computed)(() => pickerBase?.emptyValues ? pickerBase.emptyValues.valueOnClear.value : null) + }); + const handleCancel = () => { + const old = oldValue.value; + emit("pick", old, false); + (0, vue.nextTick)(() => { + oldValue.value = old; + }); + }; + const showSeconds = (0, vue.computed)(() => { + return props.format.includes("ss"); + }); + const amPmMode = (0, vue.computed)(() => { + if (props.format.includes("A")) return "A"; + if (props.format.includes("a")) return "a"; + return ""; + }); + const handleConfirm = (visible = false) => { + emit("pick", [startTime.value, endTime.value], visible); + }; + const handleMinChange = (date) => { + handleChange(date.millisecond(0), endTime.value); + }; + const handleMaxChange = (date) => { + handleChange(startTime.value, date.millisecond(0)); + }; + const isValidValue = (_date) => { + const parsedDate = _date.map((_) => (0, import_dayjs_min.default)(_).locale(lang.value)); + const result = getRangeAvailableTime(parsedDate); + return parsedDate[0].isSame(result[0]) && parsedDate[1].isSame(result[1]); + }; + const handleChange = (start, end) => { + if (!props.visible) return; + emit("pick", [start, end], true); + }; + const btnConfirmDisabled = (0, vue.computed)(() => { + return startTime.value > endTime.value; + }); + const selectionRange = (0, vue.ref)([0, 2]); + const setMinSelectionRange = (start, end) => { + emit("select-range", start, end, "min"); + selectionRange.value = [start, end]; + }; + const offset = (0, vue.computed)(() => showSeconds.value ? 11 : 8); + const setMaxSelectionRange = (start, end) => { + emit("select-range", start, end, "max"); + const _offset = (0, vue.unref)(offset); + selectionRange.value = [start + _offset, end + _offset]; + }; + const changeSelectionRange = (step) => { + const list = showSeconds.value ? [ + 0, + 3, + 6, + 11, + 14, + 17 + ] : [ + 0, + 3, + 8, + 11 + ]; + const mapping = ["hours", "minutes"].concat(showSeconds.value ? ["seconds"] : []); + const next = (list.indexOf(selectionRange.value[0]) + step + list.length) % list.length; + const half = list.length / 2; + if (next < half) timePickerOptions["start_emitSelectRange"](mapping[next]); + else timePickerOptions["end_emitSelectRange"](mapping[next - half]); + }; + const handleKeydown = (event) => { + const code = getEventCode(event); + const { left, right, up, down } = EVENT_CODE; + if ([left, right].includes(code)) { + changeSelectionRange(code === left ? -1 : 1); + event.preventDefault(); + return; + } + if ([up, down].includes(code)) { + const step = code === up ? -1 : 1; + timePickerOptions[`${selectionRange.value[0] < offset.value ? "start" : "end"}_scrollDown`](step); + event.preventDefault(); + return; + } + }; + const disabledHours_ = (role, compare) => { + const defaultDisable = disabledHours ? disabledHours(role) : []; + const isStart = role === "start"; + const compareHour = (compare || (isStart ? endTime.value : startTime.value)).hour(); + return union(defaultDisable, isStart ? makeSelectRange(compareHour + 1, 23) : makeSelectRange(0, compareHour - 1)); + }; + const disabledMinutes_ = (hour, role, compare) => { + const defaultDisable = disabledMinutes ? disabledMinutes(hour, role) : []; + const isStart = role === "start"; + const compareDate = compare || (isStart ? endTime.value : startTime.value); + if (hour !== compareDate.hour()) return defaultDisable; + const compareMinute = compareDate.minute(); + return union(defaultDisable, isStart ? makeSelectRange(compareMinute + 1, 59) : makeSelectRange(0, compareMinute - 1)); + }; + const disabledSeconds_ = (hour, minute, role, compare) => { + const defaultDisable = disabledSeconds ? disabledSeconds(hour, minute, role) : []; + const isStart = role === "start"; + const compareDate = compare || (isStart ? endTime.value : startTime.value); + const compareHour = compareDate.hour(); + const compareMinute = compareDate.minute(); + if (hour !== compareHour || minute !== compareMinute) return defaultDisable; + const compareSecond = compareDate.second(); + return union(defaultDisable, isStart ? makeSelectRange(compareSecond + 1, 59) : makeSelectRange(0, compareSecond - 1)); + }; + const getRangeAvailableTime = ([start, end]) => { + return [getAvailableTime(start, "start", true, end), getAvailableTime(end, "end", false, start)]; + }; + const { getAvailableHours, getAvailableMinutes, getAvailableSeconds } = buildAvailableTimeSlotGetter(disabledHours_, disabledMinutes_, disabledSeconds_); + const { timePickerOptions, getAvailableTime, onSetOption } = useTimePanel({ + getAvailableHours, + getAvailableMinutes, + getAvailableSeconds + }); + const parseUserInput = (days) => { + if (!days) return null; + if (isArray$1(days)) return days.map((d) => (0, import_dayjs_min.default)(d, props.format).locale(lang.value)); + return (0, import_dayjs_min.default)(days, props.format).locale(lang.value); + }; + const getDefaultValue = () => { + if (isArray$1(defaultValue)) return defaultValue.map((d) => (0, import_dayjs_min.default)(d).locale(lang.value)); + const defaultDay = (0, import_dayjs_min.default)(defaultValue).locale(lang.value); + return [defaultDay, defaultDay.add(60, "m")]; + }; + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["isValidValue", isValidValue]); + emit("set-picker-option", ["handleKeydownInput", handleKeydown]); + emit("set-picker-option", ["getDefaultValue", getDefaultValue]); + emit("set-picker-option", ["getRangeAvailableTime", getRangeAvailableTime]); + emit("set-picker-option", ["handleCancel", handleCancel]); + return (_ctx, _cache) => { + return _ctx.actualVisible ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsTime).b("range-picker"), (0, vue.unref)(nsPicker).b("panel")]) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsTime).be("range-picker", "content")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsTime).be("range-picker", "cell")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsTime).be("range-picker", "header")) }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.startTime")), 3), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(startContainerKls.value) }, [(0, vue.createVNode)(basic_time_spinner_default, { + ref: "minSpinner", + role: "start", + "show-seconds": showSeconds.value, + "am-pm-mode": amPmMode.value, + "arrow-control": (0, vue.unref)(arrowControl), + "spinner-date": startTime.value, + "disabled-hours": disabledHours_, + "disabled-minutes": disabledMinutes_, + "disabled-seconds": disabledSeconds_, + onChange: handleMinChange, + onSetOption: (0, vue.unref)(onSetOption), + onSelectRange: setMinSelectionRange + }, null, 8, [ + "show-seconds", + "am-pm-mode", + "arrow-control", + "spinner-date", + "onSetOption" + ])], 2)], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsTime).be("range-picker", "cell")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsTime).be("range-picker", "header")) }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.endTime")), 3), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(endContainerKls.value) }, [(0, vue.createVNode)(basic_time_spinner_default, { + ref: "maxSpinner", + role: "end", + "show-seconds": showSeconds.value, + "am-pm-mode": amPmMode.value, + "arrow-control": (0, vue.unref)(arrowControl), + "spinner-date": endTime.value, + "disabled-hours": disabledHours_, + "disabled-minutes": disabledMinutes_, + "disabled-seconds": disabledSeconds_, + onChange: handleMaxChange, + onSetOption: (0, vue.unref)(onSetOption), + onSelectRange: setMaxSelectionRange + }, null, 8, [ + "show-seconds", + "am-pm-mode", + "arrow-control", + "spinner-date", + "onSetOption" + ])], 2)], 2)], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsTime).be("panel", "footer")) }, [(0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(nsTime).be("panel", "btn"), "cancel"]), + onClick: _cache[0] || (_cache[0] = ($event) => handleCancel()) + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.cancel")), 3), (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(nsTime).be("panel", "btn"), "confirm"]), + disabled: btnConfirmDisabled.value, + onClick: _cache[1] || (_cache[1] = ($event) => handleConfirm()) + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.confirm")), 11, _hoisted_1$69)], 2)], 2)) : (0, vue.createCommentVNode)("v-if", true); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker-com/panel-time-range.vue + var panel_time_range_default = panel_time_range_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker.tsx + import_dayjs_min.default.extend(import_customParseFormat.default); + var time_picker_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTimePicker", + install: null, + props: { + ...timePickerDefaultProps, + isRange: Boolean + }, + emits: [UPDATE_MODEL_EVENT], + setup(props, ctx) { + const commonPicker = (0, vue.ref)(); + const [type, Panel] = props.isRange ? ["timerange", panel_time_range_default] : ["time", panel_time_pick_default]; + const modelUpdater = (value) => ctx.emit(UPDATE_MODEL_EVENT, value); + (0, vue.provide)(PICKER_POPPER_OPTIONS_INJECTION_KEY, props.popperOptions); + ctx.expose({ + focus: () => { + commonPicker.value?.focus(); + }, + blur: () => { + commonPicker.value?.blur(); + }, + handleOpen: () => { + commonPicker.value?.handleOpen(); + }, + handleClose: () => { + commonPicker.value?.handleClose(); + } + }); + return () => { + const format = props.format ?? DEFAULT_FORMATS_TIME; + return (0, vue.createVNode)(picker_default, (0, vue.mergeProps)(props, { + "ref": commonPicker, + "type": type, + "format": format, + "onUpdate:modelValue": modelUpdater + }), { default: (props) => (0, vue.createVNode)(Panel, props, null) }); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-picker/index.ts + const ElTimePicker = withInstall(time_picker_default); + +//#endregion +//#region ../../packages/components/calendar/src/date-table.ts + const getPrevMonthLastDays = (date, count) => { + const lastDay = date.subtract(1, "month").endOf("month").date(); + return rangeArr(count).map((_, index) => lastDay - (count - index - 1)); + }; + const getMonthDays = (date) => { + return rangeArr(date.daysInMonth()).map((_, index) => index + 1); + }; + const toNestedArr = (days) => rangeArr(days.length / 7).map((index) => { + const start = index * 7; + return days.slice(start, start + 7); + }); + /** + * @deprecated Removed after 3.0.0, Use `DateTableProps` instead. + */ + const dateTableProps = buildProps({ + selectedDay: { type: definePropType(Object) }, + range: { type: definePropType(Array) }, + date: { + type: definePropType(Object), + required: true + }, + hideHeader: { type: Boolean } + }); + const dateTableEmits = { pick: (value) => isObject$1(value) }; + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/localeData.js + var require_localeData = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(n, e) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (n = "undefined" != typeof globalThis ? globalThis : n || self).dayjs_plugin_localeData = e(); + })(exports, (function() { + "use strict"; + return function(n, e, t) { + var r = e.prototype, o = function(n) { + return n && (n.indexOf ? n : n.s); + }, u = function(n, e, t, r, u) { + var i = n.name ? n : n.$locale(), a = o(i[e]), s = o(i[t]), f = a || s.map((function(n) { + return n.slice(0, r); + })); + if (!u) return f; + var d = i.weekStart; + return f.map((function(n, e) { + return f[(e + (d || 0)) % 7]; + })); + }, i = function() { + return t.Ls[t.locale()]; + }, a = function(n, e) { + return n.formats[e] || function(n) { + return n.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, (function(n, e, t) { + return e || t.slice(1); + })); + }(n.formats[e.toUpperCase()]); + }, s = function() { + var n = this; + return { + months: function(e) { + return e ? e.format("MMMM") : u(n, "months"); + }, + monthsShort: function(e) { + return e ? e.format("MMM") : u(n, "monthsShort", "months", 3); + }, + firstDayOfWeek: function() { + return n.$locale().weekStart || 0; + }, + weekdays: function(e) { + return e ? e.format("dddd") : u(n, "weekdays"); + }, + weekdaysMin: function(e) { + return e ? e.format("dd") : u(n, "weekdaysMin", "weekdays", 2); + }, + weekdaysShort: function(e) { + return e ? e.format("ddd") : u(n, "weekdaysShort", "weekdays", 3); + }, + longDateFormat: function(e) { + return a(n.$locale(), e); + }, + meridiem: this.$locale().meridiem, + ordinal: this.$locale().ordinal + }; + }; + r.localeData = function() { + return s.bind(this)(); + }, t.localeData = function() { + var n = i(); + return { + firstDayOfWeek: function() { + return n.weekStart || 0; + }, + weekdays: function() { + return t.weekdays(); + }, + weekdaysShort: function() { + return t.weekdaysShort(); + }, + weekdaysMin: function() { + return t.weekdaysMin(); + }, + months: function() { + return t.months(); + }, + monthsShort: function() { + return t.monthsShort(); + }, + longDateFormat: function(e) { + return a(n, e); + }, + meridiem: n.meridiem, + ordinal: n.ordinal + }; + }, t.months = function() { + return u(i(), "months"); + }, t.monthsShort = function() { + return u(i(), "monthsShort", "months", 3); + }, t.weekdays = function(n) { + return u(i(), "weekdays", null, null, n); + }, t.weekdaysShort = function(n) { + return u(i(), "weekdaysShort", "weekdays", 3, n); + }, t.weekdaysMin = function(n) { + return u(i(), "weekdaysMin", "weekdays", 2, n); + }; + }; + })); + })); + +//#endregion +//#region ../../packages/components/calendar/src/use-date-table.ts + var import_localeData = /* @__PURE__ */ __toESM(require_localeData()); + const useDateTable = (props, emit) => { + import_dayjs_min.default.extend(import_localeData.default); + const firstDayOfWeek = import_dayjs_min.default.localeData().firstDayOfWeek(); + const { t, lang } = useLocale(); + const now = (0, import_dayjs_min.default)().locale(lang.value); + const isInRange = (0, vue.computed)(() => !!props.range && !!props.range.length); + const rows = (0, vue.computed)(() => { + let days = []; + if (isInRange.value) { + const [start, end] = props.range; + const currentMonthRange = rangeArr(end.date() - start.date() + 1).map((index) => ({ + text: start.date() + index, + type: "current" + })); + let remaining = currentMonthRange.length % 7; + remaining = remaining === 0 ? 0 : 7 - remaining; + const nextMonthRange = rangeArr(remaining).map((_, index) => ({ + text: index + 1, + type: "next" + })); + days = currentMonthRange.concat(nextMonthRange); + } else { + const firstDay = props.date.startOf("month").day(); + const prevMonthDays = getPrevMonthLastDays(props.date, (firstDay - firstDayOfWeek + 7) % 7).map((day) => ({ + text: day, + type: "prev" + })); + const currentMonthDays = getMonthDays(props.date).map((day) => ({ + text: day, + type: "current" + })); + days = [...prevMonthDays, ...currentMonthDays]; + const nextMonthDays = rangeArr(7 - (days.length % 7 || 7)).map((_, index) => ({ + text: index + 1, + type: "next" + })); + days = days.concat(nextMonthDays); + } + return toNestedArr(days); + }); + const weekDays = (0, vue.computed)(() => { + const start = firstDayOfWeek; + if (start === 0) return WEEK_DAYS.map((_) => t(`el.datepicker.weeks.${_}`)); + else return WEEK_DAYS.slice(start).concat(WEEK_DAYS.slice(0, start)).map((_) => t(`el.datepicker.weeks.${_}`)); + }); + const getFormattedDate = (day, type) => { + switch (type) { + case "prev": return props.date.startOf("month").subtract(1, "month").date(day); + case "next": return props.date.startOf("month").add(1, "month").date(day); + case "current": return props.date.date(day); + } + }; + const handlePickDay = ({ text, type }) => { + emit("pick", getFormattedDate(text, type)); + }; + const getSlotData = ({ text, type }) => { + const day = getFormattedDate(text, type); + return { + isSelected: day.isSame(props.selectedDay), + type: `${type}-month`, + day: day.format(DEFAULT_FORMATS_DATE), + date: day.toDate() + }; + }; + return { + now, + isInRange, + rows, + weekDays, + getFormattedDate, + handlePickDay, + getSlotData + }; + }; + +//#endregion +//#region ../../packages/components/calendar/src/date-table.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$68 = { key: 0 }; + const _hoisted_2$38 = ["onClick"]; + var date_table_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "DateTable", + __name: "date-table", + props: dateTableProps, + emits: dateTableEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const { isInRange, now, rows, weekDays, getFormattedDate, handlePickDay, getSlotData } = useDateTable(props, __emit); + const nsTable = useNamespace("calendar-table"); + const nsDay = useNamespace("calendar-day"); + const getCellClass = ({ text, type }) => { + const classes = [type]; + if (type === "current") { + const date = getFormattedDate(text, type); + if (date.isSame(props.selectedDay, "day")) classes.push(nsDay.is("selected")); + if (date.isSame(now, "day")) classes.push(nsDay.is("today")); + } + return classes; + }; + __expose({ getFormattedDate }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("table", { + class: (0, vue.normalizeClass)([(0, vue.unref)(nsTable).b(), (0, vue.unref)(nsTable).is("range", (0, vue.unref)(isInRange))]), + cellspacing: "0", + cellpadding: "0" + }, [!__props.hideHeader ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("thead", _hoisted_1$68, [(0, vue.createElementVNode)("tr", null, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(weekDays), (day) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("th", { + key: day, + scope: "col" + }, (0, vue.toDisplayString)(day), 1); + }), 128))])])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("tbody", null, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(rows), (row, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("tr", { + key: index, + class: (0, vue.normalizeClass)({ + [(0, vue.unref)(nsTable).e("row")]: true, + [(0, vue.unref)(nsTable).em("row", "hide-border")]: index === 0 && __props.hideHeader + }) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(row, (cell, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("td", { + key, + class: (0, vue.normalizeClass)(getCellClass(cell)), + onClick: ($event) => (0, vue.unref)(handlePickDay)(cell) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsDay).b()) }, [(0, vue.renderSlot)(_ctx.$slots, "date-cell", { data: (0, vue.unref)(getSlotData)(cell) }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(cell.text), 1)])], 2)], 10, _hoisted_2$38); + }), 128))], 2); + }), 128))])], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/calendar/src/date-table.vue + var date_table_default = date_table_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/calendar/src/use-calendar.ts + const adjacentMonth = (start, end) => { + const firstMonthLastDay = start.endOf("month"); + const lastMonthFirstDay = end.startOf("month"); + const lastMonthStartDay = firstMonthLastDay.isSame(lastMonthFirstDay, "week") ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay; + return [[start, firstMonthLastDay], [lastMonthStartDay.startOf("week"), end]]; + }; + const threeConsecutiveMonth = (start, end) => { + const firstMonthLastDay = start.endOf("month"); + const secondMonthFirstDay = start.add(1, "month").startOf("month"); + const secondMonthStartDay = firstMonthLastDay.isSame(secondMonthFirstDay, "week") ? secondMonthFirstDay.add(1, "week") : secondMonthFirstDay; + const secondMonthLastDay = secondMonthStartDay.endOf("month"); + const lastMonthFirstDay = end.startOf("month"); + const lastMonthStartDay = secondMonthLastDay.isSame(lastMonthFirstDay, "week") ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay; + return [ + [start, firstMonthLastDay], + [secondMonthStartDay.startOf("week"), secondMonthLastDay], + [lastMonthStartDay.startOf("week"), end] + ]; + }; + const useCalendar = (props, emit, componentName) => { + const { lang } = useLocale(); + const selectedDay = (0, vue.ref)(); + const now = (0, import_dayjs_min.default)().locale(lang.value); + const realSelectedDay = (0, vue.computed)({ + get() { + if (!props.modelValue) return selectedDay.value; + return date.value; + }, + set(val) { + if (!val) return; + selectedDay.value = val; + const result = val.toDate(); + emit(INPUT_EVENT, result); + emit(UPDATE_MODEL_EVENT, result); + } + }); + const validatedRange = (0, vue.computed)(() => { + if (!props.range || !isArray$1(props.range) || props.range.length !== 2 || props.range.some((item) => !isDate(item))) return []; + const [startDayjs, endDayjs] = props.range.map((_) => (0, import_dayjs_min.default)(_).locale(lang.value)); + if (startDayjs.isAfter(endDayjs)) { + /* @__PURE__ */ debugWarn(componentName, "end time should be greater than start time"); + return []; + } + if (startDayjs.isSame(endDayjs, "month")) return calculateValidatedDateRange(startDayjs, endDayjs); + else { + if (startDayjs.add(1, "month").month() !== endDayjs.month()) { + /* @__PURE__ */ debugWarn(componentName, "start time and end time interval must not exceed two months"); + return []; + } + return calculateValidatedDateRange(startDayjs, endDayjs); + } + }); + const date = (0, vue.computed)(() => { + if (!props.modelValue) return realSelectedDay.value || (validatedRange.value.length ? validatedRange.value[0][0] : now); + else return (0, import_dayjs_min.default)(props.modelValue).locale(lang.value); + }); + const prevMonthDayjs = (0, vue.computed)(() => date.value.subtract(1, "month").date(1)); + const nextMonthDayjs = (0, vue.computed)(() => date.value.add(1, "month").date(1)); + const prevYearDayjs = (0, vue.computed)(() => date.value.subtract(1, "year").date(1)); + const nextYearDayjs = (0, vue.computed)(() => date.value.add(1, "year").date(1)); + const calculateValidatedDateRange = (startDayjs, endDayjs) => { + const firstDay = startDayjs.startOf("week"); + const lastDay = endDayjs.endOf("week"); + const firstMonth = firstDay.get("month"); + const lastMonth = lastDay.get("month"); + if (firstMonth === lastMonth) return [[firstDay, lastDay]]; + else if ((firstMonth + 1) % 12 === lastMonth) return adjacentMonth(firstDay, lastDay); + else if (firstMonth + 2 === lastMonth || (firstMonth + 1) % 11 === lastMonth) return threeConsecutiveMonth(firstDay, lastDay); + else { + /* @__PURE__ */ debugWarn(componentName, "start time and end time interval must not exceed two months"); + return []; + } + }; + const pickDay = (day) => { + realSelectedDay.value = day; + }; + const selectDate = (type) => { + const day = { + "prev-month": prevMonthDayjs.value, + "next-month": nextMonthDayjs.value, + "prev-year": prevYearDayjs.value, + "next-year": nextYearDayjs.value, + today: now + }[type]; + if (!day.isSame(date.value, "day")) pickDay(day); + }; + const handleDateChange = (date) => { + if (date === "today") selectDate("today"); + else pickDay(date); + }; + return { + calculateValidatedDateRange, + date, + realSelectedDay, + pickDay, + selectDate, + validatedRange, + handleDateChange + }; + }; + +//#endregion +//#region ../../packages/components/calendar/src/select-controller.ts +/** + * @deprecated Removed after 3.0.0, Use `SelectControllerProps` instead. + */ + const selectControllerProps = buildProps({ + date: { + type: definePropType(Object), + required: true + }, + formatter: { type: definePropType(Function) } + }); + const selectControllerEmits = { "date-change": (date) => isObject$1(date) || isString(date) }; + +//#endregion +//#region ../../packages/components/tag/src/tag.ts +/** + * @deprecated Removed after 3.0.0, Use `TagProps` instead. + */ + const tagProps = buildProps({ + type: { + type: String, + values: [ + "primary", + "success", + "info", + "warning", + "danger" + ], + default: "primary" + }, + closable: Boolean, + disableTransitions: Boolean, + hit: Boolean, + color: String, + size: { + type: String, + values: componentSizes + }, + effect: { + type: String, + values: [ + "dark", + "light", + "plain" + ], + default: "light" + }, + round: Boolean + }); + const tagEmits = { + close: (evt) => evt instanceof MouseEvent, + click: (evt) => evt instanceof MouseEvent + }; + +//#endregion +//#region ../../packages/components/tag/src/tag.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$67 = ["aria-label"]; + const _hoisted_2$37 = ["aria-label"]; + var tag_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTag", + __name: "tag", + props: tagProps, + emits: tagEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const tagSize = useFormSize(); + const { t } = useLocale(); + const ns = useNamespace("tag"); + const containerKls = (0, vue.computed)(() => { + const { type, hit, effect, closable, round } = props; + return [ + ns.b(), + ns.is("closable", closable), + ns.m(type || "primary"), + ns.m(tagSize.value), + ns.m(effect), + ns.is("hit", hit), + ns.is("round", round) + ]; + }); + const handleClose = (event) => { + emit("close", event); + }; + const handleClick = (event) => { + emit("click", event); + }; + const handleVNodeMounted = (vnode) => { + if (vnode?.component?.subTree?.component?.bum) vnode.component.subTree.component.bum = null; + }; + return (_ctx, _cache) => { + return __props.disableTransitions ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)(containerKls.value), + style: (0, vue.normalizeStyle)({ backgroundColor: __props.color }), + onClick: handleClick + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2), __props.closable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + "aria-label": (0, vue.unref)(t)("el.tag.close"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close")), + type: "button", + onClick: (0, vue.withModifiers)(handleClose, ["stop"]) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + })], 10, _hoisted_1$67)) : (0, vue.createCommentVNode)("v-if", true)], 6)) : ((0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + key: 1, + name: `${(0, vue.unref)(ns).namespace.value}-zoom-in-center`, + appear: "", + onVnodeMounted: handleVNodeMounted + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)(containerKls.value), + style: (0, vue.normalizeStyle)({ backgroundColor: __props.color }), + onClick: handleClick + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2), __props.closable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + "aria-label": (0, vue.unref)(t)("el.tag.close"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close")), + type: "button", + onClick: (0, vue.withModifiers)(handleClose, ["stop"]) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + })], 10, _hoisted_2$37)) : (0, vue.createCommentVNode)("v-if", true)], 6)]), + _: 3 + }, 8, ["name"])); + }; + } + }); + +//#endregion +//#region ../../packages/components/tag/src/tag.vue + var tag_default = tag_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tag/index.ts + const ElTag = withInstall(tag_default); + +//#endregion +//#region ../../packages/components/select-v2/src/useProps.ts + const defaultProps$2 = { + label: "label", + value: "value", + disabled: "disabled", + options: "options" + }; + function useProps(props) { + const aliasProps = (0, vue.ref)({ + ...defaultProps$2, + ...props.props + }); + let cache = { ...props.props }; + (0, vue.watch)(() => props.props, (val) => { + if (!isEqual$1(val, cache)) { + aliasProps.value = { + ...defaultProps$2, + ...val + }; + cache = { ...val }; + } + }, { deep: true }); + const getLabel = (option) => get(option, aliasProps.value.label); + const getValue = (option) => get(option, aliasProps.value.value); + const getDisabled = (option) => get(option, aliasProps.value.disabled); + const getOptions = (option) => get(option, aliasProps.value.options); + return { + aliasProps, + getLabel, + getValue, + getDisabled, + getOptions + }; + } + +//#endregion +//#region ../../packages/components/select/src/token.ts + const selectGroupKey = Symbol("ElSelectGroup"); + const selectKey = Symbol("ElSelect"); + +//#endregion +//#region ../../packages/components/select/src/option.ts + const COMPONENT_NAME$14 = "ElOption"; + const optionProps = buildProps({ + value: { + type: [ + String, + Number, + Boolean, + Object + ], + required: true + }, + label: { type: [String, Number] }, + created: Boolean, + disabled: Boolean + }); + +//#endregion +//#region ../../packages/components/select/src/useOption.ts + function useOption$1(props, states) { + const select = (0, vue.inject)(selectKey); + if (!select) throwError(COMPONENT_NAME$14, "usage: "); + const selectGroup = (0, vue.inject)(selectGroupKey, { disabled: false }); + const itemSelected = (0, vue.computed)(() => { + return contains(castArray$1(select.props.modelValue), props.value); + }); + const limitReached = (0, vue.computed)(() => { + if (select.props.multiple) { + const modelValue = castArray$1(select.props.modelValue ?? []); + return !itemSelected.value && modelValue.length >= select.props.multipleLimit && select.props.multipleLimit > 0; + } else return false; + }); + const currentLabel = (0, vue.computed)(() => { + return props.label ?? (isObject$1(props.value) ? "" : props.value); + }); + const currentValue = (0, vue.computed)(() => { + return props.value || props.label || ""; + }); + const isDisabled = (0, vue.computed)(() => { + return props.disabled || states.groupDisabled || limitReached.value; + }); + const instance = (0, vue.getCurrentInstance)(); + const contains = (arr = [], target) => { + if (!isObject$1(props.value)) return arr && arr.includes(target); + else { + const valueKey = select.props.valueKey; + return arr && arr.some((item) => { + return (0, vue.toRaw)(get(item, valueKey)) === get(target, valueKey); + }); + } + }; + const hoverItem = () => { + if (!isDisabled.value) select.states.hoveringIndex = select.optionsArray.indexOf(instance.proxy); + }; + const updateOption = (query) => { + states.visible = new RegExp(escapeStringRegexp(query), "i").test(String(currentLabel.value)) || props.created; + }; + (0, vue.watch)(() => currentLabel.value, () => { + if (!props.created && !select.props.remote) select.setSelected(); + }); + (0, vue.watch)(() => props.value, (val, oldVal) => { + const { remote, valueKey } = select.props; + if (remote ? val !== oldVal : !isEqual$1(val, oldVal)) { + select.onOptionDestroy(oldVal, instance.proxy); + select.onOptionCreate(instance.proxy); + } + if (!props.created && !remote) { + if (valueKey && isObject$1(val) && isObject$1(oldVal) && val[valueKey] === oldVal[valueKey]) return; + select.setSelected(); + } + }); + (0, vue.watch)(() => selectGroup.disabled, () => { + states.groupDisabled = selectGroup.disabled; + }, { immediate: true }); + return { + select, + currentLabel, + currentValue, + itemSelected, + isDisabled, + hoverItem, + updateOption + }; + } + +//#endregion +//#region ../../packages/components/select/src/option.vue?vue&type=script&lang.ts + var option_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: COMPONENT_NAME$14, + componentName: COMPONENT_NAME$14, + props: optionProps, + setup(props) { + const ns = useNamespace("select"); + const id = useId(); + const containerKls = (0, vue.computed)(() => [ + ns.be("dropdown", "item"), + ns.is("disabled", (0, vue.unref)(isDisabled)), + ns.is("selected", (0, vue.unref)(itemSelected)), + ns.is("hovering", (0, vue.unref)(hover)) + ]); + const states = (0, vue.reactive)({ + index: -1, + groupDisabled: false, + visible: true, + hover: false + }); + const { currentLabel, itemSelected, isDisabled, select, hoverItem, updateOption } = useOption$1(props, states); + const { visible, hover } = (0, vue.toRefs)(states); + const vm = (0, vue.getCurrentInstance)().proxy; + select.onOptionCreate(vm); + (0, vue.onBeforeUnmount)(() => { + const key = vm.value; + (0, vue.nextTick)(() => { + const { selected: selectedOptions } = select.states; + const doesSelected = selectedOptions.some((item) => { + return item.value === vm.value; + }); + if (select.states.cachedOptions.get(key) === vm && !doesSelected) select.states.cachedOptions.delete(key); + }); + select.onOptionDestroy(key, vm); + }); + function selectOptionClick() { + if (!isDisabled.value) select.handleOptionSelect(vm); + } + const handleMousedown = (event) => { + let target = event.target; + const currentTarget = event.currentTarget; + while (target && target !== currentTarget) { + if (isFocusable(target)) return; + target = target.parentElement; + } + event.preventDefault(); + }; + return { + ns, + id, + containerKls, + currentLabel, + itemSelected, + isDisabled, + select, + visible, + hover, + states, + hoverItem, + handleMousedown, + updateOption, + selectOptionClick + }; + } + }); + +//#endregion +//#region ../../packages/components/select/src/option.vue + const _hoisted_1$66 = [ + "id", + "aria-disabled", + "aria-selected" + ]; + function _sfc_render$20(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + id: _ctx.id, + class: (0, vue.normalizeClass)(_ctx.containerKls), + role: "option", + "aria-disabled": _ctx.isDisabled || void 0, + "aria-selected": _ctx.itemSelected, + onMousemove: _cache[0] || (_cache[0] = (...args) => _ctx.hoverItem && _ctx.hoverItem(...args)), + onMousedown: _cache[1] || (_cache[1] = (...args) => _ctx.handleMousedown && _ctx.handleMousedown(...args)), + onClick: _cache[2] || (_cache[2] = (0, vue.withModifiers)((...args) => _ctx.selectOptionClick && _ctx.selectOptionClick(...args), ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.currentLabel), 1)])], 42, _hoisted_1$66)), [[vue.vShow, _ctx.visible]]); + } + var option_default = /* @__PURE__ */ _plugin_vue_export_helper_default(option_vue_vue_type_script_lang_default, [["render", _sfc_render$20]]); + +//#endregion +//#region ../../packages/components/select/src/select-dropdown.vue?vue&type=script&lang.ts + var select_dropdown_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElSelectDropdown", + componentName: "ElSelectDropdown", + setup() { + const select = (0, vue.inject)(selectKey); + const ns = useNamespace("select"); + const popperClass = (0, vue.computed)(() => select.props.popperClass); + const isMultiple = (0, vue.computed)(() => select.props.multiple); + const isFitInputWidth = (0, vue.computed)(() => select.props.fitInputWidth); + const minWidth = (0, vue.ref)(""); + function updateMinWidth() { + const offsetWidth = select.selectRef?.offsetWidth; + if (offsetWidth) minWidth.value = `${offsetWidth - BORDER_HORIZONTAL_WIDTH}px`; + else minWidth.value = ""; + } + (0, vue.onMounted)(() => { + updateMinWidth(); + useResizeObserver(select.selectRef, updateMinWidth); + }); + return { + ns, + minWidth, + popperClass, + isMultiple, + isFitInputWidth + }; + } + }); + +//#endregion +//#region ../../packages/components/select/src/select-dropdown.vue + function _sfc_render$19(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([ + _ctx.ns.b("dropdown"), + _ctx.ns.is("multiple", _ctx.isMultiple), + _ctx.popperClass + ]), + style: (0, vue.normalizeStyle)({ [_ctx.isFitInputWidth ? "width" : "minWidth"]: _ctx.minWidth }) + }, [ + _ctx.$slots.header ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)(_ctx.ns.be("dropdown", "header")) + }, [(0, vue.renderSlot)(_ctx.$slots, "header")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.renderSlot)(_ctx.$slots, "default"), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)(_ctx.ns.be("dropdown", "footer")) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 6); + } + var select_dropdown_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(select_dropdown_vue_vue_type_script_lang_default, [["render", _sfc_render$19]]); + +//#endregion +//#region ../../packages/components/select/src/useSelect.ts + const useSelect$2 = (props, emit) => { + const { t } = useLocale(); + const slots = (0, vue.useSlots)(); + const contentId = useId(); + const nsSelect = useNamespace("select"); + const nsInput = useNamespace("input"); + const states = (0, vue.reactive)({ + inputValue: "", + options: /* @__PURE__ */ new Map(), + cachedOptions: /* @__PURE__ */ new Map(), + optionValues: [], + selected: [], + selectionWidth: 0, + collapseItemWidth: 0, + selectedLabel: "", + hoveringIndex: -1, + previousQuery: null, + inputHovering: false, + menuVisibleOnFocus: false, + isBeforeHide: false + }); + const selectRef = (0, vue.ref)(); + const selectionRef = (0, vue.ref)(); + const tooltipRef = (0, vue.ref)(); + const tagTooltipRef = (0, vue.ref)(); + const inputRef = (0, vue.ref)(); + const prefixRef = (0, vue.ref)(); + const suffixRef = (0, vue.ref)(); + const menuRef = (0, vue.ref)(); + const tagMenuRef = (0, vue.ref)(); + const collapseItemRef = (0, vue.ref)(); + const scrollbarRef = (0, vue.ref)(); + const expanded = (0, vue.ref)(false); + const hoverOption = (0, vue.ref)(); + const debouncing = (0, vue.ref)(false); + const { form, formItem } = useFormItem(); + const { inputId } = useFormItemInputId(props, { formItemContext: formItem }); + const { valueOnClear, isEmptyValue } = useEmptyValues(props); + const { isComposing, handleCompositionStart, handleCompositionUpdate, handleCompositionEnd } = useComposition({ afterComposition: (e) => onInput(e) }); + const selectDisabled = useFormDisabled(); + const { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, { + disabled: selectDisabled, + afterFocus() { + if (props.automaticDropdown && !expanded.value) { + expanded.value = true; + states.menuVisibleOnFocus = true; + } + }, + beforeBlur(event) { + return tooltipRef.value?.isFocusInsideContent(event) || tagTooltipRef.value?.isFocusInsideContent(event); + }, + afterBlur() { + expanded.value = false; + states.menuVisibleOnFocus = false; + if (props.validateEvent) formItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const hasModelValue = (0, vue.computed)(() => { + return isArray$1(props.modelValue) ? props.modelValue.length > 0 : !isEmptyValue(props.modelValue); + }); + const needStatusIcon = (0, vue.computed)(() => form?.statusIcon ?? false); + const showClearBtn = (0, vue.computed)(() => { + return props.clearable && !selectDisabled.value && hasModelValue.value && (isFocused.value || states.inputHovering); + }); + const iconComponent = (0, vue.computed)(() => props.remote && props.filterable && !props.remoteShowSuffix ? "" : props.suffixIcon); + const iconReverse = (0, vue.computed)(() => nsSelect.is("reverse", !!(iconComponent.value && expanded.value))); + const validateState = (0, vue.computed)(() => formItem?.validateState || ""); + const validateIcon = (0, vue.computed)(() => validateState.value && ValidateComponentsMap[validateState.value]); + const debounce = (0, vue.computed)(() => props.remote ? props.debounce : 0); + const isRemoteSearchEmpty = (0, vue.computed)(() => props.remote && !states.inputValue && states.options.size === 0); + const emptyText = (0, vue.computed)(() => { + if (props.loading) return props.loadingText || t("el.select.loading"); + else { + if (props.filterable && states.inputValue && states.options.size > 0 && filteredOptionsCount.value === 0) return props.noMatchText || t("el.select.noMatch"); + if (states.options.size === 0) return props.noDataText || t("el.select.noData"); + } + return null; + }); + const filteredOptionsCount = (0, vue.computed)(() => optionsArray.value.filter((option) => option.visible).length); + const optionsArray = (0, vue.computed)(() => { + const list = Array.from(states.options.values()); + const newList = []; + states.optionValues.forEach((item) => { + const index = list.findIndex((i) => i.value === item); + if (index > -1) newList.push(list[index]); + }); + return newList.length >= list.length ? newList : list; + }); + const cachedOptionsArray = (0, vue.computed)(() => Array.from(states.cachedOptions.values())); + const showNewOption = (0, vue.computed)(() => { + const hasExistingOption = optionsArray.value.filter((option) => { + return !option.created; + }).some((option) => { + return option.currentLabel === states.inputValue; + }); + return props.filterable && props.allowCreate && states.inputValue !== "" && !hasExistingOption; + }); + const updateOptions = () => { + if (props.filterable && isFunction$1(props.filterMethod)) return; + if (props.filterable && props.remote && isFunction$1(props.remoteMethod)) return; + optionsArray.value.forEach((option) => { + option.updateOption?.(states.inputValue); + }); + }; + const selectSize = useFormSize(); + const collapseTagSize = (0, vue.computed)(() => ["small"].includes(selectSize.value) ? "small" : "default"); + const dropdownMenuVisible = (0, vue.computed)({ + get() { + return expanded.value && (props.loading || !isRemoteSearchEmpty.value || props.remote && !!slots.empty) && (!debouncing.value || !isEmpty(states.previousQuery) || states.options.size > 0); + }, + set(val) { + expanded.value = val; + } + }); + const shouldShowPlaceholder = (0, vue.computed)(() => { + if (props.multiple && !isUndefined(props.modelValue)) return castArray$1(props.modelValue).length === 0 && !states.inputValue; + const value = isArray$1(props.modelValue) ? props.modelValue[0] : props.modelValue; + return props.filterable || isUndefined(value) ? !states.inputValue : true; + }); + const currentPlaceholder = (0, vue.computed)(() => { + const _placeholder = props.placeholder ?? t("el.select.placeholder"); + return props.multiple || !hasModelValue.value ? _placeholder : states.selectedLabel; + }); + const mouseEnterEventName = (0, vue.computed)(() => isIOS ? null : "mouseenter"); + (0, vue.watch)(() => props.modelValue, (val, oldVal) => { + if (props.multiple) { + if (props.filterable && !props.reserveKeyword) { + states.inputValue = ""; + handleQueryChange(""); + } + } + setSelected(); + if (!isEqual$1(val, oldVal) && props.validateEvent) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }, { + flush: "post", + deep: true + }); + (0, vue.watch)(() => expanded.value, (val) => { + if (val) handleQueryChange(states.inputValue); + else { + states.inputValue = ""; + states.previousQuery = null; + states.isBeforeHide = true; + states.menuVisibleOnFocus = false; + } + }); + (0, vue.watch)(() => states.options.entries(), () => { + if (!isClient) return; + setSelected(); + if (props.defaultFirstOption && (props.filterable || props.remote) && filteredOptionsCount.value) checkDefaultFirstOption(); + }, { flush: "post" }); + (0, vue.watch)([() => states.hoveringIndex, optionsArray], ([val]) => { + if (isNumber(val) && val > -1) hoverOption.value = optionsArray.value[val] || {}; + else hoverOption.value = {}; + optionsArray.value.forEach((option) => { + option.hover = hoverOption.value === option; + }); + }); + (0, vue.watchEffect)(() => { + if (states.isBeforeHide) return; + updateOptions(); + }); + const handleQueryChange = (val) => { + if (states.previousQuery === val || isComposing.value) return; + states.previousQuery = val; + if (props.filterable && isFunction$1(props.filterMethod)) props.filterMethod(val); + else if (props.filterable && props.remote && isFunction$1(props.remoteMethod)) props.remoteMethod(val); + if (props.defaultFirstOption && (props.filterable || props.remote) && filteredOptionsCount.value) (0, vue.nextTick)(checkDefaultFirstOption); + else (0, vue.nextTick)(updateHoveringIndex); + }; + /** + * find and highlight first option as default selected + * @remark + * - if the first option in dropdown list is user-created, + * it would be at the end of the optionsArray + * so find it and set hover. + * (NOTE: there must be only one user-created option in dropdown list with query) + * - if there's no user-created option in list, just find the first one as usual + * (NOTE: exclude options that are disabled or in disabled-group) + */ + const checkDefaultFirstOption = () => { + const optionsInDropdown = optionsArray.value.filter((n) => n.visible && !n.disabled && !n.states.groupDisabled); + const userCreatedOption = optionsInDropdown.find((n) => n.created); + const firstOriginOption = optionsInDropdown[0]; + states.hoveringIndex = getValueIndex(optionsArray.value.map((item) => item.value), userCreatedOption || firstOriginOption); + }; + const setSelected = () => { + if (!props.multiple) { + const option = getOption(isArray$1(props.modelValue) ? props.modelValue[0] : props.modelValue); + states.selectedLabel = option.currentLabel; + states.selected = [option]; + return; + } else states.selectedLabel = ""; + const result = []; + if (!isUndefined(props.modelValue)) castArray$1(props.modelValue).forEach((value) => { + result.push(getOption(value)); + }); + states.selected = result; + }; + const getOption = (value) => { + let option; + const isObjectValue = isPlainObject$1(value); + for (let i = states.cachedOptions.size - 1; i >= 0; i--) { + const cachedOption = cachedOptionsArray.value[i]; + if (isObjectValue ? get(cachedOption.value, props.valueKey) === get(value, props.valueKey) : cachedOption.value === value) { + option = { + index: optionsArray.value.filter((opt) => !opt.created).indexOf(cachedOption), + value, + currentLabel: cachedOption.currentLabel, + get isDisabled() { + return cachedOption.isDisabled; + } + }; + break; + } + } + if (option) return option; + return { + index: -1, + value, + currentLabel: isObjectValue ? value.label : value ?? "" + }; + }; + const updateHoveringIndex = () => { + const length = states.selected.length; + if (length > 0) { + const lastOption = states.selected[length - 1]; + states.hoveringIndex = optionsArray.value.findIndex((item) => getValueKey(lastOption) === getValueKey(item)); + } else states.hoveringIndex = -1; + }; + const resetSelectionWidth = () => { + states.selectionWidth = Number.parseFloat(window.getComputedStyle(selectionRef.value).width); + }; + const resetCollapseItemWidth = () => { + states.collapseItemWidth = collapseItemRef.value.getBoundingClientRect().width; + }; + const updateTooltip = () => { + tooltipRef.value?.updatePopper?.(); + }; + const updateTagTooltip = () => { + tagTooltipRef.value?.updatePopper?.(); + }; + const onInputChange = () => { + if (states.inputValue.length > 0 && !expanded.value) expanded.value = true; + handleQueryChange(states.inputValue); + }; + const onInput = (event) => { + states.inputValue = event.target.value; + if (props.remote) { + debouncing.value = true; + debouncedOnInputChange(); + } else return onInputChange(); + }; + const debouncedOnInputChange = useDebounceFn(() => { + onInputChange(); + debouncing.value = false; + }, debounce); + const emitChange = (val) => { + if (!isEqual$1(props.modelValue, val)) emit(CHANGE_EVENT, val); + }; + const getLastNotDisabledIndex = (value) => findLastIndex(value, (it) => { + const option = states.cachedOptions.get(it); + return !option?.disabled && !option?.states.groupDisabled; + }); + const deletePrevTag = (e) => { + const code = getEventCode(e); + if (!props.multiple) return; + if (code === EVENT_CODE.delete) return; + if (e.target.value.length <= 0) { + const value = castArray$1(props.modelValue).slice(); + const lastNotDisabledIndex = getLastNotDisabledIndex(value); + if (lastNotDisabledIndex < 0) return; + const removeTagValue = value[lastNotDisabledIndex]; + value.splice(lastNotDisabledIndex, 1); + emit(UPDATE_MODEL_EVENT, value); + emitChange(value); + emit("remove-tag", removeTagValue); + } + }; + const deleteTag = (event, tag) => { + const index = states.selected.indexOf(tag); + if (index > -1 && !selectDisabled.value) { + const value = castArray$1(props.modelValue).slice(); + value.splice(index, 1); + emit(UPDATE_MODEL_EVENT, value); + emitChange(value); + emit("remove-tag", tag.value); + } + event.stopPropagation(); + focus(); + }; + const deleteSelected = (event) => { + event.stopPropagation(); + const value = props.multiple ? [] : valueOnClear.value; + if (props.multiple) { + for (const item of states.selected) if (item.isDisabled) value.push(item.value); + } + emit(UPDATE_MODEL_EVENT, value); + emitChange(value); + states.hoveringIndex = -1; + expanded.value = false; + emit("clear"); + focus(); + }; + const handleOptionSelect = (option) => { + if (props.multiple) { + const value = castArray$1(props.modelValue ?? []).slice(); + const optionIndex = getValueIndex(value, option); + if (optionIndex > -1) value.splice(optionIndex, 1); + else if (props.multipleLimit <= 0 || value.length < props.multipleLimit) value.push(option.value); + emit(UPDATE_MODEL_EVENT, value); + emitChange(value); + if (option.created) handleQueryChange(""); + if (props.filterable && (option.created || !props.reserveKeyword)) states.inputValue = ""; + } else { + !isEqual$1(props.modelValue, option.value) && emit(UPDATE_MODEL_EVENT, option.value); + emitChange(option.value); + expanded.value = false; + } + focus(); + if (expanded.value) return; + (0, vue.nextTick)(() => { + scrollToOption(option); + }); + }; + const getValueIndex = (arr, option) => { + if (isUndefined(option)) return -1; + if (!isObject$1(option.value)) return arr.indexOf(option.value); + return arr.findIndex((item) => { + return isEqual$1(get(item, props.valueKey), getValueKey(option)); + }); + }; + const scrollToOption = (option) => { + const targetOption = isArray$1(option) ? option[option.length - 1] : option; + let target = null; + if (!isNil(targetOption?.value)) { + const options = optionsArray.value.filter((item) => item.value === targetOption.value); + if (options.length > 0) target = options[0].$el; + } + if (tooltipRef.value && target) { + const menu = tooltipRef.value?.popperRef?.contentRef?.querySelector?.(`.${nsSelect.be("dropdown", "wrap")}`); + if (menu) scrollIntoView(menu, target); + } + scrollbarRef.value?.handleScroll(); + }; + const onOptionCreate = (vm) => { + states.options.set(vm.value, vm); + states.cachedOptions.set(vm.value, vm); + }; + const onOptionDestroy = (key, vm) => { + if (states.options.get(key) === vm) states.options.delete(key); + }; + const popperRef = (0, vue.computed)(() => { + return tooltipRef.value?.popperRef?.contentRef; + }); + const handleMenuEnter = () => { + states.isBeforeHide = false; + (0, vue.nextTick)(() => { + scrollbarRef.value?.update(); + scrollToOption(states.selected); + }); + }; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + if (expanded.value) { + expanded.value = false; + (0, vue.nextTick)(() => inputRef.value?.blur()); + return; + } + inputRef.value?.blur(); + }; + const handleClearClick = (event) => { + deleteSelected(event); + }; + const handleClickOutside = (event) => { + expanded.value = false; + if (isFocused.value) { + const _event = new FocusEvent("blur", event); + (0, vue.nextTick)(() => handleBlur(_event)); + } + }; + const handleEsc = () => { + if (states.inputValue.length > 0) states.inputValue = ""; + else expanded.value = false; + }; + const toggleMenu = (event) => { + if (selectDisabled.value || props.filterable && expanded.value && event && !suffixRef.value?.contains(event.target)) return; + if (isIOS) states.inputHovering = true; + if (states.menuVisibleOnFocus) states.menuVisibleOnFocus = false; + else expanded.value = !expanded.value; + }; + const selectOption = () => { + if (!expanded.value) toggleMenu(); + else { + const option = optionsArray.value[states.hoveringIndex]; + if (option && !option.isDisabled) handleOptionSelect(option); + } + }; + const getValueKey = (item) => { + return isObject$1(item.value) ? get(item.value, props.valueKey) : item.value; + }; + const optionsAllDisabled = (0, vue.computed)(() => optionsArray.value.filter((option) => option.visible).every((option) => option.isDisabled)); + const showTagList = (0, vue.computed)(() => { + if (!props.multiple) return []; + return props.collapseTags ? states.selected.slice(0, props.maxCollapseTags) : states.selected; + }); + const collapseTagList = (0, vue.computed)(() => { + if (!props.multiple) return []; + return props.collapseTags ? states.selected.slice(props.maxCollapseTags) : []; + }); + const navigateOptions = (direction) => { + if (!expanded.value) { + expanded.value = true; + return; + } + if (states.options.size === 0 || filteredOptionsCount.value === 0 || isComposing.value) return; + if (!optionsAllDisabled.value) { + if (direction === "next") { + states.hoveringIndex++; + if (states.hoveringIndex === states.options.size) states.hoveringIndex = 0; + } else if (direction === "prev") { + states.hoveringIndex--; + if (states.hoveringIndex < 0) states.hoveringIndex = states.options.size - 1; + } + const option = optionsArray.value[states.hoveringIndex]; + if (option.isDisabled || !option.visible) navigateOptions(direction); + (0, vue.nextTick)(() => scrollToOption(hoverOption.value)); + } + }; + const findFocusableIndex = (arr, start, step, len) => { + for (let i = start; i >= 0 && i < len; i += step) { + const obj = arr[i]; + if (!obj?.isDisabled && obj?.visible) return i; + } + return null; + }; + const focusOption = (targetIndex, mode) => { + const len = states.options.size; + if (len === 0) return; + const start = clamp$1(targetIndex, 0, len - 1); + const options = optionsArray.value; + const direction = mode === "up" ? -1 : 1; + const newIndex = findFocusableIndex(options, start, direction, len) ?? findFocusableIndex(options, start - direction, -direction, len); + if (newIndex != null) { + states.hoveringIndex = newIndex; + (0, vue.nextTick)(() => scrollToOption(hoverOption.value)); + } + }; + const handleKeydown = (e) => { + const code = getEventCode(e); + let isPreventDefault = true; + switch (code) { + case EVENT_CODE.up: + navigateOptions("prev"); + break; + case EVENT_CODE.down: + navigateOptions("next"); + break; + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + if (!isComposing.value) selectOption(); + break; + case EVENT_CODE.esc: + handleEsc(); + break; + case EVENT_CODE.backspace: + isPreventDefault = false; + deletePrevTag(e); + return; + case EVENT_CODE.home: + if (!expanded.value) return; + focusOption(0, "down"); + break; + case EVENT_CODE.end: + if (!expanded.value) return; + focusOption(states.options.size - 1, "up"); + break; + case EVENT_CODE.pageUp: + if (!expanded.value) return; + focusOption(states.hoveringIndex - 10, "up"); + break; + case EVENT_CODE.pageDown: + if (!expanded.value) return; + focusOption(states.hoveringIndex + 10, "down"); + break; + default: + isPreventDefault = false; + break; + } + if (isPreventDefault) { + e.preventDefault(); + e.stopPropagation(); + } + }; + const getGapWidth = () => { + if (!selectionRef.value) return 0; + const style = window.getComputedStyle(selectionRef.value); + return Number.parseFloat(style.gap || "6px"); + }; + const tagStyle = (0, vue.computed)(() => { + const gapWidth = getGapWidth(); + const inputSlotWidth = props.filterable ? gapWidth + MINIMUM_INPUT_WIDTH : 0; + return { maxWidth: `${collapseItemRef.value && props.maxCollapseTags === 1 ? states.selectionWidth - states.collapseItemWidth - gapWidth - inputSlotWidth : states.selectionWidth - inputSlotWidth}px` }; + }); + const collapseTagStyle = (0, vue.computed)(() => { + return { maxWidth: `${states.selectionWidth}px` }; + }); + const popupScroll = (data) => { + emit("popup-scroll", data); + }; + useResizeObserver(selectionRef, resetSelectionWidth); + useResizeObserver(wrapperRef, updateTooltip); + useResizeObserver(tagMenuRef, updateTagTooltip); + useResizeObserver(collapseItemRef, resetCollapseItemWidth); + let stop; + (0, vue.watch)(() => dropdownMenuVisible.value, (newVal) => { + if (newVal) stop = useResizeObserver(menuRef, updateTooltip).stop; + else { + stop?.(); + stop = void 0; + } + emit("visible-change", newVal); + }); + (0, vue.onMounted)(() => { + setSelected(); + }); + return { + inputId, + contentId, + nsSelect, + nsInput, + states, + isFocused, + expanded, + optionsArray, + hoverOption, + selectSize, + filteredOptionsCount, + updateTooltip, + updateTagTooltip, + debouncedOnInputChange, + onInput, + deletePrevTag, + deleteTag, + deleteSelected, + handleOptionSelect, + scrollToOption, + hasModelValue, + shouldShowPlaceholder, + currentPlaceholder, + mouseEnterEventName, + needStatusIcon, + showClearBtn, + iconComponent, + iconReverse, + validateState, + validateIcon, + showNewOption, + updateOptions, + collapseTagSize, + setSelected, + selectDisabled, + emptyText, + handleCompositionStart, + handleCompositionUpdate, + handleCompositionEnd, + handleKeydown, + onOptionCreate, + onOptionDestroy, + handleMenuEnter, + focus, + blur, + handleClearClick, + handleClickOutside, + handleEsc, + toggleMenu, + selectOption, + getValueKey, + navigateOptions, + dropdownMenuVisible, + showTagList, + collapseTagList, + popupScroll, + getOption, + tagStyle, + collapseTagStyle, + popperRef, + inputRef, + tooltipRef, + tagTooltipRef, + prefixRef, + suffixRef, + selectRef, + wrapperRef, + selectionRef, + scrollbarRef, + menuRef, + tagMenuRef, + collapseItemRef + }; + }; + +//#endregion +//#region ../../packages/components/select/src/options.ts + var options_default = (0, vue.defineComponent)({ + name: "ElOptions", + setup(_, { slots }) { + const select = (0, vue.inject)(selectKey); + let cachedValueList = []; + return () => { + const children = slots.default?.(); + const valueList = []; + function filterOptions(children) { + if (!isArray$1(children)) return; + children.forEach((item) => { + const name = (item?.type || {})?.name; + if (name === "ElOptionGroup") filterOptions(!isString(item.children) && !isArray$1(item.children) && isFunction$1(item.children?.default) ? item.children?.default() : item.children); + else if (name === "ElOption") valueList.push(item.props?.value); + else if (isArray$1(item.children)) filterOptions(item.children); + }); + } + if (children.length) filterOptions(children[0]?.children); + if (!isEqual$1(valueList, cachedValueList)) { + cachedValueList = valueList; + if (select) select.states.optionValues = valueList; + } + return children; + }; + } + }); + +//#endregion +//#region ../../packages/components/select/src/select.ts + const selectProps = buildProps({ + name: String, + id: String, + modelValue: { + type: definePropType([ + Array, + String, + Number, + Boolean, + Object + ]), + default: void 0 + }, + autocomplete: { + type: String, + default: "off" + }, + automaticDropdown: Boolean, + size: useSizeProp, + effect: { + type: definePropType(String), + default: "light" + }, + disabled: { + type: Boolean, + default: void 0 + }, + clearable: Boolean, + filterable: Boolean, + allowCreate: Boolean, + loading: Boolean, + popperClass: { + type: String, + default: "" + }, + popperStyle: { type: definePropType([String, Object]) }, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + remote: Boolean, + debounce: { + type: Number, + default: 300 + }, + loadingText: String, + noMatchText: String, + noDataText: String, + remoteMethod: { type: definePropType(Function) }, + filterMethod: { type: definePropType(Function) }, + multiple: Boolean, + multipleLimit: { + type: Number, + default: 0 + }, + placeholder: { type: String }, + defaultFirstOption: Boolean, + reserveKeyword: { + type: Boolean, + default: true + }, + valueKey: { + type: String, + default: "value" + }, + collapseTags: Boolean, + collapseTagsTooltip: Boolean, + tagTooltip: { + type: definePropType(Object), + default: () => ({}) + }, + maxCollapseTags: { + type: Number, + default: 1 + }, + teleported: useTooltipContentProps.teleported, + persistent: { + type: Boolean, + default: true + }, + clearIcon: { + type: iconPropType, + default: circle_close_default + }, + fitInputWidth: Boolean, + suffixIcon: { + type: iconPropType, + default: arrow_down_default + }, + tagType: { + ...tagProps.type, + default: "info" + }, + tagEffect: { + ...tagProps.effect, + default: "light" + }, + validateEvent: { + type: Boolean, + default: true + }, + remoteShowSuffix: Boolean, + showArrow: { + type: Boolean, + default: true + }, + offset: { + type: Number, + default: 12 + }, + placement: { + type: definePropType(String), + values: Ee, + default: "bottom-start" + }, + fallbackPlacements: { + type: definePropType(Array), + default: [ + "bottom-start", + "top-start", + "right", + "left" + ] + }, + tabindex: { + type: [String, Number], + default: 0 + }, + appendTo: useTooltipContentProps.appendTo, + options: { type: definePropType(Array) }, + props: { + type: definePropType(Object), + default: () => defaultProps$2 + }, + ...useEmptyValuesProps, + ...useAriaProps(["ariaLabel"]) + }); + const selectEmits = { + [UPDATE_MODEL_EVENT]: (val) => true, + [CHANGE_EVENT]: (val) => true, + "popup-scroll": scrollbarEmits.scroll, + "remove-tag": (val) => true, + "visible-change": (visible) => true, + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true + }; + +//#endregion +//#region ../../packages/components/select/src/option-group.vue?vue&type=script&lang.ts + var option_group_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElOptionGroup", + componentName: "ElOptionGroup", + props: { + label: String, + disabled: Boolean + }, + setup(props) { + const ns = useNamespace("select"); + const groupRef = (0, vue.ref)(); + const instance = (0, vue.getCurrentInstance)(); + const children = (0, vue.ref)([]); + (0, vue.provide)(selectGroupKey, (0, vue.reactive)({ ...(0, vue.toRefs)(props) })); + const visible = (0, vue.computed)(() => children.value.some((option) => option.visible === true)); + const isOption = (node) => node.type.name === "ElOption" && !!node.component?.proxy; + const flattedChildren = (node) => { + const nodes = castArray$1(node); + const children = []; + nodes.forEach((child) => { + if (!(0, vue.isVNode)(child)) return; + if (isOption(child)) children.push(child.component.proxy); + else if (isArray$1(child.children) && child.children.length) children.push(...flattedChildren(child.children)); + else if (child.component?.subTree) children.push(...flattedChildren(child.component.subTree)); + }); + return children; + }; + const updateChildren = () => { + children.value = flattedChildren(instance.subTree); + }; + (0, vue.onMounted)(() => { + updateChildren(); + }); + useMutationObserver(groupRef, updateChildren, { + attributes: true, + subtree: true, + childList: true + }); + return { + groupRef, + visible, + ns + }; + } + }); + +//#endregion +//#region ../../packages/components/select/src/option-group.vue + function _sfc_render$18(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("ul", { + ref: "groupRef", + class: (0, vue.normalizeClass)(_ctx.ns.be("group", "wrap")) + }, [(0, vue.createElementVNode)("li", { class: (0, vue.normalizeClass)(_ctx.ns.be("group", "title")) }, (0, vue.toDisplayString)(_ctx.label), 3), (0, vue.createElementVNode)("li", null, [(0, vue.createElementVNode)("ul", { class: (0, vue.normalizeClass)(_ctx.ns.b("group")) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)])], 2)), [[vue.vShow, _ctx.visible]]); + } + var option_group_default = /* @__PURE__ */ _plugin_vue_export_helper_default(option_group_vue_vue_type_script_lang_default, [["render", _sfc_render$18]]); + +//#endregion +//#region ../../packages/components/select/src/select.vue?vue&type=script&lang.ts + const COMPONENT_NAME$13 = "ElSelect"; + const warnHandlerMap = /* @__PURE__ */ new WeakMap(); + const createSelectWarnHandler = (appContext) => { + return (...args) => { + const message = args[0]; + if (!message || message.includes("Slot \"default\" invoked outside of the render function") && args[2]?.includes("ElTreeSelect")) return; + const original = warnHandlerMap.get(appContext)?.originalWarnHandler; + if (original) { + original(...args); + return; + } + console.warn(...args); + }; + }; + const getWarnHandlerRecord = (appContext) => { + let record = warnHandlerMap.get(appContext); + if (!record) { + record = { + originalWarnHandler: appContext.config.warnHandler, + handler: createSelectWarnHandler(appContext), + count: 0 + }; + warnHandlerMap.set(appContext, record); + } + return record; + }; + var select_vue_vue_type_script_lang_default$1 = (0, vue.defineComponent)({ + name: COMPONENT_NAME$13, + componentName: COMPONENT_NAME$13, + components: { + ElSelectMenu: select_dropdown_default$1, + ElOption: option_default, + ElOptions: options_default, + ElOptionGroup: option_group_default, + ElTag, + ElScrollbar, + ElTooltip, + ElIcon + }, + directives: { ClickOutside }, + props: selectProps, + emits: [ + UPDATE_MODEL_EVENT, + CHANGE_EVENT, + "remove-tag", + "clear", + "visible-change", + "focus", + "blur", + "popup-scroll" + ], + setup(props, { emit, slots }) { + const instance = (0, vue.getCurrentInstance)(); + const warnRecord = getWarnHandlerRecord(instance.appContext); + warnRecord.count += 1; + instance.appContext.config.warnHandler = warnRecord.handler; + const modelValue = (0, vue.computed)(() => { + const { modelValue: rawModelValue, multiple } = props; + const fallback = multiple ? [] : void 0; + if (isArray$1(rawModelValue)) return multiple ? rawModelValue : fallback; + return multiple ? fallback : rawModelValue; + }); + const _props = (0, vue.reactive)({ + ...(0, vue.toRefs)(props), + modelValue + }); + const API = useSelect$2(_props, emit); + const { calculatorRef, inputStyle } = useCalcInputWidth(); + const { getLabel, getValue, getOptions, getDisabled } = useProps(props); + const getOptionProps = (option) => ({ + label: getLabel(option), + value: getValue(option), + disabled: getDisabled(option) + }); + const flatTreeSelectData = (data) => { + return data.reduce((acc, item) => { + acc.push(item); + if (item.children && item.children.length > 0) acc.push(...flatTreeSelectData(item.children)); + return acc; + }, []); + }; + const manuallyRenderSlots = (vnodes) => { + flattedChildren(vnodes || []).forEach((item) => { + if (isObject$1(item) && (item.type.name === "ElOption" || item.type.name === "ElTree")) { + const _name = item.type.name; + if (_name === "ElTree") flatTreeSelectData(item.props?.data || []).forEach((treeItem) => { + treeItem.currentLabel = treeItem.label ?? (isObject$1(treeItem.value) ? "" : treeItem.value); + API.onOptionCreate(treeItem); + }); + else if (_name === "ElOption") { + const obj = { ...item.props }; + obj.currentLabel = obj.label ?? (isObject$1(obj.value) ? "" : obj.value); + API.onOptionCreate(obj); + } + } + }); + }; + (0, vue.watch)(() => [props.persistent || API.expanded.value || !slots.default ? void 0 : slots.default?.(), modelValue.value], () => { + if (props.persistent || API.expanded.value) return; + if (!slots.default) return; + API.states.options.clear(); + manuallyRenderSlots(slots.default?.()); + }, { immediate: true }); + (0, vue.provide)(selectKey, (0, vue.reactive)({ + props: _props, + states: API.states, + selectRef: API.selectRef, + optionsArray: API.optionsArray, + setSelected: API.setSelected, + handleOptionSelect: API.handleOptionSelect, + onOptionCreate: API.onOptionCreate, + onOptionDestroy: API.onOptionDestroy + })); + const selectedLabel = (0, vue.computed)(() => { + if (!props.multiple) return API.states.selectedLabel; + return API.states.selected.map((i) => i.currentLabel); + }); + (0, vue.onBeforeUnmount)(() => { + const record = warnHandlerMap.get(instance.appContext); + if (!record) return; + record.count -= 1; + if (record.count <= 0) { + instance.appContext.config.warnHandler = record.originalWarnHandler; + warnHandlerMap.delete(instance.appContext); + } + }); + return { + ...API, + modelValue, + selectedLabel, + calculatorRef, + inputStyle, + getLabel, + getValue, + getOptions, + getDisabled, + getOptionProps + }; + } + }); + +//#endregion +//#region ../../packages/components/select/src/select.vue + const _hoisted_1$65 = [ + "id", + "value", + "name", + "disabled", + "autocomplete", + "tabindex", + "readonly", + "aria-activedescendant", + "aria-controls", + "aria-expanded", + "aria-label" + ]; + const _hoisted_2$36 = ["textContent"]; + const _hoisted_3$17 = { key: 1 }; + function _sfc_render$17(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_tag = (0, vue.resolveComponent)("el-tag"); + const _component_el_tooltip = (0, vue.resolveComponent)("el-tooltip"); + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + const _component_el_option = (0, vue.resolveComponent)("el-option"); + const _component_el_option_group = (0, vue.resolveComponent)("el-option-group"); + const _component_el_options = (0, vue.resolveComponent)("el-options"); + const _component_el_scrollbar = (0, vue.resolveComponent)("el-scrollbar"); + const _component_el_select_menu = (0, vue.resolveComponent)("el-select-menu"); + const _directive_click_outside = (0, vue.resolveDirective)("click-outside"); + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", (0, vue.mergeProps)({ + ref: "selectRef", + class: [_ctx.nsSelect.b(), _ctx.nsSelect.m(_ctx.selectSize)] + }, { [(0, vue.toHandlerKey)(_ctx.mouseEnterEventName)]: _cache[11] || (_cache[11] = ($event) => _ctx.states.inputHovering = true) }, { onMouseleave: _cache[12] || (_cache[12] = ($event) => _ctx.states.inputHovering = false) }), [(0, vue.createVNode)(_component_el_tooltip, { + ref: "tooltipRef", + visible: _ctx.dropdownMenuVisible, + placement: _ctx.placement, + teleported: _ctx.teleported, + "popper-class": [_ctx.nsSelect.e("popper"), _ctx.popperClass], + "popper-style": _ctx.popperStyle, + "popper-options": _ctx.popperOptions, + "fallback-placements": _ctx.fallbackPlacements, + effect: _ctx.effect, + pure: "", + trigger: "click", + transition: `${_ctx.nsSelect.namespace.value}-zoom-in-top`, + "stop-popper-mouse-event": false, + "gpu-acceleration": false, + persistent: _ctx.persistent, + "append-to": _ctx.appendTo, + "show-arrow": _ctx.showArrow, + offset: _ctx.offset, + onBeforeShow: _ctx.handleMenuEnter, + onHide: _cache[10] || (_cache[10] = ($event) => _ctx.states.isBeforeHide = false) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "wrapperRef", + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("wrapper"), + _ctx.nsSelect.is("focused", _ctx.isFocused), + _ctx.nsSelect.is("hovering", _ctx.states.inputHovering), + _ctx.nsSelect.is("filterable", _ctx.filterable), + _ctx.nsSelect.is("disabled", _ctx.selectDisabled) + ]), + onClick: _cache[7] || (_cache[7] = (0, vue.withModifiers)((...args) => _ctx.toggleMenu && _ctx.toggleMenu(...args), ["prevent"])) + }, [ + _ctx.$slots.prefix ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref: "prefixRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("prefix")) + }, [(0, vue.renderSlot)(_ctx.$slots, "prefix")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + ref: "selectionRef", + class: (0, vue.normalizeClass)([_ctx.nsSelect.e("selection"), _ctx.nsSelect.is("near", _ctx.multiple && !_ctx.$slots.prefix && !!_ctx.states.selected.length)]) + }, [ + _ctx.multiple ? (0, vue.renderSlot)(_ctx.$slots, "tag", { + key: 0, + data: _ctx.states.selected, + deleteTag: _ctx.deleteTag, + selectDisabled: _ctx.selectDisabled + }, () => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.showTagList, (item) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: _ctx.getValueKey(item), + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selected-item")) + }, [(0, vue.createVNode)(_component_el_tag, { + closable: !_ctx.selectDisabled && !item.isDisabled, + size: _ctx.collapseTagSize, + type: _ctx.tagType, + effect: _ctx.tagEffect, + "disable-transitions": "", + style: (0, vue.normalizeStyle)(_ctx.tagStyle), + onClose: ($event) => _ctx.deleteTag($event, item) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.nsSelect.e("tags-text")) }, [(0, vue.renderSlot)(_ctx.$slots, "label", { + index: item.index, + label: item.currentLabel, + value: item.value + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(item.currentLabel), 1)])], 2)]), + _: 2 + }, 1032, [ + "closable", + "size", + "type", + "effect", + "style", + "onClose" + ])], 2); + }), 128)), _ctx.collapseTags && _ctx.states.selected.length > _ctx.maxCollapseTags ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_tooltip, { + key: 0, + ref: "tagTooltipRef", + disabled: _ctx.dropdownMenuVisible || !_ctx.collapseTagsTooltip, + "fallback-placements": _ctx.tagTooltip?.fallbackPlacements ?? [ + "bottom", + "top", + "right", + "left" + ], + effect: _ctx.tagTooltip?.effect ?? _ctx.effect, + placement: _ctx.tagTooltip?.placement ?? "bottom", + "popper-class": _ctx.tagTooltip?.popperClass ?? _ctx.popperClass, + "popper-style": _ctx.tagTooltip?.popperStyle ?? _ctx.popperStyle, + teleported: _ctx.tagTooltip?.teleported ?? _ctx.teleported, + "append-to": _ctx.tagTooltip?.appendTo ?? _ctx.appendTo, + "popper-options": _ctx.tagTooltip?.popperOptions ?? _ctx.popperOptions, + transition: _ctx.tagTooltip?.transition, + "show-after": _ctx.tagTooltip?.showAfter, + "hide-after": _ctx.tagTooltip?.hideAfter, + "auto-close": _ctx.tagTooltip?.autoClose, + offset: _ctx.tagTooltip?.offset + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "collapseItemRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selected-item")) + }, [(0, vue.createVNode)(_component_el_tag, { + closable: false, + size: _ctx.collapseTagSize, + type: _ctx.tagType, + effect: _ctx.tagEffect, + "disable-transitions": "", + style: (0, vue.normalizeStyle)(_ctx.collapseTagStyle) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.nsSelect.e("tags-text")) }, " + " + (0, vue.toDisplayString)(_ctx.states.selected.length - _ctx.maxCollapseTags), 3)]), + _: 1 + }, 8, [ + "size", + "type", + "effect", + "style" + ])], 2)]), + content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "tagMenuRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selection")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.collapseTagList, (item) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: _ctx.getValueKey(item), + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selected-item")) + }, [(0, vue.createVNode)(_component_el_tag, { + class: "in-tooltip", + closable: !_ctx.selectDisabled && !item.isDisabled, + size: _ctx.collapseTagSize, + type: _ctx.tagType, + effect: _ctx.tagEffect, + "disable-transitions": "", + onClose: ($event) => _ctx.deleteTag($event, item) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.nsSelect.e("tags-text")) }, [(0, vue.renderSlot)(_ctx.$slots, "label", { + index: item.index, + label: item.currentLabel, + value: item.value + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(item.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" + ])) : (0, vue.createCommentVNode)("v-if", true)]) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("selected-item"), + _ctx.nsSelect.e("input-wrapper"), + _ctx.nsSelect.is("hidden", !_ctx.filterable || _ctx.selectDisabled || !_ctx.states.inputValue && !_ctx.isFocused) + ]) }, [(0, vue.createElementVNode)("input", { + id: _ctx.inputId, + ref: "inputRef", + value: _ctx.states.inputValue, + type: "text", + name: _ctx.name, + class: (0, vue.normalizeClass)([_ctx.nsSelect.e("input"), _ctx.nsSelect.is(_ctx.selectSize)]), + disabled: _ctx.selectDisabled, + autocomplete: _ctx.autocomplete, + style: (0, vue.normalizeStyle)(_ctx.inputStyle), + tabindex: _ctx.tabindex, + role: "combobox", + readonly: !_ctx.filterable, + spellcheck: "false", + "aria-activedescendant": _ctx.hoverOption?.id || "", + "aria-controls": _ctx.contentId, + "aria-expanded": _ctx.dropdownMenuVisible, + "aria-label": _ctx.ariaLabel, + "aria-autocomplete": "none", + "aria-haspopup": "listbox", + onKeydown: _cache[0] || (_cache[0] = (...args) => _ctx.handleKeydown && _ctx.handleKeydown(...args)), + onCompositionstart: _cache[1] || (_cache[1] = (...args) => _ctx.handleCompositionStart && _ctx.handleCompositionStart(...args)), + onCompositionupdate: _cache[2] || (_cache[2] = (...args) => _ctx.handleCompositionUpdate && _ctx.handleCompositionUpdate(...args)), + onCompositionend: _cache[3] || (_cache[3] = (...args) => _ctx.handleCompositionEnd && _ctx.handleCompositionEnd(...args)), + onInput: _cache[4] || (_cache[4] = (...args) => _ctx.onInput && _ctx.onInput(...args)), + onChange: _cache[5] || (_cache[5] = (0, vue.withModifiers)(() => {}, ["stop"])), + onClick: _cache[6] || (_cache[6] = (0, vue.withModifiers)((...args) => _ctx.toggleMenu && _ctx.toggleMenu(...args), ["stop"])) + }, null, 46, _hoisted_1$65), _ctx.filterable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + ref: "calculatorRef", + "aria-hidden": "true", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("input-calculator")), + textContent: (0, vue.toDisplayString)(_ctx.states.inputValue) + }, null, 10, _hoisted_2$36)) : (0, vue.createCommentVNode)("v-if", true)], 2), + _ctx.shouldShowPlaceholder ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("selected-item"), + _ctx.nsSelect.e("placeholder"), + _ctx.nsSelect.is("transparent", !_ctx.hasModelValue || _ctx.expanded && !_ctx.states.inputValue) + ]) + }, [_ctx.hasModelValue ? (0, vue.renderSlot)(_ctx.$slots, "label", { + key: 0, + index: _ctx.getOption(_ctx.modelValue).index, + label: _ctx.currentPlaceholder, + value: _ctx.modelValue + }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.currentPlaceholder), 1)]) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$17, (0, vue.toDisplayString)(_ctx.currentPlaceholder), 1))], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2), + (0, vue.createElementVNode)("div", { + ref: "suffixRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("suffix")) + }, [ + _ctx.iconComponent && !_ctx.showClearBtn ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 0, + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("caret"), + _ctx.nsSelect.e("icon"), + _ctx.iconReverse + ]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.iconComponent)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), + _ctx.showClearBtn && _ctx.clearIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 1, + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("caret"), + _ctx.nsSelect.e("icon"), + _ctx.nsSelect.e("clear") + ]), + onClick: _ctx.handleClearClick + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.clearIcon)))]), + _: 1 + }, 8, ["class", "onClick"])) : (0, vue.createCommentVNode)("v-if", true), + _ctx.validateState && _ctx.validateIcon && _ctx.needStatusIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 2, + class: (0, vue.normalizeClass)([ + _ctx.nsInput.e("icon"), + _ctx.nsInput.e("validateIcon"), + _ctx.nsInput.is("loading", _ctx.validateState === "validating") + ]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.validateIcon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true) + ], 2) + ], 2)]), + content: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_select_menu, { ref: "menuRef" }, { + default: (0, vue.withCtx)(() => [ + _ctx.$slots.header ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "header")), + onClick: _cache[8] || (_cache[8] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "header")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.withDirectives)((0, vue.createVNode)(_component_el_scrollbar, { + id: _ctx.contentId, + ref: "scrollbarRef", + tag: "ul", + "wrap-class": _ctx.nsSelect.be("dropdown", "wrap"), + "view-class": _ctx.nsSelect.be("dropdown", "list"), + class: (0, vue.normalizeClass)([_ctx.nsSelect.is("empty", _ctx.filteredOptionsCount === 0)]), + role: "listbox", + "aria-label": _ctx.ariaLabel, + "aria-orientation": "vertical", + onScroll: _ctx.popupScroll + }, { + default: (0, vue.withCtx)(() => [_ctx.showNewOption ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_option, { + key: 0, + value: _ctx.states.inputValue, + created: true + }, null, 8, ["value"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createVNode)(_component_el_options, null, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.options, (option, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: index }, [_ctx.getOptions(option)?.length ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_option_group, { + key: 0, + label: _ctx.getLabel(option), + disabled: _ctx.getDisabled(option) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.getOptions(option), (item) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_option, (0, vue.mergeProps)({ key: _ctx.getValue(item) }, { ref_for: true }, _ctx.getOptionProps(item)), null, 16); + }), 128))]), + _: 2 + }, 1032, ["label", "disabled"])) : ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_option, (0, vue.mergeProps)({ + key: 1, + ref_for: true + }, _ctx.getOptionProps(option)), null, 16))], 64); + }), 128))])]), + _: 3 + })]), + _: 3 + }, 8, [ + "id", + "wrap-class", + "view-class", + "class", + "aria-label", + "onScroll" + ]), [[vue.vShow, _ctx.states.options.size > 0 && !_ctx.loading]]), + _ctx.$slots.loading && _ctx.loading ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "loading")) + }, [(0, vue.renderSlot)(_ctx.$slots, "loading")], 2)) : _ctx.loading || _ctx.filteredOptionsCount === 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "empty")) + }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.emptyText), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 3, + class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "footer")), + onClick: _cache[9] || (_cache[9] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ]), + _: 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)), [[ + _directive_click_outside, + _ctx.handleClickOutside, + _ctx.popperRef + ]]); + } + var select_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(select_vue_vue_type_script_lang_default$1, [["render", _sfc_render$17]]); + +//#endregion +//#region ../../packages/components/select/index.ts + const ElSelect = withInstall(select_default$1, { + Option: option_default, + OptionGroup: option_group_default + }); + const ElOption = withNoopInstall(option_default); + const ElOptionGroup = withNoopInstall(option_group_default); + +//#endregion +//#region ../../packages/components/calendar/src/select-controller.vue?vue&type=script&setup=true&lang.ts + var select_controller_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "SelectController", + __name: "select-controller", + props: selectControllerProps, + emits: selectControllerEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const nsSelect = useNamespace("calendar-select"); + const { t, lang } = useLocale(); + const monthOptions = Array.from({ length: 12 }, (_, index) => { + const actualMonth = index + 1; + return { + value: actualMonth, + label: isFunction$1(props.formatter) ? props.formatter(actualMonth, "month") : actualMonth + }; + }); + const yearValue = (0, vue.computed)(() => props.date.year()); + const monthValue = (0, vue.computed)(() => props.date.month() + 1); + const yearOptions = (0, vue.computed)(() => { + const years = []; + for (let i = -10; i < 10; i++) { + const year = yearValue.value + i; + if (year > 0) { + const label = isFunction$1(props.formatter) ? props.formatter(year, "year") : year; + years.push({ + value: year, + label + }); + } + } + return years; + }); + const handleYearChange = (year) => { + emit("date-change", (0, import_dayjs_min.default)(new Date(year, monthValue.value - 1, 1)).locale(lang.value)); + }; + const handleMonthChange = (month) => { + emit("date-change", (0, import_dayjs_min.default)(new Date(yearValue.value, month - 1, 1)).locale(lang.value)); + }; + const selectToday = () => { + emit("date-change", "today"); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [ + (0, vue.createVNode)((0, vue.unref)(ElSelect), { + "model-value": yearValue.value, + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(nsSelect).e("year")), + "validate-event": false, + options: yearOptions.value, + onChange: handleYearChange + }, null, 8, [ + "model-value", + "class", + "options" + ]), + (0, vue.createVNode)((0, vue.unref)(ElSelect), { + "model-value": monthValue.value, + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(nsSelect).e("month")), + "validate-event": false, + options: (0, vue.unref)(monthOptions), + onChange: handleMonthChange + }, null, 8, [ + "model-value", + "class", + "options" + ]), + (0, vue.createVNode)((0, vue.unref)(ElButton), { + size: "small", + onClick: selectToday + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.today")), 1)]), + _: 1 + }) + ], 64); + }; + } + }); + +//#endregion +//#region ../../packages/components/calendar/src/select-controller.vue + var select_controller_default = select_controller_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/calendar/src/calendar.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$12 = "ElCalendar"; + var calendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$12, + __name: "calendar", + props: calendarProps, + emits: calendarEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const ns = useNamespace("calendar"); + const { calculateValidatedDateRange, date, pickDay, realSelectedDay, selectDate, validatedRange, handleDateChange } = useCalendar(__props, __emit, COMPONENT_NAME$12); + const { t } = useLocale(); + const i18nDate = (0, vue.computed)(() => { + const pickedMonth = `el.datepicker.month${date.value.format("M")}`; + return `${date.value.year()} ${t("el.datepicker.year")} ${t(pickedMonth)}`; + }); + __expose({ + selectedDay: realSelectedDay, + pickDay, + selectDate, + calculateValidatedDateRange + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("header")) }, [(0, vue.renderSlot)(_ctx.$slots, "header", { date: i18nDate.value }, () => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) }, (0, vue.toDisplayString)(i18nDate.value), 3), (0, vue.unref)(validatedRange).length === 0 && __props.controllerType === "button" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("button-group")) + }, [(0, vue.createVNode)((0, vue.unref)(ElButtonGroup), null, { + default: (0, vue.withCtx)(() => [ + (0, vue.createVNode)((0, vue.unref)(ElButton), { + size: "small", + onClick: _cache[0] || (_cache[0] = ($event) => (0, vue.unref)(selectDate)("prev-month")) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.prevMonth")), 1)]), + _: 1 + }), + (0, vue.createVNode)((0, vue.unref)(ElButton), { + size: "small", + onClick: _cache[1] || (_cache[1] = ($event) => (0, vue.unref)(selectDate)("today")) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.today")), 1)]), + _: 1 + }), + (0, vue.createVNode)((0, vue.unref)(ElButton), { + size: "small", + onClick: _cache[2] || (_cache[2] = ($event) => (0, vue.unref)(selectDate)("next-month")) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.nextMonth")), 1)]), + _: 1 + }) + ]), + _: 1 + })], 2)) : (0, vue.unref)(validatedRange).length === 0 && __props.controllerType === "select" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("select-controller")) + }, [(0, vue.createVNode)(select_controller_default, { + date: (0, vue.unref)(date), + formatter: __props.formatter, + onDateChange: (0, vue.unref)(handleDateChange) + }, null, 8, [ + "date", + "formatter", + "onDateChange" + ])], 2)) : (0, vue.createCommentVNode)("v-if", true)])], 2), (0, vue.unref)(validatedRange).length === 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("body")) + }, [(0, vue.createVNode)(date_table_default, { + date: (0, vue.unref)(date), + "selected-day": (0, vue.unref)(realSelectedDay), + onPick: (0, vue.unref)(pickDay) + }, (0, vue.createSlots)({ _: 2 }, [_ctx.$slots["date-cell"] ? { + name: "date-cell", + fn: (0, vue.withCtx)((data) => [(0, vue.renderSlot)(_ctx.$slots, "date-cell", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(data)))]), + key: "0" + } : void 0]), 1032, [ + "date", + "selected-day", + "onPick" + ])], 2)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("body")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(validatedRange), (range_, index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(date_table_default, { + key: index, + date: range_[0], + "selected-day": (0, vue.unref)(realSelectedDay), + range: range_, + "hide-header": index !== 0, + onPick: (0, vue.unref)(pickDay) + }, (0, vue.createSlots)({ _: 2 }, [_ctx.$slots["date-cell"] ? { + name: "date-cell", + fn: (0, vue.withCtx)((data) => [(0, vue.renderSlot)(_ctx.$slots, "date-cell", (0, vue.mergeProps)({ ref_for: true }, data))]), + key: "0" + } : void 0]), 1032, [ + "date", + "selected-day", + "range", + "hide-header", + "onPick" + ]); + }), 128))], 2))], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/calendar/src/calendar.vue + var calendar_default = calendar_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/calendar/index.ts + const ElCalendar = withInstall(calendar_default); + +//#endregion +//#region ../../packages/components/card/src/card.ts +/** + * @deprecated Removed after 3.0.0, Use `CardProps` instead. + */ + const cardProps = buildProps({ + header: { + type: String, + default: "" + }, + footer: { + type: String, + default: "" + }, + bodyStyle: { + type: definePropType([ + String, + Object, + Array + ]), + default: "" + }, + headerClass: String, + bodyClass: String, + footerClass: String, + shadow: { + type: String, + values: [ + "always", + "hover", + "never" + ], + default: void 0 + } + }); + const cardContextKey = Symbol("cardContextKey"); + +//#endregion +//#region ../../packages/components/card/src/card.vue?vue&type=script&setup=true&lang.ts + var card_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCard", + __name: "card", + props: cardProps, + setup(__props) { + const globalConfig = useGlobalConfig("card"); + const ns = useNamespace("card"); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), (0, vue.unref)(ns).is(`${__props.shadow || (0, vue.unref)(globalConfig)?.shadow || "always"}-shadow`)]) }, [ + _ctx.$slots.header || __props.header ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("header"), __props.headerClass]) + }, [(0, vue.renderSlot)(_ctx.$slots, "header", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.header), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("body"), __props.bodyClass]), + style: (0, vue.normalizeStyle)(__props.bodyStyle) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 6), + _ctx.$slots.footer || __props.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("footer"), __props.footerClass]) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.footer), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/card/src/card.vue + var card_default = card_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/card/index.ts + const ElCard = withInstall(card_default); + +//#endregion +//#region ../../packages/components/carousel/src/carousel.ts +/** + * @deprecated Removed after 3.0.0, Use `CarouselProps` instead. + */ + const carouselProps = buildProps({ + initialIndex: { + type: Number, + default: 0 + }, + height: { + type: String, + default: "" + }, + trigger: { + type: String, + values: ["hover", "click"], + default: "hover" + }, + autoplay: { + type: Boolean, + default: true + }, + 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: true + }, + direction: { + type: String, + values: ["horizontal", "vertical"], + default: "horizontal" + }, + pauseOnHover: { + type: Boolean, + default: true + }, + motionBlur: Boolean + }); + const carouselEmits = { change: (current, prev) => [current, prev].every(isNumber) }; + +//#endregion +//#region ../../packages/components/carousel/src/constants.ts + const carouselContextKey = Symbol("carouselContextKey"); + const CAROUSEL_ITEM_NAME = "ElCarouselItem"; + +//#endregion +//#region ../../packages/components/carousel/src/use-carousel.ts + const THROTTLE_TIME = 300; + const useCarousel = (props, emit, componentName) => { + const { children: items, addChild: addItem, removeChild: removeItem, ChildrenSorter: ItemsSorter } = useOrderedChildren((0, vue.getCurrentInstance)(), CAROUSEL_ITEM_NAME); + const slots = (0, vue.useSlots)(); + const activeIndex = (0, vue.ref)(-1); + const timer = (0, vue.ref)(null); + const hover = (0, vue.ref)(false); + const root = (0, vue.ref)(); + const containerHeight = (0, vue.ref)(0); + const isItemsTwoLength = (0, vue.ref)(true); + const arrowDisplay = (0, vue.computed)(() => props.arrow !== "never" && !(0, vue.unref)(isVertical)); + const hasLabel = (0, vue.computed)(() => { + return items.value.some((item) => item.props.label.toString().length > 0); + }); + const isCardType = (0, vue.computed)(() => props.type === "card"); + const isVertical = (0, vue.computed)(() => props.direction === "vertical"); + const containerStyle = (0, vue.computed)(() => { + if (props.height !== "auto") return { height: props.height }; + return { + height: `${containerHeight.value}px`, + overflow: "hidden" + }; + }); + const throttledArrowClick = throttle((index) => { + setActiveItem(index); + }, THROTTLE_TIME, { trailing: true }); + const throttledIndicatorHover = throttle((index) => { + handleIndicatorHover(index); + }, THROTTLE_TIME); + const isTwoLengthShow = (index) => { + if (!isItemsTwoLength.value) return true; + return activeIndex.value <= 1 ? index <= 1 : index > 1; + }; + function pauseTimer() { + if (timer.value) { + clearInterval(timer.value); + timer.value = null; + } + } + function startTimer() { + if (props.interval <= 0 || !props.autoplay || timer.value) return; + timer.value = setInterval(() => playSlides(), props.interval); + } + const playSlides = () => { + if (activeIndex.value < items.value.length - 1) activeIndex.value = activeIndex.value + 1; + else if (props.loop) activeIndex.value = 0; + }; + function setActiveItem(index) { + if (isString(index)) { + const filteredItems = items.value.filter((item) => item.props.name === index); + if (filteredItems.length > 0) index = items.value.indexOf(filteredItems[0]); + } + index = Number(index); + if (Number.isNaN(index) || index !== Math.floor(index)) { + /* @__PURE__ */ debugWarn(componentName, "index must be integer."); + return; + } + const itemCount = items.value.length; + const oldIndex = activeIndex.value; + if (index < 0) activeIndex.value = props.loop ? itemCount - 1 : 0; + else if (index >= itemCount) activeIndex.value = props.loop ? 0 : itemCount - 1; + else activeIndex.value = index; + if (oldIndex === activeIndex.value) resetItemPosition(oldIndex); + resetTimer(); + } + function resetItemPosition(oldIndex) { + items.value.forEach((item, index) => { + item.translateItem(index, activeIndex.value, oldIndex); + }); + } + function itemInStage(item, index) { + const _items = (0, vue.unref)(items); + const itemCount = _items.length; + if (itemCount === 0 || !item.states.inStage) return false; + const nextItemIndex = index + 1; + const prevItemIndex = index - 1; + const lastItemIndex = itemCount - 1; + const isLastItemActive = _items[lastItemIndex].states.active; + const isFirstItemActive = _items[0].states.active; + const isNextItemActive = _items[nextItemIndex]?.states?.active; + const isPrevItemActive = _items[prevItemIndex]?.states?.active; + if (index === lastItemIndex && isFirstItemActive || isNextItemActive) return "left"; + else if (index === 0 && isLastItemActive || isPrevItemActive) return "right"; + return false; + } + function handleMouseEnter() { + hover.value = true; + if (props.pauseOnHover) pauseTimer(); + } + function handleMouseLeave() { + hover.value = false; + startTimer(); + } + function handleButtonEnter(arrow) { + if ((0, vue.unref)(isVertical)) return; + items.value.forEach((item, index) => { + if (arrow === itemInStage(item, index)) item.states.hover = true; + }); + } + function handleButtonLeave() { + if ((0, vue.unref)(isVertical)) return; + items.value.forEach((item) => { + item.states.hover = false; + }); + } + function handleIndicatorClick(index) { + activeIndex.value = index; + } + function handleIndicatorHover(index) { + if (props.trigger === "hover" && index !== activeIndex.value) activeIndex.value = index; + } + function prev() { + setActiveItem(activeIndex.value - 1); + } + function next() { + setActiveItem(activeIndex.value + 1); + } + function resetTimer() { + pauseTimer(); + if (!props.pauseOnHover || !hover.value) startTimer(); + } + function setContainerHeight(height) { + if (props.height !== "auto") return; + containerHeight.value = height; + } + function PlaceholderItem() { + const defaultSlots = slots.default?.(); + if (!defaultSlots) return null; + const normalizeSlots = flattedChildren(defaultSlots).filter((slot) => { + return (0, vue.isVNode)(slot) && slot.type.name === CAROUSEL_ITEM_NAME; + }); + if (normalizeSlots?.length === 2 && props.loop && !isCardType.value) { + isItemsTwoLength.value = true; + return normalizeSlots; + } + isItemsTwoLength.value = false; + return null; + } + (0, vue.watch)(() => activeIndex.value, (current, prev) => { + resetItemPosition(prev); + if (isItemsTwoLength.value) { + current = current % 2; + prev = prev % 2; + } + if (prev > -1) emit(CHANGE_EVENT, current, prev); + }); + const exposeActiveIndex = (0, vue.computed)({ + get: () => { + return isItemsTwoLength.value ? activeIndex.value % 2 : activeIndex.value; + }, + set: (value) => activeIndex.value = value + }); + (0, vue.watch)(() => props.autoplay, (autoplay) => { + autoplay ? startTimer() : pauseTimer(); + }); + (0, vue.watch)(() => props.loop, () => { + setActiveItem(activeIndex.value); + }); + (0, vue.watch)(() => props.interval, () => { + resetTimer(); + }); + const resizeObserver = (0, vue.shallowRef)(); + (0, vue.onMounted)(() => { + (0, vue.watch)(() => items.value, () => { + if (items.value.length > 0) setActiveItem(props.initialIndex); + }, { immediate: true }); + resizeObserver.value = useResizeObserver(root.value, () => { + resetItemPosition(); + }); + startTimer(); + }); + (0, vue.onBeforeUnmount)(() => { + pauseTimer(); + if (root.value && resizeObserver.value) resizeObserver.value.stop(); + }); + (0, vue.provide)(carouselContextKey, { + root, + isCardType, + isVertical, + items, + loop: props.loop, + cardScale: props.cardScale, + addItem, + removeItem, + setActiveItem, + setContainerHeight + }); + return { + root, + activeIndex, + exposeActiveIndex, + arrowDisplay, + hasLabel, + hover, + isCardType, + items, + isVertical, + containerStyle, + isItemsTwoLength, + handleButtonEnter, + handleButtonLeave, + handleIndicatorClick, + handleMouseEnter, + handleMouseLeave, + setActiveItem, + prev, + next, + PlaceholderItem, + isTwoLengthShow, + ItemsSorter, + throttledArrowClick, + throttledIndicatorHover + }; + }; + +//#endregion +//#region ../../packages/components/carousel/src/carousel.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$64 = ["aria-label"]; + const _hoisted_2$35 = ["aria-label"]; + const _hoisted_3$16 = ["onMouseenter", "onClick"]; + const _hoisted_4$12 = ["aria-label"]; + const _hoisted_5$9 = { key: 0 }; + const _hoisted_6$4 = { + key: 2, + xmlns: "http://www.w3.org/2000/svg", + version: "1.1", + style: { "display": "none" } + }; + const COMPONENT_NAME$11 = "ElCarousel"; + var carousel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$11, + __name: "carousel", + props: carouselProps, + emits: carouselEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const { root, activeIndex, exposeActiveIndex, arrowDisplay, hasLabel, hover, isCardType, items, isVertical, containerStyle, handleButtonEnter, handleButtonLeave, handleIndicatorClick, handleMouseEnter, handleMouseLeave, setActiveItem, prev, next, PlaceholderItem, isTwoLengthShow, ItemsSorter, throttledArrowClick, throttledIndicatorHover } = useCarousel(props, __emit, COMPONENT_NAME$11); + const ns = useNamespace("carousel"); + const { t } = useLocale(); + const carouselClasses = (0, vue.computed)(() => { + const classes = [ns.b(), ns.m(props.direction)]; + if ((0, vue.unref)(isCardType)) classes.push(ns.m("card")); + classes.push(ns.is("vertical-outside", (0, vue.unref)(isVertical) && props.indicatorPosition === "outside")); + return classes; + }); + const indicatorsClasses = (0, vue.computed)(() => { + const classes = [ns.e("indicators"), ns.em("indicators", props.direction)]; + if ((0, vue.unref)(hasLabel)) classes.push(ns.em("indicators", "labels")); + if (props.indicatorPosition === "outside") classes.push(ns.em("indicators", "outside")); + if ((0, vue.unref)(isVertical)) classes.push(ns.em("indicators", "right")); + return classes; + }); + function handleTransitionStart(e) { + if (!props.motionBlur) return; + const kls = (0, vue.unref)(isVertical) ? `${ns.namespace.value}-transitioning-vertical` : `${ns.namespace.value}-transitioning`; + e.currentTarget.classList.add(kls); + } + function handleTransitionEnd(e) { + if (!props.motionBlur) return; + const kls = (0, vue.unref)(isVertical) ? `${ns.namespace.value}-transitioning-vertical` : `${ns.namespace.value}-transitioning`; + e.currentTarget.classList.remove(kls); + } + __expose({ + activeIndex: exposeActiveIndex, + setActiveItem, + prev, + next + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "root", + ref: root, + class: (0, vue.normalizeClass)(carouselClasses.value), + onMouseenter: _cache[6] || (_cache[6] = (0, vue.withModifiers)((...args) => (0, vue.unref)(handleMouseEnter) && (0, vue.unref)(handleMouseEnter)(...args), ["stop"])), + onMouseleave: _cache[7] || (_cache[7] = (0, vue.withModifiers)((...args) => (0, vue.unref)(handleMouseLeave) && (0, vue.unref)(handleMouseLeave)(...args), ["stop"])) + }, [ + (0, vue.unref)(arrowDisplay) ? ((0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + key: 0, + name: "carousel-arrow-left", + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("arrow"), (0, vue.unref)(ns).em("arrow", "left")]), + "aria-label": (0, vue.unref)(t)("el.carousel.leftArrow"), + onMouseenter: _cache[0] || (_cache[0] = ($event) => (0, vue.unref)(handleButtonEnter)("left")), + onMouseleave: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleButtonLeave) && (0, vue.unref)(handleButtonLeave)(...args)), + onClick: _cache[2] || (_cache[2] = (0, vue.withModifiers)(($event) => (0, vue.unref)(throttledArrowClick)((0, vue.unref)(activeIndex) - 1), ["stop"])) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_left_default))]), + _: 1 + })], 42, _hoisted_1$64), [[vue.vShow, (__props.arrow === "always" || (0, vue.unref)(hover)) && (__props.loop || (0, vue.unref)(activeIndex) > 0)]])]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(arrowDisplay) ? ((0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + key: 1, + name: "carousel-arrow-right", + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("arrow"), (0, vue.unref)(ns).em("arrow", "right")]), + "aria-label": (0, vue.unref)(t)("el.carousel.rightArrow"), + onMouseenter: _cache[3] || (_cache[3] = ($event) => (0, vue.unref)(handleButtonEnter)("right")), + onMouseleave: _cache[4] || (_cache[4] = (...args) => (0, vue.unref)(handleButtonLeave) && (0, vue.unref)(handleButtonLeave)(...args)), + onClick: _cache[5] || (_cache[5] = (0, vue.withModifiers)(($event) => (0, vue.unref)(throttledArrowClick)((0, vue.unref)(activeIndex) + 1), ["stop"])) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })], 42, _hoisted_2$35), [[vue.vShow, (__props.arrow === "always" || (0, vue.unref)(hover)) && (__props.loop || (0, vue.unref)(activeIndex) < (0, vue.unref)(items).length - 1)]])]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("container")), + style: (0, vue.normalizeStyle)((0, vue.unref)(containerStyle)), + onTransitionstart: handleTransitionStart, + onTransitionend: handleTransitionEnd + }, [(0, vue.createVNode)((0, vue.unref)(PlaceholderItem)), (0, vue.renderSlot)(_ctx.$slots, "default")], 38), + (0, vue.createVNode)((0, vue.unref)(ItemsSorter), null, { + default: (0, vue.withCtx)(() => [__props.indicatorPosition !== "none" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("ul", { + key: 0, + class: (0, vue.normalizeClass)(indicatorsClasses.value) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(items), (item, index) => { + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: index, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("indicator"), + (0, vue.unref)(ns).em("indicator", __props.direction), + (0, vue.unref)(ns).is("active", index === (0, vue.unref)(activeIndex)) + ]), + onMouseenter: ($event) => (0, vue.unref)(throttledIndicatorHover)(index), + onClick: (0, vue.withModifiers)(($event) => (0, vue.unref)(handleIndicatorClick)(index), ["stop"]) + }, [(0, vue.createElementVNode)("button", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("button")), + "aria-label": (0, vue.unref)(t)("el.carousel.indicator", { index: index + 1 }) + }, [(0, vue.unref)(hasLabel) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_5$9, (0, vue.toDisplayString)(item.props.label), 1)) : (0, vue.createCommentVNode)("v-if", true)], 10, _hoisted_4$12)], 42, _hoisted_3$16)), [[vue.vShow, (0, vue.unref)(isTwoLengthShow)(index)]]); + }), 128))], 2)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 1 + }), + __props.motionBlur ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", _hoisted_6$4, [..._cache[8] || (_cache[8] = [(0, vue.createElementVNode)("defs", null, [(0, vue.createElementVNode)("filter", { id: "elCarouselHorizontal" }, [(0, vue.createElementVNode)("feGaussianBlur", { + in: "SourceGraphic", + stdDeviation: "12,0" + })]), (0, vue.createElementVNode)("filter", { id: "elCarouselVertical" }, [(0, vue.createElementVNode)("feGaussianBlur", { + in: "SourceGraphic", + stdDeviation: "0,10" + })])], -1)])])) : (0, vue.createCommentVNode)("v-if", true) + ], 34); + }; + } + }); + +//#endregion +//#region ../../packages/components/carousel/src/carousel.vue + var carousel_default = carousel_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/carousel/src/carousel-item.ts +/** + * @deprecated Removed after 3.0.0, Use `CarouselItemProps` instead. + */ + const carouselItemProps = buildProps({ + name: { + type: String, + default: "" + }, + label: { + type: [String, Number], + default: "" + } + }); + +//#endregion +//#region ../../packages/components/carousel/src/use-carousel-item.ts + const useCarouselItem = (props) => { + const carouselContext = (0, vue.inject)(carouselContextKey); + const instance = (0, vue.getCurrentInstance)(); + if (!carouselContext) /* @__PURE__ */ debugWarn(CAROUSEL_ITEM_NAME, "usage: "); + if (!instance) /* @__PURE__ */ debugWarn(CAROUSEL_ITEM_NAME, "compositional hook can only be invoked inside setups"); + const carouselItemRef = (0, vue.ref)(); + const hover = (0, vue.ref)(false); + const translate = (0, vue.ref)(0); + const scale = (0, vue.ref)(1); + const active = (0, vue.ref)(false); + const ready = (0, vue.ref)(false); + const inStage = (0, vue.ref)(false); + const animating = (0, vue.ref)(false); + const { isCardType, isVertical, cardScale } = carouselContext; + function processIndex(index, activeIndex, length) { + const lastItemIndex = length - 1; + const prevItemIndex = activeIndex - 1; + const nextItemIndex = activeIndex + 1; + const halfItemIndex = length / 2; + if (activeIndex === 0 && index === lastItemIndex) return -1; + else if (activeIndex === lastItemIndex && index === 0) return length; + else if (index < prevItemIndex && activeIndex - index >= halfItemIndex) return length + 1; + else if (index > nextItemIndex && index - activeIndex >= halfItemIndex) return -2; + return index; + } + function calcCardTranslate(index, activeIndex) { + const parentWidth = (0, vue.unref)(isVertical) ? carouselContext.root.value?.offsetHeight || 0 : carouselContext.root.value?.offsetWidth || 0; + if (inStage.value) return parentWidth * ((2 - cardScale) * (index - activeIndex) + 1) / 4; + else if (index < activeIndex) return -(1 + cardScale) * parentWidth / 4; + else return (3 + cardScale) * parentWidth / 4; + } + function calcTranslate(index, activeIndex, isVertical) { + const rootEl = carouselContext.root.value; + if (!rootEl) return 0; + return ((isVertical ? rootEl.offsetHeight : rootEl.offsetWidth) || 0) * (index - activeIndex); + } + const translateItem = (index, activeIndex, oldIndex) => { + const _isCardType = (0, vue.unref)(isCardType); + const carouselItemLength = carouselContext.items.value.length ?? NaN; + const isActive = index === activeIndex; + if (!_isCardType && !isUndefined(oldIndex)) animating.value = isActive || index === oldIndex; + if (!isActive && carouselItemLength > 2 && carouselContext.loop) index = processIndex(index, activeIndex, carouselItemLength); + const _isVertical = (0, vue.unref)(isVertical); + active.value = isActive; + if (_isCardType) { + inStage.value = Math.round(Math.abs(index - activeIndex)) <= 1; + translate.value = calcCardTranslate(index, activeIndex); + scale.value = (0, vue.unref)(active) ? 1 : cardScale; + } else translate.value = calcTranslate(index, activeIndex, _isVertical); + ready.value = true; + if (isActive && carouselItemRef.value) carouselContext.setContainerHeight(carouselItemRef.value.offsetHeight); + }; + function handleItemClick() { + if (carouselContext && (0, vue.unref)(isCardType)) { + const index = carouselContext.items.value.findIndex(({ uid }) => uid === instance.uid); + carouselContext.setActiveItem(index); + } + } + const carouselItemContext = { + props, + states: (0, vue.reactive)({ + hover, + translate, + scale, + active, + ready, + inStage, + animating + }), + uid: instance.uid, + getVnode: () => instance.vnode, + translateItem + }; + carouselContext.addItem(carouselItemContext); + (0, vue.onBeforeUnmount)(() => { + carouselContext.removeItem(carouselItemContext); + }); + return { + carouselItemRef, + active, + animating, + hover, + inStage, + isVertical, + translate, + isCardType, + scale, + ready, + handleItemClick + }; + }; + +//#endregion +//#region ../../packages/components/carousel/src/carousel-item.vue?vue&type=script&setup=true&lang.ts + var carousel_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: CAROUSEL_ITEM_NAME, + __name: "carousel-item", + props: carouselItemProps, + setup(__props) { + const props = __props; + const ns = useNamespace("carousel"); + const { carouselItemRef, active, animating, hover, inStage, isVertical, translate, isCardType, scale, ready, handleItemClick } = useCarouselItem(props); + const itemKls = (0, vue.computed)(() => [ + ns.e("item"), + ns.is("active", active.value), + ns.is("in-stage", inStage.value), + ns.is("hover", hover.value), + ns.is("animating", animating.value), + { + [ns.em("item", "card")]: isCardType.value, + [ns.em("item", "card-vertical")]: isCardType.value && isVertical.value + } + ]); + const itemStyle = (0, vue.computed)(() => { + return { transform: [`${`translate${(0, vue.unref)(isVertical) ? "Y" : "X"}`}(${(0, vue.unref)(translate)}px)`, `scale(${(0, vue.unref)(scale)})`].join(" ") }; + }); + return (_ctx, _cache) => { + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "carouselItemRef", + ref: carouselItemRef, + class: (0, vue.normalizeClass)(itemKls.value), + style: (0, vue.normalizeStyle)(itemStyle.value), + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleItemClick) && (0, vue.unref)(handleItemClick)(...args)) + }, [(0, vue.unref)(isCardType) ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("mask")) + }, null, 2)), [[vue.vShow, !(0, vue.unref)(active)]]) : (0, vue.createCommentVNode)("v-if", true), (0, vue.renderSlot)(_ctx.$slots, "default")], 6)), [[vue.vShow, (0, vue.unref)(ready)]]); + }; + } + }); + +//#endregion +//#region ../../packages/components/carousel/src/carousel-item.vue + var carousel_item_default = carousel_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/carousel/index.ts + const ElCarousel = withInstall(carousel_default, { CarouselItem: carousel_item_default }); + const ElCarouselItem = withNoopInstall(carousel_item_default); + +//#endregion +//#region ../../packages/components/cascader-panel/src/config.ts + const CommonProps = buildProps({ + modelValue: { type: definePropType([ + Number, + String, + Array, + Object + ]) }, + options: { + type: definePropType(Array), + default: () => [] + }, + props: { + type: definePropType(Object), + default: () => ({}) + } + }); + const DefaultProps = { + expandTrigger: "click", + multiple: false, + checkStrictly: false, + emitPath: true, + lazy: false, + lazyLoad: NOOP, + value: "value", + label: "label", + children: "children", + leaf: "leaf", + disabled: "disabled", + hoverThreshold: 500, + checkOnClickNode: false, + checkOnClickLeaf: true, + showPrefix: true + }; + /** + * @deprecated Removed after 3.0.0, Use `CascaderPanelProps` instead. + */ + const cascaderPanelProps = buildProps({ + ...CommonProps, + border: { + type: Boolean, + default: true + }, + renderLabel: { type: Function } + }); + const emitChangeFn$2 = (value) => true; + const cascaderPanelEmits = { + [UPDATE_MODEL_EVENT]: emitChangeFn$2, + [CHANGE_EVENT]: emitChangeFn$2, + close: () => true, + "expand-change": (value) => value + }; + const useCascaderConfig = (props) => { + return (0, vue.computed)(() => ({ + ...DefaultProps, + ...props.props + })); + }; + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox.ts +/** + * @deprecated Removed after 3.0.0, Use `CheckboxProps` instead. + */ + const checkboxProps = { + 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: useSizeProp, + tabindex: [String, Number], + validateEvent: { + type: Boolean, + default: true + }, + ariaLabel: String, + ...useAriaProps(["ariaControls"]) + }; + const checkboxEmits = { + [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val), + change: (val) => isString(val) || isNumber(val) || isBoolean(val) + }; + const checkboxPropsDefaults = { + modelValue: void 0, + label: void 0, + value: void 0, + disabled: void 0, + name: void 0, + trueValue: void 0, + falseValue: void 0, + trueLabel: void 0, + falseLabel: void 0, + id: void 0, + validateEvent: true + }; + +//#endregion +//#region ../../packages/components/checkbox/src/constants.ts + const checkboxGroupContextKey = Symbol("checkboxGroupContextKey"); + +//#endregion +//#region ../../packages/components/checkbox/src/composables/use-checkbox-disabled.ts + const useCheckboxDisabled = ({ model, isChecked }) => { + const checkboxGroup = (0, vue.inject)(checkboxGroupContextKey, void 0); + const formContext = (0, vue.inject)(formContextKey, void 0); + const isLimitDisabled = (0, vue.computed)(() => { + const max = checkboxGroup?.max?.value; + const min = checkboxGroup?.min?.value; + return !isUndefined(max) && model.value.length >= max && !isChecked.value || !isUndefined(min) && model.value.length <= min && isChecked.value; + }); + return { + isDisabled: useFormDisabled((0, vue.computed)(() => { + if (checkboxGroup === void 0) return formContext?.disabled ?? isLimitDisabled.value; + else return checkboxGroup.disabled?.value || isLimitDisabled.value; + })), + isLimitDisabled + }; + }; + +//#endregion +//#region ../../packages/components/checkbox/src/composables/use-checkbox-event.ts + const useCheckboxEvent = (props, { model, isLimitExceeded, hasOwnLabel, isDisabled, isLabeledByFormItem }) => { + const checkboxGroup = (0, vue.inject)(checkboxGroupContextKey, void 0); + const { formItem } = useFormItem(); + const { emit } = (0, vue.getCurrentInstance)(); + function getLabeledValue(value) { + return [ + true, + props.trueValue, + props.trueLabel + ].includes(value) ? props.trueValue ?? props.trueLabel ?? true : props.falseValue ?? props.falseLabel ?? false; + } + function emitChangeEvent(checked, e) { + emit(CHANGE_EVENT, getLabeledValue(checked), e); + } + function handleChange(e) { + if (isLimitExceeded.value) return; + const target = e.target; + emit(CHANGE_EVENT, getLabeledValue(target.checked), e); + } + async function onClickRoot(e) { + if (isLimitExceeded.value) return; + if (!hasOwnLabel.value && !isDisabled.value && isLabeledByFormItem.value) { + if (!e.composedPath().some((item) => item.tagName === "LABEL")) { + model.value = getLabeledValue([ + false, + props.falseValue, + props.falseLabel + ].includes(model.value)); + await (0, vue.nextTick)(); + emitChangeEvent(model.value, e); + } + } + } + const validateEvent = (0, vue.computed)(() => checkboxGroup?.validateEvent || props.validateEvent); + (0, vue.watch)(() => props.modelValue, () => { + if (validateEvent.value) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + return { + handleChange, + onClickRoot + }; + }; + +//#endregion +//#region ../../packages/components/checkbox/src/composables/use-checkbox-model.ts + const useCheckboxModel = (props) => { + const selfModel = (0, vue.ref)(false); + const { emit, vnode } = (0, vue.getCurrentInstance)(); + const checkboxGroup = (0, vue.inject)(checkboxGroupContextKey, void 0); + const isGroup = (0, vue.computed)(() => isUndefined(checkboxGroup) === false); + const isLimitExceeded = (0, vue.ref)(false); + const isControlled = (0, vue.computed)(() => { + const rawProps = vnode.props ?? {}; + return "modelValue" in rawProps || "model-value" in rawProps; + }); + const model = (0, vue.computed)({ + get() { + return isGroup.value ? checkboxGroup?.modelValue?.value : !isControlled.value ? selfModel.value : props.modelValue; + }, + set(val) { + if (isGroup.value && isArray$1(val)) { + isLimitExceeded.value = checkboxGroup?.max?.value !== void 0 && val.length > checkboxGroup?.max.value && val.length > model.value.length; + isLimitExceeded.value === false && checkboxGroup?.changeEvent?.(val); + } else { + emit(UPDATE_MODEL_EVENT, val); + selfModel.value = val; + } + } + }); + return { + model, + isGroup, + isLimitExceeded + }; + }; + +//#endregion +//#region ../../packages/components/checkbox/src/composables/use-checkbox-status.ts + const useCheckboxStatus = (props, slots, { model }) => { + const checkboxGroup = (0, vue.inject)(checkboxGroupContextKey, void 0); + const isFocused = (0, vue.ref)(false); + const actualValue = (0, vue.computed)(() => { + if (!isPropAbsent(props.value)) return props.value; + return props.label; + }); + const isChecked = (0, vue.computed)(() => { + const value = model.value; + if (isBoolean(value)) return value; + else if (isArray$1(value)) if (isObject$1(actualValue.value)) return value.map(vue.toRaw).some((o) => isEqual$1(o, actualValue.value)); + else return value.map(vue.toRaw).includes(actualValue.value); + else if (value !== null && value !== void 0) return value === props.trueValue || value === props.trueLabel; + else return !!value; + }); + return { + checkboxButtonSize: useFormSize((0, vue.computed)(() => checkboxGroup?.size?.value), { prop: true }), + isChecked, + isFocused, + checkboxSize: useFormSize((0, vue.computed)(() => checkboxGroup?.size?.value)), + hasOwnLabel: (0, vue.computed)(() => { + return !!slots.default || !isPropAbsent(actualValue.value); + }), + actualValue + }; + }; + +//#endregion +//#region ../../packages/components/checkbox/src/composables/use-checkbox.ts + const useCheckbox = (props, slots) => { + const { formItem: elFormItem } = useFormItem(); + const { model, isGroup, isLimitExceeded } = useCheckboxModel(props); + const { isFocused, isChecked, checkboxButtonSize, checkboxSize, hasOwnLabel, actualValue } = useCheckboxStatus(props, slots, { model }); + const { isDisabled } = useCheckboxDisabled({ + model, + isChecked + }); + const { inputId, isLabeledByFormItem } = useFormItemInputId(props, { + formItemContext: elFormItem, + disableIdGeneration: hasOwnLabel, + disableIdManagement: isGroup + }); + const { handleChange, onClickRoot } = useCheckboxEvent(props, { + model, + isLimitExceeded, + hasOwnLabel, + isDisabled, + isLabeledByFormItem + }); + const setStoreValue = () => { + function addToStore() { + if (isArray$1(model.value) && !model.value.includes(actualValue.value)) model.value.push(actualValue.value); + else model.value = props.trueValue ?? props.trueLabel ?? true; + } + props.checked && addToStore(); + }; + setStoreValue(); + useDeprecated({ + from: "label act as value", + replacement: "value", + version: "3.0.0", + scope: "el-checkbox", + ref: "https://element-plus.org/en-US/component/checkbox.html" + }, (0, vue.computed)(() => isGroup.value && isPropAbsent(props.value))); + useDeprecated({ + from: "true-label", + replacement: "true-value", + version: "3.0.0", + scope: "el-checkbox", + ref: "https://element-plus.org/en-US/component/checkbox.html" + }, (0, vue.computed)(() => !!props.trueLabel)); + useDeprecated({ + from: "false-label", + replacement: "false-value", + version: "3.0.0", + scope: "el-checkbox", + ref: "https://element-plus.org/en-US/component/checkbox.html" + }, (0, vue.computed)(() => !!props.falseLabel)); + return { + inputId, + isLabeledByFormItem, + isChecked, + isDisabled, + isFocused, + checkboxButtonSize, + checkboxSize, + hasOwnLabel, + model, + actualValue, + handleChange, + onClickRoot + }; + }; + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$63 = [ + "id", + "indeterminate", + "name", + "tabindex", + "disabled" + ]; + var checkbox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCheckbox", + __name: "checkbox", + props: checkboxProps, + emits: checkboxEmits, + setup(__props) { + const props = __props; + const { inputId, isLabeledByFormItem, isChecked, isDisabled, isFocused, checkboxSize, hasOwnLabel, model, actualValue, handleChange, onClickRoot } = useCheckbox(props, (0, vue.useSlots)()); + const inputBindings = (0, vue.computed)(() => { + if (props.trueValue || props.falseValue || props.trueLabel || props.falseLabel) return { + "true-value": props.trueValue ?? props.trueLabel ?? true, + "false-value": props.falseValue ?? props.falseLabel ?? false + }; + return { value: actualValue.value }; + }); + const ns = useNamespace("checkbox"); + const compKls = (0, vue.computed)(() => { + return [ + ns.b(), + ns.m(checkboxSize.value), + ns.is("disabled", isDisabled.value), + ns.is("bordered", props.border), + ns.is("checked", isChecked.value) + ]; + }); + const spanKls = (0, vue.computed)(() => { + return [ + ns.e("input"), + ns.is("disabled", isDisabled.value), + ns.is("checked", isChecked.value), + ns.is("indeterminate", props.indeterminate), + ns.is("focus", isFocused.value) + ]; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(!(0, vue.unref)(hasOwnLabel) && (0, vue.unref)(isLabeledByFormItem) ? "span" : "label"), { + for: !(0, vue.unref)(hasOwnLabel) && (0, vue.unref)(isLabeledByFormItem) ? null : (0, vue.unref)(inputId), + class: (0, vue.normalizeClass)(compKls.value), + "aria-controls": __props.indeterminate ? __props.ariaControls : null, + "aria-checked": __props.indeterminate ? "mixed" : void 0, + "aria-label": __props.ariaLabel, + onClick: (0, vue.unref)(onClickRoot) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(spanKls.value) }, [(0, vue.withDirectives)((0, vue.createElementVNode)("input", (0, vue.mergeProps)({ + id: (0, vue.unref)(inputId), + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => (0, vue.isRef)(model) ? model.value = $event : null), + class: (0, vue.unref)(ns).e("original"), + type: "checkbox", + indeterminate: __props.indeterminate, + name: __props.name, + tabindex: __props.tabindex, + disabled: (0, vue.unref)(isDisabled) + }, inputBindings.value, { + onChange: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleChange) && (0, vue.unref)(handleChange)(...args)), + onFocus: _cache[2] || (_cache[2] = ($event) => isFocused.value = true), + onBlur: _cache[3] || (_cache[3] = ($event) => isFocused.value = false), + onClick: _cache[4] || (_cache[4] = (0, vue.withModifiers)(() => {}, ["stop"])) + }), null, 16, _hoisted_1$63), [[vue.vModelCheckbox, (0, vue.unref)(model)]]), (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("inner")) }, null, 2)], 2), (0, vue.unref)(hasOwnLabel) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("label")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default"), !_ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.label), 1)], 64)) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, [ + "for", + "class", + "aria-controls", + "aria-checked", + "aria-label", + "onClick" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox.vue + var checkbox_default = checkbox_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox-button.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$62 = [ + "name", + "tabindex", + "disabled" + ]; + var checkbox_button_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCheckboxButton", + __name: "checkbox-button", + props: checkboxProps, + emits: checkboxEmits, + setup(__props) { + const props = __props; + const { isFocused, isChecked, isDisabled, checkboxButtonSize, model, actualValue, handleChange } = useCheckbox(props, (0, vue.useSlots)()); + const inputBindings = (0, vue.computed)(() => { + if (props.trueValue || props.falseValue || props.trueLabel || props.falseLabel) return { + "true-value": props.trueValue ?? props.trueLabel ?? true, + "false-value": props.falseValue ?? props.falseLabel ?? false + }; + return { value: actualValue.value }; + }); + const checkboxGroup = (0, vue.inject)(checkboxGroupContextKey, void 0); + const ns = useNamespace("checkbox"); + const activeStyle = (0, vue.computed)(() => { + const fillValue = checkboxGroup?.fill?.value ?? ""; + return { + backgroundColor: fillValue, + borderColor: fillValue, + color: checkboxGroup?.textColor?.value ?? "", + boxShadow: fillValue ? `-1px 0 0 0 ${fillValue}` : void 0 + }; + }); + const labelKls = (0, vue.computed)(() => { + return [ + ns.b("button"), + ns.bm("button", checkboxButtonSize.value), + ns.is("disabled", isDisabled.value), + ns.is("checked", isChecked.value), + ns.is("focus", isFocused.value) + ]; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("label", { class: (0, vue.normalizeClass)(labelKls.value) }, [(0, vue.withDirectives)((0, vue.createElementVNode)("input", (0, vue.mergeProps)({ + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => (0, vue.isRef)(model) ? model.value = $event : null), + class: (0, vue.unref)(ns).be("button", "original"), + type: "checkbox", + name: __props.name, + tabindex: __props.tabindex, + disabled: (0, vue.unref)(isDisabled) + }, inputBindings.value, { + onChange: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleChange) && (0, vue.unref)(handleChange)(...args)), + onFocus: _cache[2] || (_cache[2] = ($event) => isFocused.value = true), + onBlur: _cache[3] || (_cache[3] = ($event) => isFocused.value = false), + onClick: _cache[4] || (_cache[4] = (0, vue.withModifiers)(() => {}, ["stop"])) + }), null, 16, _hoisted_1$62), [[vue.vModelCheckbox, (0, vue.unref)(model)]]), _ctx.$slots.default || __props.label ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("button", "inner")), + style: (0, vue.normalizeStyle)((0, vue.unref)(isChecked) ? activeStyle.value : void 0) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.label), 1)])], 6)) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox-button.vue + var checkbox_button_default = checkbox_button_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox-group.ts +/** + * @deprecated Removed after 3.0.0, Use `CheckboxGroupProps` instead. + */ + const checkboxGroupProps = buildProps({ + modelValue: { + type: definePropType(Array), + default: () => [] + }, + disabled: { + type: Boolean, + default: void 0 + }, + min: Number, + max: Number, + size: useSizeProp, + fill: String, + textColor: String, + tag: { + type: String, + default: "div" + }, + validateEvent: { + type: Boolean, + default: true + }, + options: { type: definePropType(Array) }, + props: { + type: definePropType(Object), + default: () => checkboxDefaultProps + }, + type: { + type: String, + values: ["checkbox", "button"], + default: "checkbox" + }, + ...useAriaProps(["ariaLabel"]) + }); + const checkboxGroupEmits = { + [UPDATE_MODEL_EVENT]: (val) => isArray$1(val), + change: (val) => isArray$1(val) + }; + const checkboxDefaultProps = { + label: "label", + value: "value", + disabled: "disabled" + }; + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox-group.vue?vue&type=script&setup=true&lang.ts + var checkbox_group_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCheckboxGroup", + __name: "checkbox-group", + props: checkboxGroupProps, + emits: checkboxGroupEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("checkbox"); + const checkboxDisabled = useFormDisabled(); + const { formItem } = useFormItem(); + const { inputId: groupId, isLabeledByFormItem } = useFormItemInputId(props, { formItemContext: formItem }); + const changeEvent = async (value) => { + emit(UPDATE_MODEL_EVENT, value); + await (0, vue.nextTick)(); + emit(CHANGE_EVENT, value); + }; + const modelValue = (0, vue.computed)({ + get() { + return props.modelValue; + }, + set(val) { + changeEvent(val); + } + }); + const aliasProps = (0, vue.computed)(() => ({ + ...checkboxDefaultProps, + ...props.props + })); + const getOptionProps = (option) => { + const { label, value, disabled } = aliasProps.value; + const base = { + label: option[label], + value: option[value], + disabled: option[disabled] + }; + return { + ...omit(option, [ + label, + value, + disabled + ]), + ...base + }; + }; + const optionComponent = (0, vue.computed)(() => props.type === "button" ? checkbox_button_default : checkbox_default); + (0, vue.provide)(checkboxGroupContextKey, { + ...pick((0, vue.toRefs)(props), [ + "size", + "min", + "max", + "validateEvent", + "fill", + "textColor" + ]), + disabled: checkboxDisabled, + modelValue, + changeEvent + }); + (0, vue.watch)(() => props.modelValue, (newVal, oldValue) => { + if (props.validateEvent && !isEqual$1(newVal, oldValue)) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.tag), { + id: (0, vue.unref)(groupId), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("group")), + role: "group", + "aria-label": !(0, vue.unref)(isLabeledByFormItem) ? __props.ariaLabel || "checkbox-group" : void 0, + "aria-labelledby": (0, vue.unref)(isLabeledByFormItem) ? (0, vue.unref)(formItem)?.labelId : void 0 + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.options, (item, index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(optionComponent.value), (0, vue.mergeProps)({ key: index }, { ref_for: true }, getOptionProps(item)), null, 16); + }), 128))])]), + _: 3 + }, 8, [ + "id", + "class", + "aria-label", + "aria-labelledby" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox-group.vue + var checkbox_group_default = checkbox_group_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/checkbox/index.ts + const ElCheckbox = withInstall(checkbox_default, { + CheckboxButton: checkbox_button_default, + CheckboxGroup: checkbox_group_default + }); + const ElCheckboxButton = withNoopInstall(checkbox_button_default); + const ElCheckboxGroup = withNoopInstall(checkbox_group_default); + +//#endregion +//#region ../../packages/components/radio/src/radio.ts +/** + * @deprecated Removed after 3.0.0, Use `RadioPropsBase` instead. + */ + const radioPropsBase = buildProps({ + modelValue: { + type: [ + String, + Number, + Boolean + ], + default: void 0 + }, + size: useSizeProp, + 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 + } + }); + /** + * @deprecated Removed after 3.0.0, Use `RadioProps` instead. + */ + const radioProps = buildProps({ + ...radioPropsBase, + border: Boolean + }); + const radioEmits = { + [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val), + [CHANGE_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val) + }; + /** + * @description default values for RadioProps + */ + const radioPropsDefaults = { + modelValue: void 0, + disabled: void 0, + label: void 0, + value: void 0, + name: void 0, + border: false + }; + +//#endregion +//#region ../../packages/components/radio/src/constants.ts + const radioGroupKey = Symbol("radioGroupKey"); + +//#endregion +//#region ../../packages/components/radio/src/use-radio.ts + const useRadio = (props, emit) => { + const radioRef = (0, vue.ref)(); + const radioGroup = (0, vue.inject)(radioGroupKey, void 0); + const isGroup = (0, vue.computed)(() => !!radioGroup); + const actualValue = (0, vue.computed)(() => { + if (!isPropAbsent(props.value)) return props.value; + return props.label; + }); + const modelValue = (0, vue.computed)({ + get() { + return isGroup.value ? radioGroup.modelValue : props.modelValue; + }, + set(val) { + if (isGroup.value) radioGroup.changeEvent(val); + else emit && emit(UPDATE_MODEL_EVENT, val); + radioRef.value.checked = props.modelValue === actualValue.value; + } + }); + const size = useFormSize((0, vue.computed)(() => radioGroup?.size)); + const disabled = useFormDisabled((0, vue.computed)(() => radioGroup?.disabled)); + const focus = (0, vue.ref)(false); + const tabIndex = (0, vue.computed)(() => { + return disabled.value || isGroup.value && modelValue.value !== actualValue.value ? -1 : 0; + }); + useDeprecated({ + from: "label act as value", + replacement: "value", + version: "3.0.0", + scope: "el-radio", + ref: "https://element-plus.org/en-US/component/radio.html" + }, (0, vue.computed)(() => isGroup.value && isPropAbsent(props.value))); + return { + radioRef, + isGroup, + radioGroup, + focus, + size, + disabled, + tabIndex, + modelValue, + actualValue + }; + }; + +//#endregion +//#region ../../packages/components/radio/src/radio.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$61 = [ + "value", + "name", + "disabled", + "checked" + ]; + var radio_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElRadio", + __name: "radio", + props: radioProps, + emits: radioEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("radio"); + const { radioRef, radioGroup, focus, size, disabled, modelValue, actualValue } = useRadio(props, emit); + function handleChange() { + (0, vue.nextTick)(() => emit(CHANGE_EVENT, modelValue.value)); + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("label", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(disabled)), + (0, vue.unref)(ns).is("focus", (0, vue.unref)(focus)), + (0, vue.unref)(ns).is("bordered", __props.border), + (0, vue.unref)(ns).is("checked", (0, vue.unref)(modelValue) === (0, vue.unref)(actualValue)), + (0, vue.unref)(ns).m((0, vue.unref)(size)) + ]) }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("input"), + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(disabled)), + (0, vue.unref)(ns).is("checked", (0, vue.unref)(modelValue) === (0, vue.unref)(actualValue)) + ]) }, [(0, vue.withDirectives)((0, vue.createElementVNode)("input", { + ref_key: "radioRef", + ref: radioRef, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => (0, vue.isRef)(modelValue) ? modelValue.value = $event : null), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("original")), + value: (0, vue.unref)(actualValue), + name: __props.name || (0, vue.unref)(radioGroup)?.name, + disabled: (0, vue.unref)(disabled), + checked: (0, vue.unref)(modelValue) === (0, vue.unref)(actualValue), + type: "radio", + onFocus: _cache[1] || (_cache[1] = ($event) => focus.value = true), + onBlur: _cache[2] || (_cache[2] = ($event) => focus.value = false), + onChange: handleChange, + onClick: _cache[3] || (_cache[3] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, null, 42, _hoisted_1$61), [[vue.vModelRadio, (0, vue.unref)(modelValue)]]), (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("inner")) }, null, 2)], 2), (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("label")), + onKeydown: _cache[4] || (_cache[4] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.label), 1)])], 34)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/radio/src/radio.vue + var radio_default = radio_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/radio/src/radio-button.ts +/** + * @deprecated Removed after 3.0.0, Use `RadioButtonProps` instead. + */ + const radioButtonProps = buildProps({ ...radioPropsBase }); + /** + * @description default values for RadioButtonProps + */ + const radioButtonPropsDefaults = { + modelValue: void 0, + disabled: void 0, + label: void 0, + value: void 0, + name: void 0 + }; + +//#endregion +//#region ../../packages/components/radio/src/radio-button.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$60 = [ + "value", + "name", + "disabled" + ]; + var radio_button_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElRadioButton", + __name: "radio-button", + props: radioButtonProps, + setup(__props) { + const props = __props; + const ns = useNamespace("radio"); + const { radioRef, focus, size, disabled, modelValue, radioGroup, actualValue } = useRadio(props); + const activeStyle = (0, vue.computed)(() => { + return { + backgroundColor: radioGroup?.fill || "", + borderColor: radioGroup?.fill || "", + boxShadow: radioGroup?.fill ? `-1px 0 0 0 ${radioGroup.fill}` : "", + color: radioGroup?.textColor || "" + }; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("label", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b("button"), + (0, vue.unref)(ns).is("active", (0, vue.unref)(modelValue) === (0, vue.unref)(actualValue)), + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(disabled)), + (0, vue.unref)(ns).is("focus", (0, vue.unref)(focus)), + (0, vue.unref)(ns).bm("button", (0, vue.unref)(size)) + ]) }, [(0, vue.withDirectives)((0, vue.createElementVNode)("input", { + ref_key: "radioRef", + ref: radioRef, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => (0, vue.isRef)(modelValue) ? modelValue.value = $event : null), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("button", "original-radio")), + value: (0, vue.unref)(actualValue), + type: "radio", + name: __props.name || (0, vue.unref)(radioGroup)?.name, + disabled: (0, vue.unref)(disabled), + onFocus: _cache[1] || (_cache[1] = ($event) => focus.value = true), + onBlur: _cache[2] || (_cache[2] = ($event) => focus.value = false), + onClick: _cache[3] || (_cache[3] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, null, 42, _hoisted_1$60), [[vue.vModelRadio, (0, vue.unref)(modelValue)]]), (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("button", "inner")), + style: (0, vue.normalizeStyle)((0, vue.unref)(modelValue) === (0, vue.unref)(actualValue) ? activeStyle.value : {}), + onKeydown: _cache[4] || (_cache[4] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.label), 1)])], 38)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/radio/src/radio-button.vue + var radio_button_default = radio_button_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/radio/src/radio-group.ts + const radioDefaultProps = { + label: "label", + value: "value", + disabled: "disabled" + }; + /** + * @deprecated Removed after 3.0.0, Use `RadioGroupProps` instead. + */ + const radioGroupProps = buildProps({ + id: { + type: String, + default: void 0 + }, + size: useSizeProp, + 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: true + }, + options: { type: definePropType(Array) }, + props: { + type: definePropType(Object), + default: () => radioDefaultProps + }, + type: { + type: String, + values: ["radio", "button"], + default: "radio" + }, + ...useAriaProps(["ariaLabel"]) + }); + const radioGroupEmits = radioEmits; + /** + * @description default values for RadioGroupProps + */ + const radioGroupPropsDefaults = { + id: void 0, + disabled: void 0, + modelValue: void 0, + fill: "", + textColor: "", + name: void 0, + validateEvent: true, + props: () => radioDefaultProps, + type: "radio" + }; + +//#endregion +//#region ../../packages/components/radio/src/radio-group.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$59 = [ + "id", + "aria-label", + "aria-labelledby" + ]; + var radio_group_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElRadioGroup", + __name: "radio-group", + props: radioGroupProps, + emits: radioGroupEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("radio"); + const radioId = useId(); + const radioGroupRef = (0, vue.ref)(); + const { formItem } = useFormItem(); + const { inputId: groupId, isLabeledByFormItem } = useFormItemInputId(props, { formItemContext: formItem }); + const changeEvent = (value) => { + emit(UPDATE_MODEL_EVENT, value); + (0, vue.nextTick)(() => emit(CHANGE_EVENT, value)); + }; + (0, vue.onMounted)(() => { + const radios = radioGroupRef.value.querySelectorAll("[type=radio]"); + const firstLabel = radios[0]; + if (!Array.from(radios).some((radio) => radio.checked) && firstLabel) firstLabel.tabIndex = 0; + }); + const name = (0, vue.computed)(() => { + return props.name || radioId.value; + }); + const aliasProps = (0, vue.computed)(() => ({ + ...radioDefaultProps, + ...props.props + })); + const getOptionProps = (option) => { + const { label, value, disabled } = aliasProps.value; + const base = { + label: option[label], + value: option[value], + disabled: option[disabled] + }; + return { + ...omit(option, [ + label, + value, + disabled + ]), + ...base + }; + }; + const optionComponent = (0, vue.computed)(() => props.type === "button" ? radio_button_default : radio_default); + (0, vue.provide)(radioGroupKey, (0, vue.reactive)({ + ...(0, vue.toRefs)(props), + changeEvent, + name + })); + (0, vue.watch)(() => props.modelValue, (newVal, oldValue) => { + if (props.validateEvent && !isEqual$1(newVal, oldValue)) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + id: (0, vue.unref)(groupId), + ref_key: "radioGroupRef", + ref: radioGroupRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("group")), + role: "radiogroup", + "aria-label": !(0, vue.unref)(isLabeledByFormItem) ? __props.ariaLabel || "radio-group" : void 0, + "aria-labelledby": (0, vue.unref)(isLabeledByFormItem) ? (0, vue.unref)(formItem).labelId : void 0 + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.options, (item, index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(optionComponent.value), (0, vue.mergeProps)({ key: index }, { ref_for: true }, getOptionProps(item)), null, 16); + }), 128))])], 10, _hoisted_1$59); + }; + } + }); + +//#endregion +//#region ../../packages/components/radio/src/radio-group.vue + var radio_group_default = radio_group_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/radio/index.ts + const ElRadio = withInstall(radio_default, { + RadioButton: radio_button_default, + RadioGroup: radio_group_default + }); + const ElRadioGroup = withNoopInstall(radio_group_default); + const ElRadioButton = withNoopInstall(radio_button_default); + +//#endregion +//#region ../../packages/components/cascader-panel/src/types.ts + const CASCADER_PANEL_INJECTION_KEY = Symbol(); + +//#endregion +//#region ../../packages/components/cascader-panel/src/node-content.tsx + function isVNodeEmpty(vnodes) { + return !!(isArray$1(vnodes) ? vnodes.every(({ type }) => type === vue.Comment) : vnodes?.type === vue.Comment); + } + var node_content_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "NodeContent", + props: { node: { + type: Object, + required: true + } }, + setup(props) { + const ns = useNamespace("cascader-node"); + const { renderLabelFn } = (0, vue.inject)(CASCADER_PANEL_INJECTION_KEY); + const { node } = props; + const { data, label: nodeLabel } = node; + const label = () => { + const renderLabel = renderLabelFn?.({ + node, + data + }); + return isVNodeEmpty(renderLabel) ? nodeLabel : renderLabel ?? nodeLabel; + }; + return () => (0, vue.createVNode)("span", { "class": ns.e("label") }, [label()]); + } + }); + +//#endregion +//#region ../../packages/components/cascader-panel/src/node.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$58 = [ + "id", + "aria-haspopup", + "aria-owns", + "aria-expanded", + "tabindex" + ]; + var node_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCascaderNode", + __name: "node", + props: { + node: { + type: Object, + required: true + }, + menuId: String + }, + emits: ["expand"], + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const panel = (0, vue.inject)(CASCADER_PANEL_INJECTION_KEY); + const ns = useNamespace("cascader-node"); + const isHoverMenu = (0, vue.computed)(() => panel.isHoverMenu); + const multiple = (0, vue.computed)(() => panel.config.multiple); + const checkStrictly = (0, vue.computed)(() => panel.config.checkStrictly); + const showPrefix = (0, vue.computed)(() => panel.config.showPrefix); + const checkedNodeId = (0, vue.computed)(() => panel.checkedNodes[0]?.uid); + const isDisabled = (0, vue.computed)(() => props.node.isDisabled); + const isLeaf = (0, vue.computed)(() => props.node.isLeaf); + const expandable = (0, vue.computed)(() => checkStrictly.value && !isLeaf.value || !isDisabled.value); + const inExpandingPath = (0, vue.computed)(() => isInPath(panel.expandingNode)); + const inCheckedPath = (0, vue.computed)(() => checkStrictly.value && panel.checkedNodes.some(isInPath)); + const isInPath = (node) => { + const { level, uid } = props.node; + return node?.pathNodes[level - 1]?.uid === uid; + }; + const doExpand = () => { + if (inExpandingPath.value) return; + panel.expandNode(props.node); + }; + const doCheck = (checked) => { + const { node } = props; + if (checked === node.checked) return; + panel.handleCheckChange(node, checked); + }; + const doLoad = () => { + panel.lazyLoad(props.node, () => { + if (!isLeaf.value) doExpand(); + }); + }; + const handleHoverExpand = (e) => { + if (!isHoverMenu.value) return; + handleExpand(); + !isLeaf.value && emit("expand", e); + }; + const handleExpand = () => { + const { node } = props; + if (!expandable.value || node.loading) return; + node.loaded ? doExpand() : doLoad(); + }; + const handleClick = () => { + if (isLeaf.value && !isDisabled.value && !checkStrictly.value && !multiple.value) handleCheck(true); + else if ((panel.config.checkOnClickNode && (multiple.value || checkStrictly.value) || isLeaf.value && panel.config.checkOnClickLeaf) && !isDisabled.value) handleSelectCheck(!props.node.checked); + else if (!isHoverMenu.value) handleExpand(); + }; + const handleSelectCheck = (checked) => { + if (checkStrictly.value) { + doCheck(checked); + if (props.node.loaded) doExpand(); + } else handleCheck(checked); + }; + const handleCheck = (checked) => { + if (!props.node.loaded) doLoad(); + else { + doCheck(checked); + !checkStrictly.value && doExpand(); + } + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + id: `${__props.menuId}-${__props.node.uid}`, + role: "menuitem", + "aria-haspopup": !isLeaf.value, + "aria-owns": isLeaf.value ? void 0 : __props.menuId, + "aria-expanded": inExpandingPath.value, + tabindex: expandable.value ? -1 : void 0, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).is("selectable", checkStrictly.value), + (0, vue.unref)(ns).is("active", __props.node.checked), + (0, vue.unref)(ns).is("disabled", !expandable.value), + inExpandingPath.value && "in-active-path", + inCheckedPath.value && "in-checked-path" + ]), + onMouseenter: handleHoverExpand, + onFocus: handleHoverExpand, + onClick: handleClick + }, [ + (0, vue.createCommentVNode)(" prefix "), + multiple.value && showPrefix.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElCheckbox), { + key: 0, + "model-value": __props.node.checked, + indeterminate: __props.node.indeterminate, + disabled: isDisabled.value, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])), + "onUpdate:modelValue": handleSelectCheck + }, null, 8, [ + "model-value", + "indeterminate", + "disabled" + ])) : checkStrictly.value && showPrefix.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElRadio), { + key: 1, + "model-value": checkedNodeId.value, + label: __props.node.uid, + disabled: isDisabled.value, + "onUpdate:modelValue": handleSelectCheck, + onClick: _cache[1] || (_cache[1] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createCommentVNode)("\n Add an empty element to avoid render label,\n do not use empty fragment here for https://github.com/vuejs/vue-next/pull/2485\n "), _cache[2] || (_cache[2] = (0, vue.createElementVNode)("span", null, null, -1))]), + _: 1 + }, 8, [ + "model-value", + "label", + "disabled" + ])) : isLeaf.value && __props.node.checked ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("prefix")) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(check_default))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createCommentVNode)(" content "), + (0, vue.createVNode)((0, vue.unref)(node_content_default), { node: __props.node }, null, 8, ["node"]), + (0, vue.createCommentVNode)(" postfix "), + !isLeaf.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 3 }, [__props.node.loading ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).is("loading"), (0, vue.unref)(ns).e("postfix")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(loading_default))]), + _: 1 + }, 8, ["class"])) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)(["arrow-right", (0, vue.unref)(ns).e("postfix")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + }, 8, ["class"]))], 64)) : (0, vue.createCommentVNode)("v-if", true) + ], 42, _hoisted_1$58); + }; + } + }); + +//#endregion +//#region ../../packages/components/cascader-panel/src/node.vue + var node_default = node_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/cascader-panel/src/menu.vue?vue&type=script&setup=true&lang.ts + var menu_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCascaderMenu", + __name: "menu", + props: { + nodes: { + type: Array, + required: true + }, + index: { + type: Number, + required: true + } + }, + setup(__props) { + const props = __props; + const instance = (0, vue.getCurrentInstance)(); + const ns = useNamespace("cascader-menu"); + const { t } = useLocale(); + const id = useId(); + let activeNode; + let hoverTimer; + const panel = (0, vue.inject)(CASCADER_PANEL_INJECTION_KEY); + const hoverZone = (0, vue.ref)(); + const isEmpty = (0, vue.computed)(() => !props.nodes.length); + const isLoading = (0, vue.computed)(() => !panel.initialLoaded); + const menuId = (0, vue.computed)(() => `${id.value}-${props.index}`); + const handleExpand = (e) => { + activeNode = e.target; + }; + const handleMouseMove = (e) => { + if (!panel.isHoverMenu || !activeNode || !hoverZone.value) return; + if (activeNode.contains(e.target)) { + clearHoverTimer(); + const el = instance.vnode.el; + const { left } = el.getBoundingClientRect(); + const { offsetWidth, offsetHeight } = el; + const startX = e.clientX - left; + const top = activeNode.offsetTop; + const bottom = top + activeNode.offsetHeight; + const scrollTop = el.querySelector(`.${ns.e("wrap")}`)?.scrollTop || 0; + hoverZone.value.innerHTML = ` + + + `; + } else if (!hoverTimer) hoverTimer = window.setTimeout(clearHoverZone, panel.config.hoverThreshold); + }; + const clearHoverTimer = () => { + if (!hoverTimer) return; + clearTimeout(hoverTimer); + hoverTimer = void 0; + }; + const clearHoverZone = () => { + if (!hoverZone.value) return; + hoverZone.value.innerHTML = ""; + clearHoverTimer(); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElScrollbar), { + key: menuId.value, + tag: "ul", + role: "menu", + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + "wrap-class": (0, vue.unref)(ns).e("wrap"), + "view-class": [(0, vue.unref)(ns).e("list"), (0, vue.unref)(ns).is("empty", isEmpty.value)], + onMousemove: handleMouseMove, + onMouseleave: clearHoverZone + }, { + default: (0, vue.withCtx)(() => [ + ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.nodes, (node) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(node_default, { + key: node.uid, + node, + "menu-id": menuId.value, + onExpand: handleExpand + }, null, 8, ["node", "menu-id"]); + }), 128)), + isLoading.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("empty-text")) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { + size: "14", + class: (0, vue.normalizeClass)((0, vue.unref)(ns).is("loading")) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(loading_default))]), + _: 1 + }, 8, ["class"]), (0, vue.createTextVNode)(" " + (0, vue.toDisplayString)((0, vue.unref)(t)("el.cascader.loading")), 1)], 2)) : isEmpty.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("empty-text")) + }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.cascader.noData")), 1)])], 2)) : (0, vue.unref)(panel)?.isHoverMenu ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [(0, vue.createCommentVNode)(" eslint-disable vue/html-self-closing "), ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + ref_key: "hoverZone", + ref: hoverZone, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("hover-zone")) + }, null, 2))], 2112)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createCommentVNode)(" eslint-enable vue/html-self-closing ") + ]), + _: 3 + }, 8, [ + "class", + "wrap-class", + "view-class" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/cascader-panel/src/menu.vue + var menu_default$1 = menu_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/cascader-panel/src/node.ts + let uid = 0; + const calculatePathNodes = (node) => { + const nodes = [node]; + let { parent } = node; + while (parent) { + nodes.unshift(parent); + parent = parent.parent; + } + return nodes; + }; + var Node$2 = class Node$2 { + constructor(data, config, parent, root = false) { + this.data = data; + this.config = config; + this.parent = parent; + this.root = root; + this.uid = uid++; + this.checked = false; + this.indeterminate = false; + this.loading = false; + const { value: valueKey, label: labelKey, children: childrenKey } = config; + const childrenData = data[childrenKey]; + const pathNodes = calculatePathNodes(this); + this.level = root ? 0 : parent ? parent.level + 1 : 1; + this.value = data[valueKey]; + this.label = data[labelKey]; + this.pathNodes = pathNodes; + this.pathValues = pathNodes.map((node) => node.value); + this.pathLabels = pathNodes.map((node) => node.label); + this.childrenData = childrenData; + this.children = (childrenData || []).map((child) => new Node$2(child, config, this)); + this.loaded = !config.lazy || this.isLeaf || !isEmpty(childrenData); + this.text = ""; + } + get isDisabled() { + const { data, parent, config } = this; + const { disabled, checkStrictly } = config; + return (isFunction$1(disabled) ? disabled(data, this) : !!data[disabled]) || !checkStrictly && !!parent?.isDisabled; + } + get isLeaf() { + const { data, config, childrenData, loaded } = this; + const { lazy, leaf } = config; + const isLeaf = isFunction$1(leaf) ? leaf(data, this) : data[leaf]; + return isUndefined(isLeaf) ? lazy && !loaded ? false : !(isArray$1(childrenData) && childrenData.length) : !!isLeaf; + } + get valueByOption() { + return this.config.emitPath ? this.pathValues : this.value; + } + appendChild(childData) { + const { childrenData, children } = this; + const node = new Node$2(childData, this.config, this); + if (isArray$1(childrenData)) childrenData.push(childData); + else this.childrenData = [childData]; + children.push(node); + return node; + } + calcText(allLevels, separator) { + const text = allLevels ? this.pathLabels.join(separator) : this.label; + this.text = text; + return text; + } + broadcast(checked) { + this.children.forEach((child) => { + if (child) { + child.broadcast(checked); + child.onParentCheck?.(checked); + } + }); + } + emit() { + const { parent } = this; + if (parent) { + parent.onChildCheck?.(); + parent.emit(); + } + } + onParentCheck(checked) { + if (!this.isDisabled) this.setCheckState(checked); + } + onChildCheck() { + const { children } = this; + const validChildren = children.filter((child) => !child.isDisabled); + const checked = validChildren.length ? validChildren.every((child) => child.checked) : false; + this.setCheckState(checked); + } + setCheckState(checked) { + const totalNum = this.children.length; + const checkedNum = this.children.reduce((c, p) => { + return c + (p.checked ? 1 : p.indeterminate ? .5 : 0); + }, 0); + this.checked = this.loaded && this.children.filter((child) => !child.isDisabled).every((child) => child.loaded && child.checked) && checked; + this.indeterminate = this.loaded && checkedNum !== totalNum && checkedNum > 0; + } + doCheck(checked) { + if (this.checked === checked) return; + const { checkStrictly, multiple } = this.config; + if (checkStrictly || !multiple) this.checked = checked; + else { + this.broadcast(checked); + this.setCheckState(checked); + this.emit(); + } + } + }; + +//#endregion +//#region ../../packages/components/cascader-panel/src/store.ts + const flatNodes = (nodes, leafOnly) => { + return nodes.reduce((res, node) => { + if (node.isLeaf) res.push(node); + else { + !leafOnly && res.push(node); + res = res.concat(flatNodes(node.children, leafOnly)); + } + return res; + }, []); + }; + var Store = class { + constructor(data, config) { + this.config = config; + const nodes = (data || []).map((nodeData) => new Node$2(nodeData, this.config)); + this.nodes = nodes; + this.allNodes = flatNodes(nodes, false); + this.leafNodes = flatNodes(nodes, true); + } + getNodes() { + return this.nodes; + } + getFlattedNodes(leafOnly) { + return leafOnly ? this.leafNodes : this.allNodes; + } + appendNode(nodeData, parentNode) { + const node = parentNode ? parentNode.appendChild(nodeData) : new Node$2(nodeData, this.config); + if (!parentNode) this.nodes.push(node); + this.appendAllNodesAndLeafNodes(node); + } + appendNodes(nodeDataList, parentNode) { + if (nodeDataList.length > 0) nodeDataList.forEach((nodeData) => this.appendNode(nodeData, parentNode)); + else parentNode && parentNode.isLeaf && this.leafNodes.push(parentNode); + } + appendAllNodesAndLeafNodes(node) { + this.allNodes.push(node); + node.isLeaf && this.leafNodes.push(node); + if (node.children) node.children.forEach((subNode) => { + this.appendAllNodesAndLeafNodes(subNode); + }); + } + getNodeByValue(value, leafOnly = false) { + if (isPropAbsent(value)) return null; + return this.getFlattedNodes(leafOnly).find((node) => isEqual$1(node.value, value) || isEqual$1(node.pathValues, value)) || null; + } + getSameNode(node) { + if (!node) return null; + return this.getFlattedNodes(false).find(({ value, level }) => isEqual$1(node.value, value) && node.level === level) || null; + } + }; + +//#endregion +//#region ../../packages/components/cascader-panel/src/utils.ts + const getMenuIndex = (el) => { + if (!el) return 0; + const pieces = el.id.split("-"); + return Number(pieces[pieces.length - 2]); + }; + const checkNode = (el) => { + if (!el) return; + const input = el.querySelector("input"); + if (input) input.click(); + else if (isLeaf(el)) el.click(); + }; + const sortByOriginalOrder = (oldNodes, newNodes) => { + const newNodesCopy = newNodes.slice(0); + const newIds = newNodesCopy.map((node) => node.uid); + const res = oldNodes.reduce((acc, item) => { + const index = newIds.indexOf(item.uid); + if (index > -1) { + acc.push(item); + newNodesCopy.splice(index, 1); + newIds.splice(index, 1); + } + return acc; + }, []); + res.push(...newNodesCopy); + return res; + }; + +//#endregion +//#region ../../packages/components/cascader-panel/src/index.vue?vue&type=script&setup=true&lang.ts + var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCascaderPanel", + __name: "index", + props: cascaderPanelProps, + emits: cascaderPanelEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + let manualChecked = false; + const ns = useNamespace("cascader"); + const config = useCascaderConfig(props); + const slots = (0, vue.useSlots)(); + let store; + const initialLoaded = (0, vue.ref)(true); + const initialLoadedOnce = (0, vue.ref)(false); + const menuList = (0, vue.ref)([]); + const checkedValue = (0, vue.ref)(); + const menus = (0, vue.ref)([]); + const expandingNode = (0, vue.ref)(); + const checkedNodes = (0, vue.ref)([]); + const isHoverMenu = (0, vue.computed)(() => config.value.expandTrigger === "hover"); + const renderLabelFn = (0, vue.computed)(() => props.renderLabel || slots.default); + const initStore = () => { + const { options } = props; + const cfg = config.value; + manualChecked = false; + store = new Store(options, cfg); + menus.value = [store.getNodes()]; + if (cfg.lazy && isEmpty(props.options)) { + initialLoaded.value = false; + lazyLoad(void 0, (list) => { + if (list) { + store = new Store(list, cfg); + menus.value = [store.getNodes()]; + } + initialLoaded.value = true; + syncCheckedValue(false, true); + }); + } else syncCheckedValue(false, true); + }; + const lazyLoad = (node, cb) => { + const cfg = config.value; + node = node || new Node$2({}, cfg, void 0, true); + node.loading = true; + const resolve = (dataList) => { + const _node = node; + const parent = _node.root ? null : _node; + _node.loading = false; + _node.loaded = true; + _node.childrenData = _node.childrenData || []; + dataList && store?.appendNodes(dataList, parent); + dataList && cb?.(dataList); + if (node.level === 0) initialLoadedOnce.value = true; + }; + const reject = () => { + node.loading = false; + node.loaded = false; + if (node.level === 0) initialLoaded.value = true; + }; + cfg.lazyLoad(node, resolve, reject); + }; + const expandNode = (node, silent) => { + const { level } = node; + const newMenus = menus.value.slice(0, level); + let newExpandingNode; + if (node.isLeaf) newExpandingNode = node.pathNodes[level - 2]; + else { + newExpandingNode = node; + newMenus.push(node.children); + } + if (expandingNode.value?.uid !== newExpandingNode?.uid) { + expandingNode.value = node; + menus.value = newMenus; + !silent && emit("expand-change", node?.pathValues || []); + } + }; + const handleCheckChange = (node, checked, emitClose = true) => { + const { checkStrictly, multiple } = config.value; + const oldNode = checkedNodes.value[0]; + manualChecked = true; + !multiple && oldNode?.doCheck(false); + node.doCheck(checked); + calculateCheckedValue(); + emitClose && !multiple && !checkStrictly && emit("close"); + !emitClose && !multiple && expandParentNode(node); + }; + const expandParentNode = (node) => { + if (!node) return; + node = node.parent; + expandParentNode(node); + node && expandNode(node); + }; + const getFlattedNodes = (leafOnly) => store?.getFlattedNodes(leafOnly); + const getCheckedNodes = (leafOnly) => { + return getFlattedNodes(leafOnly)?.filter(({ checked }) => checked !== false); + }; + const clearCheckedNodes = () => { + checkedNodes.value.forEach((node) => node.doCheck(false)); + calculateCheckedValue(); + menus.value = menus.value.slice(0, 1); + expandingNode.value = void 0; + emit("expand-change", []); + }; + const calculateCheckedValue = () => { + const { checkStrictly, multiple } = config.value; + const oldNodes = checkedNodes.value; + const nodes = sortByOriginalOrder(oldNodes, getCheckedNodes(!checkStrictly)); + const values = nodes.map((node) => node.valueByOption); + checkedNodes.value = nodes; + checkedValue.value = multiple ? values : values[0] ?? null; + }; + const syncCheckedValue = (loaded = false, forced = false) => { + const { modelValue } = props; + const { lazy, multiple, checkStrictly } = config.value; + const leafOnly = !checkStrictly; + if (!initialLoaded.value || manualChecked || !forced && isEqual$1(modelValue, checkedValue.value)) return; + if (lazy && !loaded) { + const nodes = unique(flattenDeep(castArray(modelValue))).map((val) => store?.getNodeByValue(val)).filter((node) => !!node && !node.loaded && !node.loading); + if (nodes.length) nodes.forEach((node) => { + lazyLoad(node, () => syncCheckedValue(false, forced)); + }); + else syncCheckedValue(true, forced); + } else { + syncMenuState(unique((multiple ? castArray(modelValue) : [modelValue]).map((val) => store?.getNodeByValue(val, leafOnly))), forced); + checkedValue.value = cloneDeep(modelValue ?? void 0); + } + }; + const syncMenuState = (newCheckedNodes, reserveExpandingState = true) => { + const { checkStrictly } = config.value; + const oldNodes = checkedNodes.value; + const newNodes = newCheckedNodes.filter((node) => !!node && (checkStrictly || node.isLeaf)); + const oldExpandingNode = store?.getSameNode(expandingNode.value); + const newExpandingNode = reserveExpandingState && oldExpandingNode || newNodes[0]; + if (newExpandingNode) newExpandingNode.pathNodes.forEach((node) => expandNode(node, true)); + else expandingNode.value = void 0; + oldNodes.forEach((node) => node.doCheck(false)); + (0, vue.reactive)(newNodes).forEach((node) => node.doCheck(true)); + checkedNodes.value = newNodes; + (0, vue.nextTick)(scrollToExpandingNode); + }; + const scrollToExpandingNode = () => { + if (!isClient) return; + menuList.value.forEach((menu) => { + const menuElement = menu?.$el; + if (menuElement) { + const container = menuElement.querySelector(`.${ns.namespace.value}-scrollbar__wrap`); + let activeNode = menuElement.querySelector(`.${ns.b("node")}.in-active-path`); + if (!activeNode) { + const activeElements = menuElement.querySelectorAll(`.${ns.b("node")}.${ns.is("active")}`); + activeNode = activeElements[activeElements.length - 1]; + } + scrollIntoView(container, activeNode); + } + }); + }; + const handleKeyDown = (e) => { + const target = e.target; + const code = getEventCode(e); + switch (code) { + case EVENT_CODE.up: + case EVENT_CODE.down: + e.preventDefault(); + focusNode(getSibling(target, code === EVENT_CODE.up ? -1 : 1, `.${ns.b("node")}[tabindex="-1"]`)); + break; + case EVENT_CODE.left: { + e.preventDefault(); + const expandedNode = menuList.value[getMenuIndex(target) - 1]?.$el.querySelector(`.${ns.b("node")}[aria-expanded="true"]`); + focusNode(expandedNode); + break; + } + case EVENT_CODE.right: { + e.preventDefault(); + const firstNode = menuList.value[getMenuIndex(target) + 1]?.$el.querySelector(`.${ns.b("node")}[tabindex="-1"]`); + focusNode(firstNode); + break; + } + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + checkNode(target); + break; + } + }; + (0, vue.provide)(CASCADER_PANEL_INJECTION_KEY, (0, vue.reactive)({ + config, + expandingNode, + checkedNodes, + isHoverMenu, + initialLoaded, + renderLabelFn, + lazyLoad, + expandNode, + handleCheckChange + })); + (0, vue.watch)(config, (newVal, oldVal) => { + if (isEqual$1(newVal, oldVal)) return; + initStore(); + }, { immediate: true }); + (0, vue.watch)(() => props.options, initStore, { deep: true }); + (0, vue.watch)(() => props.modelValue, () => { + manualChecked = false; + syncCheckedValue(); + }, { deep: true }); + (0, vue.watch)(() => checkedValue.value, (val) => { + if (!isEqual$1(val, props.modelValue)) { + emit(UPDATE_MODEL_EVENT, val); + emit(CHANGE_EVENT, val); + } + }); + const loadLazyRootNodes = () => { + if (initialLoadedOnce.value) return; + initStore(); + }; + (0, vue.onBeforeUpdate)(() => menuList.value = []); + (0, vue.onMounted)(() => !isEmpty(props.modelValue) && syncCheckedValue()); + __expose({ + menuList, + menus, + checkedNodes, + handleKeyDown, + handleCheckChange, + getFlattedNodes, + getCheckedNodes, + clearCheckedNodes, + calculateCheckedValue, + scrollToExpandingNode, + loadLazyRootNodes + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("panel"), (0, vue.unref)(ns).is("bordered", __props.border)]), + onKeydown: handleKeyDown + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(menus.value, (menu, index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(menu_default$1, { + key: index, + ref_for: true, + ref: (item) => menuList.value[index] = item, + index, + nodes: [...menu] + }, { + empty: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "empty")]), + _: 3 + }, 8, ["index", "nodes"]); + }), 128))], 34); + }; + } + }); + +//#endregion +//#region ../../packages/components/cascader-panel/src/index.vue + var src_default$1 = index_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/cascader-panel/index.ts + const ElCascaderPanel = withInstall(src_default$1); + +//#endregion +//#region ../../packages/components/cascader/src/cascader.ts +/** + * @deprecated Removed after 3.0.0, Use `CascaderComponentProps` instead. + */ + const cascaderProps = buildProps({ + ...CommonProps, + size: useSizeProp, + placeholder: String, + disabled: { + type: Boolean, + default: void 0 + }, + clearable: Boolean, + clearIcon: { + type: iconPropType, + default: circle_close_default + }, + filterable: Boolean, + filterMethod: { + type: definePropType(Function), + default: (node, keyword) => node.text.includes(keyword) + }, + separator: { + type: String, + default: " / " + }, + showAllLevels: { + type: Boolean, + default: true + }, + collapseTags: Boolean, + maxCollapseTags: { + type: Number, + default: 1 + }, + collapseTagsTooltip: Boolean, + maxCollapseTagsTooltipHeight: { type: [String, Number] }, + debounce: { + type: Number, + default: 300 + }, + beforeFilter: { + type: definePropType(Function), + default: () => true + }, + placement: { + type: definePropType(String), + values: Ee, + default: "bottom-start" + }, + fallbackPlacements: { + type: definePropType(Array), + default: [ + "bottom-start", + "bottom", + "top-start", + "top", + "right", + "left" + ] + }, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + teleported: useTooltipContentProps.teleported, + effect: { + type: definePropType(String), + default: "light" + }, + tagType: { + ...tagProps.type, + default: "info" + }, + tagEffect: { + ...tagProps.effect, + default: "light" + }, + validateEvent: { + type: Boolean, + default: true + }, + persistent: { + type: Boolean, + default: true + }, + showCheckedStrategy: { + type: String, + values: ["parent", "child"], + default: "child" + }, + checkOnClickNode: Boolean, + showPrefix: { + type: Boolean, + default: true + }, + ...useEmptyValuesProps + }); + const emitChangeFn$1 = (value) => true; + const cascaderEmits = { + [UPDATE_MODEL_EVENT]: emitChangeFn$1, + [CHANGE_EVENT]: emitChangeFn$1, + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true, + visibleChange: (val) => isBoolean(val), + expandChange: (val) => !!val, + removeTag: (val) => !!val + }; + +//#endregion +//#region ../../packages/components/cascader/src/cascader.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$57 = ["placeholder"]; + const _hoisted_2$34 = ["onClick"]; + var cascader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCascader", + __name: "cascader", + props: cascaderProps, + emits: cascaderEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const popperOptions = { modifiers: [{ + name: "arrowPosition", + enabled: true, + phase: "main", + fn: ({ state }) => { + const { modifiersData, placement } = state; + if ([ + "right", + "left", + "bottom", + "top" + ].includes(placement)) return; + if (modifiersData.arrow) modifiersData.arrow.x = 35; + }, + requires: ["arrow"] + }] }; + const props = __props; + const emit = __emit; + const attrs = (0, vue.useAttrs)(); + const slots = (0, vue.useSlots)(); + let inputInitialHeight = 0; + let pressDeleteCount = 0; + const nsCascader = useNamespace("cascader"); + const nsInput = useNamespace("input"); + const sizeMapPadding = { + small: 7, + default: 11, + large: 15 + }; + const { t } = useLocale(); + const { formItem } = useFormItem(); + const isDisabled = useFormDisabled(); + const { valueOnClear } = useEmptyValues(props); + const { isComposing, handleComposition } = useComposition({ afterComposition(event) { + const text = event.target?.value; + handleInput(text); + } }); + const tooltipRef = (0, vue.ref)(); + const tagTooltipRef = (0, vue.ref)(); + const inputRef = (0, vue.ref)(); + const tagWrapper = (0, vue.ref)(); + const cascaderPanelRef = (0, vue.ref)(); + const suggestionPanel = (0, vue.ref)(); + const popperVisible = (0, vue.ref)(false); + const inputHover = (0, vue.ref)(false); + const filtering = (0, vue.ref)(false); + const inputValue = (0, vue.ref)(""); + const searchInputValue = (0, vue.ref)(""); + const tags = (0, vue.ref)([]); + const suggestions = (0, vue.ref)([]); + const showTagList = (0, vue.computed)(() => { + if (!props.props.multiple) return []; + return props.collapseTags ? tags.value.slice(0, props.maxCollapseTags) : tags.value; + }); + const collapseTagList = (0, vue.computed)(() => { + if (!props.props.multiple) return []; + return props.collapseTags ? tags.value.slice(props.maxCollapseTags) : []; + }); + const cascaderStyle = (0, vue.computed)(() => { + return attrs.style; + }); + const inputPlaceholder = (0, vue.computed)(() => props.placeholder ?? t("el.cascader.placeholder")); + const currentPlaceholder = (0, vue.computed)(() => searchInputValue.value || tags.value.length > 0 || isComposing.value ? "" : inputPlaceholder.value); + const realSize = useFormSize(); + const tagSize = (0, vue.computed)(() => realSize.value === "small" ? "small" : "default"); + const multiple = (0, vue.computed)(() => !!props.props.multiple); + const readonly = (0, vue.computed)(() => !props.filterable || multiple.value); + const searchKeyword = (0, vue.computed)(() => multiple.value ? searchInputValue.value : inputValue.value); + const checkedNodes = (0, vue.computed)(() => cascaderPanelRef.value?.checkedNodes || []); + const { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, { + disabled: isDisabled, + beforeBlur(event) { + return tooltipRef.value?.isFocusInsideContent(event) || tagTooltipRef.value?.isFocusInsideContent(event); + }, + afterBlur() { + if (props.validateEvent) formItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const clearBtnVisible = (0, vue.computed)(() => { + if (!props.clearable || isDisabled.value || filtering.value || !inputHover.value && !isFocused.value) return false; + return !!checkedNodes.value.length; + }); + const presentText = (0, vue.computed)(() => { + const { showAllLevels, separator } = props; + const nodes = checkedNodes.value; + return nodes.length ? multiple.value ? "" : nodes[0].calcText(showAllLevels, separator) : ""; + }); + const validateState = (0, vue.computed)(() => formItem?.validateState || ""); + const checkedValue = (0, vue.computed)({ + get() { + return cloneDeep(props.modelValue); + }, + set(val) { + const value = val ?? valueOnClear.value; + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value); + if (props.validateEvent) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const cascaderKls = (0, vue.computed)(() => { + return [ + nsCascader.b(), + nsCascader.m(realSize.value), + nsCascader.is("disabled", isDisabled.value), + attrs.class + ]; + }); + const cascaderIconKls = (0, vue.computed)(() => { + return [ + nsInput.e("icon"), + "icon-arrow-down", + nsCascader.is("reverse", popperVisible.value) + ]; + }); + const inputClass = (0, vue.computed)(() => nsCascader.is("focus", isFocused.value)); + const contentRef = (0, vue.computed)(() => { + return tooltipRef.value?.popperRef?.contentRef; + }); + const handleClickOutside = (event) => { + if (isFocused.value) handleBlur(new FocusEvent("blur", event)); + togglePopperVisible(false); + }; + const togglePopperVisible = (visible) => { + if (isDisabled.value) return; + visible = visible ?? !popperVisible.value; + if (visible !== popperVisible.value) { + popperVisible.value = visible; + inputRef.value?.input?.setAttribute("aria-expanded", `${visible}`); + if (visible) { + updatePopperPosition(); + cascaderPanelRef.value && (0, vue.nextTick)(cascaderPanelRef.value.scrollToExpandingNode); + } else if (props.filterable) syncPresentTextValue(); + emit("visibleChange", visible); + } + }; + const updatePopperPosition = () => { + (0, vue.nextTick)(() => { + tooltipRef.value?.updatePopper(); + }); + }; + const hideSuggestionPanel = () => { + filtering.value = false; + }; + const genTag = (node) => { + const { showAllLevels, separator } = props; + return { + node, + key: node.uid, + text: node.calcText(showAllLevels, separator), + hitState: false, + closable: !isDisabled.value && !node.isDisabled + }; + }; + const deleteTag = (tag) => { + const node = tag.node; + node.doCheck(false); + cascaderPanelRef.value?.calculateCheckedValue(); + emit("removeTag", node.valueByOption); + }; + const getStrategyCheckedNodes = () => { + switch (props.showCheckedStrategy) { + case "child": return checkedNodes.value; + case "parent": { + const clickedNodes = getCheckedNodes(false); + const clickedNodesValue = clickedNodes.map((o) => o.value); + return clickedNodes.filter((o) => !o.parent || !clickedNodesValue.includes(o.parent.value)); + } + default: return []; + } + }; + const calculatePresentTags = () => { + if (!multiple.value) return; + const nodes = getStrategyCheckedNodes(); + const allTags = []; + nodes.forEach((node) => allTags.push(genTag(node))); + tags.value = allTags; + }; + const calculateSuggestions = () => { + const { filterMethod, showAllLevels, separator } = props; + const res = cascaderPanelRef.value?.getFlattedNodes(!props.props.checkStrictly)?.filter((node) => { + if (node.isDisabled) return false; + node.calcText(showAllLevels, separator); + return filterMethod(node, searchKeyword.value); + }); + if (multiple.value) tags.value.forEach((tag) => { + tag.hitState = false; + }); + filtering.value = true; + suggestions.value = res; + updatePopperPosition(); + }; + const focusFirstNode = () => { + let firstNode; + if (filtering.value && suggestionPanel.value) firstNode = suggestionPanel.value.$el.querySelector(`.${nsCascader.e("suggestion-item")}`); + else firstNode = cascaderPanelRef.value?.$el.querySelector(`.${nsCascader.b("node")}[tabindex="-1"]`); + if (firstNode) { + firstNode.focus(); + if (!filtering.value && firstNode.getAttribute("aria-haspopup") === "true") firstNode.click(); + } + }; + const updateStyle = () => { + const inputInner = inputRef.value?.input; + const tagWrapperEl = tagWrapper.value; + const suggestionPanelEl = suggestionPanel.value?.$el; + if (!isClient || !inputInner) return; + if (suggestionPanelEl) { + const suggestionList = suggestionPanelEl.querySelector(`.${nsCascader.e("suggestion-list")}`); + suggestionList.style.minWidth = `${inputInner.offsetWidth}px`; + } + if (tagWrapperEl) { + const { offsetHeight } = tagWrapperEl; + const height = tags.value.length > 0 ? `${Math.max(offsetHeight, inputInitialHeight) - 2}px` : `${inputInitialHeight}px`; + inputInner.style.height = height; + if (slots.prefix) { + const prefix = inputRef.value?.$el.querySelector(`.${nsInput.e("prefix")}`); + let left = 0; + if (prefix) { + left = prefix.offsetWidth; + if (left > 0) left += sizeMapPadding[realSize.value || "default"]; + } + tagWrapperEl.style.left = `${left}px`; + } else tagWrapperEl.style.left = `0`; + updatePopperPosition(); + } + }; + const getCheckedNodes = (leafOnly) => { + return cascaderPanelRef.value?.getCheckedNodes(leafOnly); + }; + const handleExpandChange = (value) => { + updatePopperPosition(); + emit("expandChange", value); + }; + const handleKeyDown = (e) => { + if (isComposing.value) return; + switch (getEventCode(e)) { + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + togglePopperVisible(); + break; + case EVENT_CODE.down: + togglePopperVisible(true); + (0, vue.nextTick)(focusFirstNode); + e.preventDefault(); + break; + case EVENT_CODE.esc: + if (popperVisible.value === true) { + e.preventDefault(); + e.stopPropagation(); + togglePopperVisible(false); + } + break; + case EVENT_CODE.tab: + togglePopperVisible(false); + break; + } + }; + const handleClear = () => { + cascaderPanelRef.value?.clearCheckedNodes(); + if (!popperVisible.value && props.filterable) syncPresentTextValue(); + togglePopperVisible(false); + emit("clear"); + }; + const syncPresentTextValue = () => { + const { value } = presentText; + inputValue.value = value; + searchInputValue.value = value; + }; + const handleSuggestionClick = (node) => { + const { checked } = node; + if (multiple.value) cascaderPanelRef.value?.handleCheckChange(node, !checked, false); + else { + !checked && cascaderPanelRef.value?.handleCheckChange(node, true, false); + togglePopperVisible(false); + } + }; + const handleSuggestionKeyDown = (e) => { + const target = e.target; + const code = getEventCode(e); + switch (code) { + case EVENT_CODE.up: + case EVENT_CODE.down: + e.preventDefault(); + focusNode(getSibling(target, code === EVENT_CODE.up ? -1 : 1, `.${nsCascader.e("suggestion-item")}[tabindex="-1"]`)); + break; + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + target.click(); + break; + } + }; + const handleDelete = () => { + const lastTag = tags.value[tags.value.length - 1]; + pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1; + if (!lastTag || !pressDeleteCount || props.collapseTags && tags.value.length > 1) return; + if (lastTag.hitState) deleteTag(lastTag); + else lastTag.hitState = true; + }; + const handleFilter = useDebounceFn(() => { + const { value } = searchKeyword; + if (!value) return; + const passed = props.beforeFilter(value); + if (isPromise(passed)) passed.then(calculateSuggestions).catch(() => {}); + else if (passed !== false) calculateSuggestions(); + else hideSuggestionPanel(); + }, (0, vue.computed)(() => props.debounce)); + const handleInput = (val, e) => { + !popperVisible.value && togglePopperVisible(true); + if (e?.isComposing) return; + if (val) handleFilter(); + else { + const passed = props.beforeFilter(""); + if (isPromise(passed)) passed.catch(() => {}); + hideSuggestionPanel(); + } + }; + const getInputInnerHeight = (inputInner) => Number.parseFloat(useCssVar(nsInput.cssVarName("input-height"), inputInner).value) - 2; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + inputRef.value?.blur(); + }; + (0, vue.watch)(filtering, updatePopperPosition); + (0, vue.watch)([ + checkedNodes, + isDisabled, + () => props.collapseTags, + () => props.maxCollapseTags + ], calculatePresentTags); + (0, vue.watch)(tags, () => { + (0, vue.nextTick)(() => updateStyle()); + }); + (0, vue.watch)(realSize, async () => { + await (0, vue.nextTick)(); + const inputInner = inputRef.value.input; + inputInitialHeight = getInputInnerHeight(inputInner) || inputInitialHeight; + updateStyle(); + }); + (0, vue.watch)(presentText, syncPresentTextValue, { immediate: true }); + (0, vue.watch)(() => popperVisible.value, (val) => { + if (val && props.props.lazy && props.props.lazyLoad) cascaderPanelRef.value?.loadLazyRootNodes(); + }); + (0, vue.onMounted)(() => { + const inputInner = inputRef.value.input; + const inputInnerHeight = getInputInnerHeight(inputInner); + inputInitialHeight = inputInner.offsetHeight || inputInnerHeight; + useResizeObserver(inputInner, updateStyle); + }); + __expose({ + getCheckedNodes, + cascaderPanelRef, + togglePopperVisible, + contentRef, + presentText, + focus, + blur + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), { + ref_key: "tooltipRef", + ref: tooltipRef, + visible: popperVisible.value, + teleported: __props.teleported, + "popper-class": [(0, vue.unref)(nsCascader).e("dropdown"), __props.popperClass], + "popper-style": __props.popperStyle, + "popper-options": popperOptions, + "fallback-placements": __props.fallbackPlacements, + "stop-popper-mouse-event": false, + "gpu-acceleration": false, + placement: __props.placement, + transition: `${(0, vue.unref)(nsCascader).namespace.value}-zoom-in-top`, + effect: __props.effect, + pure: "", + persistent: __props.persistent, + onHide: hideSuggestionPanel + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "wrapperRef", + ref: wrapperRef, + class: (0, vue.normalizeClass)(cascaderKls.value), + style: (0, vue.normalizeStyle)(cascaderStyle.value), + onClick: _cache[8] || (_cache[8] = () => togglePopperVisible(readonly.value ? void 0 : true)), + onKeydown: handleKeyDown, + onMouseenter: _cache[9] || (_cache[9] = ($event) => inputHover.value = true), + onMouseleave: _cache[10] || (_cache[10] = ($event) => inputHover.value = false) + }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + ref_key: "inputRef", + ref: inputRef, + modelValue: inputValue.value, + "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => inputValue.value = $event), + placeholder: currentPlaceholder.value, + readonly: readonly.value, + disabled: (0, vue.unref)(isDisabled), + "validate-event": false, + size: (0, vue.unref)(realSize), + class: (0, vue.normalizeClass)(inputClass.value), + tabindex: multiple.value && __props.filterable && !(0, vue.unref)(isDisabled) ? -1 : void 0, + onCompositionstart: (0, vue.unref)(handleComposition), + onCompositionupdate: (0, vue.unref)(handleComposition), + onCompositionend: (0, vue.unref)(handleComposition), + onInput: handleInput + }, (0, vue.createSlots)({ + suffix: (0, vue.withCtx)(() => [clearBtnVisible.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: "clear", + class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("icon"), "icon-circle-close"]), + onClick: (0, vue.withModifiers)(handleClear, ["stop"]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.clearIcon)))]), + _: 1 + }, 8, ["class"])) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: "arrow-down", + class: (0, vue.normalizeClass)(cascaderIconKls.value), + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(($event) => togglePopperVisible(), ["stop"])) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_down_default))]), + _: 1 + }, 8, ["class"]))]), + _: 2 + }, [_ctx.$slots.prefix ? { + name: "prefix", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "prefix")]), + key: "0" + } : void 0]), 1032, [ + "modelValue", + "placeholder", + "readonly", + "disabled", + "size", + "class", + "tabindex", + "onCompositionstart", + "onCompositionupdate", + "onCompositionend" + ]), multiple.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref_key: "tagWrapper", + ref: tagWrapper, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsCascader).e("tags"), (0, vue.unref)(nsCascader).is("validate", Boolean(validateState.value))]) + }, [ + (0, vue.renderSlot)(_ctx.$slots, "tag", { + data: tags.value, + deleteTag + }, () => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(showTagList.value, (tag) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTag), { + key: tag.key, + type: __props.tagType, + size: tagSize.value, + effect: __props.tagEffect, + hit: tag.hitState, + closable: tag.closable, + "disable-transitions": "", + onClose: ($event) => deleteTag(tag) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(tag.text), 1)]), + _: 2 + }, 1032, [ + "type", + "size", + "effect", + "hit", + "closable", + "onClose" + ]); + }), 128))]), + __props.collapseTags && tags.value.length > __props.maxCollapseTags ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), { + key: 0, + ref_key: "tagTooltipRef", + ref: tagTooltipRef, + disabled: popperVisible.value || !__props.collapseTagsTooltip, + "fallback-placements": [ + "bottom", + "top", + "right", + "left" + ], + placement: "bottom", + "popper-class": __props.popperClass, + "popper-style": __props.popperStyle, + effect: __props.effect, + persistent: __props.persistent + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(ElTag), { + closable: false, + size: tagSize.value, + type: __props.tagType, + effect: __props.tagEffect, + "disable-transitions": "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("tags-text")) }, " + " + (0, vue.toDisplayString)(tags.value.length - __props.maxCollapseTags), 3)]), + _: 1 + }, 8, [ + "size", + "type", + "effect" + ])]), + content: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(ElScrollbar), { "max-height": __props.maxCollapseTagsTooltipHeight }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("collapse-tags")) }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(collapseTagList.value, (tag, idx) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: idx, + class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("collapse-tag")) + }, [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTag), { + key: tag.key, + class: "in-tooltip", + type: __props.tagType, + size: tagSize.value, + effect: __props.tagEffect, + hit: tag.hitState, + closable: tag.closable, + "disable-transitions": "", + onClose: ($event) => deleteTag(tag) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(tag.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" + ])) : (0, vue.createCommentVNode)("v-if", true), + __props.filterable && !(0, vue.unref)(isDisabled) ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("input", { + key: 1, + "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => searchInputValue.value = $event), + type: "text", + class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("search-input")), + placeholder: presentText.value ? "" : inputPlaceholder.value, + onInput: _cache[3] || (_cache[3] = (e) => handleInput(searchInputValue.value, e)), + onClick: _cache[4] || (_cache[4] = (0, vue.withModifiers)(($event) => togglePopperVisible(true), ["stop"])), + onKeydown: (0, vue.withKeys)(handleDelete, ["delete"]), + onCompositionstart: _cache[5] || (_cache[5] = (...args) => (0, vue.unref)(handleComposition) && (0, vue.unref)(handleComposition)(...args)), + onCompositionupdate: _cache[6] || (_cache[6] = (...args) => (0, vue.unref)(handleComposition) && (0, vue.unref)(handleComposition)(...args)), + onCompositionend: _cache[7] || (_cache[7] = (...args) => (0, vue.unref)(handleComposition) && (0, vue.unref)(handleComposition)(...args)) + }, null, 42, _hoisted_1$57)), [[vue.vModelText, searchInputValue.value]]) : (0, vue.createCommentVNode)("v-if", true) + ], 2)) : (0, vue.createCommentVNode)("v-if", true)], 38)), [[ + (0, vue.unref)(ClickOutside), + handleClickOutside, + contentRef.value + ]])]), + content: (0, vue.withCtx)(() => [ + _ctx.$slots.header ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("header")), + onClick: _cache[11] || (_cache[11] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "header")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElCascaderPanel), { + ref_key: "cascaderPanelRef", + ref: cascaderPanelRef, + modelValue: checkedValue.value, + "onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => checkedValue.value = $event), + options: __props.options, + props: props.props, + border: false, + "render-label": _ctx.$slots.default, + onExpandChange: handleExpandChange, + onClose: _cache[13] || (_cache[13] = ($event) => _ctx.$nextTick(() => togglePopperVisible(false))) + }, { + empty: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "empty")]), + _: 3 + }, 8, [ + "modelValue", + "options", + "props", + "render-label" + ]), [[vue.vShow, !filtering.value]]), + __props.filterable ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElScrollbar), { + key: 1, + ref_key: "suggestionPanel", + ref: suggestionPanel, + tag: "ul", + class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("suggestion-panel")), + "view-class": (0, vue.unref)(nsCascader).e("suggestion-list"), + onKeydown: handleSuggestionKeyDown + }, { + default: (0, vue.withCtx)(() => [suggestions.value.length ? ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, (0, vue.renderList)(suggestions.value, (item) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: item.uid, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsCascader).e("suggestion-item"), (0, vue.unref)(nsCascader).is("checked", item.checked)]), + tabindex: -1, + onClick: ($event) => handleSuggestionClick(item) + }, [(0, vue.renderSlot)(_ctx.$slots, "suggestion-item", { item }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(item.text), 1), item.checked ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(check_default))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true)])], 10, _hoisted_2$34); + }), 128)) : (0, vue.renderSlot)(_ctx.$slots, "empty", { key: 1 }, () => [(0, vue.createElementVNode)("li", { class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("empty-text")) }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.cascader.noMatch")), 3)])]), + _: 3 + }, 8, ["class", "view-class"])), [[vue.vShow, filtering.value]]) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("footer")), + onClick: _cache[14] || (_cache[14] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ]), + _: 3 + }, 8, [ + "visible", + "teleported", + "popper-class", + "popper-style", + "fallback-placements", + "placement", + "transition", + "effect", + "persistent" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/cascader/src/cascader.vue + var cascader_default = cascader_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/cascader/index.ts + const ElCascader = withInstall(cascader_default); + +//#endregion +//#region ../../packages/components/check-tag/src/check-tag.ts +/** + * @deprecated Removed after 3.0.0, Use `CheckTagProps` instead. + */ + const checkTagProps = buildProps({ + checked: Boolean, + disabled: Boolean, + type: { + type: String, + values: [ + "primary", + "success", + "info", + "warning", + "danger" + ], + default: "primary" + } + }); + const checkTagEmits = { + "update:checked": (value) => isBoolean(value), + [CHANGE_EVENT]: (value) => isBoolean(value) + }; + +//#endregion +//#region ../../packages/components/check-tag/src/check-tag.vue?vue&type=script&setup=true&lang.ts + var check_tag_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCheckTag", + __name: "check-tag", + props: checkTagProps, + emits: checkTagEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("check-tag"); + const containerKls = (0, vue.computed)(() => [ + ns.b(), + ns.is("checked", props.checked), + ns.is("disabled", props.disabled), + ns.m(props.type || "primary") + ]); + const handleChange = () => { + if (props.disabled) return; + const checked = !props.checked; + emit(CHANGE_EVENT, checked); + emit("update:checked", checked); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + class: (0, vue.normalizeClass)(containerKls.value), + onClick: handleChange + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/check-tag/src/check-tag.vue + var check_tag_default = check_tag_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/check-tag/index.ts + const ElCheckTag = withInstall(check_tag_default); + +//#endregion +//#region ../../packages/components/col/src/col.ts +/** + * @deprecated Removed after 3.0.0, Use `ColProps` instead. + */ + const colProps = buildProps({ + 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: definePropType([Number, Object]), + default: () => mutable({}) + }, + sm: { + type: definePropType([Number, Object]), + default: () => mutable({}) + }, + md: { + type: definePropType([Number, Object]), + default: () => mutable({}) + }, + lg: { + type: definePropType([Number, Object]), + default: () => mutable({}) + }, + xl: { + type: definePropType([Number, Object]), + default: () => mutable({}) + } + }); + +//#endregion +//#region ../../packages/components/row/src/row.ts + const RowJustify = [ + "start", + "center", + "end", + "space-around", + "space-between", + "space-evenly" + ]; + const RowAlign = [ + "top", + "middle", + "bottom" + ]; + /** + * @deprecated Removed after 3.0.0, Use `RowProps` instead. + */ + const rowProps = buildProps({ + tag: { + type: String, + default: "div" + }, + gutter: { + type: Number, + default: 0 + }, + justify: { + type: String, + values: RowJustify, + default: "start" + }, + align: { + type: String, + values: RowAlign + } + }); + +//#endregion +//#region ../../packages/components/row/src/constants.ts + const rowContextKey = Symbol("rowContextKey"); + +//#endregion +//#region ../../packages/components/row/src/row.vue?vue&type=script&setup=true&lang.ts + var row_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElRow", + __name: "row", + props: rowProps, + setup(__props) { + const props = __props; + const ns = useNamespace("row"); + (0, vue.provide)(rowContextKey, { gutter: (0, vue.computed)(() => props.gutter) }); + const style = (0, vue.computed)(() => { + const styles = {}; + if (!props.gutter) return styles; + styles.marginRight = styles.marginLeft = `-${props.gutter / 2}px`; + return styles; + }); + const rowKls = (0, vue.computed)(() => [ + ns.b(), + ns.is(`justify-${props.justify}`, props.justify !== "start"), + ns.is(`align-${props.align}`, !!props.align) + ]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.tag), { + class: (0, vue.normalizeClass)(rowKls.value), + style: (0, vue.normalizeStyle)(style.value) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["class", "style"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/row/src/row.vue + var row_default = row_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/row/index.ts + const ElRow = withInstall(row_default); + +//#endregion +//#region ../../packages/components/col/src/col.vue?vue&type=script&setup=true&lang.ts + var col_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCol", + __name: "col", + props: colProps, + setup(__props) { + const props = __props; + const { gutter } = (0, vue.inject)(rowContextKey, { gutter: (0, vue.computed)(() => 0) }); + const ns = useNamespace("col"); + const style = (0, vue.computed)(() => { + const styles = {}; + if (gutter.value) styles.paddingLeft = styles.paddingRight = `${gutter.value / 2}px`; + return styles; + }); + const colKls = (0, vue.computed)(() => { + const classes = []; + [ + "span", + "offset", + "pull", + "push" + ].forEach((prop) => { + const size = props[prop]; + if (isNumber(size)) { + if (prop === "span") classes.push(ns.b(`${props[prop]}`)); + else if (size > 0) classes.push(ns.b(`${prop}-${props[prop]}`)); + } + }); + [ + "xs", + "sm", + "md", + "lg", + "xl" + ].forEach((size) => { + if (isNumber(props[size])) classes.push(ns.b(`${size}-${props[size]}`)); + else if (isObject$1(props[size])) Object.entries(props[size]).forEach(([prop, sizeProp]) => { + classes.push(prop !== "span" ? ns.b(`${size}-${prop}-${sizeProp}`) : ns.b(`${size}-${sizeProp}`)); + }); + }); + if (gutter.value) classes.push(ns.is("guttered")); + return [ns.b(), classes]; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.tag), { + class: (0, vue.normalizeClass)(colKls.value), + style: (0, vue.normalizeStyle)(style.value) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["class", "style"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/col/src/col.vue + var col_default = col_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/col/index.ts + const ElCol = withInstall(col_default); + +//#endregion +//#region ../../packages/components/collapse/src/collapse.ts + const emitChangeFn = (value) => isNumber(value) || isString(value) || isArray$1(value); + /** + * @deprecated Removed after 3.0.0, Use `CollapseProps` instead. + */ + const collapseProps = buildProps({ + accordion: Boolean, + modelValue: { + type: definePropType([ + Array, + String, + Number + ]), + default: () => mutable([]) + }, + expandIconPosition: { + type: definePropType([String]), + default: "right" + }, + beforeCollapse: { type: definePropType(Function) } + }); + const collapseEmits = { + [UPDATE_MODEL_EVENT]: emitChangeFn, + [CHANGE_EVENT]: emitChangeFn + }; + +//#endregion +//#region ../../packages/components/collapse/src/constants.ts + const collapseContextKey = Symbol("collapseContextKey"); + +//#endregion +//#region ../../packages/components/collapse/src/use-collapse.ts + const SCOPE$4 = "ElCollapse"; + const useCollapse = (props, emit) => { + const activeNames = (0, vue.ref)(castArray$1(props.modelValue)); + const setActiveNames = (_activeNames) => { + activeNames.value = _activeNames; + const value = props.accordion ? activeNames.value[0] : activeNames.value; + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value); + }; + const handleChange = (name) => { + if (props.accordion) setActiveNames([activeNames.value[0] === name ? "" : name]); + else { + const _activeNames = [...activeNames.value]; + const index = _activeNames.indexOf(name); + if (index > -1) _activeNames.splice(index, 1); + else _activeNames.push(name); + setActiveNames(_activeNames); + } + }; + const handleItemClick = async (name) => { + const { beforeCollapse } = props; + if (!beforeCollapse) { + handleChange(name); + return; + } + const shouldChange = beforeCollapse(name); + if (![isPromise(shouldChange), isBoolean(shouldChange)].includes(true)) throwError(SCOPE$4, "beforeCollapse must return type `Promise` or `boolean`"); + if (isPromise(shouldChange)) shouldChange.then((result) => { + if (result !== false) handleChange(name); + }).catch((e) => { + /* @__PURE__ */ debugWarn(SCOPE$4, `some error occurred: ${e}`); + }); + else if (shouldChange) handleChange(name); + }; + (0, vue.watch)(() => props.modelValue, () => activeNames.value = castArray$1(props.modelValue), { deep: true }); + (0, vue.provide)(collapseContextKey, { + activeNames, + handleItemClick + }); + return { + activeNames, + setActiveNames + }; + }; + const useCollapseDOM = (props) => { + const ns = useNamespace("collapse"); + return { rootKls: (0, vue.computed)(() => [ns.b(), ns.b(`icon-position-${props.expandIconPosition}`)]) }; + }; + +//#endregion +//#region ../../packages/components/collapse/src/collapse.vue?vue&type=script&setup=true&lang.ts + var collapse_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCollapse", + __name: "collapse", + props: collapseProps, + emits: collapseEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const { activeNames, setActiveNames } = useCollapse(props, __emit); + const { rootKls } = useCollapseDOM(props); + __expose({ + activeNames, + setActiveNames + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/collapse/src/collapse.vue + var collapse_default = collapse_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/collapse/src/collapse-item.ts +/** + * @deprecated Removed after 3.0.0, Use `CollapseItemProps` instead. + */ + const collapseItemProps = buildProps({ + title: { + type: String, + default: "" + }, + name: { + type: definePropType([String, Number]), + default: void 0 + }, + icon: { + type: iconPropType, + default: arrow_right_default + }, + disabled: Boolean + }); + +//#endregion +//#region ../../packages/components/collapse-transition/src/collapse-transition.vue?vue&type=script&setup=true&lang.ts + var collapse_transition_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCollapseTransition", + __name: "collapse-transition", + setup(__props) { + const ns = useNamespace("collapse-transition"); + const reset = (el) => { + el.style.maxHeight = ""; + el.style.overflow = el.dataset.oldOverflow; + el.style.paddingTop = el.dataset.oldPaddingTop; + el.style.paddingBottom = el.dataset.oldPaddingBottom; + }; + const on = { + beforeEnter(el) { + if (!el.dataset) el.dataset = {}; + el.dataset.oldPaddingTop = el.style.paddingTop; + el.dataset.oldPaddingBottom = el.style.paddingBottom; + if (el.style.height) el.dataset.elExistsHeight = el.style.height; + el.style.maxHeight = 0; + el.style.paddingTop = 0; + el.style.paddingBottom = 0; + }, + enter(el) { + requestAnimationFrame(() => { + el.dataset.oldOverflow = el.style.overflow; + if (el.dataset.elExistsHeight) el.style.maxHeight = el.dataset.elExistsHeight; + else if (el.scrollHeight !== 0) el.style.maxHeight = `${el.scrollHeight}px`; + else el.style.maxHeight = 0; + el.style.paddingTop = el.dataset.oldPaddingTop; + el.style.paddingBottom = el.dataset.oldPaddingBottom; + el.style.overflow = "hidden"; + }); + }, + afterEnter(el) { + el.style.maxHeight = ""; + el.style.overflow = el.dataset.oldOverflow; + }, + enterCancelled(el) { + reset(el); + }, + beforeLeave(el) { + if (!el.dataset) el.dataset = {}; + el.dataset.oldPaddingTop = el.style.paddingTop; + el.dataset.oldPaddingBottom = el.style.paddingBottom; + el.dataset.oldOverflow = el.style.overflow; + el.style.maxHeight = `${el.scrollHeight}px`; + el.style.overflow = "hidden"; + }, + leave(el) { + if (el.scrollHeight !== 0) { + el.style.maxHeight = 0; + el.style.paddingTop = 0; + el.style.paddingBottom = 0; + } + }, + afterLeave(el) { + reset(el); + }, + leaveCancelled(el) { + reset(el); + } + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, (0, vue.mergeProps)({ name: (0, vue.unref)(ns).b() }, (0, vue.toHandlers)(on)), { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 16, ["name"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/collapse-transition/src/collapse-transition.vue + var collapse_transition_default = collapse_transition_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/collapse-transition/index.ts + const ElCollapseTransition = withInstall(collapse_transition_default); + +//#endregion +//#region ../../packages/components/collapse/src/use-collapse-item.ts + const useCollapseItem = (props) => { + const collapse = (0, vue.inject)(collapseContextKey); + const { namespace } = useNamespace("collapse"); + const focusing = (0, vue.ref)(false); + const isClick = (0, vue.ref)(false); + const idInjection = useIdInjection(); + const id = (0, vue.computed)(() => idInjection.current++); + const name = (0, vue.computed)(() => { + return props.name ?? `${namespace.value}-id-${idInjection.prefix}-${(0, vue.unref)(id)}`; + }); + const isActive = (0, vue.computed)(() => collapse?.activeNames.value.includes((0, vue.unref)(name))); + const handleFocus = () => { + setTimeout(() => { + if (!isClick.value) focusing.value = true; + else isClick.value = false; + }, 50); + }; + const handleHeaderClick = (e) => { + if (props.disabled) return; + if (e.target?.closest("input, textarea, select")) return; + collapse?.handleItemClick((0, vue.unref)(name)); + focusing.value = false; + isClick.value = true; + }; + const handleEnterClick = (e) => { + if (e.target?.closest("input, textarea, select")) return; + e.preventDefault(); + collapse?.handleItemClick((0, vue.unref)(name)); + }; + return { + focusing, + id, + isActive, + handleFocus, + handleHeaderClick, + handleEnterClick + }; + }; + const useCollapseItemDOM = (props, { focusing, isActive, id }) => { + const ns = useNamespace("collapse"); + const rootKls = (0, vue.computed)(() => [ + ns.b("item"), + ns.is("active", (0, vue.unref)(isActive)), + ns.is("disabled", props.disabled) + ]); + const headKls = (0, vue.computed)(() => [ + ns.be("item", "header"), + ns.is("active", (0, vue.unref)(isActive)), + { focusing: (0, vue.unref)(focusing) && !props.disabled } + ]); + const arrowKls = (0, vue.computed)(() => [ns.be("item", "arrow"), ns.is("active", (0, vue.unref)(isActive))]); + return { + itemTitleKls: (0, vue.computed)(() => [ns.be("item", "title")]), + arrowKls, + headKls, + rootKls, + itemWrapperKls: (0, vue.computed)(() => ns.be("item", "wrap")), + itemContentKls: (0, vue.computed)(() => ns.be("item", "content")), + scopedContentId: (0, vue.computed)(() => ns.b(`content-${(0, vue.unref)(id)}`)), + scopedHeadId: (0, vue.computed)(() => ns.b(`head-${(0, vue.unref)(id)}`)) + }; + }; + +//#endregion +//#region ../../packages/components/collapse/src/collapse-item.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$56 = [ + "id", + "aria-expanded", + "aria-controls", + "aria-describedby", + "tabindex", + "aria-disabled" + ]; + const _hoisted_2$33 = [ + "id", + "aria-hidden", + "aria-labelledby" + ]; + var collapse_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCollapseItem", + __name: "collapse-item", + props: collapseItemProps, + setup(__props, { expose: __expose }) { + const props = __props; + const { focusing, id, isActive, handleFocus, handleHeaderClick, handleEnterClick } = useCollapseItem(props); + const { arrowKls, headKls, rootKls, itemTitleKls, itemWrapperKls, itemContentKls, scopedContentId, scopedHeadId } = useCollapseItemDOM(props, { + focusing, + isActive, + id + }); + __expose({ isActive }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)) }, [(0, vue.createElementVNode)("div", { + id: (0, vue.unref)(scopedHeadId), + class: (0, vue.normalizeClass)((0, vue.unref)(headKls)), + "aria-expanded": (0, vue.unref)(isActive), + "aria-controls": (0, vue.unref)(scopedContentId), + "aria-describedby": (0, vue.unref)(scopedContentId), + tabindex: __props.disabled ? void 0 : 0, + "aria-disabled": __props.disabled, + role: "button", + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleHeaderClick) && (0, vue.unref)(handleHeaderClick)(...args)), + onKeydown: _cache[1] || (_cache[1] = (0, vue.withKeys)((0, vue.withModifiers)((...args) => (0, vue.unref)(handleEnterClick) && (0, vue.unref)(handleEnterClick)(...args), ["stop"]), ["space", "enter"])), + onFocus: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(handleFocus) && (0, vue.unref)(handleFocus)(...args)), + onBlur: _cache[3] || (_cache[3] = ($event) => focusing.value = false) + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(itemTitleKls)) }, [(0, vue.renderSlot)(_ctx.$slots, "title", { isActive: (0, vue.unref)(isActive) }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 2), (0, vue.renderSlot)(_ctx.$slots, "icon", { isActive: (0, vue.unref)(isActive) }, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(arrowKls)) }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + }, 8, ["class"])])], 42, _hoisted_1$56), (0, vue.createVNode)((0, vue.unref)(ElCollapseTransition), null, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("div", { + id: (0, vue.unref)(scopedContentId), + role: "region", + class: (0, vue.normalizeClass)((0, vue.unref)(itemWrapperKls)), + "aria-hidden": !(0, vue.unref)(isActive), + "aria-labelledby": (0, vue.unref)(scopedHeadId) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(itemContentKls)) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)], 10, _hoisted_2$33), [[vue.vShow, (0, vue.unref)(isActive)]])]), + _: 3 + })], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/collapse/src/collapse-item.vue + var collapse_item_default = collapse_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/collapse/index.ts + const ElCollapse = withInstall(collapse_default, { CollapseItem: collapse_item_default }); + const ElCollapseItem = withNoopInstall(collapse_item_default); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/color-picker-panel.ts +/** + * @deprecated Removed after 3.0.0, Use `ColorPickerPanelProps` instead. + */ + const colorPickerPanelProps = buildProps({ + modelValue: { + type: definePropType(String), + default: void 0 + }, + border: { + type: Boolean, + default: true + }, + showAlpha: Boolean, + colorFormat: { type: definePropType(String) }, + disabled: Boolean, + predefine: { type: definePropType(Array) }, + validateEvent: { + type: Boolean, + default: true + }, + hueSliderClass: { type: definePropType([ + String, + Array, + Object + ]) }, + hueSliderStyle: { type: definePropType([ + String, + Array, + Object + ]) } + }); + const colorPickerPanelEmits = { [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNil(val) }; + const ROOT_COMMON_COLOR_INJECTION_KEY = Symbol("colorCommonPickerKey"); + const colorPickerPanelContextKey = Symbol("colorPickerPanelContextKey"); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/props/slider.ts +/** + * @deprecated Removed after 3.0.0, Use `AlphaSliderProps` instead. + */ + const alphaSliderProps = buildProps({ + color: { + type: definePropType(Object), + required: true + }, + vertical: Boolean, + disabled: Boolean + }); + /** + * @deprecated Removed after 3.0.0, Use `HueSliderProps` instead. + */ + const hueSliderProps = alphaSliderProps; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/utils/draggable.ts + let isDragging = false; + function draggable(element, options) { + if (!isClient) return; + const moveFn = function(event) { + options.drag?.(event); + }; + const upFn = function(event) { + document.removeEventListener("mousemove", moveFn); + document.removeEventListener("mouseup", upFn); + document.removeEventListener("touchmove", moveFn); + document.removeEventListener("touchend", upFn); + document.onselectstart = null; + document.ondragstart = null; + isDragging = false; + options.end?.(event); + }; + const downFn = function(event) { + if (isDragging) return; + document.onselectstart = () => false; + document.ondragstart = () => false; + document.addEventListener("mousemove", moveFn); + document.addEventListener("mouseup", upFn); + document.addEventListener("touchmove", moveFn); + document.addEventListener("touchend", upFn); + isDragging = true; + options.start?.(event); + }; + element.addEventListener("mousedown", downFn); + element.addEventListener("touchstart", downFn, { passive: false }); + } + +//#endregion +//#region ../../packages/components/color-picker-panel/src/composables/use-slider.ts + const useSlider = (props, { key, minValue, maxValue }) => { + const instance = (0, vue.getCurrentInstance)(); + const thumb = (0, vue.shallowRef)(); + const bar = (0, vue.shallowRef)(); + const currentValue = (0, vue.computed)(() => props.color.get(key)); + function handleClick(event) { + if (props.disabled) return; + if (event.target !== thumb.value) handleDrag(event); + thumb.value?.focus(); + } + function handleDrag(event) { + if (!bar.value || !thumb.value || props.disabled) return; + const rect = instance.vnode.el.getBoundingClientRect(); + const { clientX, clientY } = getClientXY(event); + let value; + if (!props.vertical) { + let left = clientX - rect.left; + left = Math.max(thumb.value.offsetWidth / 2, left); + left = Math.min(left, rect.width - thumb.value.offsetWidth / 2); + value = Math.round((left - thumb.value.offsetWidth / 2) / (rect.width - thumb.value.offsetWidth) * maxValue); + } else { + let top = clientY - rect.top; + top = Math.max(thumb.value.offsetHeight / 2, top); + top = Math.min(top, rect.height - thumb.value.offsetHeight / 2); + value = Math.round((top - thumb.value.offsetHeight / 2) / (rect.height - thumb.value.offsetHeight) * maxValue); + } + props.color.set(key, value); + } + function handleKeydown(event) { + if (props.disabled) return; + const { shiftKey } = event; + const code = getEventCode(event); + const step = shiftKey ? 10 : 1; + const reverse = key === "hue" ? -1 : 1; + let isPreventDefault = true; + switch (code) { + case EVENT_CODE.left: + case EVENT_CODE.down: + incrementPosition(-step * reverse); + break; + case EVENT_CODE.right: + case EVENT_CODE.up: + incrementPosition(step * reverse); + break; + case EVENT_CODE.home: + props.color.set(key, key === "hue" ? maxValue : minValue); + break; + case EVENT_CODE.end: + props.color.set(key, key === "hue" ? minValue : maxValue); + break; + case EVENT_CODE.pageDown: + incrementPosition(-4 * reverse); + break; + case EVENT_CODE.pageUp: + incrementPosition(4 * reverse); + break; + default: + isPreventDefault = false; + break; + } + isPreventDefault && event.preventDefault(); + } + function incrementPosition(step) { + let next = currentValue.value + step; + next = next < minValue ? minValue : next > maxValue ? maxValue : next; + props.color.set(key, next); + } + return { + thumb, + bar, + currentValue, + handleDrag, + handleClick, + handleKeydown + }; + }; + const useSliderDOM = (props, { namespace, maxValue, bar, thumb, currentValue, handleDrag, getBackground }) => { + const instance = (0, vue.getCurrentInstance)(); + const ns = useNamespace(namespace); + const thumbLeft = (0, vue.ref)(0); + const thumbTop = (0, vue.ref)(0); + const background = (0, vue.ref)(); + function getThumbLeft() { + if (!thumb.value) return 0; + if (props.vertical) return 0; + const el = instance.vnode.el; + const value = currentValue.value; + if (!el) return 0; + return Math.round(value * (el.offsetWidth - thumb.value.offsetWidth / 2) / maxValue); + } + function getThumbTop() { + if (!thumb.value) return 0; + const el = instance.vnode.el; + if (!props.vertical) return 0; + const value = currentValue.value; + if (!el) return 0; + return Math.round(value * (el.offsetHeight - thumb.value.offsetHeight / 2) / maxValue); + } + function update() { + thumbLeft.value = getThumbLeft(); + thumbTop.value = getThumbTop(); + background.value = getBackground?.(); + } + (0, vue.onMounted)(() => { + if (!bar.value || !thumb.value) return; + const dragConfig = { + drag: (event) => { + handleDrag(event); + }, + end: (event) => { + handleDrag(event); + } + }; + draggable(bar.value, dragConfig); + draggable(thumb.value, dragConfig); + update(); + }); + (0, vue.watch)(currentValue, () => update()); + (0, vue.watch)(() => props.color.value, () => update()); + const rootKls = (0, vue.computed)(() => [ + ns.b(), + ns.is("vertical", props.vertical), + ns.is("disabled", props.disabled) + ]); + const barKls = (0, vue.computed)(() => ns.e("bar")); + const thumbKls = (0, vue.computed)(() => ns.e("thumb")); + return { + rootKls, + barKls, + barStyle: (0, vue.computed)(() => ({ background: background.value })), + thumbKls, + thumbStyle: (0, vue.computed)(() => ({ + left: addUnit(thumbLeft.value), + top: addUnit(thumbTop.value) + })), + thumbLeft, + thumbTop, + update + }; + }; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/alpha-slider.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$55 = [ + "aria-label", + "aria-valuenow", + "aria-valuetext", + "aria-orientation", + "tabindex", + "aria-disabled" + ]; + const minValue$1 = 0; + const maxValue$1 = 100; + var alpha_slider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElColorAlphaSlider", + __name: "alpha-slider", + props: alphaSliderProps, + setup(__props, { expose: __expose }) { + const props = __props; + const { currentValue, bar, thumb, handleDrag, handleClick, handleKeydown } = useSlider(props, { + key: "alpha", + minValue: minValue$1, + maxValue: maxValue$1 + }); + const { rootKls, barKls, barStyle, thumbKls, thumbStyle, update } = useSliderDOM(props, { + namespace: "color-alpha-slider", + maxValue: maxValue$1, + currentValue, + bar, + thumb, + handleDrag, + getBackground + }); + const { t } = useLocale(); + const ariaLabel = (0, vue.computed)(() => t("el.colorpicker.alphaLabel")); + const ariaValuetext = (0, vue.computed)(() => { + return t("el.colorpicker.alphaDescription", { + alpha: currentValue.value, + color: props.color.value + }); + }); + function getBackground() { + if (props.color && props.color.value) { + const { r, g, b } = props.color.toRgb(); + return `linear-gradient(to right, rgba(${r}, ${g}, ${b}, 0) 0%, rgba(${r}, ${g}, ${b}, 1) 100%)`; + } + return ""; + } + __expose({ + update, + bar, + thumb + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)) }, [(0, vue.createElementVNode)("div", { + ref_key: "bar", + ref: bar, + class: (0, vue.normalizeClass)((0, vue.unref)(barKls)), + style: (0, vue.normalizeStyle)((0, vue.unref)(barStyle)), + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleClick) && (0, vue.unref)(handleClick)(...args)) + }, null, 6), (0, vue.createElementVNode)("div", { + ref_key: "thumb", + ref: thumb, + class: (0, vue.normalizeClass)((0, vue.unref)(thumbKls)), + style: (0, vue.normalizeStyle)((0, vue.unref)(thumbStyle)), + "aria-label": ariaLabel.value, + "aria-valuenow": (0, vue.unref)(currentValue), + "aria-valuetext": ariaValuetext.value, + "aria-orientation": __props.vertical ? "vertical" : "horizontal", + "aria-valuemin": minValue$1, + "aria-valuemax": maxValue$1, + role: "slider", + tabindex: __props.disabled ? void 0 : 0, + "aria-disabled": __props.disabled, + onKeydown: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleKeydown) && (0, vue.unref)(handleKeydown)(...args)) + }, null, 46, _hoisted_1$55)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/alpha-slider.vue + var alpha_slider_default = alpha_slider_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/hue-slider.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$54 = [ + "aria-label", + "aria-valuenow", + "aria-valuetext", + "aria-orientation", + "tabindex", + "aria-disabled" + ]; + const minValue = 0; + const maxValue = 360; + var hue_slider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElColorHueSlider", + __name: "hue-slider", + props: hueSliderProps, + setup(__props, { expose: __expose }) { + const props = __props; + const { currentValue, bar, thumb, handleDrag, handleClick, handleKeydown } = useSlider(props, { + key: "hue", + minValue, + maxValue + }); + const { rootKls, barKls, thumbKls, thumbStyle, thumbTop, update } = useSliderDOM(props, { + namespace: "color-hue-slider", + maxValue, + currentValue, + bar, + thumb, + handleDrag + }); + const { t } = useLocale(); + const ariaLabel = (0, vue.computed)(() => t("el.colorpicker.hueLabel")); + const ariaValuetext = (0, vue.computed)(() => { + return t("el.colorpicker.hueDescription", { + hue: currentValue.value, + color: props.color.value + }); + }); + __expose({ + bar, + thumb, + thumbTop, + update + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)) }, [(0, vue.createElementVNode)("div", { + ref_key: "bar", + ref: bar, + class: (0, vue.normalizeClass)((0, vue.unref)(barKls)), + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleClick) && (0, vue.unref)(handleClick)(...args)) + }, null, 2), (0, vue.createElementVNode)("div", { + ref_key: "thumb", + ref: thumb, + class: (0, vue.normalizeClass)((0, vue.unref)(thumbKls)), + style: (0, vue.normalizeStyle)((0, vue.unref)(thumbStyle)), + "aria-label": ariaLabel.value, + "aria-valuenow": (0, vue.unref)(currentValue), + "aria-valuetext": ariaValuetext.value, + "aria-orientation": __props.vertical ? "vertical" : "horizontal", + "aria-valuemin": minValue, + "aria-valuemax": maxValue, + role: "slider", + tabindex: __props.disabled ? void 0 : 0, + "aria-disabled": __props.disabled, + onKeydown: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleKeydown) && (0, vue.unref)(handleKeydown)(...args)) + }, null, 46, _hoisted_1$54)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/hue-slider.vue + var hue_slider_default = hue_slider_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/props/predefine.ts +/** + * @deprecated Removed after 3.0.0, Use `PredefineProps` instead. + */ + const predefineProps = buildProps({ + colors: { + type: definePropType(Array), + required: true + }, + color: { + type: definePropType(Object), + required: true + }, + enableAlpha: { + type: Boolean, + required: true + }, + disabled: Boolean + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/utils/color.ts + var Color = class { + constructor(options = {}) { + this._hue = 0; + this._saturation = 100; + this._value = 100; + this._alpha = 100; + this._tiny = new TinyColor(); + this._isValid = false; + this.enableAlpha = false; + this.format = ""; + this.value = ""; + for (const option in options) if (hasOwn(options, option)) this[option] = options[option]; + if (options.value) this.fromString(options.value); + else this.doOnChange(); + } + set(prop, value) { + if (arguments.length === 1 && typeof prop === "object") { + for (const p in prop) if (hasOwn(prop, p)) this.set(p, prop[p]); + return; + } + this[`_${prop}`] = value; + this._isValid = true; + this.doOnChange(); + } + get(prop) { + if ([ + "hue", + "saturation", + "value", + "alpha" + ].includes(prop)) return Math.round(this[`_${prop}`]); + return this[`_${prop}`]; + } + toRgb() { + return this._isValid ? this._tiny.toRgb() : { + r: 255, + g: 255, + b: 255, + a: 0 + }; + } + fromString(value) { + const color = new TinyColor(value); + this._isValid = color.isValid; + if (color.isValid) { + const { h, s, v, a } = color.toHsv(); + this._hue = h; + this._saturation = s * 100; + this._value = v * 100; + this._alpha = a * 100; + } else { + this._hue = 0; + this._saturation = 100; + this._value = 100; + this._alpha = 100; + } + this.doOnChange(); + } + clear() { + this._isValid = false; + this.value = ""; + this._hue = 0; + this._saturation = 100; + this._value = 100; + this._alpha = 100; + } + compare(color) { + const compareColor = new TinyColor({ + h: color._hue, + s: color._saturation / 100, + v: color._value / 100, + a: color._alpha / 100 + }); + return this._tiny.equals(compareColor); + } + doOnChange() { + const { _hue, _saturation, _value, _alpha, format, enableAlpha } = this; + let _format = format || (enableAlpha ? "rgb" : "hex"); + if (format === "hex" && enableAlpha) _format = "hex8"; + this._tiny = new TinyColor({ + h: _hue, + s: _saturation / 100, + v: _value / 100, + a: _alpha / 100 + }); + this.value = this._isValid ? this._tiny.toString(_format) : ""; + } + }; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/composables/use-predefine.ts + const usePredefine = (props) => { + const { currentColor } = (0, vue.inject)(colorPickerPanelContextKey); + const rgbaColors = (0, vue.ref)(parseColors(props.colors, props.color)); + (0, vue.watch)(() => currentColor.value, (val) => { + const color = new Color({ + value: val, + enableAlpha: props.enableAlpha + }); + rgbaColors.value.forEach((item) => { + item.selected = color.compare(item); + }); + }); + (0, vue.watchEffect)(() => { + rgbaColors.value = parseColors(props.colors, props.color); + }); + function handleSelect(index) { + props.color.fromString(props.colors[index]); + } + function parseColors(colors, color) { + return colors.map((value) => { + const c = new Color({ + value, + enableAlpha: props.enableAlpha + }); + c.selected = c.compare(color); + return c; + }); + } + return { + rgbaColors, + handleSelect + }; + }; + const usePredefineDOM = (props) => { + const ns = useNamespace("color-predefine"); + const rootKls = (0, vue.computed)(() => [ns.b(), ns.is("disabled", props.disabled)]); + const colorsKls = (0, vue.computed)(() => ns.e("colors")); + function colorSelectorKls(item) { + return [ + ns.e("color-selector"), + ns.is("alpha", item.get("alpha") < 100), + { selected: item.selected } + ]; + } + return { + rootKls, + colorsKls, + colorSelectorKls + }; + }; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/predefine.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$53 = [ + "disabled", + "aria-label", + "onClick" + ]; + var predefine_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElColorPredefine", + __name: "predefine", + props: predefineProps, + setup(__props) { + const props = __props; + const { rgbaColors, handleSelect } = usePredefine(props); + const { rootKls, colorsKls, colorSelectorKls } = usePredefineDOM(props); + const { t } = useLocale(); + const ariaLabel = (value) => { + return t("el.colorpicker.predefineDescription", { value }); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(colorsKls)) }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(rgbaColors), (item, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: __props.colors[index], + type: "button", + disabled: __props.disabled, + "aria-label": ariaLabel(item.value), + class: (0, vue.normalizeClass)((0, vue.unref)(colorSelectorKls)(item)), + onClick: ($event) => (0, vue.unref)(handleSelect)(index) + }, [(0, vue.createElementVNode)("div", { style: (0, vue.normalizeStyle)({ backgroundColor: item.value }) }, null, 4)], 10, _hoisted_1$53); + }), 128))], 2)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/predefine.vue + var predefine_default = predefine_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/props/sv-panel.ts +/** + * @deprecated Removed after 3.0.0, Use `SvPanelProps` instead. + */ + const svPanelProps = buildProps({ + color: { + type: definePropType(Object), + required: true + }, + disabled: Boolean + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/composables/use-sv-panel.ts + const useSvPanel = (props) => { + const instance = (0, vue.getCurrentInstance)(); + const cursorRef = (0, vue.ref)(); + const cursorTop = (0, vue.ref)(0); + const cursorLeft = (0, vue.ref)(0); + const background = (0, vue.ref)("hsl(0, 100%, 50%)"); + const saturation = (0, vue.computed)(() => props.color.get("saturation")); + const brightness = (0, vue.computed)(() => props.color.get("value")); + const hue = (0, vue.computed)(() => props.color.get("hue")); + function handleClick(event) { + if (props.disabled) return; + if (event.target !== cursorRef.value) handleDrag(event); + cursorRef.value?.focus({ preventScroll: true }); + } + function handleDrag(event) { + if (props.disabled) return; + const rect = instance.vnode.el.getBoundingClientRect(); + const { clientX, clientY } = getClientXY(event); + let left = clientX - rect.left; + let top = clientY - rect.top; + left = Math.max(0, left); + left = Math.min(left, rect.width); + top = Math.max(0, top); + top = Math.min(top, rect.height); + cursorLeft.value = left; + cursorTop.value = top; + props.color.set({ + saturation: left / rect.width * 100, + value: 100 - top / rect.height * 100 + }); + } + function handleKeydown(event) { + if (props.disabled) return; + const { shiftKey } = event; + const code = getEventCode(event); + const step = shiftKey ? 10 : 1; + let isPreventDefault = true; + switch (code) { + case EVENT_CODE.left: + incrementSaturation(-step); + break; + case EVENT_CODE.right: + incrementSaturation(step); + break; + case EVENT_CODE.up: + incrementBrightness(step); + break; + case EVENT_CODE.down: + incrementBrightness(-step); + break; + default: + isPreventDefault = false; + break; + } + isPreventDefault && event.preventDefault(); + } + function incrementSaturation(step) { + let next = saturation.value + step; + next = next < 0 ? 0 : next > 100 ? 100 : next; + props.color.set("saturation", next); + } + function incrementBrightness(step) { + let next = brightness.value + step; + next = next < 0 ? 0 : next > 100 ? 100 : next; + props.color.set("value", next); + } + return { + cursorRef, + cursorTop, + cursorLeft, + background, + saturation, + brightness, + hue, + handleClick, + handleDrag, + handleKeydown + }; + }; + const useSvPanelDOM = (props, { cursorTop, cursorLeft, background, handleDrag }) => { + const instance = (0, vue.getCurrentInstance)(); + const ns = useNamespace("color-svpanel"); + function update() { + const saturation = props.color.get("saturation"); + const brightness = props.color.get("value"); + const { clientWidth: width, clientHeight: height } = instance.vnode.el; + cursorLeft.value = saturation * width / 100; + cursorTop.value = (100 - brightness) * height / 100; + background.value = `hsl(${props.color.get("hue")}, 100%, 50%)`; + } + (0, vue.onMounted)(() => { + draggable(instance.vnode.el, { + drag: (event) => { + handleDrag(event); + }, + end: (event) => { + handleDrag(event); + } + }); + update(); + }); + (0, vue.watch)([ + () => props.color.get("hue"), + () => props.color.get("value"), + () => props.color.value + ], () => update()); + return { + rootKls: (0, vue.computed)(() => ns.b()), + cursorKls: (0, vue.computed)(() => ns.e("cursor")), + rootStyle: (0, vue.computed)(() => ({ backgroundColor: background.value })), + cursorStyle: (0, vue.computed)(() => ({ + top: addUnit(cursorTop.value), + left: addUnit(cursorLeft.value) + })), + update + }; + }; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/sv-panel.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$52 = [ + "tabindex", + "aria-disabled", + "aria-label", + "aria-valuenow", + "aria-valuetext" + ]; + var sv_panel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSvPanel", + __name: "sv-panel", + props: svPanelProps, + setup(__props, { expose: __expose }) { + const props = __props; + const { cursorRef, cursorTop, cursorLeft, background, saturation, brightness, handleClick, handleDrag, handleKeydown } = useSvPanel(props); + const { rootKls, cursorKls, rootStyle, cursorStyle, update } = useSvPanelDOM(props, { + cursorTop, + cursorLeft, + background, + handleDrag + }); + const { t } = useLocale(); + const ariaLabel = (0, vue.computed)(() => t("el.colorpicker.svLabel")); + const ariaValuetext = (0, vue.computed)(() => { + return t("el.colorpicker.svDescription", { + saturation: saturation.value, + brightness: brightness.value, + color: props.color.value + }); + }); + __expose({ update }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)), + style: (0, vue.normalizeStyle)((0, vue.unref)(rootStyle)), + onClick: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleClick) && (0, vue.unref)(handleClick)(...args)) + }, [(0, vue.createElementVNode)("div", { + ref_key: "cursorRef", + ref: cursorRef, + class: (0, vue.normalizeClass)((0, vue.unref)(cursorKls)), + style: (0, vue.normalizeStyle)((0, vue.unref)(cursorStyle)), + tabindex: __props.disabled ? void 0 : 0, + "aria-disabled": __props.disabled, + role: "slider", + "aria-valuemin": "0,0", + "aria-valuemax": "100,100", + "aria-label": ariaLabel.value, + "aria-valuenow": `${(0, vue.unref)(saturation)},${(0, vue.unref)(brightness)}`, + "aria-valuetext": ariaValuetext.value, + onKeydown: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleKeydown) && (0, vue.unref)(handleKeydown)(...args)) + }, null, 46, _hoisted_1$52)], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/sv-panel.vue + var sv_panel_default = sv_panel_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/composables/use-common-color.ts + const useCommonColor = (props, emit) => { + const color = (0, vue.reactive)(new Color({ + enableAlpha: props.showAlpha, + format: props.colorFormat || "", + value: props.modelValue + })); + (0, vue.watch)(() => [props.colorFormat, props.showAlpha], () => { + color.enableAlpha = props.showAlpha; + color.format = props.colorFormat || color.format; + color.doOnChange(); + emit(UPDATE_MODEL_EVENT, color.value); + }); + return { color }; + }; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/color-picker-panel.vue?vue&type=script&setup=true&lang.ts + var color_picker_panel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElColorPickerPanel", + __name: "color-picker-panel", + props: colorPickerPanelProps, + emits: colorPickerPanelEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("color-picker-panel"); + const { formItem } = useFormItem(); + const disabled = useFormDisabled(); + const hueRef = (0, vue.ref)(); + const svRef = (0, vue.ref)(); + const alphaRef = (0, vue.ref)(); + const inputRef = (0, vue.ref)(); + const customInput = (0, vue.ref)(""); + const { color } = (0, vue.inject)(ROOT_COMMON_COLOR_INJECTION_KEY, () => useCommonColor(props, emit), true); + function handleConfirm() { + color.fromString(customInput.value); + if (color.value !== customInput.value) customInput.value = color.value; + } + function handleFocusout() { + if (props.validateEvent) formItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + function update() { + hueRef.value?.update(); + svRef.value?.update(); + alphaRef.value?.update(); + } + (0, vue.onMounted)(() => { + if (props.modelValue) customInput.value = color.value; + (0, vue.nextTick)(update); + }); + (0, vue.watch)(() => props.modelValue, (newVal) => { + if (newVal !== color.value) newVal ? color.fromString(newVal) : color.clear(); + }); + (0, vue.watch)(() => color.value, (val) => { + emit(UPDATE_MODEL_EVENT, val); + customInput.value = val; + if (props.validateEvent) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + (0, vue.provide)(colorPickerPanelContextKey, { currentColor: (0, vue.computed)(() => color.value) }); + __expose({ + color, + inputRef, + update + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(disabled)), + (0, vue.unref)(ns).is("border", __props.border) + ]), + onFocusout: handleFocusout + }, [ + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("wrapper")) }, [(0, vue.createVNode)(hue_slider_default, { + ref_key: "hueRef", + ref: hueRef, + color: (0, vue.unref)(color), + vertical: "", + disabled: (0, vue.unref)(disabled), + class: (0, vue.normalizeClass)(["hue-slider", __props.hueSliderClass]), + style: (0, vue.normalizeStyle)(__props.hueSliderStyle) + }, null, 8, [ + "color", + "disabled", + "class", + "style" + ]), (0, vue.createVNode)(sv_panel_default, { + ref_key: "svRef", + ref: svRef, + color: (0, vue.unref)(color), + disabled: (0, vue.unref)(disabled) + }, null, 8, ["color", "disabled"])], 2), + __props.showAlpha ? ((0, vue.openBlock)(), (0, vue.createBlock)(alpha_slider_default, { + key: 0, + ref_key: "alphaRef", + ref: alphaRef, + color: (0, vue.unref)(color), + disabled: (0, vue.unref)(disabled) + }, null, 8, ["color", "disabled"])) : (0, vue.createCommentVNode)("v-if", true), + __props.predefine ? ((0, vue.openBlock)(), (0, vue.createBlock)(predefine_default, { + key: 1, + ref: "predefine", + "enable-alpha": __props.showAlpha, + color: (0, vue.unref)(color), + colors: __props.predefine, + disabled: (0, vue.unref)(disabled) + }, null, 8, [ + "enable-alpha", + "color", + "colors", + "disabled" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("footer")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + ref_key: "inputRef", + ref: inputRef, + modelValue: customInput.value, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => customInput.value = $event), + "validate-event": false, + size: "small", + disabled: (0, vue.unref)(disabled), + onChange: handleConfirm + }, null, 8, ["modelValue", "disabled"]), (0, vue.renderSlot)(_ctx.$slots, "footer")], 2) + ], 34); + }; + } + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/color-picker-panel.vue + var color_picker_panel_default = color_picker_panel_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/color-picker-panel/index.ts + const ElColorPickerPanel = withInstall(color_picker_panel_default); + +//#endregion +//#region ../../packages/components/color-picker/src/color-picker.ts +/** + * @deprecated Removed after 3.0.0, Use `ColorPickerProps` instead. + */ + const colorPickerProps = buildProps({ + persistent: { + type: Boolean, + default: true + }, + modelValue: { + type: definePropType(String), + default: void 0 + }, + id: String, + showAlpha: Boolean, + colorFormat: { type: definePropType(String) }, + disabled: { + type: Boolean, + default: void 0 + }, + clearable: { + type: Boolean, + default: true + }, + size: useSizeProp, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + tabindex: { + type: [String, Number], + default: 0 + }, + teleported: useTooltipContentProps.teleported, + appendTo: useTooltipContentProps.appendTo, + predefine: { type: definePropType(Array) }, + validateEvent: { + type: Boolean, + default: true + }, + ...useEmptyValuesProps, + ...useAriaProps(["ariaLabel"]) + }); + const colorPickerEmits = { + [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNil(val), + [CHANGE_EVENT]: (val) => isString(val) || isNil(val), + activeChange: (val) => isString(val) || isNil(val), + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true + }; + /** + * @description default values for ColorPickerProps, used in components that extend ColorPickerProps + */ + const colorPickerPropsDefaults = { + persistent: true, + modelValue: void 0, + disabled: void 0, + clearable: true, + popperStyle: void 0, + tabindex: 0, + teleported: true, + validateEvent: true, + valueOnClear: void 0 + }; + +//#endregion +//#region ../../packages/components/color-picker/src/color-picker.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$51 = [ + "id", + "aria-label", + "aria-labelledby", + "aria-description", + "aria-disabled", + "tabindex" + ]; + var color_picker_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElColorPicker", + __name: "color-picker", + props: colorPickerProps, + emits: colorPickerEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const { t } = useLocale(); + const ns = useNamespace("color"); + const { formItem } = useFormItem(); + const colorSize = useFormSize(); + const colorDisabled = useFormDisabled(); + const { valueOnClear, isEmptyValue } = useEmptyValues(props, null); + const commonColor = useCommonColor(props, emit); + const { inputId: buttonId, isLabeledByFormItem } = useFormItemInputId(props, { formItemContext: formItem }); + const popper = (0, vue.ref)(); + const triggerRef = (0, vue.ref)(); + const pickerPanelRef = (0, vue.ref)(); + const showPicker = (0, vue.ref)(false); + const showPanelColor = (0, vue.ref)(false); + let shouldActiveChange = true; + const { isFocused, handleFocus, handleBlur } = useFocusController(triggerRef, { + disabled: colorDisabled, + beforeBlur(event) { + return popper.value?.isFocusInsideContent(event); + }, + afterBlur() { + setShowPicker(false); + resetColor(); + if (props.validateEvent) formItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const color = reactiveComputed(() => pickerPanelRef.value?.color ?? commonColor.color); + const panelProps = (0, vue.computed)(() => pick(props, Object.keys(colorPickerPanelProps))); + const displayedColor = (0, vue.computed)(() => { + if (!props.modelValue && !showPanelColor.value) return "transparent"; + return displayedRgb(color, props.showAlpha); + }); + const currentColor = (0, vue.computed)(() => { + return !props.modelValue && !showPanelColor.value ? "" : color.value; + }); + const buttonAriaLabel = (0, vue.computed)(() => { + return !isLabeledByFormItem.value ? props.ariaLabel || t("el.colorpicker.defaultLabel") : void 0; + }); + const buttonAriaLabelledby = (0, vue.computed)(() => { + return isLabeledByFormItem.value ? formItem?.labelId : void 0; + }); + const btnKls = (0, vue.computed)(() => { + return [ + ns.b("picker"), + ns.is("disabled", colorDisabled.value), + ns.bm("picker", colorSize.value), + ns.is("focused", isFocused.value) + ]; + }); + function displayedRgb(color, showAlpha) { + const { r, g, b, a } = color.toRgb(); + return showAlpha ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`; + } + function setShowPicker(value) { + showPicker.value = value; + } + const debounceSetShowPicker = debounce(setShowPicker, 100, { leading: true }); + function show() { + if (colorDisabled.value) return; + setShowPicker(true); + } + function hide() { + debounceSetShowPicker(false); + resetColor(); + } + function resetColor() { + (0, vue.nextTick)(() => { + if (props.modelValue) color.fromString(props.modelValue); + else { + color.value = ""; + (0, vue.nextTick)(() => { + showPanelColor.value = false; + }); + } + }); + } + function handleTrigger() { + if (colorDisabled.value) return; + if (showPicker.value) resetColor(); + debounceSetShowPicker(!showPicker.value); + } + function confirmValue() { + const value = isEmptyValue(color.value) ? valueOnClear.value : color.value; + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value); + if (props.validateEvent) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + debounceSetShowPicker(false); + (0, vue.nextTick)(() => { + const newColor = new Color({ + enableAlpha: props.showAlpha, + format: props.colorFormat || "", + value: props.modelValue + }); + if (!color.compare(newColor)) resetColor(); + }); + } + function clear() { + debounceSetShowPicker(false); + emit(UPDATE_MODEL_EVENT, valueOnClear.value); + emit(CHANGE_EVENT, valueOnClear.value); + if (props.modelValue !== valueOnClear.value && props.validateEvent) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + resetColor(); + emit("clear"); + } + function handleShowTooltip() { + pickerPanelRef?.value?.inputRef?.focus(); + } + function handleClickOutside() { + if (!showPicker.value) return; + hide(); + isFocused.value && focus(); + } + function handleEsc(event) { + event.preventDefault(); + event.stopPropagation(); + setShowPicker(false); + resetColor(); + } + function handleKeyDown(event) { + switch (getEventCode(event)) { + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + case EVENT_CODE.space: + event.preventDefault(); + event.stopPropagation(); + show(); + break; + case EVENT_CODE.esc: + handleEsc(event); + break; + } + } + function focus() { + triggerRef.value.focus(); + } + function blur() { + triggerRef.value.blur(); + } + (0, vue.watch)(() => currentColor.value, (val) => { + shouldActiveChange && emit("activeChange", val); + shouldActiveChange = true; + }); + (0, vue.watch)(() => color.value, () => { + if (!props.modelValue && !showPanelColor.value) showPanelColor.value = true; + }); + (0, vue.watch)(() => props.modelValue, (newVal) => { + if (!newVal) showPanelColor.value = false; + else if (newVal && newVal !== color.value) { + shouldActiveChange = false; + color.fromString(newVal); + } + }); + (0, vue.watch)(() => showPicker.value, () => { + pickerPanelRef.value && (0, vue.nextTick)(pickerPanelRef.value.update); + }); + (0, vue.provide)(ROOT_COMMON_COLOR_INJECTION_KEY, commonColor); + __expose({ + color, + show, + hide, + focus, + blur + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), { + ref_key: "popper", + ref: popper, + visible: showPicker.value, + "show-arrow": false, + "fallback-placements": [ + "bottom", + "top", + "right", + "left" + ], + offset: 0, + "gpu-acceleration": false, + "popper-class": [(0, vue.unref)(ns).be("picker", "panel"), __props.popperClass], + "popper-style": __props.popperStyle, + "stop-popper-mouse-event": false, + pure: "", + loop: "", + role: "dialog", + effect: "light", + trigger: "click", + teleported: __props.teleported, + transition: `${(0, vue.unref)(ns).namespace.value}-zoom-in-top`, + persistent: __props.persistent, + "append-to": __props.appendTo, + onShow: handleShowTooltip, + onHide: _cache[2] || (_cache[2] = ($event) => setShowPicker(false)) + }, { + content: (0, vue.withCtx)(() => [(0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElColorPickerPanel), (0, vue.mergeProps)({ + ref_key: "pickerPanelRef", + ref: pickerPanelRef + }, panelProps.value, { + border: false, + "validate-event": false, + onKeydown: (0, vue.withKeys)(handleEsc, ["esc"]) + }), { + footer: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", null, [__props.clearable ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElButton), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("footer", "link-btn")), + text: "", + size: "small", + onClick: clear + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.colorpicker.clear")), 1)]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createVNode)((0, vue.unref)(ElButton), { + plain: "", + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("footer", "btn")), + onClick: confirmValue + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.colorpicker.confirm")), 1)]), + _: 1 + }, 8, ["class"])])]), + _: 1 + }, 16)), [[ + (0, vue.unref)(ClickOutside), + handleClickOutside, + triggerRef.value + ]])]), + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", (0, vue.mergeProps)({ + id: (0, vue.unref)(buttonId), + ref_key: "triggerRef", + ref: triggerRef + }, _ctx.$attrs, { + class: btnKls.value, + role: "button", + "aria-label": buttonAriaLabel.value, + "aria-labelledby": buttonAriaLabelledby.value, + "aria-description": (0, vue.unref)(t)("el.colorpicker.description", { color: __props.modelValue || "" }), + "aria-disabled": (0, vue.unref)(colorDisabled), + tabindex: (0, vue.unref)(colorDisabled) ? void 0 : __props.tabindex, + onKeydown: handleKeyDown, + onFocus: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleFocus) && (0, vue.unref)(handleFocus)(...args)), + onBlur: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleBlur) && (0, vue.unref)(handleBlur)(...args)) + }), [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("picker", "trigger")), + onClick: handleTrigger + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("picker", "color"), (0, vue.unref)(ns).is("alpha", __props.showAlpha)]) }, [(0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("picker", "color-inner")), + style: (0, vue.normalizeStyle)({ backgroundColor: displayedColor.value }) + }, [(0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("picker", "icon"), (0, vue.unref)(ns).is("icon-arrow-down")]) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_down_default))]), + _: 1 + }, 8, ["class"]), [[vue.vShow, __props.modelValue || showPanelColor.value]]), (0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("picker", "empty"), (0, vue.unref)(ns).is("icon-close")]) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + }, 8, ["class"]), [[vue.vShow, !__props.modelValue && !showPanelColor.value]])], 6)], 2)], 2)], 16, _hoisted_1$51)]), + _: 1 + }, 8, [ + "visible", + "popper-class", + "popper-style", + "teleported", + "transition", + "persistent", + "append-to" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/color-picker/src/color-picker.vue + var color_picker_default = color_picker_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/color-picker/index.ts + const ElColorPicker = withInstall(color_picker_default); + +//#endregion +//#region ../../packages/components/container/src/container.vue?vue&type=script&setup=true&lang.ts + var container_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElContainer", + __name: "container", + props: { direction: { + type: String, + required: false + } }, + setup(__props) { + const props = __props; + const slots = (0, vue.useSlots)(); + const ns = useNamespace("container"); + const isVertical = (0, vue.computed)(() => { + if (props.direction === "vertical") return true; + else if (props.direction === "horizontal") return false; + if (slots && slots.default) return slots.default().some((vNode) => { + const tag = vNode.type.name; + return tag === "ElHeader" || tag === "ElFooter"; + }); + else return false; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("section", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), (0, vue.unref)(ns).is("vertical", isVertical.value)]) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/container/src/container.vue + var container_default = container_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/container/src/aside.vue?vue&type=script&setup=true&lang.ts + var aside_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAside", + __name: "aside", + props: { width: { + type: [String, null], + required: false, + default: null + } }, + setup(__props) { + const props = __props; + const ns = useNamespace("aside"); + const style = (0, vue.computed)(() => props.width ? ns.cssVarBlock({ width: props.width }) : {}); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("aside", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + style: (0, vue.normalizeStyle)(style.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/container/src/aside.vue + var aside_default = aside_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/container/src/footer.vue?vue&type=script&setup=true&lang.ts + var footer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElFooter", + __name: "footer", + props: { height: { + type: [String, null], + required: false, + default: null + } }, + setup(__props) { + const props = __props; + const ns = useNamespace("footer"); + const style = (0, vue.computed)(() => props.height ? ns.cssVarBlock({ height: props.height }) : {}); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("footer", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + style: (0, vue.normalizeStyle)(style.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/container/src/footer.vue + var footer_default = footer_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/container/src/header.vue?vue&type=script&setup=true&lang.ts + var header_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElHeader", + __name: "header", + props: { height: { + type: [String, null], + required: false, + default: null + } }, + setup(__props) { + const props = __props; + const ns = useNamespace("header"); + const style = (0, vue.computed)(() => { + return props.height ? ns.cssVarBlock({ height: props.height }) : {}; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("header", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + style: (0, vue.normalizeStyle)(style.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/container/src/header.vue + var header_default = header_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/container/src/main.vue?vue&type=script&setup=true&lang.ts + var main_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElMain", + __name: "main", + setup(__props) { + const ns = useNamespace("main"); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("main", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/container/src/main.vue + var main_default = main_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/container/index.ts + const ElContainer = withInstall(container_default, { + Aside: aside_default, + Footer: footer_default, + Header: header_default, + Main: main_default + }); + const ElAside = withNoopInstall(aside_default); + const ElFooter = withNoopInstall(footer_default); + const ElHeader = withNoopInstall(header_default); + const ElMain = withNoopInstall(main_default); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/advancedFormat.js + var require_advancedFormat = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, t) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_advancedFormat = t(); + })(exports, (function() { + "use strict"; + return function(e, t) { + var r = t.prototype, n = r.format; + r.format = function(e) { + var t = this, r = this.$locale(); + if (!this.isValid()) return n.bind(this)(e); + var s = 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 r.ordinal(t.$D); + case "gggg": return t.weekYear(); + case "GGGG": return t.isoWeekYear(); + case "wo": return r.ordinal(t.week(), "W"); + case "w": + case "ww": return s.s(t.week(), "w" === e ? 1 : 2, "0"); + case "W": + case "WW": return s.s(t.isoWeek(), "W" === e ? 1 : 2, "0"); + case "k": + case "kk": return s.s(String(0 === t.$H ? 24 : t.$H), "k" === e ? 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 n.bind(this)(a); + }; + }; + })); + })); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/weekOfYear.js + var require_weekOfYear = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, t) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_weekOfYear = t(); + })(exports, (function() { + "use strict"; + var e = "week", t = "year"; + return function(i, n, r) { + var f = n.prototype; + f.week = function(i) { + if (void 0 === i && (i = null), null !== i) return this.add(7 * (i - this.week()), "day"); + var n = this.$locale().yearStart || 1; + if (11 === this.month() && this.date() > 25) { + var f = r(this).startOf(t).add(1, t).date(n), s = r(this).endOf(e); + if (f.isBefore(s)) return 1; + } + var a = r(this).startOf(t).date(n).startOf(e).subtract(1, "millisecond"), o = this.diff(a, e, !0); + return o < 0 ? r(this).startOf("week").week() : Math.ceil(o); + }, f.weeks = function(e) { + return void 0 === e && (e = null), this.week(e); + }; + }; + })); + })); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/weekYear.js + var require_weekYear = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, t) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_weekYear = t(); + })(exports, (function() { + "use strict"; + return function(e, t) { + t.prototype.weekYear = function() { + var e = this.month(), t = this.week(), n = this.year(); + return 1 === t && 11 === e ? n + 1 : 0 === e && t >= 52 ? n - 1 : n; + }; + }; + })); + })); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/dayOfYear.js + var require_dayOfYear = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, t) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_dayOfYear = t(); + })(exports, (function() { + "use strict"; + 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 null == e ? t : this.add(e - t, "day"); + }; + }; + })); + })); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isSameOrAfter.js + var require_isSameOrAfter = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, t) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_isSameOrAfter = t(); + })(exports, (function() { + "use strict"; + return function(e, t) { + t.prototype.isSameOrAfter = function(e, t) { + return this.isSame(e, t) || this.isAfter(e, t); + }; + }; + })); + })); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isSameOrBefore.js + var require_isSameOrBefore = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, i) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = i() : "function" == typeof define && define.amd ? define(i) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_isSameOrBefore = i(); + })(exports, (function() { + "use strict"; + return function(e, i) { + i.prototype.isSameOrBefore = function(e, i) { + return this.isSame(e, i) || this.isBefore(e, i); + }; + }; + })); + })); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/date-picker-panel.ts +var import_isSameOrBefore = /* @__PURE__ */ __toESM(require_isSameOrBefore()); +var import_isSameOrAfter = /* @__PURE__ */ __toESM(require_isSameOrAfter()); +var import_dayOfYear = /* @__PURE__ */ __toESM(require_dayOfYear()); +var import_weekYear = /* @__PURE__ */ __toESM(require_weekYear()); +var import_weekOfYear = /* @__PURE__ */ __toESM(require_weekOfYear()); +var import_advancedFormat = /* @__PURE__ */ __toESM(require_advancedFormat()); + const datePickerPanelProps = buildProps({ + valueFormat: String, + dateFormat: String, + timeFormat: String, + disabled: { + type: Boolean, + default: void 0 + }, + modelValue: { + type: definePropType([ + Date, + Array, + String, + Number + ]), + default: "" + }, + defaultValue: { type: definePropType([Date, Array]) }, + defaultTime: { type: definePropType([Date, Array]) }, + isRange: Boolean, + ...disabledTimeListsProps, + disabledDate: { type: Function }, + cellClassName: { type: Function }, + shortcuts: { + type: Array, + default: () => [] + }, + arrowControl: Boolean, + unlinkPanels: Boolean, + showNow: { + type: Boolean, + default: true + }, + showConfirm: Boolean, + showFooter: Boolean, + showWeekNumber: Boolean, + type: { + type: definePropType(String), + default: "date" + }, + clearable: { + type: Boolean, + default: true + }, + border: { + type: Boolean, + default: true + }, + editable: { + type: Boolean, + default: true + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/constants.ts + const ROOT_PICKER_INJECTION_KEY = Symbol("rootPickerContextKey"); + const ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY = "ElIsDefaultFormat"; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/shared.ts + const selectionModes = [ + "date", + "dates", + "year", + "years", + "month", + "months", + "week", + "range" + ]; + const datePickerSharedProps = buildProps({ + cellClassName: { type: definePropType(Function) }, + disabledDate: { type: definePropType(Function) }, + date: { + type: definePropType(Object), + required: true + }, + minDate: { type: definePropType(Object) }, + maxDate: { type: definePropType(Object) }, + parsedValue: { type: definePropType([Object, Array]) }, + rangeState: { + type: definePropType(Object), + default: () => ({ + endDate: null, + selecting: false + }) + }, + disabled: Boolean + }); + const panelSharedProps = buildProps({ + type: { + type: definePropType(String), + required: true, + values: datePickTypes + }, + dateFormat: String, + timeFormat: String, + showNow: { + type: Boolean, + default: true + }, + showConfirm: Boolean, + showFooter: { + type: Boolean, + default: true + }, + showWeekNumber: Boolean, + border: Boolean, + disabled: Boolean, + editable: { + type: Boolean, + default: true + } + }); + const panelRangeSharedProps = buildProps({ + unlinkPanels: Boolean, + visible: { + type: Boolean, + default: true + }, + showConfirm: Boolean, + showFooter: { + type: Boolean, + default: true + }, + border: Boolean, + disabled: Boolean, + parsedValue: { type: definePropType(Array) } + }); + const selectionModeWithDefault = (mode) => { + return { + type: String, + values: selectionModes, + default: mode + }; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/panel-date-pick.ts + const panelDatePickProps = buildProps({ + ...panelSharedProps, + parsedValue: { type: definePropType([Object, Array]) }, + visible: { + type: Boolean, + default: true + }, + format: { + type: String, + default: "" + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/utils.ts + const isValidRange = (range) => { + if (!isArray$1(range)) return false; + const [left, right] = range; + return import_dayjs_min.default.isDayjs(left) && import_dayjs_min.default.isDayjs(right) && (0, import_dayjs_min.default)(left).isValid() && (0, import_dayjs_min.default)(right).isValid() && left.isSameOrBefore(right); + }; + const getDefaultValue = (defaultValue, { lang, step = 1, unit, unlinkPanels }) => { + let start; + if (isArray$1(defaultValue)) { + let [left, right] = defaultValue.map((d) => (0, import_dayjs_min.default)(d).locale(lang)); + if (!unlinkPanels) right = left.add(step, unit); + return [left, right]; + } else if (defaultValue) start = (0, import_dayjs_min.default)(defaultValue); + else start = (0, import_dayjs_min.default)(); + start = start.locale(lang); + return [start, start.add(step, unit)]; + }; + const buildPickerTable = (dimension, rows, { columnIndexOffset, startDate, nextEndDate, now, unit, relativeDateGetter, setCellMetadata, setRowMetadata }) => { + for (let rowIndex = 0; rowIndex < dimension.row; rowIndex++) { + const row = rows[rowIndex]; + for (let columnIndex = 0; columnIndex < dimension.column; columnIndex++) { + let cell = row[columnIndex + columnIndexOffset]; + if (!cell) cell = { + row: rowIndex, + column: columnIndex, + type: "normal", + inRange: false, + start: false, + end: false + }; + const nextStartDate = relativeDateGetter(rowIndex * dimension.column + columnIndex); + cell.dayjs = nextStartDate; + cell.date = nextStartDate.toDate(); + cell.timestamp = nextStartDate.valueOf(); + cell.type = "normal"; + cell.inRange = !!(startDate && nextStartDate.isSameOrAfter(startDate, unit) && nextEndDate && nextStartDate.isSameOrBefore(nextEndDate, unit)) || !!(startDate && nextStartDate.isSameOrBefore(startDate, unit) && nextEndDate && nextStartDate.isSameOrAfter(nextEndDate, unit)); + if (startDate?.isSameOrAfter(nextEndDate)) { + cell.start = !!nextEndDate && nextStartDate.isSame(nextEndDate, unit); + cell.end = startDate && nextStartDate.isSame(startDate, unit); + } else { + cell.start = !!startDate && nextStartDate.isSame(startDate, unit); + cell.end = !!nextEndDate && nextStartDate.isSame(nextEndDate, unit); + } + if (nextStartDate.isSame(now, unit)) cell.type = "today"; + setCellMetadata?.(cell, { + rowIndex, + columnIndex + }); + row[columnIndex + columnIndexOffset] = cell; + } + setRowMetadata?.(row); + } + }; + const datesInMonth = (date, year, month, lang) => { + const firstDay = (0, import_dayjs_min.default)().locale(lang).startOf("month").month(month).year(year).hour(date.hour()).minute(date.minute()).second(date.second()); + return rangeArr(firstDay.daysInMonth()).map((n) => firstDay.add(n, "day").toDate()); + }; + const getValidDateOfMonth = (date, year, month, lang, disabledDate) => { + const _value = (0, import_dayjs_min.default)().year(year).month(month).startOf("month").hour(date.hour()).minute(date.minute()).second(date.second()); + const _date = datesInMonth(date, year, month, lang).find((date) => { + return !disabledDate?.(date); + }); + if (_date) return (0, import_dayjs_min.default)(_date).locale(lang); + return _value.locale(lang); + }; + const getValidDateOfYear = (value, lang, disabledDate) => { + const year = value.year(); + if (!disabledDate?.(value.toDate())) return value.locale(lang); + const month = value.month(); + if (!datesInMonth(value, year, month, lang).every(disabledDate)) return getValidDateOfMonth(value, year, month, lang, disabledDate); + for (let i = 0; i < 12; i++) if (!datesInMonth(value, year, i, lang).every(disabledDate)) return getValidDateOfMonth(value, year, i, lang, disabledDate); + return value; + }; + const correctlyParseUserInput = (value, format, lang, defaultFormat) => { + if (isArray$1(value)) return value.map((v) => correctlyParseUserInput(v, format, lang, defaultFormat)); + if (isString(value)) { + const dayjsValue = defaultFormat?.value ? (0, import_dayjs_min.default)(value) : (0, import_dayjs_min.default)(value, format); + if (!dayjsValue.isValid()) return dayjsValue; + } + return (0, import_dayjs_min.default)(value, format).locale(lang); + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/basic-date-table.ts + const basicDateTableProps = buildProps({ + ...datePickerSharedProps, + showWeekNumber: Boolean, + selectionMode: selectionModeWithDefault("date") + }); + const basicDateTableEmits = [ + "changerange", + "pick", + "select" + ]; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/composables/use-basic-date-table.ts + const isNormalDay = (type = "") => { + return ["normal", "today"].includes(type); + }; + const useBasicDateTable = (props, emit) => { + const { lang } = useLocale(); + const tbodyRef = (0, vue.ref)(); + const currentCellRef = (0, vue.ref)(); + const lastRow = (0, vue.ref)(); + const lastColumn = (0, vue.ref)(); + const tableRows = (0, vue.ref)([ + [], + [], + [], + [], + [], + [] + ]); + let focusWithClick = false; + const firstDayOfWeek = props.date.$locale().weekStart || 7; + const WEEKS_CONSTANT = props.date.locale("en").localeData().weekdaysShort().map((_) => _.toLowerCase()); + const offsetDay = (0, vue.computed)(() => { + return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek; + }); + const startDate = (0, vue.computed)(() => { + const startDayOfMonth = props.date.startOf("month"); + return startDayOfMonth.subtract(startDayOfMonth.day() || 7, "day"); + }); + const WEEKS = (0, vue.computed)(() => { + return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(firstDayOfWeek, firstDayOfWeek + 7); + }); + const hasCurrent = (0, vue.computed)(() => { + return flatten((0, vue.unref)(rows)).some((row) => { + return row.isCurrent; + }); + }); + const days = (0, vue.computed)(() => { + const startOfMonth = props.date.startOf("month"); + return { + startOfMonthDay: startOfMonth.day() || 7, + dateCountOfMonth: startOfMonth.daysInMonth(), + dateCountOfLastMonth: startOfMonth.subtract(1, "month").daysInMonth() + }; + }); + const selectedDate = (0, vue.computed)(() => { + return props.selectionMode === "dates" ? castArray(props.parsedValue) : []; + }); + const setDateText = (cell, { count, rowIndex, columnIndex }) => { + const { startOfMonthDay, dateCountOfMonth, dateCountOfLastMonth } = (0, vue.unref)(days); + const offset = (0, vue.unref)(offsetDay); + if (rowIndex >= 0 && rowIndex <= 1) { + const numberOfDaysFromPreviousMonth = startOfMonthDay + offset < 0 ? 7 + startOfMonthDay + offset : startOfMonthDay + offset; + if (columnIndex + rowIndex * 7 >= numberOfDaysFromPreviousMonth) { + cell.text = count; + return true; + } else { + cell.text = dateCountOfLastMonth - (numberOfDaysFromPreviousMonth - columnIndex % 7) + 1 + rowIndex * 7; + cell.type = "prev-month"; + } + } else { + if (count <= dateCountOfMonth) cell.text = count; + else { + cell.text = count - dateCountOfMonth; + cell.type = "next-month"; + } + return true; + } + return false; + }; + const setCellMetadata = (cell, { columnIndex, rowIndex }, count) => { + const { disabledDate, cellClassName } = props; + const _selectedDate = (0, vue.unref)(selectedDate); + const shouldIncrement = setDateText(cell, { + count, + rowIndex, + columnIndex + }); + const cellDate = cell.dayjs.toDate(); + cell.selected = _selectedDate.find((d) => d.isSame(cell.dayjs, "day")); + cell.isSelected = !!cell.selected; + cell.isCurrent = isCurrent(cell); + cell.disabled = disabledDate?.(cellDate); + cell.customClass = cellClassName?.(cellDate); + return shouldIncrement; + }; + const setRowMetadata = (row) => { + if (props.selectionMode === "week") { + const [start, end] = props.showWeekNumber ? [1, 7] : [0, 6]; + const isActive = isWeekActive(row[start + 1]); + row[start].inRange = isActive; + row[start].start = isActive; + row[end].inRange = isActive; + row[end].end = isActive; + } + }; + const rows = (0, vue.computed)(() => { + const { minDate, maxDate, rangeState, showWeekNumber } = props; + const offset = (0, vue.unref)(offsetDay); + const rows_ = (0, vue.unref)(tableRows); + const dateUnit = "day"; + let count = 1; + buildPickerTable({ + row: 6, + column: 7 + }, rows_, { + startDate: minDate, + columnIndexOffset: showWeekNumber ? 1 : 0, + nextEndDate: rangeState.endDate || maxDate || rangeState.selecting && minDate || null, + now: (0, import_dayjs_min.default)().locale((0, vue.unref)(lang)).startOf(dateUnit), + unit: dateUnit, + relativeDateGetter: (idx) => (0, vue.unref)(startDate).add(idx - offset, dateUnit), + setCellMetadata: (...args) => { + if (setCellMetadata(...args, count)) count += 1; + }, + setRowMetadata + }); + if (showWeekNumber) { + for (let rowIndex = 0; rowIndex < 6; rowIndex++) if (rows_[rowIndex][1].dayjs) rows_[rowIndex][0] = { + type: "week", + text: rows_[rowIndex][1].dayjs.week() + }; + } + return rows_; + }); + (0, vue.watch)(() => props.date, async () => { + if ((0, vue.unref)(tbodyRef)?.contains(document.activeElement)) { + await (0, vue.nextTick)(); + await focus(); + } + }); + const focus = async () => (0, vue.unref)(currentCellRef)?.focus(); + const isCurrent = (cell) => { + return props.selectionMode === "date" && isNormalDay(cell.type) && cellMatchesDate(cell, props.parsedValue); + }; + const cellMatchesDate = (cell, date) => { + if (!date) return false; + return (0, import_dayjs_min.default)(date).locale((0, vue.unref)(lang)).isSame(props.date.date(Number(cell.text)), "day"); + }; + const getDateOfCell = (row, column) => { + const startOfMonthDay = (0, vue.unref)(days).startOfMonthDay; + const offset = (0, vue.unref)(offsetDay); + const numberOfDaysFromPreviousMonth = startOfMonthDay + offset < 0 ? 7 + startOfMonthDay + offset : startOfMonthDay + offset; + const offsetFromStart = row * 7 + (column - (props.showWeekNumber ? 1 : 0)); + return props.date.startOf("month").subtract(numberOfDaysFromPreviousMonth, "day").add(offsetFromStart, "day"); + }; + const handleMouseMove = (event) => { + if (!props.rangeState.selecting) return; + let target = event.target; + if (target.tagName === "SPAN") target = target.parentNode?.parentNode; + if (target.tagName === "DIV") target = target.parentNode; + if (target.tagName !== "TD") return; + const row = target.parentNode.rowIndex - 1; + const column = target.cellIndex; + if ((0, vue.unref)(rows)[row][column].disabled) return; + if (row !== (0, vue.unref)(lastRow) || column !== (0, vue.unref)(lastColumn)) { + lastRow.value = row; + lastColumn.value = column; + emit("changerange", { + selecting: true, + endDate: getDateOfCell(row, column) + }); + } + }; + const isSelectedCell = (cell) => { + return !(0, vue.unref)(hasCurrent) && cell?.text === 1 && isNormalDay(cell.type) || cell.isCurrent; + }; + const handleFocus = (event) => { + if (focusWithClick || (0, vue.unref)(hasCurrent) || props.selectionMode !== "date") return; + handlePickDate(event, true); + }; + const handleMouseDown = (event) => { + if (!event.target.closest("td")) return; + focusWithClick = true; + }; + const handleMouseUp = (event) => { + if (!event.target.closest("td")) return; + focusWithClick = false; + }; + const handleRangePick = (newDate) => { + if (!props.rangeState.selecting || !props.minDate) { + emit("pick", { + minDate: newDate, + maxDate: null + }); + emit("select", true); + } else { + if (newDate >= props.minDate) emit("pick", { + minDate: props.minDate, + maxDate: newDate + }); + else emit("pick", { + minDate: newDate, + maxDate: props.minDate + }); + emit("select", false); + } + }; + const handleWeekPick = (newDate) => { + const weekNumber = newDate.week(); + const value = `${newDate.year()}w${weekNumber}`; + emit("pick", { + year: newDate.year(), + week: weekNumber, + value, + date: newDate.startOf("week") + }); + }; + const handleDatesPick = (newDate, selected) => { + emit("pick", selected ? castArray(props.parsedValue).filter((d) => d?.valueOf() !== newDate.valueOf()) : castArray(props.parsedValue).concat([newDate])); + }; + const handlePickDate = (event, isKeyboardMovement = false) => { + if (props.disabled) return; + const target = event.target.closest("td"); + if (!target) return; + const row = target.parentNode.rowIndex - 1; + const column = target.cellIndex; + const cell = (0, vue.unref)(rows)[row][column]; + if (cell.disabled || cell.type === "week") return; + const newDate = getDateOfCell(row, column); + switch (props.selectionMode) { + case "range": + handleRangePick(newDate); + break; + case "date": + emit("pick", newDate, isKeyboardMovement); + break; + case "week": + handleWeekPick(newDate); + break; + case "dates": + handleDatesPick(newDate, !!cell.selected); + break; + default: break; + } + }; + const isWeekActive = (cell) => { + if (props.selectionMode !== "week") return false; + let newDate = props.date.startOf("day"); + if (cell.type === "prev-month") newDate = newDate.subtract(1, "month"); + if (cell.type === "next-month") newDate = newDate.add(1, "month"); + newDate = newDate.date(Number.parseInt(cell.text, 10)); + if (props.parsedValue && !isArray$1(props.parsedValue)) { + const dayOffset = (props.parsedValue.day() - firstDayOfWeek + 7) % 7 - 1; + return props.parsedValue.subtract(dayOffset, "day").isSame(newDate, "day"); + } + return false; + }; + return { + WEEKS, + rows, + tbodyRef, + currentCellRef, + focus, + isCurrent, + isWeekActive, + isSelectedCell, + handlePickDate, + handleMouseUp, + handleMouseDown, + handleMouseMove, + handleFocus + }; + }; + const useBasicDateTableDOM = (props, { isCurrent, isWeekActive }) => { + const ns = useNamespace("date-table"); + const { t } = useLocale(); + const tableKls = (0, vue.computed)(() => [ns.b(), ns.is("week-mode", props.selectionMode === "week" && !props.disabled)]); + const tableLabel = (0, vue.computed)(() => t("el.datepicker.dateTablePrompt")); + const getCellClasses = (cell) => { + const classes = []; + if (isNormalDay(cell.type) && !cell.disabled) { + classes.push("available"); + if (cell.type === "today") classes.push("today"); + } else classes.push(cell.type); + if (isCurrent(cell)) classes.push("current"); + if (cell.inRange && (isNormalDay(cell.type) || props.selectionMode === "week")) { + classes.push("in-range"); + if (cell.start) classes.push("start-date"); + if (cell.end) classes.push("end-date"); + } + if (cell.disabled || props.disabled) classes.push("disabled"); + if (cell.selected) classes.push("selected"); + if (cell.customClass) classes.push(cell.customClass); + return classes.join(" "); + }; + const getRowKls = (cell) => [ns.e("row"), { current: isWeekActive(cell) }]; + return { + tableKls, + tableLabel, + weekHeaderClass: ns.e("week-header"), + getCellClasses, + getRowKls, + t + }; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/basic-cell.ts + const basicCellProps = buildProps({ cell: { type: definePropType(Object) } }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-cell-render.tsx + var basic_cell_render_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDatePickerCell", + props: basicCellProps, + setup(props) { + const ns = useNamespace("date-table-cell"); + const { slots } = (0, vue.inject)(ROOT_PICKER_INJECTION_KEY); + return () => { + const { cell } = props; + return (0, vue.renderSlot)(slots, "default", { ...cell }, () => [(0, vue.createVNode)("div", { "class": ns.b() }, [(0, vue.createVNode)("span", { "class": ns.e("text") }, [cell?.renderText ?? cell?.text])])]); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-date-table.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$50 = ["aria-label"]; + const _hoisted_2$32 = ["aria-label"]; + const _hoisted_3$15 = [ + "aria-current", + "aria-selected", + "tabindex", + "aria-disabled" + ]; + var basic_date_table_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "basic-date-table", + props: basicDateTableProps, + emits: basicDateTableEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const { WEEKS, rows, tbodyRef, currentCellRef, focus, isCurrent, isWeekActive, isSelectedCell, handlePickDate, handleMouseUp, handleMouseDown, handleMouseMove, handleFocus } = useBasicDateTable(props, __emit); + const { tableLabel, tableKls, getCellClasses, getRowKls, weekHeaderClass, t } = useBasicDateTableDOM(props, { + isCurrent, + isWeekActive + }); + let isUnmounting = false; + (0, vue.onBeforeUnmount)(() => { + isUnmounting = true; + }); + __expose({ focus }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("table", { + "aria-label": (0, vue.unref)(tableLabel), + class: (0, vue.normalizeClass)((0, vue.unref)(tableKls)), + cellspacing: "0", + cellpadding: "0", + role: "grid", + onClick: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handlePickDate) && (0, vue.unref)(handlePickDate)(...args)), + onMousemove: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(handleMouseMove) && (0, vue.unref)(handleMouseMove)(...args)), + onMousedown: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(handleMouseDown) && (0, vue.unref)(handleMouseDown)(...args)), + onMouseup: _cache[4] || (_cache[4] = (...args) => (0, vue.unref)(handleMouseUp) && (0, vue.unref)(handleMouseUp)(...args)) + }, [(0, vue.createElementVNode)("tbody", { + ref_key: "tbodyRef", + ref: tbodyRef + }, [(0, vue.createElementVNode)("tr", null, [_ctx.showWeekNumber ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("th", { + key: 0, + scope: "col", + class: (0, vue.normalizeClass)((0, vue.unref)(weekHeaderClass)) + }, null, 2)) : (0, vue.createCommentVNode)("v-if", true), ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(WEEKS), (week, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("th", { + key, + "aria-label": (0, vue.unref)(t)("el.datepicker.weeksFull." + week), + scope: "col" + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.weeks." + week)), 9, _hoisted_2$32); + }), 128))]), ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(rows), (row, rowKey) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("tr", { + key: rowKey, + class: (0, vue.normalizeClass)((0, vue.unref)(getRowKls)(_ctx.showWeekNumber ? row[2] : row[1])) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(row, (cell, columnKey) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("td", { + key: `${rowKey}.${columnKey}`, + ref_for: true, + ref: (el) => !(0, vue.unref)(isUnmounting) && (0, vue.unref)(isSelectedCell)(cell) && (currentCellRef.value = el), + class: (0, vue.normalizeClass)((0, vue.unref)(getCellClasses)(cell)), + "aria-current": cell.isCurrent ? "date" : void 0, + "aria-selected": cell.isCurrent, + tabindex: _ctx.disabled ? void 0 : (0, vue.unref)(isSelectedCell)(cell) ? 0 : -1, + "aria-disabled": _ctx.disabled, + onFocus: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleFocus) && (0, vue.unref)(handleFocus)(...args)) + }, [(0, vue.createVNode)((0, vue.unref)(basic_cell_render_default), { cell }, null, 8, ["cell"])], 42, _hoisted_3$15); + }), 128))], 2); + }), 128))], 512)], 42, _hoisted_1$50); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-date-table.vue + var basic_date_table_default = basic_date_table_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/basic-month-table.ts + const basicMonthTableProps = buildProps({ + ...datePickerSharedProps, + selectionMode: selectionModeWithDefault("month") + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-month-table.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$49 = ["aria-label"]; + const _hoisted_2$31 = [ + "aria-selected", + "aria-label", + "tabindex", + "onKeydown" + ]; + var basic_month_table_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "basic-month-table", + props: basicMonthTableProps, + emits: [ + "changerange", + "pick", + "select" + ], + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("month-table"); + const { t, lang } = useLocale(); + const tbodyRef = (0, vue.ref)(); + const currentCellRef = (0, vue.ref)(); + const months = (0, vue.ref)(props.date.locale("en").localeData().monthsShort().map((_) => _.toLowerCase())); + const tableRows = (0, vue.ref)([ + [], + [], + [] + ]); + const lastRow = (0, vue.ref)(); + const lastColumn = (0, vue.ref)(); + const rows = (0, vue.computed)(() => { + const rows = tableRows.value; + const now = (0, import_dayjs_min.default)().locale(lang.value).startOf("month"); + for (let i = 0; i < 3; i++) { + const row = rows[i]; + for (let j = 0; j < 4; j++) { + const cell = row[j] ||= { + row: i, + column: j, + type: "normal", + inRange: false, + start: false, + end: false, + text: -1, + disabled: false, + isSelected: false, + customClass: void 0, + date: void 0, + dayjs: void 0, + isCurrent: void 0, + selected: void 0, + renderText: void 0, + timestamp: void 0 + }; + cell.type = "normal"; + const index = i * 4 + j; + const calTime = props.date.startOf("year").month(index); + const calEndDate = props.rangeState.endDate || props.maxDate || props.rangeState.selecting && props.minDate || null; + cell.inRange = !!(props.minDate && calTime.isSameOrAfter(props.minDate, "month") && calEndDate && calTime.isSameOrBefore(calEndDate, "month")) || !!(props.minDate && calTime.isSameOrBefore(props.minDate, "month") && calEndDate && calTime.isSameOrAfter(calEndDate, "month")); + if (props.minDate?.isSameOrAfter(calEndDate)) { + cell.start = !!(calEndDate && calTime.isSame(calEndDate, "month")); + cell.end = props.minDate && calTime.isSame(props.minDate, "month"); + } else { + cell.start = !!(props.minDate && calTime.isSame(props.minDate, "month")); + cell.end = !!(calEndDate && calTime.isSame(calEndDate, "month")); + } + if (now.isSame(calTime)) cell.type = "today"; + const cellDate = calTime.toDate(); + cell.text = index; + cell.disabled = props.disabledDate?.(cellDate) || false; + cell.date = cellDate; + cell.customClass = props.cellClassName?.(cellDate); + cell.dayjs = calTime; + cell.timestamp = calTime.valueOf(); + cell.isSelected = isSelectedCell(cell); + } + } + return rows; + }); + const focus = () => { + currentCellRef.value?.focus(); + }; + const getCellStyle = (cell) => { + const style = {}; + const year = props.date.year(); + const today = /* @__PURE__ */ new Date(); + const month = cell.text; + style.disabled = props.disabled || (props.disabledDate ? datesInMonth(props.date, year, month, lang.value).every(props.disabledDate) : false); + style.current = castArray(props.parsedValue).some((date) => import_dayjs_min.default.isDayjs(date) && date.year() === year && date.month() === month); + style.today = today.getFullYear() === year && today.getMonth() === month; + if (cell.customClass) style[cell.customClass] = true; + if (cell.inRange) { + style["in-range"] = true; + if (cell.start) style["start-date"] = true; + if (cell.end) style["end-date"] = true; + } + return style; + }; + const isSelectedCell = (cell) => { + const year = props.date.year(); + const month = cell.text; + return castArray(props.date).some((date) => date.year() === year && date.month() === month); + }; + const handleMouseMove = (event) => { + if (!props.rangeState.selecting) return; + let target = event.target; + if (target.tagName === "SPAN") target = target.parentNode?.parentNode; + if (target.tagName === "DIV") target = target.parentNode; + if (target.tagName !== "TD") return; + const row = target.parentNode.rowIndex; + const column = target.cellIndex; + if (rows.value[row][column].disabled) return; + if (row !== lastRow.value || column !== lastColumn.value) { + lastRow.value = row; + lastColumn.value = column; + emit("changerange", { + selecting: true, + endDate: props.date.startOf("year").month(row * 4 + column) + }); + } + }; + const handleMonthTableClick = (event) => { + if (props.disabled) return; + const target = event.target?.closest("td"); + if (target?.tagName !== "TD") return; + if (hasClass(target, "disabled")) return; + const column = target.cellIndex; + const month = target.parentNode.rowIndex * 4 + column; + const newDate = props.date.startOf("year").month(month); + if (props.selectionMode === "months") { + if (event.type === "keydown") { + emit("pick", castArray(props.parsedValue), false); + return; + } + const newMonth = getValidDateOfMonth(props.date, props.date.year(), month, lang.value, props.disabledDate); + emit("pick", hasClass(target, "current") ? castArray(props.parsedValue).filter((d) => d?.year() !== newMonth.year() || d?.month() !== newMonth.month()) : castArray(props.parsedValue).concat([(0, import_dayjs_min.default)(newMonth)])); + } else if (props.selectionMode === "range") if (!props.rangeState.selecting) { + emit("pick", { + minDate: newDate, + maxDate: null + }); + emit("select", true); + } else { + if (props.minDate && newDate >= props.minDate) emit("pick", { + minDate: props.minDate, + maxDate: newDate + }); + else emit("pick", { + minDate: newDate, + maxDate: props.minDate + }); + emit("select", false); + } + else emit("pick", month); + }; + (0, vue.watch)(() => props.date, async () => { + if (tbodyRef.value?.contains(document.activeElement)) { + await (0, vue.nextTick)(); + currentCellRef.value?.focus(); + } + }); + __expose({ focus }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("table", { + role: "grid", + "aria-label": (0, vue.unref)(t)("el.datepicker.monthTablePrompt"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + onClick: handleMonthTableClick, + onMousemove: handleMouseMove + }, [(0, vue.createElementVNode)("tbody", { + ref_key: "tbodyRef", + ref: tbodyRef + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(rows.value, (row, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("tr", { key }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(row, (cell, key_) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("td", { + key: key_, + ref_for: true, + ref: (el) => cell.isSelected && (currentCellRef.value = el), + class: (0, vue.normalizeClass)(getCellStyle(cell)), + "aria-selected": !!cell.isSelected, + "aria-label": (0, vue.unref)(t)(`el.datepicker.month${+cell.text + 1}`), + tabindex: cell.isSelected ? 0 : -1, + onKeydown: [(0, vue.withKeys)((0, vue.withModifiers)(handleMonthTableClick, ["prevent", "stop"]), ["space"]), (0, vue.withKeys)((0, vue.withModifiers)(handleMonthTableClick, ["prevent", "stop"]), ["enter"])] + }, [(0, vue.createVNode)((0, vue.unref)(basic_cell_render_default), { cell: { + ...cell, + renderText: (0, vue.unref)(t)("el.datepicker.months." + months.value[cell.text]) + } }, null, 8, ["cell"])], 42, _hoisted_2$31); + }), 128))]); + }), 128))], 512)], 42, _hoisted_1$49); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-month-table.vue + var basic_month_table_default = basic_month_table_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/basic-year-table.ts + const basicYearTableProps = buildProps({ + ...datePickerSharedProps, + selectionMode: selectionModeWithDefault("year") + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-year-table.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$48 = ["aria-label"]; + const _hoisted_2$30 = [ + "aria-selected", + "aria-label", + "tabindex", + "onKeydown" + ]; + var basic_year_table_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "basic-year-table", + props: basicYearTableProps, + emits: [ + "changerange", + "pick", + "select" + ], + setup(__props, { expose: __expose, emit: __emit }) { + const datesInYear = (year, lang) => { + const firstDay = (0, import_dayjs_min.default)(String(year)).locale(lang).startOf("year"); + return rangeArr(firstDay.endOf("year").dayOfYear()).map((n) => firstDay.add(n, "day").toDate()); + }; + const props = __props; + const emit = __emit; + const ns = useNamespace("year-table"); + const { t, lang } = useLocale(); + const tbodyRef = (0, vue.ref)(); + const currentCellRef = (0, vue.ref)(); + const startYear = (0, vue.computed)(() => { + return Math.floor(props.date.year() / 10) * 10; + }); + const tableRows = (0, vue.ref)([ + [], + [], + [] + ]); + const lastRow = (0, vue.ref)(); + const lastColumn = (0, vue.ref)(); + const rows = (0, vue.computed)(() => { + const rows = tableRows.value; + const now = (0, import_dayjs_min.default)().locale(lang.value).startOf("year"); + for (let i = 0; i < 3; i++) { + const row = rows[i]; + for (let j = 0; j < 4; j++) { + if (i * 4 + j >= 10) break; + let cell = row[j]; + if (!cell) cell = { + row: i, + column: j, + type: "normal", + inRange: false, + start: false, + end: false, + text: -1, + disabled: false, + isSelected: false, + customClass: void 0, + date: void 0, + dayjs: void 0, + isCurrent: void 0, + selected: void 0, + renderText: void 0, + timestamp: void 0 + }; + cell.type = "normal"; + const index = i * 4 + j + startYear.value; + const calTime = (0, import_dayjs_min.default)().year(index); + const calEndDate = props.rangeState.endDate || props.maxDate || props.rangeState.selecting && props.minDate || null; + cell.inRange = !!(props.minDate && calTime.isSameOrAfter(props.minDate, "year") && calEndDate && calTime.isSameOrBefore(calEndDate, "year")) || !!(props.minDate && calTime.isSameOrBefore(props.minDate, "year") && calEndDate && calTime.isSameOrAfter(calEndDate, "year")); + if (props.minDate?.isSameOrAfter(calEndDate)) { + cell.start = !!(calEndDate && calTime.isSame(calEndDate, "year")); + cell.end = !!(props.minDate && calTime.isSame(props.minDate, "year")); + } else { + cell.start = !!(props.minDate && calTime.isSame(props.minDate, "year")); + cell.end = !!(calEndDate && calTime.isSame(calEndDate, "year")); + } + if (now.isSame(calTime)) cell.type = "today"; + cell.text = index; + const cellDate = calTime.toDate(); + cell.disabled = props.disabledDate?.(cellDate) || false; + cell.date = cellDate; + cell.customClass = props.cellClassName?.(cellDate); + cell.dayjs = calTime; + cell.timestamp = calTime.valueOf(); + cell.isSelected = isSelectedCell(cell); + row[j] = cell; + } + } + return rows; + }); + const focus = () => { + currentCellRef.value?.focus(); + }; + const getCellKls = (cell) => { + const kls = {}; + const today = (0, import_dayjs_min.default)().locale(lang.value); + const year = cell.text; + kls.disabled = props.disabled || (props.disabledDate ? datesInYear(year, lang.value).every(props.disabledDate) : false); + kls.today = today.year() === year; + kls.current = castArray(props.parsedValue).some((d) => d.year() === year); + if (cell.customClass) kls[cell.customClass] = true; + if (cell.inRange) { + kls["in-range"] = true; + if (cell.start) kls["start-date"] = true; + if (cell.end) kls["end-date"] = true; + } + return kls; + }; + const isSelectedCell = (cell) => { + const year = cell.text; + return castArray(props.date).some((date) => date.year() === year); + }; + const handleYearTableClick = (event) => { + if (props.disabled) return; + const target = event.target?.closest("td"); + if (!target || !target.textContent || hasClass(target, "disabled")) return; + const column = target.cellIndex; + const selectedYear = target.parentNode.rowIndex * 4 + column + startYear.value; + const newDate = (0, import_dayjs_min.default)().year(selectedYear); + if (props.selectionMode === "range") if (!props.rangeState.selecting) { + emit("pick", { + minDate: newDate, + maxDate: null + }); + emit("select", true); + } else { + if (props.minDate && newDate >= props.minDate) emit("pick", { + minDate: props.minDate, + maxDate: newDate + }); + else emit("pick", { + minDate: newDate, + maxDate: props.minDate + }); + emit("select", false); + } + else if (props.selectionMode === "years") { + if (event.type === "keydown") { + emit("pick", castArray(props.parsedValue), false); + return; + } + const vaildYear = getValidDateOfYear(newDate.startOf("year"), lang.value, props.disabledDate); + emit("pick", hasClass(target, "current") ? castArray(props.parsedValue).filter((d) => d?.year() !== selectedYear) : castArray(props.parsedValue).concat([vaildYear])); + } else emit("pick", selectedYear); + }; + const handleMouseMove = (event) => { + if (!props.rangeState.selecting) return; + const target = event.target?.closest("td"); + if (!target) return; + const row = target.parentNode.rowIndex; + const column = target.cellIndex; + if (rows.value[row][column].disabled) return; + if (row !== lastRow.value || column !== lastColumn.value) { + lastRow.value = row; + lastColumn.value = column; + emit("changerange", { + selecting: true, + endDate: (0, import_dayjs_min.default)().year(startYear.value).add(row * 4 + column, "year") + }); + } + }; + (0, vue.watch)(() => props.date, async () => { + if (tbodyRef.value?.contains(document.activeElement)) { + await (0, vue.nextTick)(); + currentCellRef.value?.focus(); + } + }); + __expose({ focus }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("table", { + role: "grid", + "aria-label": (0, vue.unref)(t)("el.datepicker.yearTablePrompt"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + onClick: handleYearTableClick, + onMousemove: handleMouseMove + }, [(0, vue.createElementVNode)("tbody", { + ref_key: "tbodyRef", + ref: tbodyRef + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(rows.value, (row, rowKey) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("tr", { key: rowKey }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(row, (cell, cellKey) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("td", { + key: `${rowKey}_${cellKey}`, + ref_for: true, + ref: (el) => cell.isSelected && (currentCellRef.value = el), + class: (0, vue.normalizeClass)(["available", getCellKls(cell)]), + "aria-selected": cell.isSelected, + "aria-label": String(cell.text), + tabindex: cell.isSelected ? 0 : -1, + onKeydown: [(0, vue.withKeys)((0, vue.withModifiers)(handleYearTableClick, ["prevent", "stop"]), ["space"]), (0, vue.withKeys)((0, vue.withModifiers)(handleYearTableClick, ["prevent", "stop"]), ["enter"])] + }, [(0, vue.createVNode)((0, vue.unref)(basic_cell_render_default), { cell }, null, 8, ["cell"])], 42, _hoisted_2$30); + }), 128))]); + }), 128))], 512)], 42, _hoisted_1$48); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-year-table.vue + var basic_year_table_default = basic_year_table_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$47 = ["disabled", "onClick"]; + const _hoisted_2$29 = ["aria-label", "disabled"]; + const _hoisted_3$14 = ["aria-label", "disabled"]; + const _hoisted_4$11 = ["tabindex", "aria-disabled"]; + const _hoisted_5$8 = ["tabindex", "aria-disabled"]; + const _hoisted_6$3 = ["aria-label", "disabled"]; + const _hoisted_7$2 = ["aria-label", "disabled"]; + var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "panel-date-pick", + props: panelDatePickProps, + emits: [ + "pick", + "set-picker-option", + "panel-change" + ], + setup(__props, { emit: __emit }) { + const timeWithinRange = (_, __, ___) => true; + const props = __props; + const contextEmit = __emit; + const ppNs = useNamespace("picker-panel"); + const dpNs = useNamespace("date-picker"); + const attrs = (0, vue.useAttrs)(); + const slots = (0, vue.useSlots)(); + const { t, lang } = useLocale(); + const pickerBase = (0, vue.inject)(PICKER_BASE_INJECTION_KEY); + const isDefaultFormat = (0, vue.inject)(ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY, void 0); + const { shortcuts, disabledDate, cellClassName, defaultTime } = pickerBase.props; + const defaultValue = (0, vue.toRef)(pickerBase.props, "defaultValue"); + const currentViewRef = (0, vue.ref)(); + const innerDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value)); + const isChangeToNow = (0, vue.ref)(false); + let isShortcut = false; + const defaultTimeD = (0, vue.computed)(() => { + return (0, import_dayjs_min.default)(defaultTime).locale(lang.value); + }); + const month = (0, vue.computed)(() => { + return innerDate.value.month(); + }); + const year = (0, vue.computed)(() => { + return innerDate.value.year(); + }); + const selectableRange = (0, vue.ref)([]); + const userInputDate = (0, vue.ref)(null); + const userInputTime = (0, vue.ref)(null); + const checkDateWithinRange = (date) => { + return selectableRange.value.length > 0 ? timeWithinRange(date, selectableRange.value, props.format || DEFAULT_FORMATS_TIME) : true; + }; + const formatEmit = (emitDayjs) => { + if (defaultTime && !visibleTime.value && !isChangeToNow.value && !isShortcut) return defaultTimeD.value.year(emitDayjs.year()).month(emitDayjs.month()).date(emitDayjs.date()); + if (showTime.value) return emitDayjs.millisecond(0); + return emitDayjs.startOf("day"); + }; + const emit = (value, ...args) => { + if (!value) contextEmit("pick", value, ...args); + else if (isArray$1(value)) contextEmit("pick", value.map(formatEmit), ...args); + else contextEmit("pick", formatEmit(value), ...args); + userInputDate.value = null; + userInputTime.value = null; + isChangeToNow.value = false; + isShortcut = false; + }; + const handleDatePick = async (value, keepOpen) => { + if (selectionMode.value === "date" && import_dayjs_min.default.isDayjs(value)) { + const parsedDateValue = extractFirst(props.parsedValue); + let newDate = parsedDateValue ? parsedDateValue.year(value.year()).month(value.month()).date(value.date()) : value; + if (!checkDateWithinRange(newDate)) newDate = selectableRange.value[0][0].year(value.year()).month(value.month()).date(value.date()); + innerDate.value = newDate; + emit(newDate, showTime.value || keepOpen); + } else if (selectionMode.value === "week") emit(value.date); + else if (selectionMode.value === "dates") emit(value, true); + }; + const moveByMonth = (forward) => { + const action = forward ? "add" : "subtract"; + innerDate.value = innerDate.value[action](1, "month"); + handlePanelChange("month"); + }; + const moveByYear = (forward) => { + const currentDate = innerDate.value; + const action = forward ? "add" : "subtract"; + innerDate.value = currentView.value === "year" ? currentDate[action](10, "year") : currentDate[action](1, "year"); + handlePanelChange("year"); + }; + const currentView = (0, vue.ref)("date"); + const yearLabel = (0, vue.computed)(() => { + const yearTranslation = t("el.datepicker.year"); + if (currentView.value === "year") { + const startYear = Math.floor(year.value / 10) * 10; + if (yearTranslation) return `${startYear} ${yearTranslation} - ${startYear + 9} ${yearTranslation}`; + return `${startYear} - ${startYear + 9}`; + } + return `${year.value} ${yearTranslation}`; + }); + const handleShortcutClick = (shortcut) => { + const shortcutValue = isFunction$1(shortcut.value) ? shortcut.value() : shortcut.value; + if (shortcutValue) { + isShortcut = true; + emit((0, import_dayjs_min.default)(shortcutValue).locale(lang.value)); + return; + } + if (shortcut.onClick) shortcut.onClick({ + attrs, + slots, + emit: contextEmit + }); + }; + const selectionMode = (0, vue.computed)(() => { + const { type } = props; + if ([ + "week", + "month", + "months", + "year", + "years", + "dates" + ].includes(type)) return type; + return "date"; + }); + const isMultipleType = (0, vue.computed)(() => { + return selectionMode.value === "dates" || selectionMode.value === "months" || selectionMode.value === "years"; + }); + const keyboardMode = (0, vue.computed)(() => { + return selectionMode.value === "date" ? currentView.value : selectionMode.value; + }); + const hasShortcuts = (0, vue.computed)(() => !!shortcuts.length); + const handleMonthPick = async (month, keepOpen) => { + if (selectionMode.value === "month") { + innerDate.value = getValidDateOfMonth(innerDate.value, innerDate.value.year(), month, lang.value, disabledDate); + emit(innerDate.value, false); + } else if (selectionMode.value === "months") emit(month, keepOpen ?? true); + else { + innerDate.value = getValidDateOfMonth(innerDate.value, innerDate.value.year(), month, lang.value, disabledDate); + currentView.value = "date"; + if ([ + "month", + "year", + "date", + "week" + ].includes(selectionMode.value)) { + emit(innerDate.value, true); + await (0, vue.nextTick)(); + handleFocusPicker(); + } + } + handlePanelChange("month"); + }; + const handleYearPick = async (year, keepOpen) => { + if (selectionMode.value === "year") { + innerDate.value = getValidDateOfYear(innerDate.value.startOf("year").year(year), lang.value, disabledDate); + emit(innerDate.value, false); + } else if (selectionMode.value === "years") emit(year, keepOpen ?? true); + else { + innerDate.value = getValidDateOfYear(innerDate.value.year(year), lang.value, disabledDate); + currentView.value = "month"; + if ([ + "month", + "year", + "date", + "week" + ].includes(selectionMode.value)) { + emit(innerDate.value, true); + await (0, vue.nextTick)(); + handleFocusPicker(); + } + } + handlePanelChange("year"); + }; + const dateDisabled = useFormDisabled(); + const showPicker = async (view) => { + if (dateDisabled.value) return; + currentView.value = view; + await (0, vue.nextTick)(); + handleFocusPicker(); + }; + const showTime = (0, vue.computed)(() => props.type === "datetime" || props.type === "datetimerange"); + const footerVisible = (0, vue.computed)(() => { + const showDateFooter = showTime.value || selectionMode.value === "dates"; + const showYearFooter = selectionMode.value === "years"; + const showMonthFooter = selectionMode.value === "months"; + const isDateView = currentView.value === "date"; + const isYearView = currentView.value === "year"; + const isMonthView = currentView.value === "month"; + return showDateFooter && isDateView || showYearFooter && isYearView || showMonthFooter && isMonthView; + }); + const footerFilled = (0, vue.computed)(() => !isMultipleType.value && props.showNow || props.showConfirm); + const disabledConfirm = (0, vue.computed)(() => { + if (!disabledDate) return false; + if (!props.parsedValue) return true; + if (isArray$1(props.parsedValue)) return disabledDate(props.parsedValue[0].toDate()); + return disabledDate(props.parsedValue.toDate()); + }); + const onConfirm = () => { + if (isMultipleType.value) emit(props.parsedValue); + else { + let result = extractFirst(props.parsedValue); + if (!result) { + const defaultTimeD = (0, import_dayjs_min.default)(defaultTime).locale(lang.value); + const defaultValueD = getDefaultValue(); + result = defaultTimeD.year(defaultValueD.year()).month(defaultValueD.month()).date(defaultValueD.date()); + } + innerDate.value = result; + emit(result); + } + }; + const disabledNow = (0, vue.computed)(() => { + if (!disabledDate) return false; + return disabledDate((0, import_dayjs_min.default)().locale(lang.value).toDate()); + }); + const changeToNow = () => { + const nowDate = (0, import_dayjs_min.default)().locale(lang.value).toDate(); + isChangeToNow.value = true; + if ((!disabledDate || !disabledDate(nowDate)) && checkDateWithinRange(nowDate)) { + innerDate.value = (0, import_dayjs_min.default)().locale(lang.value); + emit(innerDate.value); + } + }; + const timeFormat = (0, vue.computed)(() => { + return props.timeFormat || extractTimeFormat(props.format) || DEFAULT_FORMATS_TIME; + }); + const dateFormat = (0, vue.computed)(() => { + return props.dateFormat || extractDateFormat(props.format) || DEFAULT_FORMATS_DATE; + }); + const visibleTime = (0, vue.computed)(() => { + if (userInputTime.value) return userInputTime.value; + if (!props.parsedValue && !defaultValue.value) return; + return (extractFirst(props.parsedValue) || innerDate.value).format(timeFormat.value); + }); + const visibleDate = (0, vue.computed)(() => { + if (userInputDate.value) return userInputDate.value; + if (!props.parsedValue && !defaultValue.value) return; + return (extractFirst(props.parsedValue) || innerDate.value).format(dateFormat.value); + }); + const timePickerVisible = (0, vue.ref)(false); + const onTimePickerInputFocus = () => { + timePickerVisible.value = true; + }; + const handleTimePickClose = () => { + timePickerVisible.value = false; + }; + const getUnits = (date) => { + return { + hour: date.hour(), + minute: date.minute(), + second: date.second(), + year: date.year(), + month: date.month(), + date: date.date() + }; + }; + const handleTimePick = (value, visible, first) => { + const { hour, minute, second } = getUnits(value); + const parsedDateValue = extractFirst(props.parsedValue); + innerDate.value = parsedDateValue ? parsedDateValue.hour(hour).minute(minute).second(second) : value; + emit(innerDate.value, true); + if (!first) timePickerVisible.value = visible; + }; + const handleVisibleTimeChange = (value) => { + const newDate = (0, import_dayjs_min.default)(value, timeFormat.value).locale(lang.value); + if (newDate.isValid() && checkDateWithinRange(newDate)) { + const { year, month, date } = getUnits(innerDate.value); + innerDate.value = newDate.year(year).month(month).date(date); + userInputTime.value = null; + timePickerVisible.value = false; + emit(innerDate.value, true); + } + }; + const handleVisibleDateChange = (value) => { + const newDate = correctlyParseUserInput(value, dateFormat.value, lang.value, isDefaultFormat); + if (newDate.isValid()) { + if (disabledDate && disabledDate(newDate.toDate())) return; + const { hour, minute, second } = getUnits(innerDate.value); + innerDate.value = newDate.hour(hour).minute(minute).second(second); + userInputDate.value = null; + emit(innerDate.value, true); + } + }; + const isValidValue = (date) => { + return import_dayjs_min.default.isDayjs(date) && date.isValid() && (disabledDate ? !disabledDate(date.toDate()) : true); + }; + const parseUserInput = (value) => { + return correctlyParseUserInput(value, props.format, lang.value, isDefaultFormat); + }; + const getDefaultValue = () => { + const parseDate = (0, import_dayjs_min.default)(defaultValue.value).locale(lang.value); + if (!defaultValue.value) { + const defaultTimeDValue = defaultTimeD.value; + return (0, import_dayjs_min.default)().hour(defaultTimeDValue.hour()).minute(defaultTimeDValue.minute()).second(defaultTimeDValue.second()).locale(lang.value); + } + return parseDate; + }; + const handleFocusPicker = () => { + if ([ + "week", + "month", + "year", + "date" + ].includes(selectionMode.value)) currentViewRef.value?.focus(); + }; + const _handleFocusPicker = () => { + handleFocusPicker(); + if (selectionMode.value === "week") handleKeyControl(EVENT_CODE.down); + }; + const handleKeydownTable = (event) => { + const code = getEventCode(event); + if ([ + EVENT_CODE.up, + EVENT_CODE.down, + EVENT_CODE.left, + EVENT_CODE.right, + EVENT_CODE.home, + EVENT_CODE.end, + EVENT_CODE.pageUp, + EVENT_CODE.pageDown + ].includes(code)) { + handleKeyControl(code); + event.stopPropagation(); + event.preventDefault(); + } + if ([ + EVENT_CODE.enter, + EVENT_CODE.space, + EVENT_CODE.numpadEnter + ].includes(code) && userInputDate.value === null && userInputTime.value === null) { + event.preventDefault(); + emit(innerDate.value, false); + } + }; + const handleKeyControl = (code) => { + const { up, down, left, right, home, end, pageUp, pageDown } = EVENT_CODE; + const mapping = { + year: { + [up]: -4, + [down]: 4, + [left]: -1, + [right]: 1, + offset: (date, step) => date.setFullYear(date.getFullYear() + step) + }, + month: { + [up]: -4, + [down]: 4, + [left]: -1, + [right]: 1, + offset: (date, step) => date.setMonth(date.getMonth() + step) + }, + week: { + [up]: -1, + [down]: 1, + [left]: -1, + [right]: 1, + offset: (date, step) => date.setDate(date.getDate() + step * 7) + }, + date: { + [up]: -7, + [down]: 7, + [left]: -1, + [right]: 1, + [home]: (date) => -date.getDay(), + [end]: (date) => -date.getDay() + 6, + [pageUp]: (date) => -new Date(date.getFullYear(), date.getMonth(), 0).getDate(), + [pageDown]: (date) => new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate(), + offset: (date, step) => date.setDate(date.getDate() + step) + } + }; + const newDate = innerDate.value.toDate(); + while (Math.abs(innerDate.value.diff(newDate, "year", true)) < 1) { + const map = mapping[keyboardMode.value]; + if (!map) return; + map.offset(newDate, isFunction$1(map[code]) ? map[code](newDate) : map[code] ?? 0); + if (disabledDate && disabledDate(newDate)) break; + const result = (0, import_dayjs_min.default)(newDate).locale(lang.value); + innerDate.value = result; + contextEmit("pick", result, true); + break; + } + }; + const handlePanelChange = (mode) => { + contextEmit("panel-change", innerDate.value.toDate(), mode, currentView.value); + }; + (0, vue.watch)(() => selectionMode.value, (val) => { + if (["month", "year"].includes(val)) { + currentView.value = val; + return; + } else if (val === "years") { + currentView.value = "year"; + return; + } else if (val === "months") { + currentView.value = "month"; + return; + } + currentView.value = "date"; + }, { immediate: true }); + (0, vue.watch)(() => defaultValue.value, (val) => { + if (val) innerDate.value = getDefaultValue(); + }, { immediate: true }); + (0, vue.watch)(() => props.parsedValue, (val) => { + if (val) { + if (isMultipleType.value) return; + if (isArray$1(val)) return; + innerDate.value = val; + } else innerDate.value = getDefaultValue(); + }, { immediate: true }); + contextEmit("set-picker-option", ["isValidValue", isValidValue]); + contextEmit("set-picker-option", ["parseUserInput", parseUserInput]); + contextEmit("set-picker-option", ["handleFocusPicker", _handleFocusPicker]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ppNs).b(), + (0, vue.unref)(dpNs).b(), + (0, vue.unref)(ppNs).is("border", _ctx.border), + (0, vue.unref)(ppNs).is("disabled", (0, vue.unref)(dateDisabled)), + { + "has-sidebar": _ctx.$slots.sidebar || hasShortcuts.value, + "has-time": showTime.value + } + ]) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body-wrapper")) }, [ + (0, vue.renderSlot)(_ctx.$slots, "sidebar", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) }), + hasShortcuts.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(shortcuts), (shortcut, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key, + type: "button", + disabled: (0, vue.unref)(dateDisabled), + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("shortcut")), + onClick: ($event) => handleShortcutClick(shortcut) + }, (0, vue.toDisplayString)(shortcut.text), 11, _hoisted_1$47); + }), 128))], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body")) }, [ + showTime.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(dpNs).e("time-header")) + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(dpNs).e("editor-wrap")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + placeholder: (0, vue.unref)(t)("el.datepicker.selectDate"), + "model-value": visibleDate.value, + size: "small", + "validate-event": false, + disabled: (0, vue.unref)(dateDisabled), + readonly: !_ctx.editable, + onInput: _cache[0] || (_cache[0] = (val) => userInputDate.value = val), + onChange: handleVisibleDateChange + }, null, 8, [ + "placeholder", + "model-value", + "disabled", + "readonly" + ])], 2), (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(dpNs).e("editor-wrap")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + placeholder: (0, vue.unref)(t)("el.datepicker.selectTime"), + "model-value": visibleTime.value, + size: "small", + "validate-event": false, + disabled: (0, vue.unref)(dateDisabled), + readonly: !_ctx.editable, + onFocus: onTimePickerInputFocus, + onInput: _cache[1] || (_cache[1] = (val) => userInputTime.value = val), + onChange: handleVisibleTimeChange + }, null, 8, [ + "placeholder", + "model-value", + "disabled", + "readonly" + ]), (0, vue.createVNode)((0, vue.unref)(panel_time_pick_default), { + visible: timePickerVisible.value, + format: timeFormat.value, + "parsed-value": innerDate.value, + onPick: handleTimePick + }, null, 8, [ + "visible", + "format", + "parsed-value" + ])], 2)), [[(0, vue.unref)(ClickOutside), handleTimePickClose]])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.withDirectives)((0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(dpNs).e("header"), (currentView.value === "year" || currentView.value === "month") && (0, vue.unref)(dpNs).em("header", "bordered")]) }, [ + (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(dpNs).e("prev-btn")) }, [(0, vue.createElementVNode)("button", { + type: "button", + "aria-label": (0, vue.unref)(t)(`el.datepicker.prevYear`), + class: (0, vue.normalizeClass)(["d-arrow-left", (0, vue.unref)(ppNs).e("icon-btn")]), + disabled: (0, vue.unref)(dateDisabled), + onClick: _cache[2] || (_cache[2] = ($event) => moveByYear(false)) + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_2$29), (0, vue.withDirectives)((0, vue.createElementVNode)("button", { + type: "button", + "aria-label": (0, vue.unref)(t)(`el.datepicker.prevMonth`), + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "arrow-left"]), + disabled: (0, vue.unref)(dateDisabled), + onClick: _cache[3] || (_cache[3] = ($event) => moveByMonth(false)) + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-month", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_left_default))]), + _: 1 + })])], 10, _hoisted_3$14), [[vue.vShow, currentView.value === "date"]])], 2), + (0, vue.createElementVNode)("span", { + role: "button", + class: (0, vue.normalizeClass)((0, vue.unref)(dpNs).e("header-label")), + "aria-live": "polite", + tabindex: _ctx.disabled ? void 0 : 0, + "aria-disabled": _ctx.disabled, + onKeydown: _cache[4] || (_cache[4] = (0, vue.withKeys)(($event) => showPicker("year"), ["enter"])), + onClick: _cache[5] || (_cache[5] = ($event) => showPicker("year")) + }, (0, vue.toDisplayString)(yearLabel.value), 43, _hoisted_4$11), + (0, vue.withDirectives)((0, vue.createElementVNode)("span", { + role: "button", + "aria-live": "polite", + tabindex: _ctx.disabled ? void 0 : 0, + "aria-disabled": _ctx.disabled, + class: (0, vue.normalizeClass)([(0, vue.unref)(dpNs).e("header-label"), { active: currentView.value === "month" }]), + onKeydown: _cache[6] || (_cache[6] = (0, vue.withKeys)(($event) => showPicker("month"), ["enter"])), + onClick: _cache[7] || (_cache[7] = ($event) => showPicker("month")) + }, (0, vue.toDisplayString)((0, vue.unref)(t)(`el.datepicker.month${month.value + 1}`)), 43, _hoisted_5$8), [[vue.vShow, currentView.value === "date"]]), + (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(dpNs).e("next-btn")) }, [(0, vue.withDirectives)((0, vue.createElementVNode)("button", { + type: "button", + "aria-label": (0, vue.unref)(t)(`el.datepicker.nextMonth`), + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "arrow-right"]), + disabled: (0, vue.unref)(dateDisabled), + onClick: _cache[8] || (_cache[8] = ($event) => moveByMonth(true)) + }, [(0, vue.renderSlot)(_ctx.$slots, "next-month", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })])], 10, _hoisted_6$3), [[vue.vShow, currentView.value === "date"]]), (0, vue.createElementVNode)("button", { + type: "button", + "aria-label": (0, vue.unref)(t)(`el.datepicker.nextYear`), + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "d-arrow-right"]), + disabled: (0, vue.unref)(dateDisabled), + onClick: _cache[9] || (_cache[9] = ($event) => moveByYear(true)) + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_7$2)], 2) + ], 2), [[vue.vShow, currentView.value !== "time"]]), + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("content")), + onKeydown: handleKeydownTable + }, [ + currentView.value === "date" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_date_table_default, { + key: 0, + ref_key: "currentViewRef", + ref: currentViewRef, + "selection-mode": selectionMode.value, + date: innerDate.value, + "parsed-value": _ctx.parsedValue, + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(dateDisabled), + "cell-class-name": (0, vue.unref)(cellClassName), + "show-week-number": _ctx.showWeekNumber, + onPick: handleDatePick + }, null, 8, [ + "selection-mode", + "date", + "parsed-value", + "disabled-date", + "disabled", + "cell-class-name", + "show-week-number" + ])) : (0, vue.createCommentVNode)("v-if", true), + currentView.value === "year" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_year_table_default, { + key: 1, + ref_key: "currentViewRef", + ref: currentViewRef, + "selection-mode": selectionMode.value, + date: innerDate.value, + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(dateDisabled), + "parsed-value": _ctx.parsedValue, + "cell-class-name": (0, vue.unref)(cellClassName), + onPick: handleYearPick + }, null, 8, [ + "selection-mode", + "date", + "disabled-date", + "disabled", + "parsed-value", + "cell-class-name" + ])) : (0, vue.createCommentVNode)("v-if", true), + currentView.value === "month" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_month_table_default, { + key: 2, + ref_key: "currentViewRef", + ref: currentViewRef, + "selection-mode": selectionMode.value, + date: innerDate.value, + "parsed-value": _ctx.parsedValue, + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(dateDisabled), + "cell-class-name": (0, vue.unref)(cellClassName), + onPick: handleMonthPick + }, null, 8, [ + "selection-mode", + "date", + "parsed-value", + "disabled-date", + "disabled", + "cell-class-name" + ])) : (0, vue.createCommentVNode)("v-if", true) + ], 34) + ], 2) + ], 2), _ctx.showFooter && footerVisible.value && footerFilled.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("footer")) + }, [(0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElButton), { + text: "", + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("link-btn")), + disabled: disabledNow.value, + onClick: changeToNow + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.now")), 1)]), + _: 1 + }, 8, ["class", "disabled"]), [[vue.vShow, !isMultipleType.value && _ctx.showNow]]), _ctx.showConfirm ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElButton), { + key: 0, + plain: "", + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("link-btn")), + disabled: disabledConfirm.value, + onClick: onConfirm + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.confirm")), 1)]), + _: 1 + }, 8, ["class", "disabled"])) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue + var panel_date_pick_default = panel_date_pick_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/panel-date-range.ts + const panelDateRangeProps = buildProps({ + ...panelSharedProps, + ...panelRangeSharedProps + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/composables/use-shortcut.ts + const useShortcut = (lang) => { + const { emit } = (0, vue.getCurrentInstance)(); + const attrs = (0, vue.useAttrs)(); + const slots = (0, vue.useSlots)(); + const handleShortcutClick = (shortcut) => { + const shortcutValues = isFunction$1(shortcut.value) ? shortcut.value() : shortcut.value; + if (shortcutValues) { + emit("pick", [(0, import_dayjs_min.default)(shortcutValues[0]).locale(lang.value), (0, import_dayjs_min.default)(shortcutValues[1]).locale(lang.value)]); + return; + } + if (shortcut.onClick) shortcut.onClick({ + attrs, + slots, + emit + }); + }; + return handleShortcutClick; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/composables/use-range-picker.ts + const useRangePicker = (props, { defaultValue, defaultTime, leftDate, rightDate, step, unit, sortDates }) => { + const { emit } = (0, vue.getCurrentInstance)(); + const { pickerNs } = (0, vue.inject)(ROOT_PICKER_INJECTION_KEY); + const drpNs = useNamespace("date-range-picker"); + const { t, lang } = useLocale(); + const handleShortcutClick = useShortcut(lang); + const minDate = (0, vue.ref)(); + const maxDate = (0, vue.ref)(); + const rangeState = (0, vue.ref)({ + endDate: null, + selecting: false + }); + const handleChangeRange = (val) => { + rangeState.value = val; + }; + const handleRangeConfirm = (visible = false) => { + const _minDate = (0, vue.unref)(minDate); + const _maxDate = (0, vue.unref)(maxDate); + if (isValidRange([_minDate, _maxDate])) emit("pick", [_minDate, _maxDate], visible); + }; + const onSelect = (selecting) => { + rangeState.value.selecting = selecting; + if (!selecting) rangeState.value.endDate = null; + }; + const parseValue = (parsedValue) => { + if (isArray$1(parsedValue) && parsedValue.length === 2) { + const [start, end] = parsedValue; + minDate.value = start; + leftDate.value = start; + maxDate.value = end; + sortDates((0, vue.unref)(minDate), (0, vue.unref)(maxDate)); + } else restoreDefault(); + }; + const restoreDefault = () => { + let [start, end] = getDefaultValue((0, vue.unref)(defaultValue), { + lang: (0, vue.unref)(lang), + step, + unit, + unlinkPanels: props.unlinkPanels + }); + const getShift = (day) => { + return day.diff(day.startOf("d"), "ms"); + }; + const maybeTimes = (0, vue.unref)(defaultTime); + if (maybeTimes) { + let leftShift = 0; + let rightShift = 0; + if (isArray$1(maybeTimes)) { + const [timeStart, timeEnd] = maybeTimes.map(import_dayjs_min.default); + leftShift = getShift(timeStart); + rightShift = getShift(timeEnd); + } else { + const shift = getShift((0, import_dayjs_min.default)(maybeTimes)); + leftShift = shift; + rightShift = shift; + } + start = start.startOf("d").add(leftShift, "ms"); + end = end.startOf("d").add(rightShift, "ms"); + } + minDate.value = void 0; + maxDate.value = void 0; + leftDate.value = start; + rightDate.value = end; + }; + (0, vue.watch)(defaultValue, (val) => { + if (val) restoreDefault(); + }, { immediate: true }); + (0, vue.watch)(() => props.parsedValue, (parsedValue) => { + if (!parsedValue?.length || !isEqual$1(parsedValue, [minDate.value, maxDate.value])) parseValue(parsedValue); + }, { immediate: true }); + (0, vue.watch)(() => props.visible, () => { + if (props.visible) parseValue(props.parsedValue); + }, { immediate: true }); + return { + minDate, + maxDate, + rangeState, + lang, + ppNs: pickerNs, + drpNs, + handleChangeRange, + handleRangeConfirm, + handleShortcutClick, + onSelect, + parseValue, + t + }; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/composables/use-panel-date-range.ts + const usePanelDateRange = (props, emit, leftDate, rightDate) => { + const leftCurrentView = (0, vue.ref)("date"); + const leftCurrentViewRef = (0, vue.ref)(); + const rightCurrentView = (0, vue.ref)("date"); + const rightCurrentViewRef = (0, vue.ref)(); + const { disabledDate } = (0, vue.inject)(PICKER_BASE_INJECTION_KEY).props; + const { t, lang } = useLocale(); + const leftYear = (0, vue.computed)(() => { + return leftDate.value.year(); + }); + const leftMonth = (0, vue.computed)(() => { + return leftDate.value.month(); + }); + const rightYear = (0, vue.computed)(() => { + return rightDate.value.year(); + }); + const rightMonth = (0, vue.computed)(() => { + return rightDate.value.month(); + }); + function computedYearLabel(currentView, yearValue) { + const yearTranslation = t("el.datepicker.year"); + if (currentView.value === "year") { + const startYear = Math.floor(yearValue.value / 10) * 10; + return yearTranslation ? `${startYear} ${yearTranslation} - ${startYear + 9} ${yearTranslation}` : `${startYear} - ${startYear + 9}`; + } + return `${yearValue.value} ${yearTranslation}`; + } + function focusPicker(currentViewRef) { + currentViewRef?.focus(); + } + async function showPicker(pickerType, view) { + if (props.disabled) return; + const currentView = pickerType === "left" ? leftCurrentView : rightCurrentView; + const currentViewRef = pickerType === "left" ? leftCurrentViewRef : rightCurrentViewRef; + currentView.value = view; + await (0, vue.nextTick)(); + focusPicker(currentViewRef.value); + } + async function handlePick(mode, pickerType, value) { + if (props.disabled) return; + const isLeftPicker = pickerType === "left"; + const startDate = isLeftPicker ? leftDate : rightDate; + const endDate = isLeftPicker ? rightDate : leftDate; + const currentView = isLeftPicker ? leftCurrentView : rightCurrentView; + const currentViewRef = isLeftPicker ? leftCurrentViewRef : rightCurrentViewRef; + if (mode === "year") startDate.value = getValidDateOfYear(startDate.value.year(value), lang.value, disabledDate); + if (mode === "month") startDate.value = getValidDateOfMonth(startDate.value, startDate.value.year(), value, lang.value, disabledDate); + if (!props.unlinkPanels) endDate.value = pickerType === "left" ? startDate.value.add(1, "month") : startDate.value.subtract(1, "month"); + currentView.value = mode === "year" ? "month" : "date"; + await (0, vue.nextTick)(); + focusPicker(currentViewRef.value); + handlePanelChange(mode); + } + function handlePanelChange(mode) { + emit("panel-change", [leftDate.value.toDate(), rightDate.value.toDate()], mode); + } + function adjustDateByView(currentView, date, forward) { + const action = forward ? "add" : "subtract"; + return currentView === "year" ? date[action](10, "year") : date[action](1, "year"); + } + return { + leftCurrentView, + rightCurrentView, + leftCurrentViewRef, + rightCurrentViewRef, + leftYear, + rightYear, + leftMonth, + rightMonth, + leftYearLabel: (0, vue.computed)(() => computedYearLabel(leftCurrentView, leftYear)), + rightYearLabel: (0, vue.computed)(() => computedYearLabel(rightCurrentView, rightYear)), + showLeftPicker: (view) => showPicker("left", view), + showRightPicker: (view) => showPicker("right", view), + handleLeftYearPick: (year) => handlePick("year", "left", year), + handleRightYearPick: (year) => handlePick("year", "right", year), + handleLeftMonthPick: (month) => handlePick("month", "left", month), + handleRightMonthPick: (month) => handlePick("month", "right", month), + handlePanelChange, + adjustDateByView + }; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-date-range.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$46 = ["disabled", "onClick"]; + const _hoisted_2$28 = ["aria-label", "disabled"]; + const _hoisted_3$13 = ["aria-label", "disabled"]; + const _hoisted_4$10 = ["disabled", "aria-label"]; + const _hoisted_5$7 = ["disabled", "aria-label"]; + const _hoisted_6$2 = ["tabindex", "aria-disabled"]; + const _hoisted_7$1 = ["tabindex", "aria-disabled"]; + const _hoisted_8$1 = ["disabled", "aria-label"]; + const _hoisted_9$1 = ["disabled", "aria-label"]; + const _hoisted_10$1 = ["aria-label", "disabled"]; + const _hoisted_11$1 = ["disabled", "aria-label"]; + const _hoisted_12$1 = ["tabindex", "aria-disabled"]; + const _hoisted_13$1 = ["tabindex", "aria-disabled"]; + const unit$2 = "month"; + var panel_date_range_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "panel-date-range", + props: panelDateRangeProps, + emits: [ + "pick", + "set-picker-option", + "calendar-change", + "panel-change", + "clear" + ], + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const pickerBase = (0, vue.inject)(PICKER_BASE_INJECTION_KEY); + const isDefaultFormat = (0, vue.inject)(ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY, void 0); + const { disabledDate, cellClassName, defaultTime, clearable } = pickerBase.props; + const format = (0, vue.toRef)(pickerBase.props, "format"); + const shortcuts = (0, vue.toRef)(pickerBase.props, "shortcuts"); + const defaultValue = (0, vue.toRef)(pickerBase.props, "defaultValue"); + const { lang } = useLocale(); + const leftDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value)); + const rightDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value).add(1, unit$2)); + const { minDate, maxDate, rangeState, ppNs, drpNs, handleChangeRange, handleRangeConfirm, handleShortcutClick, onSelect, parseValue, t } = useRangePicker(props, { + defaultValue, + defaultTime, + leftDate, + rightDate, + unit: unit$2, + sortDates + }); + (0, vue.watch)(() => props.visible, (visible) => { + if (!visible && rangeState.value.selecting) { + parseValue(props.parsedValue); + onSelect(false); + } + }); + const dateUserInput = (0, vue.ref)({ + min: null, + max: null + }); + const timeUserInput = (0, vue.ref)({ + min: null, + max: null + }); + const { leftCurrentView, rightCurrentView, leftCurrentViewRef, rightCurrentViewRef, leftYear, rightYear, leftMonth, rightMonth, leftYearLabel, rightYearLabel, showLeftPicker, showRightPicker, handleLeftYearPick, handleRightYearPick, handleLeftMonthPick, handleRightMonthPick, handlePanelChange, adjustDateByView } = usePanelDateRange(props, emit, leftDate, rightDate); + const hasShortcuts = (0, vue.computed)(() => !!shortcuts.value.length); + const minVisibleDate = (0, vue.computed)(() => { + if (dateUserInput.value.min !== null) return dateUserInput.value.min; + if (minDate.value) return minDate.value.format(dateFormat.value); + return ""; + }); + const maxVisibleDate = (0, vue.computed)(() => { + if (dateUserInput.value.max !== null) return dateUserInput.value.max; + if (maxDate.value || minDate.value) return (maxDate.value || minDate.value).format(dateFormat.value); + return ""; + }); + const minVisibleTime = (0, vue.computed)(() => { + if (timeUserInput.value.min !== null) return timeUserInput.value.min; + if (minDate.value) return minDate.value.format(timeFormat.value); + return ""; + }); + const maxVisibleTime = (0, vue.computed)(() => { + if (timeUserInput.value.max !== null) return timeUserInput.value.max; + if (maxDate.value || minDate.value) return (maxDate.value || minDate.value).format(timeFormat.value); + return ""; + }); + const timeFormat = (0, vue.computed)(() => { + return props.timeFormat || extractTimeFormat(format.value || "") || DEFAULT_FORMATS_TIME; + }); + const dateFormat = (0, vue.computed)(() => { + return props.dateFormat || extractDateFormat(format.value || "") || DEFAULT_FORMATS_DATE; + }); + const isValidValue = (date) => { + return isValidRange(date) && (disabledDate ? !disabledDate(date[0].toDate()) && !disabledDate(date[1].toDate()) : true); + }; + const leftPrevYear = () => { + leftDate.value = adjustDateByView(leftCurrentView.value, leftDate.value, false); + if (!props.unlinkPanels) rightDate.value = leftDate.value.add(1, "month"); + handlePanelChange("year"); + }; + const leftPrevMonth = () => { + leftDate.value = leftDate.value.subtract(1, "month"); + if (!props.unlinkPanels) rightDate.value = leftDate.value.add(1, "month"); + handlePanelChange("month"); + }; + const rightNextYear = () => { + if (!props.unlinkPanels) { + leftDate.value = adjustDateByView(rightCurrentView.value, leftDate.value, true); + rightDate.value = leftDate.value.add(1, "month"); + } else rightDate.value = adjustDateByView(rightCurrentView.value, rightDate.value, true); + handlePanelChange("year"); + }; + const rightNextMonth = () => { + if (!props.unlinkPanels) { + leftDate.value = leftDate.value.add(1, "month"); + rightDate.value = leftDate.value.add(1, "month"); + } else rightDate.value = rightDate.value.add(1, "month"); + handlePanelChange("month"); + }; + const leftNextYear = () => { + leftDate.value = adjustDateByView(leftCurrentView.value, leftDate.value, true); + handlePanelChange("year"); + }; + const leftNextMonth = () => { + leftDate.value = leftDate.value.add(1, "month"); + handlePanelChange("month"); + }; + const rightPrevYear = () => { + rightDate.value = adjustDateByView(rightCurrentView.value, rightDate.value, false); + handlePanelChange("year"); + }; + const rightPrevMonth = () => { + rightDate.value = rightDate.value.subtract(1, "month"); + handlePanelChange("month"); + }; + const enableMonthArrow = (0, vue.computed)(() => { + const nextMonth = (leftMonth.value + 1) % 12; + const yearOffset = leftMonth.value + 1 >= 12 ? 1 : 0; + return props.unlinkPanels && new Date(leftYear.value + yearOffset, nextMonth) < new Date(rightYear.value, rightMonth.value); + }); + const enableYearArrow = (0, vue.computed)(() => { + return props.unlinkPanels && rightYear.value * 12 + rightMonth.value - (leftYear.value * 12 + leftMonth.value + 1) >= 12; + }); + const dateRangeDisabled = useFormDisabled(); + const btnDisabled = (0, vue.computed)(() => { + return !(minDate.value && maxDate.value && !rangeState.value.selecting && isValidRange([minDate.value, maxDate.value]) && !dateRangeDisabled.value); + }); + const showTime = (0, vue.computed)(() => props.type === "datetime" || props.type === "datetimerange"); + const formatEmit = (emitDayjs, index) => { + if (!emitDayjs) return; + if (defaultTime) return (0, import_dayjs_min.default)(defaultTime[index] || defaultTime).locale(lang.value).year(emitDayjs.year()).month(emitDayjs.month()).date(emitDayjs.date()); + return emitDayjs; + }; + const handleRangePick = (val, close = true) => { + const min_ = val.minDate; + const max_ = val.maxDate; + const minDate_ = formatEmit(min_, 0); + const maxDate_ = formatEmit(max_, 1); + if (maxDate.value === maxDate_ && minDate.value === minDate_) return; + emit("calendar-change", [min_.toDate(), max_ && max_.toDate()]); + maxDate.value = maxDate_; + minDate.value = minDate_; + if (!showTime.value && close) close = !minDate_ || !maxDate_; + handleRangeConfirm(close); + }; + const minTimePickerVisible = (0, vue.ref)(false); + const maxTimePickerVisible = (0, vue.ref)(false); + const handleMinTimeClose = () => { + minTimePickerVisible.value = false; + }; + const handleMaxTimeClose = () => { + maxTimePickerVisible.value = false; + }; + const handleDateInput = (value, type) => { + dateUserInput.value[type] = value; + const parsedValueD = (0, import_dayjs_min.default)(value, dateFormat.value).locale(lang.value); + if (parsedValueD.isValid()) { + if (disabledDate && disabledDate(parsedValueD.toDate())) return; + if (type === "min") { + leftDate.value = parsedValueD; + minDate.value = (minDate.value || leftDate.value).year(parsedValueD.year()).month(parsedValueD.month()).date(parsedValueD.date()); + if (!props.unlinkPanels && (!maxDate.value || maxDate.value.isBefore(minDate.value))) { + rightDate.value = parsedValueD.add(1, "month"); + maxDate.value = minDate.value.add(1, "month"); + } + } else { + rightDate.value = parsedValueD; + maxDate.value = (maxDate.value || rightDate.value).year(parsedValueD.year()).month(parsedValueD.month()).date(parsedValueD.date()); + if (!props.unlinkPanels && (!minDate.value || minDate.value.isAfter(maxDate.value))) { + leftDate.value = parsedValueD.subtract(1, "month"); + minDate.value = maxDate.value.subtract(1, "month"); + } + } + sortDates(minDate.value, maxDate.value); + handleRangeConfirm(true); + } + }; + const handleDateChange = (_, type) => { + dateUserInput.value[type] = null; + }; + const handleTimeInput = (value, type) => { + timeUserInput.value[type] = value; + const parsedValueD = (0, import_dayjs_min.default)(value, timeFormat.value).locale(lang.value); + if (parsedValueD.isValid()) if (type === "min") { + minTimePickerVisible.value = true; + minDate.value = (minDate.value || leftDate.value).hour(parsedValueD.hour()).minute(parsedValueD.minute()).second(parsedValueD.second()); + leftDate.value = minDate.value; + } else { + maxTimePickerVisible.value = true; + maxDate.value = (maxDate.value || rightDate.value).hour(parsedValueD.hour()).minute(parsedValueD.minute()).second(parsedValueD.second()); + rightDate.value = maxDate.value; + } + }; + const handleTimeChange = (_value, type) => { + timeUserInput.value[type] = null; + if (type === "min") { + leftDate.value = minDate.value; + minTimePickerVisible.value = false; + if (!maxDate.value || maxDate.value.isBefore(minDate.value)) maxDate.value = minDate.value; + } else { + rightDate.value = maxDate.value; + maxTimePickerVisible.value = false; + if (maxDate.value && maxDate.value.isBefore(minDate.value)) minDate.value = maxDate.value; + } + handleRangeConfirm(true); + }; + const handleMinTimePick = (value, visible, first) => { + if (timeUserInput.value.min) return; + if (value) minDate.value = (minDate.value || leftDate.value).hour(value.hour()).minute(value.minute()).second(value.second()); + if (!first) minTimePickerVisible.value = visible; + if (!maxDate.value || maxDate.value.isBefore(minDate.value)) { + maxDate.value = minDate.value; + rightDate.value = value; + (0, vue.nextTick)(() => { + parseValue(props.parsedValue); + }); + } + handleRangeConfirm(true); + }; + const handleMaxTimePick = (value, visible, first) => { + if (timeUserInput.value.max) return; + if (value) maxDate.value = (maxDate.value || rightDate.value).hour(value.hour()).minute(value.minute()).second(value.second()); + if (!first) maxTimePickerVisible.value = visible; + if (maxDate.value && maxDate.value.isBefore(minDate.value)) minDate.value = maxDate.value; + handleRangeConfirm(true); + }; + const onClear = () => { + handleClear(); + emit("clear"); + }; + const handleClear = () => { + let valueOnClear = null; + if (pickerBase?.emptyValues) valueOnClear = pickerBase.emptyValues.valueOnClear.value; + leftDate.value = getDefaultValue((0, vue.unref)(defaultValue), { + lang: (0, vue.unref)(lang), + unit: "month", + unlinkPanels: props.unlinkPanels + })[0]; + rightDate.value = leftDate.value.add(1, "month"); + maxDate.value = void 0; + minDate.value = void 0; + handleRangeConfirm(true); + emit("pick", valueOnClear); + }; + const parseUserInput = (value) => { + return correctlyParseUserInput(value, format.value || "", lang.value, isDefaultFormat); + }; + function sortDates(minDate, maxDate) { + if (props.unlinkPanels && maxDate) { + const minDateYear = minDate?.year() || 0; + const minDateMonth = minDate?.month() || 0; + const maxDateYear = maxDate.year(); + const maxDateMonth = maxDate.month(); + rightDate.value = minDateYear === maxDateYear && minDateMonth === maxDateMonth ? maxDate.add(1, unit$2) : maxDate; + } else { + rightDate.value = leftDate.value.add(1, unit$2); + if (maxDate) rightDate.value = rightDate.value.hour(maxDate.hour()).minute(maxDate.minute()).second(maxDate.second()); + } + } + emit("set-picker-option", ["isValidValue", isValidValue]); + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["handleClear", handleClear]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ppNs).b(), + (0, vue.unref)(drpNs).b(), + (0, vue.unref)(ppNs).is("border", _ctx.border), + (0, vue.unref)(ppNs).is("disabled", (0, vue.unref)(dateRangeDisabled)), + { + "has-sidebar": _ctx.$slots.sidebar || hasShortcuts.value, + "has-time": showTime.value + } + ]) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body-wrapper")) }, [ + (0, vue.renderSlot)(_ctx.$slots, "sidebar", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) }), + hasShortcuts.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(shortcuts.value, (shortcut, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key, + type: "button", + disabled: (0, vue.unref)(dateRangeDisabled), + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("shortcut")), + onClick: ($event) => (0, vue.unref)(handleShortcutClick)(shortcut) + }, (0, vue.toDisplayString)(shortcut.text), 11, _hoisted_1$46); + }), 128))], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body")) }, [ + showTime.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("time-header")) + }, [ + (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("editors-wrap")) }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("time-picker-wrap")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + size: "small", + disabled: (0, vue.unref)(rangeState).selecting || (0, vue.unref)(dateRangeDisabled), + placeholder: (0, vue.unref)(t)("el.datepicker.startDate"), + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("editor")), + "model-value": minVisibleDate.value, + "validate-event": false, + readonly: !_ctx.editable, + onInput: _cache[0] || (_cache[0] = (val) => handleDateInput(val, "min")), + onChange: _cache[1] || (_cache[1] = (val) => handleDateChange(val, "min")) + }, null, 8, [ + "disabled", + "placeholder", + "class", + "model-value", + "readonly" + ])], 2), (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("time-picker-wrap")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("editor")), + disabled: (0, vue.unref)(rangeState).selecting || (0, vue.unref)(dateRangeDisabled), + placeholder: (0, vue.unref)(t)("el.datepicker.startTime"), + "model-value": minVisibleTime.value, + "validate-event": false, + readonly: !_ctx.editable, + onFocus: _cache[2] || (_cache[2] = ($event) => minTimePickerVisible.value = true), + onInput: _cache[3] || (_cache[3] = (val) => handleTimeInput(val, "min")), + onChange: _cache[4] || (_cache[4] = (val) => handleTimeChange(val, "min")) + }, null, 8, [ + "class", + "disabled", + "placeholder", + "model-value", + "readonly" + ]), (0, vue.createVNode)((0, vue.unref)(panel_time_pick_default), { + visible: minTimePickerVisible.value, + format: timeFormat.value, + "datetime-role": "start", + "parsed-value": (0, vue.unref)(minDate) || leftDate.value, + onPick: handleMinTimePick + }, null, 8, [ + "visible", + "format", + "parsed-value" + ])], 2)), [[(0, vue.unref)(ClickOutside), handleMinTimeClose]])], 2), + (0, vue.createElementVNode)("span", null, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })]), + (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)([(0, vue.unref)(drpNs).e("editors-wrap"), "is-right"]) }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("time-picker-wrap")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("editor")), + disabled: (0, vue.unref)(rangeState).selecting || (0, vue.unref)(dateRangeDisabled), + placeholder: (0, vue.unref)(t)("el.datepicker.endDate"), + "model-value": maxVisibleDate.value, + readonly: !(0, vue.unref)(minDate) || !_ctx.editable, + "validate-event": false, + onInput: _cache[5] || (_cache[5] = (val) => handleDateInput(val, "max")), + onChange: _cache[6] || (_cache[6] = (val) => handleDateChange(val, "max")) + }, null, 8, [ + "class", + "disabled", + "placeholder", + "model-value", + "readonly" + ])], 2), (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("time-picker-wrap")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("editor")), + disabled: (0, vue.unref)(rangeState).selecting || (0, vue.unref)(dateRangeDisabled), + placeholder: (0, vue.unref)(t)("el.datepicker.endTime"), + "model-value": maxVisibleTime.value, + readonly: !(0, vue.unref)(minDate) || !_ctx.editable, + "validate-event": false, + onFocus: _cache[7] || (_cache[7] = ($event) => (0, vue.unref)(minDate) && (maxTimePickerVisible.value = true)), + onInput: _cache[8] || (_cache[8] = (val) => handleTimeInput(val, "max")), + onChange: _cache[9] || (_cache[9] = (val) => handleTimeChange(val, "max")) + }, null, 8, [ + "class", + "disabled", + "placeholder", + "model-value", + "readonly" + ]), (0, vue.createVNode)((0, vue.unref)(panel_time_pick_default), { + "datetime-role": "end", + visible: maxTimePickerVisible.value, + format: timeFormat.value, + "parsed-value": (0, vue.unref)(maxDate) || rightDate.value, + onPick: handleMaxTimePick + }, null, 8, [ + "visible", + "format", + "parsed-value" + ])], 2)), [[(0, vue.unref)(ClickOutside), handleMaxTimeClose]])], 2) + ], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("content"), (0, vue.unref)(drpNs).e("content")], "is-left"]) }, [ + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header")) }, [ + (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "d-arrow-left"]), + "aria-label": (0, vue.unref)(t)(`el.datepicker.prevYear`), + disabled: (0, vue.unref)(dateRangeDisabled), + onClick: leftPrevYear + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_2$28), + (0, vue.withDirectives)((0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "arrow-left"]), + "aria-label": (0, vue.unref)(t)(`el.datepicker.prevMonth`), + disabled: (0, vue.unref)(dateRangeDisabled), + onClick: leftPrevMonth + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-month", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_left_default))]), + _: 1 + })])], 10, _hoisted_3$13), [[vue.vShow, (0, vue.unref)(leftCurrentView) === "date"]]), + _ctx.unlinkPanels ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + disabled: !enableYearArrow.value || (0, vue.unref)(dateRangeDisabled), + class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("icon-btn"), (0, vue.unref)(ppNs).is("disabled", !enableYearArrow.value || (0, vue.unref)(dateRangeDisabled))], "d-arrow-right"]), + "aria-label": (0, vue.unref)(t)(`el.datepicker.nextYear`), + onClick: leftNextYear + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_4$10)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.unlinkPanels && (0, vue.unref)(leftCurrentView) === "date" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 1, + type: "button", + disabled: !enableMonthArrow.value || (0, vue.unref)(dateRangeDisabled), + class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("icon-btn"), (0, vue.unref)(ppNs).is("disabled", !enableMonthArrow.value || (0, vue.unref)(dateRangeDisabled))], "arrow-right"]), + "aria-label": (0, vue.unref)(t)(`el.datepicker.nextMonth`), + onClick: leftNextMonth + }, [(0, vue.renderSlot)(_ctx.$slots, "next-month", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })])], 10, _hoisted_5$7)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", null, [(0, vue.createElementVNode)("span", { + role: "button", + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header-label")), + "aria-live": "polite", + tabindex: _ctx.disabled ? void 0 : 0, + "aria-disabled": _ctx.disabled, + onKeydown: _cache[10] || (_cache[10] = (0, vue.withKeys)(($event) => (0, vue.unref)(showLeftPicker)("year"), ["enter"])), + onClick: _cache[11] || (_cache[11] = ($event) => (0, vue.unref)(showLeftPicker)("year")) + }, (0, vue.toDisplayString)((0, vue.unref)(leftYearLabel)), 43, _hoisted_6$2), (0, vue.withDirectives)((0, vue.createElementVNode)("span", { + role: "button", + "aria-live": "polite", + tabindex: _ctx.disabled ? void 0 : 0, + "aria-disabled": _ctx.disabled, + class: (0, vue.normalizeClass)([(0, vue.unref)(drpNs).e("header-label"), { active: (0, vue.unref)(leftCurrentView) === "month" }]), + onKeydown: _cache[12] || (_cache[12] = (0, vue.withKeys)(($event) => (0, vue.unref)(showLeftPicker)("month"), ["enter"])), + onClick: _cache[13] || (_cache[13] = ($event) => (0, vue.unref)(showLeftPicker)("month")) + }, (0, vue.toDisplayString)((0, vue.unref)(t)(`el.datepicker.month${leftDate.value.month() + 1}`)), 43, _hoisted_7$1), [[vue.vShow, (0, vue.unref)(leftCurrentView) === "date"]])]) + ], 2), + (0, vue.unref)(leftCurrentView) === "date" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_date_table_default, { + key: 0, + ref_key: "leftCurrentViewRef", + ref: leftCurrentViewRef, + "selection-mode": "range", + date: leftDate.value, + "min-date": (0, vue.unref)(minDate), + "max-date": (0, vue.unref)(maxDate), + "range-state": (0, vue.unref)(rangeState), + "disabled-date": (0, vue.unref)(disabledDate), + "cell-class-name": (0, vue.unref)(cellClassName), + "show-week-number": _ctx.showWeekNumber, + disabled: (0, vue.unref)(dateRangeDisabled), + onChangerange: (0, vue.unref)(handleChangeRange), + onPick: handleRangePick, + onSelect: (0, vue.unref)(onSelect) + }, null, 8, [ + "date", + "min-date", + "max-date", + "range-state", + "disabled-date", + "cell-class-name", + "show-week-number", + "disabled", + "onChangerange", + "onSelect" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(leftCurrentView) === "year" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_year_table_default, { + key: 1, + ref_key: "leftCurrentViewRef", + ref: leftCurrentViewRef, + "selection-mode": "year", + date: leftDate.value, + "disabled-date": (0, vue.unref)(disabledDate), + "parsed-value": _ctx.parsedValue, + disabled: (0, vue.unref)(dateRangeDisabled), + onPick: (0, vue.unref)(handleLeftYearPick) + }, null, 8, [ + "date", + "disabled-date", + "parsed-value", + "disabled", + "onPick" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(leftCurrentView) === "month" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_month_table_default, { + key: 2, + ref_key: "leftCurrentViewRef", + ref: leftCurrentViewRef, + "selection-mode": "month", + date: leftDate.value, + "parsed-value": _ctx.parsedValue, + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(dateRangeDisabled), + onPick: (0, vue.unref)(handleLeftMonthPick) + }, null, 8, [ + "date", + "parsed-value", + "disabled-date", + "disabled", + "onPick" + ])) : (0, vue.createCommentVNode)("v-if", true) + ], 2), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("content"), (0, vue.unref)(drpNs).e("content")], "is-right"]) }, [ + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header")) }, [ + _ctx.unlinkPanels ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + disabled: !enableYearArrow.value || (0, vue.unref)(dateRangeDisabled), + class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("icon-btn"), (0, vue.unref)(ppNs).is("disabled", !enableYearArrow.value || (0, vue.unref)(dateRangeDisabled))], "d-arrow-left"]), + "aria-label": (0, vue.unref)(t)(`el.datepicker.prevYear`), + onClick: rightPrevYear + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_8$1)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.unlinkPanels && (0, vue.unref)(rightCurrentView) === "date" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 1, + type: "button", + disabled: !enableMonthArrow.value || (0, vue.unref)(dateRangeDisabled), + class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("icon-btn"), (0, vue.unref)(ppNs).is("disabled", !enableMonthArrow.value || (0, vue.unref)(dateRangeDisabled))], "arrow-left"]), + "aria-label": (0, vue.unref)(t)(`el.datepicker.prevMonth`), + onClick: rightPrevMonth + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-month", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_left_default))]), + _: 1 + })])], 10, _hoisted_9$1)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("button", { + type: "button", + "aria-label": (0, vue.unref)(t)(`el.datepicker.nextYear`), + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "d-arrow-right"]), + disabled: (0, vue.unref)(dateRangeDisabled), + onClick: rightNextYear + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_10$1), + (0, vue.withDirectives)((0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "arrow-right"]), + disabled: (0, vue.unref)(dateRangeDisabled), + "aria-label": (0, vue.unref)(t)(`el.datepicker.nextMonth`), + onClick: rightNextMonth + }, [(0, vue.renderSlot)(_ctx.$slots, "next-month", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })])], 10, _hoisted_11$1), [[vue.vShow, (0, vue.unref)(rightCurrentView) === "date"]]), + (0, vue.createElementVNode)("div", null, [(0, vue.createElementVNode)("span", { + role: "button", + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header-label")), + "aria-live": "polite", + tabindex: _ctx.disabled ? void 0 : 0, + "aria-disabled": _ctx.disabled, + onKeydown: _cache[14] || (_cache[14] = (0, vue.withKeys)(($event) => (0, vue.unref)(showRightPicker)("year"), ["enter"])), + onClick: _cache[15] || (_cache[15] = ($event) => (0, vue.unref)(showRightPicker)("year")) + }, (0, vue.toDisplayString)((0, vue.unref)(rightYearLabel)), 43, _hoisted_12$1), (0, vue.withDirectives)((0, vue.createElementVNode)("span", { + role: "button", + "aria-live": "polite", + tabindex: _ctx.disabled ? void 0 : 0, + "aria-disabled": _ctx.disabled, + class: (0, vue.normalizeClass)([(0, vue.unref)(drpNs).e("header-label"), { active: (0, vue.unref)(rightCurrentView) === "month" }]), + onKeydown: _cache[16] || (_cache[16] = (0, vue.withKeys)(($event) => (0, vue.unref)(showRightPicker)("month"), ["enter"])), + onClick: _cache[17] || (_cache[17] = ($event) => (0, vue.unref)(showRightPicker)("month")) + }, (0, vue.toDisplayString)((0, vue.unref)(t)(`el.datepicker.month${rightDate.value.month() + 1}`)), 43, _hoisted_13$1), [[vue.vShow, (0, vue.unref)(rightCurrentView) === "date"]])]) + ], 2), + (0, vue.unref)(rightCurrentView) === "date" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_date_table_default, { + key: 0, + ref_key: "rightCurrentViewRef", + ref: rightCurrentViewRef, + "selection-mode": "range", + date: rightDate.value, + "min-date": (0, vue.unref)(minDate), + "max-date": (0, vue.unref)(maxDate), + "range-state": (0, vue.unref)(rangeState), + "disabled-date": (0, vue.unref)(disabledDate), + "cell-class-name": (0, vue.unref)(cellClassName), + "show-week-number": _ctx.showWeekNumber, + disabled: (0, vue.unref)(dateRangeDisabled), + onChangerange: (0, vue.unref)(handleChangeRange), + onPick: handleRangePick, + onSelect: (0, vue.unref)(onSelect) + }, null, 8, [ + "date", + "min-date", + "max-date", + "range-state", + "disabled-date", + "cell-class-name", + "show-week-number", + "disabled", + "onChangerange", + "onSelect" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(rightCurrentView) === "year" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_year_table_default, { + key: 1, + ref_key: "rightCurrentViewRef", + ref: rightCurrentViewRef, + "selection-mode": "year", + date: rightDate.value, + "disabled-date": (0, vue.unref)(disabledDate), + "parsed-value": _ctx.parsedValue, + disabled: (0, vue.unref)(dateRangeDisabled), + onPick: (0, vue.unref)(handleRightYearPick) + }, null, 8, [ + "date", + "disabled-date", + "parsed-value", + "disabled", + "onPick" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(rightCurrentView) === "month" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_month_table_default, { + key: 2, + ref_key: "rightCurrentViewRef", + ref: rightCurrentViewRef, + "selection-mode": "month", + date: rightDate.value, + "parsed-value": _ctx.parsedValue, + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(dateRangeDisabled), + onPick: (0, vue.unref)(handleRightMonthPick) + }, null, 8, [ + "date", + "parsed-value", + "disabled-date", + "disabled", + "onPick" + ])) : (0, vue.createCommentVNode)("v-if", true) + ], 2) + ], 2) + ], 2), _ctx.showFooter && showTime.value && (_ctx.showConfirm || (0, vue.unref)(clearable)) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("footer")) + }, [(0, vue.unref)(clearable) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElButton), { + key: 0, + text: "", + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("link-btn")), + onClick: onClear + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.clear")), 1)]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), _ctx.showConfirm ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElButton), { + key: 1, + plain: "", + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("link-btn")), + disabled: btnDisabled.value, + onClick: _cache[18] || (_cache[18] = ($event) => (0, vue.unref)(handleRangeConfirm)(false)) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.confirm")), 1)]), + _: 1 + }, 8, ["class", "disabled"])) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-date-range.vue + var panel_date_range_default = panel_date_range_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/panel-month-range.ts + const panelMonthRangeProps = buildProps({ ...panelRangeSharedProps }); + const panelMonthRangeEmits = [ + "pick", + "set-picker-option", + "calendar-change" + ]; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/composables/use-month-range-header.ts + const useMonthRangeHeader = ({ unlinkPanels, leftDate, rightDate }) => { + const { t } = useLocale(); + const leftPrevYear = () => { + leftDate.value = leftDate.value.subtract(1, "year"); + if (!unlinkPanels.value) rightDate.value = rightDate.value.subtract(1, "year"); + }; + const rightNextYear = () => { + if (!unlinkPanels.value) leftDate.value = leftDate.value.add(1, "year"); + rightDate.value = rightDate.value.add(1, "year"); + }; + const leftNextYear = () => { + leftDate.value = leftDate.value.add(1, "year"); + }; + const rightPrevYear = () => { + rightDate.value = rightDate.value.subtract(1, "year"); + }; + return { + leftPrevYear, + rightNextYear, + leftNextYear, + rightPrevYear, + leftLabel: (0, vue.computed)(() => { + return `${leftDate.value.year()} ${t("el.datepicker.year")}`; + }), + rightLabel: (0, vue.computed)(() => { + return `${rightDate.value.year()} ${t("el.datepicker.year")}`; + }), + leftYear: (0, vue.computed)(() => { + return leftDate.value.year(); + }), + rightYear: (0, vue.computed)(() => { + return rightDate.value.year() === leftDate.value.year() ? leftDate.value.year() + 1 : rightDate.value.year(); + }) + }; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-month-range.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$45 = ["disabled", "onClick"]; + const _hoisted_2$27 = ["disabled"]; + const _hoisted_3$12 = ["disabled"]; + const _hoisted_4$9 = ["disabled"]; + const _hoisted_5$6 = ["disabled"]; + const unit$1 = "year"; + var panel_month_range_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "DatePickerMonthRange", + __name: "panel-month-range", + props: panelMonthRangeProps, + emits: panelMonthRangeEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const { lang } = useLocale(); + const pickerBase = (0, vue.inject)(PICKER_BASE_INJECTION_KEY); + const isDefaultFormat = (0, vue.inject)(ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY, void 0); + const { shortcuts, disabledDate, cellClassName } = pickerBase.props; + const format = (0, vue.toRef)(pickerBase.props, "format"); + const defaultValue = (0, vue.toRef)(pickerBase.props, "defaultValue"); + const leftDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value)); + const rightDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value).add(1, unit$1)); + const { minDate, maxDate, rangeState, ppNs, drpNs, handleChangeRange, handleRangeConfirm, handleShortcutClick, onSelect, parseValue } = useRangePicker(props, { + defaultValue, + leftDate, + rightDate, + unit: unit$1, + sortDates + }); + const hasShortcuts = (0, vue.computed)(() => !!shortcuts.length); + const { leftPrevYear, rightNextYear, leftNextYear, rightPrevYear, leftLabel, rightLabel, leftYear, rightYear } = useMonthRangeHeader({ + unlinkPanels: (0, vue.toRef)(props, "unlinkPanels"), + leftDate, + rightDate + }); + const enableYearArrow = (0, vue.computed)(() => { + return props.unlinkPanels && rightYear.value > leftYear.value + 1; + }); + const handleRangePick = (val, close = true) => { + const minDate_ = val.minDate; + const maxDate_ = val.maxDate; + if (maxDate.value === maxDate_ && minDate.value === minDate_) return; + emit("calendar-change", [minDate_.toDate(), maxDate_ && maxDate_.toDate()]); + maxDate.value = maxDate_; + minDate.value = minDate_; + if (!close) return; + handleRangeConfirm(); + }; + const handleClear = () => { + let valueOnClear = null; + if (pickerBase?.emptyValues) valueOnClear = pickerBase.emptyValues.valueOnClear.value; + leftDate.value = getDefaultValue((0, vue.unref)(defaultValue), { + lang: (0, vue.unref)(lang), + unit: "year", + unlinkPanels: props.unlinkPanels + })[0]; + rightDate.value = leftDate.value.add(1, "year"); + emit("pick", valueOnClear); + }; + const parseUserInput = (value) => { + return correctlyParseUserInput(value, format.value, lang.value, isDefaultFormat); + }; + function sortDates(minDate, maxDate) { + if (props.unlinkPanels && maxDate) rightDate.value = (minDate?.year() || 0) === maxDate.year() ? maxDate.add(1, unit$1) : maxDate; + else rightDate.value = leftDate.value.add(1, unit$1); + } + const monthRangeDisabled = useFormDisabled(); + (0, vue.watch)(() => props.visible, (visible) => { + if (!visible && rangeState.value.selecting) { + parseValue(props.parsedValue); + onSelect(false); + } + }); + emit("set-picker-option", ["isValidValue", isValidRange]); + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["handleClear", handleClear]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ppNs).b(), + (0, vue.unref)(drpNs).b(), + (0, vue.unref)(ppNs).is("border", _ctx.border), + (0, vue.unref)(ppNs).is("disabled", (0, vue.unref)(monthRangeDisabled)), + { "has-sidebar": Boolean(_ctx.$slots.sidebar) || hasShortcuts.value } + ]) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body-wrapper")) }, [ + (0, vue.renderSlot)(_ctx.$slots, "sidebar", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) }), + hasShortcuts.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(shortcuts), (shortcut, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key, + type: "button", + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("shortcut")), + disabled: (0, vue.unref)(monthRangeDisabled), + onClick: ($event) => (0, vue.unref)(handleShortcutClick)(shortcut) + }, (0, vue.toDisplayString)(shortcut.text), 11, _hoisted_1$45); + }), 128))], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("content"), (0, vue.unref)(drpNs).e("content")], "is-left"]) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header")) }, [ + (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "d-arrow-left"]), + disabled: (0, vue.unref)(monthRangeDisabled), + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(leftPrevYear) && (0, vue.unref)(leftPrevYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_2$27), + _ctx.unlinkPanels ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + disabled: !enableYearArrow.value || (0, vue.unref)(monthRangeDisabled), + class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("icon-btn"), (0, vue.unref)(ppNs).is("disabled", !enableYearArrow.value || (0, vue.unref)(monthRangeDisabled))], "d-arrow-right"]), + onClick: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(leftNextYear) && (0, vue.unref)(leftNextYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_3$12)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", null, (0, vue.toDisplayString)((0, vue.unref)(leftLabel)), 1) + ], 2), (0, vue.createVNode)(basic_month_table_default, { + "selection-mode": "range", + date: leftDate.value, + "min-date": (0, vue.unref)(minDate), + "max-date": (0, vue.unref)(maxDate), + "range-state": (0, vue.unref)(rangeState), + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(monthRangeDisabled), + "cell-class-name": (0, vue.unref)(cellClassName), + onChangerange: (0, vue.unref)(handleChangeRange), + onPick: handleRangePick, + onSelect: (0, vue.unref)(onSelect) + }, null, 8, [ + "date", + "min-date", + "max-date", + "range-state", + "disabled-date", + "disabled", + "cell-class-name", + "onChangerange", + "onSelect" + ])], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("content"), (0, vue.unref)(drpNs).e("content")], "is-right"]) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header")) }, [ + _ctx.unlinkPanels ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + disabled: !enableYearArrow.value || (0, vue.unref)(monthRangeDisabled), + class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("icon-btn"), (0, vue.unref)(ppNs).is("disabled", !enableYearArrow.value || (0, vue.unref)(monthRangeDisabled))], "d-arrow-left"]), + onClick: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(rightPrevYear) && (0, vue.unref)(rightPrevYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_4$9)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "d-arrow-right"]), + disabled: (0, vue.unref)(monthRangeDisabled), + onClick: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(rightNextYear) && (0, vue.unref)(rightNextYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_5$6), + (0, vue.createElementVNode)("div", null, (0, vue.toDisplayString)((0, vue.unref)(rightLabel)), 1) + ], 2), (0, vue.createVNode)(basic_month_table_default, { + "selection-mode": "range", + date: rightDate.value, + "min-date": (0, vue.unref)(minDate), + "max-date": (0, vue.unref)(maxDate), + "range-state": (0, vue.unref)(rangeState), + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(monthRangeDisabled), + "cell-class-name": (0, vue.unref)(cellClassName), + onChangerange: (0, vue.unref)(handleChangeRange), + onPick: handleRangePick, + onSelect: (0, vue.unref)(onSelect) + }, null, 8, [ + "date", + "min-date", + "max-date", + "range-state", + "disabled-date", + "disabled", + "cell-class-name", + "onChangerange", + "onSelect" + ])], 2)], 2) + ], 2)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-month-range.vue + var panel_month_range_default = panel_month_range_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/panel-year-range.ts + const panelYearRangeProps = buildProps({ ...panelRangeSharedProps }); + const panelYearRangeEmits = [ + "pick", + "set-picker-option", + "calendar-change" + ]; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/composables/use-year-range-header.ts + const useYearRangeHeader = ({ unlinkPanels, leftDate, rightDate }) => { + const leftPrevYear = () => { + leftDate.value = leftDate.value.subtract(10, "year"); + if (!unlinkPanels.value) rightDate.value = rightDate.value.subtract(10, "year"); + }; + const rightNextYear = () => { + if (!unlinkPanels.value) leftDate.value = leftDate.value.add(10, "year"); + rightDate.value = rightDate.value.add(10, "year"); + }; + const leftNextYear = () => { + leftDate.value = leftDate.value.add(10, "year"); + }; + const rightPrevYear = () => { + rightDate.value = rightDate.value.subtract(10, "year"); + }; + return { + leftPrevYear, + rightNextYear, + leftNextYear, + rightPrevYear, + leftLabel: (0, vue.computed)(() => { + const leftStartDate = Math.floor(leftDate.value.year() / 10) * 10; + return `${leftStartDate}-${leftStartDate + 9}`; + }), + rightLabel: (0, vue.computed)(() => { + const rightStartDate = Math.floor(rightDate.value.year() / 10) * 10; + return `${rightStartDate}-${rightStartDate + 9}`; + }), + leftYear: (0, vue.computed)(() => { + return Math.floor(leftDate.value.year() / 10) * 10 + 9; + }), + rightYear: (0, vue.computed)(() => { + return Math.floor(rightDate.value.year() / 10) * 10; + }) + }; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-year-range.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$44 = ["disabled", "onClick"]; + const _hoisted_2$26 = ["disabled"]; + const _hoisted_3$11 = ["disabled"]; + const _hoisted_4$8 = ["disabled"]; + const _hoisted_5$5 = ["disabled"]; + const step = 10; + const unit = "year"; + var panel_year_range_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "DatePickerYearRange", + __name: "panel-year-range", + props: panelYearRangeProps, + emits: panelYearRangeEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const { lang } = useLocale(); + const leftDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value)); + const rightDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value).add(step, unit)); + const isDefaultFormat = (0, vue.inject)(ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY, void 0); + const pickerBase = (0, vue.inject)(PICKER_BASE_INJECTION_KEY); + const { shortcuts, disabledDate, cellClassName } = pickerBase.props; + const format = (0, vue.toRef)(pickerBase.props, "format"); + const defaultValue = (0, vue.toRef)(pickerBase.props, "defaultValue"); + const { minDate, maxDate, rangeState, ppNs, drpNs, handleChangeRange, handleRangeConfirm, handleShortcutClick, onSelect, parseValue } = useRangePicker(props, { + defaultValue, + leftDate, + rightDate, + step, + unit, + sortDates + }); + const { leftPrevYear, rightNextYear, leftNextYear, rightPrevYear, leftLabel, rightLabel, leftYear, rightYear } = useYearRangeHeader({ + unlinkPanels: (0, vue.toRef)(props, "unlinkPanels"), + leftDate, + rightDate + }); + const yearRangeDisabled = useFormDisabled(); + const hasShortcuts = (0, vue.computed)(() => !!shortcuts.length); + const panelKls = (0, vue.computed)(() => [ + ppNs.b(), + drpNs.b(), + ppNs.is("border", props.border), + ppNs.is("disabled", yearRangeDisabled.value), + { "has-sidebar": Boolean((0, vue.useSlots)().sidebar) || hasShortcuts.value } + ]); + const leftPanelKls = (0, vue.computed)(() => { + return { + content: [ + ppNs.e("content"), + drpNs.e("content"), + "is-left" + ], + arrowLeftBtn: [ppNs.e("icon-btn"), "d-arrow-left"], + arrowRightBtn: [ + ppNs.e("icon-btn"), + ppNs.is("disabled", !enableYearArrow.value || yearRangeDisabled.value), + "d-arrow-right" + ] + }; + }); + const rightPanelKls = (0, vue.computed)(() => { + return { + content: [ + ppNs.e("content"), + drpNs.e("content"), + "is-right" + ], + arrowLeftBtn: [ + ppNs.e("icon-btn"), + ppNs.is("disabled", !enableYearArrow.value || yearRangeDisabled.value), + "d-arrow-left" + ], + arrowRightBtn: [ppNs.e("icon-btn"), "d-arrow-right"] + }; + }); + const enableYearArrow = (0, vue.computed)(() => { + return props.unlinkPanels && rightYear.value > leftYear.value + 1; + }); + const handleRangePick = (val, close = true) => { + const minDate_ = val.minDate; + const maxDate_ = val.maxDate; + if (maxDate.value === maxDate_ && minDate.value === minDate_) return; + emit("calendar-change", [minDate_.toDate(), maxDate_ && maxDate_.toDate()]); + maxDate.value = maxDate_; + minDate.value = minDate_; + if (!close) return; + handleRangeConfirm(); + }; + const parseUserInput = (value) => { + return correctlyParseUserInput(value, format.value, lang.value, isDefaultFormat); + }; + const isValidValue = (date) => { + return isValidRange(date) && (disabledDate ? !disabledDate(date[0].toDate()) && !disabledDate(date[1].toDate()) : true); + }; + const handleClear = () => { + let valueOnClear = null; + if (pickerBase?.emptyValues) valueOnClear = pickerBase.emptyValues.valueOnClear.value; + const defaultArr = getDefaultValue((0, vue.unref)(defaultValue), { + lang: (0, vue.unref)(lang), + step, + unit, + unlinkPanels: props.unlinkPanels + }); + leftDate.value = defaultArr[0]; + rightDate.value = defaultArr[1]; + emit("pick", valueOnClear); + }; + function sortDates(minDate, maxDate) { + if (props.unlinkPanels && maxDate) { + const minDateYear = minDate?.year() || 0; + const maxDateYear = maxDate.year(); + rightDate.value = minDateYear + step > maxDateYear ? maxDate.add(step, unit) : maxDate; + } else rightDate.value = leftDate.value.add(step, unit); + } + (0, vue.watch)(() => props.visible, (visible) => { + if (!visible && rangeState.value.selecting) { + parseValue(props.parsedValue); + onSelect(false); + } + }); + emit("set-picker-option", ["isValidValue", isValidValue]); + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["handleClear", handleClear]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)(panelKls.value) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body-wrapper")) }, [ + (0, vue.renderSlot)(_ctx.$slots, "sidebar", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) }), + hasShortcuts.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(shortcuts), (shortcut, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key, + type: "button", + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("shortcut")), + disabled: (0, vue.unref)(yearRangeDisabled), + onClick: ($event) => (0, vue.unref)(handleShortcutClick)(shortcut) + }, (0, vue.toDisplayString)(shortcut.text), 11, _hoisted_1$44); + }), 128))], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(leftPanelKls.value.content) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header")) }, [ + (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)(leftPanelKls.value.arrowLeftBtn), + disabled: (0, vue.unref)(yearRangeDisabled), + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(leftPrevYear) && (0, vue.unref)(leftPrevYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_2$26), + _ctx.unlinkPanels ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + disabled: !enableYearArrow.value || (0, vue.unref)(yearRangeDisabled), + class: (0, vue.normalizeClass)(leftPanelKls.value.arrowRightBtn), + onClick: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(leftNextYear) && (0, vue.unref)(leftNextYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_3$11)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", null, (0, vue.toDisplayString)((0, vue.unref)(leftLabel)), 1) + ], 2), (0, vue.createVNode)(basic_year_table_default, { + "selection-mode": "range", + date: leftDate.value, + "min-date": (0, vue.unref)(minDate), + "max-date": (0, vue.unref)(maxDate), + "range-state": (0, vue.unref)(rangeState), + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(yearRangeDisabled), + "cell-class-name": (0, vue.unref)(cellClassName), + onChangerange: (0, vue.unref)(handleChangeRange), + onPick: handleRangePick, + onSelect: (0, vue.unref)(onSelect) + }, null, 8, [ + "date", + "min-date", + "max-date", + "range-state", + "disabled-date", + "disabled", + "cell-class-name", + "onChangerange", + "onSelect" + ])], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(rightPanelKls.value.content) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header")) }, [ + _ctx.unlinkPanels ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + disabled: !enableYearArrow.value || (0, vue.unref)(yearRangeDisabled), + class: (0, vue.normalizeClass)(rightPanelKls.value.arrowLeftBtn), + onClick: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(rightPrevYear) && (0, vue.unref)(rightPrevYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_4$8)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)(rightPanelKls.value.arrowRightBtn), + disabled: (0, vue.unref)(yearRangeDisabled), + onClick: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(rightNextYear) && (0, vue.unref)(rightNextYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_5$5), + (0, vue.createElementVNode)("div", null, (0, vue.toDisplayString)((0, vue.unref)(rightLabel)), 1) + ], 2), (0, vue.createVNode)(basic_year_table_default, { + "selection-mode": "range", + date: rightDate.value, + "min-date": (0, vue.unref)(minDate), + "max-date": (0, vue.unref)(maxDate), + "range-state": (0, vue.unref)(rangeState), + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(yearRangeDisabled), + "cell-class-name": (0, vue.unref)(cellClassName), + onChangerange: (0, vue.unref)(handleChangeRange), + onPick: handleRangePick, + onSelect: (0, vue.unref)(onSelect) + }, null, 8, [ + "date", + "min-date", + "max-date", + "range-state", + "disabled-date", + "disabled", + "cell-class-name", + "onChangerange", + "onSelect" + ])], 2)], 2) + ], 2)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-year-range.vue + var panel_year_range_default = panel_year_range_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/panel-utils.ts + const getPanel = function(type) { + switch (type) { + case "daterange": + case "datetimerange": return panel_date_range_default; + case "monthrange": return panel_month_range_default; + case "yearrange": return panel_year_range_default; + default: return panel_date_pick_default; + } + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-panel.tsx + function _isSlot$7(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + import_dayjs_min.default.extend(import_localeData.default); + import_dayjs_min.default.extend(import_advancedFormat.default); + import_dayjs_min.default.extend(import_customParseFormat.default); + import_dayjs_min.default.extend(import_weekOfYear.default); + import_dayjs_min.default.extend(import_weekYear.default); + import_dayjs_min.default.extend(import_dayOfYear.default); + import_dayjs_min.default.extend(import_isSameOrAfter.default); + import_dayjs_min.default.extend(import_isSameOrBefore.default); + var date_picker_panel_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDatePickerPanel", + install: null, + inheritAttrs: false, + props: datePickerPanelProps, + emits: [ + UPDATE_MODEL_EVENT, + "calendar-change", + "panel-change", + "visible-change", + "clear" + ], + setup(props, { slots, emit, attrs }) { + const ns = useNamespace("picker-panel"); + if (isUndefined((0, vue.inject)(PICKER_BASE_INJECTION_KEY, void 0))) (0, vue.provide)(PICKER_BASE_INJECTION_KEY, { props: (0, vue.reactive)({ ...(0, vue.toRefs)(props) }) }); + (0, vue.provide)(ROOT_PICKER_INJECTION_KEY, { + slots, + pickerNs: ns + }); + const { parsedValue, onCalendarChange, onPanelChange, onSetPickerOption, onPick } = (0, vue.inject)(ROOT_COMMON_PICKER_INJECTION_KEY, () => useCommonPicker(props, emit), true); + return () => { + return (0, vue.createVNode)(getPanel(props.type), (0, vue.mergeProps)(omit(attrs, "onPick"), props, { + "parsedValue": parsedValue.value, + "onSet-picker-option": onSetPickerOption, + "onCalendar-change": onCalendarChange, + "onPanel-change": onPanelChange, + "onClear": () => emit("clear"), + "onPick": onPick + }), _isSlot$7(slots) ? slots : { default: () => [slots] }); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/index.ts + const ElDatePickerPanel = withInstall(date_picker_panel_default); + +//#endregion +//#region ../../packages/components/date-picker/src/props.ts + const datePickerProps = buildProps({ + ...timePickerDefaultProps, + type: { + type: definePropType(String), + default: "date" + } + }); + +//#endregion +//#region ../../packages/components/date-picker/src/date-picker.tsx + function _isSlot$6(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + var date_picker_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDatePicker", + install: null, + props: datePickerProps, + emits: [UPDATE_MODEL_EVENT], + setup(props, { expose, emit, slots }) { + (0, vue.provide)(ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY, (0, vue.computed)(() => { + return !props.format; + })); + (0, vue.provide)(PICKER_POPPER_OPTIONS_INJECTION_KEY, (0, vue.reactive)((0, vue.toRef)(props, "popperOptions"))); + const commonPicker = (0, vue.ref)(); + expose({ + focus: () => { + commonPicker.value?.focus(); + }, + blur: () => { + commonPicker.value?.blur(); + }, + handleOpen: () => { + commonPicker.value?.handleOpen(); + }, + handleClose: () => { + commonPicker.value?.handleClose(); + } + }); + const onModelValueUpdated = (val) => { + emit(UPDATE_MODEL_EVENT, val); + }; + return () => { + const format = props.format ?? (DEFAULT_FORMATS_DATEPICKER[props.type] || DEFAULT_FORMATS_DATE); + return (0, vue.createVNode)(picker_default, (0, vue.mergeProps)(props, { + "format": format, + "type": props.type, + "ref": commonPicker, + "onUpdate:modelValue": onModelValueUpdated + }), { + default: (scopedProps) => (0, vue.createVNode)(ElDatePickerPanel, (0, vue.mergeProps)({ + "disabled": props.disabled, + "editable": props.editable, + "border": false + }, scopedProps), _isSlot$6(slots) ? slots : { default: () => [slots] }), + "range-separator": slots["range-separator"] + }); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker/index.ts + const ElDatePicker = withInstall(date_picker_default); + +//#endregion +//#region ../../packages/components/descriptions/src/description.ts +/** + * @deprecated Removed after 3.0.0, Use `DescriptionProps` instead. + */ + const descriptionProps = buildProps({ + border: Boolean, + column: { + type: Number, + default: 3 + }, + direction: { + type: String, + values: ["horizontal", "vertical"], + default: "horizontal" + }, + size: useSizeProp, + title: { + type: String, + default: "" + }, + extra: { + type: String, + default: "" + }, + labelWidth: { type: [String, Number] } + }); + +//#endregion +//#region ../../packages/components/descriptions/src/descriptions-row.ts +/** + * @deprecated Removed after 3.0.0, Use `DescriptionsRowProps` instead. + */ + const descriptionsRowProps = buildProps({ row: { + type: definePropType(Array), + default: () => [] + } }); + +//#endregion +//#region ../../packages/components/descriptions/src/token.ts + const descriptionsKey = Symbol("elDescriptions"); + +//#endregion +//#region ../../packages/components/descriptions/src/descriptions-cell.ts + var descriptions_cell_default = (0, vue.defineComponent)({ + name: "ElDescriptionsCell", + props: { + cell: { type: Object }, + tag: { + type: String, + default: "td" + }, + type: { type: String } + }, + setup() { + return { descriptions: (0, vue.inject)(descriptionsKey, {}) }; + }, + render() { + const item = getNormalizedProps(this.cell); + const directives = (this.cell?.dirs || []).map((dire) => { + const { dir, arg, modifiers, value } = dire; + return [ + dir, + value, + arg, + modifiers + ]; + }); + const { border, direction } = this.descriptions; + const isVertical = direction === "vertical"; + const renderLabel = () => this.cell?.children?.label?.() || item.label; + const renderContent = () => this.cell?.children?.default?.(); + const span = item.span; + const rowspan = item.rowspan; + const align = item.align ? `is-${item.align}` : ""; + const labelAlign = item.labelAlign ? `is-${item.labelAlign}` : align; + const className = item.className; + const labelClassName = item.labelClassName; + const style = { + width: addUnit(this.type === "label" ? item.labelWidth ?? this.descriptions.labelWidth ?? item.width : item.width), + minWidth: addUnit(item.minWidth) + }; + const ns = useNamespace("descriptions"); + switch (this.type) { + case "label": return (0, vue.withDirectives)((0, vue.h)(this.tag, { + style, + class: [ + ns.e("cell"), + ns.e("label"), + ns.is("bordered-label", border), + ns.is("vertical-label", isVertical), + labelAlign, + labelClassName + ], + colSpan: isVertical ? span : 1, + rowspan: isVertical ? 1 : rowspan + }, renderLabel()), directives); + case "content": return (0, vue.withDirectives)((0, vue.h)(this.tag, { + style, + class: [ + ns.e("cell"), + ns.e("content"), + ns.is("bordered-content", border), + ns.is("vertical-content", isVertical), + align, + className + ], + colSpan: isVertical ? span : span * 2 - 1, + rowspan: isVertical ? rowspan * 2 - 1 : rowspan + }, renderContent()), directives); + default: { + const label = renderLabel(); + const labelStyle = {}; + const width = addUnit(item.labelWidth ?? this.descriptions.labelWidth); + if (width) { + labelStyle.width = width; + labelStyle.display = "inline-block"; + } + return (0, vue.withDirectives)((0, vue.h)("td", { + style, + class: [ns.e("cell"), align], + colSpan: span, + rowspan + }, [!isNil(label) ? (0, vue.h)("span", { + style: labelStyle, + class: [ns.e("label"), labelClassName] + }, label) : void 0, (0, vue.h)("span", { class: [ns.e("content"), className] }, renderContent())]), directives); + } + } + } + }); + +//#endregion +//#region ../../packages/components/descriptions/src/descriptions-row.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$43 = { key: 1 }; + var descriptions_row_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDescriptionsRow", + __name: "descriptions-row", + props: descriptionsRowProps, + setup(__props) { + const descriptions = (0, vue.inject)(descriptionsKey, {}); + return (_ctx, _cache) => { + return (0, vue.unref)(descriptions).direction === "vertical" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createElementVNode)("tr", null, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.row, (cell, _index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(descriptions_cell_default), { + key: `tr1-${_index}`, + cell, + tag: "th", + type: "label" + }, null, 8, ["cell"]); + }), 128))]), (0, vue.createElementVNode)("tr", null, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.row, (cell, _index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(descriptions_cell_default), { + key: `tr2-${_index}`, + cell, + tag: "td", + type: "content" + }, null, 8, ["cell"]); + }), 128))])], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("tr", _hoisted_1$43, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.row, (cell, _index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: `tr3-${_index}` }, [(0, vue.unref)(descriptions).border ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createVNode)((0, vue.unref)(descriptions_cell_default), { + cell, + tag: "td", + type: "label" + }, null, 8, ["cell"]), (0, vue.createVNode)((0, vue.unref)(descriptions_cell_default), { + cell, + tag: "td", + type: "content" + }, null, 8, ["cell"])], 64)) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(descriptions_cell_default), { + key: 1, + cell, + tag: "td", + type: "both" + }, null, 8, ["cell"]))], 64); + }), 128))])); + }; + } + }); + +//#endregion +//#region ../../packages/components/descriptions/src/descriptions-row.vue + var descriptions_row_default = descriptions_row_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/descriptions/src/constants.ts + const COMPONENT_NAME$10 = "ElDescriptionsItem"; + +//#endregion +//#region ../../packages/components/descriptions/src/description.vue?vue&type=script&setup=true&lang.ts + var description_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDescriptions", + __name: "description", + props: descriptionProps, + setup(__props) { + const props = __props; + const ns = useNamespace("descriptions"); + const descriptionsSize = useFormSize(); + const slots = (0, vue.useSlots)(); + (0, vue.provide)(descriptionsKey, props); + const descriptionKls = (0, vue.computed)(() => [ns.b(), ns.m(descriptionsSize.value)]); + const filledNode = (node, span, count, isLast = false) => { + if (!node.props) node.props = {}; + if (span > count) node.props.span = count; + if (isLast) node.props.span = span; + return node; + }; + const getRows = () => { + if (!slots.default) return []; + const children = flattedChildren(slots.default()).filter((node) => node?.type?.name === COMPONENT_NAME$10); + const rows = []; + let temp = []; + let count = props.column; + let totalSpan = 0; + const rowspanTemp = []; + children.forEach((node, index) => { + const span = node.props?.span || 1; + const rowspan = node.props?.rowspan || 1; + const rowNo = rows.length; + rowspanTemp[rowNo] ||= 0; + if (rowspan > 1) for (let i = 1; i < rowspan; i++) { + rowspanTemp[rowNo + i] ||= 0; + rowspanTemp[rowNo + i]++; + totalSpan++; + } + if (rowspanTemp[rowNo] > 0) { + count -= rowspanTemp[rowNo]; + rowspanTemp[rowNo] = 0; + } + if (index < children.length - 1) totalSpan += span > count ? count : span; + if (index === children.length - 1) { + const lastSpan = props.column - totalSpan % props.column; + temp.push(filledNode(node, lastSpan, count, true)); + rows.push(temp); + return; + } + if (span < count) { + count -= span; + temp.push(node); + } else { + temp.push(filledNode(node, span, count)); + rows.push(temp); + count = props.column; + temp = []; + } + }); + return rows; + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)(descriptionKls.value) }, [__props.title || __props.extra || _ctx.$slots.title || _ctx.$slots.extra ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("header")) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) }, [(0, vue.renderSlot)(_ctx.$slots, "title", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("extra")) }, [(0, vue.renderSlot)(_ctx.$slots, "extra", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.extra), 1)])], 2)], 2)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("body")) }, [(0, vue.createElementVNode)("table", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("table"), (0, vue.unref)(ns).is("bordered", __props.border)]) }, [(0, vue.createElementVNode)("tbody", null, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(getRows(), (row, _index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(descriptions_row_default, { + key: _index, + row + }, null, 8, ["row"]); + }), 128))])], 2)], 2)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/descriptions/src/description.vue + var description_default = description_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/descriptions/src/description-item.ts + const descriptionItemProps = buildProps({ + 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: columnAlignment, + default: "left" + }, + labelAlign: { + type: String, + values: columnAlignment + }, + className: { + type: String, + default: "" + }, + labelClassName: { + type: String, + default: "" + } + }); + const DescriptionItem = (0, vue.defineComponent)({ + name: COMPONENT_NAME$10, + props: descriptionItemProps + }); + +//#endregion +//#region ../../packages/components/descriptions/index.ts + const ElDescriptions = withInstall(description_default, { DescriptionsItem: DescriptionItem }); + const ElDescriptionsItem = withNoopInstall(DescriptionItem); + +//#endregion +//#region ../../packages/components/dialog/src/dialog-content.ts +/** + * @deprecated Removed after 3.0.0, Use `DialogContentProps` instead. + */ + const dialogContentProps = buildProps({ + center: Boolean, + alignCenter: { + type: Boolean, + default: void 0 + }, + closeIcon: { type: iconPropType }, + draggable: { + type: Boolean, + default: void 0 + }, + overflow: { + type: Boolean, + default: void 0 + }, + fullscreen: Boolean, + headerClass: String, + bodyClass: String, + footerClass: String, + showClose: { + type: Boolean, + default: true + }, + title: { + type: String, + default: "" + }, + ariaLevel: { + type: String, + default: "2" + } + }); + const dialogContentEmits = { close: () => true }; + const dialogContentPropsDefaults = { + alignCenter: void 0, + draggable: void 0, + overflow: void 0, + showClose: true, + title: "", + ariaLevel: "2" + }; + +//#endregion +//#region ../../packages/components/dialog/src/dialog.ts +/** + * @deprecated Removed after 3.0.0, Use `DialogProps` instead. + */ + const dialogProps = buildProps({ + ...dialogContentProps, + appendToBody: Boolean, + appendTo: { + type: teleportProps.to.type, + default: "body" + }, + beforeClose: { type: definePropType(Function) }, + destroyOnClose: Boolean, + closeOnClickModal: { + type: Boolean, + default: true + }, + closeOnPressEscape: { + type: Boolean, + default: true + }, + lockScroll: { + type: Boolean, + default: true + }, + modal: { + type: Boolean, + default: true + }, + 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: definePropType([String, Object]), + default: void 0 + } + }); + const dialogEmits = { + open: () => true, + opened: () => true, + close: () => true, + closed: () => true, + [UPDATE_MODEL_EVENT]: (value) => isBoolean(value), + openAutoFocus: () => true, + closeAutoFocus: () => true + }; + const dialogContextKey = Symbol("dialogContextKey"); + const dialogPropsDefaults = { + ...dialogContentPropsDefaults, + appendTo: "body", + closeOnClickModal: true, + closeOnPressEscape: true, + lockScroll: true, + modal: true, + openDelay: 0, + closeDelay: 0, + headerAriaLevel: "2", + transition: void 0 + }; + +//#endregion +//#region ../../packages/components/overlay/src/overlay.ts + const overlayProps = buildProps({ + mask: { + type: Boolean, + default: true + }, + customMaskEvent: Boolean, + overlayClass: { type: definePropType([ + String, + Array, + Object + ]) }, + zIndex: { type: definePropType([String, Number]) } + }); + const overlayEmits = { click: (evt) => evt instanceof MouseEvent }; + const BLOCK = "overlay"; + var overlay_default = (0, vue.defineComponent)({ + name: "ElOverlay", + props: overlayProps, + emits: overlayEmits, + setup(props, { slots, emit }) { + const ns = useNamespace(BLOCK); + const onMaskClick = (e) => { + emit("click", e); + }; + const { onClick, onMousedown, onMouseup } = useSameTarget(props.customMaskEvent ? void 0 : onMaskClick); + return () => { + return props.mask ? (0, vue.createVNode)("div", { + class: [ns.b(), props.overlayClass], + style: { zIndex: props.zIndex }, + onClick, + onMousedown, + onMouseup + }, [(0, vue.renderSlot)(slots, "default")], PatchFlags.STYLE | PatchFlags.CLASS | PatchFlags.PROPS, [ + "onClick", + "onMouseup", + "onMousedown" + ]) : (0, vue.h)("div", { + class: props.overlayClass, + style: { + zIndex: props.zIndex, + position: "fixed", + top: "0px", + right: "0px", + bottom: "0px", + left: "0px" + } + }, [(0, vue.renderSlot)(slots, "default")]); + }; + } + }); + +//#endregion +//#region ../../packages/components/overlay/index.ts + const ElOverlay = overlay_default; + +//#endregion +//#region ../../packages/components/dialog/src/constants.ts + const dialogInjectionKey = Symbol("dialogInjectionKey"); + const DEFAULT_DIALOG_TRANSITION = "dialog-fade"; + +//#endregion +//#region ../../packages/components/dialog/src/dialog-content.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$42 = ["aria-level"]; + const _hoisted_2$25 = ["aria-label"]; + const _hoisted_3$10 = ["id"]; + var dialog_content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDialogContent", + __name: "dialog-content", + props: dialogContentProps, + emits: dialogContentEmits, + setup(__props, { expose: __expose }) { + const { t } = useLocale(); + const { Close } = CloseComponents; + const props = __props; + const { dialogRef, headerRef, bodyId, ns, style } = (0, vue.inject)(dialogInjectionKey); + const { focusTrapRef } = (0, vue.inject)(FOCUS_TRAP_INJECTION_KEY); + const composedDialogRef = composeRefs(focusTrapRef, dialogRef); + const draggable = (0, vue.computed)(() => !!props.draggable); + const { resetPosition, updatePosition, isDragging } = useDraggable(dialogRef, headerRef, draggable, (0, vue.computed)(() => !!props.overflow)); + const dialogKls = (0, vue.computed)(() => [ + ns.b(), + ns.is("fullscreen", props.fullscreen), + ns.is("draggable", draggable.value), + ns.is("dragging", isDragging.value), + ns.is("align-center", !!props.alignCenter), + { [ns.m("center")]: props.center } + ]); + __expose({ + resetPosition, + updatePosition + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref: (0, vue.unref)(composedDialogRef), + class: (0, vue.normalizeClass)(dialogKls.value), + style: (0, vue.normalizeStyle)((0, vue.unref)(style)), + tabindex: "-1" + }, [ + (0, vue.createElementVNode)("header", { + ref_key: "headerRef", + ref: headerRef, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("header"), + __props.headerClass, + { "show-close": __props.showClose } + ]) + }, [(0, vue.renderSlot)(_ctx.$slots, "header", {}, () => [(0, vue.createElementVNode)("span", { + role: "heading", + "aria-level": __props.ariaLevel, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) + }, (0, vue.toDisplayString)(__props.title), 11, _hoisted_1$42)]), __props.showClose ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + "aria-label": (0, vue.unref)(t)("el.dialog.close"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("headerbtn")), + type: "button", + onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close")) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close")) }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.closeIcon || (0, vue.unref)(Close))))]), + _: 1 + }, 8, ["class"])], 10, _hoisted_2$25)) : (0, vue.createCommentVNode)("v-if", true)], 2), + (0, vue.createElementVNode)("div", { + id: (0, vue.unref)(bodyId), + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("body"), __props.bodyClass]) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 10, _hoisted_3$10), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("footer", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("footer"), __props.footerClass]) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/dialog/src/dialog-content.vue + var dialog_content_default = dialog_content_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/dialog/src/use-dialog.ts + const COMPONENT_NAME$9 = "ElDialog"; + const useDialog = (props, targetRef) => { + const emit = (0, vue.getCurrentInstance)().emit; + const { nextZIndex } = useZIndex(); + let lastPosition = ""; + const titleId = useId(); + const bodyId = useId(); + const visible = (0, vue.ref)(false); + const closed = (0, vue.ref)(false); + const rendered = (0, vue.ref)(false); + const zIndex = (0, vue.ref)(props.zIndex ?? nextZIndex()); + const closing = (0, vue.ref)(false); + let openTimer = void 0; + let closeTimer = void 0; + const config = useGlobalConfig(); + const namespace = (0, vue.computed)(() => config.value?.namespace ?? defaultNamespace); + const globalConfig = (0, vue.computed)(() => config.value?.dialog); + const style = (0, vue.computed)(() => { + const style = {}; + const varPrefix = `--${namespace.value}-dialog`; + if (!props.fullscreen) { + if (props.top) style[`${varPrefix}-margin-top`] = props.top; + const width = addUnit(props.width); + if (width) style[`${varPrefix}-width`] = width; + } + return style; + }); + const _draggable = (0, vue.computed)(() => (props.draggable ?? globalConfig.value?.draggable ?? false) && !props.fullscreen); + const _alignCenter = (0, vue.computed)(() => props.alignCenter ?? globalConfig.value?.alignCenter ?? false); + const _overflow = (0, vue.computed)(() => props.overflow ?? globalConfig.value?.overflow ?? false); + const penetrable = (0, vue.computed)(() => props.modalPenetrable && !props.modal && !props.fullscreen); + const overlayDialogStyle = (0, vue.computed)(() => { + if (_alignCenter.value) return { display: "flex" }; + return {}; + }); + const transitionConfig = (0, vue.computed)(() => { + const transition = props.transition ?? globalConfig.value?.transition ?? DEFAULT_DIALOG_TRANSITION; + const baseConfig = { + name: transition, + onAfterEnter: afterEnter, + onBeforeLeave: beforeLeave, + onAfterLeave: afterLeave + }; + if (isObject$1(transition)) { + const config = { ...transition }; + const _mergeHook = (userHook, defaultHook) => { + return (el) => { + if (isArray$1(userHook)) userHook.forEach((fn) => { + if (isFunction$1(fn)) fn(el); + }); + else if (isFunction$1(userHook)) userHook(el); + defaultHook(); + }; + }; + config.onAfterEnter = _mergeHook(config.onAfterEnter, afterEnter); + config.onBeforeLeave = _mergeHook(config.onBeforeLeave, beforeLeave); + config.onAfterLeave = _mergeHook(config.onAfterLeave, afterLeave); + if (!config.name) { + config.name = DEFAULT_DIALOG_TRANSITION; + /* @__PURE__ */ debugWarn(COMPONENT_NAME$9, `transition.name is missing when using object syntax, fallback to '${DEFAULT_DIALOG_TRANSITION}'`); + } + return config; + } + return baseConfig; + }); + function afterEnter() { + emit("opened"); + } + function afterLeave() { + emit("closed"); + emit(UPDATE_MODEL_EVENT, false); + if (props.destroyOnClose) rendered.value = false; + closing.value = false; + } + function beforeLeave() { + closing.value = true; + emit("close"); + } + function open() { + closeTimer?.(); + openTimer?.(); + if (props.openDelay && props.openDelay > 0) ({stop: openTimer} = useTimeoutFn(() => doOpen(), props.openDelay)); + else doOpen(); + } + function close() { + openTimer?.(); + closeTimer?.(); + if (props.closeDelay && props.closeDelay > 0) ({stop: closeTimer} = useTimeoutFn(() => doClose(), props.closeDelay)); + else doClose(); + } + function handleClose() { + function hide(shouldCancel) { + if (shouldCancel) return; + closed.value = true; + visible.value = false; + } + if (props.beforeClose) props.beforeClose(hide); + else close(); + } + function onModalClick() { + if (props.closeOnClickModal) handleClose(); + } + function doOpen() { + if (!isClient) return; + visible.value = true; + } + function doClose() { + visible.value = false; + } + function onOpenAutoFocus() { + emit("openAutoFocus"); + } + function onCloseAutoFocus() { + emit("closeAutoFocus"); + } + function onFocusoutPrevented(event) { + if (event.detail?.focusReason === "pointer") event.preventDefault(); + } + if (props.lockScroll) useLockscreen(visible); + function onCloseRequested() { + if (props.closeOnPressEscape) handleClose(); + } + function bringToFront() { + if (!visible.value || !penetrable.value || props.zIndex !== void 0) return; + zIndex.value = nextZIndex(); + } + (0, vue.watch)(() => props.zIndex, () => { + zIndex.value = props.zIndex ?? nextZIndex(); + }); + (0, vue.watch)(() => props.modelValue, (val) => { + if (val) { + closed.value = false; + closing.value = false; + open(); + rendered.value = true; + zIndex.value = props.zIndex ?? nextZIndex(); + (0, vue.nextTick)(() => { + emit("open"); + if (targetRef.value) { + targetRef.value.parentElement.scrollTop = 0; + targetRef.value.parentElement.scrollLeft = 0; + targetRef.value.scrollTop = 0; + } + }); + } else if (visible.value) close(); + }); + (0, vue.watch)(() => props.fullscreen, (val) => { + if (!targetRef.value) return; + if (val) { + lastPosition = targetRef.value.style.transform; + targetRef.value.style.transform = ""; + } else targetRef.value.style.transform = lastPosition; + }); + (0, vue.onMounted)(() => { + if (props.modelValue) { + visible.value = true; + rendered.value = true; + open(); + } + }); + return { + afterEnter, + afterLeave, + beforeLeave, + handleClose, + onModalClick, + close, + doClose, + onOpenAutoFocus, + onCloseAutoFocus, + onCloseRequested, + onFocusoutPrevented, + bringToFront, + titleId, + bodyId, + closed, + style, + overlayDialogStyle, + rendered, + visible, + zIndex, + transitionConfig, + _draggable, + _alignCenter, + _overflow, + closing, + penetrable + }; + }; + +//#endregion +//#region ../../packages/components/dialog/src/dialog.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$41 = [ + "aria-label", + "aria-labelledby", + "aria-describedby" + ]; + var dialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDialog", + inheritAttrs: false, + __name: "dialog", + props: dialogProps, + emits: dialogEmits, + setup(__props, { expose: __expose }) { + const props = __props; + const slots = (0, vue.useSlots)(); + useDeprecated({ + 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" + }, (0, vue.computed)(() => !!slots.title)); + const ns = useNamespace("dialog"); + const dialogRef = (0, vue.ref)(); + const headerRef = (0, vue.ref)(); + const dialogContentRef = (0, vue.ref)(); + const { visible, titleId, bodyId, style, overlayDialogStyle, rendered, transitionConfig, zIndex, _draggable, _alignCenter, _overflow, penetrable, handleClose, onModalClick, onOpenAutoFocus, onCloseAutoFocus, onCloseRequested, onFocusoutPrevented, bringToFront, closing } = useDialog(props, dialogRef); + (0, vue.provide)(dialogInjectionKey, { + dialogRef, + headerRef, + bodyId, + ns, + rendered, + style + }); + const overlayEvent = useSameTarget(onModalClick); + const resetPosition = () => { + dialogContentRef.value?.resetPosition(); + }; + __expose({ + visible, + dialogContentRef, + resetPosition, + handleClose + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTeleport), { + to: __props.appendTo, + disabled: __props.appendTo !== "body" ? false : !__props.appendToBody + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(vue.Transition, (0, vue.mergeProps)((0, vue.unref)(transitionConfig), { persisted: "" }), { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElOverlay), { + "custom-mask-event": "", + mask: __props.modal, + "overlay-class": [ + __props.modalClass ?? "", + `${(0, vue.unref)(ns).namespace.value}-modal-dialog`, + (0, vue.unref)(ns).is("penetrable", (0, vue.unref)(penetrable)) + ], + "z-index": (0, vue.unref)(zIndex) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + role: "dialog", + "aria-modal": "true", + "aria-label": __props.title || void 0, + "aria-labelledby": !__props.title ? (0, vue.unref)(titleId) : void 0, + "aria-describedby": (0, vue.unref)(bodyId), + class: (0, vue.normalizeClass)([`${(0, vue.unref)(ns).namespace.value}-overlay-dialog`, (0, vue.unref)(ns).is("closing", (0, vue.unref)(closing))]), + style: (0, vue.normalizeStyle)((0, vue.unref)(overlayDialogStyle)), + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(overlayEvent).onClick && (0, vue.unref)(overlayEvent).onClick(...args)), + onMousedown: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(overlayEvent).onMousedown && (0, vue.unref)(overlayEvent).onMousedown(...args)), + onMouseup: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(overlayEvent).onMouseup && (0, vue.unref)(overlayEvent).onMouseup(...args)) + }, [(0, vue.createVNode)((0, vue.unref)(focus_trap_default), { + loop: "", + trapped: (0, vue.unref)(visible), + "focus-start-el": "container", + onFocusAfterTrapped: (0, vue.unref)(onOpenAutoFocus), + onFocusAfterReleased: (0, vue.unref)(onCloseAutoFocus), + onFocusoutPrevented: (0, vue.unref)(onFocusoutPrevented), + onReleaseRequested: (0, vue.unref)(onCloseRequested) + }, { + default: (0, vue.withCtx)(() => [(0, vue.unref)(rendered) ? ((0, vue.openBlock)(), (0, vue.createBlock)(dialog_content_default, (0, vue.mergeProps)({ + key: 0, + ref_key: "dialogContentRef", + ref: dialogContentRef + }, _ctx.$attrs, { + center: __props.center, + "align-center": (0, vue.unref)(_alignCenter), + "close-icon": __props.closeIcon, + draggable: (0, vue.unref)(_draggable), + overflow: (0, vue.unref)(_overflow), + fullscreen: __props.fullscreen, + "header-class": __props.headerClass, + "body-class": __props.bodyClass, + "footer-class": __props.footerClass, + "show-close": __props.showClose, + title: __props.title, + "aria-level": __props.headerAriaLevel, + onClose: (0, vue.unref)(handleClose), + onMousedown: (0, vue.unref)(bringToFront) + }), (0, vue.createSlots)({ + header: (0, vue.withCtx)(() => [!_ctx.$slots.title ? (0, vue.renderSlot)(_ctx.$slots, "header", { + key: 0, + close: (0, vue.unref)(handleClose), + titleId: (0, vue.unref)(titleId), + titleClass: (0, vue.unref)(ns).e("title") + }) : (0, vue.renderSlot)(_ctx.$slots, "title", { key: 1 })]), + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 2 + }, [_ctx.$slots.footer ? { + name: "footer", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$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" + ])) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, [ + "trapped", + "onFocusAfterTrapped", + "onFocusAfterReleased", + "onFocusoutPrevented", + "onReleaseRequested" + ])], 46, _hoisted_1$41)]), + _: 3 + }, 8, [ + "mask", + "overlay-class", + "z-index" + ]), [[vue.vShow, (0, vue.unref)(visible)]])]), + _: 3 + }, 16)]), + _: 3 + }, 8, ["to", "disabled"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/dialog/src/dialog.vue + var dialog_default = dialog_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/dialog/index.ts + const ElDialog = withInstall(dialog_default); + +//#endregion +//#region ../../packages/components/divider/src/divider.ts +/** + * @deprecated Removed after 3.0.0, Use `DividerProps` instead. + */ + const dividerProps = buildProps({ + direction: { + type: String, + values: ["horizontal", "vertical"], + default: "horizontal" + }, + contentPosition: { + type: String, + values: [ + "left", + "center", + "right" + ], + default: "center" + }, + borderStyle: { + type: definePropType(String), + default: "solid" + } + }); + +//#endregion +//#region ../../packages/components/divider/src/divider.vue?vue&type=script&setup=true&lang.ts + var divider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDivider", + __name: "divider", + props: dividerProps, + setup(__props) { + const props = __props; + const ns = useNamespace("divider"); + const dividerStyle = (0, vue.computed)(() => { + return ns.cssVar({ "border-style": props.borderStyle }); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), (0, vue.unref)(ns).m(__props.direction)]), + style: (0, vue.normalizeStyle)(dividerStyle.value), + role: "separator" + }, [_ctx.$slots.default && __props.direction !== "vertical" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("text"), (0, vue.unref)(ns).is(__props.contentPosition)]) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)) : (0, vue.createCommentVNode)("v-if", true)], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/divider/src/divider.vue + var divider_default = divider_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/divider/index.ts + const ElDivider = withInstall(divider_default); + +//#endregion +//#region ../../packages/components/drawer/src/drawer.ts +/** + * @deprecated Removed after 3.0.0, Use `DrawerProps` instead. + */ + const drawerProps = buildProps({ + ...dialogProps, + direction: { + type: String, + default: "rtl", + values: [ + "ltr", + "rtl", + "ttb", + "btt" + ] + }, + resizable: Boolean, + size: { + type: [String, Number], + default: "30%" + }, + withHeader: { + type: Boolean, + default: true + }, + modalFade: { + type: Boolean, + default: true + }, + headerAriaLevel: { + type: String, + default: "2" + } + }); + const drawerEmits = { + ...dialogEmits, + "resize-start": (evt, size) => evt instanceof MouseEvent && typeof size === "number", + resize: (evt, size) => evt instanceof MouseEvent && typeof size === "number", + "resize-end": (evt, size) => evt instanceof MouseEvent && typeof size === "number" + }; + +//#endregion +//#region ../../packages/components/drawer/src/composables/useResizable.ts + function useResizable(props, target, emit) { + const { width, height } = useWindowSize(); + const isHorizontal = (0, vue.computed)(() => ["ltr", "rtl"].includes(props.direction)); + const sign = (0, vue.computed)(() => ["ltr", "ttb"].includes(props.direction) ? 1 : -1); + const windowSize = (0, vue.computed)(() => isHorizontal.value ? width.value : height.value); + const getSize = (0, vue.computed)(() => { + return clamp$2(startSize.value + sign.value * offset.value, 4, windowSize.value); + }); + const startSize = (0, vue.ref)(0); + const offset = (0, vue.ref)(0); + const isResizing = (0, vue.ref)(false); + const hasStartedDragging = (0, vue.ref)(false); + let startPos = []; + let cleanups = []; + const getActualSize = () => { + const drawerEl = target.value?.closest("[aria-modal=\"true\"]"); + if (drawerEl) return isHorizontal.value ? drawerEl.offsetWidth : drawerEl.offsetHeight; + return 100; + }; + (0, vue.watch)(() => [props.size, props.resizable], () => { + hasStartedDragging.value = false; + startSize.value = 0; + offset.value = 0; + onMouseUp(); + }); + const onMousedown = (e) => { + if (!props.resizable) return; + if (!hasStartedDragging.value) { + startSize.value = getActualSize(); + hasStartedDragging.value = true; + } + startPos = [e.pageX, e.pageY]; + isResizing.value = true; + emit("resize-start", e, startSize.value); + cleanups.push(useEventListener(window, "mouseup", onMouseUp), useEventListener(window, "mousemove", onMouseMove)); + }; + const onMouseMove = (e) => { + const { pageX, pageY } = e; + const offsetX = pageX - startPos[0]; + const offsetY = pageY - startPos[1]; + offset.value = isHorizontal.value ? offsetX : offsetY; + emit("resize", e, getSize.value); + }; + const onMouseUp = (e) => { + if (!isResizing.value) return; + startPos = []; + startSize.value = getSize.value; + offset.value = 0; + isResizing.value = false; + cleanups.forEach((cleanup) => cleanup?.()); + cleanups = []; + if (e) emit("resize-end", e, startSize.value); + }; + const cleanup = useEventListener(target, "mousedown", onMousedown); + (0, vue.onBeforeUnmount)(() => { + cleanup(); + onMouseUp(); + }); + return { + size: (0, vue.computed)(() => { + return hasStartedDragging.value ? `${getSize.value}px` : addUnit(props.size); + }), + isResizing, + isHorizontal + }; + } + +//#endregion +//#region ../../packages/components/drawer/src/drawer.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$40 = [ + "aria-label", + "aria-labelledby", + "aria-describedby" + ]; + const _hoisted_2$24 = ["id", "aria-level"]; + const _hoisted_3$9 = ["aria-label"]; + const _hoisted_4$7 = ["id"]; + var drawer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDrawer", + inheritAttrs: false, + __name: "drawer", + props: drawerProps, + emits: drawerEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const slots = (0, vue.useSlots)(); + useDeprecated({ + 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" + }, (0, vue.computed)(() => !!slots.title)); + const drawerRef = (0, vue.ref)(); + const focusStartRef = (0, vue.ref)(); + const draggerRef = (0, vue.ref)(); + const ns = useNamespace("drawer"); + const { t } = useLocale(); + const { afterEnter, afterLeave, beforeLeave, visible, rendered, titleId, bodyId, zIndex, onModalClick, onOpenAutoFocus, onCloseAutoFocus, onFocusoutPrevented, onCloseRequested, handleClose } = useDialog(props, drawerRef); + const { isHorizontal, size, isResizing } = useResizable(props, draggerRef, emit); + const penetrable = (0, vue.computed)(() => props.modalPenetrable && !props.modal); + __expose({ + handleClose, + afterEnter, + afterLeave + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTeleport), { + to: __props.appendTo, + disabled: __props.appendTo !== "body" ? false : !__props.appendToBody + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(vue.Transition, { + name: (0, vue.unref)(ns).b("fade"), + onAfterEnter: (0, vue.unref)(afterEnter), + onAfterLeave: (0, vue.unref)(afterLeave), + onBeforeLeave: (0, vue.unref)(beforeLeave), + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElOverlay), { + mask: __props.modal, + "overlay-class": [ + (0, vue.unref)(ns).is("drawer"), + __props.modalClass ?? "", + `${(0, vue.unref)(ns).namespace.value}-modal-drawer`, + (0, vue.unref)(ns).is("penetrable", penetrable.value) + ], + "z-index": (0, vue.unref)(zIndex), + onClick: (0, vue.unref)(onModalClick) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(focus_trap_default), { + loop: "", + trapped: (0, vue.unref)(visible), + "focus-trap-el": drawerRef.value, + "focus-start-el": focusStartRef.value, + onFocusAfterTrapped: (0, vue.unref)(onOpenAutoFocus), + onFocusAfterReleased: (0, vue.unref)(onCloseAutoFocus), + onFocusoutPrevented: (0, vue.unref)(onFocusoutPrevented), + onReleaseRequested: (0, vue.unref)(onCloseRequested) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", (0, vue.mergeProps)({ + ref_key: "drawerRef", + ref: drawerRef, + "aria-modal": "true", + "aria-label": __props.title || void 0, + "aria-labelledby": !__props.title ? (0, vue.unref)(titleId) : void 0, + "aria-describedby": (0, vue.unref)(bodyId) + }, _ctx.$attrs, { + class: [ + (0, vue.unref)(ns).b(), + __props.direction, + (0, vue.unref)(visible) && "open", + (0, vue.unref)(ns).is("dragging", (0, vue.unref)(isResizing)) + ], + style: { [(0, vue.unref)(isHorizontal) ? "width" : "height"]: (0, vue.unref)(size) }, + role: "dialog", + onClick: _cache[1] || (_cache[1] = (0, vue.withModifiers)(() => {}, ["stop"])) + }), [ + (0, vue.createElementVNode)("span", { + ref_key: "focusStartRef", + ref: focusStartRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("sr-focus")), + tabindex: "-1" + }, null, 2), + __props.withHeader ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("header", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("header"), __props.headerClass]) + }, [!_ctx.$slots.title ? (0, vue.renderSlot)(_ctx.$slots, "header", { + key: 0, + close: (0, vue.unref)(handleClose), + titleId: (0, vue.unref)(titleId), + titleClass: (0, vue.unref)(ns).e("title") + }, () => [(0, vue.createElementVNode)("span", { + id: (0, vue.unref)(titleId), + role: "heading", + "aria-level": __props.headerAriaLevel, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) + }, (0, vue.toDisplayString)(__props.title), 11, _hoisted_2$24)]) : (0, vue.renderSlot)(_ctx.$slots, "title", { key: 1 }, () => [(0, vue.createCommentVNode)(" DEPRECATED SLOT ")]), __props.showClose ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 2, + "aria-label": (0, vue.unref)(t)("el.drawer.close"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close-btn")), + type: "button", + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleClose) && (0, vue.unref)(handleClose)(...args)) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + }, 8, ["class"])], 10, _hoisted_3$9)) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(rendered) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + id: (0, vue.unref)(bodyId), + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("body"), __props.bodyClass]) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 10, _hoisted_4$7)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("footer"), __props.footerClass]) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true), + __props.resizable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 3, + ref_key: "draggerRef", + ref: draggerRef, + style: (0, vue.normalizeStyle)({ zIndex: (0, vue.unref)(zIndex) }), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("dragger")) + }, null, 6)) : (0, vue.createCommentVNode)("v-if", true) + ], 16, _hoisted_1$40)]), + _: 3 + }, 8, [ + "trapped", + "focus-trap-el", + "focus-start-el", + "onFocusAfterTrapped", + "onFocusAfterReleased", + "onFocusoutPrevented", + "onReleaseRequested" + ])]), + _: 3 + }, 8, [ + "mask", + "overlay-class", + "z-index", + "onClick" + ]), [[vue.vShow, (0, vue.unref)(visible)]])]), + _: 3 + }, 8, [ + "name", + "onAfterEnter", + "onAfterLeave", + "onBeforeLeave" + ])]), + _: 3 + }, 8, ["to", "disabled"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/drawer/src/drawer.vue + var drawer_default = drawer_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/drawer/index.ts + const ElDrawer = withInstall(drawer_default); + +//#endregion +//#region ../../packages/components/collection/src/collection.vue?vue&type=script&lang.ts + var collection_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ inheritAttrs: false }); + +//#endregion +//#region ../../packages/components/collection/src/collection.vue + function _sfc_render$16(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.renderSlot)(_ctx.$slots, "default"); + } + var collection_default = /* @__PURE__ */ _plugin_vue_export_helper_default(collection_vue_vue_type_script_lang_default, [["render", _sfc_render$16]]); + +//#endregion +//#region ../../packages/components/collection/src/collection-item.vue?vue&type=script&lang.ts + var collection_item_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElCollectionItem", + inheritAttrs: false + }); + +//#endregion +//#region ../../packages/components/collection/src/collection-item.vue + function _sfc_render$15(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.renderSlot)(_ctx.$slots, "default"); + } + var collection_item_default = /* @__PURE__ */ _plugin_vue_export_helper_default(collection_item_vue_vue_type_script_lang_default, [["render", _sfc_render$15]]); + +//#endregion +//#region ../../packages/components/collection/src/collection.ts + const COLLECTION_ITEM_SIGN = `data-el-collection-item`; + const createCollectionWithScope = (name) => { + const COLLECTION_NAME = `El${name}Collection`; + const COLLECTION_ITEM_NAME = `${COLLECTION_NAME}Item`; + const COLLECTION_INJECTION_KEY = Symbol(COLLECTION_NAME); + const COLLECTION_ITEM_INJECTION_KEY = Symbol(COLLECTION_ITEM_NAME); + return { + COLLECTION_INJECTION_KEY, + COLLECTION_ITEM_INJECTION_KEY, + ElCollection: Object.assign({}, collection_default, { + name: COLLECTION_NAME, + setup() { + const collectionRef = (0, vue.ref)(); + const itemMap = /* @__PURE__ */ new Map(); + const getItems = (() => { + const collectionEl = (0, vue.unref)(collectionRef); + if (!collectionEl) return []; + const orderedNodes = Array.from(collectionEl.querySelectorAll(`[${COLLECTION_ITEM_SIGN}]`)); + return [...itemMap.values()].sort((a, b) => orderedNodes.indexOf(a.ref) - orderedNodes.indexOf(b.ref)); + }); + (0, vue.provide)(COLLECTION_INJECTION_KEY, { + itemMap, + getItems, + collectionRef + }); + } + }), + ElCollectionItem: Object.assign({}, collection_item_default, { + name: COLLECTION_ITEM_NAME, + setup(_, { attrs }) { + const collectionItemRef = (0, vue.ref)(); + const collectionInjection = (0, vue.inject)(COLLECTION_INJECTION_KEY, void 0); + (0, vue.provide)(COLLECTION_ITEM_INJECTION_KEY, { collectionItemRef }); + (0, vue.onMounted)(() => { + const collectionItemEl = (0, vue.unref)(collectionItemRef); + if (collectionItemEl) collectionInjection.itemMap.set(collectionItemEl, { + ref: collectionItemEl, + ...attrs + }); + }); + (0, vue.onBeforeUnmount)(() => { + const collectionItemEl = (0, vue.unref)(collectionItemRef); + collectionInjection.itemMap.delete(collectionItemEl); + }); + } + }) + }; + }; + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-group.ts + const rovingFocusGroupProps = buildProps({ + style: { type: definePropType([ + String, + Array, + Object + ]) }, + currentTabId: { type: definePropType(String) }, + defaultCurrentTabId: String, + loop: Boolean, + dir: { + type: String, + values: ["ltr", "rtl"], + default: "ltr" + }, + orientation: { type: definePropType(String) }, + onBlur: Function, + onFocus: Function, + onMousedown: Function + }); + const { ElCollection, ElCollectionItem, COLLECTION_INJECTION_KEY, COLLECTION_ITEM_INJECTION_KEY } = createCollectionWithScope("RovingFocusGroup"); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/tokens.ts + const ROVING_FOCUS_GROUP_INJECTION_KEY = Symbol("elRovingFocusGroup"); + const ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY = Symbol("elRovingFocusGroupItem"); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/utils.ts + const MAP_KEY_TO_FOCUS_INTENT = { + ArrowLeft: "prev", + ArrowUp: "prev", + ArrowRight: "next", + ArrowDown: "next", + PageUp: "first", + Home: "first", + PageDown: "last", + End: "last" + }; + const getDirectionAwareKey = (key, dir) => { + if (dir !== "rtl") return key; + switch (key) { + case EVENT_CODE.right: return EVENT_CODE.left; + case EVENT_CODE.left: return EVENT_CODE.right; + default: return key; + } + }; + const getFocusIntent = (event, orientation, dir) => { + const key = getDirectionAwareKey(getEventCode(event), dir); + if (orientation === "vertical" && [EVENT_CODE.left, EVENT_CODE.right].includes(key)) return void 0; + if (orientation === "horizontal" && [EVENT_CODE.up, EVENT_CODE.down].includes(key)) return void 0; + return MAP_KEY_TO_FOCUS_INTENT[key]; + }; + const reorderArray = (array, atIdx) => { + return array.map((_, idx) => array[(idx + atIdx) % array.length]); + }; + const focusFirst = (elements) => { + const { activeElement: prevActive } = document; + for (const element of elements) { + if (element === prevActive) return; + element.focus(); + if (prevActive !== document.activeElement) return; + } + }; + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-group-impl.vue?vue&type=script&lang.ts + const CURRENT_TAB_ID_CHANGE_EVT = "currentTabIdChange"; + const ENTRY_FOCUS_EVT = "rovingFocusGroup.entryFocus"; + const EVT_OPTS = { + bubbles: false, + cancelable: true + }; + var roving_focus_group_impl_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElRovingFocusGroupImpl", + inheritAttrs: false, + props: rovingFocusGroupProps, + emits: [CURRENT_TAB_ID_CHANGE_EVT, "entryFocus"], + setup(props, { emit }) { + const currentTabbedId = (0, vue.ref)((props.currentTabId || props.defaultCurrentTabId) ?? null); + const isBackingOut = (0, vue.ref)(false); + const isClickFocus = (0, vue.ref)(false); + const rovingFocusGroupRef = (0, vue.ref)(); + const { getItems } = (0, vue.inject)(COLLECTION_INJECTION_KEY, void 0); + const rovingFocusGroupRootStyle = (0, vue.computed)(() => { + return [{ outline: "none" }, props.style]; + }); + const onItemFocus = (tabbedId) => { + emit(CURRENT_TAB_ID_CHANGE_EVT, tabbedId); + }; + const onItemShiftTab = () => { + isBackingOut.value = true; + }; + const onMousedown = composeEventHandlers((e) => { + props.onMousedown?.(e); + }, () => { + isClickFocus.value = true; + }); + const onFocus = composeEventHandlers((e) => { + props.onFocus?.(e); + }, (e) => { + const isKeyboardFocus = !(0, vue.unref)(isClickFocus); + const { target, currentTarget } = e; + if (target === currentTarget && isKeyboardFocus && !(0, vue.unref)(isBackingOut)) { + const entryFocusEvt = new Event(ENTRY_FOCUS_EVT, EVT_OPTS); + currentTarget?.dispatchEvent(entryFocusEvt); + if (!entryFocusEvt.defaultPrevented) { + const items = getItems().filter((item) => item.focusable); + focusFirst([ + items.find((item) => item.active), + items.find((item) => item.id === (0, vue.unref)(currentTabbedId)), + ...items + ].filter(Boolean).map((item) => item.ref)); + } + } + isClickFocus.value = false; + }); + const onBlur = composeEventHandlers((e) => { + props.onBlur?.(e); + }, () => { + isBackingOut.value = false; + }); + const handleEntryFocus = (...args) => { + emit("entryFocus", ...args); + }; + const onKeydown = (e) => { + const focusIntent = getFocusIntent(e); + if (focusIntent) { + e.preventDefault(); + let elements = getItems().filter((item) => item.focusable).map((item) => item.ref); + switch (focusIntent) { + case "last": + elements.reverse(); + break; + case "prev": + case "next": { + if (focusIntent === "prev") elements.reverse(); + const currentIdx = elements.indexOf(e.currentTarget); + elements = props.loop ? reorderArray(elements, currentIdx + 1) : elements.slice(currentIdx + 1); + break; + } + default: break; + } + (0, vue.nextTick)(() => { + focusFirst(elements); + }); + } + }; + (0, vue.provide)(ROVING_FOCUS_GROUP_INJECTION_KEY, { + currentTabbedId: (0, vue.readonly)(currentTabbedId), + loop: (0, vue.toRef)(props, "loop"), + tabIndex: (0, vue.computed)(() => { + return (0, vue.unref)(isBackingOut) ? -1 : 0; + }), + rovingFocusGroupRef, + rovingFocusGroupRootStyle, + orientation: (0, vue.toRef)(props, "orientation"), + dir: (0, vue.toRef)(props, "dir"), + onItemFocus, + onItemShiftTab, + onBlur, + onFocus, + onMousedown, + onKeydown + }); + (0, vue.watch)(() => props.currentTabId, (val) => { + currentTabbedId.value = val ?? null; + }); + useEventListener(rovingFocusGroupRef, ENTRY_FOCUS_EVT, handleEntryFocus); + } + }); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-group-impl.vue + function _sfc_render$14(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.renderSlot)(_ctx.$slots, "default"); + } + var roving_focus_group_impl_default = /* @__PURE__ */ _plugin_vue_export_helper_default(roving_focus_group_impl_vue_vue_type_script_lang_default, [["render", _sfc_render$14]]); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-group.vue?vue&type=script&lang.ts + var roving_focus_group_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElRovingFocusGroup", + components: { + ElFocusGroupCollection: ElCollection, + ElRovingFocusGroupImpl: roving_focus_group_impl_default + } + }); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-group.vue + function _sfc_render$13(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_roving_focus_group_impl = (0, vue.resolveComponent)("el-roving-focus-group-impl"); + const _component_el_focus_group_collection = (0, vue.resolveComponent)("el-focus-group-collection"); + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_focus_group_collection, null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_roving_focus_group_impl, (0, vue.normalizeProps)((0, vue.guardReactiveProps)(_ctx.$attrs)), { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 16)]), + _: 3 + }); + } + var roving_focus_group_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(roving_focus_group_vue_vue_type_script_lang_default, [["render", _sfc_render$13]]); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-item.vue?vue&type=script&lang.ts + var roving_focus_item_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + components: { ElRovingFocusCollectionItem: ElCollectionItem }, + props: { + focusable: { + type: Boolean, + default: true + }, + active: Boolean + }, + emits: [ + "mousedown", + "focus", + "keydown" + ], + setup(props, { emit }) { + const { currentTabbedId, onItemFocus, onItemShiftTab, onKeydown } = (0, vue.inject)(ROVING_FOCUS_GROUP_INJECTION_KEY, void 0); + const id = useId(); + const rovingFocusGroupItemRef = (0, vue.ref)(); + const handleMousedown = composeEventHandlers((e) => { + emit("mousedown", e); + }, (e) => { + if (!props.focusable) e.preventDefault(); + else onItemFocus((0, vue.unref)(id)); + }); + const handleFocus = composeEventHandlers((e) => { + emit("focus", e); + }, () => { + onItemFocus((0, vue.unref)(id)); + }); + const handleKeydown = composeEventHandlers((e) => { + emit("keydown", e); + }, (e) => { + const { shiftKey, target, currentTarget } = e; + if (getEventCode(e) === EVENT_CODE.tab && shiftKey) { + onItemShiftTab(); + return; + } + if (target !== currentTarget) return; + onKeydown(e); + }); + const isCurrentTab = (0, vue.computed)(() => currentTabbedId.value === (0, vue.unref)(id)); + (0, vue.provide)(ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY, { + rovingFocusGroupItemRef, + tabIndex: (0, vue.computed)(() => (0, vue.unref)(isCurrentTab) ? 0 : -1), + handleMousedown, + handleFocus, + handleKeydown + }); + return { + id, + handleKeydown, + handleFocus, + handleMousedown + }; + } + }); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-item.vue + function _sfc_render$12(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_roving_focus_collection_item = (0, vue.resolveComponent)("el-roving-focus-collection-item"); + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_roving_focus_collection_item, { + id: _ctx.id, + focusable: _ctx.focusable, + active: _ctx.active + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, [ + "id", + "focusable", + "active" + ]); + } + var roving_focus_item_default = /* @__PURE__ */ _plugin_vue_export_helper_default(roving_focus_item_vue_vue_type_script_lang_default, [["render", _sfc_render$12]]); + +//#endregion +//#region ../../packages/components/roving-focus-group/index.ts + var roving_focus_group_default = roving_focus_group_default$1; + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown.ts + const dropdownProps = buildProps({ + trigger: { + ...useTooltipTriggerProps.trigger, + type: definePropType([String, Array]) + }, + triggerKeys: { + type: definePropType(Array), + default: () => [ + EVENT_CODE.enter, + EVENT_CODE.numpadEnter, + EVENT_CODE.space, + EVENT_CODE.down + ] + }, + virtualTriggering: useTooltipTriggerProps.virtualTriggering, + virtualRef: useTooltipTriggerProps.virtualRef, + effect: { + ...useTooltipContentProps.effect, + default: "light" + }, + type: { type: definePropType(String) }, + placement: { + type: definePropType(String), + default: "bottom" + }, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + id: String, + size: { + type: String, + default: "" + }, + splitButton: Boolean, + hideOnClick: { + type: Boolean, + default: true + }, + loop: { + type: Boolean, + default: true + }, + showArrow: { + type: Boolean, + default: true + }, + showTimeout: { + type: Number, + default: 150 + }, + hideTimeout: { + type: Number, + default: 150 + }, + tabindex: { + type: definePropType([Number, String]), + default: 0 + }, + maxHeight: { + type: definePropType([Number, String]), + default: "" + }, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + disabled: Boolean, + role: { + type: String, + values: roleTypes, + default: "menu" + }, + buttonProps: { type: definePropType(Object) }, + teleported: useTooltipContentProps.teleported, + appendTo: useTooltipContentProps.appendTo, + persistent: { + type: Boolean, + default: true + } + }); + const dropdownItemProps = buildProps({ + command: { + type: [ + Object, + String, + Number + ], + default: () => ({}) + }, + disabled: Boolean, + divided: Boolean, + textValue: String, + icon: { type: iconPropType } + }); + const dropdownMenuProps = buildProps({ onKeydown: { type: definePropType(Function) } }); + const FIRST_KEYS = [ + EVENT_CODE.down, + EVENT_CODE.pageDown, + EVENT_CODE.home + ]; + const LAST_KEYS = [ + EVENT_CODE.up, + EVENT_CODE.pageUp, + EVENT_CODE.end + ]; + const FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS]; + +//#endregion +//#region ../../packages/components/dropdown/src/tokens.ts + const DROPDOWN_INJECTION_KEY = Symbol("elDropdown"); + const DROPDOWN_INSTANCE_INJECTION_KEY = "elDropdown"; + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown.vue?vue&type=script&lang.ts + const { ButtonGroup: ElButtonGroup$1 } = ElButton; + var dropdown_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElDropdown", + components: { + ElButton, + ElButtonGroup: ElButtonGroup$1, + ElScrollbar, + ElTooltip, + ElRovingFocusGroup: roving_focus_group_default, + ElOnlyChild: OnlyChild, + ElIcon, + ArrowDown: arrow_down_default + }, + props: dropdownProps, + emits: [ + "visible-change", + "click", + "command" + ], + setup(props, { emit }) { + const _instance = (0, vue.getCurrentInstance)(); + const ns = useNamespace("dropdown"); + const { t } = useLocale(); + const triggeringElementRef = (0, vue.ref)(); + const referenceElementRef = (0, vue.ref)(); + const popperRef = (0, vue.ref)(); + const contentRef = (0, vue.ref)(); + const scrollbar = (0, vue.ref)(null); + const currentTabId = (0, vue.ref)(null); + const isUsingKeyboard = (0, vue.ref)(false); + const wrapStyle = (0, vue.computed)(() => ({ maxHeight: addUnit(props.maxHeight) })); + const dropdownTriggerKls = (0, vue.computed)(() => [ns.m(dropdownSize.value)]); + const trigger = (0, vue.computed)(() => castArray$1(props.trigger)); + const defaultTriggerId = useId().value; + const triggerId = (0, vue.computed)(() => props.id || defaultTriggerId); + function handleClick() { + popperRef.value?.onClose(void 0, 0); + } + function handleClose() { + popperRef.value?.onClose(); + } + function handleOpen() { + popperRef.value?.onOpen(); + } + const dropdownSize = useFormSize(); + function commandHandler(...args) { + emit("command", ...args); + } + function onItemEnter() {} + function onItemLeave() { + const contentEl = (0, vue.unref)(contentRef); + trigger.value.includes("hover") && contentEl?.focus({ preventScroll: true }); + currentTabId.value = null; + } + function handleCurrentTabIdChange(id) { + currentTabId.value = id; + } + function handleBeforeShowTooltip() { + emit("visible-change", true); + } + function handleShowTooltip(event) { + isUsingKeyboard.value = event?.type === "keydown"; + contentRef.value?.focus(); + } + function handleBeforeHideTooltip() { + emit("visible-change", false); + } + (0, vue.provide)(DROPDOWN_INJECTION_KEY, { + contentRef, + role: (0, vue.computed)(() => props.role), + triggerId, + isUsingKeyboard, + onItemEnter, + onItemLeave, + handleClose + }); + (0, vue.provide)(DROPDOWN_INSTANCE_INJECTION_KEY, { + instance: _instance, + dropdownSize, + handleClick, + commandHandler, + trigger: (0, vue.toRef)(props, "trigger"), + hideOnClick: (0, vue.toRef)(props, "hideOnClick") + }); + const handlerMainButtonClick = (event) => { + emit("click", event); + }; + return { + t, + ns, + scrollbar, + wrapStyle, + dropdownTriggerKls, + dropdownSize, + triggerId, + currentTabId, + handleCurrentTabIdChange, + handlerMainButtonClick, + handleClose, + handleOpen, + handleBeforeShowTooltip, + handleShowTooltip, + handleBeforeHideTooltip, + popperRef, + contentRef, + triggeringElementRef, + referenceElementRef + }; + } + }); + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown.vue + function _sfc_render$11(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_roving_focus_group = (0, vue.resolveComponent)("el-roving-focus-group"); + const _component_el_scrollbar = (0, vue.resolveComponent)("el-scrollbar"); + const _component_el_only_child = (0, vue.resolveComponent)("el-only-child"); + const _component_el_tooltip = (0, vue.resolveComponent)("el-tooltip"); + const _component_el_button = (0, vue.resolveComponent)("el-button"); + const _component_arrow_down = (0, vue.resolveComponent)("arrow-down"); + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + const _component_el_button_group = (0, vue.resolveComponent)("el-button-group"); + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([_ctx.ns.b(), _ctx.ns.is("disabled", _ctx.disabled)]) }, [(0, vue.createVNode)(_component_el_tooltip, { + ref: "popperRef", + role: _ctx.role, + effect: _ctx.effect, + "fallback-placements": ["bottom", "top"], + "popper-options": _ctx.popperOptions, + "gpu-acceleration": false, + placement: _ctx.placement, + "popper-class": [_ctx.ns.e("popper"), _ctx.popperClass], + "popper-style": _ctx.popperStyle, + trigger: _ctx.trigger, + "trigger-keys": _ctx.triggerKeys, + "trigger-target-el": _ctx.contentRef, + "show-arrow": _ctx.showArrow, + "show-after": _ctx.trigger === "hover" ? _ctx.showTimeout : 0, + "hide-after": _ctx.trigger === "hover" ? _ctx.hideTimeout : 0, + "virtual-ref": _ctx.virtualRef ?? _ctx.triggeringElementRef, + "virtual-triggering": _ctx.virtualTriggering || _ctx.splitButton, + disabled: _ctx.disabled, + transition: `${_ctx.ns.namespace.value}-zoom-in-top`, + teleported: _ctx.teleported, + "append-to": _ctx.appendTo, + pure: "", + "focus-on-target": "", + persistent: _ctx.persistent, + onBeforeShow: _ctx.handleBeforeShowTooltip, + onShow: _ctx.handleShowTooltip, + onBeforeHide: _ctx.handleBeforeHideTooltip + }, (0, vue.createSlots)({ + content: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_scrollbar, { + ref: "scrollbar", + "wrap-style": _ctx.wrapStyle, + tag: "div", + "view-class": _ctx.ns.e("list") + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_roving_focus_group, { + loop: _ctx.loop, + "current-tab-id": _ctx.currentTabId, + orientation: "horizontal", + onCurrentTabIdChange: _ctx.handleCurrentTabIdChange + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "dropdown")]), + _: 3 + }, 8, [ + "loop", + "current-tab-id", + "onCurrentTabIdChange" + ])]), + _: 3 + }, 8, ["wrap-style", "view-class"])]), + _: 2 + }, [!_ctx.splitButton ? { + name: "default", + fn: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_only_child, { + id: _ctx.triggerId, + ref: "triggeringElementRef", + role: "button", + tabindex: _ctx.tabindex + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["id", "tabindex"])]), + key: "0" + } : void 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" + ]), _ctx.splitButton ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_button_group, { key: 0 }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_button, (0, vue.mergeProps)({ ref: "referenceElementRef" }, _ctx.buttonProps, { + size: _ctx.dropdownSize, + type: _ctx.type, + disabled: _ctx.disabled, + tabindex: _ctx.tabindex, + onClick: _ctx.handlerMainButtonClick + }), { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 16, [ + "size", + "type", + "disabled", + "tabindex", + "onClick" + ]), (0, vue.createVNode)(_component_el_button, (0, vue.mergeProps)({ + id: _ctx.triggerId, + ref: "triggeringElementRef" + }, _ctx.buttonProps, { + role: "button", + size: _ctx.dropdownSize, + type: _ctx.type, + class: _ctx.ns.e("caret-button"), + disabled: _ctx.disabled, + tabindex: _ctx.tabindex, + "aria-label": _ctx.t("el.dropdown.toggleDropdown") + }), { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_icon, { class: (0, vue.normalizeClass)(_ctx.ns.e("icon")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_arrow_down)]), + _: 1 + }, 8, ["class"])]), + _: 1 + }, 16, [ + "id", + "size", + "type", + "class", + "disabled", + "tabindex", + "aria-label" + ])]), + _: 3 + })) : (0, vue.createCommentVNode)("v-if", true)], 2); + } + var dropdown_default = /* @__PURE__ */ _plugin_vue_export_helper_default(dropdown_vue_vue_type_script_lang_default, [["render", _sfc_render$11]]); + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown-item-impl.vue?vue&type=script&lang.ts + var dropdown_item_impl_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "DropdownItemImpl", + components: { ElIcon }, + props: dropdownItemProps, + emits: [ + "pointermove", + "pointerleave", + "click", + "clickimpl" + ], + setup(_, { emit }) { + const ns = useNamespace("dropdown"); + const { role: menuRole } = (0, vue.inject)(DROPDOWN_INJECTION_KEY, void 0); + const { collectionItemRef: rovingFocusCollectionItemRef } = (0, vue.inject)(COLLECTION_ITEM_INJECTION_KEY, void 0); + const { rovingFocusGroupItemRef, tabIndex, handleFocus, handleKeydown: handleItemKeydown, handleMousedown } = (0, vue.inject)(ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY, void 0); + const itemRef = composeRefs(rovingFocusCollectionItemRef, rovingFocusGroupItemRef); + const role = (0, vue.computed)(() => { + if (menuRole.value === "menu") return "menuitem"; + else if (menuRole.value === "navigation") return "link"; + return "button"; + }); + const handleKeydown = composeEventHandlers((e) => { + const code = getEventCode(e); + if ([ + EVENT_CODE.enter, + EVENT_CODE.numpadEnter, + EVENT_CODE.space + ].includes(code)) { + e.preventDefault(); + e.stopImmediatePropagation(); + emit("clickimpl", e); + return true; + } + }, handleItemKeydown); + return { + ns, + itemRef, + dataset: { [COLLECTION_ITEM_SIGN]: "" }, + role, + tabIndex, + handleFocus, + handleKeydown, + handleMousedown + }; + } + }); + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown-item-impl.vue + const _hoisted_1$39 = [ + "aria-disabled", + "tabindex", + "role" + ]; + function _sfc_render$10(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [_ctx.divided ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: 0, + role: "separator", + class: (0, vue.normalizeClass)(_ctx.ns.bem("menu", "item", "divided")) + }, null, 2)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("li", (0, vue.mergeProps)({ ref: _ctx.itemRef }, { + ..._ctx.dataset, + ..._ctx.$attrs + }, { + "aria-disabled": _ctx.disabled, + class: [_ctx.ns.be("menu", "item"), _ctx.ns.is("disabled", _ctx.disabled)], + tabindex: _ctx.tabIndex, + role: _ctx.role, + onClick: _cache[0] || (_cache[0] = (e) => _ctx.$emit("clickimpl", e)), + onFocus: _cache[1] || (_cache[1] = (...args) => _ctx.handleFocus && _ctx.handleFocus(...args)), + onKeydown: _cache[2] || (_cache[2] = (0, vue.withModifiers)((...args) => _ctx.handleKeydown && _ctx.handleKeydown(...args), ["self"])), + onMousedown: _cache[3] || (_cache[3] = (...args) => _ctx.handleMousedown && _ctx.handleMousedown(...args)), + onPointermove: _cache[4] || (_cache[4] = (e) => _ctx.$emit("pointermove", e)), + onPointerleave: _cache[5] || (_cache[5] = (e) => _ctx.$emit("pointerleave", e)) + }), [_ctx.icon || _ctx.$slots.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { key: 0 }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "icon", {}, () => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.icon)))])]), + _: 3 + })) : (0, vue.createCommentVNode)("v-if", true), (0, vue.renderSlot)(_ctx.$slots, "default")], 16, _hoisted_1$39)], 64); + } + var dropdown_item_impl_default = /* @__PURE__ */ _plugin_vue_export_helper_default(dropdown_item_impl_vue_vue_type_script_lang_default, [["render", _sfc_render$10]]); + +//#endregion +//#region ../../packages/components/dropdown/src/useDropdown.ts + const useDropdown = () => { + const elDropdown = (0, vue.inject)(DROPDOWN_INSTANCE_INJECTION_KEY, {}); + return { + elDropdown, + _elDropdownSize: (0, vue.computed)(() => elDropdown?.dropdownSize) + }; + }; + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown-item.vue?vue&type=script&lang.ts + var dropdown_item_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElDropdownItem", + components: { + ElRovingFocusItem: roving_focus_item_default, + ElDropdownItemImpl: dropdown_item_impl_default + }, + inheritAttrs: false, + props: dropdownItemProps, + emits: [ + "pointermove", + "pointerleave", + "click" + ], + setup(props, { emit, attrs }) { + const { elDropdown } = useDropdown(); + const _instance = (0, vue.getCurrentInstance)(); + const { onItemEnter, onItemLeave } = (0, vue.inject)(DROPDOWN_INJECTION_KEY, void 0); + const handlePointerMove = composeEventHandlers((e) => { + emit("pointermove", e); + return e.defaultPrevented; + }, whenMouse((e) => { + if (props.disabled) { + onItemLeave(e); + return; + } + const target = e.currentTarget; + /** + * This handles the following scenario: + * when the item contains a form element such as input element + * when the mouse is moving over the element itself which is contained by + * the item, the default focusing logic should be prevented so that + * it won't cause weird action. + */ + if (target === document.activeElement || target.contains(document.activeElement)) return; + onItemEnter(e); + if (!e.defaultPrevented) target?.focus({ preventScroll: true }); + })); + const handlePointerLeave = composeEventHandlers((e) => { + emit("pointerleave", e); + return e.defaultPrevented; + }, whenMouse(onItemLeave)); + return { + handleClick: composeEventHandlers((e) => { + if (props.disabled) return; + emit("click", e); + return e.type !== "keydown" && e.defaultPrevented; + }, (e) => { + if (props.disabled) { + e.stopImmediatePropagation(); + return; + } + if (elDropdown?.hideOnClick?.value) elDropdown.handleClick?.(); + elDropdown.commandHandler?.(props.command, _instance, e); + }), + handlePointerMove, + handlePointerLeave, + propsAndAttrs: (0, vue.computed)(() => ({ + ...props, + ...attrs + })) + }; + } + }); + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown-item.vue + function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_dropdown_item_impl = (0, vue.resolveComponent)("el-dropdown-item-impl"); + const _component_el_roving_focus_item = (0, vue.resolveComponent)("el-roving-focus-item"); + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_roving_focus_item, { focusable: !_ctx.disabled }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_dropdown_item_impl, (0, vue.mergeProps)(_ctx.propsAndAttrs, { + onPointerleave: _ctx.handlePointerLeave, + onPointermove: _ctx.handlePointerMove, + onClickimpl: _ctx.handleClick + }), (0, vue.createSlots)({ + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 2 + }, [_ctx.$slots.icon ? { + name: "icon", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "icon")]), + key: "0" + } : void 0]), 1040, [ + "onPointerleave", + "onPointermove", + "onClickimpl" + ])]), + _: 3 + }, 8, ["focusable"]); + } + var dropdown_item_default = /* @__PURE__ */ _plugin_vue_export_helper_default(dropdown_item_vue_vue_type_script_lang_default, [["render", _sfc_render$9]]); + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown-menu.vue?vue&type=script&lang.ts + var dropdown_menu_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElDropdownMenu", + props: dropdownMenuProps, + setup(props) { + const ns = useNamespace("dropdown"); + const { _elDropdownSize } = useDropdown(); + const size = _elDropdownSize.value; + const { contentRef, role, triggerId, isUsingKeyboard, handleClose } = (0, vue.inject)(DROPDOWN_INJECTION_KEY, void 0); + const { rovingFocusGroupRef, rovingFocusGroupRootStyle, onBlur, onFocus, onKeydown, onMousedown } = (0, vue.inject)(ROVING_FOCUS_GROUP_INJECTION_KEY, void 0); + const { collectionRef: rovingFocusGroupCollectionRef } = (0, vue.inject)(COLLECTION_INJECTION_KEY, void 0); + const dropdownKls = (0, vue.computed)(() => { + return [ns.b("menu"), ns.bm("menu", size?.value)]; + }); + const dropdownListWrapperRef = composeRefs(contentRef, rovingFocusGroupRef, rovingFocusGroupCollectionRef); + const handleKeydown = composeEventHandlers((e) => { + props.onKeydown?.(e); + }, (e) => { + const { currentTarget, target } = e; + const code = getEventCode(e); + if (currentTarget.contains(target)) {} + if (EVENT_CODE.tab === code) return handleClose(); + onKeydown(e); + }); + function handleFocus(e) { + isUsingKeyboard.value && onFocus(e); + } + return { + size, + rovingFocusGroupRootStyle, + dropdownKls, + role, + triggerId, + dropdownListWrapperRef, + handleKeydown, + onBlur, + handleFocus, + onMousedown + }; + } + }); + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown-menu.vue + const _hoisted_1$38 = ["role", "aria-labelledby"]; + function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("ul", { + ref: _ctx.dropdownListWrapperRef, + class: (0, vue.normalizeClass)(_ctx.dropdownKls), + style: (0, vue.normalizeStyle)(_ctx.rovingFocusGroupRootStyle), + tabindex: -1, + role: _ctx.role, + "aria-labelledby": _ctx.triggerId, + onFocusin: _cache[0] || (_cache[0] = (...args) => _ctx.handleFocus && _ctx.handleFocus(...args)), + onFocusout: _cache[1] || (_cache[1] = (...args) => _ctx.onBlur && _ctx.onBlur(...args)), + onKeydown: _cache[2] || (_cache[2] = (0, vue.withModifiers)((...args) => _ctx.handleKeydown && _ctx.handleKeydown(...args), ["self"])), + onMousedown: _cache[3] || (_cache[3] = (0, vue.withModifiers)((...args) => _ctx.onMousedown && _ctx.onMousedown(...args), ["self"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 46, _hoisted_1$38); + } + var dropdown_menu_default = /* @__PURE__ */ _plugin_vue_export_helper_default(dropdown_menu_vue_vue_type_script_lang_default, [["render", _sfc_render$8]]); + +//#endregion +//#region ../../packages/components/dropdown/index.ts + const ElDropdown = withInstall(dropdown_default, { + DropdownItem: dropdown_item_default, + DropdownMenu: dropdown_menu_default + }); + const ElDropdownItem = withNoopInstall(dropdown_item_default); + const ElDropdownMenu = withNoopInstall(dropdown_menu_default); + +//#endregion +//#region ../../packages/components/empty/src/empty.ts +/** + * @deprecated Removed after 3.0.0, Use `EmptyProps` instead. + */ + const emptyProps = buildProps({ + image: { + type: String, + default: "" + }, + imageSize: Number, + description: { + type: String, + default: "" + } + }); + +//#endregion +//#region ../../packages/components/empty/src/img-empty.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$37 = { + viewBox: "0 0 79 86", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "xmlns:xlink": "http://www.w3.org/1999/xlink" + }; + const _hoisted_2$23 = ["id"]; + const _hoisted_3$8 = ["stop-color"]; + const _hoisted_4$6 = ["stop-color"]; + const _hoisted_5$4 = ["id"]; + const _hoisted_6$1 = ["stop-color"]; + const _hoisted_7 = ["stop-color"]; + const _hoisted_8 = ["id"]; + const _hoisted_9 = { + stroke: "none", + "stroke-width": "1", + fill: "none", + "fill-rule": "evenodd" + }; + const _hoisted_10 = { transform: "translate(-1268.000000, -535.000000)" }; + const _hoisted_11 = { transform: "translate(1268.000000, 535.000000)" }; + const _hoisted_12 = ["fill"]; + const _hoisted_13 = ["fill"]; + const _hoisted_14 = { transform: "translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)" }; + const _hoisted_15 = ["fill"]; + const _hoisted_16 = ["fill"]; + const _hoisted_17 = ["fill"]; + const _hoisted_18 = ["fill"]; + const _hoisted_19 = ["fill"]; + const _hoisted_20 = { transform: "translate(53.000000, 45.000000)" }; + const _hoisted_21 = ["fill", "xlink:href"]; + const _hoisted_22 = ["fill", "mask"]; + const _hoisted_23 = ["fill"]; + var img_empty_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ImgEmpty", + __name: "img-empty", + setup(__props) { + const ns = useNamespace("empty"); + const id = useId(); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("svg", _hoisted_1$37, [(0, vue.createElementVNode)("defs", null, [ + (0, vue.createElementVNode)("linearGradient", { + id: `linearGradient-1-${(0, vue.unref)(id)}`, + x1: "38.8503086%", + y1: "0%", + x2: "61.1496914%", + y2: "100%" + }, [(0, vue.createElementVNode)("stop", { + "stop-color": `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-1")})`, + offset: "0%" + }, null, 8, _hoisted_3$8), (0, vue.createElementVNode)("stop", { + "stop-color": `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-4")})`, + offset: "100%" + }, null, 8, _hoisted_4$6)], 8, _hoisted_2$23), + (0, vue.createElementVNode)("linearGradient", { + id: `linearGradient-2-${(0, vue.unref)(id)}`, + x1: "0%", + y1: "9.5%", + x2: "100%", + y2: "90.5%" + }, [(0, vue.createElementVNode)("stop", { + "stop-color": `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-1")})`, + offset: "0%" + }, null, 8, _hoisted_6$1), (0, vue.createElementVNode)("stop", { + "stop-color": `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-6")})`, + offset: "100%" + }, null, 8, _hoisted_7)], 8, _hoisted_5$4), + (0, vue.createElementVNode)("rect", { + id: `path-3-${(0, vue.unref)(id)}`, + x: "0", + y: "0", + width: "17", + height: "36" + }, null, 8, _hoisted_8) + ]), (0, vue.createElementVNode)("g", _hoisted_9, [(0, vue.createElementVNode)("g", _hoisted_10, [(0, vue.createElementVNode)("g", _hoisted_11, [ + (0, vue.createElementVNode)("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(${(0, vue.unref)(ns).cssVarBlockName("fill-color-3")})` + }, null, 8, _hoisted_12), + (0, vue.createElementVNode)("polygon", { + fill: `var(${(0, vue.unref)(ns).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, _hoisted_13), + (0, vue.createElementVNode)("g", _hoisted_14, [ + (0, vue.createElementVNode)("polygon", { + fill: `var(${(0, vue.unref)(ns).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, _hoisted_15), + (0, vue.createElementVNode)("polygon", { + fill: `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-5")})`, + points: "-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43" + }, null, 8, _hoisted_16), + (0, vue.createElementVNode)("rect", { + fill: `url(#linearGradient-1-${(0, vue.unref)(id)})`, + transform: "translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ", + x: "38", + y: "7", + width: "17", + height: "36" + }, null, 8, _hoisted_17), + (0, vue.createElementVNode)("polygon", { + fill: `var(${(0, vue.unref)(ns).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, _hoisted_18) + ]), + (0, vue.createElementVNode)("rect", { + fill: `url(#linearGradient-2-${(0, vue.unref)(id)})`, + x: "13", + y: "45", + width: "40", + height: "36" + }, null, 8, _hoisted_19), + (0, vue.createElementVNode)("g", _hoisted_20, [(0, vue.createElementVNode)("use", { + fill: `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-8")})`, + transform: "translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ", + "xlink:href": `#path-3-${(0, vue.unref)(id)}` + }, null, 8, _hoisted_21), (0, vue.createElementVNode)("polygon", { + fill: `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-9")})`, + mask: `url(#mask-4-${(0, vue.unref)(id)})`, + 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, _hoisted_22)]), + (0, vue.createElementVNode)("polygon", { + fill: `var(${(0, vue.unref)(ns).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, _hoisted_23) + ])])])]); + }; + } + }); + +//#endregion +//#region ../../packages/components/empty/src/img-empty.vue + var img_empty_default = img_empty_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/empty/src/empty.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$36 = ["src"]; + const _hoisted_2$22 = { key: 1 }; + var empty_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElEmpty", + __name: "empty", + props: emptyProps, + setup(__props) { + const props = __props; + const { t } = useLocale(); + const ns = useNamespace("empty"); + const emptyDescription = (0, vue.computed)(() => props.description || t("el.table.emptyText")); + const imageStyle = (0, vue.computed)(() => ({ width: addUnit(props.imageSize) })); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [ + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("image")), + style: (0, vue.normalizeStyle)(imageStyle.value) + }, [__props.image ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("img", { + key: 0, + src: __props.image, + ondragstart: "return false" + }, null, 8, _hoisted_1$36)) : (0, vue.renderSlot)(_ctx.$slots, "image", { key: 1 }, () => [(0, vue.createVNode)(img_empty_default)])], 6), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("description")) }, [_ctx.$slots.description ? (0, vue.renderSlot)(_ctx.$slots, "description", { key: 0 }) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", _hoisted_2$22, (0, vue.toDisplayString)(emptyDescription.value), 1))], 2), + _ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("bottom")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/empty/src/empty.vue + var empty_default = empty_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/empty/index.ts + const ElEmpty = withInstall(empty_default); + +//#endregion +//#region ../../packages/components/image/src/image.ts +/** + * @deprecated Removed after 3.0.0, Use `ImageProps` instead. + */ + const imageProps = buildProps({ + 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: definePropType([String, Object]) }, + previewSrcList: { + type: definePropType(Array), + default: () => mutable([]) + }, + previewTeleported: Boolean, + zIndex: { type: Number }, + initialIndex: { + type: Number, + default: 0 + }, + infinite: { + type: Boolean, + default: true + }, + closeOnPressEscape: { + type: Boolean, + default: true + }, + 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: definePropType(String) } + }); + const imageEmits = { + load: (evt) => evt instanceof Event, + error: (evt) => evt instanceof Event, + switch: (val) => isNumber(val), + close: () => true, + show: () => true + }; + +//#endregion +//#region ../../packages/components/image-viewer/src/image-viewer.ts +/** + * @deprecated Removed after 3.0.0, Use `ImageViewerProps` instead. + */ + const imageViewerProps = buildProps({ + urlList: { + type: definePropType(Array), + default: () => mutable([]) + }, + zIndex: { type: Number }, + initialIndex: { + type: Number, + default: 0 + }, + infinite: { + type: Boolean, + default: true + }, + hideOnClickModal: Boolean, + teleported: Boolean, + closeOnPressEscape: { + type: Boolean, + default: true + }, + 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: definePropType(String) } + }); + const imageViewerEmits = { + close: () => true, + error: (evt) => evt instanceof Event, + switch: (index) => isNumber(index), + rotate: (deg) => isNumber(deg) + }; + +//#endregion +//#region ../../packages/components/image-viewer/src/image-viewer.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$35 = ["src", "crossorigin"]; + var image_viewer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElImageViewer", + __name: "image-viewer", + props: imageViewerProps, + emits: imageViewerEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const modes = { + CONTAIN: { + name: "contain", + icon: (0, vue.markRaw)(full_screen_default) + }, + ORIGINAL: { + name: "original", + icon: (0, vue.markRaw)(scale_to_original_default) + } + }; + const props = __props; + const emit = __emit; + let stopWheelListener; + const { t } = useLocale(); + const ns = useNamespace("image-viewer"); + const { nextZIndex } = useZIndex(); + const wrapper = (0, vue.ref)(); + const imgRef = (0, vue.ref)(); + const scopeEventListener = (0, vue.effectScope)(); + const scaleClamped = (0, vue.computed)(() => { + const { scale, minScale, maxScale } = props; + return clamp$2(scale, minScale, maxScale); + }); + const loading = (0, vue.ref)(true); + const loadError = (0, vue.ref)(false); + const visible = (0, vue.ref)(false); + const activeIndex = (0, vue.ref)(props.initialIndex); + const mode = (0, vue.shallowRef)(modes.CONTAIN); + const transform = (0, vue.ref)({ + scale: scaleClamped.value, + deg: 0, + offsetX: 0, + offsetY: 0, + enableTransition: false + }); + const zIndex = (0, vue.ref)(props.zIndex ?? nextZIndex()); + useLockscreen(visible, { ns }); + const isSingle = (0, vue.computed)(() => { + const { urlList } = props; + return urlList.length <= 1; + }); + const isFirst = (0, vue.computed)(() => activeIndex.value === 0); + const isLast = (0, vue.computed)(() => activeIndex.value === props.urlList.length - 1); + const currentImg = (0, vue.computed)(() => props.urlList[activeIndex.value]); + const arrowPrevKls = (0, vue.computed)(() => [ + ns.e("btn"), + ns.e("prev"), + ns.is("disabled", !props.infinite && isFirst.value) + ]); + const arrowNextKls = (0, vue.computed)(() => [ + ns.e("btn"), + ns.e("next"), + ns.is("disabled", !props.infinite && isLast.value) + ]); + const imgStyle = (0, vue.computed)(() => { + const { scale, deg, offsetX, offsetY, enableTransition } = transform.value; + let translateX = offsetX / scale; + let translateY = offsetY / scale; + const radian = deg * Math.PI / 180; + const cosRadian = Math.cos(radian); + const sinRadian = Math.sin(radian); + translateX = translateX * cosRadian + translateY * sinRadian; + translateY = translateY * cosRadian - offsetX / scale * sinRadian; + const style = { + transform: `scale(${scale}) rotate(${deg}deg) translate(${translateX}px, ${translateY}px)`, + transition: enableTransition ? "transform .3s" : "" + }; + if (mode.value.name === modes.CONTAIN.name) style.maxWidth = style.maxHeight = "100%"; + return style; + }); + const progress = (0, vue.computed)(() => `${activeIndex.value + 1} / ${props.urlList.length}`); + function hide() { + unregisterEventListener(); + stopWheelListener?.(); + visible.value = false; + emit("close"); + } + function registerEventListener() { + const keydownHandler = throttle((e) => { + switch (getEventCode(e)) { + case EVENT_CODE.esc: + props.closeOnPressEscape && hide(); + break; + case EVENT_CODE.space: + toggleMode(); + break; + case EVENT_CODE.left: + prev(); + break; + case EVENT_CODE.up: + handleActions("zoomIn"); + break; + case EVENT_CODE.right: + next(); + break; + case EVENT_CODE.down: + handleActions("zoomOut"); + break; + } + }); + const mousewheelHandler = throttle((e) => { + handleActions((e.deltaY || e.deltaX) < 0 ? "zoomIn" : "zoomOut", { + zoomRate: props.zoomRate, + enableTransition: false + }); + }); + scopeEventListener.run(() => { + useEventListener(document, "keydown", keydownHandler); + useEventListener(wrapper, "wheel", mousewheelHandler); + }); + } + function unregisterEventListener() { + scopeEventListener.stop(); + } + function handleImgLoad() { + loading.value = false; + } + function handleImgError(e) { + loadError.value = true; + loading.value = false; + emit("error", e); + e.target.alt = t("el.image.error"); + } + function handleMouseDown(e) { + if (loading.value || e.button !== 0 || !wrapper.value) return; + transform.value.enableTransition = false; + const { offsetX, offsetY } = transform.value; + const startX = e.pageX; + const startY = e.pageY; + const dragHandler = throttle((ev) => { + transform.value = { + ...transform.value, + offsetX: offsetX + ev.pageX - startX, + offsetY: offsetY + ev.pageY - startY + }; + }); + const removeMousemove = useEventListener(document, "mousemove", dragHandler); + const removeMouseup = useEventListener(document, "mouseup", () => { + removeMousemove(); + removeMouseup(); + }); + e.preventDefault(); + } + function handleTouchStart(e) { + if (loading.value || !wrapper.value || e.touches.length !== 1) return; + transform.value.enableTransition = false; + const { offsetX, offsetY } = transform.value; + const { pageX: startX, pageY: startY } = e.touches[0]; + const dragHandler = throttle((ev) => { + const targetTouch = ev.touches[0]; + transform.value = { + ...transform.value, + offsetX: offsetX + targetTouch.pageX - startX, + offsetY: offsetY + targetTouch.pageY - startY + }; + }); + const removeTouchmove = useEventListener(document, "touchmove", dragHandler); + const removeTouchend = useEventListener(document, "touchend", () => { + removeTouchmove(); + removeTouchend(); + }); + e.preventDefault(); + } + function reset() { + transform.value = { + scale: scaleClamped.value, + deg: 0, + offsetX: 0, + offsetY: 0, + enableTransition: false + }; + } + function toggleMode() { + if (loading.value || loadError.value) return; + const modeNames = keysOf(modes); + const modeValues = Object.values(modes); + const currentMode = mode.value.name; + mode.value = modes[modeNames[(modeValues.findIndex((i) => i.name === currentMode) + 1) % modeNames.length]]; + reset(); + } + function setActiveItem(index) { + loadError.value = false; + const len = props.urlList.length; + activeIndex.value = (index + len) % len; + } + function prev() { + if (isFirst.value && !props.infinite) return; + setActiveItem(activeIndex.value - 1); + } + function next() { + if (isLast.value && !props.infinite) return; + setActiveItem(activeIndex.value + 1); + } + function handleActions(action, options = {}) { + if (loading.value || loadError.value) return; + const { minScale, maxScale } = props; + const { zoomRate, rotateDeg, enableTransition } = { + zoomRate: props.zoomRate, + rotateDeg: 90, + enableTransition: true, + ...options + }; + switch (action) { + case "zoomOut": + if (transform.value.scale > minScale) transform.value.scale = Number.parseFloat((transform.value.scale / zoomRate).toFixed(3)); + break; + case "zoomIn": + if (transform.value.scale < maxScale) transform.value.scale = Number.parseFloat((transform.value.scale * zoomRate).toFixed(3)); + break; + case "clockwise": + transform.value.deg += rotateDeg; + emit("rotate", transform.value.deg); + break; + case "anticlockwise": + transform.value.deg -= rotateDeg; + emit("rotate", transform.value.deg); + break; + } + transform.value.enableTransition = enableTransition; + } + function onFocusoutPrevented(event) { + if (event.detail?.focusReason === "pointer") event.preventDefault(); + } + function onCloseRequested() { + if (props.closeOnPressEscape) hide(); + } + function wheelHandler(e) { + if (!e.ctrlKey) return; + if (e.deltaY < 0) { + e.preventDefault(); + return false; + } else if (e.deltaY > 0) { + e.preventDefault(); + return false; + } + } + (0, vue.watch)(() => scaleClamped.value, (val) => { + transform.value.scale = val; + }); + (0, vue.watch)(currentImg, () => { + (0, vue.nextTick)(() => { + if (!imgRef.value?.complete) loading.value = true; + }); + }); + (0, vue.watch)(activeIndex, (val) => { + reset(); + emit("switch", val); + }); + (0, vue.onMounted)(() => { + visible.value = true; + registerEventListener(); + stopWheelListener = useEventListener("wheel", wheelHandler, { passive: false }); + }); + __expose({ setActiveItem }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTeleport), { + to: "body", + disabled: !__props.teleported + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(vue.Transition, { + name: "viewer-fade", + appear: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref_key: "wrapper", + ref: wrapper, + tabindex: -1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("wrapper")), + style: (0, vue.normalizeStyle)({ zIndex: zIndex.value }) + }, [(0, vue.createVNode)((0, vue.unref)(focus_trap_default), { + loop: "", + trapped: "", + "focus-trap-el": wrapper.value, + "focus-start-el": "container", + onFocusoutPrevented, + onReleaseRequested: onCloseRequested + }, { + default: (0, vue.withCtx)(() => [ + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("mask")), + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(($event) => __props.hideOnClickModal && hide(), ["self"])) + }, null, 2), + (0, vue.createCommentVNode)(" CLOSE "), + (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("btn"), (0, vue.unref)(ns).e("close")]), + onClick: hide + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + })], 2), + (0, vue.createCommentVNode)(" ARROW "), + !isSingle.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)(arrowPrevKls.value), + onClick: prev + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_left_default))]), + _: 1 + })], 2), (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)(arrowNextKls.value), + onClick: next + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })], 2)], 64)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.progress || __props.showProgress ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("btn"), (0, vue.unref)(ns).e("progress")]) + }, [(0, vue.renderSlot)(_ctx.$slots, "progress", { + activeIndex: activeIndex.value, + total: __props.urlList.length + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(progress.value), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createCommentVNode)(" ACTIONS "), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("btn"), (0, vue.unref)(ns).e("actions")]) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("actions__inner")) }, [(0, vue.renderSlot)(_ctx.$slots, "toolbar", { + actions: handleActions, + prev, + next, + reset: toggleMode, + activeIndex: activeIndex.value, + setActiveItem + }, () => [ + (0, vue.createVNode)((0, vue.unref)(ElIcon), { onClick: _cache[1] || (_cache[1] = ($event) => handleActions("zoomOut")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(zoom_out_default))]), + _: 1 + }), + (0, vue.createVNode)((0, vue.unref)(ElIcon), { onClick: _cache[2] || (_cache[2] = ($event) => handleActions("zoomIn")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(zoom_in_default))]), + _: 1 + }), + (0, vue.createElementVNode)("i", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("actions__divider")) }, null, 2), + (0, vue.createVNode)((0, vue.unref)(ElIcon), { onClick: toggleMode }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(mode.value.icon)))]), + _: 1 + }), + (0, vue.createElementVNode)("i", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("actions__divider")) }, null, 2), + (0, vue.createVNode)((0, vue.unref)(ElIcon), { onClick: _cache[3] || (_cache[3] = ($event) => handleActions("anticlockwise")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(refresh_left_default))]), + _: 1 + }), + (0, vue.createVNode)((0, vue.unref)(ElIcon), { onClick: _cache[4] || (_cache[4] = ($event) => handleActions("clockwise")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(refresh_right_default))]), + _: 1 + }) + ])], 2)], 2), + (0, vue.createCommentVNode)(" CANVAS "), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("canvas")) }, [loadError.value && _ctx.$slots["viewer-error"] ? (0, vue.renderSlot)(_ctx.$slots, "viewer-error", { + key: 0, + activeIndex: activeIndex.value, + src: currentImg.value + }) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("img", { + ref_key: "imgRef", + ref: imgRef, + key: currentImg.value, + src: currentImg.value, + style: (0, vue.normalizeStyle)(imgStyle.value), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("img")), + crossorigin: __props.crossorigin, + onLoad: handleImgLoad, + onError: handleImgError, + onMousedown: handleMouseDown, + onTouchstart: handleTouchStart + }, null, 46, _hoisted_1$35))], 2), + (0, vue.renderSlot)(_ctx.$slots, "default") + ]), + _: 3 + }, 8, ["focus-trap-el"])], 6)]), + _: 3 + })]), + _: 3 + }, 8, ["disabled"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/image-viewer/src/image-viewer.vue + var image_viewer_default = image_viewer_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/image-viewer/index.ts + const ElImageViewer = withInstall(image_viewer_default); + +//#endregion +//#region ../../packages/components/image/src/image.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$34 = [ + "src", + "loading", + "crossorigin" + ]; + const _hoisted_2$21 = { key: 0 }; + var image_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElImage", + inheritAttrs: false, + __name: "image", + props: imageProps, + emits: imageEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const { t } = useLocale(); + const ns = useNamespace("image"); + const rawAttrs = (0, vue.useAttrs)(); + const containerAttrs = (0, vue.computed)(() => { + return fromPairs(Object.entries(rawAttrs).filter(([key]) => /^(data-|on[A-Z])/i.test(key) || ["id", "style"].includes(key))); + }); + const imgAttrs = useAttrs({ + excludeListeners: true, + excludeKeys: (0, vue.computed)(() => { + return Object.keys(containerAttrs.value); + }) + }); + const imageSrc = (0, vue.ref)(); + const hasLoadError = (0, vue.ref)(false); + const isLoading = (0, vue.ref)(true); + const showViewer = (0, vue.ref)(false); + const container = (0, vue.ref)(); + const _scrollContainer = (0, vue.ref)(); + const supportLoading = isClient && "loading" in HTMLImageElement.prototype; + let stopScrollListener; + const imageKls = (0, vue.computed)(() => [ + ns.e("inner"), + preview.value && ns.e("preview"), + isLoading.value && ns.is("loading") + ]); + const imageStyle = (0, vue.computed)(() => { + const { fit } = props; + if (isClient && fit) return { objectFit: fit }; + return {}; + }); + const preview = (0, vue.computed)(() => { + const { previewSrcList } = props; + return isArray$1(previewSrcList) && previewSrcList.length > 0; + }); + const imageIndex = (0, vue.computed)(() => { + const { previewSrcList, initialIndex } = props; + let previewIndex = initialIndex; + if (initialIndex > previewSrcList.length - 1) previewIndex = 0; + return previewIndex; + }); + const isManual = (0, vue.computed)(() => { + if (props.loading === "eager") return false; + return !supportLoading && props.loading === "lazy" || props.lazy; + }); + const loadImage = () => { + if (!isClient) return; + isLoading.value = true; + hasLoadError.value = false; + imageSrc.value = props.src; + }; + function handleLoad(event) { + isLoading.value = false; + hasLoadError.value = false; + emit("load", event); + } + function handleError(event) { + isLoading.value = false; + hasLoadError.value = true; + emit("error", event); + } + function handleLazyLoad(isIntersecting) { + if (isIntersecting) { + loadImage(); + removeLazyLoadListener(); + } + } + const lazyLoadHandler = useThrottleFn(handleLazyLoad, 200, true); + async function addLazyLoadListener() { + if (!isClient) return; + await (0, vue.nextTick)(); + const { scrollContainer } = props; + if (isElement$1(scrollContainer)) _scrollContainer.value = scrollContainer; + else if (isString(scrollContainer) && scrollContainer !== "") _scrollContainer.value = document.querySelector(scrollContainer) ?? void 0; + else if (container.value) { + const scrollContainer = getScrollContainer(container.value); + _scrollContainer.value = isWindow(scrollContainer) ? void 0 : scrollContainer; + } + const { stop } = useIntersectionObserver(container, ([entry]) => { + lazyLoadHandler(entry.isIntersecting); + }, { root: _scrollContainer }); + stopScrollListener = stop; + } + function removeLazyLoadListener() { + if (!isClient || !lazyLoadHandler) return; + stopScrollListener?.(); + _scrollContainer.value = void 0; + stopScrollListener = void 0; + } + function clickHandler() { + if (!preview.value) return; + showViewer.value = true; + emit("show"); + } + function closeViewer() { + showViewer.value = false; + emit("close"); + } + function switchViewer(val) { + emit("switch", val); + } + (0, vue.watch)(() => props.src, () => { + if (isManual.value) { + isLoading.value = true; + hasLoadError.value = false; + removeLazyLoadListener(); + addLazyLoadListener(); + } else loadImage(); + }); + (0, vue.onMounted)(() => { + if (isManual.value) addLazyLoadListener(); + else loadImage(); + }); + __expose({ showPreview: clickHandler }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", (0, vue.mergeProps)({ + ref_key: "container", + ref: container + }, containerAttrs.value, { class: [(0, vue.unref)(ns).b(), _ctx.$attrs.class] }), [hasLoadError.value ? (0, vue.renderSlot)(_ctx.$slots, "error", { key: 0 }, () => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("error")) }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.image.error")), 3)]) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [imageSrc.value !== void 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("img", (0, vue.mergeProps)({ key: 0 }, (0, vue.unref)(imgAttrs), { + src: imageSrc.value, + loading: __props.loading, + style: imageStyle.value, + class: imageKls.value, + crossorigin: __props.crossorigin, + onClick: clickHandler, + onLoad: handleLoad, + onError: handleError + }), null, 16, _hoisted_1$34)) : (0, vue.createCommentVNode)("v-if", true), isLoading.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("wrapper")) + }, [(0, vue.renderSlot)(_ctx.$slots, "placeholder", {}, () => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("placeholder")) }, null, 2)])], 2)) : (0, vue.createCommentVNode)("v-if", true)], 64)), preview.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [showViewer.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElImageViewer), { + key: 0, + "z-index": __props.zIndex, + "initial-index": imageIndex.value, + infinite: __props.infinite, + "zoom-rate": __props.zoomRate, + "min-scale": __props.minScale, + "max-scale": __props.maxScale, + "show-progress": __props.showProgress, + "url-list": __props.previewSrcList, + scale: __props.scale, + crossorigin: __props.crossorigin, + "hide-on-click-modal": __props.hideOnClickModal, + teleported: __props.previewTeleported, + "close-on-press-escape": __props.closeOnPressEscape, + onClose: closeViewer, + onSwitch: switchViewer + }, (0, vue.createSlots)({ + toolbar: (0, vue.withCtx)((toolbar) => [(0, vue.renderSlot)(_ctx.$slots, "toolbar", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(toolbar)))]), + default: (0, vue.withCtx)(() => [_ctx.$slots.viewer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_2$21, [(0, vue.renderSlot)(_ctx.$slots, "viewer")])) : (0, vue.createCommentVNode)("v-if", true)]), + _: 2 + }, [_ctx.$slots.progress ? { + name: "progress", + fn: (0, vue.withCtx)((progress) => [(0, vue.renderSlot)(_ctx.$slots, "progress", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(progress)))]), + key: "0" + } : void 0, _ctx.$slots["viewer-error"] ? { + name: "viewer-error", + fn: (0, vue.withCtx)((viewerError) => [(0, vue.renderSlot)(_ctx.$slots, "viewer-error", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(viewerError)))]), + 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" + ])) : (0, vue.createCommentVNode)("v-if", true)], 64)) : (0, vue.createCommentVNode)("v-if", true)], 16); + }; + } + }); + +//#endregion +//#region ../../packages/components/image/src/image.vue + var image_default = image_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/image/index.ts + const ElImage = withInstall(image_default); + +//#endregion +//#region ../../packages/components/input-number/src/input-number.ts +/** + * @deprecated Removed after 3.0.0, Use `InputNumberProps` instead. + */ + const inputNumberProps = buildProps({ + id: { + type: String, + default: void 0 + }, + step: { + type: Number, + default: 1 + }, + stepStrictly: Boolean, + max: { + type: Number, + default: Number.MAX_SAFE_INTEGER + }, + min: { + type: Number, + default: Number.MIN_SAFE_INTEGER + }, + modelValue: { type: [Number, null] }, + readonly: Boolean, + disabled: { + type: Boolean, + default: void 0 + }, + size: useSizeProp, + controls: { + type: Boolean, + default: true + }, + controlsPosition: { + type: String, + default: "", + values: ["", "right"] + }, + valueOnClear: { + type: definePropType([ + String, + Number, + null + ]), + validator: (val) => val === null || isNumber(val) || ["min", "max"].includes(val), + default: null + }, + name: String, + placeholder: String, + precision: { + type: Number, + validator: (val) => val >= 0 && val === Number.parseInt(`${val}`, 10) + }, + validateEvent: { + type: Boolean, + default: true + }, + ...useAriaProps(["ariaLabel"]), + inputmode: { + type: definePropType(String), + default: void 0 + }, + align: { + type: definePropType(String), + default: "center" + }, + disabledScientific: Boolean + }); + const inputNumberEmits = { + [CHANGE_EVENT]: (cur, prev) => prev !== cur, + blur: (e) => e instanceof FocusEvent, + focus: (e) => e instanceof FocusEvent, + [INPUT_EVENT]: (val) => isNumber(val) || isNil(val), + [UPDATE_MODEL_EVENT]: (val) => isNumber(val) || isNil(val) + }; + +//#endregion +//#region ../../packages/components/input-number/src/input-number.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$33 = ["aria-label"]; + const _hoisted_2$20 = ["aria-label"]; + var input_number_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElInputNumber", + __name: "input-number", + props: inputNumberProps, + emits: inputNumberEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const { t } = useLocale(); + const ns = useNamespace("input-number"); + const input = (0, vue.ref)(); + const data = (0, vue.reactive)({ + currentValue: props.modelValue, + userInput: null + }); + const { formItem } = useFormItem(); + const minDisabled = (0, vue.computed)(() => isNumber(props.modelValue) && props.modelValue <= props.min); + const maxDisabled = (0, vue.computed)(() => isNumber(props.modelValue) && props.modelValue >= props.max); + const numPrecision = (0, vue.computed)(() => { + const stepPrecision = getPrecision(props.step); + if (!isUndefined(props.precision)) { + if (stepPrecision > props.precision) /* @__PURE__ */ debugWarn("InputNumber", "precision should not be less than the decimal places of step"); + return props.precision; + } else return Math.max(getPrecision(props.modelValue), stepPrecision); + }); + const controlsAtRight = (0, vue.computed)(() => { + return props.controls && props.controlsPosition === "right"; + }); + const inputNumberSize = useFormSize(); + const inputNumberDisabled = useFormDisabled(); + const displayValue = (0, vue.computed)(() => { + if (data.userInput !== null) return data.userInput; + let currentValue = data.currentValue; + if (isNil(currentValue)) return ""; + if (isNumber(currentValue)) { + if (Number.isNaN(currentValue)) return ""; + if (!isUndefined(props.precision)) currentValue = currentValue.toFixed(props.precision); + } + return currentValue; + }); + const toPrecision = (num, pre) => { + if (isUndefined(pre)) pre = numPrecision.value; + if (pre === 0) return Math.round(num); + let snum = String(num); + const pointPos = snum.indexOf("."); + if (pointPos === -1) return num; + if (!snum.replace(".", "").split("")[pointPos + pre]) return num; + const length = snum.length; + if (snum.charAt(length - 1) === "5") snum = `${snum.slice(0, Math.max(0, length - 1))}6`; + return Number.parseFloat(Number(snum).toFixed(pre)); + }; + const getPrecision = (value) => { + if (isNil(value)) return 0; + const valueString = value.toString(); + const dotPosition = valueString.indexOf("."); + let precision = 0; + if (dotPosition !== -1) precision = valueString.length - dotPosition - 1; + return precision; + }; + const ensurePrecision = (val, coefficient = 1) => { + if (!isNumber(val)) return data.currentValue; + if (val >= Number.MAX_SAFE_INTEGER && coefficient === 1) { + /* @__PURE__ */ debugWarn("InputNumber", "The value has reached the maximum safe integer limit."); + return val; + } else if (val <= Number.MIN_SAFE_INTEGER && coefficient === -1) { + /* @__PURE__ */ debugWarn("InputNumber", "The value has reached the minimum safe integer limit."); + return val; + } + return toPrecision(val + props.step * coefficient); + }; + const handleKeydown = (event) => { + const code = getEventCode(event); + const key = getEventKey(event); + if (props.disabledScientific && ["e", "E"].includes(key)) { + event.preventDefault(); + return; + } + switch (code) { + case EVENT_CODE.up: + event.preventDefault(); + increase(); + break; + case EVENT_CODE.down: + event.preventDefault(); + decrease(); + break; + } + }; + const increase = () => { + if (props.readonly || inputNumberDisabled.value || maxDisabled.value) return; + setCurrentValue(ensurePrecision(Number(displayValue.value) || 0)); + emit(INPUT_EVENT, data.currentValue); + setCurrentValueToModelValue(); + }; + const decrease = () => { + if (props.readonly || inputNumberDisabled.value || minDisabled.value) return; + setCurrentValue(ensurePrecision(Number(displayValue.value) || 0, -1)); + emit(INPUT_EVENT, data.currentValue); + setCurrentValueToModelValue(); + }; + const verifyValue = (value, update) => { + const { max, min, step, precision, stepStrictly, valueOnClear } = props; + if (max < min) throwError("InputNumber", "min should not be greater than max."); + let newVal = Number(value); + if (isNil(value) || Number.isNaN(newVal)) return null; + if (value === "") { + if (valueOnClear === null) return null; + newVal = isString(valueOnClear) ? { + min, + max + }[valueOnClear] : valueOnClear; + } + if (stepStrictly) { + newVal = toPrecision(Math.round(toPrecision(newVal / step)) * step, precision); + if (newVal !== value) update && emit(UPDATE_MODEL_EVENT, newVal); + } + if (!isUndefined(precision)) newVal = toPrecision(newVal, precision); + if (newVal > max || newVal < min) { + newVal = newVal > max ? max : min; + update && emit(UPDATE_MODEL_EVENT, newVal); + } + return newVal; + }; + const setCurrentValue = (value, emitChange = true) => { + const oldVal = data.currentValue; + const newVal = verifyValue(value); + if (!emitChange) { + emit(UPDATE_MODEL_EVENT, newVal); + return; + } + data.userInput = null; + if (oldVal === newVal && value) return; + emit(UPDATE_MODEL_EVENT, newVal); + if (oldVal !== newVal) emit(CHANGE_EVENT, newVal, oldVal); + if (props.validateEvent) formItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + data.currentValue = newVal; + }; + const handleInput = (value) => { + data.userInput = value; + const newVal = value === "" ? null : Number(value); + emit(INPUT_EVENT, newVal); + setCurrentValue(newVal, false); + }; + const handleInputChange = (value) => { + const newVal = value !== "" ? Number(value) : ""; + if (isNumber(newVal) && !Number.isNaN(newVal) || value === "") setCurrentValue(newVal); + setCurrentValueToModelValue(); + data.userInput = null; + }; + const focus = () => { + input.value?.focus?.(); + }; + const blur = () => { + input.value?.blur?.(); + }; + const handleFocus = (event) => { + emit("focus", event); + }; + const handleBlur = (event) => { + data.userInput = null; + if (data.currentValue === null && input.value?.input) input.value.input.value = ""; + emit("blur", event); + if (props.validateEvent) formItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + }; + const setCurrentValueToModelValue = () => { + if (data.currentValue !== props.modelValue) data.currentValue = props.modelValue; + }; + const handleWheel = (e) => { + if (document.activeElement === e.target) e.preventDefault(); + }; + (0, vue.watch)(() => props.modelValue, (value, oldValue) => { + const newValue = verifyValue(value, true); + if (data.userInput === null && newValue !== oldValue) data.currentValue = newValue; + }, { immediate: true }); + (0, vue.watch)(() => props.precision, () => { + data.currentValue = verifyValue(props.modelValue); + }); + (0, vue.onMounted)(() => { + const { min, max, modelValue } = props; + const innerInput = input.value?.input; + innerInput.setAttribute("role", "spinbutton"); + if (Number.isFinite(max)) innerInput.setAttribute("aria-valuemax", String(max)); + else innerInput.removeAttribute("aria-valuemax"); + if (Number.isFinite(min)) innerInput.setAttribute("aria-valuemin", String(min)); + else innerInput.removeAttribute("aria-valuemin"); + innerInput.setAttribute("aria-valuenow", data.currentValue || data.currentValue === 0 ? String(data.currentValue) : ""); + innerInput.setAttribute("aria-disabled", String(inputNumberDisabled.value)); + if (!isNumber(modelValue) && modelValue != null) { + let val = Number(modelValue); + if (Number.isNaN(val)) val = null; + emit(UPDATE_MODEL_EVENT, val); + } + innerInput.addEventListener("wheel", handleWheel, { passive: false }); + }); + (0, vue.onUpdated)(() => { + (input.value?.input)?.setAttribute("aria-valuenow", `${data.currentValue ?? ""}`); + }); + __expose({ + focus, + blur + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).m((0, vue.unref)(inputNumberSize)), + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(inputNumberDisabled)), + (0, vue.unref)(ns).is("without-controls", !__props.controls), + (0, vue.unref)(ns).is("controls-right", controlsAtRight.value), + (0, vue.unref)(ns).is(__props.align, !!__props.align) + ]), + onDragstart: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["prevent"])) + }, [ + __props.controls ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + role: "button", + "aria-label": (0, vue.unref)(t)("el.inputNumber.decrease"), + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("decrease"), (0, vue.unref)(ns).is("disabled", minDisabled.value)]), + onKeydown: (0, vue.withKeys)(decrease, ["enter"]) + }, [(0, vue.renderSlot)(_ctx.$slots, "decrease-icon", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [controlsAtRight.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(arrow_down_default), { key: 0 })) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(minus_default), { key: 1 }))]), + _: 1 + })])], 42, _hoisted_1$33)), [[(0, vue.unref)(vRepeatClick), decrease]]) : (0, vue.createCommentVNode)("v-if", true), + __props.controls ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + role: "button", + "aria-label": (0, vue.unref)(t)("el.inputNumber.increase"), + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("increase"), (0, vue.unref)(ns).is("disabled", maxDisabled.value)]), + onKeydown: (0, vue.withKeys)(increase, ["enter"]) + }, [(0, vue.renderSlot)(_ctx.$slots, "increase-icon", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [controlsAtRight.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(arrow_up_default), { key: 0 })) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(plus_default), { key: 1 }))]), + _: 1 + })])], 42, _hoisted_2$20)), [[(0, vue.unref)(vRepeatClick), increase]]) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createVNode)((0, vue.unref)(ElInput), { + id: __props.id, + ref_key: "input", + ref: input, + type: "number", + step: __props.step, + "model-value": displayValue.value, + placeholder: __props.placeholder, + readonly: __props.readonly, + disabled: (0, vue.unref)(inputNumberDisabled), + size: (0, vue.unref)(inputNumberSize), + max: __props.max, + min: __props.min, + name: __props.name, + "aria-label": __props.ariaLabel, + "validate-event": false, + inputmode: __props.inputmode, + onKeydown: handleKeydown, + onBlur: handleBlur, + onFocus: handleFocus, + onInput: handleInput, + onChange: handleInputChange + }, (0, vue.createSlots)({ _: 2 }, [_ctx.$slots.prefix ? { + name: "prefix", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "prefix")]), + key: "0" + } : void 0, _ctx.$slots.suffix ? { + name: "suffix", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "suffix")]), + key: "1" + } : void 0]), 1032, [ + "id", + "step", + "model-value", + "placeholder", + "readonly", + "disabled", + "size", + "max", + "min", + "name", + "aria-label", + "inputmode" + ]) + ], 34); + }; + } + }); + +//#endregion +//#region ../../packages/components/input-number/src/input-number.vue + var input_number_default = input_number_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/input-number/index.ts + const ElInputNumber = withInstall(input_number_default); + +//#endregion +//#region ../../packages/components/input-tag/src/input-tag.ts +/** + * @deprecated Removed after 3.0.0, Use `InputTagProps` instead. + */ + const inputTagProps = buildProps({ + modelValue: { type: definePropType(Array) }, + max: Number, + tagType: { + ...tagProps.type, + default: "info" + }, + tagEffect: tagProps.effect, + effect: { + type: definePropType(String), + default: "light" + }, + trigger: { + type: definePropType(String), + default: EVENT_CODE.enter + }, + draggable: Boolean, + delimiter: { + type: [String, RegExp], + default: "" + }, + size: useSizeProp, + clearable: Boolean, + clearIcon: { + type: iconPropType, + default: circle_close_default + }, + disabled: { + type: Boolean, + default: void 0 + }, + validateEvent: { + type: Boolean, + default: true + }, + 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: definePropType(String), + default: "off" + }, + saveOnBlur: { + type: Boolean, + default: true + }, + collapseTags: Boolean, + collapseTagsTooltip: Boolean, + maxCollapseTags: { + type: Number, + default: 1 + }, + ariaLabel: String + }); + const inputTagEmits = { + [UPDATE_MODEL_EVENT]: (value) => isArray$1(value) || isUndefined(value), + [CHANGE_EVENT]: (value) => isArray$1(value) || isUndefined(value), + [INPUT_EVENT]: (value) => isString(value), + "add-tag": (value) => isString(value) || isArray$1(value), + "remove-tag": (value, index) => isString(value) && isNumber(index), + "drag-tag": (oldIndex, newIndex, value) => isNumber(oldIndex) && isNumber(newIndex) && isString(value), + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true + }; + +//#endregion +//#region ../../packages/components/input-tag/src/composables/use-drag-tag.ts + function useDragTag({ wrapperRef, handleDragged, afterDragged }) { + const ns = useNamespace("input-tag"); + const dropIndicatorRef = (0, vue.shallowRef)(); + const showDropIndicator = (0, vue.ref)(false); + let draggingIndex; + let draggingTag; + let dropIndex; + let dropType; + function getTagClassName(index) { + return `.${ns.e("inner")} .${ns.namespace.value}-tag:nth-child(${index + 1})`; + } + function handleDragStart(event, index) { + draggingIndex = index; + draggingTag = wrapperRef.value.querySelector(getTagClassName(index)); + if (draggingTag) draggingTag.style.opacity = "0.5"; + event.dataTransfer.effectAllowed = "move"; + } + function handleDragOver(event, index) { + dropIndex = index; + event.preventDefault(); + event.dataTransfer.dropEffect = "move"; + if (isUndefined(draggingIndex) || draggingIndex === index) { + showDropIndicator.value = false; + return; + } + const dropPosition = wrapperRef.value.querySelector(getTagClassName(index)).getBoundingClientRect(); + const dropPrev = !(draggingIndex + 1 === index); + const dropNext = !(draggingIndex - 1 === index); + const distance = event.clientX - dropPosition.left; + const prevPercent = dropPrev ? dropNext ? .5 : 1 : -1; + const nextPercent = dropNext ? dropPrev ? .5 : 0 : 1; + if (distance <= dropPosition.width * prevPercent) dropType = "before"; + else if (distance > dropPosition.width * nextPercent) dropType = "after"; + else dropType = void 0; + const innerEl = wrapperRef.value.querySelector(`.${ns.e("inner")}`); + const innerPosition = innerEl.getBoundingClientRect(); + const gap = Number.parseFloat(getStyle(innerEl, "gap")) / 2; + const indicatorTop = dropPosition.top - innerPosition.top; + let indicatorLeft = -9999; + if (dropType === "before") indicatorLeft = Math.max(dropPosition.left - innerPosition.left - gap, Math.floor(-gap / 2)); + else if (dropType === "after") { + const left = dropPosition.right - innerPosition.left; + indicatorLeft = left + (innerPosition.width === left ? Math.floor(gap / 2) : gap); + } + setStyle(dropIndicatorRef.value, { + top: `${indicatorTop}px`, + left: `${indicatorLeft}px` + }); + showDropIndicator.value = !!dropType; + } + function handleDragEnd(event) { + event.preventDefault(); + if (draggingTag) draggingTag.style.opacity = ""; + if (dropType && !isUndefined(draggingIndex) && !isUndefined(dropIndex) && draggingIndex !== dropIndex) handleDragged(draggingIndex, dropIndex, dropType); + showDropIndicator.value = false; + draggingIndex = void 0; + draggingTag = null; + dropIndex = void 0; + dropType = void 0; + afterDragged?.(); + } + return { + dropIndicatorRef, + showDropIndicator, + handleDragStart, + handleDragOver, + handleDragEnd + }; + } + +//#endregion +//#region ../../packages/components/input-tag/src/composables/use-hovering.ts + function useHovering() { + const hovering = (0, vue.ref)(false); + const handleMouseEnter = () => { + hovering.value = true; + }; + const handleMouseLeave = () => { + hovering.value = false; + }; + return { + hovering, + handleMouseEnter, + handleMouseLeave + }; + } + +//#endregion +//#region ../../packages/components/input-tag/src/composables/use-input-tag.ts + function useInputTag({ props, emit, formItem }) { + const disabled = useFormDisabled(); + const size = useFormSize(); + const inputRef = (0, vue.shallowRef)(); + const inputValue = (0, vue.ref)(); + const tagTooltipRef = (0, vue.ref)(); + const tagSize = (0, vue.computed)(() => { + return ["small"].includes(size.value) ? "small" : "default"; + }); + const placeholder = (0, vue.computed)(() => { + return props.modelValue?.length ? void 0 : props.placeholder; + }); + const closable = (0, vue.computed)(() => !(props.readonly || disabled.value)); + const inputLimit = (0, vue.computed)(() => { + return isUndefined(props.max) ? false : (props.modelValue?.length ?? 0) >= props.max; + }); + const showTagList = (0, vue.computed)(() => { + return props.collapseTags ? props.modelValue?.slice(0, props.maxCollapseTags) : props.modelValue; + }); + const collapseTagList = (0, vue.computed)(() => { + return props.collapseTags ? props.modelValue?.slice(props.maxCollapseTags) : []; + }); + const addTagsEmit = (value) => { + const list = [...props.modelValue ?? [], ...castArray$1(value)]; + emit(UPDATE_MODEL_EVENT, list); + emit(CHANGE_EVENT, list); + emit("add-tag", value); + inputValue.value = void 0; + }; + const getDelimitedTags = (input) => { + const parts = input.split(props.delimiter); + const tags = parts.length > 1 ? parts.map((val) => val.trim()).filter(Boolean) : []; + if (props.max) { + const maxInsert = props.max - (props.modelValue?.length ?? 0); + tags.splice(maxInsert); + } + return tags.length === 1 ? tags[0] : tags; + }; + const handlePaste = (event) => { + const pasted = event.clipboardData?.getData("text"); + if (props.readonly || inputLimit.value || !props.delimiter || !pasted) return; + const { selectionStart = 0, selectionEnd = 0, value } = event.target; + const nextValue = value.slice(0, selectionStart) + pasted + value.slice(selectionEnd); + const tags = getDelimitedTags(nextValue); + if (tags.length) { + addTagsEmit(tags); + emit(INPUT_EVENT, nextValue); + event.preventDefault(); + } + }; + const handleInput = (event) => { + if (inputLimit.value) { + inputValue.value = void 0; + return; + } + if (isComposing.value) return; + if (props.delimiter && inputValue.value) { + const tags = getDelimitedTags(inputValue.value); + if (tags.length) addTagsEmit(tags); + } + emit(INPUT_EVENT, event.target.value); + }; + const handleKeydown = (event) => { + if (isComposing.value) return; + switch (getEventCode(event)) { + case props.trigger: + event.preventDefault(); + event.stopPropagation(); + handleAddTag(); + break; + case EVENT_CODE.numpadEnter: + if (props.trigger === EVENT_CODE.enter) { + event.preventDefault(); + event.stopPropagation(); + handleAddTag(); + } + break; + case EVENT_CODE.backspace: + if (!inputValue.value && props.modelValue?.length) { + event.preventDefault(); + event.stopPropagation(); + handleRemoveTag(props.modelValue.length - 1); + } + break; + } + }; + const handleKeyup = (event) => { + if (isComposing.value || !isAndroid()) return; + switch (getEventCode(event)) { + case EVENT_CODE.space: + if (props.trigger === EVENT_CODE.space) { + event.preventDefault(); + event.stopPropagation(); + handleAddTag(); + } + break; + } + }; + const handleAddTag = () => { + const value = inputValue.value?.trim(); + if (!value || inputLimit.value) return; + addTagsEmit(value); + }; + const handleRemoveTag = (index) => { + const value = (props.modelValue ?? []).slice(); + const [item] = value.splice(index, 1); + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value); + emit("remove-tag", item, index); + }; + const handleClear = () => { + inputValue.value = void 0; + emit(UPDATE_MODEL_EVENT, void 0); + emit(CHANGE_EVENT, void 0); + emit("clear"); + }; + const handleDragged = (draggingIndex, dropIndex, type) => { + const value = (props.modelValue ?? []).slice(); + const [draggedItem] = value.splice(draggingIndex, 1); + const step = dropIndex > draggingIndex && type === "before" ? -1 : dropIndex < draggingIndex && type === "after" ? 1 : 0; + value.splice(dropIndex + step, 0, draggedItem); + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value); + emit("drag-tag", draggingIndex, dropIndex + step, draggedItem); + }; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + inputRef.value?.blur(); + }; + const { wrapperRef, isFocused } = useFocusController(inputRef, { + disabled, + beforeBlur(event) { + return tagTooltipRef.value?.isFocusInsideContent(event); + }, + afterBlur() { + if (props.saveOnBlur) handleAddTag(); + else inputValue.value = void 0; + if (props.validateEvent) formItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const { isComposing, handleCompositionStart, handleCompositionUpdate, handleCompositionEnd } = useComposition({ afterComposition: handleInput }); + (0, vue.watch)(() => props.modelValue, () => { + if (props.validateEvent) formItem?.validate?.(CHANGE_EVENT).catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + return { + inputRef, + wrapperRef, + tagTooltipRef, + isFocused, + isComposing, + inputValue, + size, + tagSize, + placeholder, + closable, + disabled, + inputLimit, + showTagList, + collapseTagList, + handleDragged, + handlePaste, + handleInput, + handleKeydown, + handleKeyup, + handleAddTag, + handleRemoveTag, + handleClear, + handleCompositionStart, + handleCompositionUpdate, + handleCompositionEnd, + focus, + blur + }; + } + +//#endregion +//#region ../../packages/components/input-tag/src/composables/use-input-tag-dom.ts + function useInputTagDom({ props, isFocused, hovering, disabled, inputValue, size, validateState, validateIcon, needStatusIcon }) { + const attrs = (0, vue.useAttrs)(); + const slots = (0, vue.useSlots)(); + const ns = useNamespace("input-tag"); + const nsInput = useNamespace("input"); + const collapseItemRef = (0, vue.ref)(); + const innerRef = (0, vue.ref)(); + const containerKls = (0, vue.computed)(() => [ + ns.b(), + ns.is("focused", isFocused.value), + ns.is("hovering", hovering.value), + ns.is("disabled", disabled.value), + ns.m(size.value), + ns.e("wrapper"), + attrs.class + ]); + const containerStyle = (0, vue.computed)(() => [attrs.style]); + const innerKls = (0, vue.computed)(() => [ + ns.e("inner"), + ns.is("draggable", props.draggable), + ns.is("left-space", !props.modelValue?.length && !slots.prefix), + ns.is("right-space", !props.modelValue?.length && !showSuffix.value) + ]); + const showClear = (0, vue.computed)(() => { + return props.clearable && !disabled.value && !props.readonly && (props.modelValue?.length || inputValue.value) && (isFocused.value || hovering.value); + }); + const showSuffix = (0, vue.computed)(() => { + return slots.suffix || showClear.value || validateState.value && validateIcon.value && needStatusIcon.value; + }); + const states = (0, vue.reactive)({ + innerWidth: 0, + collapseItemWidth: 0 + }); + const getGapWidth = () => { + if (!innerRef.value) return 0; + const style = window.getComputedStyle(innerRef.value); + return Number.parseFloat(style.gap || "6px"); + }; + const resetInnerWidth = () => { + states.innerWidth = Number.parseFloat(window.getComputedStyle(innerRef.value).width); + }; + const resetCollapseItemWidth = () => { + states.collapseItemWidth = collapseItemRef.value.getBoundingClientRect().width; + }; + const tagStyle = (0, vue.computed)(() => { + if (!props.collapseTags) return {}; + const gapWidth = getGapWidth(); + const inputSlotWidth = gapWidth + MINIMUM_INPUT_WIDTH; + const maxWidth = collapseItemRef.value && props.maxCollapseTags === 1 ? states.innerWidth - states.collapseItemWidth - gapWidth - inputSlotWidth : states.innerWidth - inputSlotWidth; + return { maxWidth: `${Math.max(maxWidth, 0)}px` }; + }); + useResizeObserver(innerRef, resetInnerWidth); + useResizeObserver(collapseItemRef, resetCollapseItemWidth); + return { + ns, + nsInput, + containerKls, + containerStyle, + innerKls, + showClear, + showSuffix, + tagStyle, + collapseItemRef, + innerRef + }; + } + +//#endregion +//#region ../../packages/components/input-tag/src/input-tag.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$32 = [ + "id", + "minlength", + "maxlength", + "disabled", + "readonly", + "autocomplete", + "tabindex", + "placeholder", + "autofocus", + "ariaLabel" + ]; + const _hoisted_2$19 = ["textContent"]; + var input_tag_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElInputTag", + inheritAttrs: false, + __name: "input-tag", + props: inputTagProps, + emits: inputTagEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const attrs = useAttrs(); + const slots = (0, vue.useSlots)(); + const { form, formItem } = useFormItem(); + const { inputId } = useFormItemInputId(props, { formItemContext: formItem }); + const needStatusIcon = (0, vue.computed)(() => form?.statusIcon ?? false); + const validateState = (0, vue.computed)(() => formItem?.validateState || ""); + const validateIcon = (0, vue.computed)(() => { + return validateState.value && ValidateComponentsMap[validateState.value]; + }); + const { inputRef, wrapperRef, tagTooltipRef, isFocused, inputValue, size, tagSize, placeholder, closable, disabled, showTagList, collapseTagList, handleDragged, handlePaste, handleInput, handleKeydown, handleKeyup, handleRemoveTag, handleClear, handleCompositionStart, handleCompositionUpdate, handleCompositionEnd, focus, blur } = useInputTag({ + props, + emit, + formItem + }); + const { hovering, handleMouseEnter, handleMouseLeave } = useHovering(); + const { calculatorRef, inputStyle } = useCalcInputWidth(); + const { dropIndicatorRef, showDropIndicator, handleDragStart, handleDragOver, handleDragEnd } = useDragTag({ + wrapperRef, + handleDragged, + afterDragged: focus + }); + const { ns, nsInput, containerKls, containerStyle, innerKls, showClear, showSuffix, tagStyle, collapseItemRef, innerRef } = useInputTagDom({ + props, + hovering, + isFocused, + inputValue, + disabled, + size, + validateState, + validateIcon, + needStatusIcon + }); + __expose({ + focus, + blur + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "wrapperRef", + ref: wrapperRef, + class: (0, vue.normalizeClass)((0, vue.unref)(containerKls)), + style: (0, vue.normalizeStyle)((0, vue.unref)(containerStyle)), + onMouseenter: _cache[9] || (_cache[9] = (...args) => (0, vue.unref)(handleMouseEnter) && (0, vue.unref)(handleMouseEnter)(...args)), + onMouseleave: _cache[10] || (_cache[10] = (...args) => (0, vue.unref)(handleMouseLeave) && (0, vue.unref)(handleMouseLeave)(...args)) + }, [ + (0, vue.unref)(slots).prefix ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("prefix")) + }, [(0, vue.renderSlot)(_ctx.$slots, "prefix")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + ref_key: "innerRef", + ref: innerRef, + class: (0, vue.normalizeClass)((0, vue.unref)(innerKls)) + }, [ + ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(showTagList), (item, index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTag), { + key: index, + size: (0, vue.unref)(tagSize), + closable: (0, vue.unref)(closable), + type: __props.tagType, + effect: __props.tagEffect, + draggable: (0, vue.unref)(closable) && __props.draggable, + style: (0, vue.normalizeStyle)((0, vue.unref)(tagStyle)), + "disable-transitions": "", + onClose: ($event) => (0, vue.unref)(handleRemoveTag)(index), + onDragstart: (event) => (0, vue.unref)(handleDragStart)(event, index), + onDragover: (event) => (0, vue.unref)(handleDragOver)(event, index), + onDragend: (0, vue.unref)(handleDragEnd), + onDrop: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "tag", { + value: item, + index + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(item), 1)])]), + _: 2 + }, 1032, [ + "size", + "closable", + "type", + "effect", + "draggable", + "style", + "onClose", + "onDragstart", + "onDragover", + "onDragend" + ]); + }), 128)), + __props.collapseTags && __props.modelValue && __props.modelValue.length > __props.maxCollapseTags ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), { + key: 0, + ref_key: "tagTooltipRef", + ref: tagTooltipRef, + disabled: !__props.collapseTagsTooltip, + "fallback-placements": [ + "bottom", + "top", + "right", + "left" + ], + effect: __props.effect, + placement: "bottom" + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref_key: "collapseItemRef", + ref: collapseItemRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("collapse-tag")) + }, [(0, vue.createVNode)((0, vue.unref)(ElTag), { + closable: false, + size: (0, vue.unref)(tagSize), + type: __props.tagType, + effect: __props.tagEffect, + "disable-transitions": "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)(" + " + (0, vue.toDisplayString)(__props.modelValue.length - __props.maxCollapseTags), 1)]), + _: 1 + }, 8, [ + "size", + "type", + "effect" + ])], 2)]), + content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("input-tag-list")) }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(collapseTagList), (item, index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTag), { + key: index, + size: (0, vue.unref)(tagSize), + closable: (0, vue.unref)(closable), + type: __props.tagType, + effect: __props.tagEffect, + "disable-transitions": "", + onClose: ($event) => (0, vue.unref)(handleRemoveTag)(index + __props.maxCollapseTags) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "tag", { + value: item, + index: index + __props.maxCollapseTags + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(item), 1)])]), + _: 2 + }, 1032, [ + "size", + "closable", + "type", + "effect", + "onClose" + ]); + }), 128))], 2)]), + _: 3 + }, 8, ["disabled", "effect"])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("input-wrapper")) }, [(0, vue.withDirectives)((0, vue.createElementVNode)("input", (0, vue.mergeProps)({ + id: (0, vue.unref)(inputId), + ref_key: "inputRef", + ref: inputRef, + "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => (0, vue.isRef)(inputValue) ? inputValue.value = $event : null) + }, (0, vue.unref)(attrs), { + type: "text", + minlength: __props.minlength, + maxlength: __props.maxlength, + disabled: (0, vue.unref)(disabled), + readonly: __props.readonly, + autocomplete: __props.autocomplete, + tabindex: __props.tabindex, + placeholder: (0, vue.unref)(placeholder), + autofocus: __props.autofocus, + ariaLabel: __props.ariaLabel, + class: (0, vue.unref)(ns).e("input"), + style: (0, vue.unref)(inputStyle), + onCompositionstart: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(handleCompositionStart) && (0, vue.unref)(handleCompositionStart)(...args)), + onCompositionupdate: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(handleCompositionUpdate) && (0, vue.unref)(handleCompositionUpdate)(...args)), + onCompositionend: _cache[4] || (_cache[4] = (...args) => (0, vue.unref)(handleCompositionEnd) && (0, vue.unref)(handleCompositionEnd)(...args)), + onPaste: _cache[5] || (_cache[5] = (...args) => (0, vue.unref)(handlePaste) && (0, vue.unref)(handlePaste)(...args)), + onInput: _cache[6] || (_cache[6] = (...args) => (0, vue.unref)(handleInput) && (0, vue.unref)(handleInput)(...args)), + onKeydown: _cache[7] || (_cache[7] = (...args) => (0, vue.unref)(handleKeydown) && (0, vue.unref)(handleKeydown)(...args)), + onKeyup: _cache[8] || (_cache[8] = (...args) => (0, vue.unref)(handleKeyup) && (0, vue.unref)(handleKeyup)(...args)) + }), null, 16, _hoisted_1$32), [[vue.vModelText, (0, vue.unref)(inputValue)]]), (0, vue.createElementVNode)("span", { + ref_key: "calculatorRef", + ref: calculatorRef, + "aria-hidden": "true", + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("input-calculator")), + textContent: (0, vue.toDisplayString)((0, vue.unref)(inputValue)) + }, null, 10, _hoisted_2$19)], 2), + (0, vue.withDirectives)((0, vue.createElementVNode)("div", { + ref_key: "dropIndicatorRef", + ref: dropIndicatorRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("drop-indicator")) + }, null, 2), [[vue.vShow, (0, vue.unref)(showDropIndicator)]]) + ], 2), + (0, vue.unref)(showSuffix) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("suffix")) + }, [ + (0, vue.renderSlot)(_ctx.$slots, "suffix"), + (0, vue.unref)(showClear) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon"), (0, vue.unref)(ns).e("clear")]), + onMousedown: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]), + onClick: (0, vue.unref)(handleClear) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.clearIcon)))]), + _: 1 + }, 8, [ + "class", + "onMousedown", + "onClick" + ])) : (0, vue.createCommentVNode)("v-if", true), + validateState.value && validateIcon.value && needStatusIcon.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(nsInput).e("icon"), + (0, vue.unref)(nsInput).e("validateIcon"), + (0, vue.unref)(nsInput).is("loading", validateState.value === "validating") + ]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(validateIcon.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true) + ], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 38); + }; + } + }); + +//#endregion +//#region ../../packages/components/input-tag/src/input-tag.vue + var input_tag_default = input_tag_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/input-tag/index.ts + const ElInputTag = withInstall(input_tag_default); + +//#endregion +//#region ../../packages/components/link/src/link.ts +/** + * @deprecated Removed after 3.0.0, Use `LinkProps` instead. + */ + const linkProps = buildProps({ + type: { + type: String, + values: [ + "primary", + "success", + "warning", + "info", + "danger", + "default" + ], + default: void 0 + }, + underline: { + type: [Boolean, String], + values: [ + true, + false, + "always", + "never", + "hover" + ], + default: void 0 + }, + disabled: Boolean, + href: { + type: String, + default: "" + }, + target: { + type: String, + default: "_self" + }, + icon: { type: iconPropType } + }); + const linkEmits = { click: (evt) => evt instanceof MouseEvent }; + +//#endregion +//#region ../../packages/components/link/src/link.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$31 = ["href", "target"]; + var link_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElLink", + __name: "link", + props: linkProps, + emits: linkEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const globalConfig = useGlobalConfig("link"); + useDeprecated({ + 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" + }, (0, vue.computed)(() => isBoolean(props.underline))); + const ns = useNamespace("link"); + const linkKls = (0, vue.computed)(() => [ + ns.b(), + ns.m(props.type ?? globalConfig.value?.type ?? "default"), + ns.is("disabled", props.disabled), + ns.is("underline", underline.value === "always"), + ns.is("hover-underline", underline.value === "hover" && !props.disabled) + ]); + const underline = (0, vue.computed)(() => { + if (isBoolean(props.underline)) return props.underline ? "hover" : "never"; + else return props.underline ?? globalConfig.value?.underline ?? "hover"; + }); + function handleClick(event) { + if (!props.disabled) emit("click", event); + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("a", { + class: (0, vue.normalizeClass)(linkKls.value), + href: __props.disabled || !__props.href ? void 0 : __props.href, + target: __props.disabled || !__props.href ? void 0 : __props.target, + onClick: handleClick + }, [ + __props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("inner")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.icon ? (0, vue.renderSlot)(_ctx.$slots, "icon", { key: 2 }) : (0, vue.createCommentVNode)("v-if", true) + ], 10, _hoisted_1$31); + }; + } + }); + +//#endregion +//#region ../../packages/components/link/src/link.vue + var link_default = link_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/link/index.ts + const ElLink = withInstall(link_default); + +//#endregion +//#region ../../packages/components/menu/src/utils/submenu.ts + var SubMenu = class { + constructor(parent, domNode) { + this.parent = parent; + this.domNode = domNode; + this.subIndex = 0; + this.subIndex = 0; + this.init(); + } + init() { + this.subMenuItems = this.domNode.querySelectorAll("li"); + this.addListeners(); + } + gotoSubIndex(idx) { + if (idx === this.subMenuItems.length) idx = 0; + else if (idx < 0) idx = this.subMenuItems.length - 1; + this.subMenuItems[idx].focus(); + this.subIndex = idx; + } + addListeners() { + const parentNode = this.parent.domNode; + Array.prototype.forEach.call(this.subMenuItems, (el) => { + el.addEventListener("keydown", (event) => { + const code = getEventCode(event); + let prevDef = false; + switch (code) { + case EVENT_CODE.down: + this.gotoSubIndex(this.subIndex + 1); + prevDef = true; + break; + case EVENT_CODE.up: + this.gotoSubIndex(this.subIndex - 1); + prevDef = true; + break; + case EVENT_CODE.tab: + triggerEvent(parentNode, "mouseleave"); + break; + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + case EVENT_CODE.space: + prevDef = true; + event.currentTarget.click(); + break; + } + if (prevDef) { + event.preventDefault(); + event.stopPropagation(); + } + return false; + }); + }); + } + }; + +//#endregion +//#region ../../packages/components/menu/src/utils/menu-item.ts + var MenuItem = class { + constructor(domNode, namespace) { + this.domNode = domNode; + this.submenu = null; + this.submenu = null; + this.init(namespace); + } + init(namespace) { + this.domNode.setAttribute("tabindex", "0"); + const menuChild = this.domNode.querySelector(`.${namespace}-menu`); + if (menuChild) this.submenu = new SubMenu(this, menuChild); + this.addListeners(); + } + addListeners() { + this.domNode.addEventListener("keydown", (event) => { + const code = getEventCode(event); + let prevDef = false; + switch (code) { + case EVENT_CODE.down: + triggerEvent(event.currentTarget, "mouseenter"); + this.submenu && this.submenu.gotoSubIndex(0); + prevDef = true; + break; + case EVENT_CODE.up: + triggerEvent(event.currentTarget, "mouseenter"); + this.submenu && this.submenu.gotoSubIndex(this.submenu.subMenuItems.length - 1); + prevDef = true; + break; + case EVENT_CODE.tab: + triggerEvent(event.currentTarget, "mouseleave"); + break; + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + case EVENT_CODE.space: + prevDef = true; + event.currentTarget.click(); + break; + } + if (prevDef) event.preventDefault(); + }); + } + }; + +//#endregion +//#region ../../packages/components/menu/src/utils/menu-bar.ts + var Menu = class { + constructor(domNode, namespace) { + this.domNode = domNode; + this.init(namespace); + } + init(namespace) { + const menuChildren = this.domNode.childNodes; + Array.from(menuChildren).forEach((child) => { + if (child.nodeType === 1) new MenuItem(child, namespace); + }); + } + }; + +//#endregion +//#region ../../packages/components/menu/src/menu-collapse-transition.vue?vue&type=script&setup=true&lang.ts + var menu_collapse_transition_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElMenuCollapseTransition", + __name: "menu-collapse-transition", + setup(__props) { + const ns = useNamespace("menu"); + const listeners = { + onBeforeEnter: (el) => el.style.opacity = "0.2", + onEnter(el, done) { + addClass(el, `${ns.namespace.value}-opacity-transition`); + el.style.opacity = "1"; + done(); + }, + onAfterEnter(el) { + removeClass(el, `${ns.namespace.value}-opacity-transition`); + el.style.opacity = ""; + }, + onBeforeLeave(el) { + if (!el.dataset) el.dataset = {}; + if (hasClass(el, ns.m("collapse"))) { + removeClass(el, ns.m("collapse")); + el.dataset.oldOverflow = el.style.overflow; + el.dataset.scrollWidth = el.clientWidth.toString(); + addClass(el, ns.m("collapse")); + } else { + addClass(el, ns.m("collapse")); + el.dataset.oldOverflow = el.style.overflow; + el.dataset.scrollWidth = el.clientWidth.toString(); + removeClass(el, ns.m("collapse")); + } + el.style.width = `${el.scrollWidth}px`; + el.style.overflow = "hidden"; + }, + onLeave(el) { + addClass(el, "horizontal-collapse-transition"); + el.style.width = `${el.dataset.scrollWidth}px`; + } + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, (0, vue.mergeProps)({ mode: "out-in" }, listeners), { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 16); + }; + } + }); + +//#endregion +//#region ../../packages/components/menu/src/menu-collapse-transition.vue + var menu_collapse_transition_default = menu_collapse_transition_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/menu/src/use-menu.ts + function useMenu(instance, currentIndex) { + const indexPath = (0, vue.computed)(() => { + let parent = instance.parent; + const path = [currentIndex.value]; + while (parent.type.name !== "ElMenu") { + if (parent.props.index) path.unshift(parent.props.index); + parent = parent.parent; + } + return path; + }); + return { + parentMenu: (0, vue.computed)(() => { + let parent = instance.parent; + while (parent && !["ElMenu", "ElSubMenu"].includes(parent.type.name)) parent = parent.parent; + return parent; + }), + indexPath + }; + } + +//#endregion +//#region ../../packages/components/menu/src/use-menu-color.ts + function useMenuColor(props) { + return (0, vue.computed)(() => { + const color = props.backgroundColor; + return color ? new TinyColor(color).shade(20).toString() : ""; + }); + } + +//#endregion +//#region ../../packages/components/menu/src/use-menu-css-var.ts + const useMenuCssVar = (props, level) => { + const ns = useNamespace("menu"); + return (0, vue.computed)(() => ns.cssVarBlock({ + "text-color": props.textColor || "", + "hover-text-color": props.textColor || "", + "bg-color": props.backgroundColor || "", + "hover-bg-color": useMenuColor(props).value || "", + "active-color": props.activeTextColor || "", + level: `${level}` + })); + }; + +//#endregion +//#region ../../packages/components/menu/src/tokens.ts + const MENU_INJECTION_KEY = "rootMenu"; + const SUB_MENU_INJECTION_KEY = "subMenu:"; + +//#endregion +//#region ../../packages/components/menu/src/sub-menu.ts + const subMenuProps = buildProps({ + index: { + type: String, + required: true + }, + showTimeout: Number, + hideTimeout: Number, + popperClass: String, + popperStyle: { type: definePropType([String, Object]) }, + disabled: Boolean, + teleported: { + type: Boolean, + default: void 0 + }, + popperOffset: Number, + expandCloseIcon: { type: iconPropType }, + expandOpenIcon: { type: iconPropType }, + collapseCloseIcon: { type: iconPropType }, + collapseOpenIcon: { type: iconPropType } + }); + const COMPONENT_NAME$8 = "ElSubMenu"; + var sub_menu_default = (0, vue.defineComponent)({ + name: COMPONENT_NAME$8, + props: subMenuProps, + setup(props, { slots, expose }) { + const instance = (0, vue.getCurrentInstance)(); + const { indexPath, parentMenu } = useMenu(instance, (0, vue.computed)(() => props.index)); + const nsMenu = useNamespace("menu"); + const nsSubMenu = useNamespace("sub-menu"); + const rootMenu = (0, vue.inject)(MENU_INJECTION_KEY); + if (!rootMenu) throwError(COMPONENT_NAME$8, "can not inject root menu"); + const subMenu = (0, vue.inject)(`${SUB_MENU_INJECTION_KEY}${parentMenu.value.uid}`); + if (!subMenu) throwError(COMPONENT_NAME$8, "can not inject sub menu"); + const items = (0, vue.ref)({}); + const subMenus = (0, vue.ref)({}); + let timeout; + const mouseInChild = (0, vue.ref)(false); + const verticalTitleRef = (0, vue.ref)(); + const vPopper = (0, vue.ref)(); + const isFirstLevel = (0, vue.computed)(() => subMenu.level === 0); + const currentPlacement = (0, vue.computed)(() => mode.value === "horizontal" && isFirstLevel.value ? "bottom-start" : "right-start"); + const subMenuTitleIcon = (0, vue.computed)(() => { + if (mode.value === "horizontal" && isFirstLevel.value || mode.value === "vertical" && !rootMenu.props.collapse) { + if (props.expandCloseIcon && props.expandOpenIcon) return opened.value ? props.expandOpenIcon : props.expandCloseIcon; + return arrow_down_default; + } else { + if (props.collapseCloseIcon && props.collapseOpenIcon) return opened.value ? props.collapseOpenIcon : props.collapseCloseIcon; + return arrow_right_default; + } + }); + const appendToBody = (0, vue.computed)(() => { + const value = props.teleported; + return isUndefined(value) ? isFirstLevel.value : value; + }); + const menuTransitionName = (0, vue.computed)(() => rootMenu.props.collapse ? `${nsMenu.namespace.value}-zoom-in-left` : `${nsMenu.namespace.value}-zoom-in-top`); + const fallbackPlacements = (0, vue.computed)(() => mode.value === "horizontal" && isFirstLevel.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" + ]); + const opened = (0, vue.computed)(() => rootMenu.openedMenus.includes(props.index)); + const active = (0, vue.computed)(() => [...Object.values(items.value), ...Object.values(subMenus.value)].some(({ active }) => active)); + const mode = (0, vue.computed)(() => rootMenu.props.mode); + const persistent = (0, vue.computed)(() => rootMenu.props.persistent); + const item = (0, vue.reactive)({ + index: props.index, + indexPath, + active + }); + const ulStyle = useMenuCssVar(rootMenu.props, subMenu.level + 1); + const subMenuPopperOffset = (0, vue.computed)(() => props.popperOffset ?? rootMenu.props.popperOffset); + const subMenuPopperClass = (0, vue.computed)(() => props.popperClass ?? rootMenu.props.popperClass); + const subMenuPopperStyle = (0, vue.computed)(() => props.popperStyle ?? rootMenu.props.popperStyle); + const subMenuShowTimeout = (0, vue.computed)(() => props.showTimeout ?? rootMenu.props.showTimeout); + const subMenuHideTimeout = (0, vue.computed)(() => props.hideTimeout ?? rootMenu.props.hideTimeout); + const doDestroy = () => vPopper.value?.popperRef?.popperInstanceRef?.destroy(); + const handleCollapseToggle = (value) => { + if (!value) doDestroy(); + }; + const handleClick = () => { + if (rootMenu.props.menuTrigger === "hover" && rootMenu.props.mode === "horizontal" || rootMenu.props.collapse && rootMenu.props.mode === "vertical" || props.disabled) return; + rootMenu.handleSubMenuClick({ + index: props.index, + indexPath: indexPath.value, + active: active.value + }); + }; + const handleMouseenter = (event, showTimeout = subMenuShowTimeout.value) => { + if (event.type === "focus") return; + if (rootMenu.props.menuTrigger === "click" && rootMenu.props.mode === "horizontal" || !rootMenu.props.collapse && rootMenu.props.mode === "vertical" || props.disabled) { + subMenu.mouseInChild.value = true; + return; + } + subMenu.mouseInChild.value = true; + timeout?.(); + ({stop: timeout} = useTimeoutFn(() => { + rootMenu.openMenu(props.index, indexPath.value); + }, showTimeout)); + if (appendToBody.value) parentMenu.value.vnode.el?.dispatchEvent(new MouseEvent("mouseenter")); + if (event.type === "mouseenter" && event.target) (0, vue.nextTick)(() => { + focusElement(event.target, { preventScroll: true }); + }); + }; + const handleMouseleave = (deepDispatch = false) => { + if (rootMenu.props.menuTrigger === "click" && rootMenu.props.mode === "horizontal" || !rootMenu.props.collapse && rootMenu.props.mode === "vertical") { + subMenu.mouseInChild.value = false; + return; + } + timeout?.(); + subMenu.mouseInChild.value = false; + ({stop: timeout} = useTimeoutFn(() => !mouseInChild.value && rootMenu.closeMenu(props.index, indexPath.value), subMenuHideTimeout.value)); + if (appendToBody.value && deepDispatch) subMenu.handleMouseleave?.(true); + }; + (0, vue.watch)(() => rootMenu.props.collapse, (value) => handleCollapseToggle(Boolean(value))); + { + const addSubMenu = (item) => { + subMenus.value[item.index] = item; + }; + const removeSubMenu = (item) => { + delete subMenus.value[item.index]; + }; + (0, vue.provide)(`${SUB_MENU_INJECTION_KEY}${instance.uid}`, { + addSubMenu, + removeSubMenu, + handleMouseleave, + mouseInChild, + level: subMenu.level + 1 + }); + } + expose({ opened }); + (0, vue.onMounted)(() => { + rootMenu.addSubMenu(item); + subMenu.addSubMenu(item); + }); + (0, vue.onBeforeUnmount)(() => { + subMenu.removeSubMenu(item); + rootMenu.removeSubMenu(item); + }); + return () => { + const titleTag = [slots.title?.(), (0, vue.h)(ElIcon, { + class: nsSubMenu.e("icon-arrow"), + style: { transform: opened.value ? props.expandCloseIcon && props.expandOpenIcon || props.collapseCloseIcon && props.collapseOpenIcon && rootMenu.props.collapse ? "none" : "rotateZ(180deg)" : "none" } + }, { default: () => isString(subMenuTitleIcon.value) ? (0, vue.h)(instance.appContext.components[subMenuTitleIcon.value]) : (0, vue.h)(subMenuTitleIcon.value) })]; + const child = rootMenu.isMenuPopup ? (0, vue.h)(ElTooltip, { + ref: vPopper, + visible: opened.value, + effect: "light", + pure: true, + offset: subMenuPopperOffset.value, + showArrow: false, + persistent: persistent.value, + popperClass: subMenuPopperClass.value, + popperStyle: subMenuPopperStyle.value, + placement: currentPlacement.value, + teleported: appendToBody.value, + fallbackPlacements: fallbackPlacements.value, + transition: menuTransitionName.value, + gpuAcceleration: false + }, { + content: () => (0, vue.h)("div", { + class: [ + nsMenu.m(mode.value), + nsMenu.m("popup-container"), + subMenuPopperClass.value + ], + onMouseenter: (evt) => handleMouseenter(evt, 100), + onMouseleave: () => handleMouseleave(true), + onFocus: (evt) => handleMouseenter(evt, 100) + }, [(0, vue.h)("ul", { + class: [ + nsMenu.b(), + nsMenu.m("popup"), + nsMenu.m(`popup-${currentPlacement.value}`) + ], + style: ulStyle.value + }, [slots.default?.()])]), + default: () => (0, vue.h)("div", { + class: nsSubMenu.e("title"), + onClick: handleClick + }, titleTag) + }) : (0, vue.h)(vue.Fragment, {}, [(0, vue.h)("div", { + class: nsSubMenu.e("title"), + ref: verticalTitleRef, + onClick: handleClick + }, titleTag), (0, vue.h)(ElCollapseTransition, {}, { default: () => (0, vue.withDirectives)((0, vue.h)("ul", { + role: "menu", + class: [nsMenu.b(), nsMenu.m("inline")], + style: ulStyle.value + }, [slots.default?.()]), [[vue.vShow, opened.value]]) })]); + return (0, vue.h)("li", { + class: [ + nsSubMenu.b(), + nsSubMenu.is("active", active.value), + nsSubMenu.is("opened", opened.value), + nsSubMenu.is("disabled", props.disabled) + ], + role: "menuitem", + ariaHaspopup: true, + ariaExpanded: opened.value, + onMouseenter: handleMouseenter, + onMouseleave: () => handleMouseleave(), + onFocus: handleMouseenter + }, [child]); + }; + } + }); + +//#endregion +//#region ../../packages/components/menu/src/menu.ts + const menuProps = buildProps({ + mode: { + type: String, + values: ["horizontal", "vertical"], + default: "vertical" + }, + defaultActive: { + type: String, + default: "" + }, + defaultOpeneds: { + type: definePropType(Array), + default: () => mutable([]) + }, + 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: true + }, + ellipsis: { + type: Boolean, + default: true + }, + popperOffset: { + type: Number, + default: 6 + }, + ellipsisIcon: { + type: iconPropType, + default: () => more_default + }, + popperEffect: { + type: definePropType(String), + default: "dark" + }, + popperClass: String, + popperStyle: { type: definePropType([String, Object]) }, + showTimeout: { + type: Number, + default: 300 + }, + hideTimeout: { + type: Number, + default: 300 + }, + persistent: { + type: Boolean, + default: true + } + }); + const checkIndexPath = (indexPath) => isArray$1(indexPath) && indexPath.every((path) => isString(path)); + const menuEmits = { + close: (index, indexPath) => isString(index) && checkIndexPath(indexPath), + open: (index, indexPath) => isString(index) && checkIndexPath(indexPath), + select: (index, indexPath, item, routerResult) => isString(index) && checkIndexPath(indexPath) && isObject$1(item) && (isUndefined(routerResult) || routerResult instanceof Promise) + }; + const DEFAULT_MORE_ITEM_WIDTH = 64; + var menu_default = (0, vue.defineComponent)({ + name: "ElMenu", + props: menuProps, + emits: menuEmits, + setup(props, { emit, slots, expose }) { + const instance = (0, vue.getCurrentInstance)(); + const router = instance.appContext.config.globalProperties.$router; + const menu = (0, vue.ref)(); + const subMenu = (0, vue.ref)(); + const nsMenu = useNamespace("menu"); + const nsSubMenu = useNamespace("sub-menu"); + let moreItemWidth = DEFAULT_MORE_ITEM_WIDTH; + const sliceIndex = (0, vue.ref)(-1); + const openedMenus = (0, vue.ref)(props.defaultOpeneds && !props.collapse ? props.defaultOpeneds.slice(0) : []); + const activeIndex = (0, vue.ref)(props.defaultActive); + const items = (0, vue.ref)({}); + const subMenus = (0, vue.ref)({}); + const isMenuPopup = (0, vue.computed)(() => props.mode === "horizontal" || props.mode === "vertical" && props.collapse); + const initMenu = () => { + const activeItem = activeIndex.value && items.value[activeIndex.value]; + if (!activeItem || props.mode === "horizontal" || props.collapse) return; + activeItem.indexPath.forEach((index) => { + const subMenu = subMenus.value[index]; + subMenu && openMenu(index, subMenu.indexPath); + }); + }; + const openMenu = (index, indexPath) => { + if (openedMenus.value.includes(index)) return; + if (props.uniqueOpened) openedMenus.value = openedMenus.value.filter((index) => indexPath.includes(index)); + openedMenus.value.push(index); + emit("open", index, indexPath); + }; + const close = (index) => { + const i = openedMenus.value.indexOf(index); + if (i !== -1) openedMenus.value.splice(i, 1); + }; + const closeMenu = (index, indexPath) => { + close(index); + emit("close", index, indexPath); + }; + const handleSubMenuClick = ({ index, indexPath }) => { + openedMenus.value.includes(index) ? closeMenu(index, indexPath) : openMenu(index, indexPath); + }; + const handleMenuItemClick = (menuItem) => { + if (props.mode === "horizontal" || props.collapse) openedMenus.value = []; + const { index, indexPath } = menuItem; + if (isNil(index) || isNil(indexPath)) return; + if (props.router && router) { + const route = menuItem.route || index; + const routerResult = router.push(route).then((res) => { + if (!res) activeIndex.value = index; + return res; + }); + emit("select", index, indexPath, { + index, + indexPath, + route + }, routerResult); + } else { + activeIndex.value = index; + emit("select", index, indexPath, { + index, + indexPath + }); + } + }; + const updateActiveIndex = (val) => { + const itemsInData = items.value; + activeIndex.value = (itemsInData[val] || activeIndex.value && itemsInData[activeIndex.value] || itemsInData[props.defaultActive])?.index ?? val; + }; + const calcMenuItemWidth = (menuItem) => { + const computedStyle = getComputedStyle(menuItem); + const marginLeft = Number.parseInt(computedStyle.marginLeft, 10); + const marginRight = Number.parseInt(computedStyle.marginRight, 10); + return menuItem.offsetWidth + marginLeft + marginRight || 0; + }; + const calcSliceIndex = () => { + if (!menu.value) return -1; + const items = Array.from(menu.value.childNodes).filter((item) => item.nodeName !== "#comment" && (item.nodeName !== "#text" || item.nodeValue)); + const computedMenuStyle = getComputedStyle(menu.value); + const paddingLeft = Number.parseInt(computedMenuStyle.paddingLeft, 10); + const paddingRight = Number.parseInt(computedMenuStyle.paddingRight, 10); + const menuWidth = menu.value.clientWidth - paddingLeft - paddingRight; + let calcWidth = 0; + let sliceIndex = 0; + items.forEach((item, index) => { + calcWidth += calcMenuItemWidth(item); + if (calcWidth <= menuWidth - moreItemWidth) sliceIndex = index + 1; + }); + return sliceIndex === items.length ? -1 : sliceIndex; + }; + const getIndexPath = (index) => subMenus.value[index].indexPath; + const debounce = (fn, wait = 33.34) => { + let timer; + return () => { + timer && clearTimeout(timer); + timer = setTimeout(() => { + fn(); + }, wait); + }; + }; + let isFirstTimeRender = true; + const handleResize = () => { + const el = unrefElement(subMenu); + if (el) moreItemWidth = calcMenuItemWidth(el) || DEFAULT_MORE_ITEM_WIDTH; + if (sliceIndex.value === calcSliceIndex()) return; + const callback = () => { + sliceIndex.value = -1; + (0, vue.nextTick)(() => { + sliceIndex.value = calcSliceIndex(); + }); + }; + isFirstTimeRender ? callback() : debounce(callback)(); + isFirstTimeRender = false; + }; + (0, vue.watch)(() => props.defaultActive, (currentActive) => { + if (!items.value[currentActive]) activeIndex.value = ""; + updateActiveIndex(currentActive); + }); + (0, vue.watch)(() => props.collapse, (value) => { + if (value) openedMenus.value = []; + }); + (0, vue.watch)(items.value, initMenu); + let resizeStopper; + (0, vue.watchEffect)(() => { + if (props.mode === "horizontal" && props.ellipsis) resizeStopper = useResizeObserver(menu, handleResize).stop; + else resizeStopper?.(); + }); + const mouseInChild = (0, vue.ref)(false); + { + const addSubMenu = (item) => { + subMenus.value[item.index] = item; + }; + const removeSubMenu = (item) => { + delete subMenus.value[item.index]; + }; + const addMenuItem = (item) => { + items.value[item.index] = item; + }; + const removeMenuItem = (item) => { + delete items.value[item.index]; + }; + (0, vue.provide)(MENU_INJECTION_KEY, (0, vue.reactive)({ + props, + openedMenus, + items, + subMenus, + activeIndex, + isMenuPopup, + addMenuItem, + removeMenuItem, + addSubMenu, + removeSubMenu, + openMenu, + closeMenu, + handleMenuItemClick, + handleSubMenuClick + })); + (0, vue.provide)(`${SUB_MENU_INJECTION_KEY}${instance.uid}`, { + addSubMenu, + removeSubMenu, + mouseInChild, + level: 0 + }); + } + (0, vue.onMounted)(() => { + if (props.mode === "horizontal") new Menu(instance.vnode.el, nsMenu.namespace.value); + }); + { + const open = (index) => { + const { indexPath } = subMenus.value[index]; + indexPath.forEach((i) => openMenu(i, indexPath)); + }; + expose({ + open, + close, + updateActiveIndex, + handleResize + }); + } + const ulStyle = useMenuCssVar(props, 0); + return () => { + let slot = slots.default?.() ?? []; + const vShowMore = []; + if (props.mode === "horizontal" && menu.value) { + const originalSlot = flattedChildren(slot).filter((vnode) => { + return vnode?.shapeFlag !== 8; + }); + const slotDefault = sliceIndex.value === -1 ? originalSlot : originalSlot.slice(0, sliceIndex.value); + const slotMore = sliceIndex.value === -1 ? [] : originalSlot.slice(sliceIndex.value); + if (slotMore?.length && props.ellipsis) { + slot = slotDefault; + vShowMore.push((0, vue.h)(sub_menu_default, { + ref: subMenu, + index: "sub-menu-more", + class: nsSubMenu.e("hide-arrow"), + popperOffset: props.popperOffset + }, { + title: () => (0, vue.h)(ElIcon, { class: nsSubMenu.e("icon-more") }, { default: () => (0, vue.h)(props.ellipsisIcon) }), + default: () => slotMore + })); + } + } + const directives = props.closeOnClickOutside ? [[ClickOutside, () => { + if (!openedMenus.value.length) return; + if (!mouseInChild.value) { + openedMenus.value.forEach((openedMenu) => emit("close", openedMenu, getIndexPath(openedMenu))); + openedMenus.value = []; + } + }]] : []; + const vMenu = (0, vue.withDirectives)((0, vue.h)("ul", { + key: String(props.collapse), + role: "menubar", + ref: menu, + style: ulStyle.value, + class: { + [nsMenu.b()]: true, + [nsMenu.m(props.mode)]: true, + [nsMenu.m("collapse")]: props.collapse + } + }, [...slot, ...vShowMore]), directives); + if (props.collapseTransition && props.mode === "vertical") return (0, vue.h)(menu_collapse_transition_default, () => vMenu); + return vMenu; + }; + } + }); + +//#endregion +//#region ../../packages/components/menu/src/menu-item.ts +/** + * @deprecated Removed after 3.0.0, Use `MenuItemProps` instead. + */ + const menuItemProps = buildProps({ + index: { + type: definePropType([String, null]), + default: null + }, + route: { type: definePropType([String, Object]) }, + disabled: Boolean + }); + const menuItemEmits = { click: (item) => isString(item.index) && isArray$1(item.indexPath) }; + +//#endregion +//#region ../../packages/components/menu/src/menu-item.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$7 = "ElMenuItem"; + var menu_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$7, + __name: "menu-item", + props: menuItemProps, + emits: menuItemEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + isPropAbsent(props.index) && /* @__PURE__ */ debugWarn(COMPONENT_NAME$7, "Missing required prop: \"index\""); + const instance = (0, vue.getCurrentInstance)(); + const rootMenu = (0, vue.inject)(MENU_INJECTION_KEY); + const nsMenu = useNamespace("menu"); + const nsMenuItem = useNamespace("menu-item"); + if (!rootMenu) throwError(COMPONENT_NAME$7, "can not inject root menu"); + const { parentMenu, indexPath } = useMenu(instance, (0, vue.toRef)(props, "index")); + const subMenu = (0, vue.inject)(`${SUB_MENU_INJECTION_KEY}${parentMenu.value.uid}`); + if (!subMenu) throwError(COMPONENT_NAME$7, "can not inject sub menu"); + const active = (0, vue.computed)(() => props.index === rootMenu.activeIndex); + const item = (0, vue.reactive)({ + index: props.index, + indexPath, + active + }); + const handleClick = () => { + if (!props.disabled) { + rootMenu.handleMenuItemClick({ + index: props.index, + indexPath: indexPath.value, + route: props.route + }); + emit("click", item); + } + }; + (0, vue.onMounted)(() => { + subMenu.addSubMenu(item); + rootMenu.addMenuItem(item); + }); + (0, vue.onBeforeUnmount)(() => { + subMenu.removeSubMenu(item); + rootMenu.removeMenuItem(item); + }); + __expose({ + parentMenu, + rootMenu, + active, + nsMenu, + nsMenuItem, + handleClick + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(nsMenuItem).b(), + (0, vue.unref)(nsMenuItem).is("active", active.value), + (0, vue.unref)(nsMenuItem).is("disabled", __props.disabled) + ]), + role: "menuitem", + tabindex: "-1", + onClick: handleClick + }, [(0, vue.unref)(parentMenu).type.name === "ElMenu" && (0, vue.unref)(rootMenu).props.collapse && _ctx.$slots.title ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), { + key: 0, + effect: (0, vue.unref)(rootMenu).props.popperEffect, + placement: "right", + "fallback-placements": ["left"], + "popper-class": (0, vue.unref)(rootMenu).props.popperClass, + "popper-style": (0, vue.unref)(rootMenu).props.popperStyle, + persistent: (0, vue.unref)(rootMenu).props.persistent, + "focus-on-target": "" + }, { + content: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "title")]), + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsMenu).be("tooltip", "trigger")) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)]), + _: 3 + }, 8, [ + "effect", + "popper-class", + "popper-style", + "persistent" + ])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.renderSlot)(_ctx.$slots, "default"), (0, vue.renderSlot)(_ctx.$slots, "title")], 64))], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/menu/src/menu-item.vue + var menu_item_default = menu_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/menu/src/menu-item-group.ts +/** + * @deprecated Removed after 3.0.0, Use `MenuItemGroupProps` instead. + */ + const menuItemGroupProps = { title: String }; + +//#endregion +//#region ../../packages/components/menu/src/menu-item-group.vue?vue&type=script&setup=true&lang.ts + var menu_item_group_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElMenuItemGroup", + __name: "menu-item-group", + props: menuItemGroupProps, + setup(__props) { + const ns = useNamespace("menu-item-group"); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) }, [!_ctx.$slots.title ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)], 64)) : (0, vue.renderSlot)(_ctx.$slots, "title", { key: 1 })], 2), (0, vue.createElementVNode)("ul", null, [(0, vue.renderSlot)(_ctx.$slots, "default")])], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/menu/src/menu-item-group.vue + var menu_item_group_default = menu_item_group_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/menu/index.ts + const ElMenu = withInstall(menu_default, { + MenuItem: menu_item_default, + MenuItemGroup: menu_item_group_default, + SubMenu: sub_menu_default + }); + const ElMenuItem = withNoopInstall(menu_item_default); + const ElMenuItemGroup = withNoopInstall(menu_item_group_default); + const ElSubMenu = withNoopInstall(sub_menu_default); + +//#endregion +//#region ../../packages/components/page-header/src/page-header.ts +/** + * @deprecated Removed after 3.0.0, Use `PageHeaderProps` instead. + */ + const pageHeaderProps = buildProps({ + icon: { + type: iconPropType, + default: () => back_default + }, + title: String, + content: { + type: String, + default: "" + } + }); + const pageHeaderEmits = { back: () => true }; + +//#endregion +//#region ../../packages/components/page-header/src/page-header.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$30 = ["aria-label"]; + var page_header_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPageHeader", + __name: "page-header", + props: pageHeaderProps, + emits: pageHeaderEmits, + setup(__props, { emit: __emit }) { + const emit = __emit; + const { t } = useLocale(); + const ns = useNamespace("page-header"); + function handleClick() { + emit("back"); + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).is("contentful", !!_ctx.$slots.default), + { + [(0, vue.unref)(ns).m("has-breadcrumb")]: !!_ctx.$slots.breadcrumb, + [(0, vue.unref)(ns).m("has-extra")]: !!_ctx.$slots.extra + } + ]) }, [ + _ctx.$slots.breadcrumb ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("breadcrumb")) + }, [(0, vue.renderSlot)(_ctx.$slots, "breadcrumb")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("header")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("left")) }, [ + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("back")), + role: "button", + tabindex: "0", + onClick: handleClick + }, [__props.icon || _ctx.$slots.icon ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + "aria-label": __props.title || (0, vue.unref)(t)("el.pageHeader.title"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon")) + }, [(0, vue.renderSlot)(_ctx.$slots, "icon", {}, () => [__props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true)])], 10, _hoisted_1$30)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) }, [(0, vue.renderSlot)(_ctx.$slots, "title", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title || (0, vue.unref)(t)("el.pageHeader.title")), 1)])], 2)], 2), + (0, vue.createVNode)((0, vue.unref)(ElDivider), { direction: "vertical" }), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) }, [(0, vue.renderSlot)(_ctx.$slots, "content", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.content), 1)])], 2) + ], 2), _ctx.$slots.extra ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("extra")) + }, [(0, vue.renderSlot)(_ctx.$slots, "extra")], 2)) : (0, vue.createCommentVNode)("v-if", true)], 2), + _ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("main")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/page-header/src/page-header.vue + var page_header_default = page_header_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/page-header/index.ts + const ElPageHeader = withInstall(page_header_default); + +//#endregion +//#region ../../packages/components/pagination/src/constants.ts + const elPaginationKey = Symbol("elPaginationKey"); + +//#endregion +//#region ../../packages/components/pagination/src/components/prev.ts + const paginationPrevProps = buildProps({ + disabled: Boolean, + currentPage: { + type: Number, + default: 1 + }, + prevText: { type: String }, + prevIcon: { type: iconPropType } + }); + const paginationPrevEmits = { click: (evt) => evt instanceof MouseEvent }; + +//#endregion +//#region ../../packages/components/pagination/src/components/prev.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$29 = [ + "disabled", + "aria-label", + "aria-disabled" + ]; + const _hoisted_2$18 = { key: 0 }; + var prev_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPaginationPrev", + __name: "prev", + props: paginationPrevProps, + emits: paginationPrevEmits, + setup(__props) { + const props = __props; + const { t } = useLocale(); + const internalDisabled = (0, vue.computed)(() => props.disabled || props.currentPage <= 1); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + type: "button", + class: "btn-prev", + disabled: internalDisabled.value, + "aria-label": _ctx.prevText || (0, vue.unref)(t)("el.pagination.prev"), + "aria-disabled": internalDisabled.value, + onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click", $event)) + }, [_ctx.prevText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2$18, (0, vue.toDisplayString)(_ctx.prevText), 1)) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 1 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.prevIcon)))]), + _: 1 + }))], 8, _hoisted_1$29); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/prev.vue + var prev_default = prev_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/pagination/src/components/next.ts + const paginationNextProps = buildProps({ + disabled: Boolean, + currentPage: { + type: Number, + default: 1 + }, + pageCount: { + type: Number, + default: 50 + }, + nextText: { type: String }, + nextIcon: { type: iconPropType } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/next.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$28 = [ + "disabled", + "aria-label", + "aria-disabled" + ]; + const _hoisted_2$17 = { key: 0 }; + var next_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPaginationNext", + __name: "next", + props: paginationNextProps, + emits: ["click"], + setup(__props) { + const props = __props; + const { t } = useLocale(); + const internalDisabled = (0, vue.computed)(() => props.disabled || props.currentPage === props.pageCount || props.pageCount === 0); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + type: "button", + class: "btn-next", + disabled: internalDisabled.value, + "aria-label": _ctx.nextText || (0, vue.unref)(t)("el.pagination.next"), + "aria-disabled": internalDisabled.value, + onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click", $event)) + }, [_ctx.nextText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2$17, (0, vue.toDisplayString)(_ctx.nextText), 1)) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 1 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.nextIcon)))]), + _: 1 + }))], 8, _hoisted_1$28); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/next.vue + var next_default = next_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/pagination/src/usePagination.ts + const usePagination = () => (0, vue.inject)(elPaginationKey, {}); + +//#endregion +//#region ../../packages/components/pagination/src/components/sizes.ts + const paginationSizesProps = buildProps({ + pageSize: { + type: Number, + required: true + }, + pageSizes: { + type: definePropType(Array), + default: () => mutable([ + 10, + 20, + 30, + 40, + 50, + 100 + ]) + }, + popperClass: { type: String }, + popperStyle: { type: definePropType([String, Object]) }, + disabled: Boolean, + teleported: Boolean, + size: { + type: String, + values: componentSizes + }, + appendSizeTo: String + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/sizes.vue?vue&type=script&setup=true&lang.ts + var sizes_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPaginationSizes", + __name: "sizes", + props: paginationSizesProps, + emits: ["page-size-change"], + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const { t } = useLocale(); + const ns = useNamespace("pagination"); + const pagination = usePagination(); + const innerPageSize = (0, vue.ref)(props.pageSize); + (0, vue.watch)(() => props.pageSizes, (newVal, oldVal) => { + if (isEqual$1(newVal, oldVal)) return; + if (isArray$1(newVal)) emit("page-size-change", newVal.includes(props.pageSize) ? props.pageSize : props.pageSizes[0]); + }); + (0, vue.watch)(() => props.pageSize, (newVal) => { + innerPageSize.value = newVal; + }); + const innerPageSizes = (0, vue.computed)(() => props.pageSizes); + function handleChange(val) { + if (val !== innerPageSize.value) { + innerPageSize.value = val; + pagination.handleSizeChange?.(Number(val)); + } + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("sizes")) }, [(0, vue.createVNode)((0, vue.unref)(ElSelect), { + "model-value": innerPageSize.value, + disabled: _ctx.disabled, + "popper-class": _ctx.popperClass, + "popper-style": _ctx.popperStyle, + size: _ctx.size, + teleported: _ctx.teleported, + "validate-event": false, + "append-to": _ctx.appendSizeTo, + onChange: handleChange + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(innerPageSizes.value, (item) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElOption), { + key: item, + value: item, + label: item + (0, vue.unref)(t)("el.pagination.pagesize") + }, null, 8, ["value", "label"]); + }), 128))]), + _: 1 + }, 8, [ + "model-value", + "disabled", + "popper-class", + "popper-style", + "size", + "teleported", + "append-to" + ])], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/sizes.vue + var sizes_default = sizes_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/pagination/src/components/jumper.ts + const paginationJumperProps = buildProps({ size: { + type: String, + values: componentSizes + } }); + +//#endregion +//#region ../../packages/components/pagination/src/components/jumper.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$27 = ["disabled"]; + var jumper_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPaginationJumper", + __name: "jumper", + props: paginationJumperProps, + setup(__props) { + const { t } = useLocale(); + const ns = useNamespace("pagination"); + const { pageCount, disabled, currentPage, changeEvent } = usePagination(); + const userInput = (0, vue.ref)(); + const innerValue = (0, vue.computed)(() => userInput.value ?? currentPage?.value); + function handleInput(val) { + userInput.value = val ? +val : ""; + } + function handleChange(val) { + val = Math.trunc(+val); + changeEvent?.(val); + userInput.value = void 0; + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("jump")), + disabled: (0, vue.unref)(disabled) + }, [ + (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("goto")]) }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.pagination.goto")), 3), + (0, vue.createVNode)((0, vue.unref)(ElInput), { + size: _ctx.size, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("editor"), (0, vue.unref)(ns).is("in-pagination")]), + min: 1, + max: (0, vue.unref)(pageCount), + disabled: (0, vue.unref)(disabled), + "model-value": innerValue.value, + "validate-event": false, + "aria-label": (0, vue.unref)(t)("el.pagination.page"), + type: "number", + "onUpdate:modelValue": handleInput, + onChange: handleChange + }, null, 8, [ + "size", + "class", + "max", + "disabled", + "model-value", + "aria-label" + ]), + (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("classifier")]) }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.pagination.pageClassifier")), 3) + ], 10, _hoisted_1$27); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/jumper.vue + var jumper_default = jumper_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/pagination/src/components/total.ts + const paginationTotalProps = buildProps({ total: { + type: Number, + default: 1e3 + } }); + +//#endregion +//#region ../../packages/components/pagination/src/components/total.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$26 = ["disabled"]; + var total_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPaginationTotal", + __name: "total", + props: paginationTotalProps, + setup(__props) { + const { t } = useLocale(); + const ns = useNamespace("pagination"); + const { disabled } = usePagination(); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("total")), + disabled: (0, vue.unref)(disabled) + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.pagination.total", { total: _ctx.total })), 11, _hoisted_1$26); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/total.vue + var total_default = total_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/pagination/src/components/pager.ts + const paginationPagerProps = buildProps({ + currentPage: { + type: Number, + default: 1 + }, + pageCount: { + type: Number, + required: true + }, + pagerCount: { + type: Number, + default: 7 + }, + disabled: Boolean + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/pager.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$25 = [ + "aria-current", + "aria-label", + "tabindex" + ]; + const _hoisted_2$16 = ["tabindex", "aria-label"]; + const _hoisted_3$7 = [ + "aria-current", + "aria-label", + "tabindex" + ]; + const _hoisted_4$5 = ["tabindex", "aria-label"]; + const _hoisted_5$3 = [ + "aria-current", + "aria-label", + "tabindex" + ]; + var pager_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPaginationPager", + __name: "pager", + props: paginationPagerProps, + emits: [CHANGE_EVENT], + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const nsPager = useNamespace("pager"); + const nsIcon = useNamespace("icon"); + const { t } = useLocale(); + const showPrevMore = (0, vue.ref)(false); + const showNextMore = (0, vue.ref)(false); + const quickPrevHover = (0, vue.ref)(false); + const quickNextHover = (0, vue.ref)(false); + const quickPrevFocus = (0, vue.ref)(false); + const quickNextFocus = (0, vue.ref)(false); + const pagers = (0, vue.computed)(() => { + const pagerCount = props.pagerCount; + const halfPagerCount = (pagerCount - 1) / 2; + const currentPage = Number(props.currentPage); + const pageCount = Number(props.pageCount); + let showPrevMore = false; + let showNextMore = false; + if (pageCount > pagerCount) { + if (currentPage > pagerCount - halfPagerCount) showPrevMore = true; + if (currentPage < pageCount - halfPagerCount) showNextMore = true; + } + const array = []; + if (showPrevMore && !showNextMore) { + const startPage = pageCount - (pagerCount - 2); + for (let i = startPage; i < pageCount; i++) array.push(i); + } else if (!showPrevMore && showNextMore) for (let i = 2; i < pagerCount; i++) array.push(i); + else if (showPrevMore && showNextMore) { + const offset = Math.floor(pagerCount / 2) - 1; + for (let i = currentPage - offset; i <= currentPage + offset; i++) array.push(i); + } else for (let i = 2; i < pageCount; i++) array.push(i); + return array; + }); + const prevMoreKls = (0, vue.computed)(() => [ + "more", + "btn-quickprev", + nsIcon.b(), + nsPager.is("disabled", props.disabled) + ]); + const nextMoreKls = (0, vue.computed)(() => [ + "more", + "btn-quicknext", + nsIcon.b(), + nsPager.is("disabled", props.disabled) + ]); + const tabindex = (0, vue.computed)(() => props.disabled ? -1 : 0); + (0, vue.watch)(() => [ + props.pageCount, + props.pagerCount, + props.currentPage + ], ([pageCount, pagerCount, currentPage]) => { + const halfPagerCount = (pagerCount - 1) / 2; + let showPrev = false; + let showNext = false; + if (pageCount > pagerCount) { + showPrev = currentPage > pagerCount - halfPagerCount; + showNext = currentPage < pageCount - halfPagerCount; + } + quickPrevHover.value &&= showPrev; + quickNextHover.value &&= showNext; + showPrevMore.value = showPrev; + showNextMore.value = showNext; + }, { immediate: true }); + function onMouseEnter(forward = false) { + if (props.disabled) return; + if (forward) quickPrevHover.value = true; + else quickNextHover.value = true; + } + function onFocus(forward = false) { + if (forward) quickPrevFocus.value = true; + else quickNextFocus.value = true; + } + function onEnter(e) { + const target = e.target; + if (target.tagName.toLowerCase() === "li" && Array.from(target.classList).includes("number")) { + const newPage = Number(target.textContent); + if (newPage !== props.currentPage) emit(CHANGE_EVENT, newPage); + } else if (target.tagName.toLowerCase() === "li" && Array.from(target.classList).includes("more")) onPagerClick(e); + } + function onPagerClick(event) { + const target = event.target; + if (target.tagName.toLowerCase() === "ul" || props.disabled) return; + let newPage = Number(target.textContent); + const pageCount = props.pageCount; + const currentPage = props.currentPage; + const pagerCountOffset = props.pagerCount - 2; + if (target.className.includes("more")) { + if (target.className.includes("quickprev")) newPage = currentPage - pagerCountOffset; + else if (target.className.includes("quicknext")) newPage = currentPage + pagerCountOffset; + } + if (!Number.isNaN(+newPage)) { + if (newPage < 1) newPage = 1; + if (newPage > pageCount) newPage = pageCount; + } + if (newPage !== currentPage) emit(CHANGE_EVENT, newPage); + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("ul", { + class: (0, vue.normalizeClass)((0, vue.unref)(nsPager).b()), + onClick: onPagerClick, + onKeyup: (0, vue.withKeys)(onEnter, ["enter"]) + }, [ + _ctx.pageCount > 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: 0, + class: (0, vue.normalizeClass)([[(0, vue.unref)(nsPager).is("active", _ctx.currentPage === 1), (0, vue.unref)(nsPager).is("disabled", _ctx.disabled)], "number"]), + "aria-current": _ctx.currentPage === 1, + "aria-label": (0, vue.unref)(t)("el.pagination.currentPage", { pager: 1 }), + tabindex: tabindex.value + }, " 1 ", 10, _hoisted_1$25)) : (0, vue.createCommentVNode)("v-if", true), + showPrevMore.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: 1, + class: (0, vue.normalizeClass)(prevMoreKls.value), + tabindex: tabindex.value, + "aria-label": (0, vue.unref)(t)("el.pagination.prevPages", { pager: _ctx.pagerCount - 2 }), + onMouseenter: _cache[0] || (_cache[0] = ($event) => onMouseEnter(true)), + onMouseleave: _cache[1] || (_cache[1] = ($event) => quickPrevHover.value = false), + onFocus: _cache[2] || (_cache[2] = ($event) => onFocus(true)), + onBlur: _cache[3] || (_cache[3] = ($event) => quickPrevFocus.value = false) + }, [(quickPrevHover.value || quickPrevFocus.value) && !_ctx.disabled ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(d_arrow_left_default), { key: 0 })) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(more_filled_default), { key: 1 }))], 42, _hoisted_2$16)) : (0, vue.createCommentVNode)("v-if", true), + ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(pagers.value, (pager) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: pager, + class: (0, vue.normalizeClass)([[(0, vue.unref)(nsPager).is("active", _ctx.currentPage === pager), (0, vue.unref)(nsPager).is("disabled", _ctx.disabled)], "number"]), + "aria-current": _ctx.currentPage === pager, + "aria-label": (0, vue.unref)(t)("el.pagination.currentPage", { pager }), + tabindex: tabindex.value + }, (0, vue.toDisplayString)(pager), 11, _hoisted_3$7); + }), 128)), + showNextMore.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: 2, + class: (0, vue.normalizeClass)(nextMoreKls.value), + tabindex: tabindex.value, + "aria-label": (0, vue.unref)(t)("el.pagination.nextPages", { pager: _ctx.pagerCount - 2 }), + onMouseenter: _cache[4] || (_cache[4] = ($event) => onMouseEnter()), + onMouseleave: _cache[5] || (_cache[5] = ($event) => quickNextHover.value = false), + onFocus: _cache[6] || (_cache[6] = ($event) => onFocus()), + onBlur: _cache[7] || (_cache[7] = ($event) => quickNextFocus.value = false) + }, [(quickNextHover.value || quickNextFocus.value) && !_ctx.disabled ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(d_arrow_right_default), { key: 0 })) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(more_filled_default), { key: 1 }))], 42, _hoisted_4$5)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.pageCount > 1 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: 3, + class: (0, vue.normalizeClass)([[(0, vue.unref)(nsPager).is("active", _ctx.currentPage === _ctx.pageCount), (0, vue.unref)(nsPager).is("disabled", _ctx.disabled)], "number"]), + "aria-current": _ctx.currentPage === _ctx.pageCount, + "aria-label": (0, vue.unref)(t)("el.pagination.currentPage", { pager: _ctx.pageCount }), + tabindex: tabindex.value + }, (0, vue.toDisplayString)(_ctx.pageCount), 11, _hoisted_5$3)) : (0, vue.createCommentVNode)("v-if", true) + ], 34); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/pager.vue + var pager_default = pager_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/pagination/src/pagination.ts +/** + * It it user's responsibility to guarantee that the value of props.total... is number + * (same as pageSize, defaultPageSize, currentPage, defaultCurrentPage, pageCount) + * Otherwise we can reasonable infer that the corresponding field is absent + */ + const isAbsent = (v) => typeof v !== "number"; + const paginationProps = buildProps({ + pageSize: Number, + defaultPageSize: Number, + total: Number, + pageCount: Number, + pagerCount: { + type: Number, + validator: (value) => { + return isNumber(value) && Math.trunc(value) === value && value > 4 && value < 22 && value % 2 === 1; + }, + default: 7 + }, + currentPage: Number, + defaultCurrentPage: Number, + layout: { + type: String, + default: [ + "prev", + "pager", + "next", + "jumper", + "->", + "total" + ].join(", ") + }, + pageSizes: { + type: definePropType(Array), + default: () => mutable([ + 10, + 20, + 30, + 40, + 50, + 100 + ]) + }, + popperClass: { + type: String, + default: "" + }, + popperStyle: { type: definePropType([String, Object]) }, + prevText: { + type: String, + default: "" + }, + prevIcon: { + type: iconPropType, + default: () => arrow_left_default + }, + nextText: { + type: String, + default: "" + }, + nextIcon: { + type: iconPropType, + default: () => arrow_right_default + }, + teleported: { + type: Boolean, + default: true + }, + small: Boolean, + size: useSizeProp, + background: Boolean, + disabled: Boolean, + hideOnSinglePage: Boolean, + appendSizeTo: String + }); + const paginationEmits = { + "update:current-page": (val) => isNumber(val), + "update:page-size": (val) => isNumber(val), + "size-change": (val) => isNumber(val), + change: (currentPage, pageSize) => isNumber(currentPage) && isNumber(pageSize), + "current-change": (val) => isNumber(val), + "prev-click": (val) => isNumber(val), + "next-click": (val) => isNumber(val) + }; + const componentName = "ElPagination"; + var pagination_default = (0, vue.defineComponent)({ + name: componentName, + props: paginationProps, + emits: paginationEmits, + setup(props, { emit, slots }) { + const { t } = useLocale(); + const ns = useNamespace("pagination"); + const vnodeProps = (0, vue.getCurrentInstance)().vnode.props || {}; + const _globalSize = useGlobalSize(); + const _size = (0, vue.computed)(() => props.small ? "small" : props.size ?? _globalSize.value); + useDeprecated({ + from: "small", + replacement: "size", + version: "3.0.0", + scope: "el-pagination", + ref: "https://element-plus.org/zh-CN/component/pagination.html" + }, (0, vue.computed)(() => !!props.small)); + const hasCurrentPageListener = "onUpdate:currentPage" in vnodeProps || "onUpdate:current-page" in vnodeProps || "onCurrentChange" in vnodeProps; + const hasPageSizeListener = "onUpdate:pageSize" in vnodeProps || "onUpdate:page-size" in vnodeProps || "onSizeChange" in vnodeProps; + const assertValidUsage = (0, vue.computed)(() => { + if (isAbsent(props.total) && isAbsent(props.pageCount)) return false; + if (!isAbsent(props.currentPage) && !hasCurrentPageListener) return false; + if (props.layout.includes("sizes")) { + if (!isAbsent(props.pageCount)) { + if (!hasPageSizeListener) return false; + } else if (!isAbsent(props.total)) { + if (!isAbsent(props.pageSize)) { + if (!hasPageSizeListener) return false; + } + } + } + return true; + }); + const innerPageSize = (0, vue.ref)(isAbsent(props.defaultPageSize) ? 10 : props.defaultPageSize); + const innerCurrentPage = (0, vue.ref)(isAbsent(props.defaultCurrentPage) ? 1 : props.defaultCurrentPage); + const pageSizeBridge = (0, vue.computed)({ + get() { + return isAbsent(props.pageSize) ? innerPageSize.value : props.pageSize; + }, + set(v) { + if (isAbsent(props.pageSize)) innerPageSize.value = v; + if (hasPageSizeListener) { + emit("update:page-size", v); + emit("size-change", v); + } + } + }); + const pageCountBridge = (0, vue.computed)(() => { + let pageCount = 0; + if (!isAbsent(props.pageCount)) pageCount = props.pageCount; + else if (!isAbsent(props.total)) pageCount = Math.max(1, Math.ceil(props.total / pageSizeBridge.value)); + return pageCount; + }); + const currentPageBridge = (0, vue.computed)({ + get() { + return isAbsent(props.currentPage) ? innerCurrentPage.value : props.currentPage; + }, + set(v) { + let newCurrentPage = v; + if (v < 1) newCurrentPage = 1; + else if (v > pageCountBridge.value) newCurrentPage = pageCountBridge.value; + if (isAbsent(props.currentPage)) innerCurrentPage.value = newCurrentPage; + if (hasCurrentPageListener) { + emit("update:current-page", newCurrentPage); + emit("current-change", newCurrentPage); + } + } + }); + (0, vue.watch)(pageCountBridge, (val) => { + if (currentPageBridge.value > val) currentPageBridge.value = val; + }); + (0, vue.watch)([currentPageBridge, pageSizeBridge], (value) => { + emit(CHANGE_EVENT, ...value); + }, { flush: "post" }); + function handleCurrentChange(val) { + currentPageBridge.value = val; + } + function handleSizeChange(val) { + pageSizeBridge.value = val; + const newPageCount = pageCountBridge.value; + if (currentPageBridge.value > newPageCount) currentPageBridge.value = newPageCount; + } + function prev() { + if (props.disabled) return; + currentPageBridge.value -= 1; + emit("prev-click", currentPageBridge.value); + } + function next() { + if (props.disabled) return; + currentPageBridge.value += 1; + emit("next-click", currentPageBridge.value); + } + function addClass(element, cls) { + if (element) { + if (!element.props) element.props = {}; + element.props.class = [element.props.class, cls].join(" "); + } + } + (0, vue.provide)(elPaginationKey, { + pageCount: pageCountBridge, + disabled: (0, vue.computed)(() => props.disabled), + currentPage: currentPageBridge, + changeEvent: handleCurrentChange, + handleSizeChange + }); + return () => { + if (!assertValidUsage.value) { + /* @__PURE__ */ debugWarn(componentName, t("el.pagination.deprecationWarning")); + return null; + } + if (!props.layout) return null; + if (props.hideOnSinglePage && pageCountBridge.value <= 1) return null; + const rootChildren = []; + const rightWrapperChildren = []; + const rightWrapperRoot = (0, vue.h)("div", { class: ns.e("rightwrapper") }, rightWrapperChildren); + const TEMPLATE_MAP = { + prev: (0, vue.h)(prev_default, { + disabled: props.disabled, + currentPage: currentPageBridge.value, + prevText: props.prevText, + prevIcon: props.prevIcon, + onClick: prev + }), + jumper: (0, vue.h)(jumper_default, { size: _size.value }), + pager: (0, vue.h)(pager_default, { + currentPage: currentPageBridge.value, + pageCount: pageCountBridge.value, + pagerCount: props.pagerCount, + onChange: handleCurrentChange, + disabled: props.disabled + }), + next: (0, vue.h)(next_default, { + disabled: props.disabled, + currentPage: currentPageBridge.value, + pageCount: pageCountBridge.value, + nextText: props.nextText, + nextIcon: props.nextIcon, + onClick: next + }), + sizes: (0, vue.h)(sizes_default, { + pageSize: pageSizeBridge.value, + pageSizes: props.pageSizes, + popperClass: props.popperClass, + popperStyle: props.popperStyle, + disabled: props.disabled, + teleported: props.teleported, + size: _size.value, + appendSizeTo: props.appendSizeTo + }), + slot: slots?.default?.() ?? null, + total: (0, vue.h)(total_default, { total: isAbsent(props.total) ? 0 : props.total }) + }; + const components = props.layout.split(",").map((item) => item.trim()); + let haveRightWrapper = false; + components.forEach((c) => { + if (c === "->") { + haveRightWrapper = true; + return; + } + if (!haveRightWrapper) rootChildren.push(TEMPLATE_MAP[c]); + else rightWrapperChildren.push(TEMPLATE_MAP[c]); + }); + addClass(rootChildren[0], ns.is("first")); + addClass(rootChildren[rootChildren.length - 1], ns.is("last")); + if (haveRightWrapper && rightWrapperChildren.length > 0) { + addClass(rightWrapperChildren[0], ns.is("first")); + addClass(rightWrapperChildren[rightWrapperChildren.length - 1], ns.is("last")); + rootChildren.push(rightWrapperRoot); + } + return (0, vue.h)("div", { class: [ + ns.b(), + ns.is("background", props.background), + ns.m(_size.value) + ] }, rootChildren); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/index.ts + const ElPagination = withInstall(pagination_default); + +//#endregion +//#region ../../packages/components/popconfirm/src/popconfirm.ts +/** + * @deprecated Removed after 3.0.0, Use `PopconfirmProps` instead. + */ + const popconfirmProps = buildProps({ + title: String, + confirmButtonText: String, + cancelButtonText: String, + confirmButtonType: { + type: String, + values: buttonTypes, + default: "primary" + }, + cancelButtonType: { + type: String, + values: buttonTypes, + default: "text" + }, + icon: { + type: iconPropType, + default: () => question_filled_default + }, + iconColor: { + type: String, + default: "#f90" + }, + hideIcon: Boolean, + hideAfter: { + type: Number, + default: 200 + }, + effect: { + ...useTooltipContentProps.effect, + default: "light" + }, + teleported: useTooltipContentProps.teleported, + persistent: useTooltipContentProps.persistent, + width: { + type: [String, Number], + default: 150 + }, + virtualTriggering: useTooltipTriggerProps.virtualTriggering, + virtualRef: useTooltipTriggerProps.virtualRef + }); + const popconfirmEmits = { + confirm: (e) => e instanceof MouseEvent, + cancel: (e) => e instanceof MouseEvent + }; + +//#endregion +//#region ../../packages/components/popconfirm/src/popconfirm.vue?vue&type=script&setup=true&lang.ts + var popconfirm_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPopconfirm", + __name: "popconfirm", + props: popconfirmProps, + emits: popconfirmEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const { t } = useLocale(); + const ns = useNamespace("popconfirm"); + const tooltipRef = (0, vue.ref)(); + const rootRef = (0, vue.ref)(); + const popperRef = (0, vue.computed)(() => { + return (0, vue.unref)(tooltipRef)?.popperRef; + }); + const showPopper = () => { + rootRef.value?.focus?.(); + }; + const hidePopper = () => { + tooltipRef.value?.onClose?.(); + }; + const style = (0, vue.computed)(() => { + return { width: addUnit(props.width) }; + }); + const confirm = (e) => { + emit("confirm", e); + hidePopper(); + }; + const cancel = (e) => { + emit("cancel", e); + hidePopper(); + }; + const finalConfirmButtonText = (0, vue.computed)(() => props.confirmButtonText || t("el.popconfirm.confirmButtonText")); + const finalCancelButtonText = (0, vue.computed)(() => props.cancelButtonText || t("el.popconfirm.cancelButtonText")); + __expose({ + popperRef, + hide: hidePopper + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), (0, vue.mergeProps)({ + ref_key: "tooltipRef", + ref: tooltipRef, + trigger: "click", + effect: __props.effect + }, _ctx.$attrs, { + "virtual-triggering": __props.virtualTriggering, + "virtual-ref": __props.virtualRef, + "popper-class": `${(0, vue.unref)(ns).namespace.value}-popover`, + "popper-style": style.value, + teleported: __props.teleported, + "fallback-placements": [ + "bottom", + "top", + "right", + "left" + ], + "hide-after": __props.hideAfter, + persistent: __props.persistent, + loop: "", + onShow: showPopper + }), { + content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref_key: "rootRef", + ref: rootRef, + tabindex: "-1", + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("main")) }, [!__props.hideIcon && __props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon")), + style: (0, vue.normalizeStyle)({ color: __props.iconColor }) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + }, 8, ["class", "style"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createTextVNode)(" " + (0, vue.toDisplayString)(__props.title), 1)], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("action")) }, [(0, vue.renderSlot)(_ctx.$slots, "actions", { + confirm, + cancel + }, () => [(0, vue.createVNode)((0, vue.unref)(ElButton), { + size: "small", + type: __props.cancelButtonType === "text" ? "" : __props.cancelButtonType, + text: __props.cancelButtonType === "text", + onClick: cancel + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(finalCancelButtonText.value), 1)]), + _: 1 + }, 8, ["type", "text"]), (0, vue.createVNode)((0, vue.unref)(ElButton), { + size: "small", + type: __props.confirmButtonType === "text" ? "" : __props.confirmButtonType, + text: __props.confirmButtonType === "text", + onClick: confirm + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(finalConfirmButtonText.value), 1)]), + _: 1 + }, 8, ["type", "text"])])], 2)], 2)]), + default: (0, vue.withCtx)(() => [_ctx.$slots.reference ? (0, vue.renderSlot)(_ctx.$slots, "reference", { key: 0 }) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 16, [ + "effect", + "virtual-triggering", + "virtual-ref", + "popper-class", + "popper-style", + "teleported", + "hide-after", + "persistent" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/popconfirm/src/popconfirm.vue + var popconfirm_default = popconfirm_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/popconfirm/index.ts + const ElPopconfirm = withInstall(popconfirm_default); + +//#endregion +//#region ../../packages/components/popover/src/popover.ts +/** + * @deprecated Removed after 3.0.0, Use `PopoverProps` instead. + */ + const popoverProps = buildProps({ + trigger: useTooltipTriggerProps.trigger, + triggerKeys: useTooltipTriggerProps.triggerKeys, + placement: dropdownProps.placement, + disabled: useTooltipTriggerProps.disabled, + visible: useTooltipContentProps.visible, + transition: useTooltipContentProps.transition, + popperOptions: dropdownProps.popperOptions, + tabindex: dropdownProps.tabindex, + content: useTooltipContentProps.content, + popperStyle: useTooltipContentProps.popperStyle, + popperClass: useTooltipContentProps.popperClass, + enterable: { + ...useTooltipContentProps.enterable, + default: true + }, + effect: { + ...useTooltipContentProps.effect, + default: "light" + }, + teleported: useTooltipContentProps.teleported, + appendTo: useTooltipContentProps.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: true + }, + persistent: { + type: Boolean, + default: true + }, + "onUpdate:visible": { type: Function } + }); + const popoverEmits = { + "update:visible": (value) => isBoolean(value), + "before-enter": () => true, + "before-leave": () => true, + "after-enter": () => true, + "after-leave": () => true + }; + /** + * @description default values for PopoverProps + */ + const popoverPropsDefaults = { + trigger: "hover", + triggerKeys: () => [ + EVENT_CODE.enter, + EVENT_CODE.numpadEnter, + EVENT_CODE.space + ], + placement: "bottom", + visible: null, + popperOptions: () => ({}), + tabindex: 0, + content: "", + popperStyle: void 0, + enterable: true, + effect: "light", + teleported: true, + width: 150, + offset: void 0, + showAfter: 0, + hideAfter: 200, + autoClose: 0, + showArrow: true, + persistent: true + }; + +//#endregion +//#region ../../packages/components/popover/src/popover.vue?vue&type=script&setup=true&lang.ts + const updateEventKeyRaw = `onUpdate:visible`; + var popover_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPopover", + __name: "popover", + props: popoverProps, + emits: popoverEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const onUpdateVisible = (0, vue.computed)(() => { + return props[updateEventKeyRaw]; + }); + const ns = useNamespace("popover"); + const tooltipRef = (0, vue.ref)(); + const popperRef = (0, vue.computed)(() => { + return (0, vue.unref)(tooltipRef)?.popperRef; + }); + const style = (0, vue.computed)(() => { + return [{ width: addUnit(props.width) }, props.popperStyle]; + }); + const kls = (0, vue.computed)(() => { + return [ + ns.b(), + props.popperClass, + { [ns.m("plain")]: !!props.content } + ]; + }); + const gpuAcceleration = (0, vue.computed)(() => { + return props.transition === `${ns.namespace.value}-fade-in-linear`; + }); + const hide = () => { + tooltipRef.value?.hide(); + }; + const beforeEnter = () => { + emit("before-enter"); + }; + const beforeLeave = () => { + emit("before-leave"); + }; + const afterEnter = () => { + emit("after-enter"); + }; + const afterLeave = () => { + emit("update:visible", false); + emit("after-leave"); + }; + __expose({ + popperRef, + hide + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), (0, vue.mergeProps)({ + ref_key: "tooltipRef", + ref: tooltipRef + }, _ctx.$attrs, { + trigger: __props.trigger, + "trigger-keys": __props.triggerKeys, + placement: __props.placement, + disabled: __props.disabled, + visible: __props.visible, + transition: __props.transition, + "popper-options": __props.popperOptions, + tabindex: __props.tabindex, + content: __props.content, + offset: __props.offset, + "show-after": __props.showAfter, + "hide-after": __props.hideAfter, + "auto-close": __props.autoClose, + "show-arrow": __props.showArrow, + "aria-label": __props.title, + effect: __props.effect, + enterable: __props.enterable, + "popper-class": kls.value, + "popper-style": style.value, + teleported: __props.teleported, + "append-to": __props.appendTo, + persistent: __props.persistent, + "gpu-acceleration": gpuAcceleration.value, + "onUpdate:visible": onUpdateVisible.value, + onBeforeShow: beforeEnter, + onBeforeHide: beforeLeave, + onShow: afterEnter, + onHide: afterLeave + }), { + content: (0, vue.withCtx)(() => [__props.title ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")), + role: "title" + }, (0, vue.toDisplayString)(__props.title), 3)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.renderSlot)(_ctx.$slots, "default", { hide }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.content), 1)])]), + default: (0, vue.withCtx)(() => [_ctx.$slots.reference ? (0, vue.renderSlot)(_ctx.$slots, "reference", { key: 0 }) : (0, vue.createCommentVNode)("v-if", true)]), + _: 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" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/popover/src/popover.vue + var popover_default = popover_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/popover/src/directive.ts + const attachEvents = (el, binding) => { + const popover = (binding.arg || binding.value)?.popperRef; + if (popover) popover.triggerRef = el; + }; + var directive_default = { + mounted(el, binding) { + attachEvents(el, binding); + }, + updated(el, binding) { + attachEvents(el, binding); + } + }; + const VPopover = "popover"; + +//#endregion +//#region ../../packages/components/popover/index.ts + const ElPopoverDirective = withInstallDirective(directive_default, VPopover); + const ElPopover = withInstall(popover_default, { directive: ElPopoverDirective }); + +//#endregion +//#region ../../packages/components/progress/src/progress.ts +/** + * @deprecated Removed after 3.0.0, Use `ProgressProps` instead. + */ + const progressProps = buildProps({ + type: { + type: String, + default: "line", + values: [ + "line", + "circle", + "dashboard" + ] + }, + percentage: { + type: Number, + default: 0, + validator: (val) => val >= 0 && val <= 100 + }, + status: { + type: String, + default: "", + values: [ + "", + "success", + "exception", + "warning" + ] + }, + indeterminate: Boolean, + duration: { + type: Number, + default: 3 + }, + strokeWidth: { + type: Number, + default: 6 + }, + strokeLinecap: { + type: definePropType(String), + default: "round" + }, + textInside: Boolean, + width: { + type: Number, + default: 126 + }, + showText: { + type: Boolean, + default: true + }, + color: { + type: definePropType([ + String, + Array, + Function + ]), + default: "" + }, + striped: Boolean, + stripedFlow: Boolean, + format: { + type: definePropType(Function), + default: (percentage) => `${percentage}%` + } + }); + +//#endregion +//#region ../../packages/components/progress/src/progress.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$24 = ["aria-valuenow"]; + const _hoisted_2$15 = { viewBox: "0 0 100 100" }; + const _hoisted_3$6 = [ + "d", + "stroke", + "stroke-linecap", + "stroke-width" + ]; + const _hoisted_4$4 = [ + "d", + "stroke", + "opacity", + "stroke-linecap", + "stroke-width" + ]; + const _hoisted_5$2 = { key: 0 }; + var progress_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElProgress", + __name: "progress", + props: progressProps, + setup(__props) { + const STATUS_COLOR_MAP = { + success: "#13ce66", + exception: "#ff4949", + warning: "#e6a23c", + default: "#20a0ff" + }; + const props = __props; + const ns = useNamespace("progress"); + const barStyle = (0, vue.computed)(() => { + const barStyle = { + width: `${props.percentage}%`, + animationDuration: `${props.duration}s` + }; + const color = getCurrentColor(props.percentage); + if (color.includes("gradient")) barStyle.background = color; + else barStyle.backgroundColor = color; + return barStyle; + }); + const relativeStrokeWidth = (0, vue.computed)(() => (props.strokeWidth / props.width * 100).toFixed(1)); + const radius = (0, vue.computed)(() => { + if (["circle", "dashboard"].includes(props.type)) return Number.parseInt(`${50 - Number.parseFloat(relativeStrokeWidth.value) / 2}`, 10); + return 0; + }); + const trackPath = (0, vue.computed)(() => { + const r = radius.value; + const isDashboard = props.type === "dashboard"; + return ` + M 50 50 + m 0 ${isDashboard ? "" : "-"}${r} + a ${r} ${r} 0 1 1 0 ${isDashboard ? "-" : ""}${r * 2} + a ${r} ${r} 0 1 1 0 ${isDashboard ? "" : "-"}${r * 2} + `; + }); + const perimeter = (0, vue.computed)(() => 2 * Math.PI * radius.value); + const rate = (0, vue.computed)(() => props.type === "dashboard" ? .75 : 1); + const strokeDashoffset = (0, vue.computed)(() => { + return `${-1 * perimeter.value * (1 - rate.value) / 2}px`; + }); + const trailPathStyle = (0, vue.computed)(() => ({ + strokeDasharray: `${perimeter.value * rate.value}px, ${perimeter.value}px`, + strokeDashoffset: strokeDashoffset.value + })); + const circlePathStyle = (0, vue.computed)(() => ({ + strokeDasharray: `${perimeter.value * rate.value * (props.percentage / 100)}px, ${perimeter.value}px`, + strokeDashoffset: strokeDashoffset.value, + transition: "stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s" + })); + const stroke = (0, vue.computed)(() => { + let ret; + if (props.color) ret = getCurrentColor(props.percentage); + else ret = STATUS_COLOR_MAP[props.status] || STATUS_COLOR_MAP.default; + return ret; + }); + const statusIcon = (0, vue.computed)(() => { + if (props.status === "warning") return warning_filled_default; + if (props.type === "line") return props.status === "success" ? circle_check_default : circle_close_default; + else return props.status === "success" ? check_default : close_default; + }); + const progressTextSize = (0, vue.computed)(() => { + return props.type === "line" ? 12 + props.strokeWidth * .4 : props.width * .111111 + 2; + }); + const content = (0, vue.computed)(() => props.format(props.percentage)); + function getColors(color) { + const span = 100 / color.length; + return color.map((seriesColor, index) => { + if (isString(seriesColor)) return { + color: seriesColor, + percentage: (index + 1) * span + }; + return seriesColor; + }).sort((a, b) => a.percentage - b.percentage); + } + const getCurrentColor = (percentage) => { + const { color } = props; + if (isFunction$1(color)) return color(percentage); + else if (isString(color)) return color; + else { + const colors = getColors(color); + for (const color of colors) if (color.percentage > percentage) return color.color; + return colors[colors.length - 1]?.color; + } + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).m(__props.type), + (0, vue.unref)(ns).is(__props.status), + { + [(0, vue.unref)(ns).m("without-text")]: !__props.showText, + [(0, vue.unref)(ns).m("text-inside")]: __props.textInside + } + ]), + role: "progressbar", + "aria-valuenow": __props.percentage, + "aria-valuemin": "0", + "aria-valuemax": "100" + }, [__props.type === "line" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("bar")) + }, [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("bar", "outer")), + style: (0, vue.normalizeStyle)({ height: `${__props.strokeWidth}px` }) + }, [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).be("bar", "inner"), + { [(0, vue.unref)(ns).bem("bar", "inner", "indeterminate")]: __props.indeterminate }, + { [(0, vue.unref)(ns).bem("bar", "inner", "striped")]: __props.striped }, + { [(0, vue.unref)(ns).bem("bar", "inner", "striped-flow")]: __props.stripedFlow } + ]), + style: (0, vue.normalizeStyle)(barStyle.value) + }, [(__props.showText || _ctx.$slots.default) && __props.textInside ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("bar", "innerText")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", { percentage: __props.percentage }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(content.value), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true)], 6)], 6)], 2)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("circle")), + style: (0, vue.normalizeStyle)({ + height: `${__props.width}px`, + width: `${__props.width}px` + }) + }, [((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", _hoisted_2$15, [(0, vue.createElementVNode)("path", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("circle", "track")), + d: trackPath.value, + stroke: `var(${(0, vue.unref)(ns).cssVarName("fill-color-light")}, #e5e9f2)`, + "stroke-linecap": __props.strokeLinecap, + "stroke-width": relativeStrokeWidth.value, + fill: "none", + style: (0, vue.normalizeStyle)(trailPathStyle.value) + }, null, 14, _hoisted_3$6), (0, vue.createElementVNode)("path", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("circle", "path")), + d: trackPath.value, + stroke: stroke.value, + fill: "none", + opacity: __props.percentage ? 1 : 0, + "stroke-linecap": __props.strokeLinecap, + "stroke-width": relativeStrokeWidth.value, + style: (0, vue.normalizeStyle)(circlePathStyle.value) + }, null, 14, _hoisted_4$4)]))], 6)), (__props.showText || _ctx.$slots.default) && !__props.textInside ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("text")), + style: (0, vue.normalizeStyle)({ fontSize: `${progressTextSize.value}px` }) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", { percentage: __props.percentage }, () => [!__props.status ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_5$2, (0, vue.toDisplayString)(content.value), 1)) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 1 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(statusIcon.value)))]), + _: 1 + }))])], 6)) : (0, vue.createCommentVNode)("v-if", true)], 10, _hoisted_1$24); + }; + } + }); + +//#endregion +//#region ../../packages/components/progress/src/progress.vue + var progress_default = progress_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/progress/index.ts + const ElProgress = withInstall(progress_default); + +//#endregion +//#region ../../packages/components/rate/src/rate.ts +/** + * @deprecated Removed after 3.0.0, Use `RateProps` instead. + */ + const rateProps = buildProps({ + 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: definePropType([Array, Object]), + default: () => mutable([ + "", + "", + "" + ]) + }, + voidColor: { + type: String, + default: "" + }, + disabledVoidColor: { + type: String, + default: "" + }, + icons: { + type: definePropType([Array, Object]), + default: () => [ + star_filled_default, + star_filled_default, + star_filled_default + ] + }, + voidIcon: { + type: iconPropType, + default: () => star_default + }, + disabledVoidIcon: { + type: iconPropType, + default: () => star_filled_default + }, + disabled: { + type: Boolean, + default: void 0 + }, + allowHalf: Boolean, + showText: Boolean, + showScore: Boolean, + textColor: { + type: String, + default: "" + }, + texts: { + type: definePropType(Array), + default: () => mutable([ + "Extremely bad", + "Disappointed", + "Fair", + "Satisfied", + "Surprise" + ]) + }, + scoreTemplate: { + type: String, + default: "{value}" + }, + size: useSizeProp, + clearable: Boolean, + ...useAriaProps(["ariaLabel"]) + }); + const rateEmits = { + [CHANGE_EVENT]: (value) => isNumber(value), + [UPDATE_MODEL_EVENT]: (value) => isNumber(value) + }; + +//#endregion +//#region ../../packages/components/rate/src/rate.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$23 = [ + "id", + "aria-label", + "aria-labelledby", + "aria-valuenow", + "aria-valuetext", + "aria-valuemax", + "tabindex", + "aria-disabled" + ]; + const _hoisted_2$14 = ["onMousemove", "onClick"]; + var rate_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElRate", + __name: "rate", + props: rateProps, + emits: rateEmits, + setup(__props, { expose: __expose, emit: __emit }) { + function getValueFromMap(value, map) { + const isExcludedObject = (val) => isObject$1(val); + const matchedValue = map[Object.keys(map).map((key) => +key).filter((key) => { + const val = map[key]; + return (isExcludedObject(val) ? val.excluded : false) ? value < key : value <= key; + }).sort((a, b) => a - b)[0]]; + return isExcludedObject(matchedValue) && matchedValue.value || matchedValue; + } + const props = __props; + const emit = __emit; + const formItemContext = (0, vue.inject)(formItemContextKey, void 0); + const rateSize = useFormSize(); + const ns = useNamespace("rate"); + const { inputId, isLabeledByFormItem } = useFormItemInputId(props, { formItemContext }); + const currentValue = (0, vue.ref)(clamp$1(props.modelValue, 0, props.max)); + const hoverIndex = (0, vue.ref)(-1); + const pointerAtLeftHalf = (0, vue.ref)(true); + const iconRefs = (0, vue.ref)([]); + const iconClientWidths = (0, vue.computed)(() => iconRefs.value.map((icon) => icon.$el.clientWidth)); + const rateClasses = (0, vue.computed)(() => [ns.b(), ns.m(rateSize.value)]); + const rateDisabled = useFormDisabled(); + const rateStyles = (0, vue.computed)(() => { + return ns.cssVarBlock({ + "void-color": props.voidColor, + "disabled-void-color": props.disabledVoidColor, + "fill-color": activeColor.value + }); + }); + const text = (0, vue.computed)(() => { + let result = ""; + if (props.showScore) result = props.scoreTemplate.replace(/\{\s*value\s*\}/, rateDisabled.value ? `${props.modelValue}` : `${currentValue.value}`); + else if (props.showText) result = props.texts[Math.ceil(currentValue.value) - 1]; + return result; + }); + const valueDecimal = (0, vue.computed)(() => props.modelValue * 100 - Math.floor(props.modelValue) * 100); + const colorMap = (0, vue.computed)(() => isArray$1(props.colors) ? { + [props.lowThreshold]: props.colors[0], + [props.highThreshold]: { + value: props.colors[1], + excluded: true + }, + [props.max]: props.colors[2] + } : props.colors); + const activeColor = (0, vue.computed)(() => { + const color = getValueFromMap(currentValue.value, colorMap.value); + return isObject$1(color) ? "" : color; + }); + const decimalStyle = (0, vue.computed)(() => { + let width = ""; + if (rateDisabled.value) width = `${valueDecimal.value}%`; + else if (props.allowHalf) width = "50%"; + return { + color: activeColor.value, + width + }; + }); + const componentMap = (0, vue.computed)(() => { + let icons = isArray$1(props.icons) ? [...props.icons] : { ...props.icons }; + icons = (0, vue.markRaw)(icons); + return isArray$1(icons) ? { + [props.lowThreshold]: icons[0], + [props.highThreshold]: { + value: icons[1], + excluded: true + }, + [props.max]: icons[2] + } : icons; + }); + const decimalIconComponent = (0, vue.computed)(() => getValueFromMap(props.modelValue, componentMap.value)); + const voidComponent = (0, vue.computed)(() => rateDisabled.value ? isString(props.disabledVoidIcon) ? props.disabledVoidIcon : (0, vue.markRaw)(props.disabledVoidIcon) : isString(props.voidIcon) ? props.voidIcon : (0, vue.markRaw)(props.voidIcon)); + const activeComponent = (0, vue.computed)(() => getValueFromMap(currentValue.value, componentMap.value)); + function showDecimalIcon(item) { + const showWhenDisabled = rateDisabled.value && valueDecimal.value > 0 && item - 1 < props.modelValue && item > props.modelValue; + const showWhenAllowHalf = props.allowHalf && pointerAtLeftHalf.value && item - .5 <= currentValue.value && item > currentValue.value; + return showWhenDisabled || showWhenAllowHalf; + } + function emitValue(value) { + if (props.clearable && value === props.modelValue) value = 0; + emit(UPDATE_MODEL_EVENT, value); + if (props.modelValue !== value) emit(CHANGE_EVENT, value); + } + function selectValue(value) { + if (rateDisabled.value) return; + if (props.allowHalf && pointerAtLeftHalf.value) emitValue(currentValue.value); + else emitValue(value); + } + function handleKey(e) { + if (rateDisabled.value) return; + const code = getEventCode(e); + const step = props.allowHalf ? .5 : 1; + let _currentValue = currentValue.value; + switch (code) { + case EVENT_CODE.up: + case EVENT_CODE.right: + _currentValue += step; + break; + case EVENT_CODE.left: + case EVENT_CODE.down: + _currentValue -= step; + break; + } + _currentValue = clamp$1(_currentValue, 0, props.max); + if (_currentValue === currentValue.value) return; + e.stopPropagation(); + e.preventDefault(); + emit(UPDATE_MODEL_EVENT, _currentValue); + emit(CHANGE_EVENT, _currentValue); + return _currentValue; + } + function setCurrentValue(value, event) { + if (rateDisabled.value) return; + if (props.allowHalf && event) { + pointerAtLeftHalf.value = event.offsetX * 2 <= iconClientWidths.value[value - 1]; + currentValue.value = pointerAtLeftHalf.value ? value - .5 : value; + } else currentValue.value = value; + hoverIndex.value = value; + } + function resetCurrentValue() { + if (rateDisabled.value) return; + if (props.allowHalf) pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue); + currentValue.value = clamp$1(props.modelValue, 0, props.max); + hoverIndex.value = -1; + } + (0, vue.watch)(() => props.modelValue, (val) => { + currentValue.value = clamp$1(val, 0, props.max); + pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue); + }); + if (!props.modelValue) emit(UPDATE_MODEL_EVENT, 0); + __expose({ + setCurrentValue, + resetCurrentValue + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + id: (0, vue.unref)(inputId), + class: (0, vue.normalizeClass)([rateClasses.value, (0, vue.unref)(ns).is("disabled", (0, vue.unref)(rateDisabled))]), + role: "slider", + "aria-label": !(0, vue.unref)(isLabeledByFormItem) ? __props.ariaLabel || "rating" : void 0, + "aria-labelledby": (0, vue.unref)(isLabeledByFormItem) ? (0, vue.unref)(formItemContext)?.labelId : void 0, + "aria-valuenow": currentValue.value, + "aria-valuetext": text.value || void 0, + "aria-valuemin": "0", + "aria-valuemax": __props.max, + style: (0, vue.normalizeStyle)(rateStyles.value), + tabindex: (0, vue.unref)(rateDisabled) ? void 0 : 0, + "aria-disabled": (0, vue.unref)(rateDisabled), + onKeydown: handleKey + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.max, (item, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("item")), + onMousemove: ($event) => setCurrentValue(item, $event), + onMouseleave: resetCurrentValue, + onClick: ($event) => selectValue(item) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { + ref_for: true, + ref_key: "iconRefs", + ref: iconRefs, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("icon"), + { hover: hoverIndex.value === item }, + (0, vue.unref)(ns).is("active", item <= currentValue.value), + (0, vue.unref)(ns).is("focus-visible", item === Math.ceil(currentValue.value || 1)) + ]) + }, { + default: (0, vue.withCtx)(() => [ + (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(activeComponent.value), null, null, 512)), [[vue.vShow, !showDecimalIcon(item) && item <= currentValue.value]]), + (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(voidComponent.value), null, null, 512)), [[vue.vShow, !showDecimalIcon(item) && item > currentValue.value]]), + (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(voidComponent.value), { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).em("decimal", "box")]) }, null, 8, ["class"])), [[vue.vShow, showDecimalIcon(item)]]), + (0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElIcon), { + style: (0, vue.normalizeStyle)(decimalStyle.value), + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon"), (0, vue.unref)(ns).e("decimal")]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(decimalIconComponent.value)))]), + _: 1 + }, 8, ["style", "class"]), [[vue.vShow, showDecimalIcon(item)]]) + ]), + _: 2 + }, 1032, ["class"])], 42, _hoisted_2$14); + }), 128)), __props.showText || __props.showScore ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("text")), + style: (0, vue.normalizeStyle)({ color: __props.textColor }) + }, (0, vue.toDisplayString)(text.value), 7)) : (0, vue.createCommentVNode)("v-if", true)], 46, _hoisted_1$23); + }; + } + }); + +//#endregion +//#region ../../packages/components/rate/src/rate.vue + var rate_default = rate_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/rate/index.ts + const ElRate = withInstall(rate_default); + +//#endregion +//#region ../../packages/components/result/src/result.ts + const IconMap = { + primary: "icon-primary", + success: "icon-success", + warning: "icon-warning", + error: "icon-error", + info: "icon-info" + }; + const IconComponentMap = { + [IconMap.primary]: info_filled_default, + [IconMap.success]: circle_check_filled_default, + [IconMap.warning]: warning_filled_default, + [IconMap.error]: circle_close_filled_default, + [IconMap.info]: info_filled_default + }; + /** + * @deprecated Removed after 3.0.0, Use `ResultProps` instead. + */ + const resultProps = buildProps({ + title: { + type: String, + default: "" + }, + subTitle: { + type: String, + default: "" + }, + icon: { + type: String, + values: [ + "primary", + "success", + "warning", + "info", + "error" + ], + default: "info" + } + }); + +//#endregion +//#region ../../packages/components/result/src/result.vue?vue&type=script&setup=true&lang.ts + var result_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElResult", + __name: "result", + props: resultProps, + setup(__props) { + const props = __props; + const ns = useNamespace("result"); + const resultIcon = (0, vue.computed)(() => { + const icon = props.icon; + const iconClass = icon && IconMap[icon] ? IconMap[icon] : "icon-info"; + return { + class: iconClass, + component: IconComponentMap[iconClass] || IconComponentMap["icon-info"] + }; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [ + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon")) }, [(0, vue.renderSlot)(_ctx.$slots, "icon", {}, () => [resultIcon.value.component ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(resultIcon.value.component), { + key: 0, + class: (0, vue.normalizeClass)(resultIcon.value.class) + }, null, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)])], 2), + __props.title || _ctx.$slots.title ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) + }, [(0, vue.renderSlot)(_ctx.$slots, "title", {}, () => [(0, vue.createElementVNode)("p", null, (0, vue.toDisplayString)(__props.title), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + __props.subTitle || _ctx.$slots["sub-title"] ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("subtitle")) + }, [(0, vue.renderSlot)(_ctx.$slots, "sub-title", {}, () => [(0, vue.createElementVNode)("p", null, (0, vue.toDisplayString)(__props.subTitle), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.extra ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("extra")) + }, [(0, vue.renderSlot)(_ctx.$slots, "extra")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/result/src/result.vue + var result_default = result_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/result/index.ts + const ElResult = withInstall(result_default); + +//#endregion +//#region ../../node_modules/.pnpm/memoize-one@6.0.0/node_modules/memoize-one/dist/memoize-one.esm.js + var safeIsNaN = Number.isNaN || function ponyfill(value) { + return typeof value === "number" && value !== value; + }; + function isEqual(first, second) { + if (first === second) return true; + if (safeIsNaN(first) && safeIsNaN(second)) return true; + return false; + } + function areInputsEqual(newInputs, lastInputs) { + if (newInputs.length !== lastInputs.length) return false; + for (var i = 0; i < newInputs.length; i++) if (!isEqual(newInputs[i], lastInputs[i])) return false; + return true; + } + function memoizeOne(resultFn, isEqual) { + if (isEqual === void 0) isEqual = areInputsEqual; + var cache = null; + function memoized() { + var newArgs = []; + for (var _i = 0; _i < arguments.length; _i++) newArgs[_i] = arguments[_i]; + if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) return cache.lastResult; + var lastResult = resultFn.apply(this, newArgs); + cache = { + lastResult, + lastArgs: newArgs, + lastThis: this + }; + return lastResult; + } + memoized.clear = function clear() { + cache = null; + }; + return memoized; + } + +//#endregion +//#region ../../packages/components/virtual-list/src/hooks/use-cache.ts + const useCache = () => { + const props = (0, vue.getCurrentInstance)().proxy.$props; + return (0, vue.computed)(() => { + const _getItemStyleCache = (_, __, ___) => ({}); + return props.perfMode ? memoize(_getItemStyleCache) : memoizeOne(_getItemStyleCache); + }); + }; + +//#endregion +//#region ../../packages/components/virtual-list/src/defaults.ts + const DEFAULT_DYNAMIC_LIST_ITEM_SIZE = 50; + const ITEM_RENDER_EVT = "itemRendered"; + const SCROLL_EVT = "scroll"; + const FORWARD = "forward"; + const BACKWARD = "backward"; + const AUTO_ALIGNMENT = "auto"; + const SMART_ALIGNMENT = "smart"; + const START_ALIGNMENT = "start"; + const CENTERED_ALIGNMENT = "center"; + const END_ALIGNMENT = "end"; + const HORIZONTAL = "horizontal"; + const VERTICAL = "vertical"; + const LTR = "ltr"; + const RTL = "rtl"; + const RTL_OFFSET_NAG = "negative"; + const RTL_OFFSET_POS_ASC = "positive-ascending"; + const RTL_OFFSET_POS_DESC = "positive-descending"; + const ScrollbarSizeKey = { + [HORIZONTAL]: "height", + [VERTICAL]: "width" + }; + const ScrollbarDirKey = { + [HORIZONTAL]: "left", + [VERTICAL]: "top" + }; + const SCROLLBAR_MIN_SIZE = 20; + +//#endregion +//#region ../../packages/components/virtual-list/src/hooks/use-wheel.ts + const useWheel = ({ atEndEdge, atStartEdge, layout }, onWheelDelta) => { + let frameHandle; + let offset = 0; + const hasReachedEdge = (offset) => { + return offset < 0 && atStartEdge.value || offset > 0 && atEndEdge.value; + }; + const onWheel = (e) => { + cAF(frameHandle); + let { deltaX, deltaY } = e; + if (e.shiftKey && deltaY !== 0) { + deltaX = deltaY; + deltaY = 0; + } + const newOffset = layout.value === HORIZONTAL ? deltaX : deltaY; + if (hasReachedEdge(newOffset)) return; + offset += newOffset; + if (!isFirefox() && newOffset !== 0) e.preventDefault(); + frameHandle = rAF(() => { + onWheelDelta(offset); + offset = 0; + }); + }; + return { + hasReachedEdge, + onWheel + }; + }; + +//#endregion +//#region ../../packages/components/virtual-list/src/props.ts + const itemSize$1 = buildProp({ + type: definePropType([Number, Function]), + required: true + }); + const estimatedItemSize = buildProp({ type: Number }); + const cache = buildProp({ + type: Number, + default: 2 + }); + const direction = buildProp({ + type: String, + values: ["ltr", "rtl"], + default: "ltr" + }); + const initScrollOffset = buildProp({ + type: Number, + default: 0 + }); + const total = buildProp({ + type: Number, + required: true + }); + const layout = buildProp({ + type: String, + values: ["horizontal", "vertical"], + default: VERTICAL + }); + const virtualizedProps = buildProps({ + className: { + type: String, + default: "" + }, + containerElement: { + type: definePropType([String, Object]), + default: "div" + }, + data: { + type: definePropType(Array), + default: () => mutable([]) + }, + direction, + height: { + type: [String, Number], + required: true + }, + innerElement: { + type: [String, Object], + default: "div" + }, + innerProps: { + type: definePropType(Object), + default: () => ({}) + }, + style: { type: definePropType([ + Object, + String, + Array + ]) }, + useIsScrolling: Boolean, + width: { + type: [Number, String], + required: false + }, + perfMode: { + type: Boolean, + default: true + }, + scrollbarAlwaysOn: Boolean + }); + const virtualizedListProps = buildProps({ + cache, + estimatedItemSize, + layout, + initScrollOffset, + total, + itemSize: itemSize$1, + ...virtualizedProps + }); + const scrollbarSize = { + type: Number, + default: 6 + }; + const startGap = { + type: Number, + default: 0 + }; + const endGap = { + type: Number, + default: 2 + }; + const virtualizedGridProps = buildProps({ + columnCache: cache, + columnWidth: itemSize$1, + estimatedColumnWidth: estimatedItemSize, + estimatedRowHeight: estimatedItemSize, + initScrollLeft: initScrollOffset, + initScrollTop: initScrollOffset, + itemKey: { + type: definePropType(Function), + default: ({ columnIndex, rowIndex }) => `${rowIndex}:${columnIndex}` + }, + rowCache: cache, + rowHeight: itemSize$1, + totalColumn: total, + totalRow: total, + hScrollbarSize: scrollbarSize, + vScrollbarSize: scrollbarSize, + scrollbarStartGap: startGap, + scrollbarEndGap: endGap, + role: String, + ...virtualizedProps + }); + const virtualizedScrollbarProps = buildProps({ + alwaysOn: Boolean, + class: String, + layout, + total, + ratio: { + type: Number, + required: true + }, + clientSize: { + type: Number, + required: true + }, + scrollFrom: { + type: Number, + required: true + }, + scrollbarSize, + startGap, + endGap, + visible: Boolean + }); + +//#endregion +//#region ../../packages/components/virtual-list/src/utils.ts + const getScrollDir = (prev, cur) => prev < cur ? FORWARD : BACKWARD; + const isHorizontal = (dir) => dir === LTR || dir === RTL || dir === HORIZONTAL; + const isRTL = (dir) => dir === RTL; + let cachedRTLResult = null; + function getRTLOffsetType(recalculate = false) { + if (cachedRTLResult === null || recalculate) { + const outerDiv = document.createElement("div"); + const outerStyle = outerDiv.style; + outerStyle.width = "50px"; + outerStyle.height = "50px"; + outerStyle.overflow = "scroll"; + outerStyle.direction = "rtl"; + const innerDiv = document.createElement("div"); + const innerStyle = innerDiv.style; + innerStyle.width = "100px"; + innerStyle.height = "100px"; + outerDiv.appendChild(innerDiv); + document.body.appendChild(outerDiv); + if (outerDiv.scrollLeft > 0) cachedRTLResult = RTL_OFFSET_POS_DESC; + else { + outerDiv.scrollLeft = 1; + if (outerDiv.scrollLeft === 0) cachedRTLResult = RTL_OFFSET_NAG; + else cachedRTLResult = RTL_OFFSET_POS_ASC; + } + document.body.removeChild(outerDiv); + return cachedRTLResult; + } + return cachedRTLResult; + } + function renderThumbStyle$1({ move, size, bar }, layout) { + const style = {}; + const translate = `translate${bar.axis}(${move}px)`; + style[bar.size] = size; + style.transform = translate; + if (layout === "horizontal") style.height = "100%"; + else style.width = "100%"; + return style; + } + +//#endregion +//#region ../../packages/components/virtual-list/src/components/scrollbar.ts + const ScrollBar = (0, vue.defineComponent)({ + name: "ElVirtualScrollBar", + props: virtualizedScrollbarProps, + emits: [ + "scroll", + "start-move", + "stop-move" + ], + setup(props, { emit }) { + const GAP = (0, vue.computed)(() => props.startGap + props.endGap); + const nsVirtualScrollbar = useNamespace("virtual-scrollbar"); + const nsScrollbar = useNamespace("scrollbar"); + const trackRef = (0, vue.ref)(); + const thumbRef = (0, vue.ref)(); + let frameHandle = null; + let onselectstartStore = null; + const state = (0, vue.reactive)({ + isDragging: false, + traveled: 0 + }); + const bar = (0, vue.computed)(() => BAR_MAP[props.layout]); + const trackSize = (0, vue.computed)(() => props.clientSize - (0, vue.unref)(GAP)); + const trackStyle = (0, vue.computed)(() => ({ + position: "absolute", + width: `${HORIZONTAL === props.layout ? trackSize.value : props.scrollbarSize}px`, + height: `${HORIZONTAL === props.layout ? props.scrollbarSize : trackSize.value}px`, + [ScrollbarDirKey[props.layout]]: "2px", + right: "2px", + bottom: "2px", + borderRadius: "4px" + })); + const thumbSize = (0, vue.computed)(() => { + const ratio = props.ratio; + if (ratio >= 100) return Number.POSITIVE_INFINITY; + if (ratio >= 50) return ratio * trackSize.value / 100; + const SCROLLBAR_MAX_SIZE = trackSize.value / 3; + return Math.floor(Math.min(Math.max(ratio * trackSize.value / 100, SCROLLBAR_MIN_SIZE), SCROLLBAR_MAX_SIZE)); + }); + const thumbStyle = (0, vue.computed)(() => { + if (!Number.isFinite(thumbSize.value)) return { display: "none" }; + const thumb = `${thumbSize.value}px`; + return renderThumbStyle$1({ + bar: bar.value, + size: thumb, + move: state.traveled + }, props.layout); + }); + const totalSteps = (0, vue.computed)(() => Math.ceil(props.clientSize - thumbSize.value - (0, vue.unref)(GAP))); + const attachEvents = () => { + window.addEventListener("mousemove", onMouseMove); + window.addEventListener("mouseup", onMouseUp); + const thumbEl = (0, vue.unref)(thumbRef); + if (!thumbEl) return; + onselectstartStore = document.onselectstart; + document.onselectstart = () => false; + thumbEl.addEventListener("touchmove", onMouseMove, { passive: true }); + thumbEl.addEventListener("touchend", onMouseUp); + }; + const detachEvents = () => { + window.removeEventListener("mousemove", onMouseMove); + window.removeEventListener("mouseup", onMouseUp); + document.onselectstart = onselectstartStore; + onselectstartStore = null; + const thumbEl = (0, vue.unref)(thumbRef); + if (!thumbEl) return; + thumbEl.removeEventListener("touchmove", onMouseMove); + thumbEl.removeEventListener("touchend", onMouseUp); + }; + const onThumbMouseDown = (e) => { + e.stopImmediatePropagation(); + if (e.ctrlKey || [1, 2].includes(e.button)) return; + state.isDragging = true; + state[bar.value.axis] = e.currentTarget[bar.value.offset] - (e[bar.value.client] - e.currentTarget.getBoundingClientRect()[bar.value.direction]); + emit("start-move"); + attachEvents(); + }; + const onMouseUp = () => { + state.isDragging = false; + state[bar.value.axis] = 0; + emit("stop-move"); + detachEvents(); + }; + const onMouseMove = (e) => { + const { isDragging } = state; + if (!isDragging) return; + if (!thumbRef.value || !trackRef.value) return; + const prevPage = state[bar.value.axis]; + if (!prevPage) return; + cAF(frameHandle); + /** + * +--------------+ +--------------+ + * | - <--------- thumb.offsetTop | | + * | |+| <--+ | | + * | - | | | + * | Content | | | | + * | | | | | + * | | | | | + * | | | | - + * | | +--> | |+| + * | | | - + * +--------------+ +--------------+ + */ + const distance = (trackRef.value.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) * -1 - (thumbRef.value[bar.value.offset] - prevPage); + frameHandle = rAF(() => { + state.traveled = Math.max(0, Math.min(distance, totalSteps.value)); + emit("scroll", distance, totalSteps.value); + }); + }; + const clickTrackHandler = (e) => { + const distance = Math.abs(e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) - thumbRef.value[bar.value.offset] / 2; + state.traveled = Math.max(0, Math.min(distance, totalSteps.value)); + emit("scroll", distance, totalSteps.value); + }; + (0, vue.watch)(() => props.scrollFrom, (v) => { + if (state.isDragging) return; + /** + * this is simply mapping the current scrollbar offset + * + * formula 1: + * v = scrollOffset / (estimatedTotalSize - clientSize) + * traveled = v * (clientSize - thumbSize - GAP) --> v * totalSteps + * + * formula 2: + * traveled = (v * clientSize) / (clientSize / totalSteps) --> (v * clientSize) * (totalSteps / clientSize) --> v * totalSteps + */ + state.traveled = Math.ceil(v * totalSteps.value); + }); + (0, vue.onBeforeUnmount)(() => { + detachEvents(); + }); + return () => { + return (0, vue.h)("div", { + role: "presentation", + ref: trackRef, + class: [ + nsVirtualScrollbar.b(), + props.class, + (props.alwaysOn || state.isDragging) && "always-on" + ], + style: trackStyle.value, + onMousedown: (0, vue.withModifiers)(clickTrackHandler, ["stop", "prevent"]), + onTouchstartPrevent: onThumbMouseDown + }, (0, vue.h)("div", { + ref: thumbRef, + class: nsScrollbar.e("thumb"), + style: thumbStyle.value, + onMousedown: onThumbMouseDown + }, [])); + }; + } + }); + +//#endregion +//#region ../../packages/components/virtual-list/src/builders/build-list.ts + const createList = ({ name, getOffset, getItemSize, getItemOffset, getEstimatedTotalSize, getStartIndexForOffset, getStopIndexForStartIndex, initCache, clearCache, validateProps }) => { + return (0, vue.defineComponent)({ + name: name ?? "ElVirtualList", + props: virtualizedListProps, + emits: [ITEM_RENDER_EVT, SCROLL_EVT], + setup(props, { emit, expose }) { + validateProps(props); + const instance = (0, vue.getCurrentInstance)(); + const ns = useNamespace("vl"); + const dynamicSizeCache = (0, vue.ref)(initCache(props, instance)); + const getItemStyleCache = useCache(); + const windowRef = (0, vue.ref)(); + const innerRef = (0, vue.ref)(); + const scrollbarRef = (0, vue.ref)(); + const states = (0, vue.ref)({ + isScrolling: false, + scrollDir: "forward", + scrollOffset: isNumber(props.initScrollOffset) ? props.initScrollOffset : 0, + updateRequested: false, + isScrollbarDragging: false, + scrollbarAlwaysOn: props.scrollbarAlwaysOn + }); + const itemsToRender = (0, vue.computed)(() => { + const { total, cache } = props; + const { isScrolling, scrollDir, scrollOffset } = (0, vue.unref)(states); + if (total === 0) return [ + 0, + 0, + 0, + 0 + ]; + const startIndex = getStartIndexForOffset(props, scrollOffset, (0, vue.unref)(dynamicSizeCache)); + const stopIndex = getStopIndexForStartIndex(props, startIndex, scrollOffset, (0, vue.unref)(dynamicSizeCache)); + const cacheBackward = !isScrolling || scrollDir === BACKWARD ? Math.max(1, cache) : 1; + const cacheForward = !isScrolling || scrollDir === FORWARD ? Math.max(1, cache) : 1; + return [ + Math.max(0, startIndex - cacheBackward), + Math.max(0, Math.min(total - 1, stopIndex + cacheForward)), + startIndex, + stopIndex + ]; + }); + const estimatedTotalSize = (0, vue.computed)(() => getEstimatedTotalSize(props, (0, vue.unref)(dynamicSizeCache))); + const _isHorizontal = (0, vue.computed)(() => isHorizontal(props.layout)); + const windowStyle = (0, vue.computed)(() => [ + { + position: "relative", + [`overflow-${_isHorizontal.value ? "x" : "y"}`]: "scroll", + WebkitOverflowScrolling: "touch", + willChange: "transform" + }, + { + direction: props.direction, + height: isNumber(props.height) ? `${props.height}px` : props.height, + width: isNumber(props.width) ? `${props.width}px` : props.width + }, + props.style + ]); + const innerStyle = (0, vue.computed)(() => { + const size = (0, vue.unref)(estimatedTotalSize); + const horizontal = (0, vue.unref)(_isHorizontal); + return { + height: horizontal ? "100%" : `${size}px`, + pointerEvents: (0, vue.unref)(states).isScrolling ? "none" : void 0, + width: horizontal ? `${size}px` : "100%", + margin: 0, + boxSizing: "border-box" + }; + }); + const clientSize = (0, vue.computed)(() => _isHorizontal.value ? props.width : props.height); + const { onWheel } = useWheel({ + atStartEdge: (0, vue.computed)(() => states.value.scrollOffset <= 0), + atEndEdge: (0, vue.computed)(() => states.value.scrollOffset >= estimatedTotalSize.value), + layout: (0, vue.computed)(() => props.layout) + }, (offset) => { + scrollbarRef.value.onMouseUp?.(); + scrollTo(Math.min(states.value.scrollOffset + offset, estimatedTotalSize.value - clientSize.value)); + }); + useEventListener(windowRef, "wheel", onWheel, { passive: false }); + const emitEvents = () => { + const { total } = props; + if (total > 0) { + const [cacheStart, cacheEnd, visibleStart, visibleEnd] = (0, vue.unref)(itemsToRender); + emit(ITEM_RENDER_EVT, cacheStart, cacheEnd, visibleStart, visibleEnd); + } + const { scrollDir, scrollOffset, updateRequested } = (0, vue.unref)(states); + emit(SCROLL_EVT, scrollDir, scrollOffset, updateRequested); + }; + const scrollVertically = (e) => { + const { clientHeight, scrollHeight, scrollTop } = e.currentTarget; + const _states = (0, vue.unref)(states); + if (_states.scrollOffset === scrollTop) return; + const scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight)); + states.value = { + ..._states, + isScrolling: true, + scrollDir: getScrollDir(_states.scrollOffset, scrollOffset), + scrollOffset, + updateRequested: false + }; + (0, vue.nextTick)(resetIsScrolling); + }; + const scrollHorizontally = (e) => { + const { clientWidth, scrollLeft, scrollWidth } = e.currentTarget; + const _states = (0, vue.unref)(states); + if (_states.scrollOffset === scrollLeft) return; + const { direction } = props; + let scrollOffset = scrollLeft; + if (direction === RTL) switch (getRTLOffsetType()) { + case RTL_OFFSET_NAG: + scrollOffset = -scrollLeft; + break; + case RTL_OFFSET_POS_DESC: + scrollOffset = scrollWidth - clientWidth - scrollLeft; + break; + } + scrollOffset = Math.max(0, Math.min(scrollOffset, scrollWidth - clientWidth)); + states.value = { + ..._states, + isScrolling: true, + scrollDir: getScrollDir(_states.scrollOffset, scrollOffset), + scrollOffset, + updateRequested: false + }; + (0, vue.nextTick)(resetIsScrolling); + }; + const onScroll = (e) => { + (0, vue.unref)(_isHorizontal) ? scrollHorizontally(e) : scrollVertically(e); + emitEvents(); + }; + const onScrollbarScroll = (distanceToGo, totalSteps) => { + const offset = (estimatedTotalSize.value - clientSize.value) / totalSteps * distanceToGo; + scrollTo(Math.min(estimatedTotalSize.value - clientSize.value, offset)); + }; + const scrollTo = (offset) => { + offset = Math.max(offset, 0); + if (offset === (0, vue.unref)(states).scrollOffset) return; + states.value = { + ...(0, vue.unref)(states), + scrollOffset: offset, + scrollDir: getScrollDir((0, vue.unref)(states).scrollOffset, offset), + updateRequested: true + }; + (0, vue.nextTick)(resetIsScrolling); + }; + const scrollToItem = (idx, alignment = AUTO_ALIGNMENT) => { + const { scrollOffset } = (0, vue.unref)(states); + idx = Math.max(0, Math.min(idx, props.total - 1)); + scrollTo(getOffset(props, idx, alignment, scrollOffset, (0, vue.unref)(dynamicSizeCache))); + }; + const getItemStyle = (idx) => { + const { direction, itemSize, layout } = props; + const itemStyleCache = getItemStyleCache.value(clearCache && itemSize, clearCache && layout, clearCache && direction); + let style; + if (hasOwn(itemStyleCache, String(idx))) style = itemStyleCache[idx]; + else { + const offset = getItemOffset(props, idx, (0, vue.unref)(dynamicSizeCache)); + const size = getItemSize(props, idx, (0, vue.unref)(dynamicSizeCache)); + const horizontal = (0, vue.unref)(_isHorizontal); + const isRtl = direction === RTL; + const offsetHorizontal = horizontal ? offset : 0; + itemStyleCache[idx] = style = { + position: "absolute", + left: isRtl ? void 0 : `${offsetHorizontal}px`, + right: isRtl ? `${offsetHorizontal}px` : void 0, + top: !horizontal ? `${offset}px` : 0, + height: !horizontal ? `${size}px` : "100%", + width: horizontal ? `${size}px` : "100%" + }; + } + return style; + }; + const resetIsScrolling = () => { + states.value.isScrolling = false; + (0, vue.nextTick)(() => { + getItemStyleCache.value(-1, null, null); + }); + }; + const resetScrollTop = () => { + const window = windowRef.value; + if (window) window.scrollTop = 0; + }; + (0, vue.onMounted)(() => { + if (!isClient) return; + const { initScrollOffset } = props; + const windowElement = (0, vue.unref)(windowRef); + if (isNumber(initScrollOffset) && windowElement) if ((0, vue.unref)(_isHorizontal)) windowElement.scrollLeft = initScrollOffset; + else windowElement.scrollTop = initScrollOffset; + emitEvents(); + }); + (0, vue.onUpdated)(() => { + const { direction, layout } = props; + const { scrollOffset, updateRequested } = (0, vue.unref)(states); + const windowElement = (0, vue.unref)(windowRef); + if (updateRequested && windowElement) if (layout === HORIZONTAL) if (direction === RTL) switch (getRTLOffsetType()) { + case RTL_OFFSET_NAG: + windowElement.scrollLeft = -scrollOffset; + break; + case RTL_OFFSET_POS_ASC: + windowElement.scrollLeft = scrollOffset; + break; + default: { + const { clientWidth, scrollWidth } = windowElement; + windowElement.scrollLeft = scrollWidth - clientWidth - scrollOffset; + break; + } + } + else windowElement.scrollLeft = scrollOffset; + else windowElement.scrollTop = scrollOffset; + }); + (0, vue.onActivated)(() => { + (0, vue.unref)(windowRef).scrollTop = (0, vue.unref)(states).scrollOffset; + }); + const api = { + ns, + clientSize, + estimatedTotalSize, + windowStyle, + windowRef, + innerRef, + innerStyle, + itemsToRender, + scrollbarRef, + states, + getItemStyle, + onScroll, + onScrollbarScroll, + onWheel, + scrollTo, + scrollToItem, + resetScrollTop + }; + expose({ + windowRef, + innerRef, + getItemStyleCache, + scrollTo, + scrollToItem, + resetScrollTop, + states + }); + return api; + }, + render(ctx) { + const { $slots, className, clientSize, containerElement, data, getItemStyle, innerElement, itemsToRender, innerStyle, layout, total, onScroll, onScrollbarScroll, states, useIsScrolling, windowStyle, ns } = ctx; + const [start, end] = itemsToRender; + const Container = (0, vue.resolveDynamicComponent)(containerElement); + const Inner = (0, vue.resolveDynamicComponent)(innerElement); + const children = []; + if (total > 0) for (let i = start; i <= end; i++) children.push((0, vue.h)(vue.Fragment, { key: i }, $slots.default?.({ + data, + index: i, + isScrolling: useIsScrolling ? states.isScrolling : void 0, + style: getItemStyle(i) + }))); + const InnerNode = [(0, vue.h)(Inner, (0, vue.mergeProps)(ctx.innerProps, { + style: innerStyle, + ref: "innerRef" + }), !isString(Inner) ? { default: () => children } : children)]; + const scrollbar = (0, vue.h)(ScrollBar, { + ref: "scrollbarRef", + clientSize, + layout, + onScroll: onScrollbarScroll, + ratio: clientSize * 100 / this.estimatedTotalSize, + scrollFrom: states.scrollOffset / (this.estimatedTotalSize - clientSize), + total, + alwaysOn: states.scrollbarAlwaysOn + }); + const listContainer = (0, vue.h)(Container, { + class: [ns.e("window"), className], + style: windowStyle, + onScroll, + ref: "windowRef", + key: 0 + }, !isString(Container) ? { default: () => [InnerNode] } : [InnerNode]); + return (0, vue.h)("div", { + key: 0, + class: [ns.e("wrapper"), states.scrollbarAlwaysOn ? "always-on" : ""] + }, [listContainer, scrollbar]); + } + }); + }; + +//#endregion +//#region ../../packages/components/virtual-list/src/components/fixed-size-list.ts + const FixedSizeList = createList({ + name: "ElFixedSizeList", + getItemOffset: ({ itemSize }, index) => index * itemSize, + getItemSize: ({ itemSize }) => itemSize, + getEstimatedTotalSize: ({ total, itemSize }) => itemSize * total, + getOffset: ({ height, total, itemSize, layout, width }, index, alignment, scrollOffset) => { + const size = isHorizontal(layout) ? width : height; + const lastItemOffset = Math.max(0, total * itemSize - size); + const maxOffset = Math.min(lastItemOffset, index * itemSize); + const minOffset = Math.max(0, (index + 1) * itemSize - size); + if (alignment === SMART_ALIGNMENT) if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) alignment = AUTO_ALIGNMENT; + else alignment = CENTERED_ALIGNMENT; + switch (alignment) { + case START_ALIGNMENT: return maxOffset; + case END_ALIGNMENT: return minOffset; + case CENTERED_ALIGNMENT: { + const middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2); + if (middleOffset < Math.ceil(size / 2)) return 0; + else if (middleOffset > lastItemOffset + Math.floor(size / 2)) return lastItemOffset; + else return middleOffset; + } + case AUTO_ALIGNMENT: + default: if (scrollOffset >= minOffset && scrollOffset <= maxOffset) return scrollOffset; + else if (scrollOffset < minOffset) return minOffset; + else return maxOffset; + } + }, + getStartIndexForOffset: ({ total, itemSize }, offset) => Math.max(0, Math.min(total - 1, Math.floor(offset / itemSize))), + getStopIndexForStartIndex: ({ height, total, itemSize, layout, width }, startIndex, scrollOffset) => { + const offset = startIndex * itemSize; + const size = isHorizontal(layout) ? width : height; + const numVisibleItems = Math.ceil((size + scrollOffset - offset) / itemSize); + return Math.max(0, Math.min(total - 1, startIndex + numVisibleItems - 1)); + }, + initCache() {}, + clearCache: true, + validateProps() {} + }); + +//#endregion +//#region ../../packages/components/virtual-list/src/components/dynamic-size-list.ts + const getItemFromCache$1 = (props, index, listCache) => { + const { itemSize } = props; + const { items, lastVisitedIndex } = listCache; + if (index > lastVisitedIndex) { + let offset = 0; + if (lastVisitedIndex >= 0) { + const item = items[lastVisitedIndex]; + offset = item.offset + item.size; + } + for (let i = lastVisitedIndex + 1; i <= index; i++) { + const size = itemSize(i); + items[i] = { + offset, + size + }; + offset += size; + } + listCache.lastVisitedIndex = index; + } + return items[index]; + }; + const findItem$1 = (props, listCache, offset) => { + const { items, lastVisitedIndex } = listCache; + if ((lastVisitedIndex > 0 ? items[lastVisitedIndex].offset : 0) >= offset) return bs$1(props, listCache, 0, lastVisitedIndex, offset); + return es$1(props, listCache, Math.max(0, lastVisitedIndex), offset); + }; + const bs$1 = (props, listCache, low, high, offset) => { + while (low <= high) { + const mid = low + Math.floor((high - low) / 2); + const currentOffset = getItemFromCache$1(props, mid, listCache).offset; + if (currentOffset === offset) return mid; + else if (currentOffset < offset) low = mid + 1; + else if (currentOffset > offset) high = mid - 1; + } + return Math.max(0, low - 1); + }; + const es$1 = (props, listCache, index, offset) => { + const { total } = props; + let exponent = 1; + while (index < total && getItemFromCache$1(props, index, listCache).offset < offset) { + index += exponent; + exponent *= 2; + } + return bs$1(props, listCache, Math.floor(index / 2), Math.min(index, total - 1), offset); + }; + const getEstimatedTotalSize = ({ total }, { items, estimatedItemSize, lastVisitedIndex }) => { + let totalSizeOfMeasuredItems = 0; + if (lastVisitedIndex >= total) lastVisitedIndex = total - 1; + if (lastVisitedIndex >= 0) { + const item = items[lastVisitedIndex]; + totalSizeOfMeasuredItems = item.offset + item.size; + } + const totalSizeOfUnmeasuredItems = (total - lastVisitedIndex - 1) * estimatedItemSize; + return totalSizeOfMeasuredItems + totalSizeOfUnmeasuredItems; + }; + const DynamicSizeList = createList({ + name: "ElDynamicSizeList", + getItemOffset: (props, index, listCache) => getItemFromCache$1(props, index, listCache).offset, + getItemSize: (_, index, { items }) => items[index].size, + getEstimatedTotalSize, + getOffset: (props, index, alignment, scrollOffset, listCache) => { + const { height, layout, width } = props; + const size = isHorizontal(layout) ? width : height; + const item = getItemFromCache$1(props, index, listCache); + const estimatedTotalSize = getEstimatedTotalSize(props, listCache); + const maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, item.offset)); + const minOffset = Math.max(0, item.offset - size + item.size); + if (alignment === SMART_ALIGNMENT) if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) alignment = AUTO_ALIGNMENT; + else alignment = CENTERED_ALIGNMENT; + switch (alignment) { + case START_ALIGNMENT: return maxOffset; + case END_ALIGNMENT: return minOffset; + case CENTERED_ALIGNMENT: return Math.round(minOffset + (maxOffset - minOffset) / 2); + case AUTO_ALIGNMENT: + default: if (scrollOffset >= minOffset && scrollOffset <= maxOffset) return scrollOffset; + else if (scrollOffset < minOffset) return minOffset; + else return maxOffset; + } + }, + getStartIndexForOffset: (props, offset, listCache) => findItem$1(props, listCache, offset), + getStopIndexForStartIndex: (props, startIndex, scrollOffset, listCache) => { + const { height, total, layout, width } = props; + const size = isHorizontal(layout) ? width : height; + const item = getItemFromCache$1(props, startIndex, listCache); + const maxOffset = scrollOffset + size; + let offset = item.offset + item.size; + let stopIndex = startIndex; + while (stopIndex < total - 1 && offset < maxOffset) { + stopIndex++; + offset += getItemFromCache$1(props, stopIndex, listCache).size; + } + return stopIndex; + }, + initCache({ estimatedItemSize = DEFAULT_DYNAMIC_LIST_ITEM_SIZE }, instance) { + const cache = { + items: {}, + estimatedItemSize, + lastVisitedIndex: -1 + }; + cache.clearCacheAfterIndex = (index, forceUpdate = true) => { + cache.lastVisitedIndex = Math.min(cache.lastVisitedIndex, index - 1); + instance.exposed?.getItemStyleCache(-1); + if (forceUpdate) instance.proxy?.$forceUpdate(); + }; + return cache; + }, + clearCache: false, + validateProps: ({ itemSize }) => {} + }); + +//#endregion +//#region ../../packages/components/virtual-list/src/hooks/use-grid-wheel.ts + const useGridWheel = ({ atXEndEdge, atXStartEdge, atYEndEdge, atYStartEdge }, onWheelDelta) => { + let frameHandle = null; + let xOffset = 0; + let yOffset = 0; + const hasReachedEdge = (x, y) => { + const xEdgeReached = x < 0 && atXStartEdge.value || x > 0 && atXEndEdge.value; + const yEdgeReached = y < 0 && atYStartEdge.value || y > 0 && atYEndEdge.value; + return xEdgeReached || yEdgeReached; + }; + const onWheel = (e) => { + cAF(frameHandle); + let x = e.deltaX; + let y = e.deltaY; + if (Math.abs(x) > Math.abs(y)) y = 0; + else x = 0; + if (e.shiftKey && y !== 0) { + x = y; + y = 0; + } + if (hasReachedEdge(x, y)) { + if (e.deltaX !== 0 && x === 0) e.preventDefault(); + return; + } + xOffset += x; + yOffset += y; + e.preventDefault(); + frameHandle = rAF(() => { + onWheelDelta(xOffset, yOffset); + xOffset = 0; + yOffset = 0; + }); + }; + return { + hasReachedEdge, + onWheel + }; + }; + +//#endregion +//#region ../../packages/components/virtual-list/src/hooks/use-grid-touch.ts + const useGridTouch = (windowRef, states, scrollTo, estimatedTotalWidth, estimatedTotalHeight, parsedWidth, parsedHeight) => { + const touchStartX = (0, vue.ref)(0); + const touchStartY = (0, vue.ref)(0); + let frameHandle; + let deltaX = 0; + let deltaY = 0; + const handleTouchStart = (event) => { + cAF(frameHandle); + touchStartX.value = event.touches[0].clientX; + touchStartY.value = event.touches[0].clientY; + deltaX = 0; + deltaY = 0; + }; + const handleTouchMove = (event) => { + event.preventDefault(); + cAF(frameHandle); + deltaX += touchStartX.value - event.touches[0].clientX; + deltaY += touchStartY.value - event.touches[0].clientY; + touchStartX.value = event.touches[0].clientX; + touchStartY.value = event.touches[0].clientY; + frameHandle = rAF(() => { + const maxScrollLeft = estimatedTotalWidth.value - (0, vue.unref)(parsedWidth); + const maxScrollTop = estimatedTotalHeight.value - (0, vue.unref)(parsedHeight); + scrollTo({ + scrollLeft: Math.min(states.value.scrollLeft + deltaX, maxScrollLeft), + scrollTop: Math.min(states.value.scrollTop + deltaY, maxScrollTop) + }); + deltaX = 0; + deltaY = 0; + }); + }; + useEventListener(windowRef, "touchstart", handleTouchStart, { passive: true }); + useEventListener(windowRef, "touchmove", handleTouchMove, { passive: false }); + return { + touchStartX, + touchStartY, + handleTouchStart, + handleTouchMove + }; + }; + +//#endregion +//#region ../../packages/components/virtual-list/src/builders/build-grid.ts + const createGrid = ({ name, clearCache, getColumnPosition, getColumnStartIndexForOffset, getColumnStopIndexForStartIndex, getEstimatedTotalHeight, getEstimatedTotalWidth, getColumnOffset, getRowOffset, getRowPosition, getRowStartIndexForOffset, getRowStopIndexForStartIndex, initCache, injectToInstance, validateProps }) => { + return (0, vue.defineComponent)({ + name: name ?? "ElVirtualList", + props: virtualizedGridProps, + emits: [ITEM_RENDER_EVT, SCROLL_EVT], + setup(props, { emit, expose, slots }) { + const ns = useNamespace("vl"); + validateProps(props); + const instance = (0, vue.getCurrentInstance)(); + const cache = (0, vue.ref)(initCache(props, instance)); + injectToInstance?.(instance, cache); + const windowRef = (0, vue.ref)(); + const hScrollbar = (0, vue.ref)(); + const vScrollbar = (0, vue.ref)(); + const innerRef = (0, vue.ref)(); + const states = (0, vue.ref)({ + isScrolling: false, + scrollLeft: isNumber(props.initScrollLeft) ? props.initScrollLeft : 0, + scrollTop: isNumber(props.initScrollTop) ? props.initScrollTop : 0, + updateRequested: false, + xAxisScrollDir: FORWARD, + yAxisScrollDir: FORWARD + }); + const getItemStyleCache = useCache(); + const parsedHeight = (0, vue.computed)(() => Number.parseInt(`${props.height}`, 10)); + const parsedWidth = (0, vue.computed)(() => Number.parseInt(`${props.width}`, 10)); + const columnsToRender = (0, vue.computed)(() => { + const { totalColumn, totalRow, columnCache } = props; + const { isScrolling, xAxisScrollDir, scrollLeft } = (0, vue.unref)(states); + if (totalColumn === 0 || totalRow === 0) return [ + 0, + 0, + 0, + 0 + ]; + const startIndex = getColumnStartIndexForOffset(props, scrollLeft, (0, vue.unref)(cache)); + const stopIndex = getColumnStopIndexForStartIndex(props, startIndex, scrollLeft, (0, vue.unref)(cache)); + const cacheBackward = !isScrolling || xAxisScrollDir === BACKWARD ? Math.max(1, columnCache) : 1; + const cacheForward = !isScrolling || xAxisScrollDir === FORWARD ? Math.max(1, columnCache) : 1; + return [ + Math.max(0, startIndex - cacheBackward), + Math.max(0, Math.min(totalColumn - 1, stopIndex + cacheForward)), + startIndex, + stopIndex + ]; + }); + const rowsToRender = (0, vue.computed)(() => { + const { totalColumn, totalRow, rowCache } = props; + const { isScrolling, yAxisScrollDir, scrollTop } = (0, vue.unref)(states); + if (totalColumn === 0 || totalRow === 0) return [ + 0, + 0, + 0, + 0 + ]; + const startIndex = getRowStartIndexForOffset(props, scrollTop, (0, vue.unref)(cache)); + const stopIndex = getRowStopIndexForStartIndex(props, startIndex, scrollTop, (0, vue.unref)(cache)); + const cacheBackward = !isScrolling || yAxisScrollDir === BACKWARD ? Math.max(1, rowCache) : 1; + const cacheForward = !isScrolling || yAxisScrollDir === FORWARD ? Math.max(1, rowCache) : 1; + return [ + Math.max(0, startIndex - cacheBackward), + Math.max(0, Math.min(totalRow - 1, stopIndex + cacheForward)), + startIndex, + stopIndex + ]; + }); + const estimatedTotalHeight = (0, vue.computed)(() => getEstimatedTotalHeight(props, (0, vue.unref)(cache))); + const estimatedTotalWidth = (0, vue.computed)(() => getEstimatedTotalWidth(props, (0, vue.unref)(cache))); + const windowStyle = (0, vue.computed)(() => [ + { + position: "relative", + overflow: "hidden", + WebkitOverflowScrolling: "touch", + willChange: "transform" + }, + { + direction: props.direction, + height: isNumber(props.height) ? `${props.height}px` : props.height, + width: isNumber(props.width) ? `${props.width}px` : props.width + }, + props.style ?? {} + ]); + const innerStyle = (0, vue.computed)(() => { + const width = `${(0, vue.unref)(estimatedTotalWidth)}px`; + return { + height: `${(0, vue.unref)(estimatedTotalHeight)}px`, + pointerEvents: (0, vue.unref)(states).isScrolling ? "none" : void 0, + width, + margin: 0, + boxSizing: "border-box" + }; + }); + const emitEvents = () => { + const { totalColumn, totalRow } = props; + if (totalColumn > 0 && totalRow > 0) { + const [columnCacheStart, columnCacheEnd, columnVisibleStart, columnVisibleEnd] = (0, vue.unref)(columnsToRender); + const [rowCacheStart, rowCacheEnd, rowVisibleStart, rowVisibleEnd] = (0, vue.unref)(rowsToRender); + emit(ITEM_RENDER_EVT, { + columnCacheStart, + columnCacheEnd, + rowCacheStart, + rowCacheEnd, + columnVisibleStart, + columnVisibleEnd, + rowVisibleStart, + rowVisibleEnd + }); + } + const { scrollLeft, scrollTop, updateRequested, xAxisScrollDir, yAxisScrollDir } = (0, vue.unref)(states); + emit(SCROLL_EVT, { + xAxisScrollDir, + scrollLeft, + yAxisScrollDir, + scrollTop, + updateRequested + }); + }; + const onScroll = (e) => { + const { clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth } = e.currentTarget; + const _states = (0, vue.unref)(states); + if (_states.scrollTop === scrollTop && _states.scrollLeft === scrollLeft) return; + let _scrollLeft = scrollLeft; + if (isRTL(props.direction)) switch (getRTLOffsetType()) { + case RTL_OFFSET_NAG: + _scrollLeft = -scrollLeft; + break; + case RTL_OFFSET_POS_DESC: + _scrollLeft = scrollWidth - clientWidth - scrollLeft; + break; + } + states.value = { + ..._states, + isScrolling: true, + scrollLeft: _scrollLeft, + scrollTop: Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight)), + updateRequested: true, + xAxisScrollDir: getScrollDir(_states.scrollLeft, _scrollLeft), + yAxisScrollDir: getScrollDir(_states.scrollTop, scrollTop) + }; + (0, vue.nextTick)(() => resetIsScrolling()); + onUpdated(); + emitEvents(); + }; + const onVerticalScroll = (distance, totalSteps) => { + const height = (0, vue.unref)(parsedHeight); + const offset = (estimatedTotalHeight.value - height) / totalSteps * distance; + scrollTo({ scrollTop: Math.min(estimatedTotalHeight.value - height, offset) }); + }; + const onHorizontalScroll = (distance, totalSteps) => { + const width = (0, vue.unref)(parsedWidth); + const offset = (estimatedTotalWidth.value - width) / totalSteps * distance; + scrollTo({ scrollLeft: Math.min(estimatedTotalWidth.value - width, offset) }); + }; + const { onWheel } = useGridWheel({ + atXStartEdge: (0, vue.computed)(() => states.value.scrollLeft <= 0), + atXEndEdge: (0, vue.computed)(() => states.value.scrollLeft >= estimatedTotalWidth.value - (0, vue.unref)(parsedWidth)), + atYStartEdge: (0, vue.computed)(() => states.value.scrollTop <= 0), + atYEndEdge: (0, vue.computed)(() => states.value.scrollTop >= estimatedTotalHeight.value - (0, vue.unref)(parsedHeight)) + }, (x, y) => { + hScrollbar.value?.onMouseUp?.(); + vScrollbar.value?.onMouseUp?.(); + const width = (0, vue.unref)(parsedWidth); + const height = (0, vue.unref)(parsedHeight); + scrollTo({ + scrollLeft: Math.min(states.value.scrollLeft + x, estimatedTotalWidth.value - width), + scrollTop: Math.min(states.value.scrollTop + y, estimatedTotalHeight.value - height) + }); + }); + useEventListener(windowRef, "wheel", onWheel, { passive: false }); + const scrollTo = ({ scrollLeft = states.value.scrollLeft, scrollTop = states.value.scrollTop }) => { + scrollLeft = Math.max(scrollLeft, 0); + scrollTop = Math.max(scrollTop, 0); + const _states = (0, vue.unref)(states); + if (scrollTop === _states.scrollTop && scrollLeft === _states.scrollLeft) return; + states.value = { + ..._states, + xAxisScrollDir: getScrollDir(_states.scrollLeft, scrollLeft), + yAxisScrollDir: getScrollDir(_states.scrollTop, scrollTop), + scrollLeft, + scrollTop, + updateRequested: true + }; + (0, vue.nextTick)(() => resetIsScrolling()); + onUpdated(); + emitEvents(); + }; + const { touchStartX, touchStartY, handleTouchStart, handleTouchMove } = useGridTouch(windowRef, states, scrollTo, estimatedTotalWidth, estimatedTotalHeight, parsedWidth, parsedHeight); + const scrollToItem = (rowIndex = 0, columnIdx = 0, alignment = AUTO_ALIGNMENT) => { + const _states = (0, vue.unref)(states); + columnIdx = Math.max(0, Math.min(columnIdx, props.totalColumn - 1)); + rowIndex = Math.max(0, Math.min(rowIndex, props.totalRow - 1)); + const scrollBarWidth = getScrollBarWidth(ns.namespace.value); + const _cache = (0, vue.unref)(cache); + const estimatedHeight = getEstimatedTotalHeight(props, _cache); + const estimatedWidth = getEstimatedTotalWidth(props, _cache); + scrollTo({ + scrollLeft: getColumnOffset(props, columnIdx, alignment, _states.scrollLeft, _cache, estimatedWidth > props.width ? scrollBarWidth : 0), + scrollTop: getRowOffset(props, rowIndex, alignment, _states.scrollTop, _cache, estimatedHeight > props.height ? scrollBarWidth : 0) + }); + }; + const getItemStyle = (rowIndex, columnIndex) => { + const { columnWidth, direction, rowHeight } = props; + const itemStyleCache = getItemStyleCache.value(clearCache && columnWidth, clearCache && rowHeight, clearCache && direction); + const key = `${rowIndex},${columnIndex}`; + if (hasOwn(itemStyleCache, key)) return itemStyleCache[key]; + else { + const [, left] = getColumnPosition(props, columnIndex, (0, vue.unref)(cache)); + const _cache = (0, vue.unref)(cache); + const rtl = isRTL(direction); + const [height, top] = getRowPosition(props, rowIndex, _cache); + const [width] = getColumnPosition(props, columnIndex, _cache); + itemStyleCache[key] = { + position: "absolute", + left: rtl ? void 0 : `${left}px`, + right: rtl ? `${left}px` : void 0, + top: `${top}px`, + height: `${height}px`, + width: `${width}px` + }; + return itemStyleCache[key]; + } + }; + const resetIsScrolling = () => { + states.value.isScrolling = false; + (0, vue.nextTick)(() => { + getItemStyleCache.value(-1, null, null); + }); + }; + (0, vue.onMounted)(() => { + if (!isClient) return; + const { initScrollLeft, initScrollTop } = props; + const windowElement = (0, vue.unref)(windowRef); + if (windowElement) { + if (isNumber(initScrollLeft)) windowElement.scrollLeft = initScrollLeft; + if (isNumber(initScrollTop)) windowElement.scrollTop = initScrollTop; + } + emitEvents(); + }); + const onUpdated = () => { + const { direction } = props; + const { scrollLeft, scrollTop, updateRequested } = (0, vue.unref)(states); + const windowElement = (0, vue.unref)(windowRef); + if (updateRequested && windowElement) { + if (direction === RTL) switch (getRTLOffsetType()) { + case RTL_OFFSET_NAG: + windowElement.scrollLeft = -scrollLeft; + break; + case RTL_OFFSET_POS_ASC: + windowElement.scrollLeft = scrollLeft; + break; + default: { + const { clientWidth, scrollWidth } = windowElement; + windowElement.scrollLeft = scrollWidth - clientWidth - scrollLeft; + break; + } + } + else windowElement.scrollLeft = Math.max(0, scrollLeft); + windowElement.scrollTop = Math.max(0, scrollTop); + } + }; + const { resetAfterColumnIndex, resetAfterRowIndex, resetAfter } = instance.proxy; + expose({ + windowRef, + innerRef, + getItemStyleCache, + touchStartX, + touchStartY, + handleTouchStart, + handleTouchMove, + scrollTo, + scrollToItem, + states, + resetAfterColumnIndex, + resetAfterRowIndex, + resetAfter + }); + const renderScrollbars = () => { + const { scrollbarAlwaysOn, scrollbarStartGap, scrollbarEndGap, totalColumn, totalRow } = props; + const width = (0, vue.unref)(parsedWidth); + const height = (0, vue.unref)(parsedHeight); + const estimatedWidth = (0, vue.unref)(estimatedTotalWidth); + const estimatedHeight = (0, vue.unref)(estimatedTotalHeight); + const { scrollLeft, scrollTop } = (0, vue.unref)(states); + return { + horizontalScrollbar: (0, vue.h)(ScrollBar, { + ref: hScrollbar, + alwaysOn: scrollbarAlwaysOn, + startGap: scrollbarStartGap, + endGap: scrollbarEndGap, + class: ns.e("horizontal"), + clientSize: width, + layout: "horizontal", + onScroll: onHorizontalScroll, + ratio: width * 100 / estimatedWidth, + scrollFrom: scrollLeft / (estimatedWidth - width), + total: totalRow, + visible: true + }), + verticalScrollbar: (0, vue.h)(ScrollBar, { + ref: vScrollbar, + alwaysOn: scrollbarAlwaysOn, + startGap: scrollbarStartGap, + endGap: scrollbarEndGap, + class: ns.e("vertical"), + clientSize: height, + layout: "vertical", + onScroll: onVerticalScroll, + ratio: height * 100 / estimatedHeight, + scrollFrom: scrollTop / (estimatedHeight - height), + total: totalColumn, + visible: true + }) + }; + }; + const renderItems = () => { + const [columnStart, columnEnd] = (0, vue.unref)(columnsToRender); + const [rowStart, rowEnd] = (0, vue.unref)(rowsToRender); + const { data, totalColumn, totalRow, useIsScrolling, itemKey } = props; + const children = []; + if (totalRow > 0 && totalColumn > 0) for (let row = rowStart; row <= rowEnd; row++) for (let column = columnStart; column <= columnEnd; column++) { + const key = itemKey({ + columnIndex: column, + data, + rowIndex: row + }); + children.push((0, vue.h)(vue.Fragment, { key }, slots.default?.({ + columnIndex: column, + data, + isScrolling: useIsScrolling ? (0, vue.unref)(states).isScrolling : void 0, + style: getItemStyle(row, column), + rowIndex: row + }))); + } + return children; + }; + const renderInner = () => { + const Inner = (0, vue.resolveDynamicComponent)(props.innerElement); + const children = renderItems(); + return [(0, vue.h)(Inner, (0, vue.mergeProps)(props.innerProps, { + style: (0, vue.unref)(innerStyle), + ref: innerRef + }), !isString(Inner) ? { default: () => children } : children)]; + }; + const renderWindow = () => { + const Container = (0, vue.resolveDynamicComponent)(props.containerElement); + const { horizontalScrollbar, verticalScrollbar } = renderScrollbars(); + const Inner = renderInner(); + return (0, vue.h)("div", { + key: 0, + class: ns.e("wrapper"), + role: props.role + }, [ + (0, vue.h)(Container, { + class: props.className, + style: (0, vue.unref)(windowStyle), + onScroll, + ref: windowRef + }, !isString(Container) ? { default: () => Inner } : Inner), + horizontalScrollbar, + verticalScrollbar + ]); + }; + return renderWindow; + } + }); + }; + +//#endregion +//#region ../../packages/components/virtual-list/src/components/fixed-size-grid.ts + const FixedSizeGrid = createGrid({ + name: "ElFixedSizeGrid", + getColumnPosition: ({ columnWidth }, index) => [columnWidth, index * columnWidth], + getRowPosition: ({ rowHeight }, index) => [rowHeight, index * rowHeight], + getEstimatedTotalHeight: ({ totalRow, rowHeight }) => rowHeight * totalRow, + getEstimatedTotalWidth: ({ totalColumn, columnWidth }) => columnWidth * totalColumn, + getColumnOffset: ({ totalColumn, columnWidth, width }, columnIndex, alignment, scrollLeft, _, scrollBarWidth) => { + width = Number(width); + const lastColumnOffset = Math.max(0, totalColumn * columnWidth - width); + const maxOffset = Math.min(lastColumnOffset, columnIndex * columnWidth); + const minOffset = Math.max(0, columnIndex * columnWidth - width + scrollBarWidth + columnWidth); + if (alignment === "smart") if (scrollLeft >= minOffset - width && scrollLeft <= maxOffset + width) alignment = AUTO_ALIGNMENT; + else alignment = CENTERED_ALIGNMENT; + switch (alignment) { + case START_ALIGNMENT: return maxOffset; + case END_ALIGNMENT: return minOffset; + case CENTERED_ALIGNMENT: { + const middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2); + if (middleOffset < Math.ceil(width / 2)) return 0; + else if (middleOffset > lastColumnOffset + Math.floor(width / 2)) return lastColumnOffset; + else return middleOffset; + } + case AUTO_ALIGNMENT: + default: if (scrollLeft >= minOffset && scrollLeft <= maxOffset) return scrollLeft; + else if (minOffset > maxOffset) return minOffset; + else if (scrollLeft < minOffset) return minOffset; + else return maxOffset; + } + }, + getRowOffset: ({ rowHeight, height, totalRow }, rowIndex, align, scrollTop, _, scrollBarWidth) => { + height = Number(height); + const lastRowOffset = Math.max(0, totalRow * rowHeight - height); + const maxOffset = Math.min(lastRowOffset, rowIndex * rowHeight); + const minOffset = Math.max(0, rowIndex * rowHeight - height + scrollBarWidth + rowHeight); + if (align === SMART_ALIGNMENT) if (scrollTop >= minOffset - height && scrollTop <= maxOffset + height) align = AUTO_ALIGNMENT; + else align = CENTERED_ALIGNMENT; + switch (align) { + case START_ALIGNMENT: return maxOffset; + case END_ALIGNMENT: return minOffset; + case CENTERED_ALIGNMENT: { + const middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2); + if (middleOffset < Math.ceil(height / 2)) return 0; + else if (middleOffset > lastRowOffset + Math.floor(height / 2)) return lastRowOffset; + else return middleOffset; + } + case AUTO_ALIGNMENT: + default: if (scrollTop >= minOffset && scrollTop <= maxOffset) return scrollTop; + else if (minOffset > maxOffset) return minOffset; + else if (scrollTop < minOffset) return minOffset; + else return maxOffset; + } + }, + getColumnStartIndexForOffset: ({ columnWidth, totalColumn }, scrollLeft) => Math.max(0, Math.min(totalColumn - 1, Math.floor(scrollLeft / columnWidth))), + getColumnStopIndexForStartIndex: ({ columnWidth, totalColumn, width }, startIndex, scrollLeft) => { + const left = startIndex * columnWidth; + const visibleColumnsCount = Math.ceil((width + scrollLeft - left) / columnWidth); + return Math.max(0, Math.min(totalColumn - 1, startIndex + visibleColumnsCount - 1)); + }, + getRowStartIndexForOffset: ({ rowHeight, totalRow }, scrollTop) => Math.max(0, Math.min(totalRow - 1, Math.floor(scrollTop / rowHeight))), + getRowStopIndexForStartIndex: ({ rowHeight, totalRow, height }, startIndex, scrollTop) => { + const top = startIndex * rowHeight; + const numVisibleRows = Math.ceil((height + scrollTop - top) / rowHeight); + return Math.max(0, Math.min(totalRow - 1, startIndex + numVisibleRows - 1)); + }, + initCache: () => void 0, + clearCache: true, + validateProps: ({ columnWidth, rowHeight }) => {} + }); + +//#endregion +//#region ../../packages/components/virtual-list/src/components/dynamic-size-grid.ts + const { max, min, floor } = Math; + const ACCESS_SIZER_KEY_MAP = { + column: "columnWidth", + row: "rowHeight" + }; + const ACCESS_LAST_VISITED_KEY_MAP = { + column: "lastVisitedColumnIndex", + row: "lastVisitedRowIndex" + }; + const getItemFromCache = (props, index, gridCache, type) => { + const [cachedItems, sizer, lastVisited] = [ + gridCache[type], + props[ACCESS_SIZER_KEY_MAP[type]], + gridCache[ACCESS_LAST_VISITED_KEY_MAP[type]] + ]; + if (index > lastVisited) { + let offset = 0; + if (lastVisited >= 0) { + const item = cachedItems[lastVisited]; + offset = item.offset + item.size; + } + for (let i = lastVisited + 1; i <= index; i++) { + const size = sizer(i); + cachedItems[i] = { + offset, + size + }; + offset += size; + } + gridCache[ACCESS_LAST_VISITED_KEY_MAP[type]] = index; + } + return cachedItems[index]; + }; + const bs = (props, gridCache, low, high, offset, type) => { + while (low <= high) { + const mid = low + floor((high - low) / 2); + const currentOffset = getItemFromCache(props, mid, gridCache, type).offset; + if (currentOffset === offset) return mid; + else if (currentOffset < offset) low = mid + 1; + else high = mid - 1; + } + return max(0, low - 1); + }; + const es = (props, gridCache, idx, offset, type) => { + const total = type === "column" ? props.totalColumn : props.totalRow; + let exponent = 1; + while (idx < total && getItemFromCache(props, idx, gridCache, type).offset < offset) { + idx += exponent; + exponent *= 2; + } + return bs(props, gridCache, floor(idx / 2), min(idx, total - 1), offset, type); + }; + const findItem = (props, gridCache, offset, type) => { + const [cache, lastVisitedIndex] = [gridCache[type], gridCache[ACCESS_LAST_VISITED_KEY_MAP[type]]]; + if ((lastVisitedIndex > 0 ? cache[lastVisitedIndex].offset : 0) >= offset) return bs(props, gridCache, 0, lastVisitedIndex, offset, type); + return es(props, gridCache, max(0, lastVisitedIndex), offset, type); + }; + const getEstimatedTotalHeight = ({ totalRow }, { estimatedRowHeight, lastVisitedRowIndex, row }) => { + let sizeOfVisitedRows = 0; + if (lastVisitedRowIndex >= totalRow) lastVisitedRowIndex = totalRow - 1; + if (lastVisitedRowIndex >= 0) { + const item = row[lastVisitedRowIndex]; + sizeOfVisitedRows = item.offset + item.size; + } + const sizeOfUnvisitedItems = (totalRow - lastVisitedRowIndex - 1) * estimatedRowHeight; + return sizeOfVisitedRows + sizeOfUnvisitedItems; + }; + const getEstimatedTotalWidth = ({ totalColumn }, { column, estimatedColumnWidth, lastVisitedColumnIndex }) => { + let sizeOfVisitedColumns = 0; + if (lastVisitedColumnIndex > totalColumn) lastVisitedColumnIndex = totalColumn - 1; + if (lastVisitedColumnIndex >= 0) { + const item = column[lastVisitedColumnIndex]; + sizeOfVisitedColumns = item.offset + item.size; + } + const sizeOfUnvisitedItems = (totalColumn - lastVisitedColumnIndex - 1) * estimatedColumnWidth; + return sizeOfVisitedColumns + sizeOfUnvisitedItems; + }; + const ACCESS_ESTIMATED_SIZE_KEY_MAP = { + column: getEstimatedTotalWidth, + row: getEstimatedTotalHeight + }; + const getOffset$1 = (props, index, alignment, scrollOffset, cache, type, scrollBarWidth) => { + const [size, estimatedSizeAssociates] = [type === "row" ? props.height : props.width, ACCESS_ESTIMATED_SIZE_KEY_MAP[type]]; + const item = getItemFromCache(props, index, cache, type); + const maxOffset = max(0, min(estimatedSizeAssociates(props, cache) - size, item.offset)); + const minOffset = max(0, item.offset - size + scrollBarWidth + item.size); + if (alignment === SMART_ALIGNMENT) if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) alignment = AUTO_ALIGNMENT; + else alignment = CENTERED_ALIGNMENT; + switch (alignment) { + case START_ALIGNMENT: return maxOffset; + case END_ALIGNMENT: return minOffset; + case CENTERED_ALIGNMENT: return Math.round(minOffset + (maxOffset - minOffset) / 2); + case AUTO_ALIGNMENT: + default: if (scrollOffset >= minOffset && scrollOffset <= maxOffset) return scrollOffset; + else if (minOffset > maxOffset) return minOffset; + else if (scrollOffset < minOffset) return minOffset; + else return maxOffset; + } + }; + const DynamicSizeGrid = createGrid({ + name: "ElDynamicSizeGrid", + getColumnPosition: (props, idx, cache) => { + const item = getItemFromCache(props, idx, cache, "column"); + return [item.size, item.offset]; + }, + getRowPosition: (props, idx, cache) => { + const item = getItemFromCache(props, idx, cache, "row"); + return [item.size, item.offset]; + }, + getColumnOffset: (props, columnIndex, alignment, scrollLeft, cache, scrollBarWidth) => getOffset$1(props, columnIndex, alignment, scrollLeft, cache, "column", scrollBarWidth), + getRowOffset: (props, rowIndex, alignment, scrollTop, cache, scrollBarWidth) => getOffset$1(props, rowIndex, alignment, scrollTop, cache, "row", scrollBarWidth), + getColumnStartIndexForOffset: (props, scrollLeft, cache) => findItem(props, cache, scrollLeft, "column"), + getColumnStopIndexForStartIndex: (props, startIndex, scrollLeft, cache) => { + const item = getItemFromCache(props, startIndex, cache, "column"); + const maxOffset = scrollLeft + props.width; + let offset = item.offset + item.size; + let stopIndex = startIndex; + while (stopIndex < props.totalColumn - 1 && offset < maxOffset) { + stopIndex++; + offset += getItemFromCache(props, startIndex, cache, "column").size; + } + return stopIndex; + }, + getEstimatedTotalHeight, + getEstimatedTotalWidth, + getRowStartIndexForOffset: (props, scrollTop, cache) => findItem(props, cache, scrollTop, "row"), + getRowStopIndexForStartIndex: (props, startIndex, scrollTop, cache) => { + const { totalRow, height } = props; + const item = getItemFromCache(props, startIndex, cache, "row"); + const maxOffset = scrollTop + height; + let offset = item.size + item.offset; + let stopIndex = startIndex; + while (stopIndex < totalRow - 1 && offset < maxOffset) { + stopIndex++; + offset += getItemFromCache(props, stopIndex, cache, "row").size; + } + return stopIndex; + }, + injectToInstance: (instance, cache) => { + const resetAfter = ({ columnIndex, rowIndex }, forceUpdate) => { + forceUpdate = isUndefined(forceUpdate) ? true : forceUpdate; + if (isNumber(columnIndex)) cache.value.lastVisitedColumnIndex = Math.min(cache.value.lastVisitedColumnIndex, columnIndex - 1); + if (isNumber(rowIndex)) cache.value.lastVisitedRowIndex = Math.min(cache.value.lastVisitedRowIndex, rowIndex - 1); + instance.exposed?.getItemStyleCache.value(-1, null, null); + if (forceUpdate) instance.proxy?.$forceUpdate(); + }; + const resetAfterColumnIndex = (columnIndex, forceUpdate) => { + resetAfter({ columnIndex }, forceUpdate); + }; + const resetAfterRowIndex = (rowIndex, forceUpdate) => { + resetAfter({ rowIndex }, forceUpdate); + }; + Object.assign(instance.proxy, { + resetAfterColumnIndex, + resetAfterRowIndex, + resetAfter + }); + }, + initCache: ({ estimatedColumnWidth = DEFAULT_DYNAMIC_LIST_ITEM_SIZE, estimatedRowHeight = DEFAULT_DYNAMIC_LIST_ITEM_SIZE }) => { + return { + column: {}, + estimatedColumnWidth, + estimatedRowHeight, + lastVisitedColumnIndex: -1, + lastVisitedRowIndex: -1, + row: {} + }; + }, + clearCache: false, + validateProps: ({ columnWidth, rowHeight }) => {} + }); + +//#endregion +//#region ../../packages/components/select-v2/src/group-item.vue?vue&type=script&lang.ts + var group_item_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + props: { + item: { + type: Object, + required: true + }, + style: { type: Object }, + height: Number + }, + setup() { + return { ns: useNamespace("select") }; + } + }); + +//#endregion +//#region ../../packages/components/select-v2/src/group-item.vue + function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)(_ctx.ns.be("group", "title")), + style: (0, vue.normalizeStyle)({ + ..._ctx.style, + lineHeight: `${_ctx.height}px` + }) + }, (0, vue.toDisplayString)(_ctx.item.label), 7); + } + var group_item_default = /* @__PURE__ */ _plugin_vue_export_helper_default(group_item_vue_vue_type_script_lang_default, [["render", _sfc_render$7]]); + +//#endregion +//#region ../../packages/components/select-v2/src/useOption.ts + function useOption(props, { emit }) { + return { + hoverItem: () => { + if (!props.disabled) emit("hover", props.index); + }, + selectOptionClick: () => { + if (!props.disabled) emit("select", props.item, props.index); + } + }; + } + +//#endregion +//#region ../../packages/components/select-v2/src/defaults.ts + const selectV2Props = buildProps({ + allowCreate: Boolean, + autocomplete: { + type: definePropType(String), + default: "none" + }, + automaticDropdown: Boolean, + clearable: Boolean, + clearIcon: { + type: iconPropType, + default: circle_close_default + }, + effect: { + type: definePropType(String), + default: "light" + }, + collapseTags: Boolean, + collapseTagsTooltip: Boolean, + tagTooltip: { + type: definePropType(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: definePropType(Function) }, + height: { + type: Number, + default: 274 + }, + itemHeight: { + type: Number, + default: 34 + }, + id: String, + loading: Boolean, + loadingText: String, + modelValue: { + type: definePropType([ + Array, + String, + Number, + Boolean, + Object + ]), + default: void 0 + }, + multiple: Boolean, + multipleLimit: { + type: Number, + default: 0 + }, + name: String, + noDataText: String, + noMatchText: String, + remoteMethod: { type: definePropType(Function) }, + reserveKeyword: { + type: Boolean, + default: true + }, + options: { + type: definePropType(Array), + required: true + }, + placeholder: { type: String }, + teleported: useTooltipContentProps.teleported, + persistent: { + type: Boolean, + default: true + }, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + remote: Boolean, + debounce: { + type: Number, + default: 300 + }, + size: useSizeProp, + props: { + type: definePropType(Object), + default: () => defaultProps$2 + }, + valueKey: { + type: String, + default: "value" + }, + scrollbarAlwaysOn: Boolean, + validateEvent: { + type: Boolean, + default: true + }, + offset: { + type: Number, + default: 12 + }, + remoteShowSuffix: Boolean, + showArrow: { + type: Boolean, + default: true + }, + placement: { + type: definePropType(String), + values: Ee, + default: "bottom-start" + }, + fallbackPlacements: { + type: definePropType(Array), + default: [ + "bottom-start", + "top-start", + "right", + "left" + ] + }, + tagType: { + ...tagProps.type, + default: "info" + }, + tagEffect: { + ...tagProps.effect, + default: "light" + }, + tabindex: { + type: [String, Number], + default: 0 + }, + appendTo: useTooltipContentProps.appendTo, + fitInputWidth: { + type: [Boolean, Number], + default: true, + validator(val) { + return isBoolean(val) || isNumber(val); + } + }, + suffixIcon: { + type: iconPropType, + default: arrow_down_default + }, + ...useEmptyValuesProps, + ...useAriaProps(["ariaLabel"]) + }); + const optionV2Props = buildProps({ + data: Array, + disabled: Boolean, + hovering: Boolean, + item: { + type: definePropType(Object), + required: true + }, + index: Number, + style: Object, + selected: Boolean, + created: Boolean + }); + const selectV2Emits = { + [UPDATE_MODEL_EVENT]: (val) => true, + [CHANGE_EVENT]: (val) => true, + "remove-tag": (val) => true, + "visible-change": (visible) => true, + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true + }; + const optionV2Emits = { + hover: (index) => isNumber(index), + select: (val, index) => true + }; + +//#endregion +//#region ../../packages/components/select-v2/src/token.ts + const selectV2InjectionKey = Symbol("ElSelectV2Injection"); + +//#endregion +//#region ../../packages/components/select-v2/src/option-item.vue?vue&type=script&lang.ts + var option_item_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + props: optionV2Props, + emits: optionV2Emits, + setup(props, { emit }) { + const select = (0, vue.inject)(selectV2InjectionKey); + const ns = useNamespace("select"); + const { hoverItem, selectOptionClick } = useOption(props, { emit }); + const { getLabel } = useProps(select.props); + const contentId = select.contentId; + const handleMousedown = (event) => { + let target = event.target; + const currentTarget = event.currentTarget; + while (target && target !== currentTarget) { + if (isFocusable(target)) return; + target = target.parentElement; + } + event.preventDefault(); + }; + return { + ns, + contentId, + hoverItem, + handleMousedown, + selectOptionClick, + getLabel + }; + } + }); + +//#endregion +//#region ../../packages/components/select-v2/src/option-item.vue + const _hoisted_1$22 = [ + "id", + "aria-selected", + "aria-disabled" + ]; + function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + id: `${_ctx.contentId}-${_ctx.index}`, + role: "option", + "aria-selected": _ctx.selected, + "aria-disabled": _ctx.disabled || void 0, + style: (0, vue.normalizeStyle)(_ctx.style), + class: (0, vue.normalizeClass)([ + _ctx.ns.be("dropdown", "item"), + _ctx.ns.is("selected", _ctx.selected), + _ctx.ns.is("disabled", _ctx.disabled), + _ctx.ns.is("created", _ctx.created), + _ctx.ns.is("hovering", _ctx.hovering) + ]), + onMousemove: _cache[0] || (_cache[0] = (...args) => _ctx.hoverItem && _ctx.hoverItem(...args)), + onMousedown: _cache[1] || (_cache[1] = (...args) => _ctx.handleMousedown && _ctx.handleMousedown(...args)), + onClick: _cache[2] || (_cache[2] = (0, vue.withModifiers)((...args) => _ctx.selectOptionClick && _ctx.selectOptionClick(...args), ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", { + item: _ctx.item, + index: _ctx.index, + disabled: _ctx.disabled + }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.getLabel(_ctx.item)), 1)])], 46, _hoisted_1$22); + } + var option_item_default = /* @__PURE__ */ _plugin_vue_export_helper_default(option_item_vue_vue_type_script_lang_default, [["render", _sfc_render$6]]); + +//#endregion +//#region ../../packages/components/select-v2/src/select-dropdown.tsx + const props = { + loading: Boolean, + data: { + type: Array, + required: true + }, + hoveringIndex: Number, + width: Number, + id: String, + ariaLabel: String + }; + var select_dropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSelectDropdown", + props, + setup(props, { slots, expose }) { + const select = (0, vue.inject)(selectV2InjectionKey); + const ns = useNamespace("select"); + const { getLabel, getValue, getDisabled } = useProps(select.props); + const cachedHeights = (0, vue.ref)([]); + const listRef = (0, vue.ref)(); + const size = (0, vue.computed)(() => props.data.length); + (0, vue.watch)(() => size.value, () => { + select.tooltipRef.value?.updatePopper?.(); + }); + const isSized = (0, vue.computed)(() => isUndefined(select.props.estimatedOptionHeight)); + const listProps = (0, vue.computed)(() => { + if (isSized.value) return { itemSize: select.props.itemHeight }; + return { + estimatedSize: select.props.estimatedOptionHeight, + itemSize: (idx) => cachedHeights.value[idx] + }; + }); + const contains = (arr = [], target) => { + const { props: { valueKey } } = select; + if (!isObject$1(target)) return arr.includes(target); + return arr && arr.some((item) => { + return (0, vue.toRaw)(get(item, valueKey)) === get(target, valueKey); + }); + }; + const isEqual = (selected, target) => { + if (!isObject$1(target)) return selected === target; + else { + const { valueKey } = select.props; + return get(selected, valueKey) === get(target, valueKey); + } + }; + const isItemSelected = (modelValue, target) => { + if (select.props.multiple) return contains(modelValue, getValue(target)); + return isEqual(modelValue, getValue(target)); + }; + const isItemDisabled = (modelValue, selected) => { + const { disabled, multiple, multipleLimit } = select.props; + return disabled || !selected && (multiple ? multipleLimit > 0 && modelValue.length >= multipleLimit : false); + }; + const isItemHovering = (target) => props.hoveringIndex === target; + const scrollToItem = (index) => { + const list = listRef.value; + if (list) list.scrollToItem(index); + }; + const resetScrollTop = () => { + const list = listRef.value; + if (list) list.resetScrollTop(); + }; + expose({ + listRef, + isSized, + isItemDisabled, + isItemHovering, + isItemSelected, + scrollToItem, + resetScrollTop + }); + const Item = (itemProps) => { + const { index, data, style } = itemProps; + const sized = (0, vue.unref)(isSized); + const { itemSize, estimatedSize } = (0, vue.unref)(listProps); + const { modelValue } = select.props; + const { onSelect, onHover } = select; + const item = data[index]; + if (item.type === "Group") return (0, vue.createVNode)(group_item_default, { + "item": item, + "style": style, + "height": sized ? itemSize : estimatedSize + }, null); + const isSelected = isItemSelected(modelValue, item); + const isDisabled = isItemDisabled(modelValue, isSelected); + const isHovering = isItemHovering(index); + return (0, vue.createVNode)(option_item_default, (0, vue.mergeProps)(itemProps, { + "selected": isSelected, + "disabled": getDisabled(item) || isDisabled, + "created": !!item.created, + "hovering": isHovering, + "item": item, + "onSelect": onSelect, + "onHover": onHover + }), { default: (props) => slots.default?.(props) || (0, vue.createVNode)("span", null, [getLabel(item)]) }); + }; + const { onKeyboardNavigate, onKeyboardSelect } = select; + const onForward = () => { + onKeyboardNavigate("forward"); + }; + const onBackward = () => { + onKeyboardNavigate("backward"); + }; + const onEscOrTab = () => {}; + const onKeydown = (e) => { + const code = getEventCode(e); + const { tab, esc, down, up, enter, numpadEnter } = EVENT_CODE; + if ([ + esc, + down, + up, + enter, + numpadEnter + ].includes(code)) { + e.preventDefault(); + e.stopPropagation(); + } + switch (code) { + case tab: + case esc: + onEscOrTab(); + break; + case down: + onForward(); + break; + case up: + onBackward(); + break; + case enter: + case numpadEnter: + onKeyboardSelect(); + break; + } + }; + return () => { + const { data, width } = props; + const { height, multiple, scrollbarAlwaysOn } = select.props; + const isScrollbarAlwaysOn = (0, vue.computed)(() => { + return isIOS ? true : scrollbarAlwaysOn; + }); + const List = (0, vue.unref)(isSized) ? FixedSizeList : DynamicSizeList; + return (0, vue.createVNode)("div", { + "class": [ns.b("dropdown"), ns.is("multiple", multiple)], + "style": { width: `${width}px` } + }, [ + slots.header?.(), + slots.loading?.() || slots.empty?.() || (0, vue.createVNode)(List, (0, vue.mergeProps)({ "ref": listRef }, (0, vue.unref)(listProps), { + "className": ns.be("dropdown", "list"), + "scrollbarAlwaysOn": isScrollbarAlwaysOn.value, + "data": data, + "height": height, + "width": width, + "total": data.length, + "innerElement": "ul", + "innerProps": { + id: props.id, + role: "listbox", + "aria-label": props.ariaLabel, + "aria-orientation": "vertical" + }, + "onKeydown": onKeydown + }), { default: (props) => (0, vue.createVNode)(Item, props, null) }), + slots.footer?.() + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/select-v2/src/useAllowCreate.ts + function useAllowCreate(props, states) { + const { aliasProps, getLabel, getValue } = useProps(props); + const createOptionCount = (0, vue.ref)(0); + const cachedSelectedOption = (0, vue.ref)(); + const enableAllowCreateMode = (0, vue.computed)(() => { + return props.allowCreate && props.filterable; + }); + (0, vue.watch)(() => props.options, (options) => { + const optionLabelsSet = new Set(options.map((option) => getLabel(option))); + states.createdOptions = states.createdOptions.filter((createdOption) => !optionLabelsSet.has(getLabel(createdOption))); + }); + function hasExistingOption(query) { + const hasOption = (option) => getLabel(option) === query; + return props.options && props.options.some(hasOption) || states.createdOptions.some(hasOption); + } + function selectNewOption(option) { + if (!enableAllowCreateMode.value) return; + if (props.multiple && option.created) createOptionCount.value++; + else cachedSelectedOption.value = option; + } + function createNewOption(query) { + if (enableAllowCreateMode.value) if (query && query.length > 0) { + if (hasExistingOption(query)) { + states.createdOptions = states.createdOptions.filter((createdOption) => getLabel(createdOption) !== states.previousQuery); + return; + } + const newOption = { + [aliasProps.value.value]: query, + [aliasProps.value.label]: query, + created: true, + [aliasProps.value.disabled]: false + }; + if (states.createdOptions.length >= createOptionCount.value) states.createdOptions[createOptionCount.value] = newOption; + else states.createdOptions.push(newOption); + } else if (props.multiple) states.createdOptions.length = createOptionCount.value; + else { + const selectedOption = cachedSelectedOption.value; + states.createdOptions.length = 0; + if (selectedOption && selectedOption.created) states.createdOptions.push(selectedOption); + } + } + function removeNewOption(option) { + if (!enableAllowCreateMode.value || !option || !option.created || option.created && props.reserveKeyword && states.inputValue === getLabel(option)) return; + const idx = states.createdOptions.findIndex((it) => getValue(it) === getValue(option)); + if (~idx) { + states.createdOptions.splice(idx, 1); + createOptionCount.value--; + } + } + function clearAllNewOption() { + if (enableAllowCreateMode.value) { + states.createdOptions.length = 0; + createOptionCount.value = 0; + } + } + return { + createNewOption, + removeNewOption, + selectNewOption, + clearAllNewOption + }; + } + +//#endregion +//#region ../../packages/components/select-v2/src/useSelect.ts + const useSelect$1 = (props, emit) => { + const { t } = useLocale(); + const slots = (0, vue.useSlots)(); + const nsSelect = useNamespace("select"); + const nsInput = useNamespace("input"); + const { form: elForm, formItem: elFormItem } = useFormItem(); + const { inputId } = useFormItemInputId(props, { formItemContext: elFormItem }); + const { aliasProps, getLabel, getValue, getDisabled, getOptions } = useProps(props); + const { valueOnClear, isEmptyValue } = useEmptyValues(props); + const states = (0, vue.reactive)({ + inputValue: "", + cachedOptions: [], + createdOptions: [], + hoveringIndex: -1, + inputHovering: false, + selectionWidth: 0, + collapseItemWidth: 0, + previousQuery: null, + previousValue: void 0, + selectedLabel: "", + menuVisibleOnFocus: false, + isBeforeHide: false + }); + const popperSize = (0, vue.ref)(-1); + const debouncing = (0, vue.ref)(false); + const selectRef = (0, vue.ref)(); + const selectionRef = (0, vue.ref)(); + const tooltipRef = (0, vue.ref)(); + const tagTooltipRef = (0, vue.ref)(); + const inputRef = (0, vue.ref)(); + const prefixRef = (0, vue.ref)(); + const suffixRef = (0, vue.ref)(); + const menuRef = (0, vue.ref)(); + const tagMenuRef = (0, vue.ref)(); + const collapseItemRef = (0, vue.ref)(); + const { isComposing, handleCompositionStart, handleCompositionEnd, handleCompositionUpdate } = useComposition({ afterComposition: (e) => onInput(e) }); + const selectDisabled = useFormDisabled(); + const { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, { + disabled: selectDisabled, + afterFocus() { + if (props.automaticDropdown && !expanded.value) { + expanded.value = true; + states.menuVisibleOnFocus = true; + } + }, + beforeBlur(event) { + return tooltipRef.value?.isFocusInsideContent(event) || tagTooltipRef.value?.isFocusInsideContent(event); + }, + afterBlur() { + expanded.value = false; + states.menuVisibleOnFocus = false; + if (props.validateEvent) elFormItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const allOptions = (0, vue.computed)(() => filterOptions("")); + const hasOptions = (0, vue.computed)(() => { + if (props.loading) return false; + return props.options.length > 0 || states.createdOptions.length > 0; + }); + const filteredOptions = (0, vue.ref)([]); + const expanded = (0, vue.ref)(false); + const needStatusIcon = (0, vue.computed)(() => elForm?.statusIcon ?? false); + const popupHeight = (0, vue.computed)(() => { + const totalHeight = filteredOptions.value.length * props.itemHeight; + return totalHeight > props.height ? props.height : totalHeight; + }); + const hasModelValue = (0, vue.computed)(() => { + return props.multiple ? isArray$1(props.modelValue) && props.modelValue.length > 0 : !isEmptyValue(props.modelValue); + }); + const showClearBtn = (0, vue.computed)(() => { + return props.clearable && !selectDisabled.value && hasModelValue.value && (isFocused.value || states.inputHovering); + }); + const iconComponent = (0, vue.computed)(() => props.remote && props.filterable && !props.remoteShowSuffix ? "" : props.suffixIcon); + const iconReverse = (0, vue.computed)(() => iconComponent.value && nsSelect.is("reverse", expanded.value)); + const validateState = (0, vue.computed)(() => elFormItem?.validateState || ""); + const validateIcon = (0, vue.computed)(() => { + if (!validateState.value) return; + return ValidateComponentsMap[validateState.value]; + }); + const debounce = (0, vue.computed)(() => props.remote ? props.debounce : 0); + const isRemoteSearchEmpty = (0, vue.computed)(() => props.remote && !states.inputValue && !hasOptions.value); + const emptyText = (0, vue.computed)(() => { + if (props.loading) return props.loadingText || t("el.select.loading"); + else { + if (props.filterable && states.inputValue && hasOptions.value && filteredOptions.value.length === 0) return props.noMatchText || t("el.select.noMatch"); + if (!hasOptions.value) return props.noDataText || t("el.select.noData"); + } + return null; + }); + const isFilterMethodValid = (0, vue.computed)(() => props.filterable && isFunction$1(props.filterMethod)); + const isRemoteMethodValid = (0, vue.computed)(() => props.filterable && props.remote && isFunction$1(props.remoteMethod)); + const filterOptions = (query) => { + const regexp = new RegExp(escapeStringRegexp(query), "i"); + const isValidOption = (o) => { + if (isFilterMethodValid.value || isRemoteMethodValid.value) return true; + return query ? regexp.test(getLabel(o) || "") : true; + }; + if (props.loading) return []; + return [...states.createdOptions, ...props.options].reduce((all, item) => { + const options = getOptions(item); + if (isArray$1(options)) { + const filtered = options.filter(isValidOption); + if (filtered.length > 0) all.push({ + label: getLabel(item), + type: "Group" + }, ...filtered); + } else if (props.remote || isValidOption(item)) all.push(item); + return all; + }, []); + }; + const updateOptions = () => { + filteredOptions.value = filterOptions(states.inputValue); + }; + const allOptionsValueMap = (0, vue.computed)(() => { + const valueMap = /* @__PURE__ */ new Map(); + allOptions.value.forEach((option, index) => { + valueMap.set(getValueKey(getValue(option)), { + option, + index + }); + }); + return valueMap; + }); + const filteredOptionsValueMap = (0, vue.computed)(() => { + const valueMap = /* @__PURE__ */ new Map(); + filteredOptions.value.forEach((option, index) => { + valueMap.set(getValueKey(getValue(option)), { + option, + index + }); + }); + return valueMap; + }); + const optionsAllDisabled = (0, vue.computed)(() => filteredOptions.value.every((option) => getDisabled(option))); + const selectSize = useFormSize(); + const collapseTagSize = (0, vue.computed)(() => "small" === selectSize.value ? "small" : "default"); + const calculatePopperSize = () => { + if (isNumber(props.fitInputWidth)) { + popperSize.value = props.fitInputWidth; + return; + } + const width = selectRef.value?.offsetWidth || 200; + if (!props.fitInputWidth && hasOptions.value) (0, vue.nextTick)(() => { + popperSize.value = Math.max(width, calculateLabelMaxWidth()); + }); + else popperSize.value = width; + }; + const calculateLabelMaxWidth = () => { + const ctx = document.createElement("canvas").getContext("2d"); + const selector = nsSelect.be("dropdown", "item"); + const dropdownItemEl = (menuRef.value?.listRef?.innerRef || document).querySelector(`.${selector}`); + if (dropdownItemEl === null || ctx === null) return 0; + const style = getComputedStyle(dropdownItemEl); + const padding = Number.parseFloat(style.paddingLeft) + Number.parseFloat(style.paddingRight); + ctx.font = `bold ${style.font.replace(new RegExp(`\\b${style.fontWeight}\\b`), "")}`; + return filteredOptions.value.reduce((max, option) => { + const metrics = ctx.measureText(getLabel(option)); + return Math.max(metrics.width, max); + }, 0) + padding; + }; + const getGapWidth = () => { + if (!selectionRef.value) return 0; + const style = window.getComputedStyle(selectionRef.value); + return Number.parseFloat(style.gap || "6px"); + }; + const tagStyle = (0, vue.computed)(() => { + const gapWidth = getGapWidth(); + const inputSlotWidth = props.filterable ? gapWidth + MINIMUM_INPUT_WIDTH : 0; + return { maxWidth: `${collapseItemRef.value && props.maxCollapseTags === 1 ? states.selectionWidth - states.collapseItemWidth - gapWidth - inputSlotWidth : states.selectionWidth - inputSlotWidth}px` }; + }); + const collapseTagStyle = (0, vue.computed)(() => { + return { maxWidth: `${states.selectionWidth}px` }; + }); + const shouldShowPlaceholder = (0, vue.computed)(() => { + if (isArray$1(props.modelValue)) return props.modelValue.length === 0 && !states.inputValue; + return props.filterable ? !states.inputValue : true; + }); + const currentPlaceholder = (0, vue.computed)(() => { + const _placeholder = props.placeholder ?? t("el.select.placeholder"); + return props.multiple || !hasModelValue.value ? _placeholder : states.selectedLabel; + }); + const popperRef = (0, vue.computed)(() => tooltipRef.value?.popperRef?.contentRef); + const indexRef = (0, vue.computed)(() => { + if (props.multiple) { + const len = props.modelValue.length; + if (len > 0 && filteredOptionsValueMap.value.has(props.modelValue[len - 1])) { + const { index } = filteredOptionsValueMap.value.get(props.modelValue[len - 1]); + return index; + } + } else if (!isEmptyValue(props.modelValue) && filteredOptionsValueMap.value.has(props.modelValue)) { + const { index } = filteredOptionsValueMap.value.get(props.modelValue); + return index; + } + return -1; + }); + const dropdownMenuVisible = (0, vue.computed)({ + get() { + return expanded.value && (props.loading || !isRemoteSearchEmpty.value || props.remote && !!slots.empty) && (!debouncing.value || !isEmpty(states.previousQuery) || hasOptions.value); + }, + set(val) { + expanded.value = val; + } + }); + const showTagList = (0, vue.computed)(() => { + if (!props.multiple) return []; + return props.collapseTags ? states.cachedOptions.slice(0, props.maxCollapseTags) : states.cachedOptions; + }); + const collapseTagList = (0, vue.computed)(() => { + if (!props.multiple) return []; + return props.collapseTags ? states.cachedOptions.slice(props.maxCollapseTags) : []; + }); + const { createNewOption, removeNewOption, selectNewOption, clearAllNewOption } = useAllowCreate(props, states); + const toggleMenu = (event) => { + if (selectDisabled.value || props.filterable && expanded.value && event && !suffixRef.value?.contains(event.target)) return; + if (states.menuVisibleOnFocus) states.menuVisibleOnFocus = false; + else expanded.value = !expanded.value; + }; + const onInputChange = () => { + if (states.inputValue.length > 0 && !expanded.value) expanded.value = true; + createNewOption(states.inputValue); + (0, vue.nextTick)(() => { + handleQueryChange(states.inputValue); + }); + }; + const debouncedOnInputChange = useDebounceFn(() => { + onInputChange(); + debouncing.value = false; + }, debounce); + const handleQueryChange = (val) => { + if (states.previousQuery === val || isComposing.value) return; + states.previousQuery = val; + if (props.filterable && isFunction$1(props.filterMethod)) props.filterMethod(val); + else if (props.filterable && props.remote && isFunction$1(props.remoteMethod)) props.remoteMethod(val); + if (props.defaultFirstOption && (props.filterable || props.remote) && filteredOptions.value.length) (0, vue.nextTick)(checkDefaultFirstOption); + else (0, vue.nextTick)(updateHoveringIndex); + }; + /** + * find and highlight first option as default selected + * @remark + * - if the first option in dropdown list is user-created, + * it would be at the end of the optionsArray + * so find it and set hover. + * (NOTE: there must be only one user-created option in dropdown list with query) + * - if there's no user-created option in list, just find the first one as usual + * (NOTE: exclude options that are disabled or in disabled-group) + */ + const checkDefaultFirstOption = () => { + const optionsInDropdown = filteredOptions.value.filter((n) => !n.disabled && n.type !== "Group"); + const userCreatedOption = optionsInDropdown.find((n) => n.created); + const firstOriginOption = optionsInDropdown[0]; + states.hoveringIndex = getValueIndex(filteredOptions.value, userCreatedOption || firstOriginOption); + }; + const emitChange = (val) => { + if (!isEqual$1(props.modelValue, val)) emit(CHANGE_EVENT, val); + }; + const update = (val) => { + emit(UPDATE_MODEL_EVENT, val); + emitChange(val); + states.previousValue = props.multiple ? String(val) : val; + (0, vue.nextTick)(() => { + if (props.multiple && isArray$1(props.modelValue)) { + const cachedOptions = states.cachedOptions.slice(); + const selectedOptions = props.modelValue.map((value) => getOption(value, cachedOptions)); + if (!isEqual$1(states.cachedOptions, selectedOptions)) states.cachedOptions = selectedOptions; + } else initStates(true); + }); + }; + const getValueIndex = (arr = [], value) => { + if (!isObject$1(value)) return arr.indexOf(value); + const valueKey = props.valueKey; + let index = -1; + arr.some((item, i) => { + if (get(item, valueKey) === get(value, valueKey)) { + index = i; + return true; + } + return false; + }); + return index; + }; + const getValueKey = (item) => { + return isObject$1(item) ? get(item, props.valueKey) : item; + }; + const handleResize = () => { + calculatePopperSize(); + }; + const resetSelectionWidth = () => { + states.selectionWidth = Number.parseFloat(window.getComputedStyle(selectionRef.value).width); + }; + const resetCollapseItemWidth = () => { + states.collapseItemWidth = collapseItemRef.value.getBoundingClientRect().width; + }; + const updateTooltip = () => { + tooltipRef.value?.updatePopper?.(); + }; + const updateTagTooltip = () => { + tagTooltipRef.value?.updatePopper?.(); + }; + const onSelect = (option) => { + const optionValue = getValue(option); + if (props.multiple) { + let selectedOptions = props.modelValue.slice(); + const index = getValueIndex(selectedOptions, optionValue); + if (index > -1) { + selectedOptions = [...selectedOptions.slice(0, index), ...selectedOptions.slice(index + 1)]; + states.cachedOptions.splice(index, 1); + removeNewOption(option); + } else if (props.multipleLimit <= 0 || selectedOptions.length < props.multipleLimit) { + selectedOptions = [...selectedOptions, optionValue]; + states.cachedOptions.push(option); + selectNewOption(option); + } + update(selectedOptions); + if (option.created) handleQueryChange(""); + if (props.filterable && (option.created || !props.reserveKeyword)) states.inputValue = ""; + } else { + states.selectedLabel = getLabel(option); + !isEqual$1(props.modelValue, optionValue) && update(optionValue); + expanded.value = false; + selectNewOption(option); + if (!option.created) clearAllNewOption(); + } + focus(); + }; + const deleteTag = (event, option) => { + let selectedOptions = props.modelValue.slice(); + const index = getValueIndex(selectedOptions, getValue(option)); + if (index > -1 && !selectDisabled.value) { + selectedOptions = [...props.modelValue.slice(0, index), ...props.modelValue.slice(index + 1)]; + states.cachedOptions.splice(index, 1); + update(selectedOptions); + emit("remove-tag", getValue(option)); + removeNewOption(option); + } + event.stopPropagation(); + focus(); + }; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + if (expanded.value) { + expanded.value = false; + (0, vue.nextTick)(() => inputRef.value?.blur()); + return; + } + inputRef.value?.blur(); + }; + const handleEsc = () => { + if (states.inputValue.length > 0) states.inputValue = ""; + else expanded.value = false; + }; + const getLastNotDisabledIndex = (value) => findLastIndex(value, (it) => !states.cachedOptions.some((option) => getValue(option) === it && getDisabled(option))); + const handleDel = (e) => { + const code = getEventCode(e); + if (!props.multiple) return; + if (code === EVENT_CODE.delete) return; + if (states.inputValue.length === 0) { + e.preventDefault(); + const selected = props.modelValue.slice(); + const lastNotDisabledIndex = getLastNotDisabledIndex(selected); + if (lastNotDisabledIndex < 0) return; + const removeTagValue = selected[lastNotDisabledIndex]; + selected.splice(lastNotDisabledIndex, 1); + const option = states.cachedOptions[lastNotDisabledIndex]; + states.cachedOptions.splice(lastNotDisabledIndex, 1); + removeNewOption(option); + update(selected); + emit("remove-tag", removeTagValue); + } + }; + const handleClear = () => { + let emptyValue; + if (isArray$1(props.modelValue)) emptyValue = []; + else emptyValue = valueOnClear.value; + states.selectedLabel = ""; + expanded.value = false; + update(emptyValue); + emit("clear"); + clearAllNewOption(); + focus(); + }; + const onKeyboardNavigate = (direction, hoveringIndex = void 0) => { + const options = filteredOptions.value; + if (!["forward", "backward"].includes(direction) || selectDisabled.value || options.length <= 0 || optionsAllDisabled.value || isComposing.value) return; + if (!expanded.value) return toggleMenu(); + if (isUndefined(hoveringIndex)) hoveringIndex = states.hoveringIndex; + let newIndex = -1; + if (direction === "forward") { + newIndex = hoveringIndex + 1; + if (newIndex >= options.length) newIndex = 0; + } else if (direction === "backward") { + newIndex = hoveringIndex - 1; + if (newIndex < 0 || newIndex >= options.length) newIndex = options.length - 1; + } + const option = options[newIndex]; + if (getDisabled(option) || option.type === "Group") return onKeyboardNavigate(direction, newIndex); + else { + states.hoveringIndex = newIndex; + scrollToItem(newIndex); + } + }; + const onKeyboardSelect = () => { + if (!expanded.value) return toggleMenu(); + else if (~states.hoveringIndex && filteredOptions.value[states.hoveringIndex]) onSelect(filteredOptions.value[states.hoveringIndex]); + }; + const onHoverOption = (idx) => { + states.hoveringIndex = idx ?? -1; + }; + const updateHoveringIndex = () => { + if (!props.multiple) states.hoveringIndex = filteredOptions.value.findIndex((item) => { + return getValueKey(getValue(item)) === getValueKey(props.modelValue); + }); + else { + const length = props.modelValue.length; + if (length > 0) { + const lastValue = props.modelValue[length - 1]; + states.hoveringIndex = filteredOptions.value.findIndex((item) => getValueKey(lastValue) === getValueKey(getValue(item))); + } else states.hoveringIndex = -1; + } + }; + const onInput = (event) => { + states.inputValue = event.target.value; + if (props.remote) { + debouncing.value = true; + debouncedOnInputChange(); + } else return onInputChange(); + }; + const handleClickOutside = (event) => { + expanded.value = false; + if (isFocused.value) handleBlur(new FocusEvent("blur", event)); + }; + const handleMenuEnter = () => { + states.isBeforeHide = false; + return (0, vue.nextTick)(() => { + if (~indexRef.value) scrollToItem(indexRef.value); + }); + }; + const scrollToItem = (index) => { + menuRef.value.scrollToItem(index); + }; + const getOption = (value, cachedOptions) => { + const selectValue = getValueKey(value); + if (allOptionsValueMap.value.has(selectValue)) { + const { option } = allOptionsValueMap.value.get(selectValue); + return option; + } + if (cachedOptions && cachedOptions.length) { + const option = cachedOptions.find((option) => getValueKey(getValue(option)) === selectValue); + if (option) return option; + } + return { + [aliasProps.value.value]: value, + [aliasProps.value.label]: value + }; + }; + const getIndex = (option) => allOptionsValueMap.value.get(getValue(option))?.index ?? -1; + const initStates = (needUpdateSelectedLabel = false) => { + if (props.multiple) if (props.modelValue.length > 0) { + const cachedOptions = states.cachedOptions.slice(); + states.cachedOptions.length = 0; + states.previousValue = props.modelValue.toString(); + for (const value of props.modelValue) { + const option = getOption(value, cachedOptions); + states.cachedOptions.push(option); + } + } else { + states.cachedOptions = []; + states.previousValue = void 0; + } + else if (hasModelValue.value) { + states.previousValue = props.modelValue; + const options = filteredOptions.value; + const selectedItemIndex = options.findIndex((option) => getValueKey(getValue(option)) === getValueKey(props.modelValue)); + if (~selectedItemIndex) states.selectedLabel = getLabel(options[selectedItemIndex]); + else if (!states.selectedLabel || needUpdateSelectedLabel) states.selectedLabel = getValueKey(props.modelValue); + } else { + states.selectedLabel = ""; + states.previousValue = void 0; + } + clearAllNewOption(); + calculatePopperSize(); + }; + (0, vue.watch)(() => props.fitInputWidth, () => { + calculatePopperSize(); + }); + (0, vue.watch)(expanded, (val) => { + if (val) { + if (!props.persistent) calculatePopperSize(); + handleQueryChange(""); + } else { + states.inputValue = ""; + states.previousQuery = null; + states.isBeforeHide = true; + states.menuVisibleOnFocus = false; + createNewOption(""); + } + }); + (0, vue.watch)(() => props.modelValue, (val, oldVal) => { + if (!val || isArray$1(val) && val.length === 0 || props.multiple && !isEqual$1(val.toString(), states.previousValue) || !props.multiple && getValueKey(val) !== getValueKey(states.previousValue)) initStates(true); + if (!isEqual$1(val, oldVal) && props.validateEvent) elFormItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }, { deep: true }); + (0, vue.watch)(() => props.options, () => { + const input = inputRef.value; + if (!input || input && document.activeElement !== input) initStates(); + }, { + deep: true, + flush: "post" + }); + (0, vue.watch)(() => filteredOptions.value, () => { + calculatePopperSize(); + return menuRef.value && (0, vue.nextTick)(menuRef.value.resetScrollTop); + }); + (0, vue.watchEffect)(() => { + if (states.isBeforeHide) return; + updateOptions(); + }); + (0, vue.watchEffect)(() => { + const { valueKey, options } = props; + const duplicateValue = /* @__PURE__ */ new Map(); + for (const item of options) { + const optionValue = getValue(item); + let v = optionValue; + if (isObject$1(v)) v = get(optionValue, valueKey); + if (duplicateValue.get(v)) { + /* @__PURE__ */ debugWarn("ElSelectV2", `The option values you provided seem to be duplicated, which may cause some problems, please check.`); + break; + } else duplicateValue.set(v, true); + } + }); + (0, vue.onMounted)(() => { + initStates(); + }); + useResizeObserver(selectRef, handleResize); + useResizeObserver(selectionRef, resetSelectionWidth); + useResizeObserver(wrapperRef, updateTooltip); + useResizeObserver(tagMenuRef, updateTagTooltip); + useResizeObserver(collapseItemRef, resetCollapseItemWidth); + let stop; + (0, vue.watch)(() => dropdownMenuVisible.value, (newVal) => { + if (newVal) stop = useResizeObserver(menuRef, updateTooltip).stop; + else { + stop?.(); + stop = void 0; + } + emit("visible-change", newVal); + }); + return { + inputId, + collapseTagSize, + currentPlaceholder, + expanded, + emptyText, + popupHeight, + debounce, + allOptions, + allOptionsValueMap, + filteredOptions, + iconComponent, + iconReverse, + tagStyle, + collapseTagStyle, + popperSize, + dropdownMenuVisible, + hasModelValue, + shouldShowPlaceholder, + selectDisabled, + selectSize, + needStatusIcon, + showClearBtn, + states, + isFocused, + nsSelect, + nsInput, + inputRef, + menuRef, + tagMenuRef, + tooltipRef, + tagTooltipRef, + selectRef, + wrapperRef, + selectionRef, + prefixRef, + suffixRef, + collapseItemRef, + popperRef, + validateState, + validateIcon, + showTagList, + collapseTagList, + debouncedOnInputChange, + deleteTag, + getLabel, + getValue, + getDisabled, + getValueKey, + getIndex, + handleClear, + handleClickOutside, + handleDel, + handleEsc, + focus, + blur, + handleMenuEnter, + handleResize, + resetSelectionWidth, + updateTooltip, + updateTagTooltip, + updateOptions, + toggleMenu, + scrollTo: scrollToItem, + onInput, + onKeyboardNavigate, + onKeyboardSelect, + onSelect, + onHover: onHoverOption, + handleCompositionStart, + handleCompositionEnd, + handleCompositionUpdate + }; + }; + +//#endregion +//#region ../../packages/components/select-v2/src/select.vue?vue&type=script&lang.ts + var select_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElSelectV2", + components: { + ElSelectMenu: select_dropdown_default, + ElTag, + ElTooltip, + ElIcon + }, + directives: { ClickOutside }, + props: selectV2Props, + emits: selectV2Emits, + setup(props, { emit }) { + const modelValue = (0, vue.computed)(() => { + const { modelValue: rawModelValue, multiple } = props; + const fallback = multiple ? [] : void 0; + if (isArray$1(rawModelValue)) return multiple ? rawModelValue : fallback; + return multiple ? fallback : rawModelValue; + }); + const API = useSelect$1((0, vue.reactive)({ + ...(0, vue.toRefs)(props), + modelValue + }), emit); + const { calculatorRef, inputStyle } = useCalcInputWidth(); + const contentId = useId(); + (0, vue.provide)(selectV2InjectionKey, { + props: (0, vue.reactive)({ + ...(0, vue.toRefs)(props), + height: API.popupHeight, + modelValue + }), + expanded: API.expanded, + tooltipRef: API.tooltipRef, + contentId, + onSelect: API.onSelect, + onHover: API.onHover, + onKeyboardNavigate: API.onKeyboardNavigate, + onKeyboardSelect: API.onKeyboardSelect + }); + const selectedLabel = (0, vue.computed)(() => { + if (!props.multiple) return API.states.selectedLabel; + return API.states.cachedOptions.map((i) => API.getLabel(i)); + }); + return { + ...API, + modelValue, + selectedLabel, + calculatorRef, + inputStyle, + contentId, + BORDER_HORIZONTAL_WIDTH + }; + } + }); + +//#endregion +//#region ../../packages/components/select-v2/src/select.vue + const _hoisted_1$21 = [ + "id", + "value", + "autocomplete", + "tabindex", + "aria-expanded", + "aria-label", + "disabled", + "aria-controls", + "aria-activedescendant", + "readonly", + "name" + ]; + const _hoisted_2$13 = ["textContent"]; + const _hoisted_3$5 = { key: 1 }; + function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_tag = (0, vue.resolveComponent)("el-tag"); + const _component_el_tooltip = (0, vue.resolveComponent)("el-tooltip"); + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + const _component_el_select_menu = (0, vue.resolveComponent)("el-select-menu"); + const _directive_click_outside = (0, vue.resolveDirective)("click-outside"); + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref: "selectRef", + class: (0, vue.normalizeClass)([_ctx.nsSelect.b(), _ctx.nsSelect.m(_ctx.selectSize)]), + onMouseenter: _cache[15] || (_cache[15] = ($event) => _ctx.states.inputHovering = true), + onMouseleave: _cache[16] || (_cache[16] = ($event) => _ctx.states.inputHovering = false) + }, [(0, vue.createVNode)(_component_el_tooltip, { + ref: "tooltipRef", + visible: _ctx.dropdownMenuVisible, + teleported: _ctx.teleported, + "popper-class": [_ctx.nsSelect.e("popper"), _ctx.popperClass], + "popper-style": _ctx.popperStyle, + "gpu-acceleration": false, + "stop-popper-mouse-event": false, + "popper-options": _ctx.popperOptions, + "fallback-placements": _ctx.fallbackPlacements, + effect: _ctx.effect, + placement: _ctx.placement, + pure: "", + transition: `${_ctx.nsSelect.namespace.value}-zoom-in-top`, + trigger: "click", + persistent: _ctx.persistent, + "append-to": _ctx.appendTo, + "show-arrow": _ctx.showArrow, + offset: _ctx.offset, + onBeforeShow: _ctx.handleMenuEnter, + onHide: _cache[14] || (_cache[14] = ($event) => _ctx.states.isBeforeHide = false) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "wrapperRef", + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("wrapper"), + _ctx.nsSelect.is("focused", _ctx.isFocused), + _ctx.nsSelect.is("hovering", _ctx.states.inputHovering), + _ctx.nsSelect.is("filterable", _ctx.filterable), + _ctx.nsSelect.is("disabled", _ctx.selectDisabled) + ]), + onClick: _cache[11] || (_cache[11] = (0, vue.withModifiers)((...args) => _ctx.toggleMenu && _ctx.toggleMenu(...args), ["prevent"])) + }, [ + _ctx.$slots.prefix ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref: "prefixRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("prefix")) + }, [(0, vue.renderSlot)(_ctx.$slots, "prefix")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + ref: "selectionRef", + class: (0, vue.normalizeClass)([_ctx.nsSelect.e("selection"), _ctx.nsSelect.is("near", _ctx.multiple && !_ctx.$slots.prefix && !!_ctx.modelValue.length)]) + }, [ + _ctx.multiple ? (0, vue.renderSlot)(_ctx.$slots, "tag", { + key: 0, + data: _ctx.states.cachedOptions, + deleteTag: _ctx.deleteTag, + selectDisabled: _ctx.selectDisabled + }, () => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.showTagList, (item) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: _ctx.getValueKey(_ctx.getValue(item)), + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selected-item")) + }, [(0, vue.createVNode)(_component_el_tag, { + closable: !_ctx.selectDisabled && !_ctx.getDisabled(item), + size: _ctx.collapseTagSize, + type: _ctx.tagType, + effect: _ctx.tagEffect, + "disable-transitions": "", + style: (0, vue.normalizeStyle)(_ctx.tagStyle), + onClose: ($event) => _ctx.deleteTag($event, item) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.nsSelect.e("tags-text")) }, [(0, vue.renderSlot)(_ctx.$slots, "label", { + index: _ctx.getIndex(item), + label: _ctx.getLabel(item), + value: _ctx.getValue(item) + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(_ctx.getLabel(item)), 1)])], 2)]), + _: 2 + }, 1032, [ + "closable", + "size", + "type", + "effect", + "style", + "onClose" + ])], 2); + }), 128)), _ctx.collapseTags && _ctx.states.cachedOptions.length > _ctx.maxCollapseTags ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_tooltip, { + key: 0, + ref: "tagTooltipRef", + disabled: _ctx.dropdownMenuVisible || !_ctx.collapseTagsTooltip, + "fallback-placements": _ctx.tagTooltip?.fallbackPlacements ?? [ + "bottom", + "top", + "right", + "left" + ], + effect: _ctx.tagTooltip?.effect ?? _ctx.effect, + placement: _ctx.tagTooltip?.placement ?? "bottom", + "popper-class": _ctx.tagTooltip?.popperClass ?? _ctx.popperClass, + "popper-style": _ctx.tagTooltip?.popperStyle ?? _ctx.popperStyle, + teleported: _ctx.tagTooltip?.teleported ?? _ctx.teleported, + "append-to": _ctx.tagTooltip?.appendTo ?? _ctx.appendTo, + "popper-options": _ctx.tagTooltip?.popperOptions ?? _ctx.popperOptions, + transition: _ctx.tagTooltip?.transition, + "show-after": _ctx.tagTooltip?.showAfter, + "hide-after": _ctx.tagTooltip?.hideAfter, + "auto-close": _ctx.tagTooltip?.autoClose, + offset: _ctx.tagTooltip?.offset + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "collapseItemRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selected-item")) + }, [(0, vue.createVNode)(_component_el_tag, { + closable: false, + size: _ctx.collapseTagSize, + type: _ctx.tagType, + effect: _ctx.tagEffect, + style: (0, vue.normalizeStyle)(_ctx.collapseTagStyle), + "disable-transitions": "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.nsSelect.e("tags-text")) }, " + " + (0, vue.toDisplayString)(_ctx.states.cachedOptions.length - _ctx.maxCollapseTags), 3)]), + _: 1 + }, 8, [ + "size", + "type", + "effect", + "style" + ])], 2)]), + content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "tagMenuRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selection")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.collapseTagList, (selected) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: _ctx.getValueKey(_ctx.getValue(selected)), + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selected-item")) + }, [(0, vue.createVNode)(_component_el_tag, { + class: "in-tooltip", + closable: !_ctx.selectDisabled && !_ctx.getDisabled(selected), + size: _ctx.collapseTagSize, + type: _ctx.tagType, + effect: _ctx.tagEffect, + "disable-transitions": "", + onClose: ($event) => _ctx.deleteTag($event, selected) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.nsSelect.e("tags-text")) }, [(0, vue.renderSlot)(_ctx.$slots, "label", { + index: _ctx.getIndex(selected), + label: _ctx.getLabel(selected), + value: _ctx.getValue(selected) + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(_ctx.getLabel(selected)), 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" + ])) : (0, vue.createCommentVNode)("v-if", true)]) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("selected-item"), + _ctx.nsSelect.e("input-wrapper"), + _ctx.nsSelect.is("hidden", !_ctx.filterable || _ctx.selectDisabled || !_ctx.states.inputValue && !_ctx.isFocused) + ]) }, [(0, vue.createElementVNode)("input", { + id: _ctx.inputId, + ref: "inputRef", + value: _ctx.states.inputValue, + style: (0, vue.normalizeStyle)(_ctx.inputStyle), + autocomplete: _ctx.autocomplete, + tabindex: _ctx.tabindex, + "aria-autocomplete": "none", + "aria-haspopup": "listbox", + autocapitalize: "off", + "aria-expanded": _ctx.expanded, + "aria-label": _ctx.ariaLabel, + class: (0, vue.normalizeClass)([_ctx.nsSelect.e("input"), _ctx.nsSelect.is(_ctx.selectSize)]), + disabled: _ctx.selectDisabled, + role: "combobox", + "aria-controls": _ctx.contentId, + "aria-activedescendant": _ctx.states.hoveringIndex >= 0 ? `${_ctx.contentId}-${_ctx.states.hoveringIndex}` : "", + readonly: !_ctx.filterable, + spellcheck: "false", + type: "text", + name: _ctx.name, + onInput: _cache[0] || (_cache[0] = (...args) => _ctx.onInput && _ctx.onInput(...args)), + onChange: _cache[1] || (_cache[1] = (0, vue.withModifiers)(() => {}, ["stop"])), + onCompositionstart: _cache[2] || (_cache[2] = (...args) => _ctx.handleCompositionStart && _ctx.handleCompositionStart(...args)), + onCompositionupdate: _cache[3] || (_cache[3] = (...args) => _ctx.handleCompositionUpdate && _ctx.handleCompositionUpdate(...args)), + onCompositionend: _cache[4] || (_cache[4] = (...args) => _ctx.handleCompositionEnd && _ctx.handleCompositionEnd(...args)), + onKeydown: [ + _cache[5] || (_cache[5] = (0, vue.withKeys)((0, vue.withModifiers)(($event) => _ctx.onKeyboardNavigate("backward"), ["stop", "prevent"]), ["up"])), + _cache[6] || (_cache[6] = (0, vue.withKeys)((0, vue.withModifiers)(($event) => _ctx.onKeyboardNavigate("forward"), ["stop", "prevent"]), ["down"])), + _cache[7] || (_cache[7] = (0, vue.withKeys)((0, vue.withModifiers)((...args) => _ctx.onKeyboardSelect && _ctx.onKeyboardSelect(...args), ["stop", "prevent"]), ["enter"])), + _cache[8] || (_cache[8] = (0, vue.withKeys)((0, vue.withModifiers)((...args) => _ctx.handleEsc && _ctx.handleEsc(...args), ["stop", "prevent"]), ["esc"])), + _cache[9] || (_cache[9] = (0, vue.withKeys)((0, vue.withModifiers)((...args) => _ctx.handleDel && _ctx.handleDel(...args), ["stop"]), ["delete"])) + ], + onClick: _cache[10] || (_cache[10] = (0, vue.withModifiers)((...args) => _ctx.toggleMenu && _ctx.toggleMenu(...args), ["stop"])) + }, null, 46, _hoisted_1$21), _ctx.filterable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + ref: "calculatorRef", + "aria-hidden": "true", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("input-calculator")), + textContent: (0, vue.toDisplayString)(_ctx.states.inputValue) + }, null, 10, _hoisted_2$13)) : (0, vue.createCommentVNode)("v-if", true)], 2), + _ctx.shouldShowPlaceholder ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("selected-item"), + _ctx.nsSelect.e("placeholder"), + _ctx.nsSelect.is("transparent", !_ctx.hasModelValue || _ctx.expanded && !_ctx.states.inputValue) + ]) + }, [_ctx.hasModelValue ? (0, vue.renderSlot)(_ctx.$slots, "label", { + key: 0, + index: _ctx.allOptionsValueMap.get(_ctx.modelValue)?.index ?? -1, + label: _ctx.currentPlaceholder, + value: _ctx.modelValue + }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.currentPlaceholder), 1)]) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$5, (0, vue.toDisplayString)(_ctx.currentPlaceholder), 1))], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2), + (0, vue.createElementVNode)("div", { + ref: "suffixRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("suffix")) + }, [ + _ctx.iconComponent ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 0, + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("caret"), + _ctx.nsInput.e("icon"), + _ctx.iconReverse + ]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.iconComponent)))]), + _: 1 + }, 8, ["class"])), [[vue.vShow, !_ctx.showClearBtn]]) : (0, vue.createCommentVNode)("v-if", true), + _ctx.showClearBtn && _ctx.clearIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 1, + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("caret"), + _ctx.nsInput.e("icon"), + _ctx.nsSelect.e("clear") + ]), + onClick: (0, vue.withModifiers)(_ctx.handleClear, ["prevent", "stop"]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.clearIcon)))]), + _: 1 + }, 8, ["class", "onClick"])) : (0, vue.createCommentVNode)("v-if", true), + _ctx.validateState && _ctx.validateIcon && _ctx.needStatusIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 2, + class: (0, vue.normalizeClass)([ + _ctx.nsInput.e("icon"), + _ctx.nsInput.e("validateIcon"), + _ctx.nsInput.is("loading", _ctx.validateState === "validating") + ]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.validateIcon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true) + ], 2) + ], 2)]), + content: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_select_menu, { + id: _ctx.contentId, + ref: "menuRef", + data: _ctx.filteredOptions, + width: _ctx.popperSize - _ctx.BORDER_HORIZONTAL_WIDTH, + "hovering-index": _ctx.states.hoveringIndex, + "scrollbar-always-on": _ctx.scrollbarAlwaysOn, + "aria-label": _ctx.ariaLabel + }, (0, vue.createSlots)({ + default: (0, vue.withCtx)((scope) => [(0, vue.renderSlot)(_ctx.$slots, "default", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(scope)))]), + _: 2 + }, [ + _ctx.$slots.header ? { + name: "header", + fn: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "header")), + onClick: _cache[12] || (_cache[12] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "header")], 2)]), + key: "0" + } : void 0, + _ctx.$slots.loading && _ctx.loading ? { + name: "loading", + fn: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "loading")) }, [(0, vue.renderSlot)(_ctx.$slots, "loading")], 2)]), + key: "1" + } : _ctx.loading || _ctx.filteredOptions.length === 0 ? { + name: "empty", + fn: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "empty")) }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.emptyText), 1)])], 2)]), + key: "2" + } : void 0, + _ctx.$slots.footer ? { + name: "footer", + fn: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "footer")), + onClick: _cache[13] || (_cache[13] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)]), + key: "3" + } : void 0 + ]), 1032, [ + "id", + "data", + "width", + "hovering-index", + "scrollbar-always-on", + "aria-label" + ])]), + _: 3 + }, 8, [ + "visible", + "teleported", + "popper-class", + "popper-style", + "popper-options", + "fallback-placements", + "effect", + "placement", + "transition", + "persistent", + "append-to", + "show-arrow", + "offset", + "onBeforeShow" + ])], 34)), [[ + _directive_click_outside, + _ctx.handleClickOutside, + _ctx.popperRef + ]]); + } + var select_default = /* @__PURE__ */ _plugin_vue_export_helper_default(select_vue_vue_type_script_lang_default, [["render", _sfc_render$5]]); + +//#endregion +//#region ../../packages/components/select-v2/index.ts + const ElSelectV2 = withInstall(select_default); + +//#endregion +//#region ../../packages/components/skeleton/src/skeleton.ts +/** + * @deprecated Removed after 3.0.0, Use `SkeletonProps` instead. + */ + const skeletonProps = buildProps({ + animated: Boolean, + count: { + type: Number, + default: 1 + }, + rows: { + type: Number, + default: 3 + }, + loading: { + type: Boolean, + default: true + }, + throttle: { type: definePropType([Number, Object]) } + }); + +//#endregion +//#region ../../packages/components/skeleton/src/skeleton-item.ts +/** + * @deprecated Removed after 3.0.0, Use `SkeletonItemProps` instead. + */ + const skeletonItemProps = buildProps({ variant: { + type: String, + values: [ + "circle", + "rect", + "h1", + "h3", + "text", + "caption", + "p", + "image", + "button" + ], + default: "text" + } }); + +//#endregion +//#region ../../packages/components/skeleton/src/skeleton-item.vue?vue&type=script&setup=true&lang.ts + var skeleton_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSkeletonItem", + __name: "skeleton-item", + props: skeletonItemProps, + setup(__props) { + const ns = useNamespace("skeleton"); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("item"), (0, vue.unref)(ns).e(__props.variant)]) }, [__props.variant === "image" ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(picture_filled_default), { key: 0 })) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/skeleton/src/skeleton-item.vue + var skeleton_item_default = skeleton_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/skeleton/src/skeleton.vue?vue&type=script&setup=true&lang.ts + var skeleton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSkeleton", + __name: "skeleton", + props: skeletonProps, + setup(__props, { expose: __expose }) { + const props = __props; + const ns = useNamespace("skeleton"); + const uiLoading = useThrottleRender((0, vue.toRef)(props, "loading"), props.throttle); + __expose({ uiLoading }); + return (_ctx, _cache) => { + return (0, vue.unref)(uiLoading) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", (0, vue.mergeProps)({ + key: 0, + class: [(0, vue.unref)(ns).b(), (0, vue.unref)(ns).is("animated", __props.animated)] + }, _ctx.$attrs), [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.count, (i) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: i }, [(0, vue.unref)(uiLoading) ? (0, vue.renderSlot)(_ctx.$slots, "template", { key: i }, () => [(0, vue.createVNode)(skeleton_item_default, { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).is("first")), + variant: "p" + }, null, 8, ["class"]), ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.rows, (item) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(skeleton_item_default, { + key: item, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("paragraph"), (0, vue.unref)(ns).is("last", item === __props.rows && __props.rows > 1)]), + variant: "p" + }, null, 8, ["class"]); + }), 128))]) : (0, vue.createCommentVNode)("v-if", true)], 64); + }), 128))], 16)) : (0, vue.renderSlot)(_ctx.$slots, "default", (0, vue.normalizeProps)((0, vue.mergeProps)({ key: 1 }, _ctx.$attrs))); + }; + } + }); + +//#endregion +//#region ../../packages/components/skeleton/src/skeleton.vue + var skeleton_default = skeleton_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/skeleton/index.ts + const ElSkeleton = withInstall(skeleton_default, { SkeletonItem: skeleton_item_default }); + const ElSkeletonItem = withNoopInstall(skeleton_item_default); + +//#endregion +//#region ../../packages/components/slider/src/constants.ts + const sliderContextKey = Symbol("sliderContextKey"); + +//#endregion +//#region ../../packages/components/slider/src/slider.ts + const sliderProps = buildProps({ + modelValue: { + type: definePropType([Number, Array]), + default: 0 + }, + id: { + type: String, + default: void 0 + }, + min: { + type: Number, + default: 0 + }, + max: { + type: Number, + default: 100 + }, + step: { + type: definePropType([Number, String]), + default: 1 + }, + showInput: Boolean, + showInputControls: { + type: Boolean, + default: true + }, + size: useSizeProp, + inputSize: useSizeProp, + showStops: Boolean, + showTooltip: { + type: Boolean, + default: true + }, + formatTooltip: { + type: definePropType(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: definePropType(Function), + default: void 0 + }, + tooltipClass: { + type: String, + default: void 0 + }, + placement: { + type: String, + values: Ee, + default: "top" + }, + marks: { type: definePropType(Object) }, + validateEvent: { + type: Boolean, + default: true + }, + persistent: { + type: Boolean, + default: true + }, + ...useAriaProps(["ariaLabel"]) + }); + const isValidValue$1 = (value) => isNumber(value) || isArray$1(value) && value.every(isNumber); + const sliderEmits = { + [UPDATE_MODEL_EVENT]: isValidValue$1, + [INPUT_EVENT]: isValidValue$1, + [CHANGE_EVENT]: isValidValue$1 + }; + +//#endregion +//#region ../../packages/components/slider/src/composables/use-lifecycle.ts + const useLifecycle = (props, initData, resetSize) => { + const sliderWrapper = (0, vue.ref)(); + (0, vue.onMounted)(async () => { + if (props.range) { + if (isArray$1(props.modelValue)) { + initData.firstValue = Math.max(props.min, props.modelValue[0]); + initData.secondValue = Math.min(props.max, props.modelValue[1]); + } else { + initData.firstValue = props.min; + initData.secondValue = props.max; + } + initData.oldValue = [initData.firstValue, initData.secondValue]; + } else { + if (!isNumber(props.modelValue) || Number.isNaN(props.modelValue)) initData.firstValue = props.min; + else initData.firstValue = Math.min(props.max, Math.max(props.min, props.modelValue)); + initData.oldValue = initData.firstValue; + } + useEventListener(window, "resize", resetSize); + await (0, vue.nextTick)(); + resetSize(); + }); + return { sliderWrapper }; + }; + +//#endregion +//#region ../../packages/components/slider/src/composables/use-marks.ts + const useMarks = (props) => { + const markList = (0, vue.computed)(() => { + if (!props.marks) return []; + return Object.keys(props.marks).map(Number.parseFloat).sort((a, b) => a - b).filter((point) => point <= props.max && point >= props.min).map((point) => ({ + point, + position: (point - props.min) * 100 / (props.max - props.min), + mark: props.marks[point] + })); + }); + (0, vue.watchEffect)(() => { + if (props.step === "mark" && !props.marks) /* @__PURE__ */ debugWarn("ElSlider", "marks prop must be provided when step is mark"); + if (props.marks) { + const keys = Object.keys(props.marks); + const validPoints = markList.value.map((m) => m.point); + const invalidKeys = keys.filter((key) => { + const parsed = Number.parseFloat(key); + return Number.isNaN(parsed) || !validPoints.includes(parsed); + }); + if (invalidKeys.length > 0) /* @__PURE__ */ debugWarn("ElSlider", `Some marks keys are invalid (not a number or out of [min, max]): [${invalidKeys.map((k) => `'${k}'`).join(", ")}] and will be ignored.`); + } + }); + return markList; + }; + +//#endregion +//#region ../../packages/components/slider/src/composables/use-slide.ts + const useSlide = (props, initData, emit) => { + const { formItem: elFormItem } = useFormItem(); + const slider = (0, vue.shallowRef)(); + const firstButton = (0, vue.ref)(); + const secondButton = (0, vue.ref)(); + const buttonRefs = { + firstButton, + secondButton + }; + const sliderDisabled = useFormDisabled(); + const minValue = (0, vue.computed)(() => { + return Math.min(initData.firstValue, initData.secondValue); + }); + const maxValue = (0, vue.computed)(() => { + return Math.max(initData.firstValue, initData.secondValue); + }); + const barSize = (0, vue.computed)(() => { + return props.range ? `${100 * (maxValue.value - minValue.value) / (props.max - props.min)}%` : `${100 * (initData.firstValue - props.min) / (props.max - props.min)}%`; + }); + const barStart = (0, vue.computed)(() => { + return props.range ? `${100 * (minValue.value - props.min) / (props.max - props.min)}%` : "0%"; + }); + const runwayStyle = (0, vue.computed)(() => { + return props.vertical ? { height: props.height } : {}; + }); + const barStyle = (0, vue.computed)(() => { + return props.vertical ? { + height: barSize.value, + bottom: barStart.value + } : { + width: barSize.value, + left: barStart.value + }; + }); + const resetSize = () => { + if (slider.value) initData.sliderSize = slider.value.getBoundingClientRect()[props.vertical ? "height" : "width"]; + }; + const getButtonRefByPercent = (percent) => { + const targetValue = props.min + percent * (props.max - props.min) / 100; + if (!props.range) return firstButton; + let buttonRefName; + if (Math.abs(minValue.value - targetValue) < Math.abs(maxValue.value - targetValue)) buttonRefName = initData.firstValue < initData.secondValue ? "firstButton" : "secondButton"; + else buttonRefName = initData.firstValue > initData.secondValue ? "firstButton" : "secondButton"; + return buttonRefs[buttonRefName]; + }; + const setPosition = (percent) => { + const buttonRef = getButtonRefByPercent(percent); + buttonRef.value.setPosition(percent); + return buttonRef; + }; + const setFirstValue = (firstValue) => { + initData.firstValue = firstValue ?? props.min; + _emit(props.range ? [minValue.value, maxValue.value] : firstValue ?? props.min); + }; + const setSecondValue = (secondValue) => { + initData.secondValue = secondValue; + if (props.range) _emit([minValue.value, maxValue.value]); + }; + const _emit = (val) => { + emit(UPDATE_MODEL_EVENT, val); + emit(INPUT_EVENT, val); + }; + const emitChange = async () => { + await (0, vue.nextTick)(); + emit(CHANGE_EVENT, props.range ? [minValue.value, maxValue.value] : props.modelValue); + }; + const handleSliderPointerEvent = (event) => { + if (sliderDisabled.value || initData.dragging) return; + resetSize(); + let newPercent = 0; + if (props.vertical) { + const clientY = event.touches?.item(0)?.clientY ?? event.clientY; + newPercent = (slider.value.getBoundingClientRect().bottom - clientY) / initData.sliderSize * 100; + } else newPercent = ((event.touches?.item(0)?.clientX ?? event.clientX) - slider.value.getBoundingClientRect().left) / initData.sliderSize * 100; + if (newPercent < 0 || newPercent > 100) return; + return setPosition(newPercent); + }; + const onSliderWrapperPrevent = (event) => { + if (buttonRefs["firstButton"].value?.dragging || buttonRefs["secondButton"].value?.dragging) event.preventDefault(); + }; + const onSliderDown = async (event) => { + const buttonRef = handleSliderPointerEvent(event); + if (buttonRef) { + await (0, vue.nextTick)(); + buttonRef.value.onButtonDown(event); + } + }; + const onSliderClick = (event) => { + if (handleSliderPointerEvent(event)) emitChange(); + }; + const onSliderMarkerDown = (position) => { + if (sliderDisabled.value || initData.dragging) return; + if (setPosition(position)) emitChange(); + }; + return { + elFormItem, + slider, + firstButton, + secondButton, + sliderDisabled, + minValue, + maxValue, + runwayStyle, + barStyle, + resetSize, + setPosition, + emitChange, + onSliderWrapperPrevent, + onSliderClick, + onSliderDown, + onSliderMarkerDown, + setFirstValue, + setSecondValue + }; + }; + +//#endregion +//#region ../../packages/components/slider/src/composables/use-slider-button.ts + const useTooltip = (props, formatTooltip, showTooltip) => { + const tooltip = (0, vue.ref)(); + const tooltipVisible = (0, vue.ref)(false); + const enableFormat = (0, vue.computed)(() => { + return formatTooltip.value instanceof Function; + }); + return { + tooltip, + tooltipVisible, + formatValue: (0, vue.computed)(() => { + return enableFormat.value && formatTooltip.value(props.modelValue) || props.modelValue; + }), + displayTooltip: debounce(() => { + showTooltip.value && (tooltipVisible.value = true); + }, 50), + hideTooltip: debounce(() => { + showTooltip.value && (tooltipVisible.value = false); + }, 50) + }; + }; + const useSliderButton = (props, initData, emit) => { + const { disabled, min, max, step, showTooltip, persistent, precision, sliderSize, formatTooltip, emitChange, resetSize, updateDragging, markList } = (0, vue.inject)(sliderContextKey); + const { tooltip, tooltipVisible, formatValue, displayTooltip, hideTooltip } = useTooltip(props, formatTooltip, showTooltip); + const button = (0, vue.ref)(); + const currentPosition = (0, vue.computed)(() => { + return `${(props.modelValue - min.value) / (max.value - min.value) * 100}%`; + }); + const wrapperStyle = (0, vue.computed)(() => { + return props.vertical ? { bottom: currentPosition.value } : { left: currentPosition.value }; + }); + const shouldMoveToMark = (0, vue.computed)(() => { + return step.value === "mark" && markList.value.length > 0; + }); + const handleMouseEnter = () => { + initData.hovering = true; + displayTooltip(); + }; + const handleMouseLeave = () => { + initData.hovering = false; + if (!initData.dragging) hideTooltip(); + }; + const onButtonDown = (event) => { + if (disabled.value) return; + event.preventDefault(); + onDragStart(event); + window.addEventListener("mousemove", onDragging); + window.addEventListener("touchmove", onDragging); + window.addEventListener("mouseup", onDragEnd); + window.addEventListener("touchend", onDragEnd); + window.addEventListener("contextmenu", onDragEnd); + button.value.focus(); + }; + const incrementPosition = (amount) => { + if (disabled.value) return; + initData.newPosition = Number.parseFloat(currentPosition.value) + amount / (max.value - min.value) * 100; + setPosition(initData.newPosition); + emitChange(); + }; + const moveToMark = (amount) => { + if (disabled.value || !markList.value.length) return; + const current = props.modelValue; + const epsilon = Number.EPSILON; + const stride = Math.abs(amount); + let target; + if (amount > 0) { + const startIndex = markList.value.findIndex((m) => m.point > current + epsilon); + if (startIndex !== -1) { + const targetIndex = Math.min(startIndex + stride - 1, markList.value.length - 1); + target = markList.value[targetIndex].point; + } + } else { + let startIndex = -1; + for (let i = markList.value.length - 1; i >= 0; i--) if (markList.value[i].point < current - epsilon) { + startIndex = i; + break; + } + if (startIndex !== -1) { + const targetIndex = Math.max(startIndex - (stride - 1), 0); + target = markList.value[targetIndex].point; + } + } + if (target !== void 0 && target !== current) { + setPosition((target - min.value) / (max.value - min.value) * 100); + emitChange(); + } + }; + const onLeftKeyDown = () => { + if (shouldMoveToMark.value) moveToMark(-1); + else if (isNumber(step.value)) incrementPosition(-step.value); + }; + const onRightKeyDown = () => { + if (shouldMoveToMark.value) moveToMark(1); + else if (isNumber(step.value)) incrementPosition(step.value); + }; + const onPageDownKeyDown = () => { + if (shouldMoveToMark.value) moveToMark(-4); + else if (isNumber(step.value)) incrementPosition(-step.value * 4); + }; + const onPageUpKeyDown = () => { + if (shouldMoveToMark.value) moveToMark(4); + else if (isNumber(step.value)) incrementPosition(step.value * 4); + }; + const onHomeKeyDown = () => { + if (disabled.value) return; + setPosition(0); + emitChange(); + }; + const onEndKeyDown = () => { + if (disabled.value) return; + setPosition(100); + emitChange(); + }; + const onKeyDown = (event) => { + const code = getEventCode(event); + let isPreventDefault = true; + switch (code) { + case EVENT_CODE.left: + case EVENT_CODE.down: + onLeftKeyDown(); + break; + case EVENT_CODE.right: + case EVENT_CODE.up: + onRightKeyDown(); + break; + case EVENT_CODE.home: + onHomeKeyDown(); + break; + case EVENT_CODE.end: + onEndKeyDown(); + break; + case EVENT_CODE.pageDown: + onPageDownKeyDown(); + break; + case EVENT_CODE.pageUp: + onPageUpKeyDown(); + break; + default: + isPreventDefault = false; + break; + } + isPreventDefault && event.preventDefault(); + }; + const getClientXY = (event) => { + let clientX; + let clientY; + if (event.type.startsWith("touch")) { + clientY = event.touches[0].clientY; + clientX = event.touches[0].clientX; + } else { + clientY = event.clientY; + clientX = event.clientX; + } + return { + clientX, + clientY + }; + }; + const onDragStart = (event) => { + initData.dragging = true; + initData.isClick = true; + const { clientX, clientY } = getClientXY(event); + if (props.vertical) initData.startY = clientY; + else initData.startX = clientX; + initData.startPosition = Number.parseFloat(currentPosition.value); + initData.newPosition = initData.startPosition; + }; + const onDragging = (event) => { + if (initData.dragging) { + initData.isClick = false; + displayTooltip(); + resetSize(); + let diff; + const { clientX, clientY } = getClientXY(event); + if (props.vertical) { + initData.currentY = clientY; + diff = (initData.startY - initData.currentY) / sliderSize.value * 100; + } else { + initData.currentX = clientX; + diff = (initData.currentX - initData.startX) / sliderSize.value * 100; + } + initData.newPosition = initData.startPosition + diff; + setPosition(initData.newPosition); + } + }; + const onDragEnd = () => { + if (initData.dragging) { + setTimeout(() => { + initData.dragging = false; + if (!initData.hovering) hideTooltip(); + if (!initData.isClick) setPosition(initData.newPosition); + emitChange(); + }, 0); + window.removeEventListener("mousemove", onDragging); + window.removeEventListener("touchmove", onDragging); + window.removeEventListener("mouseup", onDragEnd); + window.removeEventListener("touchend", onDragEnd); + window.removeEventListener("contextmenu", onDragEnd); + } + }; + const setPosition = async (newPosition) => { + if (newPosition === null || Number.isNaN(+newPosition)) return; + newPosition = clamp$1(newPosition, 0, 100); + let value; + if (step.value === "mark") if (markList.value.length === 0) value = newPosition <= 50 ? min.value : max.value; + else value = markList.value.reduce((prev, curr) => { + return Math.abs(curr.position - newPosition) < Math.abs(prev.position - newPosition) ? curr : prev; + }).point; + else { + const fullSteps = Math.floor((max.value - min.value) / step.value); + const fullRangePercentage = fullSteps * step.value / (max.value - min.value) * 100; + const threshold = fullRangePercentage + (100 - fullRangePercentage) / 2; + if (newPosition < fullRangePercentage) { + const valueBetween = fullRangePercentage / fullSteps; + const steps = Math.round(newPosition / valueBetween); + value = min.value + steps * step.value; + } else if (newPosition < threshold) value = min.value + fullSteps * step.value; + else value = max.value; + value = Number.parseFloat(value.toFixed(precision.value)); + } + if (value !== props.modelValue) emit(UPDATE_MODEL_EVENT, value); + if (!initData.dragging && props.modelValue !== initData.oldValue) initData.oldValue = props.modelValue; + await (0, vue.nextTick)(); + initData.dragging && displayTooltip(); + tooltip.value.updatePopper(); + }; + (0, vue.watch)(() => initData.dragging, (val) => { + updateDragging(val); + }); + useEventListener(button, "touchstart", onButtonDown, { passive: false }); + return { + disabled, + button, + tooltip, + tooltipVisible, + showTooltip, + persistent, + wrapperStyle, + formatValue, + handleMouseEnter, + handleMouseLeave, + onButtonDown, + onKeyDown, + setPosition + }; + }; + +//#endregion +//#region ../../packages/components/slider/src/composables/use-stops.ts + const useStops = (props, initData, minValue, maxValue) => { + const stops = (0, vue.computed)(() => { + if (!props.showStops || props.min > props.max) return []; + if (props.step === "mark" || props.step === 0) { + if (props.step === 0) /* @__PURE__ */ debugWarn("ElSlider", "step should not be 0."); + return []; + } + const stopCount = Math.ceil((props.max - props.min) / props.step); + const stepWidth = 100 * props.step / (props.max - props.min); + const result = Array.from({ length: stopCount - 1 }).map((_, index) => (index + 1) * stepWidth); + if (props.range) return result.filter((step) => { + return step < 100 * (minValue.value - props.min) / (props.max - props.min) || step > 100 * (maxValue.value - props.min) / (props.max - props.min); + }); + else return result.filter((step) => step > 100 * (initData.firstValue - props.min) / (props.max - props.min)); + }); + const getStopStyle = (position) => { + return props.vertical ? { bottom: `${position}%` } : { left: `${position}%` }; + }; + return { + stops, + getStopStyle + }; + }; + +//#endregion +//#region ../../packages/components/slider/src/composables/use-watch.ts + const useWatch = (props, initData, minValue, maxValue, emit, elFormItem) => { + const _emit = (val) => { + emit(UPDATE_MODEL_EVENT, val); + emit(INPUT_EVENT, val); + }; + const valueChanged = () => { + if (props.range) return ![minValue.value, maxValue.value].every((item, index) => item === initData.oldValue[index]); + else return props.modelValue !== initData.oldValue; + }; + const setValues = () => { + if (props.min > props.max) throwError("Slider", "min should not be greater than max."); + const val = props.modelValue; + if (props.range && isArray$1(val)) if (val[1] < props.min) _emit([props.min, props.min]); + else if (val[0] > props.max) _emit([props.max, props.max]); + else if (val[0] < props.min) _emit([props.min, val[1]]); + else if (val[1] > props.max) _emit([val[0], props.max]); + else { + initData.firstValue = val[0]; + initData.secondValue = val[1]; + if (valueChanged()) { + if (props.validateEvent) elFormItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + initData.oldValue = val.slice(); + } + } + else if (!props.range && isNumber(val) && !Number.isNaN(val)) if (val < props.min) _emit(props.min); + else if (val > props.max) _emit(props.max); + else { + initData.firstValue = val; + if (valueChanged()) { + if (props.validateEvent) elFormItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + initData.oldValue = val; + } + } + }; + setValues(); + (0, vue.watch)(() => initData.dragging, (val) => { + if (!val) setValues(); + }); + (0, vue.watch)(() => props.modelValue, (val, oldVal) => { + if (initData.dragging || isArray$1(val) && isArray$1(oldVal) && val.every((item, index) => item === oldVal[index]) && initData.firstValue === val[0] && initData.secondValue === val[1]) return; + setValues(); + }, { deep: true }); + (0, vue.watch)(() => [props.min, props.max], () => { + setValues(); + }); + }; + +//#endregion +//#region ../../packages/components/slider/src/button.ts + const sliderButtonProps = buildProps({ + modelValue: { + type: Number, + default: 0 + }, + vertical: Boolean, + tooltipClass: String, + placement: { + type: String, + values: Ee, + default: "top" + } + }); + const sliderButtonEmits = { [UPDATE_MODEL_EVENT]: (value) => isNumber(value) }; + +//#endregion +//#region ../../packages/components/slider/src/button.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$20 = ["tabindex"]; + var button_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSliderButton", + __name: "button", + props: sliderButtonProps, + emits: sliderButtonEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("slider"); + const initData = (0, vue.reactive)({ + hovering: false, + dragging: false, + isClick: false, + startX: 0, + currentX: 0, + startY: 0, + currentY: 0, + startPosition: 0, + newPosition: 0, + oldValue: props.modelValue + }); + const tooltipPersistent = (0, vue.computed)(() => !showTooltip.value ? false : persistent.value); + const { disabled, button, tooltip, showTooltip, persistent, tooltipVisible, wrapperStyle, formatValue, handleMouseEnter, handleMouseLeave, onButtonDown, onKeyDown, setPosition } = useSliderButton(props, initData, emit); + const { hovering, dragging } = (0, vue.toRefs)(initData); + __expose({ + onButtonDown, + onKeyDown, + setPosition, + hovering, + dragging + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "button", + ref: button, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("button-wrapper"), { + hover: (0, vue.unref)(hovering), + dragging: (0, vue.unref)(dragging) + }]), + style: (0, vue.normalizeStyle)((0, vue.unref)(wrapperStyle)), + tabindex: (0, vue.unref)(disabled) ? void 0 : 0, + onMouseenter: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleMouseEnter) && (0, vue.unref)(handleMouseEnter)(...args)), + onMouseleave: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleMouseLeave) && (0, vue.unref)(handleMouseLeave)(...args)), + onMousedown: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(onButtonDown) && (0, vue.unref)(onButtonDown)(...args)), + onFocus: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(handleMouseEnter) && (0, vue.unref)(handleMouseEnter)(...args)), + onBlur: _cache[4] || (_cache[4] = (...args) => (0, vue.unref)(handleMouseLeave) && (0, vue.unref)(handleMouseLeave)(...args)), + onKeydown: _cache[5] || (_cache[5] = (...args) => (0, vue.unref)(onKeyDown) && (0, vue.unref)(onKeyDown)(...args)) + }, [(0, vue.createVNode)((0, vue.unref)(ElTooltip), { + ref_key: "tooltip", + ref: tooltip, + visible: (0, vue.unref)(tooltipVisible), + placement: _ctx.placement, + "fallback-placements": [ + "top", + "bottom", + "right", + "left" + ], + "stop-popper-mouse-event": false, + "popper-class": _ctx.tooltipClass, + disabled: !(0, vue.unref)(showTooltip), + persistent: tooltipPersistent.value + }, { + content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)((0, vue.unref)(formatValue)), 1)]), + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("button"), { + hover: (0, vue.unref)(hovering), + dragging: (0, vue.unref)(dragging) + }]) }, null, 2)]), + _: 1 + }, 8, [ + "visible", + "placement", + "popper-class", + "disabled", + "persistent" + ])], 46, _hoisted_1$20); + }; + } + }); + +//#endregion +//#region ../../packages/components/slider/src/button.vue + var button_default = button_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/slider/src/marker.ts + const sliderMarkerProps = buildProps({ mark: { + type: definePropType([String, Object]), + default: void 0 + } }); + var marker_default = (0, vue.defineComponent)({ + name: "ElSliderMarker", + props: sliderMarkerProps, + setup(props) { + const ns = useNamespace("slider"); + const label = (0, vue.computed)(() => { + return isString(props.mark) ? props.mark : props.mark.label; + }); + const style = (0, vue.computed)(() => isString(props.mark) ? void 0 : props.mark.style); + return () => (0, vue.h)("div", { + class: ns.e("marks-text"), + style: style.value + }, label.value); + } + }); + +//#endregion +//#region ../../packages/components/slider/src/slider.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$19 = [ + "id", + "role", + "aria-label", + "aria-labelledby" + ]; + const _hoisted_2$12 = { key: 1 }; + var slider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSlider", + __name: "slider", + props: sliderProps, + emits: sliderEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("slider"); + const { t } = useLocale(); + const initData = (0, vue.reactive)({ + firstValue: 0, + secondValue: 0, + oldValue: 0, + dragging: false, + sliderSize: 1 + }); + const { elFormItem, slider, firstButton, secondButton, sliderDisabled, minValue, maxValue, runwayStyle, barStyle, resetSize, emitChange, onSliderWrapperPrevent, onSliderClick, onSliderDown, onSliderMarkerDown, setFirstValue, setSecondValue } = useSlide(props, initData, emit); + const { stops, getStopStyle } = useStops(props, initData, minValue, maxValue); + const { inputId, isLabeledByFormItem } = useFormItemInputId(props, { formItemContext: elFormItem }); + const sliderWrapperSize = useFormSize(); + const sliderInputSize = (0, vue.computed)(() => props.inputSize || sliderWrapperSize.value); + const renderInput = (0, vue.computed)(() => { + return props.showInput && !props.range && props.step !== "mark"; + }); + const groupLabel = (0, vue.computed)(() => { + return props.ariaLabel || t("el.slider.defaultLabel", { + min: props.min, + max: props.max + }); + }); + const firstButtonLabel = (0, vue.computed)(() => { + if (props.range) return props.rangeStartLabel || t("el.slider.defaultRangeStartLabel"); + else return groupLabel.value; + }); + const firstValueText = (0, vue.computed)(() => { + return props.formatValueText ? props.formatValueText(firstValue.value) : `${firstValue.value}`; + }); + const secondButtonLabel = (0, vue.computed)(() => { + return props.rangeEndLabel || t("el.slider.defaultRangeEndLabel"); + }); + const secondValueText = (0, vue.computed)(() => { + return props.formatValueText ? props.formatValueText(secondValue.value) : `${secondValue.value}`; + }); + const sliderKls = (0, vue.computed)(() => [ + ns.b(), + ns.m(sliderWrapperSize.value), + ns.is("vertical", props.vertical), + { [ns.m("with-input")]: renderInput.value } + ]); + const markList = useMarks(props); + useWatch(props, initData, minValue, maxValue, emit, elFormItem); + const sliderInputStep = (0, vue.computed)(() => { + return isNumber(props.step) ? props.step : 1; + }); + const precision = (0, vue.computed)(() => { + const stepValue = isNumber(props.step) ? props.step : 1; + const precisions = [ + props.min, + props.max, + stepValue + ].map((item) => { + const decimal = `${item}`.split(".")[1]; + return decimal ? decimal.length : 0; + }); + return Math.max.apply(null, precisions); + }); + const { sliderWrapper } = useLifecycle(props, initData, resetSize); + const { firstValue, secondValue, sliderSize } = (0, vue.toRefs)(initData); + const updateDragging = (val) => { + initData.dragging = val; + }; + useEventListener(sliderWrapper, "touchstart", onSliderWrapperPrevent, { passive: false }); + useEventListener(sliderWrapper, "touchmove", onSliderWrapperPrevent, { passive: false }); + (0, vue.provide)(sliderContextKey, { + ...(0, vue.toRefs)(props), + sliderSize, + disabled: sliderDisabled, + precision, + markList, + emitChange, + resetSize, + updateDragging + }); + __expose({ onSliderClick }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + id: _ctx.range ? (0, vue.unref)(inputId) : void 0, + ref_key: "sliderWrapper", + ref: sliderWrapper, + class: (0, vue.normalizeClass)(sliderKls.value), + role: _ctx.range ? "group" : void 0, + "aria-label": _ctx.range && !(0, vue.unref)(isLabeledByFormItem) ? groupLabel.value : void 0, + "aria-labelledby": _ctx.range && (0, vue.unref)(isLabeledByFormItem) ? (0, vue.unref)(elFormItem)?.labelId : void 0 + }, [(0, vue.createElementVNode)("div", { + ref_key: "slider", + ref: slider, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("runway"), + { "show-input": renderInput.value }, + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(sliderDisabled)) + ]), + style: (0, vue.normalizeStyle)((0, vue.unref)(runwayStyle)), + onMousedown: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(onSliderDown) && (0, vue.unref)(onSliderDown)(...args)), + onTouchstartPassive: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(onSliderDown) && (0, vue.unref)(onSliderDown)(...args)) + }, [ + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("bar")), + style: (0, vue.normalizeStyle)((0, vue.unref)(barStyle)) + }, null, 6), + (0, vue.createVNode)(button_default, { + id: !_ctx.range ? (0, vue.unref)(inputId) : void 0, + ref_key: "firstButton", + ref: firstButton, + "model-value": (0, vue.unref)(firstValue), + vertical: _ctx.vertical, + "tooltip-class": _ctx.tooltipClass, + placement: _ctx.placement, + role: "slider", + "aria-label": _ctx.range || !(0, vue.unref)(isLabeledByFormItem) ? firstButtonLabel.value : void 0, + "aria-labelledby": !_ctx.range && (0, vue.unref)(isLabeledByFormItem) ? (0, vue.unref)(elFormItem)?.labelId : void 0, + "aria-valuemin": _ctx.min, + "aria-valuemax": _ctx.range ? (0, vue.unref)(secondValue) : _ctx.max, + "aria-valuenow": (0, vue.unref)(firstValue), + "aria-valuetext": firstValueText.value, + "aria-orientation": _ctx.vertical ? "vertical" : "horizontal", + "aria-disabled": (0, vue.unref)(sliderDisabled), + "onUpdate:modelValue": (0, vue.unref)(setFirstValue) + }, 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" + ]), + _ctx.range ? ((0, vue.openBlock)(), (0, vue.createBlock)(button_default, { + key: 0, + ref_key: "secondButton", + ref: secondButton, + "model-value": (0, vue.unref)(secondValue), + vertical: _ctx.vertical, + "tooltip-class": _ctx.tooltipClass, + placement: _ctx.placement, + role: "slider", + "aria-label": secondButtonLabel.value, + "aria-valuemin": (0, vue.unref)(firstValue), + "aria-valuemax": _ctx.max, + "aria-valuenow": (0, vue.unref)(secondValue), + "aria-valuetext": secondValueText.value, + "aria-orientation": _ctx.vertical ? "vertical" : "horizontal", + "aria-disabled": (0, vue.unref)(sliderDisabled), + "onUpdate:modelValue": (0, vue.unref)(setSecondValue) + }, null, 8, [ + "model-value", + "vertical", + "tooltip-class", + "placement", + "aria-label", + "aria-valuemin", + "aria-valuemax", + "aria-valuenow", + "aria-valuetext", + "aria-orientation", + "aria-disabled", + "onUpdate:modelValue" + ])) : (0, vue.createCommentVNode)("v-if", true), + _ctx.showStops ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_2$12, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(stops), (item, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("stop")), + style: (0, vue.normalizeStyle)((0, vue.unref)(getStopStyle)(item)) + }, null, 6); + }), 128))])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(markList).length > 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [(0, vue.createElementVNode)("div", null, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(markList), (item, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key, + style: (0, vue.normalizeStyle)((0, vue.unref)(getStopStyle)(item.position)), + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("stop"), (0, vue.unref)(ns).e("marks-stop")]) + }, null, 6); + }), 128))]), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("marks")) }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(markList), (item, key) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(marker_default), { + key, + mark: item.mark, + style: (0, vue.normalizeStyle)((0, vue.unref)(getStopStyle)(item.position)), + onMousedown: (0, vue.withModifiers)(($event) => (0, vue.unref)(onSliderMarkerDown)(item.position), ["stop"]) + }, null, 8, [ + "mark", + "style", + "onMousedown" + ]); + }), 128))], 2)], 64)) : (0, vue.createCommentVNode)("v-if", true) + ], 38), renderInput.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElInputNumber), { + key: 0, + ref: "input", + "model-value": (0, vue.unref)(firstValue), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("input")), + step: sliderInputStep.value, + disabled: (0, vue.unref)(sliderDisabled), + controls: _ctx.showInputControls, + min: _ctx.min, + max: _ctx.max, + precision: precision.value, + size: sliderInputSize.value, + "onUpdate:modelValue": (0, vue.unref)(setFirstValue), + onChange: (0, vue.unref)(emitChange) + }, null, 8, [ + "model-value", + "class", + "step", + "disabled", + "controls", + "min", + "max", + "precision", + "size", + "onUpdate:modelValue", + "onChange" + ])) : (0, vue.createCommentVNode)("v-if", true)], 10, _hoisted_1$19); + }; + } + }); + +//#endregion +//#region ../../packages/components/slider/src/slider.vue + var slider_default = slider_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/slider/index.ts + const ElSlider = withInstall(slider_default); + +//#endregion +//#region ../../packages/components/space/src/item.ts + const spaceItemProps = buildProps({ prefixCls: { type: String } }); + const SpaceItem = (0, vue.defineComponent)({ + name: "ElSpaceItem", + props: spaceItemProps, + setup(props, { slots }) { + const ns = useNamespace("space"); + const classes = (0, vue.computed)(() => `${props.prefixCls || ns.b()}__item`); + return () => (0, vue.h)("div", { class: classes.value }, (0, vue.renderSlot)(slots, "default")); + } + }); + +//#endregion +//#region ../../packages/components/space/src/use-space.ts + const SIZE_MAP = { + small: 8, + default: 12, + large: 16 + }; + function useSpace(props) { + const ns = useNamespace("space"); + const classes = (0, vue.computed)(() => [ + ns.b(), + ns.m(props.direction), + props.class + ]); + const horizontalSize = (0, vue.ref)(0); + const verticalSize = (0, vue.ref)(0); + const containerStyle = (0, vue.computed)(() => { + return [ + props.wrap || props.fill ? { flexWrap: "wrap" } : {}, + { alignItems: props.alignment }, + { + rowGap: `${verticalSize.value}px`, + columnGap: `${horizontalSize.value}px` + }, + props.style + ]; + }); + const itemStyle = (0, vue.computed)(() => { + return props.fill ? { + flexGrow: 1, + minWidth: `${props.fillRatio}%` + } : {}; + }); + (0, vue.watchEffect)(() => { + const { size = "small", wrap, direction: dir, fill } = props; + if (isArray$1(size)) { + const [h = 0, v = 0] = size; + horizontalSize.value = h; + verticalSize.value = v; + } else { + let val; + if (isNumber(size)) val = size; + else val = SIZE_MAP[size || "small"] || SIZE_MAP.small; + if ((wrap || fill) && dir === "horizontal") horizontalSize.value = verticalSize.value = val; + else if (dir === "horizontal") { + horizontalSize.value = val; + verticalSize.value = 0; + } else { + verticalSize.value = val; + horizontalSize.value = 0; + } + } + }); + return { + classes, + containerStyle, + itemStyle + }; + } + +//#endregion +//#region ../../packages/components/space/src/space.ts + const spaceProps = buildProps({ + direction: { + type: String, + values: ["horizontal", "vertical"], + default: "horizontal" + }, + class: { + type: definePropType([ + String, + Object, + Array + ]), + default: "" + }, + style: { + type: definePropType([ + String, + Array, + Object + ]), + default: "" + }, + alignment: { + type: definePropType(String), + default: "center" + }, + prefixCls: { type: String }, + spacer: { + type: definePropType([ + Object, + String, + Number, + Array + ]), + default: null, + validator: (val) => (0, vue.isVNode)(val) || isNumber(val) || isString(val) + }, + wrap: Boolean, + fill: Boolean, + fillRatio: { + type: Number, + default: 100 + }, + size: { + type: [ + String, + Array, + Number + ], + values: componentSizes, + validator: (val) => { + return isNumber(val) || isArray$1(val) && val.length === 2 && val.every(isNumber); + } + } + }); + const Space = (0, vue.defineComponent)({ + name: "ElSpace", + props: spaceProps, + setup(props, { slots }) { + const { classes, containerStyle, itemStyle } = useSpace(props); + function extractChildren(children, parentKey = "", extractedChildren = []) { + const { prefixCls } = props; + children.forEach((child, loopKey) => { + if (isFragment(child)) { + if (isArray$1(child.children)) child.children.forEach((nested, key) => { + if (isFragment(nested) && isArray$1(nested.children)) extractChildren(nested.children, `${parentKey + key}-`, extractedChildren); + else if ((0, vue.isVNode)(nested) && nested?.type === vue.Comment) extractedChildren.push(nested); + else extractedChildren.push((0, vue.createVNode)(SpaceItem, { + style: itemStyle.value, + prefixCls, + key: `nested-${parentKey + key}` + }, { default: () => [nested] }, PatchFlags.PROPS | PatchFlags.STYLE, ["style", "prefixCls"])); + }); + } else if (isValidElementNode(child)) extractedChildren.push((0, vue.createVNode)(SpaceItem, { + style: itemStyle.value, + prefixCls, + key: `LoopKey${parentKey + loopKey}` + }, { default: () => [child] }, PatchFlags.PROPS | PatchFlags.STYLE, ["style", "prefixCls"])); + }); + return extractedChildren; + } + return () => { + const { spacer, direction } = props; + const children = (0, vue.renderSlot)(slots, "default", { key: 0 }, () => []); + if ((children.children ?? []).length === 0) return null; + if (isArray$1(children.children)) { + let extractedChildren = extractChildren(children.children); + if (spacer) { + const len = extractedChildren.length - 1; + extractedChildren = extractedChildren.reduce((acc, child, idx) => { + const children = [...acc, child]; + if (idx !== len) children.push((0, vue.createVNode)("span", { + style: [itemStyle.value, direction === "vertical" ? "width: 100%" : null], + key: idx + }, [(0, vue.isVNode)(spacer) ? spacer : (0, vue.createTextVNode)(spacer, PatchFlags.TEXT)], PatchFlags.STYLE)); + return children; + }, []); + } + return (0, vue.createVNode)("div", { + class: classes.value, + style: containerStyle.value + }, extractedChildren, PatchFlags.STYLE | PatchFlags.CLASS); + } + return children.children; + }; + } + }); + +//#endregion +//#region ../../packages/components/space/index.ts + const ElSpace = withInstall(Space); + +//#endregion +//#region ../../packages/components/statistic/src/statistic.ts +/** + * @deprecated Removed after 3.0.0, Use `StatisticProps` instead. + */ + const statisticProps = buildProps({ + decimalSeparator: { + type: String, + default: "." + }, + groupSeparator: { + type: String, + default: "," + }, + precision: { + type: Number, + default: 0 + }, + formatter: Function, + value: { + type: definePropType([Number, Object]), + default: 0 + }, + prefix: String, + suffix: String, + title: String, + valueStyle: { type: definePropType([ + String, + Object, + Array + ]) } + }); + +//#endregion +//#region ../../packages/components/statistic/src/statistic.vue?vue&type=script&setup=true&lang.ts + var statistic_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElStatistic", + __name: "statistic", + props: statisticProps, + setup(__props, { expose: __expose }) { + const props = __props; + const ns = useNamespace("statistic"); + const displayValue = (0, vue.computed)(() => { + const { value, formatter, precision, decimalSeparator, groupSeparator } = props; + if (isFunction$1(formatter)) return formatter(value); + if (!isNumber(value) || Number.isNaN(value)) return value; + let [integer, decimal = ""] = String(value).split("."); + decimal = decimal.padEnd(precision, "0").slice(0, precision > 0 ? precision : 0); + integer = integer.replace(/\B(?=(\d{3})+(?!\d))/g, groupSeparator); + return [integer, decimal].join(decimal ? decimalSeparator : ""); + }); + __expose({ displayValue }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [_ctx.$slots.title || __props.title ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("head")) + }, [(0, vue.renderSlot)(_ctx.$slots, "title", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) }, [ + _ctx.$slots.prefix || __props.prefix ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("prefix")) + }, [(0, vue.renderSlot)(_ctx.$slots, "prefix", {}, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(__props.prefix), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("number")), + style: (0, vue.normalizeStyle)(__props.valueStyle) + }, (0, vue.toDisplayString)(displayValue.value), 7), + _ctx.$slots.suffix || __props.suffix ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("suffix")) + }, [(0, vue.renderSlot)(_ctx.$slots, "suffix", {}, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(__props.suffix), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/statistic/src/statistic.vue + var statistic_default = statistic_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/statistic/index.ts + const ElStatistic = withInstall(statistic_default); + +//#endregion +//#region ../../packages/components/countdown/src/countdown.ts +/** + * @deprecated Removed after 3.0.0, Use `CountdownProps` instead. + */ + const countdownProps = buildProps({ + format: { + type: String, + default: "HH:mm:ss" + }, + prefix: String, + suffix: String, + title: String, + value: { + type: definePropType([Number, Object]), + default: 0 + }, + valueStyle: { type: definePropType([ + String, + Object, + Array + ]) } + }); + const countdownEmits = { + finish: () => true, + [CHANGE_EVENT]: (value) => isNumber(value) + }; + +//#endregion +//#region ../../packages/components/countdown/src/utils.ts + const timeUnits$1 = [ + ["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] + ]; + const getTime = (value) => { + return isNumber(value) ? new Date(value).getTime() : value.valueOf(); + }; + const formatTime$1 = (timestamp, format) => { + let timeLeft = timestamp; + return timeUnits$1.reduce((current, [name, unit]) => { + const replaceRegex = new RegExp(`${name}+(?![^\\[\\]]*\\])`, "g"); + if (replaceRegex.test(current)) { + const value = Math.floor(timeLeft / unit); + timeLeft -= value * unit; + return current.replace(replaceRegex, (match) => String(value).padStart(match.length, "0")); + } + return current; + }, format).replace(/\[([^\]]*)]/g, "$1"); + }; + +//#endregion +//#region ../../packages/components/countdown/src/countdown.vue?vue&type=script&setup=true&lang.ts + var countdown_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCountdown", + __name: "countdown", + props: countdownProps, + emits: countdownEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + let timer; + const rawValue = (0, vue.ref)(0); + const displayValue = (0, vue.computed)(() => formatTime$1(rawValue.value, props.format)); + const formatter = (val) => formatTime$1(val, props.format); + const stopTimer = () => { + if (timer) { + cAF(timer); + timer = void 0; + } + }; + const startTimer = () => { + const timestamp = getTime(props.value); + const frameFunc = () => { + let diff = timestamp - Date.now(); + emit(CHANGE_EVENT, diff); + if (diff <= 0) { + diff = 0; + stopTimer(); + emit("finish"); + } else timer = rAF(frameFunc); + rawValue.value = diff; + }; + timer = rAF(frameFunc); + }; + (0, vue.onMounted)(() => { + rawValue.value = getTime(props.value) - Date.now(); + (0, vue.watch)(() => [props.value, props.format], () => { + stopTimer(); + startTimer(); + }, { immediate: true }); + }); + (0, vue.onBeforeUnmount)(() => { + stopTimer(); + }); + __expose({ displayValue }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElStatistic), { + value: rawValue.value, + title: __props.title, + prefix: __props.prefix, + suffix: __props.suffix, + "value-style": __props.valueStyle, + formatter + }, (0, vue.createSlots)({ _: 2 }, [(0, vue.renderList)(_ctx.$slots, (_, name) => { + return { + name, + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, name)]) + }; + })]), 1032, [ + "value", + "title", + "prefix", + "suffix", + "value-style" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/countdown/src/countdown.vue + var countdown_default = countdown_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/countdown/index.ts + const ElCountdown = withInstall(countdown_default); + +//#endregion +//#region ../../packages/components/steps/src/steps.ts +/** + * @deprecated Removed after 3.0.0, Use `StepsProps` instead. + */ + const stepsProps = buildProps({ + 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" + } + }); + const stepsEmits = { [CHANGE_EVENT]: (newVal, oldVal) => [newVal, oldVal].every(isNumber) }; + +//#endregion +//#region ../../packages/components/steps/src/tokens.ts + const STEPS_INJECTION_KEY = "ElSteps"; + +//#endregion +//#region ../../packages/components/steps/src/steps.vue?vue&type=script&setup=true&lang.ts + var steps_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSteps", + __name: "steps", + props: stepsProps, + emits: stepsEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("steps"); + const { children: steps, addChild: addStep, removeChild: removeStep, ChildrenSorter: StepsSorter } = useOrderedChildren((0, vue.getCurrentInstance)(), "ElStep"); + (0, vue.watch)(steps, () => { + steps.value.forEach((instance, index) => { + instance.setIndex(index); + }); + }); + (0, vue.provide)(STEPS_INJECTION_KEY, { + props, + steps, + addStep, + removeStep + }); + (0, vue.watch)(() => props.active, (newVal, oldVal) => { + emit(CHANGE_EVENT, newVal, oldVal); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), (0, vue.unref)(ns).m(__props.simple ? "simple" : __props.direction)]) }, [(0, vue.renderSlot)(_ctx.$slots, "default"), (0, vue.createVNode)((0, vue.unref)(StepsSorter))], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/steps/src/steps.vue + var steps_default$1 = steps_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/steps/src/item.ts +/** + * @deprecated Removed after 3.0.0, Use `StepProps` instead. + */ + const stepProps = buildProps({ + title: { + type: String, + default: "" + }, + icon: { type: iconPropType }, + description: { + type: String, + default: "" + }, + status: { + type: String, + values: [ + "", + "wait", + "process", + "finish", + "error", + "success" + ], + default: "" + } + }); + +//#endregion +//#region ../../packages/components/steps/src/item.vue?vue&type=script&setup=true&lang.ts + var item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElStep", + __name: "item", + props: stepProps, + setup(__props) { + const props = __props; + const ns = useNamespace("step"); + const index = (0, vue.ref)(-1); + const lineStyle = (0, vue.ref)({}); + const internalStatus = (0, vue.ref)(""); + const parent = (0, vue.inject)(STEPS_INJECTION_KEY); + const currentInstance = (0, vue.getCurrentInstance)(); + let stepDiff = 0; + let beforeActive = 0; + (0, vue.onMounted)(() => { + (0, vue.watch)([ + () => parent.props.active, + () => parent.props.processStatus, + () => parent.props.finishStatus + ], ([active], [oldActive]) => { + beforeActive = oldActive || 0; + stepDiff = active - beforeActive; + updateStatus(active); + }, { immediate: true }); + }); + const currentStatus = (0, vue.computed)(() => { + return props.status || internalStatus.value; + }); + const prevInternalStatus = (0, vue.computed)(() => { + const prevStep = parent.steps.value[index.value - 1]; + return prevStep ? prevStep.internalStatus.value : "wait"; + }); + const isCenter = (0, vue.computed)(() => { + return parent.props.alignCenter; + }); + const isVertical = (0, vue.computed)(() => { + return parent.props.direction === "vertical"; + }); + const isSimple = (0, vue.computed)(() => { + return parent.props.simple; + }); + const stepsCount = (0, vue.computed)(() => { + return parent.steps.value.length; + }); + const isLast = (0, vue.computed)(() => { + return parent.steps.value[stepsCount.value - 1]?.uid === currentInstance.uid; + }); + const space = (0, vue.computed)(() => { + return isSimple.value ? "" : parent.props.space; + }); + const containerKls = (0, vue.computed)(() => { + return [ + ns.b(), + ns.is(isSimple.value ? "simple" : parent.props.direction), + ns.is("flex", isLast.value && !space.value && !isCenter.value), + ns.is("center", isCenter.value && !isVertical.value && !isSimple.value) + ]; + }); + const style = (0, vue.computed)(() => { + const style = { flexBasis: isNumber(space.value) ? `${space.value}px` : space.value ? space.value : `${100 / (stepsCount.value - (isCenter.value ? 0 : 1))}%` }; + if (isVertical.value) return style; + if (isLast.value) style.maxWidth = `${100 / stepsCount.value}%`; + return style; + }); + const setIndex = (val) => { + index.value = val; + }; + const calcProgress = (status) => { + const isWait = status === "wait"; + const style = { transitionDelay: `${Math.abs(stepDiff) === 1 ? 0 : stepDiff > 0 ? (index.value + 1 - beforeActive) * 150 : -(index.value + 1 - parent.props.active) * 150}ms` }; + const step = status === parent.props.processStatus || isWait ? 0 : 100; + style.borderWidth = step && !isSimple.value ? "1px" : 0; + style[parent.props.direction === "vertical" ? "height" : "width"] = `${step}%`; + lineStyle.value = style; + }; + const updateStatus = (activeIndex) => { + if (activeIndex > index.value) internalStatus.value = parent.props.finishStatus; + else if (activeIndex === index.value && prevInternalStatus.value !== "error") internalStatus.value = parent.props.processStatus; + else internalStatus.value = "wait"; + const prevChild = parent.steps.value[index.value - 1]; + if (prevChild) prevChild.calcProgress(internalStatus.value); + }; + const stepItemState = { + uid: currentInstance.uid, + getVnode: () => currentInstance.vnode, + currentStatus, + internalStatus, + setIndex, + calcProgress + }; + parent.addStep(stepItemState); + (0, vue.onBeforeUnmount)(() => { + parent.removeStep(stepItemState); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + style: (0, vue.normalizeStyle)(style.value), + class: (0, vue.normalizeClass)(containerKls.value) + }, [ + (0, vue.createCommentVNode)(" icon & line "), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("head"), (0, vue.unref)(ns).is(currentStatus.value)]) }, [!isSimple.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("line")) + }, [(0, vue.createElementVNode)("i", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("line-inner")), + style: (0, vue.normalizeStyle)(lineStyle.value) + }, null, 6)], 2)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon"), (0, vue.unref)(ns).is(__props.icon || _ctx.$slots.icon ? "icon" : "text")]) }, [(0, vue.renderSlot)(_ctx.$slots, "icon", {}, () => [__props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon-inner")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + }, 8, ["class"])) : currentStatus.value === "success" ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon-inner"), (0, vue.unref)(ns).is("status")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(check_default))]), + _: 1 + }, 8, ["class"])) : currentStatus.value === "error" ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 2, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon-inner"), (0, vue.unref)(ns).is("status")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + }, 8, ["class"])) : !isSimple.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 3, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon-inner")) + }, (0, vue.toDisplayString)(index.value + 1), 3)) : (0, vue.createCommentVNode)("v-if", true)])], 2)], 2), + (0, vue.createCommentVNode)(" title & description "), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("main")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("title"), (0, vue.unref)(ns).is(currentStatus.value)]) }, [(0, vue.renderSlot)(_ctx.$slots, "title", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 2), isSimple.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("arrow")) + }, null, 2)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("description"), (0, vue.unref)(ns).is(currentStatus.value)]) + }, [(0, vue.renderSlot)(_ctx.$slots, "description", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.description), 1)])], 2))], 2) + ], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/steps/src/item.vue + var item_default = item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/steps/index.ts + const ElSteps = withInstall(steps_default$1, { Step: item_default }); + const ElStep = withNoopInstall(item_default); + +//#endregion +//#region ../../packages/components/switch/src/switch.ts +/** + * @deprecated Removed after 3.0.0, Use `SwitchProps` instead. + */ + const switchProps = buildProps({ + modelValue: { + type: [ + Boolean, + String, + Number + ], + default: false + }, + disabled: { + type: Boolean, + default: void 0 + }, + loading: Boolean, + size: { + type: String, + validator: isValidComponentSize + }, + width: { + type: [String, Number], + default: "" + }, + inlinePrompt: Boolean, + inactiveActionIcon: { type: iconPropType }, + activeActionIcon: { type: iconPropType }, + activeIcon: { type: iconPropType }, + inactiveIcon: { type: iconPropType }, + activeText: { + type: String, + default: "" + }, + inactiveText: { + type: String, + default: "" + }, + activeValue: { + type: [ + Boolean, + String, + Number + ], + default: true + }, + inactiveValue: { + type: [ + Boolean, + String, + Number + ], + default: false + }, + name: { + type: String, + default: "" + }, + validateEvent: { + type: Boolean, + default: true + }, + beforeChange: { type: definePropType(Function) }, + id: String, + tabindex: { type: [String, Number] }, + ...useAriaProps(["ariaLabel"]) + }); + const switchEmits = { + [UPDATE_MODEL_EVENT]: (val) => isBoolean(val) || isString(val) || isNumber(val), + [CHANGE_EVENT]: (val) => isBoolean(val) || isString(val) || isNumber(val), + [INPUT_EVENT]: (val) => isBoolean(val) || isString(val) || isNumber(val) + }; + +//#endregion +//#region ../../packages/components/switch/src/switch.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$18 = [ + "id", + "aria-checked", + "aria-disabled", + "aria-label", + "name", + "true-value", + "false-value", + "disabled", + "tabindex" + ]; + const _hoisted_2$11 = ["aria-hidden"]; + const _hoisted_3$4 = { key: 1 }; + const _hoisted_4$3 = { key: 1 }; + const _hoisted_5$1 = ["aria-hidden"]; + const COMPONENT_NAME$6 = "ElSwitch"; + var switch_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$6, + __name: "switch", + props: switchProps, + emits: switchEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const { formItem } = useFormItem(); + const switchSize = useFormSize(); + const ns = useNamespace("switch"); + const { inputId } = useFormItemInputId(props, { formItemContext: formItem }); + const switchDisabled = useFormDisabled((0, vue.computed)(() => { + if (props.loading) return true; + })); + const isControlled = (0, vue.ref)(props.modelValue !== false); + const input = (0, vue.shallowRef)(); + const switchKls = (0, vue.computed)(() => [ + ns.b(), + ns.m(switchSize.value), + ns.is("disabled", switchDisabled.value), + ns.is("checked", checked.value) + ]); + const labelLeftKls = (0, vue.computed)(() => [ + ns.e("label"), + ns.em("label", "left"), + ns.is("active", !checked.value) + ]); + const labelRightKls = (0, vue.computed)(() => [ + ns.e("label"), + ns.em("label", "right"), + ns.is("active", checked.value) + ]); + const coreStyle = (0, vue.computed)(() => ({ width: addUnit(props.width) })); + (0, vue.watch)(() => props.modelValue, () => { + isControlled.value = true; + }); + const actualValue = (0, vue.computed)(() => { + return isControlled.value ? props.modelValue : false; + }); + const checked = (0, vue.computed)(() => actualValue.value === props.activeValue); + if (![props.activeValue, props.inactiveValue].includes(actualValue.value)) { + emit(UPDATE_MODEL_EVENT, props.inactiveValue); + emit(CHANGE_EVENT, props.inactiveValue); + emit(INPUT_EVENT, props.inactiveValue); + } + (0, vue.watch)(checked, (val) => { + input.value.checked = val; + if (props.validateEvent) formItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + const handleChange = () => { + const val = checked.value ? props.inactiveValue : props.activeValue; + emit(UPDATE_MODEL_EVENT, val); + emit(CHANGE_EVENT, val); + emit(INPUT_EVENT, val); + (0, vue.nextTick)(() => { + input.value.checked = checked.value; + }); + }; + const switchValue = () => { + if (switchDisabled.value) return; + const { beforeChange } = props; + if (!beforeChange) { + handleChange(); + return; + } + const shouldChange = beforeChange(); + if (![isPromise(shouldChange), isBoolean(shouldChange)].includes(true)) throwError(COMPONENT_NAME$6, "beforeChange must return type `Promise` or `boolean`"); + if (isPromise(shouldChange)) shouldChange.then((result) => { + if (result) handleChange(); + }).catch((e) => { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$6, `some error occurred: ${e}`); + }); + else if (shouldChange) handleChange(); + }; + const focus = () => { + input.value?.focus?.(); + }; + (0, vue.onMounted)(() => { + input.value.checked = checked.value; + }); + __expose({ + focus, + checked + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)(switchKls.value), + onClick: (0, vue.withModifiers)(switchValue, ["prevent"]) + }, [ + (0, vue.createElementVNode)("input", { + id: (0, vue.unref)(inputId), + ref_key: "input", + ref: input, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("input")), + type: "checkbox", + role: "switch", + "aria-checked": checked.value, + "aria-disabled": (0, vue.unref)(switchDisabled), + "aria-label": __props.ariaLabel, + name: __props.name, + "true-value": __props.activeValue, + "false-value": __props.inactiveValue, + disabled: (0, vue.unref)(switchDisabled), + tabindex: __props.tabindex, + onChange: handleChange, + onKeydown: (0, vue.withKeys)(switchValue, ["enter"]) + }, null, 42, _hoisted_1$18), + !__props.inlinePrompt && (__props.inactiveIcon || __props.inactiveText || _ctx.$slots.inactive) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)(labelLeftKls.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "inactive", {}, () => [__props.inactiveIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.inactiveIcon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), !__props.inactiveIcon && __props.inactiveText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + "aria-hidden": checked.value + }, (0, vue.toDisplayString)(__props.inactiveText), 9, _hoisted_2$11)) : (0, vue.createCommentVNode)("v-if", true)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("core")), + style: (0, vue.normalizeStyle)(coreStyle.value) + }, [__props.inlinePrompt ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("inner")) + }, [!checked.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("inner-wrapper")) + }, [(0, vue.renderSlot)(_ctx.$slots, "inactive", {}, () => [__props.inactiveIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.inactiveIcon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), !__props.inactiveIcon && __props.inactiveText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$4, (0, vue.toDisplayString)(__props.inactiveText), 1)) : (0, vue.createCommentVNode)("v-if", true)])], 2)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("inner-wrapper")) + }, [(0, vue.renderSlot)(_ctx.$slots, "active", {}, () => [__props.activeIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.activeIcon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), !__props.activeIcon && __props.activeText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_4$3, (0, vue.toDisplayString)(__props.activeText), 1)) : (0, vue.createCommentVNode)("v-if", true)])], 2))], 2)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("action")) }, [__props.loading ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).is("loading")) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(loading_default))]), + _: 1 + }, 8, ["class"])) : checked.value ? (0, vue.renderSlot)(_ctx.$slots, "active-action", { key: 1 }, () => [__props.activeActionIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.activeActionIcon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true)]) : !checked.value ? (0, vue.renderSlot)(_ctx.$slots, "inactive-action", { key: 2 }, () => [__props.inactiveActionIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.inactiveActionIcon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true)]) : (0, vue.createCommentVNode)("v-if", true)], 2)], 6), + !__props.inlinePrompt && (__props.activeIcon || __props.activeText || _ctx.$slots.active) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + class: (0, vue.normalizeClass)(labelRightKls.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "active", {}, () => [__props.activeIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.activeIcon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), !__props.activeIcon && __props.activeText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + "aria-hidden": !checked.value + }, (0, vue.toDisplayString)(__props.activeText), 9, _hoisted_5$1)) : (0, vue.createCommentVNode)("v-if", true)])], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/switch/src/switch.vue + var switch_default = switch_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/switch/index.ts + const ElSwitch = withInstall(switch_default); + +//#endregion +//#region ../../packages/components/table/src/util.ts + const getCell = function(event) { + return event.target?.closest("td"); + }; + const orderBy = function(array, sortKey, reverse, sortMethod, sortBy) { + if (!sortKey && !sortMethod && (!sortBy || isArray$1(sortBy) && !sortBy.length)) return array; + if (isString(reverse)) reverse = reverse === "descending" ? -1 : 1; + else reverse = reverse && reverse < 0 ? -1 : 1; + const getKey = sortMethod ? null : function(value, index) { + if (sortBy) return flatMap(castArray$1(sortBy), (by) => { + if (isString(by)) return get(value, by); + else return by(value, index, array); + }); + if (sortKey !== "$key") { + if (isObject$1(value) && "$value" in value) value = value.$value; + } + return [isObject$1(value) ? sortKey ? get(value, sortKey) : null : value]; + }; + const compare = function(a, b) { + if (sortMethod) return sortMethod(a.value, b.value); + for (let i = 0, len = a.key?.length ?? 0; i < len; i++) { + if (a.key?.[i] < b.key?.[i]) return -1; + if (a.key?.[i] > b.key?.[i]) return 1; + } + return 0; + }; + return array.map((value, index) => { + return { + value, + index, + key: getKey ? getKey(value, index) : null + }; + }).sort((a, b) => { + let order = compare(a, b); + if (!order) order = a.index - b.index; + return order * +reverse; + }).map((item) => item.value); + }; + const getColumnById = function(table, columnId) { + let column = null; + table.columns.forEach((item) => { + if (item.id === columnId) column = item; + }); + return column; + }; + const getColumnByKey = function(table, columnKey) { + let column = null; + for (let i = 0; i < table.columns.length; i++) { + const item = table.columns[i]; + if (item.columnKey === columnKey) { + column = item; + break; + } + } + if (!column) throwError("ElTable", `No column matching with column-key: ${columnKey}`); + return column; + }; + const getColumnByCell = function(table, cell, namespace) { + const matches = (cell.className || "").match(new RegExp(`${namespace}-table_[^\\s]+`, "gm")); + if (matches) return getColumnById(table, matches[0]); + return null; + }; + const getRowIdentity = (row, rowKey) => { + if (!row) throw new Error("Row is required when get row identity"); + if (isString(rowKey)) { + if (!rowKey.includes(".")) return `${row[rowKey]}`; + const key = rowKey.split("."); + let current = row; + for (const element of key) current = current[element]; + return `${current}`; + } else if (isFunction$1(rowKey)) return rowKey.call(null, row); + return ""; + }; + const getKeysMap = function(array, rowKey, flatten = false, childrenKey = "children") { + const data = array || []; + const arrayMap = {}; + data.forEach((row, index) => { + arrayMap[getRowIdentity(row, rowKey)] = { + row, + index + }; + if (flatten) { + const children = row[childrenKey]; + if (isArray$1(children)) Object.assign(arrayMap, getKeysMap(children, rowKey, true, childrenKey)); + } + }); + return arrayMap; + }; + function mergeOptions(defaults, config) { + const options = {}; + let key; + for (key in defaults) options[key] = defaults[key]; + for (key in config) if (hasOwn(config, key)) { + const value = config[key]; + if (!isUndefined(value)) options[key] = value; + } + return options; + } + function parseWidth(width) { + if (width === "") return width; + if (!isUndefined(width)) { + width = Number.parseInt(width, 10); + if (Number.isNaN(width)) width = ""; + } + return width; + } + function parseMinWidth(minWidth) { + if (minWidth === "") return minWidth; + if (!isUndefined(minWidth)) { + minWidth = parseWidth(minWidth); + if (Number.isNaN(minWidth)) minWidth = 80; + } + return minWidth; + } + function parseHeight(height) { + if (isNumber(height)) return height; + if (isString(height)) if (/^\d+(?:px)?$/.test(height)) return Number.parseInt(height, 10); + else return height; + return null; + } + function compose(...funcs) { + if (funcs.length === 0) return (arg) => arg; + if (funcs.length === 1) return funcs[0]; + return funcs.reduce((a, b) => (...args) => a(b(...args))); + } + function toggleRowStatus(statusArr, row, newVal, tableTreeProps, selectable, rowIndex, rowKey) { + let _rowIndex = rowIndex ?? 0; + let changed = false; + const getIndex = () => { + if (!rowKey) return statusArr.indexOf(row); + const id = getRowIdentity(row, rowKey); + return statusArr.findIndex((item) => getRowIdentity(item, rowKey) === id); + }; + const index = getIndex(); + const included = index !== -1; + const isRowSelectable = selectable?.call(null, row, _rowIndex); + const toggleStatus = (type) => { + if (type === "add") statusArr.push(row); + else statusArr.splice(index, 1); + changed = true; + }; + const getChildrenCount = (row) => { + let count = 0; + const children = tableTreeProps?.children && row[tableTreeProps.children]; + if (children && isArray$1(children)) { + count += children.length; + children.forEach((item) => { + count += getChildrenCount(item); + }); + } + return count; + }; + if (!selectable || isRowSelectable) if (isBoolean(newVal)) { + if (newVal && !included) toggleStatus("add"); + else if (!newVal && included) toggleStatus("remove"); + } else included ? toggleStatus("remove") : toggleStatus("add"); + if (!tableTreeProps?.checkStrictly && tableTreeProps?.children && isArray$1(row[tableTreeProps.children])) row[tableTreeProps.children].forEach((item) => { + const childChanged = toggleRowStatus(statusArr, item, newVal ?? !included, tableTreeProps, selectable, _rowIndex + 1, rowKey); + _rowIndex += getChildrenCount(item) + 1; + if (childChanged) changed = childChanged; + }); + return changed; + } + function walkTreeNode(root, cb, childrenKey = "children", lazyKey = "hasChildren", lazy = false) { + const isNil = (array) => !(isArray$1(array) && array.length); + function _walker(parent, children, level) { + cb(parent, children, level); + children.forEach((item) => { + if (item[lazyKey] && lazy) { + cb(item, null, level + 1); + return; + } + const children = item[childrenKey]; + if (!isNil(children)) _walker(item, children, level + 1); + }); + } + root.forEach((item) => { + if (item[lazyKey] && lazy) { + cb(item, null, 0); + return; + } + const children = item[childrenKey]; + if (!isNil(children)) _walker(item, children, 0); + }); + } + const getTableOverflowTooltipProps = (props, innerText, row, column) => { + const popperOptions = { + strategy: "fixed", + ...props.popperOptions + }; + const tooltipFormatterContent = isFunction$1(column?.tooltipFormatter) ? column.tooltipFormatter({ + row, + column, + cellValue: getProp(row, column.property).value + }) : void 0; + if ((0, vue.isVNode)(tooltipFormatterContent)) return { + slotContent: tooltipFormatterContent, + content: null, + ...props, + popperOptions + }; + return { + slotContent: null, + content: tooltipFormatterContent ?? innerText, + ...props, + popperOptions + }; + }; + let removePopper = null; + function createTablePopper(props, popperContent, row, column, trigger, table) { + const tableOverflowTooltipProps = getTableOverflowTooltipProps(props, popperContent, row, column); + const mergedProps = { + ...tableOverflowTooltipProps, + slotContent: void 0 + }; + if (removePopper?.trigger === trigger) { + const comp = removePopper.vm?.component; + merge(comp?.props, mergedProps); + if (comp && tableOverflowTooltipProps.slotContent) comp.slots.content = () => [tableOverflowTooltipProps.slotContent]; + return; + } + removePopper?.(); + const parentNode = table?.refs.tableWrapper; + const ns = parentNode?.dataset.prefix; + const vm = (0, vue.createVNode)(ElTooltip, { + virtualTriggering: true, + virtualRef: trigger, + appendTo: parentNode, + placement: "top", + transition: "none", + offset: 0, + hideAfter: 0, + ...mergedProps + }, tableOverflowTooltipProps.slotContent ? { content: () => tableOverflowTooltipProps.slotContent } : void 0); + vm.appContext = { + ...table.appContext, + ...table + }; + const container = document.createElement("div"); + (0, vue.render)(vm, container); + vm.component.exposed.onOpen(); + const scrollContainer = parentNode?.querySelector(`.${ns}-scrollbar__wrap`); + removePopper = () => { + if (vm.component?.exposed?.onClose) vm.component.exposed.onClose(); + (0, vue.render)(null, container); + const currentRemovePopper = removePopper; + scrollContainer?.removeEventListener("scroll", currentRemovePopper); + currentRemovePopper.trigger = void 0; + currentRemovePopper.vm = void 0; + removePopper = null; + }; + removePopper.trigger = trigger ?? void 0; + removePopper.vm = vm; + scrollContainer?.addEventListener("scroll", removePopper); + } + function getCurrentColumns(column) { + if (column.children) return flatMap(column.children, getCurrentColumns); + else return [column]; + } + function getColSpan(colSpan, column) { + return colSpan + column.colSpan; + } + const isFixedColumn = (index, fixed, store, realColumns) => { + let start = 0; + let after = index; + const columns = store.states.columns.value; + if (realColumns) { + const curColumns = getCurrentColumns(realColumns[index]); + start = columns.slice(0, columns.indexOf(curColumns[0])).reduce(getColSpan, 0); + after = start + curColumns.reduce(getColSpan, 0) - 1; + } else start = index; + let fixedLayout; + switch (fixed) { + case "left": + if (after < store.states.fixedLeafColumnsLength.value) fixedLayout = "left"; + break; + case "right": + if (start >= columns.length - store.states.rightFixedLeafColumnsLength.value) fixedLayout = "right"; + break; + default: if (after < store.states.fixedLeafColumnsLength.value) fixedLayout = "left"; + else if (start >= columns.length - store.states.rightFixedLeafColumnsLength.value) fixedLayout = "right"; + } + return fixedLayout ? { + direction: fixedLayout, + start, + after + } : {}; + }; + const getFixedColumnsClass = (namespace, index, fixed, store, realColumns, offset = 0) => { + const classes = []; + const { direction, start, after } = isFixedColumn(index, fixed, store, realColumns); + if (direction) { + const isLeft = direction === "left"; + classes.push(`${namespace}-fixed-column--${direction}`); + if (isLeft && after + offset === store.states.fixedLeafColumnsLength.value - 1) classes.push("is-last-column"); + else if (!isLeft && start - offset === store.states.columns.value.length - store.states.rightFixedLeafColumnsLength.value) classes.push("is-first-column"); + } + return classes; + }; + function getOffset(offset, column) { + return offset + (isNull(column.realWidth) || Number.isNaN(column.realWidth) ? Number(column.width) : column.realWidth); + } + const getFixedColumnOffset = (index, fixed, store, realColumns) => { + const { direction, start = 0, after = 0 } = isFixedColumn(index, fixed, store, realColumns); + if (!direction) return; + const styles = {}; + const isLeft = direction === "left"; + const columns = store.states.columns.value; + if (isLeft) styles.left = columns.slice(0, start).reduce(getOffset, 0); + else styles.right = columns.slice(after + 1).reverse().reduce(getOffset, 0); + return styles; + }; + const ensurePosition = (style, key) => { + if (!style) return; + if (!Number.isNaN(style[key])) style[key] = `${style[key]}px`; + }; + function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!(0, vue.isVNode)(child)) return true; + if (child.type === vue.Comment) return false; + if (child.type === vue.Fragment && !ensureValidVNode(child.children)) return false; + return true; + }) ? vnodes : null; + } + +//#endregion +//#region ../../packages/components/table/src/store/expand.ts + function useExpand(watcherData) { + const instance = (0, vue.getCurrentInstance)(); + const defaultExpandAll = (0, vue.ref)(false); + const expandRows = (0, vue.ref)([]); + const canRowExpand = (row, index) => { + const expandableFn = instance.store.states.rowExpandable.value; + return expandableFn?.(row, index) ?? true; + }; + const updateExpandRows = () => { + const data = watcherData.data.value || []; + const rowKey = watcherData.rowKey.value; + if (defaultExpandAll.value) expandRows.value = instance.store.states.rowExpandable.value ? data.filter(canRowExpand) : data.slice(); + else if (rowKey) { + const expandRowsMap = getKeysMap(expandRows.value, rowKey); + expandRows.value = data.filter((row, index) => { + return !!expandRowsMap[getRowIdentity(row, rowKey)] && canRowExpand(row, index); + }); + } else expandRows.value = []; + }; + const toggleRowExpansion = (row, expanded) => { + const rowIndex = (watcherData.data.value || []).indexOf(row); + if (rowIndex > -1 && !canRowExpand(row, rowIndex)) return; + if (toggleRowStatus(expandRows.value, row, expanded, void 0, void 0, void 0, watcherData.rowKey.value)) instance.emit("expand-change", row, expandRows.value.slice()); + }; + const setExpandRowKeys = (rowKeys) => { + instance.store.assertRowKey(); + const data = watcherData.data.value || []; + const rowKey = watcherData.rowKey.value; + const keysMap = getKeysMap(data, rowKey); + expandRows.value = rowKeys.reduce((prev, cur) => { + const info = keysMap[cur]; + if (info && canRowExpand(info.row, info.index)) prev.push(info.row); + return prev; + }, []); + }; + const isRowExpanded = (row) => { + const rowKey = watcherData.rowKey.value; + if (rowKey) return !!getKeysMap(expandRows.value, rowKey)[getRowIdentity(row, rowKey)]; + return expandRows.value.includes(row); + }; + return { + updateExpandRows, + toggleRowExpansion, + setExpandRowKeys, + isRowExpanded, + states: { + expandRows, + defaultExpandAll + } + }; + } + +//#endregion +//#region ../../packages/components/table/src/store/current.ts + function useCurrent(watcherData) { + const instance = (0, vue.getCurrentInstance)(); + const _currentRowKey = (0, vue.ref)(null); + const currentRow = (0, vue.ref)(null); + const setCurrentRowKey = (key) => { + instance.store.assertRowKey(); + _currentRowKey.value = key; + setCurrentRowByKey(key); + }; + const restoreCurrentRowKey = () => { + _currentRowKey.value = null; + }; + const setCurrentRowByKey = (key) => { + const { data, rowKey } = watcherData; + const oldCurrentRow = currentRow.value; + let _currentRow = null; + if (rowKey.value) _currentRow = ((0, vue.unref)(data) || []).find((item) => getRowIdentity(item, rowKey.value) === key) ?? null; + currentRow.value = _currentRow ?? null; + instance.emit("current-change", currentRow.value, oldCurrentRow); + }; + const updateCurrentRow = (_currentRow) => { + const oldCurrentRow = currentRow.value; + if (_currentRow && _currentRow !== oldCurrentRow) { + currentRow.value = _currentRow; + instance.emit("current-change", currentRow.value, oldCurrentRow); + return; + } + if (!_currentRow && oldCurrentRow) { + currentRow.value = null; + instance.emit("current-change", null, oldCurrentRow); + } + }; + const updateCurrentRowData = () => { + const rowKey = watcherData.rowKey.value; + const data = watcherData.data.value || []; + const oldCurrentRow = currentRow.value; + if (oldCurrentRow && !data.includes(oldCurrentRow)) if (rowKey) setCurrentRowByKey(getRowIdentity(oldCurrentRow, rowKey)); + else { + currentRow.value = null; + instance.emit("current-change", null, oldCurrentRow); + } + else if (_currentRowKey.value) { + setCurrentRowByKey(_currentRowKey.value); + restoreCurrentRowKey(); + } + }; + return { + setCurrentRowKey, + restoreCurrentRowKey, + setCurrentRowByKey, + updateCurrentRow, + updateCurrentRowData, + states: { + _currentRowKey, + currentRow + } + }; + } + +//#endregion +//#region ../../packages/components/table/src/store/tree.ts + function useTree$2(watcherData) { + const expandRowKeys = (0, vue.ref)([]); + const treeData = (0, vue.ref)({}); + const indent = (0, vue.ref)(16); + const lazy = (0, vue.ref)(false); + const lazyTreeNodeMap = (0, vue.ref)({}); + const lazyColumnIdentifier = (0, vue.ref)("hasChildren"); + const childrenColumnName = (0, vue.ref)("children"); + const checkStrictly = (0, vue.ref)(false); + const instance = (0, vue.getCurrentInstance)(); + const normalizedData = (0, vue.computed)(() => { + if (!watcherData.rowKey.value) return {}; + return normalize(watcherData.data.value || []); + }); + const normalizedLazyNode = (0, vue.computed)(() => { + const rowKey = watcherData.rowKey.value; + const keys = Object.keys(lazyTreeNodeMap.value); + const res = {}; + if (!keys.length) return res; + keys.forEach((key) => { + if (lazyTreeNodeMap.value[key].length) { + const item = { children: [] }; + lazyTreeNodeMap.value[key].forEach((row) => { + const currentRowKey = getRowIdentity(row, rowKey); + item.children.push(currentRowKey); + if (row[lazyColumnIdentifier.value] && !res[currentRowKey]) res[currentRowKey] = { children: [] }; + }); + res[key] = item; + } + }); + return res; + }); + const normalize = (data) => { + const rowKey = watcherData.rowKey.value; + const res = {}; + walkTreeNode(data, (parent, children, level) => { + const parentId = getRowIdentity(parent, rowKey); + if (isArray$1(children)) res[parentId] = { + children: children.map((row) => getRowIdentity(row, rowKey)), + level + }; + else if (lazy.value) res[parentId] = { + children: [], + lazy: true, + level + }; + }, childrenColumnName.value, lazyColumnIdentifier.value, lazy.value); + return res; + }; + const updateTreeData = (ifChangeExpandRowKeys = false, ifExpandAll) => { + ifExpandAll ||= instance.store?.states.defaultExpandAll.value; + const nested = normalizedData.value; + const normalizedLazyNode_ = normalizedLazyNode.value; + const keys = Object.keys(nested); + const newTreeData = {}; + if (keys.length) { + const oldTreeData = (0, vue.unref)(treeData); + const rootLazyRowKeys = []; + const getExpanded = (oldValue, key) => { + if (ifChangeExpandRowKeys) if (expandRowKeys.value) return ifExpandAll || expandRowKeys.value.includes(key); + else return !!(ifExpandAll || oldValue?.expanded); + else { + const included = ifExpandAll || expandRowKeys.value && expandRowKeys.value.includes(key); + return !!(oldValue?.expanded || included); + } + }; + keys.forEach((key) => { + const oldValue = oldTreeData[key]; + const newValue = { ...nested[key] }; + newValue.expanded = getExpanded(oldValue, key); + if (newValue.lazy) { + const { loaded = false, loading = false } = oldValue || {}; + newValue.loaded = !!loaded; + newValue.loading = !!loading; + rootLazyRowKeys.push(key); + } + newTreeData[key] = newValue; + }); + const lazyKeys = Object.keys(normalizedLazyNode_); + if (lazy.value && lazyKeys.length && rootLazyRowKeys.length) lazyKeys.forEach((key) => { + const oldValue = oldTreeData[key]; + const lazyNodeChildren = normalizedLazyNode_[key].children; + if (rootLazyRowKeys.includes(key)) { + if (newTreeData[key].children?.length !== 0) throw new Error("[ElTable]children must be an empty array."); + newTreeData[key].children = lazyNodeChildren; + } else { + const { loaded = false, loading = false } = oldValue || {}; + newTreeData[key] = { + lazy: true, + loaded: !!loaded, + loading: !!loading, + expanded: getExpanded(oldValue, key), + children: lazyNodeChildren, + level: void 0 + }; + } + }); + } + treeData.value = newTreeData; + instance.store?.updateTableScrollY(); + }; + (0, vue.watch)(() => expandRowKeys.value, () => { + updateTreeData(true); + }, { deep: true }); + (0, vue.watch)(() => normalizedData.value, () => { + updateTreeData(); + }); + (0, vue.watch)(() => normalizedLazyNode.value, () => { + updateTreeData(); + }); + const updateTreeExpandKeys = (value) => { + expandRowKeys.value = value; + updateTreeData(); + }; + const isUseLazy = (data) => { + return lazy.value && data && "loaded" in data && !data.loaded; + }; + const toggleTreeExpansion = (row, expanded) => { + instance.store.assertRowKey(); + const rowKey = watcherData.rowKey.value; + const id = getRowIdentity(row, rowKey); + const data = id && treeData.value[id]; + if (id && data && "expanded" in data) { + const oldExpanded = data.expanded; + expanded = isUndefined(expanded) ? !data.expanded : expanded; + treeData.value[id].expanded = expanded; + if (oldExpanded !== expanded) instance.emit("expand-change", row, expanded); + expanded && isUseLazy(data) && loadData(row, id, data); + instance.store.updateTableScrollY(); + } + }; + const loadOrToggle = (row) => { + instance.store.assertRowKey(); + const rowKey = watcherData.rowKey.value; + const id = getRowIdentity(row, rowKey); + const data = treeData.value[id]; + if (isUseLazy(data)) loadData(row, id, data); + else toggleTreeExpansion(row, void 0); + }; + const loadData = (row, key, treeNode) => { + const { load } = instance.props; + if (load && !treeData.value[key].loaded) { + treeData.value[key].loading = true; + load(row, treeNode, (data) => { + if (!isArray$1(data)) throw new TypeError("[ElTable] data must be an array"); + treeData.value[key].loading = false; + treeData.value[key].loaded = true; + treeData.value[key].expanded = true; + if (data.length) lazyTreeNodeMap.value[key] = data; + instance.emit("expand-change", row, true); + }); + } + }; + const updateKeyChildren = (key, data) => { + const { lazy, rowKey } = instance.props; + if (!lazy) return; + if (!rowKey) throw new Error("[Table] rowKey is required in updateKeyChild"); + if (lazyTreeNodeMap.value[key]) lazyTreeNodeMap.value[key] = data; + }; + return { + loadData, + loadOrToggle, + toggleTreeExpansion, + updateTreeExpandKeys, + updateTreeData, + updateKeyChildren, + normalize, + states: { + expandRowKeys, + treeData, + indent, + lazy, + lazyTreeNodeMap, + lazyColumnIdentifier, + childrenColumnName, + checkStrictly + } + }; + } + +//#endregion +//#region ../../packages/components/table/src/store/watcher.ts + const sortData = (data, states) => { + const sortingColumn = states.sortingColumn; + if (!sortingColumn || isString(sortingColumn.sortable)) return data; + return orderBy(data, states.sortProp, states.sortOrder, sortingColumn.sortMethod, sortingColumn.sortBy); + }; + const doFlattenColumns = (columns) => { + const result = []; + columns.forEach((column) => { + if (column.children && column.children.length > 0) result.push.apply(result, doFlattenColumns(column.children)); + else result.push(column); + }); + return result; + }; + function useWatcher$1() { + const instance = (0, vue.getCurrentInstance)(); + const { size: tableSize } = (0, vue.toRefs)(instance.proxy?.$props); + const rowKey = (0, vue.ref)(null); + const data = (0, vue.ref)([]); + const _data = (0, vue.ref)([]); + const isComplex = (0, vue.ref)(false); + const _columns = (0, vue.ref)([]); + const originColumns = (0, vue.ref)([]); + const columns = (0, vue.ref)([]); + const fixedColumns = (0, vue.ref)([]); + const rightFixedColumns = (0, vue.ref)([]); + const leafColumns = (0, vue.ref)([]); + const fixedLeafColumns = (0, vue.ref)([]); + const rightFixedLeafColumns = (0, vue.ref)([]); + const updateOrderFns = []; + const leafColumnsLength = (0, vue.ref)(0); + const fixedLeafColumnsLength = (0, vue.ref)(0); + const rightFixedLeafColumnsLength = (0, vue.ref)(0); + const isAllSelected = (0, vue.ref)(false); + const selection = (0, vue.ref)([]); + const reserveSelection = (0, vue.ref)(false); + const selectOnIndeterminate = (0, vue.ref)(false); + const selectable = (0, vue.ref)(null); + const rowExpandable = (0, vue.ref)(null); + const filters = (0, vue.ref)({}); + const filteredData = (0, vue.ref)(null); + const sortingColumn = (0, vue.ref)(null); + const sortProp = (0, vue.ref)(null); + const sortOrder = (0, vue.ref)(null); + const hoverRow = (0, vue.ref)(null); + const selectedMap = (0, vue.computed)(() => { + return rowKey.value ? getKeysMap(selection.value, rowKey.value) : void 0; + }); + (0, vue.watch)(data, () => { + if (instance.state) { + scheduleLayout(false); + if (instance.props.tableLayout === "auto") instance.refs.tableHeaderRef?.updateFixedColumnStyle(); + } + }, { deep: true }); + const assertRowKey = () => { + if (!rowKey.value) throw new Error("[ElTable] prop row-key is required"); + }; + const updateChildFixed = (column) => { + column.children?.forEach((childColumn) => { + childColumn.fixed = column.fixed; + updateChildFixed(childColumn); + }); + }; + const updateColumns = () => { + _columns.value.forEach((column) => { + updateChildFixed(column); + }); + fixedColumns.value = _columns.value.filter((column) => [true, "left"].includes(column.fixed)); + const selectColumn = _columns.value.find((column) => column.type === "selection"); + let selectColFixLeft; + if (selectColumn && selectColumn.fixed !== "right" && !fixedColumns.value.includes(selectColumn)) { + if (_columns.value.indexOf(selectColumn) === 0 && fixedColumns.value.length) { + fixedColumns.value.unshift(selectColumn); + selectColFixLeft = true; + } + } + rightFixedColumns.value = _columns.value.filter((column) => column.fixed === "right"); + const notFixedColumns = _columns.value.filter((column) => (selectColFixLeft ? column.type !== "selection" : true) && !column.fixed); + originColumns.value = Array.from(fixedColumns.value).concat(notFixedColumns).concat(rightFixedColumns.value); + const leafColumns = doFlattenColumns(notFixedColumns); + const fixedLeafColumns = doFlattenColumns(fixedColumns.value); + const rightFixedLeafColumns = doFlattenColumns(rightFixedColumns.value); + leafColumnsLength.value = leafColumns.length; + fixedLeafColumnsLength.value = fixedLeafColumns.length; + rightFixedLeafColumnsLength.value = rightFixedLeafColumns.length; + columns.value = Array.from(fixedLeafColumns).concat(leafColumns).concat(rightFixedLeafColumns); + isComplex.value = fixedColumns.value.length > 0 || rightFixedColumns.value.length > 0; + }; + const scheduleLayout = (needUpdateColumns, immediate = false) => { + if (needUpdateColumns) updateColumns(); + if (immediate) instance.state.doLayout(); + else instance.state.debouncedUpdateLayout(); + }; + const isSelected = (row) => { + if (selectedMap.value) return !!selectedMap.value[getRowIdentity(row, rowKey.value)]; + else return selection.value.includes(row); + }; + const clearSelection = () => { + isAllSelected.value = false; + const oldSelection = selection.value; + selection.value = []; + if (oldSelection.length) instance.emit("selection-change", []); + }; + const cleanSelection = () => { + let deleted; + if (rowKey.value) { + deleted = []; + const childrenKey = instance?.store?.states?.childrenColumnName.value; + const dataMap = getKeysMap(data.value, rowKey.value, true, childrenKey); + for (const key in selectedMap.value) if (hasOwn(selectedMap.value, key) && !dataMap[key]) deleted.push(selectedMap.value[key].row); + } else deleted = selection.value.filter((item) => !data.value.includes(item)); + if (deleted.length) { + const newSelection = selection.value.filter((item) => !deleted.includes(item)); + selection.value = newSelection; + instance.emit("selection-change", newSelection.slice()); + } + }; + const getSelectionRows = () => { + return (selection.value || []).slice(); + }; + const toggleRowSelection = (row, selected, emitChange = true, ignoreSelectable = false) => { + const treeProps = { + children: instance?.store?.states?.childrenColumnName.value, + checkStrictly: instance?.store?.states?.checkStrictly.value + }; + if (toggleRowStatus(selection.value, row, selected, treeProps, ignoreSelectable ? void 0 : selectable.value, data.value.indexOf(row), rowKey.value)) { + const newSelection = (selection.value || []).slice(); + if (emitChange) instance.emit("select", newSelection, row); + instance.emit("selection-change", newSelection); + } + }; + const _toggleAllSelection = () => { + const value = selectOnIndeterminate.value ? !isAllSelected.value : !(isAllSelected.value || selection.value.length); + isAllSelected.value = value; + let selectionChanged = false; + let childrenCount = 0; + const rowKey = instance?.store?.states?.rowKey.value; + const { childrenColumnName } = instance.store.states; + const treeProps = { + children: childrenColumnName.value, + checkStrictly: false + }; + data.value.forEach((row, index) => { + const rowIndex = index + childrenCount; + if (toggleRowStatus(selection.value, row, value, treeProps, selectable.value, rowIndex, rowKey)) selectionChanged = true; + childrenCount += getChildrenCount(getRowIdentity(row, rowKey)); + }); + if (selectionChanged) instance.emit("selection-change", selection.value ? selection.value.slice() : []); + instance.emit("select-all", (selection.value || []).slice()); + }; + const updateAllSelected = () => { + if (data.value?.length === 0) { + isAllSelected.value = false; + return; + } + const { childrenColumnName } = instance.store.states; + let rowIndex = 0; + let selectedCount = 0; + const checkSelectedStatus = (data) => { + for (const row of data) { + const isRowSelectable = selectable.value && selectable.value.call(null, row, rowIndex); + if (!isSelected(row)) { + if (!selectable.value || isRowSelectable) return false; + } else selectedCount++; + rowIndex++; + if (row[childrenColumnName.value]?.length && !checkSelectedStatus(row[childrenColumnName.value])) return false; + } + return true; + }; + const isAllSelected_ = checkSelectedStatus(data.value || []); + isAllSelected.value = selectedCount === 0 ? false : isAllSelected_; + }; + const getChildrenCount = (rowKey) => { + if (!instance || !instance.store) return 0; + const { treeData } = instance.store.states; + let count = 0; + const children = treeData.value[rowKey]?.children; + if (children) { + count += children.length; + children.forEach((childKey) => { + count += getChildrenCount(childKey); + }); + } + return count; + }; + const updateFilters = (column, values) => { + const filters_ = {}; + castArray$1(column).forEach((col) => { + filters.value[col.id] = values; + filters_[col.columnKey || col.id] = values; + }); + return filters_; + }; + const updateSort = (column, prop, order) => { + if (sortingColumn.value && sortingColumn.value !== column) sortingColumn.value.order = null; + sortingColumn.value = column; + sortProp.value = prop; + sortOrder.value = order; + }; + const execFilter = () => { + let sourceData = (0, vue.unref)(_data); + Object.keys(filters.value).forEach((columnId) => { + const values = filters.value[columnId]; + if (!values || values.length === 0) return; + const column = getColumnById({ columns: columns.value }, columnId); + if (column && column.filterMethod) sourceData = sourceData.filter((row) => { + return values.some((value) => column.filterMethod.call(null, value, row, column)); + }); + }); + filteredData.value = sourceData; + }; + const execSort = () => { + data.value = sortData(filteredData.value ?? [], { + sortingColumn: sortingColumn.value, + sortProp: sortProp.value, + sortOrder: sortOrder.value + }); + }; + const execQuery = (ignore = void 0) => { + if (!ignore?.filter) execFilter(); + execSort(); + }; + const clearFilter = (columnKeys) => { + const { tableHeaderRef } = instance.refs; + if (!tableHeaderRef) return; + const panels = Object.assign({}, tableHeaderRef.filterPanels); + const keys = Object.keys(panels); + if (!keys.length) return; + if (isString(columnKeys)) columnKeys = [columnKeys]; + if (isArray$1(columnKeys)) { + const columns_ = columnKeys.map((key) => getColumnByKey({ columns: columns.value }, key)); + keys.forEach((key) => { + const column = columns_.find((col) => col.id === key); + if (column) column.filteredValue = []; + }); + instance.store.commit("filterChange", { + column: columns_, + values: [], + silent: true, + multi: true + }); + } else { + keys.forEach((key) => { + const column = columns.value.find((col) => col.id === key); + if (column) column.filteredValue = []; + }); + filters.value = {}; + instance.store.commit("filterChange", { + column: {}, + values: [], + silent: true + }); + } + }; + const clearSort = () => { + if (!sortingColumn.value) return; + updateSort(null, null, null); + instance.store.commit("changeSortCondition", { silent: true }); + }; + const { setExpandRowKeys, toggleRowExpansion, updateExpandRows, states: expandStates, isRowExpanded } = useExpand({ + data, + rowKey + }); + const { updateTreeExpandKeys, toggleTreeExpansion, updateTreeData, updateKeyChildren, loadOrToggle, states: treeStates } = useTree$2({ + data, + rowKey + }); + const { updateCurrentRowData, updateCurrentRow, setCurrentRowKey, states: currentData } = useCurrent({ + data, + rowKey + }); + const setExpandRowKeysAdapter = (val) => { + setExpandRowKeys(val); + updateTreeExpandKeys(val); + }; + const toggleRowExpansionAdapter = (row, expanded) => { + if (columns.value.some(({ type }) => type === "expand")) toggleRowExpansion(row, expanded); + else toggleTreeExpansion(row, expanded); + }; + return { + assertRowKey, + updateColumns, + scheduleLayout, + isSelected, + clearSelection, + cleanSelection, + getSelectionRows, + toggleRowSelection, + _toggleAllSelection, + toggleAllSelection: null, + updateAllSelected, + updateFilters, + updateCurrentRow, + updateSort, + execFilter, + execSort, + execQuery, + clearFilter, + clearSort, + toggleRowExpansion, + setExpandRowKeysAdapter, + setCurrentRowKey, + toggleRowExpansionAdapter, + isRowExpanded, + updateExpandRows, + updateCurrentRowData, + loadOrToggle, + updateTreeData, + updateKeyChildren, + states: { + tableSize, + rowKey, + data, + _data, + isComplex, + _columns, + originColumns, + columns, + fixedColumns, + rightFixedColumns, + leafColumns, + fixedLeafColumns, + rightFixedLeafColumns, + updateOrderFns, + leafColumnsLength, + fixedLeafColumnsLength, + rightFixedLeafColumnsLength, + isAllSelected, + selection, + reserveSelection, + selectOnIndeterminate, + selectable, + rowExpandable, + filters, + filteredData, + sortingColumn, + sortProp, + sortOrder, + hoverRow, + ...expandStates, + ...treeStates, + ...currentData + } + }; + } + +//#endregion +//#region ../../packages/components/table/src/store/index.ts + function replaceColumn(array, column) { + return array.map((item) => { + if (item.id === column.id) return column; + else if (item.children?.length) item.children = replaceColumn(item.children, column); + return item; + }); + } + function sortColumn(array) { + array.forEach((item) => { + item.no = item.getColumnIndex?.(); + if (item.children?.length) sortColumn(item.children); + }); + array.sort((cur, pre) => cur.no - pre.no); + } + function useStore() { + const instance = (0, vue.getCurrentInstance)(); + const watcher = useWatcher$1(); + const ns = useNamespace("table"); + const { t } = useLocale(); + const mutations = { + setData(states, data) { + const dataInstanceChanged = (0, vue.unref)(states._data) !== data; + states.data.value = data; + states._data.value = data; + instance.store.execQuery(); + instance.store.updateCurrentRowData(); + instance.store.updateExpandRows(); + instance.store.updateTreeData(instance.store.states.defaultExpandAll.value); + if ((0, vue.unref)(states.reserveSelection)) instance.store.assertRowKey(); + else if (dataInstanceChanged) instance.store.clearSelection(); + else instance.store.cleanSelection(); + instance.store.updateAllSelected(); + if (instance.$ready) instance.store.scheduleLayout(); + }, + insertColumn(states, column, parent, updateColumnOrder) { + const array = (0, vue.unref)(states._columns); + let newColumns = []; + if (!parent) { + array.push(column); + newColumns = array; + } else { + if (parent && !parent.children) parent.children = []; + parent.children?.push(column); + newColumns = replaceColumn(array, parent); + } + sortColumn(newColumns); + states._columns.value = newColumns; + states.updateOrderFns.push(updateColumnOrder); + if (column.type === "selection") { + states.selectable.value = column.selectable; + states.reserveSelection.value = column.reserveSelection; + } + if (instance.$ready) { + instance.store.updateColumns(); + instance.store.scheduleLayout(); + } + }, + updateColumnOrder(states, column) { + if (column.getColumnIndex?.() === column.no) return; + sortColumn(states._columns.value); + if (instance.$ready) instance.store.updateColumns(); + }, + removeColumn(states, column, parent, updateColumnOrder) { + const array = (0, vue.unref)(states._columns) || []; + if (parent) { + parent.children?.splice(parent.children.findIndex((item) => item.id === column.id), 1); + (0, vue.nextTick)(() => { + if (parent.children?.length === 0) delete parent.children; + }); + states._columns.value = replaceColumn(array, parent); + } else { + const index = array.indexOf(column); + if (index > -1) { + array.splice(index, 1); + states._columns.value = array; + } + } + const updateFnIndex = states.updateOrderFns.indexOf(updateColumnOrder); + updateFnIndex > -1 && states.updateOrderFns.splice(updateFnIndex, 1); + if (instance.$ready) { + instance.store.updateColumns(); + instance.store.scheduleLayout(); + } + }, + sort(states, options) { + const { prop, order, init } = options; + if (prop) { + const column = (0, vue.unref)(states.columns).find((column) => column.property === prop); + if (column) { + column.order = order; + instance.store.updateSort(column, prop, order); + instance.store.commit("changeSortCondition", { init }); + } + } + }, + changeSortCondition(states, options) { + const { sortingColumn, sortProp, sortOrder } = states; + const columnValue = (0, vue.unref)(sortingColumn), propValue = (0, vue.unref)(sortProp), orderValue = (0, vue.unref)(sortOrder); + if (isNull(orderValue)) { + states.sortingColumn.value = null; + states.sortProp.value = null; + } + instance.store.execQuery({ filter: true }); + if (!options || !(options.silent || options.init)) instance.emit("sort-change", { + column: columnValue, + prop: propValue, + order: orderValue + }); + instance.store.updateTableScrollY(); + }, + filterChange(_states, options) { + const { column, values, silent } = options; + const newFilters = instance.store.updateFilters(column, values); + instance.store.execQuery(); + if (!silent) instance.emit("filter-change", newFilters); + instance.store.updateTableScrollY(); + }, + toggleAllSelection() { + instance.store.toggleAllSelection?.(); + }, + rowSelectedChanged(_states, row) { + instance.store.toggleRowSelection(row); + instance.store.updateAllSelected(); + }, + setHoverRow(states, row) { + states.hoverRow.value = row; + }, + setCurrentRow(_states, row) { + instance.store.updateCurrentRow(row); + } + }; + const commit = function(name, ...args) { + const mutations = instance.store.mutations; + if (mutations[name]) mutations[name].apply(instance, [instance.store.states, ...args]); + else throw new Error(`Action not found: ${name}`); + }; + const updateTableScrollY = function() { + (0, vue.nextTick)(() => instance.layout.updateScrollY.apply(instance.layout)); + }; + return { + ns, + t, + ...watcher, + mutations, + commit, + updateTableScrollY + }; + } + +//#endregion +//#region ../../packages/components/table/src/store/helper.ts + const InitialStateMap = { + 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: false + } + }; + function createStore(table, props) { + if (!table) throw new Error("Table is required."); + const store = useStore(); + store.toggleAllSelection = debounce(store._toggleAllSelection, 10); + Object.keys(InitialStateMap).forEach((key) => { + handleValue(getArrKeysValue(props, key), key, store); + }); + proxyTableProps(store, props); + return store; + } + function proxyTableProps(store, props) { + Object.keys(InitialStateMap).forEach((key) => { + (0, vue.watch)(() => getArrKeysValue(props, key), (value) => { + handleValue(value, key, store); + }); + }); + } + function handleValue(value, propsKey, store) { + let newVal = value; + let storeKey = InitialStateMap[propsKey]; + if (isObject$1(storeKey)) { + newVal = newVal || storeKey.default; + storeKey = storeKey.key; + } + store.states[storeKey].value = newVal; + } + function getArrKeysValue(props, key) { + if (key.includes(".")) { + const keyList = key.split("."); + let value = props; + keyList.forEach((k) => { + value = value[k]; + }); + return value; + } else return props[key]; + } + +//#endregion +//#region ../../packages/components/table/src/table-layout.ts + var TableLayout = class { + constructor(options) { + this.observers = []; + this.table = null; + this.store = null; + this.columns = []; + this.fit = true; + this.showHeader = true; + this.height = (0, vue.ref)(null); + this.scrollX = (0, vue.ref)(false); + this.scrollY = (0, vue.ref)(false); + this.bodyWidth = (0, vue.ref)(null); + this.fixedWidth = (0, vue.ref)(null); + this.rightFixedWidth = (0, vue.ref)(null); + this.gutterWidth = 0; + for (const name in options) if (hasOwn(options, name)) if ((0, vue.isRef)(this[name])) this[name].value = options[name]; + else this[name] = options[name]; + if (!this.table) throw new Error("Table is required for Table Layout"); + if (!this.store) throw new Error("Store is required for Table Layout"); + } + updateScrollY() { + const height = this.height.value; + /** + * When the height is not initialized, it is null. + * After the table is initialized, when the height is not configured, the height is 0. + */ + if (isNull(height)) return false; + const scrollBarRef = this.table.refs.scrollBarRef; + if (this.table.vnode.el && scrollBarRef?.wrapRef) { + let scrollY = true; + const prevScrollY = this.scrollY.value; + scrollY = scrollBarRef.wrapRef.scrollHeight > scrollBarRef.wrapRef.clientHeight; + this.scrollY.value = scrollY; + return prevScrollY !== scrollY; + } + return false; + } + setHeight(value, prop = "height") { + if (!isClient) return; + const el = this.table.vnode.el; + value = parseHeight(value); + this.height.value = Number(value); + if (!el && (value || value === 0)) { + (0, vue.nextTick)(() => this.setHeight(value, prop)); + return; + } + if (el && isNumber(value)) { + el.style[prop] = `${value}px`; + this.updateElsHeight(); + } else if (el && isString(value)) { + el.style[prop] = value; + this.updateElsHeight(); + } + } + setMaxHeight(value) { + this.setHeight(value, "max-height"); + } + getFlattenColumns() { + const flattenColumns = []; + this.table.store.states.columns.value.forEach((column) => { + if (column.isColumnGroup) flattenColumns.push.apply(flattenColumns, column.columns); + else flattenColumns.push(column); + }); + return flattenColumns; + } + updateElsHeight() { + this.updateScrollY(); + this.notifyObservers("scrollable"); + } + headerDisplayNone(elm) { + if (!elm) return true; + let headerChild = elm; + while (headerChild.tagName !== "DIV") { + if (getComputedStyle(headerChild).display === "none") return true; + headerChild = headerChild.parentElement; + } + return false; + } + updateColumnsWidth() { + if (!isClient) return; + const fit = this.fit; + const bodyWidth = this.table.vnode.el?.clientWidth; + let bodyMinWidth = 0; + const flattenColumns = this.getFlattenColumns(); + const flexColumns = flattenColumns.filter((column) => !isNumber(column.width)); + flattenColumns.forEach((column) => { + if (isNumber(column.width) && column.realWidth) column.realWidth = null; + }); + if (flexColumns.length > 0 && fit) { + flattenColumns.forEach((column) => { + bodyMinWidth += Number(column.width || column.minWidth || 80); + }); + if (bodyMinWidth <= bodyWidth) { + this.scrollX.value = false; + const totalFlexWidth = bodyWidth - bodyMinWidth; + if (flexColumns.length === 1) flexColumns[0].realWidth = Number(flexColumns[0].minWidth || 80) + totalFlexWidth; + else { + const flexWidthPerPixel = totalFlexWidth / flexColumns.reduce((prev, column) => prev + Number(column.minWidth || 80), 0); + let noneFirstWidth = 0; + flexColumns.forEach((column, index) => { + if (index === 0) return; + const flexWidth = Math.floor(Number(column.minWidth || 80) * flexWidthPerPixel); + noneFirstWidth += flexWidth; + column.realWidth = Number(column.minWidth || 80) + flexWidth; + }); + flexColumns[0].realWidth = Number(flexColumns[0].minWidth || 80) + totalFlexWidth - noneFirstWidth; + } + } else { + this.scrollX.value = true; + flexColumns.forEach((column) => { + column.realWidth = Number(column.minWidth); + }); + } + this.bodyWidth.value = Math.max(bodyMinWidth, bodyWidth); + this.table.state.resizeState.value.width = this.bodyWidth.value; + } else { + flattenColumns.forEach((column) => { + if (!column.width && !column.minWidth) column.realWidth = 80; + else column.realWidth = Number(column.width || column.minWidth); + bodyMinWidth += column.realWidth; + }); + this.scrollX.value = bodyMinWidth > bodyWidth; + this.bodyWidth.value = bodyMinWidth; + } + const fixedColumns = this.store.states.fixedColumns.value; + if (fixedColumns.length > 0) { + let fixedWidth = 0; + fixedColumns.forEach((column) => { + fixedWidth += Number(column.realWidth || column.width); + }); + this.fixedWidth.value = fixedWidth; + } + const rightFixedColumns = this.store.states.rightFixedColumns.value; + if (rightFixedColumns.length > 0) { + let rightFixedWidth = 0; + rightFixedColumns.forEach((column) => { + rightFixedWidth += Number(column.realWidth || column.width); + }); + this.rightFixedWidth.value = rightFixedWidth; + } + this.notifyObservers("columns"); + } + addObserver(observer) { + this.observers.push(observer); + } + removeObserver(observer) { + const index = this.observers.indexOf(observer); + if (index !== -1) this.observers.splice(index, 1); + } + notifyObservers(event) { + this.observers.forEach((observer) => { + switch (event) { + case "columns": + observer.state?.onColumnsChange(this); + break; + case "scrollable": + observer.state?.onScrollableChange(this); + break; + default: throw new Error(`Table Layout don't have event ${event}.`); + } + }); + } + }; + +//#endregion +//#region ../../packages/components/table/src/filter-panel.vue?vue&type=script&lang.ts + var filter_panel_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElTableFilterPanel", + components: { + ElCheckbox, + ElCheckboxGroup, + ElScrollbar, + ElTooltip, + ElIcon, + ArrowDown: arrow_down_default, + ArrowUp: arrow_up_default + }, + props: { + placement: { + type: String, + default: "bottom-start" + }, + store: { type: Object }, + column: { type: Object }, + upDataColumn: { type: Function }, + appendTo: useTooltipContentProps.appendTo + }, + setup(props) { + const instance = (0, vue.getCurrentInstance)(); + const { t } = useLocale(); + const ns = useNamespace("table-filter"); + const parent = instance?.parent; + if (props.column && !parent.filterPanels.value[props.column.id]) parent.filterPanels.value[props.column.id] = instance; + const tooltipRef = (0, vue.ref)(null); + const rootRef = (0, vue.ref)(null); + const checkedIndex = (0, vue.ref)(0); + const filters = (0, vue.computed)(() => { + return props.column && props.column.filters; + }); + const filterClassName = (0, vue.computed)(() => { + if (props.column && props.column.filterClassName) return `${ns.b()} ${props.column.filterClassName}`; + return ns.b(); + }); + const filterValue = (0, vue.computed)({ + get: () => (props.column?.filteredValue || [])[0], + set: (value) => { + if (filteredValue.value) if (!isPropAbsent(value)) filteredValue.value.splice(0, 1, value); + else filteredValue.value.splice(0, 1); + } + }); + const filteredValue = (0, vue.computed)({ + get() { + if (props.column) return props.column.filteredValue || []; + return []; + }, + set(value) { + if (props.column) props.upDataColumn?.("filteredValue", value); + } + }); + const multiple = (0, vue.computed)(() => { + if (props.column) return props.column.filterMultiple; + return true; + }); + const isActive = (filter) => { + return filter.value === filterValue.value; + }; + const hidden = () => { + tooltipRef.value?.onClose(); + }; + const handleConfirm = () => { + confirmFilter(filteredValue.value); + hidden(); + }; + const handleReset = () => { + filteredValue.value = []; + confirmFilter(filteredValue.value); + hidden(); + }; + const handleSelect = (_filterValue, index) => { + filterValue.value = _filterValue; + checkedIndex.value = index; + if (!isPropAbsent(_filterValue)) confirmFilter(filteredValue.value); + else confirmFilter([]); + hidden(); + }; + const confirmFilter = (filteredValue) => { + props.store?.commit("filterChange", { + column: props.column, + values: filteredValue + }); + props.store?.updateAllSelected(); + }; + const handleShowTooltip = () => { + rootRef.value?.focus(); + !multiple.value && initCheckedIndex(); + if (props.column) props.upDataColumn?.("filterOpened", true); + }; + const handleHideTooltip = () => { + if (props.column) props.upDataColumn?.("filterOpened", false); + }; + const initCheckedIndex = () => { + if (isPropAbsent(filterValue)) { + checkedIndex.value = 0; + return; + } + const idx = (filters.value || []).findIndex((item) => { + return item.value === filterValue.value; + }); + checkedIndex.value = idx >= 0 ? idx + 1 : 0; + }; + const handleKeydown = (event) => { + const code = getEventCode(event); + const len = (filters.value ? filters.value.length : 0) + 1; + let index = checkedIndex.value; + let isPreventDefault = true; + switch (code) { + case EVENT_CODE.down: + case EVENT_CODE.right: + index = (index + 1) % len; + break; + case EVENT_CODE.up: + case EVENT_CODE.left: + index = (index - 1 + len) % len; + break; + case EVENT_CODE.tab: + hidden(); + isPreventDefault = false; + break; + case EVENT_CODE.enter: + case EVENT_CODE.space: + if (index === 0) handleSelect(null, 0); + else { + const item = (filters.value || [])[index - 1]; + item.value && handleSelect(item.value, index); + } + break; + default: + isPreventDefault = false; + break; + } + isPreventDefault && event.preventDefault(); + checkedIndex.value = index; + rootRef.value?.querySelector(`.${ns.e("list-item")}:nth-child(${index + 1})`)?.focus(); + }; + return { + multiple, + filterClassName, + filteredValue, + filterValue, + filters, + handleConfirm, + handleReset, + handleSelect, + isPropAbsent, + isActive, + t, + ns, + tooltipRef, + rootRef, + checkedIndex, + handleShowTooltip, + handleHideTooltip, + handleKeydown + }; + } + }); + +//#endregion +//#region ../../packages/components/table/src/filter-panel.vue + const _hoisted_1$17 = ["disabled"]; + const _hoisted_2$10 = ["tabindex", "aria-checked"]; + const _hoisted_3$3 = [ + "tabindex", + "aria-checked", + "onClick" + ]; + const _hoisted_4$2 = ["aria-label"]; + function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_checkbox = (0, vue.resolveComponent)("el-checkbox"); + const _component_el_checkbox_group = (0, vue.resolveComponent)("el-checkbox-group"); + const _component_el_scrollbar = (0, vue.resolveComponent)("el-scrollbar"); + const _component_arrow_up = (0, vue.resolveComponent)("arrow-up"); + const _component_arrow_down = (0, vue.resolveComponent)("arrow-down"); + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + const _component_el_tooltip = (0, vue.resolveComponent)("el-tooltip"); + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_tooltip, { + ref: "tooltipRef", + offset: 0, + placement: _ctx.placement, + "show-arrow": false, + trigger: "click", + role: "dialog", + teleported: "", + effect: "light", + pure: "", + loop: "", + "popper-class": _ctx.filterClassName, + persistent: "", + "append-to": _ctx.appendTo, + onShow: _ctx.handleShowTooltip, + onHide: _ctx.handleHideTooltip + }, { + content: (0, vue.withCtx)(() => [_ctx.multiple ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref: "rootRef", + tabindex: "-1", + class: (0, vue.normalizeClass)(_ctx.ns.e("multiple")) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.ns.e("content")) }, [(0, vue.createVNode)(_component_el_scrollbar, { "wrap-class": _ctx.ns.e("wrap") }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_checkbox_group, { + modelValue: _ctx.filteredValue, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.filteredValue = $event), + class: (0, vue.normalizeClass)(_ctx.ns.e("checkbox-group")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.filters, (filter) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_checkbox, { + key: filter.value, + value: filter.value + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(filter.text), 1)]), + _: 2 + }, 1032, ["value"]); + }), 128))]), + _: 1 + }, 8, ["modelValue", "class"])]), + _: 1 + }, 8, ["wrap-class"])], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.ns.e("bottom")) }, [(0, vue.createElementVNode)("button", { + class: (0, vue.normalizeClass)(_ctx.ns.is("disabled", _ctx.filteredValue.length === 0)), + disabled: _ctx.filteredValue.length === 0, + type: "button", + onClick: _cache[1] || (_cache[1] = (...args) => _ctx.handleConfirm && _ctx.handleConfirm(...args)) + }, (0, vue.toDisplayString)(_ctx.t("el.table.confirmFilter")), 11, _hoisted_1$17), (0, vue.createElementVNode)("button", { + type: "button", + onClick: _cache[2] || (_cache[2] = (...args) => _ctx.handleReset && _ctx.handleReset(...args)) + }, (0, vue.toDisplayString)(_ctx.t("el.table.resetFilter")), 1)], 2)], 2)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("ul", { + key: 1, + ref: "rootRef", + tabindex: "-1", + role: "radiogroup", + class: (0, vue.normalizeClass)(_ctx.ns.e("list")), + onKeydown: _cache[4] || (_cache[4] = (...args) => _ctx.handleKeydown && _ctx.handleKeydown(...args)) + }, [(0, vue.createElementVNode)("li", { + role: "radio", + class: (0, vue.normalizeClass)([_ctx.ns.e("list-item"), _ctx.ns.is("active", _ctx.isPropAbsent(_ctx.filterValue))]), + tabindex: _ctx.checkedIndex === 0 ? 0 : -1, + "aria-checked": _ctx.isPropAbsent(_ctx.filterValue), + onClick: _cache[3] || (_cache[3] = ($event) => _ctx.handleSelect(null, 0)) + }, (0, vue.toDisplayString)(_ctx.t("el.table.clearFilter")), 11, _hoisted_2$10), ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.filters, (filter, idx) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: filter.value, + role: "radio", + class: (0, vue.normalizeClass)([_ctx.ns.e("list-item"), _ctx.ns.is("active", _ctx.isActive(filter))]), + tabindex: _ctx.checkedIndex === idx + 1 ? 0 : -1, + "aria-checked": _ctx.isActive(filter), + onClick: ($event) => _ctx.handleSelect(filter.value, idx + 1) + }, (0, vue.toDisplayString)(filter.text), 11, _hoisted_3$3); + }), 128))], 34))]), + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)(`${_ctx.ns.namespace.value}-table__column-filter-trigger`), + "aria-label": _ctx.t("el.table.filterLabel", { column: _ctx.column?.label || "" }) + }, [(0, vue.createVNode)(_component_el_icon, null, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "filter-icon", {}, () => [_ctx.column?.filterOpened ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_arrow_up, { key: 0 })) : ((0, vue.openBlock)(), (0, vue.createBlock)(_component_arrow_down, { key: 1 }))])]), + _: 3 + })], 10, _hoisted_4$2)]), + _: 3 + }, 8, [ + "placement", + "popper-class", + "append-to", + "onShow", + "onHide" + ]); + } + var filter_panel_default = /* @__PURE__ */ _plugin_vue_export_helper_default(filter_panel_vue_vue_type_script_lang_default, [["render", _sfc_render$4]]); + +//#endregion +//#region ../../packages/components/table/src/layout-observer.ts + function useLayoutObserver(root) { + const instance = (0, vue.getCurrentInstance)(); + (0, vue.onBeforeMount)(() => { + tableLayout.value.addObserver(instance); + }); + (0, vue.onMounted)(() => { + onColumnsChange(tableLayout.value); + onScrollableChange(tableLayout.value); + }); + (0, vue.onUpdated)(() => { + onColumnsChange(tableLayout.value); + onScrollableChange(tableLayout.value); + }); + (0, vue.onUnmounted)(() => { + tableLayout.value.removeObserver(instance); + }); + const tableLayout = (0, vue.computed)(() => { + const layout = root.layout; + if (!layout) throw new Error("Can not find table layout."); + return layout; + }); + const onColumnsChange = (layout) => { + const cols = root.vnode.el?.querySelectorAll("colgroup > col") || []; + if (!cols.length) return; + const flattenColumns = layout.getFlattenColumns(); + const columnsMap = {}; + flattenColumns.forEach((column) => { + columnsMap[column.id] = column; + }); + for (let i = 0, j = cols.length; i < j; i++) { + const col = cols[i]; + const column = columnsMap[col.getAttribute("name")]; + if (column) col.setAttribute("width", column.realWidth || column.width); + } + }; + const onScrollableChange = (layout) => { + const cols = root.vnode.el?.querySelectorAll("colgroup > col[name=gutter]") || []; + for (let i = 0, j = cols.length; i < j; i++) cols[i].setAttribute("width", layout.scrollY.value ? layout.gutterWidth : "0"); + const ths = root.vnode.el?.querySelectorAll("th.gutter") || []; + for (let i = 0, j = ths.length; i < j; i++) { + const th = ths[i]; + th.style.width = layout.scrollY.value ? `${layout.gutterWidth}px` : "0"; + th.style.display = layout.scrollY.value ? "" : "none"; + } + }; + return { + tableLayout: tableLayout.value, + onColumnsChange, + onScrollableChange + }; + } + +//#endregion +//#region ../../packages/components/table/src/tokens.ts + const TABLE_INJECTION_KEY = Symbol("ElTable"); + +//#endregion +//#region ../../packages/components/table/src/table-header/event-helper.ts + function useEvent(props, emit) { + const instance = (0, vue.getCurrentInstance)(); + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const handleFilterClick = (event) => { + event.stopPropagation(); + }; + const handleHeaderClick = (event, column) => { + if (!column.filters && column.sortable) handleSortClick(event, column, false); + else if (column.filterable && !column.sortable) handleFilterClick(event); + parent?.emit("header-click", column, event); + }; + const handleHeaderContextMenu = (event, column) => { + parent?.emit("header-contextmenu", column, event); + }; + const draggingColumn = (0, vue.ref)(null); + const dragging = (0, vue.ref)(false); + const dragState = (0, vue.ref)(); + const handleMouseDown = (event, column) => { + if (!isClient) return; + if (column.children && column.children.length > 0) return; + /* istanbul ignore if */ + if (draggingColumn.value && props.border && draggingColumn.value.id === column.id) { + dragging.value = true; + const table = parent; + emit("set-drag-visible", true); + const tableLeft = (table?.vnode.el)?.getBoundingClientRect().left; + const columnEl = instance?.vnode?.el?.querySelector(`th.${column.id}`); + const columnRect = columnEl.getBoundingClientRect(); + const minLeft = columnRect.left - tableLeft + 30; + addClass(columnEl, "noclick"); + dragState.value = { + startMouseLeft: event.clientX, + startLeft: columnRect.right - tableLeft, + startColumnLeft: columnRect.left - tableLeft, + tableLeft + }; + const resizeProxy = table?.refs.resizeProxy; + resizeProxy.style.left = `${dragState.value.startLeft}px`; + document.onselectstart = function() { + return false; + }; + document.ondragstart = function() { + return false; + }; + const handleMouseMove = (event) => { + const deltaLeft = event.clientX - dragState.value.startMouseLeft; + const proxyLeft = dragState.value.startLeft + deltaLeft; + resizeProxy.style.left = `${Math.max(minLeft, proxyLeft)}px`; + }; + const handleMouseUp = () => { + if (dragging.value) { + const { startColumnLeft, startLeft } = dragState.value; + column.width = column.realWidth = Number.parseInt(resizeProxy.style.left, 10) - startColumnLeft; + table?.emit("header-dragend", column.width, startLeft - startColumnLeft, column, event); + requestAnimationFrame(() => { + props.store.scheduleLayout(false, true); + }); + document.body.style.cursor = ""; + dragging.value = false; + draggingColumn.value = null; + dragState.value = void 0; + emit("set-drag-visible", false); + } + document.removeEventListener("mousemove", handleMouseMove); + document.removeEventListener("mouseup", handleMouseUp); + document.onselectstart = null; + document.ondragstart = null; + setTimeout(() => { + removeClass(columnEl, "noclick"); + }, 0); + }; + document.addEventListener("mousemove", handleMouseMove); + document.addEventListener("mouseup", handleMouseUp); + } + }; + const handleMouseMove = (event, column) => { + if (!props.border || column.children && column.children.length > 0) return; + const el = event.target; + const target = isElement$1(el) ? el.closest("th") : null; + if (!target) return; + const isSortable = hasClass(target, "is-sortable"); + if (isSortable) { + const cursor = dragging.value ? "col-resize" : ""; + target.style.cursor = cursor; + const caret = target.querySelector(".caret-wrapper"); + if (caret) caret.style.cursor = cursor; + } + if (!column.resizable || dragging.value) { + draggingColumn.value = null; + return; + } + const rect = target.getBoundingClientRect(); + const isLastTh = target.parentNode?.lastElementChild === target; + const allowDrag = props.allowDragLastColumn || !isLastTh; + const isResizeHandleActive = rect.width > 12 && rect.right - event.clientX < 8 && allowDrag; + const cursor = isResizeHandleActive ? "col-resize" : ""; + document.body.style.cursor = cursor; + draggingColumn.value = isResizeHandleActive ? column : null; + if (isSortable) target.style.cursor = cursor; + }; + const handleMouseOut = () => { + if (!isClient || dragging.value) return; + document.body.style.cursor = ""; + }; + const toggleOrder = ({ order, sortOrders }) => { + if (order === "") return sortOrders[0]; + const index = sortOrders.indexOf(order || null); + return sortOrders[index > sortOrders.length - 2 ? 0 : index + 1]; + }; + const handleSortClick = (event, column, givenOrder) => { + event.stopPropagation(); + const order = column.order === givenOrder ? null : givenOrder || toggleOrder(column); + const target = event.target?.closest("th"); + if (target) { + if (hasClass(target, "noclick")) { + removeClass(target, "noclick"); + return; + } + } + if (!column.sortable) return; + const clickTarget = event.currentTarget; + if (["ascending", "descending"].some((str) => hasClass(clickTarget, str) && !column.sortOrders.includes(str))) return; + const states = props.store.states; + let sortProp = states.sortProp.value; + let sortOrder; + const sortingColumn = states.sortingColumn.value; + if (sortingColumn !== column || sortingColumn === column && isNull(sortingColumn.order)) { + if (sortingColumn) sortingColumn.order = null; + states.sortingColumn.value = column; + sortProp = column.property; + } + if (!order) sortOrder = column.order = null; + else sortOrder = column.order = order; + states.sortProp.value = sortProp; + states.sortOrder.value = sortOrder; + parent?.store.commit("changeSortCondition"); + }; + return { + handleHeaderClick, + handleHeaderContextMenu, + handleMouseDown, + handleMouseMove, + handleMouseOut, + handleSortClick, + handleFilterClick + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-header/style.helper.ts + function useStyle$2(props) { + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const ns = useNamespace("table"); + const getHeaderRowStyle = (rowIndex) => { + const headerRowStyle = parent?.props.headerRowStyle; + if (isFunction$1(headerRowStyle)) return headerRowStyle.call(null, { rowIndex }); + return headerRowStyle; + }; + const getHeaderRowClass = (rowIndex) => { + const classes = []; + const headerRowClassName = parent?.props.headerRowClassName; + if (isString(headerRowClassName)) classes.push(headerRowClassName); + else if (isFunction$1(headerRowClassName)) classes.push(headerRowClassName.call(null, { rowIndex })); + return classes.join(" "); + }; + const getHeaderCellStyle = (rowIndex, columnIndex, row, column) => { + let headerCellStyles = parent?.props.headerCellStyle ?? {}; + if (isFunction$1(headerCellStyles)) headerCellStyles = headerCellStyles.call(null, { + rowIndex, + columnIndex, + row, + column + }); + const fixedStyle = getFixedColumnOffset(columnIndex, column.fixed, props.store, row); + ensurePosition(fixedStyle, "left"); + ensurePosition(fixedStyle, "right"); + return Object.assign({}, headerCellStyles, fixedStyle); + }; + const getHeaderCellClass = (rowIndex, columnIndex, row, column) => { + const fixedClasses = getFixedColumnsClass(ns.b(), columnIndex, column.fixed, props.store, row); + const classes = [ + column.id, + column.order, + column.headerAlign, + column.className, + column.labelClassName, + ...fixedClasses + ]; + if (!column.children) classes.push("is-leaf"); + if (column.sortable) classes.push("is-sortable"); + const headerCellClassName = parent?.props.headerCellClassName; + if (isString(headerCellClassName)) classes.push(headerCellClassName); + else if (isFunction$1(headerCellClassName)) classes.push(headerCellClassName.call(null, { + rowIndex, + columnIndex, + row, + column + })); + classes.push(ns.e("cell")); + return classes.filter((className) => Boolean(className)).join(" "); + }; + return { + getHeaderRowStyle, + getHeaderRowClass, + getHeaderCellStyle, + getHeaderCellClass + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-header/utils-helper.ts + const getAllColumns = (columns) => { + const result = []; + columns.forEach((column) => { + if (column.children) { + result.push(column); + result.push.apply(result, getAllColumns(column.children)); + } else result.push(column); + }); + return result; + }; + const convertToRows = (originColumns) => { + let maxLevel = 1; + const traverse = (column, parent) => { + if (parent) { + column.level = parent.level + 1; + if (maxLevel < column.level) maxLevel = column.level; + } + if (column.children) { + let colSpan = 0; + column.children.forEach((subColumn) => { + traverse(subColumn, column); + colSpan += subColumn.colSpan; + }); + column.colSpan = colSpan; + } else column.colSpan = 1; + }; + originColumns.forEach((column) => { + column.level = 1; + traverse(column, void 0); + }); + const rows = []; + for (let i = 0; i < maxLevel; i++) rows.push([]); + getAllColumns(originColumns).forEach((column) => { + if (!column.children) column.rowSpan = maxLevel - column.level + 1; + else { + column.rowSpan = 1; + column.children.forEach((col) => col.isSubColumn = true); + } + rows[column.level - 1].push(column); + }); + return rows; + }; + function useUtils$1(props) { + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const columnRows = (0, vue.computed)(() => { + return convertToRows(props.store.states.originColumns.value); + }); + const isGroup = (0, vue.computed)(() => { + const result = columnRows.value.length > 1; + if (result && parent) parent.state.isGroup.value = true; + return result; + }); + const toggleAllSelection = (event) => { + event.stopPropagation(); + parent?.store.commit("toggleAllSelection"); + }; + return { + isGroup, + toggleAllSelection, + columnRows + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-header/index.ts + var table_header_default = (0, vue.defineComponent)({ + name: "ElTableHeader", + components: { ElCheckbox }, + props: { + fixed: { + type: String, + default: "" + }, + store: { + required: true, + type: Object + }, + border: Boolean, + defaultSort: { + type: Object, + default: () => { + return { + prop: "", + order: "" + }; + } + }, + appendFilterPanelTo: { type: String }, + allowDragLastColumn: { type: Boolean } + }, + setup(props, { emit }) { + const instance = (0, vue.getCurrentInstance)(); + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const ns = useNamespace("table"); + const filterPanels = (0, vue.ref)({}); + const { onColumnsChange, onScrollableChange } = useLayoutObserver(parent); + const isTableLayoutAuto = parent?.props.tableLayout === "auto"; + const saveIndexSelection = (0, vue.reactive)(/* @__PURE__ */ new Map()); + const theadRef = (0, vue.ref)(); + let delayId; + const updateFixedColumnStyle = () => { + delayId = setTimeout(() => { + if (saveIndexSelection.size > 0) { + saveIndexSelection.forEach((column, key) => { + const el = theadRef.value.querySelector(`.${key.replace(/\s/g, ".")}`); + if (el) column.width = el.getBoundingClientRect().width || column.width; + }); + saveIndexSelection.clear(); + } + }); + }; + (0, vue.watch)(saveIndexSelection, updateFixedColumnStyle); + (0, vue.onBeforeUnmount)(() => { + if (delayId) { + clearTimeout(delayId); + delayId = void 0; + } + }); + (0, vue.onMounted)(async () => { + await (0, vue.nextTick)(); + await (0, vue.nextTick)(); + const { prop, order } = props.defaultSort; + parent?.store.commit("sort", { + prop, + order, + init: true + }); + updateFixedColumnStyle(); + }); + const { handleHeaderClick, handleHeaderContextMenu, handleMouseDown, handleMouseMove, handleMouseOut, handleSortClick, handleFilterClick } = useEvent(props, emit); + const { getHeaderRowStyle, getHeaderRowClass, getHeaderCellStyle, getHeaderCellClass } = useStyle$2(props); + const { isGroup, toggleAllSelection, columnRows } = useUtils$1(props); + const { t } = useLocale(); + instance.state = { + onColumnsChange, + onScrollableChange + }; + instance.filterPanels = filterPanels; + return { + ns, + t, + filterPanels, + onColumnsChange, + onScrollableChange, + columnRows, + getHeaderRowClass, + getHeaderRowStyle, + getHeaderCellClass, + getHeaderCellStyle, + handleHeaderClick, + handleHeaderContextMenu, + handleMouseDown, + handleMouseMove, + handleMouseOut, + handleSortClick, + handleFilterClick, + isGroup, + toggleAllSelection, + saveIndexSelection, + isTableLayoutAuto, + theadRef, + updateFixedColumnStyle + }; + }, + render() { + const { ns, t, isGroup, columnRows, getHeaderCellStyle, getHeaderCellClass, getHeaderRowClass, getHeaderRowStyle, handleHeaderClick, handleHeaderContextMenu, handleMouseDown, handleMouseMove, handleSortClick, handleMouseOut, store, $parent, saveIndexSelection, isTableLayoutAuto } = this; + let rowSpan = 1; + return (0, vue.h)("thead", { + ref: "theadRef", + class: ns.is("group", isGroup) + }, columnRows.map((subColumns, rowIndex) => (0, vue.h)("tr", { + class: getHeaderRowClass(rowIndex), + key: rowIndex, + style: getHeaderRowStyle(rowIndex) + }, subColumns.map((column, cellIndex) => { + if (column.rowSpan > rowSpan) rowSpan = column.rowSpan; + const _class = getHeaderCellClass(rowIndex, cellIndex, subColumns, column); + if (isTableLayoutAuto && column.fixed) saveIndexSelection.set(_class, column); + return (0, vue.h)("th", { + class: _class, + colspan: column.colSpan, + key: `${column.id}-thead`, + rowspan: column.rowSpan, + scope: column.colSpan > 1 ? "colgroup" : "col", + ariaSort: column.sortable ? column.order : void 0, + style: getHeaderCellStyle(rowIndex, cellIndex, subColumns, column), + onClick: ($event) => { + if ($event.currentTarget?.classList.contains("noclick")) return; + handleHeaderClick($event, column); + }, + onContextmenu: ($event) => handleHeaderContextMenu($event, column), + onMousedown: ($event) => handleMouseDown($event, column), + onMousemove: ($event) => handleMouseMove($event, column), + onMouseout: handleMouseOut + }, [(0, vue.h)("div", { class: ["cell", column.filteredValue && column.filteredValue.length > 0 ? "highlight" : ""] }, [ + column.renderHeader ? column.renderHeader({ + column, + $index: cellIndex, + store, + _self: $parent + }) : column.label, + column.sortable && (0, vue.h)("button", { + type: "button", + class: "caret-wrapper", + "aria-label": t("el.table.sortLabel", { column: column.label || "" }), + onClick: ($event) => handleSortClick($event, column) + }, [(0, vue.h)("i", { + onClick: ($event) => handleSortClick($event, column, "ascending"), + class: "sort-caret ascending" + }), (0, vue.h)("i", { + onClick: ($event) => handleSortClick($event, column, "descending"), + class: "sort-caret descending" + })]), + column.filterable && (0, vue.h)(filter_panel_default, { + store, + placement: column.filterPlacement || "bottom-start", + appendTo: $parent?.appendFilterPanelTo, + column, + upDataColumn: (key, value) => { + column[key] = value; + } + }, { "filter-icon": () => column.renderFilterIcon ? column.renderFilterIcon({ filterOpened: column.filterOpened }) : null }) + ])]); + })))); + } + }); + +//#endregion +//#region ../../packages/components/table/src/table-body/events-helper.ts + function useEvents(props) { + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const tooltipContent = (0, vue.ref)(""); + const tooltipTrigger = (0, vue.ref)((0, vue.h)("div")); + const handleEvent = (event, row, name) => { + const table = parent; + const cell = getCell(event); + let column = null; + const namespace = table?.vnode.el?.dataset.prefix; + if (cell) { + column = getColumnByCell({ columns: props.store?.states.columns.value ?? [] }, cell, namespace); + if (column) table?.emit(`cell-${name}`, row, column, cell, event); + } + table?.emit(`row-${name}`, row, column, event); + }; + const handleDoubleClick = (event, row) => { + handleEvent(event, row, "dblclick"); + }; + const handleClick = (event, row) => { + props.store?.commit("setCurrentRow", row); + handleEvent(event, row, "click"); + }; + const handleContextMenu = (event, row) => { + handleEvent(event, row, "contextmenu"); + }; + const handleMouseEnter = debounce((index) => { + props.store?.commit("setHoverRow", index); + }, 30); + const handleMouseLeave = debounce(() => { + props.store?.commit("setHoverRow", null); + }, 30); + const getPadding = (el) => { + const style = window.getComputedStyle(el, null); + return { + left: Number.parseInt(style.paddingLeft, 10) || 0, + right: Number.parseInt(style.paddingRight, 10) || 0, + top: Number.parseInt(style.paddingTop, 10) || 0, + bottom: Number.parseInt(style.paddingBottom, 10) || 0 + }; + }; + const toggleRowClassByCell = (rowSpan, event, toggle) => { + let node = (event?.target)?.parentNode; + while (rowSpan > 1) { + node = node?.nextSibling; + if (!node || node.nodeName !== "TR") break; + toggle(node, "hover-row hover-fixed-row"); + rowSpan--; + } + }; + const handleCellMouseEnter = (event, row, tooltipOptions) => { + if (!parent) return; + const table = parent; + const cell = getCell(event); + const namespace = table?.vnode.el?.dataset.prefix; + let column = null; + if (cell) { + column = getColumnByCell({ columns: props.store?.states.columns.value ?? [] }, cell, namespace); + if (!column) return; + if (cell.rowSpan > 1) toggleRowClassByCell(cell.rowSpan, event, addClass); + const hoverState = table.hoverState = { + cell, + column, + row + }; + table?.emit("cell-mouse-enter", hoverState.row, hoverState.column, hoverState.cell, event); + } + if (!tooltipOptions) { + if (removePopper?.trigger === cell) removePopper?.(); + return; + } + const cellChild = event.target.querySelector(".cell"); + if (!(hasClass(cellChild, `${namespace}-tooltip`) && cellChild.childNodes.length && cellChild.textContent?.trim())) return; + const range = document.createRange(); + range.setStart(cellChild, 0); + range.setEnd(cellChild, cellChild.childNodes.length); + /** detail: https://github.com/element-plus/element-plus/issues/10790 + * What went wrong? + * UI > Browser > Zoom, In Blink/WebKit, getBoundingClientRect() sometimes returns inexact values, probably due to lost precision during internal calculations. In the example above: + * - Expected: 188 + * - Actual: 188.00000762939453 + */ + const { width: rangeWidth, height: rangeHeight } = range.getBoundingClientRect(); + const { width: cellChildWidth, height: cellChildHeight } = cellChild.getBoundingClientRect(); + const { top, left, right, bottom } = getPadding(cellChild); + const horizontalPadding = left + right; + const verticalPadding = top + bottom; + if (isGreaterThan(rangeWidth + horizontalPadding, cellChildWidth) || isGreaterThan(rangeHeight + verticalPadding, cellChildHeight) || isGreaterThan(cellChild.scrollWidth, cellChildWidth)) createTablePopper(tooltipOptions, (cell?.innerText || cell?.textContent) ?? "", row, column, cell, table); + else if (removePopper?.trigger === cell) removePopper?.(); + }; + const handleCellMouseLeave = (event) => { + const cell = getCell(event); + if (!cell) return; + if (cell.rowSpan > 1) toggleRowClassByCell(cell.rowSpan, event, removeClass); + const oldHoverState = parent?.hoverState; + parent?.emit("cell-mouse-leave", oldHoverState?.row, oldHoverState?.column, oldHoverState?.cell, event); + }; + return { + handleDoubleClick, + handleClick, + handleContextMenu, + handleMouseEnter, + handleMouseLeave, + handleCellMouseEnter, + handleCellMouseLeave, + tooltipContent, + tooltipTrigger + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-body/styles-helper.ts + function useStyles$1(props) { + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const ns = useNamespace("table"); + const getRowStyle = (row, rowIndex) => { + const rowStyle = parent?.props.rowStyle; + if (isFunction$1(rowStyle)) return rowStyle.call(null, { + row, + rowIndex + }); + return rowStyle || null; + }; + const getRowClass = (row, rowIndex, displayIndex) => { + const classes = [ns.e("row")]; + if (parent?.props.highlightCurrentRow && row === props.store?.states.currentRow.value) classes.push("current-row"); + if (props.stripe && displayIndex % 2 === 1) classes.push(ns.em("row", "striped")); + const rowClassName = parent?.props.rowClassName; + if (isString(rowClassName)) classes.push(rowClassName); + else if (isFunction$1(rowClassName)) classes.push(rowClassName.call(null, { + row, + rowIndex + })); + return classes; + }; + const getCellStyle = (rowIndex, columnIndex, row, column) => { + const cellStyle = parent?.props.cellStyle; + let cellStyles = cellStyle ?? {}; + if (isFunction$1(cellStyle)) cellStyles = cellStyle.call(null, { + rowIndex, + columnIndex, + row, + column + }); + const fixedStyle = getFixedColumnOffset(columnIndex, props?.fixed, props.store); + ensurePosition(fixedStyle, "left"); + ensurePosition(fixedStyle, "right"); + return Object.assign({}, cellStyles, fixedStyle); + }; + const getCellClass = (rowIndex, columnIndex, row, column, offset) => { + const fixedClasses = getFixedColumnsClass(ns.b(), columnIndex, props?.fixed, props.store, void 0, offset); + const classes = [ + column.id, + column.align, + column.className, + ...fixedClasses + ]; + const cellClassName = parent?.props.cellClassName; + if (isString(cellClassName)) classes.push(cellClassName); + else if (isFunction$1(cellClassName)) classes.push(cellClassName.call(null, { + rowIndex, + columnIndex, + row, + column + })); + classes.push(ns.e("cell")); + return classes.filter((className) => Boolean(className)).join(" "); + }; + const getSpan = (row, column, rowIndex, columnIndex) => { + let rowspan = 1; + let colspan = 1; + const fn = parent?.props.spanMethod; + if (isFunction$1(fn)) { + const result = fn({ + row, + column, + rowIndex, + columnIndex + }); + if (isArray$1(result)) { + rowspan = result[0]; + colspan = result[1]; + } else if (isObject$1(result)) { + rowspan = result.rowspan; + colspan = result.colspan; + } + } + return { + rowspan, + colspan + }; + }; + const getColspanRealWidth = (columns, colspan, index) => { + if (colspan < 1) return columns[index].realWidth; + const widthArr = columns.map(({ realWidth, width }) => realWidth || width).slice(index, index + colspan); + return Number(widthArr.reduce((acc, width) => Number(acc) + Number(width), -1)); + }; + return { + getRowStyle, + getRowClass, + getCellStyle, + getCellClass, + getSpan, + getColspanRealWidth + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-body/td-wrapper.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$16 = ["colspan", "rowspan"]; + var td_wrapper_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "TableTdWrapper", + __name: "td-wrapper", + props: { + colspan: { + type: Number, + default: 1 + }, + rowspan: { + type: Number, + default: 1 + } + }, + setup(__props) { + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("td", { + colspan: __props.colspan, + rowspan: __props.rowspan + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 8, _hoisted_1$16); + }; + } + }); + +//#endregion +//#region ../../packages/components/table/src/table-body/td-wrapper.vue + var td_wrapper_default = td_wrapper_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/table/src/table-body/render-helper.ts + function useRender$1(props) { + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const ns = useNamespace("table"); + const { handleDoubleClick, handleClick, handleContextMenu, handleMouseEnter, handleMouseLeave, handleCellMouseEnter, handleCellMouseLeave, tooltipContent, tooltipTrigger } = useEvents(props); + const { getRowStyle, getRowClass, getCellStyle, getCellClass, getSpan, getColspanRealWidth } = useStyles$1(props); + let displayIndex = -1; + const firstDefaultColumnIndex = (0, vue.computed)(() => { + return props.store?.states.columns.value.findIndex(({ type }) => type === "default"); + }); + const getKeyOfRow = (row, index) => { + const rowKey = (parent?.props)?.rowKey; + if (rowKey) return getRowIdentity(row, rowKey); + return index; + }; + const rowRender = (row, $index, treeRowData, expanded = false) => { + const { tooltipEffect, tooltipOptions, store } = props; + const { indent, columns } = store.states; + const rowClasses = []; + let display = true; + if (treeRowData) { + rowClasses.push(ns.em("row", `level-${treeRowData.level}`)); + display = !!treeRowData.display; + } + if ($index === 0) displayIndex = -1; + if (props.stripe && display) displayIndex++; + rowClasses.push(...getRowClass(row, $index, displayIndex)); + return (0, vue.h)("tr", { + style: [display ? null : { display: "none" }, getRowStyle(row, $index)], + class: rowClasses, + key: getKeyOfRow(row, $index), + onDblclick: ($event) => handleDoubleClick($event, row), + onClick: ($event) => handleClick($event, row), + onContextmenu: ($event) => handleContextMenu($event, row), + onMouseenter: () => handleMouseEnter($index), + onMouseleave: handleMouseLeave + }, columns.value.map((column, cellIndex) => { + const { rowspan, colspan } = getSpan(row, column, $index, cellIndex); + if (!rowspan || !colspan) return null; + const columnData = Object.assign({}, column); + columnData.realWidth = getColspanRealWidth(columns.value, colspan, cellIndex); + const data = { + store, + _self: props.context || parent, + column: columnData, + row, + $index, + cellIndex, + expanded + }; + if (cellIndex === firstDefaultColumnIndex.value && treeRowData) { + data.treeNode = { + indent: treeRowData.level && treeRowData.level * indent.value, + level: treeRowData.level + }; + if (isBoolean(treeRowData.expanded)) { + data.treeNode.expanded = treeRowData.expanded; + if ("loading" in treeRowData) data.treeNode.loading = treeRowData.loading; + if ("noLazyChildren" in treeRowData) data.treeNode.noLazyChildren = treeRowData.noLazyChildren; + } + } + const baseKey = `${getKeyOfRow(row, $index)},${cellIndex}`; + const patchKey = columnData.columnKey || columnData.rawColumnKey || ""; + const mergedTooltipOptions = column.showOverflowTooltip && merge({ effect: tooltipEffect }, tooltipOptions, column.showOverflowTooltip); + return (0, vue.h)(td_wrapper_default, { + style: getCellStyle($index, cellIndex, row, column), + class: getCellClass($index, cellIndex, row, column, colspan - 1), + key: `${patchKey}${baseKey}`, + rowspan, + colspan, + onMouseenter: ($event) => handleCellMouseEnter($event, row, mergedTooltipOptions), + onMouseleave: handleCellMouseLeave + }, { default: () => cellChildren(cellIndex, column, data) }); + })); + }; + const cellChildren = (_cellIndex, column, data) => { + return column.renderCell(data); + }; + const wrappedRowRender = (row, $index) => { + const store = props.store; + const { isRowExpanded, assertRowKey } = store; + const { treeData, lazyTreeNodeMap, childrenColumnName, rowKey } = store.states; + const columns = store.states.columns.value; + if (columns.some(({ type }) => type === "expand")) { + const expanded = isRowExpanded(row); + const tr = rowRender(row, $index, void 0, expanded); + const renderExpanded = parent?.renderExpanded; + if (!renderExpanded) { + console.error("[Element Error]renderExpanded is required."); + return tr; + } + const rows = [[tr]]; + if (parent.props.preserveExpandedContent || expanded) rows[0].push((0, vue.h)("tr", { + key: `expanded-row__${tr.key}`, + style: { display: expanded ? "" : "none" } + }, [(0, vue.h)("td", { + colspan: columns.length, + class: `${ns.e("cell")} ${ns.e("expanded-cell")}` + }, [renderExpanded({ + row, + $index, + store, + expanded + })])])); + return rows; + } else if (Object.keys(treeData.value).length) { + assertRowKey(); + const key = getRowIdentity(row, rowKey.value); + let cur = treeData.value[key]; + let treeRowData = null; + if (cur) { + treeRowData = { + expanded: cur.expanded, + level: cur.level, + display: true, + noLazyChildren: void 0, + loading: void 0 + }; + if (isBoolean(cur.lazy)) { + if (treeRowData && isBoolean(cur.loaded) && cur.loaded) treeRowData.noLazyChildren = !(cur.children && cur.children.length); + treeRowData.loading = cur.loading; + } + } + const tmp = [rowRender(row, $index, treeRowData ?? void 0)]; + if (cur) { + let i = 0; + const traverse = (children, parent) => { + if (!(children && children.length && parent)) return; + children.forEach((node) => { + const innerTreeRowData = { + display: parent.display && parent.expanded, + level: parent.level + 1, + expanded: false, + noLazyChildren: false, + loading: false + }; + const childKey = getRowIdentity(node, rowKey.value); + if (isPropAbsent(childKey)) throw new Error("For nested data item, row-key is required."); + cur = { ...treeData.value[childKey] }; + if (cur) { + innerTreeRowData.expanded = cur.expanded; + cur.level = cur.level || innerTreeRowData.level; + cur.display = !!(cur.expanded && innerTreeRowData.display); + if (isBoolean(cur.lazy)) { + if (isBoolean(cur.loaded) && cur.loaded) innerTreeRowData.noLazyChildren = !(cur.children && cur.children.length); + innerTreeRowData.loading = cur.loading; + } + } + i++; + tmp.push(rowRender(node, $index + i, innerTreeRowData)); + if (cur) traverse(lazyTreeNodeMap.value[childKey] || node[childrenColumnName.value], cur); + }); + }; + cur.display = true; + traverse(lazyTreeNodeMap.value[key] || row[childrenColumnName.value], cur); + } + return tmp; + } else return rowRender(row, $index, void 0); + }; + return { + wrappedRowRender, + tooltipContent, + tooltipTrigger + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-body/defaults.ts + const defaultProps$1 = { + store: { + required: true, + 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 + }; + +//#endregion +//#region ../../packages/components/table/src/table-body/index.ts + var table_body_default = (0, vue.defineComponent)({ + name: "ElTableBody", + props: defaultProps$1, + setup(props) { + const instance = (0, vue.getCurrentInstance)(); + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const ns = useNamespace("table"); + const { wrappedRowRender, tooltipContent, tooltipTrigger } = useRender$1(props); + const { onColumnsChange, onScrollableChange } = useLayoutObserver(parent); + const hoveredCellList = []; + (0, vue.watch)(props.store?.states.hoverRow, (newVal, oldVal) => { + const el = instance?.vnode.el; + const rows = Array.from(el?.children || []).filter((e) => e?.classList.contains(`${ns.e("row")}`)); + let rowNum = newVal; + const childNodes = rows[rowNum]?.childNodes; + if (childNodes?.length) { + let control = 0; + Array.from(childNodes).reduce((acc, item, index) => { + if (childNodes[index]?.colSpan > 1) control = childNodes[index]?.colSpan; + if (item.nodeName !== "TD" && control === 0) acc.push(index); + control > 0 && control--; + return acc; + }, []).forEach((rowIndex) => { + rowNum = newVal; + while (rowNum > 0) { + const preChildNodes = rows[rowNum - 1]?.childNodes; + if (preChildNodes[rowIndex] && preChildNodes[rowIndex].nodeName === "TD" && preChildNodes[rowIndex].rowSpan > 1) { + addClass(preChildNodes[rowIndex], "hover-cell"); + hoveredCellList.push(preChildNodes[rowIndex]); + break; + } + rowNum--; + } + }); + } else { + hoveredCellList.forEach((item) => removeClass(item, "hover-cell")); + hoveredCellList.length = 0; + } + if (!props.store?.states.isComplex.value || !isClient) return; + rAF(() => { + const oldRow = rows[oldVal]; + const newRow = rows[newVal]; + if (oldRow && !oldRow.classList.contains("hover-fixed-row")) removeClass(oldRow, "hover-row"); + if (newRow) addClass(newRow, "hover-row"); + }); + }); + (0, vue.onUnmounted)(() => { + removePopper?.(); + }); + return { + ns, + onColumnsChange, + onScrollableChange, + wrappedRowRender, + tooltipContent, + tooltipTrigger + }; + }, + render() { + const { wrappedRowRender, store } = this; + return (0, vue.h)("tbody", { tabIndex: -1 }, [(store?.states.data.value || []).reduce((acc, row) => { + return acc.concat(wrappedRowRender(row, acc.length)); + }, [])]); + } + }); + +//#endregion +//#region ../../packages/components/table/src/table-footer/mapState-helper.ts + function useMapState() { + const store = (0, vue.inject)(TABLE_INJECTION_KEY)?.store; + return { + leftFixedLeafCount: (0, vue.computed)(() => { + return store?.states.fixedLeafColumnsLength.value ?? 0; + }), + rightFixedLeafCount: (0, vue.computed)(() => { + return store?.states.rightFixedColumns.value.length ?? 0; + }), + columnsCount: (0, vue.computed)(() => { + return store?.states.columns.value.length ?? 0; + }), + leftFixedCount: (0, vue.computed)(() => { + return store?.states.fixedColumns.value.length ?? 0; + }), + rightFixedCount: (0, vue.computed)(() => { + return store?.states.rightFixedColumns.value.length ?? 0; + }), + columns: (0, vue.computed)(() => store?.states.columns.value ?? []) + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-footer/style-helper.ts + function useStyle$1(props) { + const { columns } = useMapState(); + const ns = useNamespace("table"); + const getCellClasses = (columns, cellIndex) => { + const column = columns[cellIndex]; + const classes = [ + ns.e("cell"), + column.id, + column.align, + column.labelClassName, + ...getFixedColumnsClass(ns.b(), cellIndex, column.fixed, props.store) + ]; + if (column.className) classes.push(column.className); + if (!column.children) classes.push(ns.is("leaf")); + return classes; + }; + const getCellStyles = (column, cellIndex) => { + const fixedStyle = getFixedColumnOffset(cellIndex, column.fixed, props.store); + ensurePosition(fixedStyle, "left"); + ensurePosition(fixedStyle, "right"); + return fixedStyle; + }; + return { + getCellClasses, + getCellStyles, + columns + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-footer/index.ts + var table_footer_default = (0, vue.defineComponent)({ + name: "ElTableFooter", + props: { + fixed: { + type: String, + default: "" + }, + store: { + required: true, + type: Object + }, + summaryMethod: Function, + sumText: String, + border: Boolean, + defaultSort: { + type: Object, + default: () => { + return { + prop: "", + order: "" + }; + } + } + }, + setup(props) { + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const ns = useNamespace("table"); + const { getCellClasses, getCellStyles, columns } = useStyle$1(props); + const { onScrollableChange, onColumnsChange } = useLayoutObserver(parent); + return { + ns, + onScrollableChange, + onColumnsChange, + getCellClasses, + getCellStyles, + columns + }; + }, + render() { + const { columns, getCellStyles, getCellClasses, summaryMethod, sumText } = this; + const data = this.store.states.data.value; + let sums = []; + if (summaryMethod) sums = summaryMethod({ + columns, + data + }); + else columns.forEach((column, index) => { + if (index === 0) { + sums[index] = sumText; + return; + } + const values = data.map((item) => Number(item[column.property])); + const precisions = []; + let notNumber = true; + values.forEach((value) => { + if (!Number.isNaN(+value)) { + notNumber = false; + const decimal = `${value}`.split(".")[1]; + precisions.push(decimal ? decimal.length : 0); + } + }); + const precision = Math.max.apply(null, precisions); + if (!notNumber) sums[index] = values.reduce((prev, curr) => { + const value = Number(curr); + if (!Number.isNaN(+value)) return Number.parseFloat((prev + curr).toFixed(Math.min(precision, 20))); + else return prev; + }, 0); + else sums[index] = ""; + }); + return (0, vue.h)((0, vue.h)("tfoot", [(0, vue.h)("tr", {}, [...columns.map((column, cellIndex) => (0, vue.h)("td", { + key: cellIndex, + colspan: column.colSpan, + rowspan: column.rowSpan, + class: getCellClasses(columns, cellIndex), + style: getCellStyles(column, cellIndex) + }, [(0, vue.h)("div", { class: ["cell", column.labelClassName] }, [sums[cellIndex]])]))])])); + } + }); + +//#endregion +//#region ../../packages/components/table/src/table/utils-helper.ts + function useUtils(store) { + const setCurrentRow = (row) => { + store.commit("setCurrentRow", row); + }; + const getSelectionRows = () => { + return store.getSelectionRows(); + }; + const toggleRowSelection = (row, selected, ignoreSelectable = true) => { + store.toggleRowSelection(row, selected, false, ignoreSelectable); + store.updateAllSelected(); + }; + const clearSelection = () => { + store.clearSelection(); + }; + const clearFilter = (columnKeys) => { + store.clearFilter(columnKeys); + }; + const toggleAllSelection = () => { + store.commit("toggleAllSelection"); + }; + const toggleRowExpansion = (row, expanded) => { + store.toggleRowExpansionAdapter(row, expanded); + }; + const clearSort = () => { + store.clearSort(); + }; + const sort = (prop, order) => { + store.commit("sort", { + prop, + order + }); + }; + const updateKeyChildren = (key, data) => { + store.updateKeyChildren(key, data); + }; + return { + setCurrentRow, + getSelectionRows, + toggleRowSelection, + clearSelection, + clearFilter, + toggleAllSelection, + toggleRowExpansion, + clearSort, + sort, + updateKeyChildren + }; + } + +//#endregion +//#region ../../packages/components/table/src/table/style-helper.ts + function useStyle(props, layout, store, table) { + const isHidden = (0, vue.ref)(false); + const renderExpanded = (0, vue.ref)(null); + const resizeProxyVisible = (0, vue.ref)(false); + const setDragVisible = (visible) => { + resizeProxyVisible.value = visible; + }; + const resizeState = (0, vue.ref)({ + width: null, + height: null, + headerHeight: null + }); + const isGroup = (0, vue.ref)(false); + const scrollbarViewStyle = { + display: "inline-block", + verticalAlign: "middle" + }; + const tableWidth = (0, vue.ref)(); + const tableScrollHeight = (0, vue.ref)(0); + const bodyScrollHeight = (0, vue.ref)(0); + const headerScrollHeight = (0, vue.ref)(0); + const footerScrollHeight = (0, vue.ref)(0); + const appendScrollHeight = (0, vue.ref)(0); + (0, vue.watch)(() => props.height, (value) => { + layout.setHeight(value ?? null); + }, { immediate: true }); + (0, vue.watch)(() => props.maxHeight, (value) => { + layout.setMaxHeight(value ?? null); + }, { immediate: true }); + (0, vue.watch)(() => [props.currentRowKey, store.states.rowKey], ([currentRowKey, rowKey]) => { + if (!(0, vue.unref)(rowKey) || !(0, vue.unref)(currentRowKey)) return; + store.setCurrentRowKey(`${currentRowKey}`); + }, { immediate: true }); + (0, vue.watch)(() => props.data, (data) => { + table.store.commit("setData", data); + }, { + immediate: true, + deep: true + }); + (0, vue.watchEffect)(() => { + if (props.expandRowKeys) store.setExpandRowKeysAdapter(props.expandRowKeys); + }); + const handleMouseLeave = () => { + table.store.commit("setHoverRow", null); + if (table.hoverState) table.hoverState = null; + }; + const handleHeaderFooterMousewheel = (_event, data) => { + const { pixelX, pixelY } = data; + if (Math.abs(pixelX) >= Math.abs(pixelY)) table.refs.bodyWrapper.scrollLeft += data.pixelX / 5; + }; + const shouldUpdateHeight = (0, vue.computed)(() => { + return props.height || props.maxHeight || store.states.fixedColumns.value.length > 0 || store.states.rightFixedColumns.value.length > 0; + }); + const tableBodyStyles = (0, vue.computed)(() => { + return { width: layout.bodyWidth.value ? `${layout.bodyWidth.value}px` : "" }; + }); + const doLayout = () => { + if (shouldUpdateHeight.value) layout.updateElsHeight(); + layout.updateColumnsWidth(); + if (typeof window === "undefined") return; + requestAnimationFrame(syncPosition); + }; + (0, vue.onMounted)(async () => { + await (0, vue.nextTick)(); + store.updateColumns(); + bindEvents(); + requestAnimationFrame(doLayout); + const el = table.vnode.el; + const tableHeader = table.refs.headerWrapper; + if (props.flexible && el && el.parentElement) el.parentElement.style.minWidth = "0"; + resizeState.value = { + width: tableWidth.value = el.offsetWidth, + height: el.offsetHeight, + headerHeight: props.showHeader && tableHeader ? tableHeader.offsetHeight : null + }; + store.states.columns.value.forEach((column) => { + if (column.filteredValue && column.filteredValue.length) table.store.commit("filterChange", { + column, + values: column.filteredValue, + silent: true + }); + }); + table.$ready = true; + }); + const setScrollClassByEl = (el, className) => { + if (!el) return; + const classList = Array.from(el.classList).filter((item) => !item.startsWith("is-scrolling-")); + classList.push(layout.scrollX.value ? className : "is-scrolling-none"); + el.className = classList.join(" "); + }; + const setScrollClass = (className) => { + const { tableWrapper } = table.refs; + setScrollClassByEl(tableWrapper, className); + }; + const hasScrollClass = (className) => { + const { tableWrapper } = table.refs; + return !!(tableWrapper && tableWrapper.classList.contains(className)); + }; + const syncPosition = function() { + if (!table.refs.scrollBarRef) return; + if (!layout.scrollX.value) { + const scrollingNoneClass = "is-scrolling-none"; + if (!hasScrollClass(scrollingNoneClass)) setScrollClass(scrollingNoneClass); + return; + } + const scrollContainer = table.refs.scrollBarRef.wrapRef; + if (!scrollContainer) return; + const { scrollLeft, offsetWidth, scrollWidth } = scrollContainer; + const { headerWrapper, footerWrapper } = table.refs; + if (headerWrapper) headerWrapper.scrollLeft = scrollLeft; + if (footerWrapper) footerWrapper.scrollLeft = scrollLeft; + if (scrollLeft >= scrollWidth - offsetWidth - 1) setScrollClass("is-scrolling-right"); + else if (scrollLeft === 0) setScrollClass("is-scrolling-left"); + else setScrollClass("is-scrolling-middle"); + }; + const bindEvents = () => { + if (!table.refs.scrollBarRef) return; + if (table.refs.scrollBarRef.wrapRef) useEventListener(table.refs.scrollBarRef.wrapRef, "scroll", syncPosition, { passive: true }); + if (props.fit) useResizeObserver(table.vnode.el, resizeListener); + else useEventListener(window, "resize", resizeListener); + useResizeObserver(table.refs.tableInnerWrapper, () => { + resizeListener(); + table.refs?.scrollBarRef?.update(); + }); + }; + const resizeListener = () => { + const el = table.vnode.el; + if (!table.$ready || !el) return; + let shouldUpdateLayout = false; + const { width: oldWidth, height: oldHeight, headerHeight: oldHeaderHeight } = resizeState.value; + const width = tableWidth.value = el.offsetWidth; + if (oldWidth !== width) shouldUpdateLayout = true; + const height = el.offsetHeight; + if ((props.height || shouldUpdateHeight.value) && oldHeight !== height) shouldUpdateLayout = true; + const tableHeader = props.tableLayout === "fixed" ? table.refs.headerWrapper : table.refs.tableHeaderRef?.$el; + if (props.showHeader && tableHeader?.offsetHeight !== oldHeaderHeight) shouldUpdateLayout = true; + tableScrollHeight.value = table.refs.tableWrapper?.scrollHeight || 0; + headerScrollHeight.value = tableHeader?.scrollHeight || 0; + footerScrollHeight.value = table.refs.footerWrapper?.offsetHeight || 0; + appendScrollHeight.value = table.refs.appendWrapper?.offsetHeight || 0; + bodyScrollHeight.value = tableScrollHeight.value - headerScrollHeight.value - footerScrollHeight.value - appendScrollHeight.value; + if (shouldUpdateLayout) { + resizeState.value = { + width, + height, + headerHeight: props.showHeader && tableHeader?.offsetHeight || 0 + }; + doLayout(); + } + }; + const tableSize = useFormSize(); + const bodyWidth = (0, vue.computed)(() => { + const { bodyWidth: bodyWidth_, scrollY, gutterWidth } = layout; + return bodyWidth_.value ? `${bodyWidth_.value - (scrollY.value ? gutterWidth : 0)}px` : ""; + }); + const tableLayout = (0, vue.computed)(() => { + if (props.maxHeight) return "fixed"; + return props.tableLayout; + }); + return { + isHidden, + renderExpanded, + setDragVisible, + isGroup, + handleMouseLeave, + handleHeaderFooterMousewheel, + tableSize, + emptyBlockStyle: (0, vue.computed)(() => { + if (props.data && props.data.length) return; + let height = "100%"; + if (props.height && bodyScrollHeight.value) height = `${bodyScrollHeight.value}px`; + const width = tableWidth.value; + return { + width: width ? `${width}px` : "", + height + }; + }), + resizeProxyVisible, + bodyWidth, + resizeState, + doLayout, + tableBodyStyles, + tableLayout, + scrollbarViewStyle, + scrollbarStyle: (0, vue.computed)(() => { + if (props.height) return { height: "100%" }; + if (props.maxHeight) if (!Number.isNaN(Number(props.maxHeight))) return { maxHeight: `${+props.maxHeight - headerScrollHeight.value - footerScrollHeight.value}px` }; + else return { maxHeight: `calc(${props.maxHeight} - ${headerScrollHeight.value + footerScrollHeight.value}px)` }; + return {}; + }) + }; + } + +//#endregion +//#region ../../packages/components/table/src/table/key-render-helper.ts + function useKeyRender(table) { + let observer; + const initWatchDom = () => { + const columnsWrapper = table.vnode.el.querySelector(".hidden-columns"); + const config = { + childList: true, + subtree: true + }; + const updateOrderFns = table.store.states.updateOrderFns; + observer = new MutationObserver(() => { + updateOrderFns.forEach((fn) => fn()); + }); + observer.observe(columnsWrapper, config); + }; + (0, vue.onMounted)(() => { + initWatchDom(); + }); + (0, vue.onUnmounted)(() => { + observer?.disconnect(); + }); + } + +//#endregion +//#region ../../packages/components/table/src/table/defaults.ts + var defaults_default$2 = { + data: { + type: Array, + default: () => [] + }, + size: useSizeProp, + width: [String, Number], + height: [String, Number], + maxHeight: [String, Number], + fit: { + type: Boolean, + default: true + }, + stripe: Boolean, + border: Boolean, + rowKey: [String, Function], + showHeader: { + type: Boolean, + default: true + }, + 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: true + }, + indent: { + type: Number, + default: 16 + }, + treeProps: { + type: Object, + default: () => { + return { + hasChildren: "hasChildren", + children: "children", + checkStrictly: false + }; + } + }, + lazy: Boolean, + load: Function, + style: { + type: [ + String, + Object, + Array + ], + 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: true + }, + preserveExpandedContent: Boolean, + nativeScrollbar: Boolean + }; + +//#endregion +//#region ../../packages/components/table/src/h-helper.ts + function hColgroup(props) { + const isAuto = props.tableLayout === "auto"; + let columns = props.columns || []; + if (isAuto) { + if (columns.every(({ width }) => isUndefined(width))) columns = []; + } + const getPropsData = (column) => { + const propsData = { + key: `${props.tableLayout}_${column.id}`, + style: {}, + name: void 0 + }; + if (isAuto) propsData.style = { width: `${column.width}px` }; + else propsData.name = column.id; + return propsData; + }; + return (0, vue.h)("colgroup", {}, columns.map((column) => (0, vue.h)("col", getPropsData(column)))); + } + hColgroup.props = ["columns", "tableLayout"]; + +//#endregion +//#region ../../packages/components/table/src/composables/use-scrollbar.ts + const useScrollbar$1 = () => { + const scrollBarRef = (0, vue.ref)(); + const scrollTo = (options, yCoord) => { + const scrollbar = scrollBarRef.value; + if (scrollbar) scrollbar.scrollTo(options, yCoord); + }; + const setScrollPosition = (position, offset) => { + const scrollbar = scrollBarRef.value; + if (scrollbar && isNumber(offset) && ["Top", "Left"].includes(position)) scrollbar[`setScroll${position}`](offset); + }; + const setScrollTop = (top) => setScrollPosition("Top", top); + const setScrollLeft = (left) => setScrollPosition("Left", left); + return { + scrollBarRef, + scrollTo, + setScrollTop, + setScrollLeft + }; + }; + +//#endregion +//#region ../../packages/components/table/src/table.vue?vue&type=script&lang.ts + let tableIdSeed = 1; + var table_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElTable", + directives: { Mousewheel }, + components: { + TableHeader: table_header_default, + TableBody: table_body_default, + TableFooter: table_footer_default, + ElScrollbar, + hColgroup + }, + props: defaults_default$2, + emits: [ + "select", + "select-all", + "selection-change", + "cell-mouse-enter", + "cell-mouse-leave", + "cell-contextmenu", + "cell-click", + "cell-dblclick", + "row-click", + "row-contextmenu", + "row-dblclick", + "header-click", + "header-contextmenu", + "sort-change", + "filter-change", + "current-change", + "header-dragend", + "expand-change", + "scroll" + ], + setup(props) { + const { t } = useLocale(); + const ns = useNamespace("table"); + const globalConfig = useGlobalConfig("table"); + const table = (0, vue.getCurrentInstance)(); + (0, vue.provide)(TABLE_INJECTION_KEY, table); + const store = createStore(table, props); + table.store = store; + const layout = new TableLayout({ + store: table.store, + table, + fit: props.fit, + showHeader: props.showHeader + }); + table.layout = layout; + const isEmpty = (0, vue.computed)(() => (store.states.data.value || []).length === 0); + /** + * open functions + */ + const { setCurrentRow, getSelectionRows, toggleRowSelection, clearSelection, clearFilter, toggleAllSelection, toggleRowExpansion, clearSort, sort, updateKeyChildren } = useUtils(store); + const { isHidden, renderExpanded, setDragVisible, isGroup, handleMouseLeave, handleHeaderFooterMousewheel, tableSize, emptyBlockStyle, resizeProxyVisible, bodyWidth, resizeState, doLayout, tableBodyStyles, tableLayout, scrollbarViewStyle, scrollbarStyle } = useStyle(props, layout, store, table); + const { scrollBarRef, scrollTo, setScrollLeft, setScrollTop } = useScrollbar$1(); + const debouncedUpdateLayout = debounce(doLayout, 50); + const tableId = `${ns.namespace.value}-table_${tableIdSeed++}`; + table.tableId = tableId; + table.state = { + isGroup, + resizeState, + doLayout, + debouncedUpdateLayout + }; + const computedSumText = (0, vue.computed)(() => props.sumText ?? t("el.table.sumText")); + const computedEmptyText = (0, vue.computed)(() => { + return props.emptyText ?? t("el.table.emptyText"); + }); + const computedTooltipEffect = (0, vue.computed)(() => props.tooltipEffect ?? globalConfig.value?.tooltipEffect); + const computedTooltipOptions = (0, vue.computed)(() => props.tooltipOptions ?? globalConfig.value?.tooltipOptions); + const columns = (0, vue.computed)(() => { + return convertToRows(store.states.originColumns.value)[0]; + }); + useKeyRender(table); + (0, vue.onBeforeUnmount)(() => { + debouncedUpdateLayout.cancel(); + }); + return { + ns, + layout, + store, + columns, + handleHeaderFooterMousewheel, + handleMouseLeave, + tableId, + tableSize, + isHidden, + isEmpty, + renderExpanded, + resizeProxyVisible, + resizeState, + isGroup, + bodyWidth, + tableBodyStyles, + emptyBlockStyle, + debouncedUpdateLayout, + setCurrentRow, + getSelectionRows, + toggleRowSelection, + clearSelection, + clearFilter, + toggleAllSelection, + toggleRowExpansion, + clearSort, + doLayout, + sort, + updateKeyChildren, + t, + setDragVisible, + context: table, + computedSumText, + computedEmptyText, + computedTooltipEffect, + computedTooltipOptions, + tableLayout, + scrollbarViewStyle, + scrollbarStyle, + scrollBarRef, + scrollTo, + setScrollLeft, + setScrollTop, + allowDragLastColumn: props.allowDragLastColumn + }; + } + }); + +//#endregion +//#region ../../packages/components/table/src/table.vue + const _hoisted_1$15 = ["data-prefix"]; + const _hoisted_2$9 = { + ref: "hiddenColumns", + class: "hidden-columns" + }; + function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) { + const _component_hColgroup = (0, vue.resolveComponent)("hColgroup"); + const _component_table_header = (0, vue.resolveComponent)("table-header"); + const _component_table_body = (0, vue.resolveComponent)("table-body"); + const _component_table_footer = (0, vue.resolveComponent)("table-footer"); + const _component_el_scrollbar = (0, vue.resolveComponent)("el-scrollbar"); + const _directive_mousewheel = (0, vue.resolveDirective)("mousewheel"); + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref: "tableWrapper", + class: (0, vue.normalizeClass)([ + { + [_ctx.ns.m("fit")]: _ctx.fit, + [_ctx.ns.m("striped")]: _ctx.stripe, + [_ctx.ns.m("border")]: _ctx.border || _ctx.isGroup, + [_ctx.ns.m("hidden")]: _ctx.isHidden, + [_ctx.ns.m("group")]: _ctx.isGroup, + [_ctx.ns.m("fluid-height")]: _ctx.maxHeight, + [_ctx.ns.m("scrollable-x")]: _ctx.layout.scrollX.value, + [_ctx.ns.m("scrollable-y")]: _ctx.layout.scrollY.value, + [_ctx.ns.m("enable-row-hover")]: !_ctx.store.states.isComplex.value, + [_ctx.ns.m("enable-row-transition")]: (_ctx.store.states.data.value || []).length !== 0 && (_ctx.store.states.data.value || []).length < 100, + "has-footer": _ctx.showSummary + }, + _ctx.ns.m(_ctx.tableSize), + _ctx.className, + _ctx.ns.b(), + _ctx.ns.m(`layout-${_ctx.tableLayout}`) + ]), + style: (0, vue.normalizeStyle)(_ctx.style), + "data-prefix": _ctx.ns.namespace.value, + onMouseleave: _cache[1] || (_cache[1] = (...args) => _ctx.handleMouseLeave && _ctx.handleMouseLeave(...args)) + }, [(0, vue.createElementVNode)("div", { + ref: "tableInnerWrapper", + class: (0, vue.normalizeClass)(_ctx.ns.e("inner-wrapper")) + }, [ + (0, vue.createElementVNode)("div", _hoisted_2$9, [(0, vue.renderSlot)(_ctx.$slots, "default")], 512), + _ctx.showHeader && _ctx.tableLayout === "fixed" ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref: "headerWrapper", + class: (0, vue.normalizeClass)(_ctx.ns.e("header-wrapper")) + }, [(0, vue.createElementVNode)("table", { + ref: "tableHeader", + class: (0, vue.normalizeClass)(_ctx.ns.e("header")), + style: (0, vue.normalizeStyle)(_ctx.tableBodyStyles), + border: "0", + cellpadding: "0", + cellspacing: "0" + }, [(0, vue.createVNode)(_component_hColgroup, { + columns: _ctx.store.states.columns.value, + "table-layout": _ctx.tableLayout + }, null, 8, ["columns", "table-layout"]), (0, vue.createVNode)(_component_table_header, { + ref: "tableHeaderRef", + border: _ctx.border, + "default-sort": _ctx.defaultSort, + store: _ctx.store, + "append-filter-panel-to": _ctx.appendFilterPanelTo, + "allow-drag-last-column": _ctx.allowDragLastColumn, + onSetDragVisible: _ctx.setDragVisible + }, null, 8, [ + "border", + "default-sort", + "store", + "append-filter-panel-to", + "allow-drag-last-column", + "onSetDragVisible" + ])], 6)], 2)), [[_directive_mousewheel, _ctx.handleHeaderFooterMousewheel]]) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + ref: "bodyWrapper", + class: (0, vue.normalizeClass)(_ctx.ns.e("body-wrapper")) + }, [(0, vue.createVNode)(_component_el_scrollbar, { + ref: "scrollBarRef", + "view-style": _ctx.scrollbarViewStyle, + "wrap-style": _ctx.scrollbarStyle, + always: _ctx.scrollbarAlwaysOn, + tabindex: _ctx.scrollbarTabindex, + native: _ctx.nativeScrollbar, + onScroll: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("scroll", $event)) + }, { + default: (0, vue.withCtx)(() => [ + (0, vue.createElementVNode)("table", { + ref: "tableBody", + class: (0, vue.normalizeClass)(_ctx.ns.e("body")), + cellspacing: "0", + cellpadding: "0", + border: "0", + style: (0, vue.normalizeStyle)({ + width: _ctx.bodyWidth, + tableLayout: _ctx.tableLayout + }) + }, [ + (0, vue.createVNode)(_component_hColgroup, { + columns: _ctx.store.states.columns.value, + "table-layout": _ctx.tableLayout + }, null, 8, ["columns", "table-layout"]), + _ctx.showHeader && _ctx.tableLayout === "auto" ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_table_header, { + key: 0, + ref: "tableHeaderRef", + class: (0, vue.normalizeClass)(_ctx.ns.e("body-header")), + border: _ctx.border, + "default-sort": _ctx.defaultSort, + store: _ctx.store, + "append-filter-panel-to": _ctx.appendFilterPanelTo, + onSetDragVisible: _ctx.setDragVisible + }, null, 8, [ + "class", + "border", + "default-sort", + "store", + "append-filter-panel-to", + "onSetDragVisible" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createVNode)(_component_table_body, { + context: _ctx.context, + highlight: _ctx.highlightCurrentRow, + "row-class-name": _ctx.rowClassName, + "tooltip-effect": _ctx.computedTooltipEffect, + "tooltip-options": _ctx.computedTooltipOptions, + "row-style": _ctx.rowStyle, + store: _ctx.store, + stripe: _ctx.stripe + }, null, 8, [ + "context", + "highlight", + "row-class-name", + "tooltip-effect", + "tooltip-options", + "row-style", + "store", + "stripe" + ]), + _ctx.showSummary && _ctx.tableLayout === "auto" ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_table_footer, { + key: 1, + class: (0, vue.normalizeClass)(_ctx.ns.e("body-footer")), + border: _ctx.border, + "default-sort": _ctx.defaultSort, + store: _ctx.store, + "sum-text": _ctx.computedSumText, + "summary-method": _ctx.summaryMethod + }, null, 8, [ + "class", + "border", + "default-sort", + "store", + "sum-text", + "summary-method" + ])) : (0, vue.createCommentVNode)("v-if", true) + ], 6), + _ctx.isEmpty ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref: "emptyBlock", + style: (0, vue.normalizeStyle)(_ctx.emptyBlockStyle), + class: (0, vue.normalizeClass)(_ctx.ns.e("empty-block")) + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.ns.e("empty-text")) }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(_ctx.computedEmptyText), 1)])], 2)], 6)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.append ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + ref: "appendWrapper", + class: (0, vue.normalizeClass)(_ctx.ns.e("append-wrapper")) + }, [(0, vue.renderSlot)(_ctx.$slots, "append")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ]), + _: 3 + }, 8, [ + "view-style", + "wrap-style", + "always", + "tabindex", + "native" + ])], 2), + _ctx.showSummary && _ctx.tableLayout === "fixed" ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + ref: "footerWrapper", + class: (0, vue.normalizeClass)(_ctx.ns.e("footer-wrapper")) + }, [(0, vue.createElementVNode)("table", { + class: (0, vue.normalizeClass)(_ctx.ns.e("footer")), + cellspacing: "0", + cellpadding: "0", + border: "0", + style: (0, vue.normalizeStyle)(_ctx.tableBodyStyles) + }, [(0, vue.createVNode)(_component_hColgroup, { + columns: _ctx.store.states.columns.value, + "table-layout": _ctx.tableLayout + }, null, 8, ["columns", "table-layout"]), (0, vue.createVNode)(_component_table_footer, { + border: _ctx.border, + "default-sort": _ctx.defaultSort, + store: _ctx.store, + "sum-text": _ctx.computedSumText, + "summary-method": _ctx.summaryMethod + }, null, 8, [ + "border", + "default-sort", + "store", + "sum-text", + "summary-method" + ])], 6)], 2)), [[vue.vShow, !_ctx.isEmpty], [_directive_mousewheel, _ctx.handleHeaderFooterMousewheel]]) : (0, vue.createCommentVNode)("v-if", true), + _ctx.border || _ctx.isGroup ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)(_ctx.ns.e("border-left-patch")) + }, null, 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2), (0, vue.withDirectives)((0, vue.createElementVNode)("div", { + ref: "resizeProxy", + class: (0, vue.normalizeClass)(_ctx.ns.e("column-resize-proxy")) + }, null, 2), [[vue.vShow, _ctx.resizeProxyVisible]])], 46, _hoisted_1$15); + } + var table_default = /* @__PURE__ */ _plugin_vue_export_helper_default(table_vue_vue_type_script_lang_default, [["render", _sfc_render$3]]); + +//#endregion +//#region ../../packages/components/table/src/config.ts + const defaultClassNames = { + selection: "table-column--selection", + expand: "table__expand-column" + }; + const cellStarts = { + 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: "" + } + }; + const getDefaultClassName = (type) => { + return defaultClassNames[type] || ""; + }; + const cellForced = { + selection: { + renderHeader({ store }) { + function isDisabled() { + return store.states.data.value && store.states.data.value.length === 0; + } + return (0, vue.h)(ElCheckbox, { + disabled: isDisabled(), + size: store.states.tableSize.value, + indeterminate: store.states.selection.value.length > 0 && !store.states.isAllSelected.value, + "onUpdate:modelValue": store.toggleAllSelection ?? void 0, + modelValue: store.states.isAllSelected.value, + ariaLabel: store.t("el.table.selectAllLabel") + }); + }, + renderCell({ row, column, store, $index }) { + return (0, vue.h)(ElCheckbox, { + disabled: column.selectable ? !column.selectable.call(null, row, $index) : false, + size: store.states.tableSize.value, + onChange: () => { + store.commit("rowSelectedChanged", row); + }, + onClick: (event) => event.stopPropagation(), + modelValue: store.isSelected(row), + ariaLabel: store.t("el.table.selectRowLabel") + }); + }, + sortable: false, + resizable: false + }, + index: { + renderHeader({ column }) { + return column.label || "#"; + }, + renderCell({ column, $index }) { + let i = $index + 1; + const index = column.index; + if (isNumber(index)) i = $index + index; + else if (isFunction$1(index)) i = index($index); + return (0, vue.h)("div", {}, [i]); + }, + sortable: false + }, + expand: { + renderHeader({ column }) { + return column.label || ""; + }, + renderCell({ column, row, store, expanded, $index }) { + const { ns } = store; + const classes = [ns.e("expand-icon")]; + if (!column.renderExpand && expanded) classes.push(ns.em("expand-icon", "expanded")); + const callback = function(e) { + e.stopPropagation(); + store.toggleRowExpansion(row); + }; + const isRowExpandable = store.states.rowExpandable.value?.(row, $index) ?? true; + if (!isRowExpandable) classes.push(ns.is("disabled")); + return (0, vue.h)("button", { + type: "button", + disabled: !isRowExpandable, + "aria-label": store.t(expanded ? "el.table.collapseRowLabel" : "el.table.expandRowLabel"), + "aria-expanded": expanded, + class: classes, + onClick: callback + }, { default: () => { + if (column.renderExpand) return [column.renderExpand({ + expanded, + expandable: isRowExpandable + })]; + return [(0, vue.h)(ElIcon, null, { default: () => { + return [(0, vue.h)(arrow_right_default)]; + } })]; + } }); + }, + sortable: false, + resizable: false + } + }; + function defaultRenderCell({ row, column, $index }) { + const property = column.property; + const value = property && getProp(row, property).value; + if (column && column.formatter) return column.formatter(row, column, value, $index); + return value?.toString?.() || ""; + } + function treeCellPrefix({ row, treeNode, store }, createPlaceholder = false) { + const { ns } = store; + if (!treeNode) { + if (createPlaceholder) return [(0, vue.h)("span", { class: ns.e("placeholder") })]; + return null; + } + const ele = []; + const callback = function(e) { + e.stopPropagation(); + if (treeNode.loading) return; + store.loadOrToggle(row); + }; + if (treeNode.indent) ele.push((0, vue.h)("span", { + class: ns.e("indent"), + style: { "padding-left": `${treeNode.indent}px` } + })); + if (isBoolean(treeNode.expanded) && !treeNode.noLazyChildren) { + const expandClasses = [ns.e("expand-icon"), treeNode.expanded ? ns.em("expand-icon", "expanded") : ""]; + let icon = arrow_right_default; + if (treeNode.loading) icon = loading_default; + ele.push((0, vue.h)("button", { + type: "button", + "aria-label": store.t(treeNode.expanded ? "el.table.collapseRowLabel" : "el.table.expandRowLabel"), + "aria-expanded": treeNode.expanded, + class: expandClasses, + onClick: callback + }, { default: () => { + return [(0, vue.h)(ElIcon, { class: ns.is("loading", treeNode.loading) }, { default: () => [(0, vue.h)(icon)] })]; + } })); + } else ele.push((0, vue.h)("span", { class: ns.e("placeholder") })); + return ele; + } + +//#endregion +//#region ../../packages/components/table/src/table-column/watcher-helper.ts + function getAllAliases(props, aliases) { + return props.reduce((prev, cur) => { + prev[cur] = cur; + return prev; + }, aliases); + } + function useWatcher(owner, props_) { + const instance = (0, vue.getCurrentInstance)(); + const registerComplexWatchers = () => { + const props = ["fixed"]; + const aliases = { + realWidth: "width", + realMinWidth: "minWidth" + }; + const allAliases = getAllAliases(props, aliases); + Object.keys(allAliases).forEach((key) => { + const columnKey = aliases[key]; + if (hasOwn(props_, columnKey)) (0, vue.watch)(() => props_[columnKey], (newVal) => { + let value = newVal; + if (columnKey === "width" && key === "realWidth") value = parseWidth(newVal); + if (columnKey === "minWidth" && key === "realMinWidth") value = parseMinWidth(newVal); + instance.columnConfig.value[columnKey] = value; + instance.columnConfig.value[key] = value; + const updateColumns = columnKey === "fixed"; + owner.value.store.scheduleLayout(updateColumns); + }); + }); + }; + const registerNormalWatchers = () => { + const props = [ + "label", + "filters", + "filterMultiple", + "filteredValue", + "sortable", + "index", + "formatter", + "className", + "labelClassName", + "filterClassName", + "showOverflowTooltip", + "tooltipFormatter", + "resizable" + ]; + const parentProps = ["showOverflowTooltip"]; + const aliases = { + property: "prop", + align: "realAlign", + headerAlign: "realHeaderAlign" + }; + const allAliases = getAllAliases(props, aliases); + Object.keys(allAliases).forEach((key) => { + const columnKey = aliases[key]; + if (hasOwn(props_, columnKey)) (0, vue.watch)(() => props_[columnKey], (newVal) => { + instance.columnConfig.value[key] = newVal; + if (key === "filters" || key === "filterMethod") instance.columnConfig.value["filterable"] = !!(instance.columnConfig.value["filters"] || instance.columnConfig.value["filterMethod"]); + }); + }); + parentProps.forEach((key) => { + if (hasOwn(owner.value.props, key)) (0, vue.watch)(() => owner.value.props[key], (newVal) => { + if (instance.columnConfig.value.type === "selection") return; + if (!isUndefined(props_[key])) return; + instance.columnConfig.value[key] = newVal; + }); + }); + const globalConfig = useGlobalConfig("table"); + if (globalConfig.value && hasOwn(globalConfig.value, "showOverflowTooltip")) (0, vue.watch)(() => globalConfig.value?.showOverflowTooltip, (newVal) => { + if (instance.columnConfig.value.type === "selection") return; + if (!isUndefined(props_.showOverflowTooltip) || !isUndefined(owner.value.props.showOverflowTooltip)) return; + instance.columnConfig.value.showOverflowTooltip = newVal; + }); + }; + return { + registerComplexWatchers, + registerNormalWatchers + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-column/render-helper.ts + function useRender(props, slots, owner) { + const instance = (0, vue.getCurrentInstance)(); + const columnId = (0, vue.ref)(""); + const isSubColumn = (0, vue.ref)(false); + const realAlign = (0, vue.ref)(); + const realHeaderAlign = (0, vue.ref)(); + const ns = useNamespace("table"); + (0, vue.watchEffect)(() => { + realAlign.value = props.align ? `is-${props.align}` : null; + realAlign.value; + }); + (0, vue.watchEffect)(() => { + realHeaderAlign.value = props.headerAlign ? `is-${props.headerAlign}` : realAlign.value; + realHeaderAlign.value; + }); + const columnOrTableParent = (0, vue.computed)(() => { + let parent = instance.vnode.vParent || instance.parent; + while (parent && !parent.tableId && !parent.columnId) parent = parent.vnode.vParent || parent.parent; + return parent; + }); + const hasTreeColumn = (0, vue.computed)(() => { + const { store } = instance.parent; + if (!store) return false; + const { treeData } = store.states; + const treeDataValue = treeData.value; + return treeDataValue && Object.keys(treeDataValue).length > 0; + }); + const realWidth = (0, vue.ref)(parseWidth(props.width)); + const realMinWidth = (0, vue.ref)(parseMinWidth(props.minWidth)); + const setColumnWidth = (column) => { + if (realWidth.value) column.width = realWidth.value; + if (realMinWidth.value) column.minWidth = realMinWidth.value; + if (!realWidth.value && realMinWidth.value) column.width = void 0; + if (!column.minWidth) column.minWidth = 80; + column.realWidth = Number(isUndefined(column.width) ? column.minWidth : column.width); + return column; + }; + const setColumnForcedProps = (column) => { + const type = column.type; + const source = cellForced[type] || {}; + Object.keys(source).forEach((prop) => { + const value = source[prop]; + if (prop !== "className" && !isUndefined(value)) column[prop] = value; + }); + const className = getDefaultClassName(type); + if (className) { + const forceClass = `${(0, vue.unref)(ns.namespace)}-${className}`; + column.className = column.className ? `${column.className} ${forceClass}` : forceClass; + } + return column; + }; + const checkSubColumn = (children) => { + if (isArray$1(children)) children.forEach((child) => check(child)); + else check(children); + function check(item) { + if (item?.type?.name === "ElTableColumn") item.vParent = instance; + } + }; + const setColumnRenders = (column) => { + if (props.renderHeader) /* @__PURE__ */ debugWarn("TableColumn", "Comparing to render-header, scoped-slot header is easier to use. We recommend users to use scoped-slot header."); + else if (column.type !== "selection") column.renderHeader = (scope) => { + instance.columnConfig.value["label"]; + if (slots.header) { + const slotResult = slots.header(scope); + if (ensureValidVNode(slotResult)) return (0, vue.h)(vue.Fragment, slotResult); + } + return (0, vue.createTextVNode)(column.label); + }; + if (slots["filter-icon"]) column.renderFilterIcon = (scope) => { + return (0, vue.renderSlot)(slots, "filter-icon", scope); + }; + if (slots.expand) column.renderExpand = (scope) => { + return (0, vue.renderSlot)(slots, "expand", scope); + }; + let originRenderCell = column.renderCell; + if (column.type === "expand") { + column.renderCell = (data) => (0, vue.h)("div", { class: "cell" }, [originRenderCell(data)]); + owner.value.renderExpanded = (row) => { + return slots.default ? slots.default(row) : slots.default; + }; + } else { + originRenderCell = originRenderCell || defaultRenderCell; + column.renderCell = (data) => { + let children = null; + if (slots.default) { + const vnodes = slots.default(data); + children = vnodes.some((v) => v.type !== vue.Comment) ? vnodes : originRenderCell(data); + } else children = originRenderCell(data); + const { columns } = owner.value.store.states; + const firstUserColumnIndex = columns.value.findIndex((item) => item.type === "default"); + const prefix = treeCellPrefix(data, hasTreeColumn.value && data.cellIndex === firstUserColumnIndex); + const props = { + class: "cell", + style: {} + }; + if (column.showOverflowTooltip) { + props.class = `${props.class} ${(0, vue.unref)(ns.namespace)}-tooltip`; + props.style = { width: `${(data.column.realWidth || Number(data.column.width)) - 1}px` }; + } + checkSubColumn(children); + return (0, vue.h)("div", props, [prefix, children]); + }; + } + return column; + }; + const getPropsData = (...propsKey) => { + return propsKey.reduce((prev, cur) => { + if (isArray$1(cur)) cur.forEach((key) => { + prev[key] = props[key]; + }); + return prev; + }, {}); + }; + const getColumnElIndex = (children, child) => { + return Array.prototype.indexOf.call(children, child); + }; + const updateColumnOrder = () => { + owner.value.store.commit("updateColumnOrder", instance.columnConfig.value); + }; + return { + columnId, + realAlign, + isSubColumn, + realHeaderAlign, + columnOrTableParent, + setColumnWidth, + setColumnForcedProps, + setColumnRenders, + getPropsData, + getColumnElIndex, + updateColumnOrder + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-column/defaults.ts + var defaults_default$1 = { + 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: false + }, + sortMethod: Function, + sortBy: [ + String, + Function, + Array + ], + resizable: { + type: Boolean, + default: true + }, + 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: true + }, + filterClassName: String, + index: [Number, Function], + sortOrders: { + type: Array, + default: () => { + return [ + "ascending", + "descending", + null + ]; + }, + validator: (val) => { + return val.every((order) => [ + "ascending", + "descending", + null + ].includes(order)); + } + } + }; + +//#endregion +//#region ../../packages/components/table/src/table-column/index.ts + let columnIdSeed = 1; + var table_column_default = (0, vue.defineComponent)({ + name: "ElTableColumn", + components: { ElCheckbox }, + props: defaults_default$1, + setup(props, { slots }) { + const instance = (0, vue.getCurrentInstance)(); + const globalConfig = useGlobalConfig("table"); + const columnConfig = (0, vue.ref)({}); + const owner = (0, vue.computed)(() => { + let parent = instance.parent; + while (parent && !parent.tableId) parent = parent.parent; + return parent; + }); + const { registerNormalWatchers, registerComplexWatchers } = useWatcher(owner, props); + const { columnId, isSubColumn, realHeaderAlign, columnOrTableParent, setColumnWidth, setColumnForcedProps, setColumnRenders, getPropsData, getColumnElIndex, realAlign, updateColumnOrder } = useRender(props, slots, owner); + const parent = columnOrTableParent.value; + columnId.value = `${"tableId" in parent && parent.tableId || "columnId" in parent && parent.columnId}_column_${columnIdSeed++}`; + (0, vue.onBeforeMount)(() => { + isSubColumn.value = owner.value !== parent; + const type = props.type || "default"; + const sortable = props.sortable === "" ? true : props.sortable; + const showOverflowTooltip = type === "selection" ? false : isUndefined(props.showOverflowTooltip) ? parent.props.showOverflowTooltip ?? globalConfig.value?.showOverflowTooltip : props.showOverflowTooltip; + const tooltipFormatter = isUndefined(props.tooltipFormatter) ? parent.props.tooltipFormatter ?? globalConfig.value?.tooltipFormatter : props.tooltipFormatter; + const defaults = { + ...cellStarts[type], + id: columnId.value, + type, + property: props.prop || props.property, + align: realAlign, + headerAlign: realHeaderAlign, + showOverflowTooltip, + tooltipFormatter, + filterable: props.filters || props.filterMethod, + filteredValue: [], + filterPlacement: "", + filterClassName: "", + isColumnGroup: false, + isSubColumn: false, + filterOpened: false, + sortable, + index: props.index, + rawColumnKey: instance.vnode.key + }; + let column = getPropsData([ + "columnKey", + "label", + "className", + "labelClassName", + "type", + "renderHeader", + "formatter", + "fixed", + "resizable" + ], [ + "sortMethod", + "sortBy", + "sortOrders" + ], ["selectable", "reserveSelection"], [ + "filterMethod", + "filters", + "filterMultiple", + "filterOpened", + "filteredValue", + "filterPlacement", + "filterClassName" + ]); + column = mergeOptions(defaults, column); + column = compose(setColumnRenders, setColumnWidth, setColumnForcedProps)(column); + columnConfig.value = column; + registerNormalWatchers(); + registerComplexWatchers(); + }); + (0, vue.onMounted)(() => { + const parent = columnOrTableParent.value; + const children = isSubColumn.value ? parent.vnode.el?.children : parent.refs.hiddenColumns?.children; + const getColumnIndex = () => getColumnElIndex(children || [], instance.vnode.el); + columnConfig.value.getColumnIndex = getColumnIndex; + getColumnIndex() > -1 && owner.value.store.commit("insertColumn", columnConfig.value, isSubColumn.value ? "columnConfig" in parent && parent.columnConfig.value : null, updateColumnOrder); + }); + (0, vue.onBeforeUnmount)(() => { + const getColumnIndex = columnConfig.value.getColumnIndex; + (getColumnIndex ? getColumnIndex() : -1) > -1 && owner.value.store.commit("removeColumn", columnConfig.value, isSubColumn.value ? "columnConfig" in parent && parent.columnConfig.value : null, updateColumnOrder); + }); + instance.columnId = columnId.value; + instance.columnConfig = columnConfig; + }, + render() { + try { + const renderDefault = this.$slots.default?.({ + row: {}, + column: {}, + $index: -1 + }); + const children = []; + if (isArray$1(renderDefault)) { + for (const childNode of renderDefault) if (childNode.type?.name === "ElTableColumn" || childNode.shapeFlag & 2) children.push(childNode); + else if (childNode.type === vue.Fragment && isArray$1(childNode.children)) childNode.children.forEach((vnode) => { + if (vnode?.patchFlag !== 1024 && !isString(vnode?.children)) children.push(vnode); + }); + } + return (0, vue.h)("div", children); + } catch { + return (0, vue.h)("div", []); + } + } + }); + +//#endregion +//#region ../../packages/components/table/src/tableColumn.ts + var tableColumn_default = table_column_default; + +//#endregion +//#region ../../packages/components/table/index.ts + const ElTable = withInstall(table_default, { TableColumn: tableColumn_default }); + const ElTableColumn = withNoopInstall(tableColumn_default); + +//#endregion +//#region ../../packages/components/table-v2/src/constants.ts + let SortOrder = /* @__PURE__ */ function(SortOrder) { + SortOrder["ASC"] = "asc"; + SortOrder["DESC"] = "desc"; + return SortOrder; + }({}); + let Alignment = /* @__PURE__ */ function(Alignment) { + Alignment["LEFT"] = "left"; + Alignment["CENTER"] = "center"; + Alignment["RIGHT"] = "right"; + return Alignment; + }({}); + let FixedDir = /* @__PURE__ */ function(FixedDir) { + FixedDir["LEFT"] = "left"; + FixedDir["RIGHT"] = "right"; + return FixedDir; + }({}); + const oppositeOrderMap = { + [SortOrder.ASC]: SortOrder.DESC, + [SortOrder.DESC]: SortOrder.ASC + }; + const sortOrders = [SortOrder.ASC, SortOrder.DESC]; + +//#endregion +//#region ../../packages/components/table-v2/src/private.ts + const placeholderSign = Symbol("placeholder"); + +//#endregion +//#region ../../packages/components/table-v2/src/composables/utils.ts + const calcColumnStyle = (column, fixedColumn, fixed) => { + const flex = { + flexGrow: 0, + flexShrink: 0, + ...fixed ? {} : { + flexGrow: column.flexGrow ?? 0, + flexShrink: column.flexShrink ?? 1 + } + }; + const style = { + ...column.style ?? {}, + ...flex, + flexBasis: "auto", + width: column.width + }; + if (!fixedColumn) { + if (column.maxWidth) style.maxWidth = column.maxWidth; + if (column.minWidth) style.minWidth = column.minWidth; + } + return style; + }; + +//#endregion +//#region ../../packages/components/table-v2/src/composables/use-columns.ts + function useColumns(props, columns, fixed) { + const _columns = (0, vue.computed)(() => (0, vue.unref)(columns).map((column, index) => ({ + ...column, + key: column.key ?? column.dataKey ?? index + }))); + const visibleColumns = (0, vue.computed)(() => { + return (0, vue.unref)(_columns).filter((column) => !column.hidden); + }); + const fixedColumnsOnLeft = (0, vue.computed)(() => (0, vue.unref)(visibleColumns).filter((column) => column.fixed === "left" || column.fixed === true)); + const fixedColumnsOnRight = (0, vue.computed)(() => (0, vue.unref)(visibleColumns).filter((column) => column.fixed === "right")); + const normalColumns = (0, vue.computed)(() => (0, vue.unref)(visibleColumns).filter((column) => !column.fixed)); + const mainColumns = (0, vue.computed)(() => { + const ret = []; + (0, vue.unref)(fixedColumnsOnLeft).forEach((column) => { + ret.push({ + ...column, + placeholderSign + }); + }); + (0, vue.unref)(normalColumns).forEach((column) => { + ret.push(column); + }); + (0, vue.unref)(fixedColumnsOnRight).forEach((column) => { + ret.push({ + ...column, + placeholderSign + }); + }); + return ret; + }); + const hasFixedColumns = (0, vue.computed)(() => { + return (0, vue.unref)(fixedColumnsOnLeft).length || (0, vue.unref)(fixedColumnsOnRight).length; + }); + const columnsStyles = (0, vue.computed)(() => { + return (0, vue.unref)(_columns).reduce((style, column) => { + style[column.key] = calcColumnStyle(column, (0, vue.unref)(fixed), props.fixed); + return style; + }, {}); + }); + const columnsTotalWidth = (0, vue.computed)(() => { + return (0, vue.unref)(visibleColumns).reduce((width, column) => width + column.width, 0); + }); + const getColumn = (key) => { + return (0, vue.unref)(_columns).find((column) => column.key === key); + }; + const getColumnStyle = (key) => { + return (0, vue.unref)(columnsStyles)[key]; + }; + const updateColumnWidth = (column, width) => { + column.width = width; + }; + function onColumnSorted(e) { + const { key } = e.currentTarget.dataset; + if (!key) return; + const { sortState, sortBy } = props; + let order = SortOrder.ASC; + if (isObject$1(sortState)) order = oppositeOrderMap[sortState[key]]; + else order = oppositeOrderMap[sortBy.order]; + props.onColumnSort?.({ + column: getColumn(key), + key, + order + }); + } + return { + columns: _columns, + columnsStyles, + columnsTotalWidth, + fixedColumnsOnLeft, + fixedColumnsOnRight, + hasFixedColumns, + mainColumns, + normalColumns, + visibleColumns, + getColumn, + getColumnStyle, + updateColumnWidth, + onColumnSorted + }; + } + +//#endregion +//#region ../../packages/components/table-v2/src/composables/use-scrollbar.ts + const useScrollbar = (props, { mainTableRef, leftTableRef, rightTableRef, onMaybeEndReached }) => { + const scrollPos = (0, vue.ref)({ + scrollLeft: 0, + scrollTop: 0 + }); + function doScroll(params) { + const { scrollTop } = params; + mainTableRef.value?.scrollTo(params); + leftTableRef.value?.scrollToTop(scrollTop); + rightTableRef.value?.scrollToTop(scrollTop); + } + function scrollTo(params) { + scrollPos.value = params; + doScroll(params); + } + function scrollToTop(scrollTop) { + scrollPos.value.scrollTop = scrollTop; + doScroll((0, vue.unref)(scrollPos)); + } + function scrollToLeft(scrollLeft) { + scrollPos.value.scrollLeft = scrollLeft; + mainTableRef.value?.scrollTo?.((0, vue.unref)(scrollPos)); + } + function onScroll(params) { + scrollTo(params); + props.onScroll?.(params); + } + function onVerticalScroll({ scrollTop }) { + const { scrollTop: currentScrollTop } = (0, vue.unref)(scrollPos); + if (scrollTop !== currentScrollTop) scrollToTop(scrollTop); + } + function scrollToRow(row, strategy = "auto") { + mainTableRef.value?.scrollToRow(row, strategy); + } + (0, vue.watch)(() => (0, vue.unref)(scrollPos).scrollTop, (cur, prev) => { + if (cur > prev) onMaybeEndReached(); + }); + return { + scrollPos, + scrollTo, + scrollToLeft, + scrollToTop, + scrollToRow, + onScroll, + onVerticalScroll + }; + }; + +//#endregion +//#region ../../packages/components/table-v2/src/composables/use-row.ts + const useRow = (props, { mainTableRef, leftTableRef, rightTableRef, tableInstance, ns, isScrolling }) => { + const vm = (0, vue.getCurrentInstance)(); + const { emit } = vm; + const isResetting = (0, vue.shallowRef)(false); + const expandedRowKeys = (0, vue.ref)(props.defaultExpandedRowKeys || []); + const lastRenderedRowIndex = (0, vue.ref)(-1); + const resetIndex = (0, vue.shallowRef)(null); + const rowHeights = (0, vue.ref)({}); + const pendingRowHeights = (0, vue.ref)({}); + const leftTableHeights = (0, vue.shallowRef)({}); + const mainTableHeights = (0, vue.shallowRef)({}); + const rightTableHeights = (0, vue.shallowRef)({}); + const isDynamic = (0, vue.computed)(() => isNumber(props.estimatedRowHeight)); + function onRowsRendered(params) { + props.onRowsRendered?.(params); + if (params.rowCacheEnd > (0, vue.unref)(lastRenderedRowIndex)) lastRenderedRowIndex.value = params.rowCacheEnd; + } + function onRowHovered({ hovered, rowKey }) { + if (isScrolling.value) return; + tableInstance.vnode.el.querySelectorAll(`[rowkey="${String(rowKey)}"]`).forEach((row) => { + if (hovered) row.classList.add(ns.is("hovered")); + else row.classList.remove(ns.is("hovered")); + }); + } + function onRowExpanded({ expanded, rowData, rowIndex, rowKey }) { + const _expandedRowKeys = [...(0, vue.unref)(expandedRowKeys)]; + const currentKeyIndex = _expandedRowKeys.indexOf(rowKey); + if (expanded) { + if (currentKeyIndex === -1) _expandedRowKeys.push(rowKey); + } else if (currentKeyIndex > -1) _expandedRowKeys.splice(currentKeyIndex, 1); + expandedRowKeys.value = _expandedRowKeys; + emit("update:expandedRowKeys", _expandedRowKeys); + props.onRowExpand?.({ + expanded, + rowData, + rowIndex, + rowKey + }); + props.onExpandedRowsChange?.(_expandedRowKeys); + if (tableInstance.vnode.el.querySelector(`.${ns.is("hovered")}[rowkey="${String(rowKey)}"]`)) (0, vue.nextTick)(() => onRowHovered({ + hovered: true, + rowKey + })); + } + const flushingRowHeights = debounce(() => { + isResetting.value = true; + rowHeights.value = { + ...(0, vue.unref)(rowHeights), + ...(0, vue.unref)(pendingRowHeights) + }; + resetAfterIndex((0, vue.unref)(resetIndex), false); + pendingRowHeights.value = {}; + resetIndex.value = null; + mainTableRef.value?.forceUpdate(); + leftTableRef.value?.forceUpdate(); + rightTableRef.value?.forceUpdate(); + vm.proxy?.$forceUpdate(); + isResetting.value = false; + }, 0); + function resetAfterIndex(index, forceUpdate = false) { + if (!(0, vue.unref)(isDynamic)) return; + [ + mainTableRef, + leftTableRef, + rightTableRef + ].forEach((tableRef) => { + const table = (0, vue.unref)(tableRef); + if (table) table.resetAfterRowIndex(index, forceUpdate); + }); + } + function resetHeights(rowKey, height, rowIdx) { + const resetIdx = (0, vue.unref)(resetIndex); + if (resetIdx === null) resetIndex.value = rowIdx; + else if (resetIdx > rowIdx) resetIndex.value = rowIdx; + pendingRowHeights.value[rowKey] = height; + } + function onRowHeightChange({ rowKey, height, rowIndex }, fixedDir) { + if (!fixedDir) mainTableHeights.value[rowKey] = height; + else if (fixedDir === FixedDir.RIGHT) rightTableHeights.value[rowKey] = height; + else leftTableHeights.value[rowKey] = height; + const maximumHeight = Math.max(...[ + leftTableHeights, + rightTableHeights, + mainTableHeights + ].map((records) => records.value[rowKey] || 0)); + if ((0, vue.unref)(rowHeights)[rowKey] !== maximumHeight) { + resetHeights(rowKey, maximumHeight, rowIndex); + flushingRowHeights(); + } + } + return { + expandedRowKeys, + lastRenderedRowIndex, + isDynamic, + isResetting, + rowHeights, + resetAfterIndex, + onRowExpanded, + onRowHovered, + onRowsRendered, + onRowHeightChange + }; + }; + +//#endregion +//#region ../../packages/components/table-v2/src/composables/use-data.ts + const useData = (props, { expandedRowKeys, lastRenderedRowIndex, resetAfterIndex }) => { + const depthMap = (0, vue.ref)({}); + const flattenedData = (0, vue.computed)(() => { + const depths = {}; + const { data, rowKey } = props; + const _expandedRowKeys = (0, vue.unref)(expandedRowKeys); + if (!_expandedRowKeys || !_expandedRowKeys.length) return data; + const array = []; + const keysSet = /* @__PURE__ */ new Set(); + _expandedRowKeys.forEach((x) => keysSet.add(x)); + let copy = data.slice(); + copy.forEach((x) => depths[x[rowKey]] = 0); + while (copy.length > 0) { + const item = copy.shift(); + array.push(item); + if (keysSet.has(item[rowKey]) && isArray$1(item.children) && item.children.length > 0) { + copy = [...item.children, ...copy]; + item.children.forEach((child) => depths[child[rowKey]] = depths[item[rowKey]] + 1); + } + } + depthMap.value = depths; + return array; + }); + const data = (0, vue.computed)(() => { + const { data, expandColumnKey } = props; + return expandColumnKey ? (0, vue.unref)(flattenedData) : data; + }); + (0, vue.watch)(data, (val, prev) => { + if (val !== prev) { + lastRenderedRowIndex.value = -1; + resetAfterIndex(0, true); + } + }); + return { + data, + depthMap + }; + }; + +//#endregion +//#region ../../packages/components/table-v2/src/utils.ts + const sumReducer = (sum, num) => sum + num; + const sum = (listLike) => { + return isArray$1(listLike) ? listLike.reduce(sumReducer, 0) : listLike; + }; + const tryCall = (fLike, params, defaultRet = {}) => { + return isFunction$1(fLike) ? fLike(params) : fLike ?? defaultRet; + }; + const enforceUnit = (style) => { + [ + "width", + "maxWidth", + "minWidth", + "height" + ].forEach((key) => { + style[key] = addUnit(style[key]); + }); + return style; + }; + const componentToSlot = (ComponentLike) => (0, vue.isVNode)(ComponentLike) ? (props) => (0, vue.h)(ComponentLike, props) : ComponentLike; + +//#endregion +//#region ../../packages/components/table-v2/src/composables/use-styles.ts + const useStyles = (props, { columnsTotalWidth, rowsHeight, fixedColumnsOnLeft, fixedColumnsOnRight }) => { + const bodyWidth = (0, vue.computed)(() => { + const { fixed, width, vScrollbarSize } = props; + const ret = width - vScrollbarSize; + return fixed ? Math.max(Math.round((0, vue.unref)(columnsTotalWidth)), ret) : ret; + }); + const mainTableHeight = (0, vue.computed)(() => { + const { height = 0, maxHeight = 0, footerHeight, hScrollbarSize } = props; + if (maxHeight > 0) { + const _fixedRowsHeight = (0, vue.unref)(fixedRowsHeight); + const _rowsHeight = (0, vue.unref)(rowsHeight); + const total = (0, vue.unref)(headerHeight) + _fixedRowsHeight + _rowsHeight + hScrollbarSize; + return Math.min(total, maxHeight - footerHeight); + } + return height - footerHeight; + }); + const fixedTableHeight = (0, vue.computed)(() => { + const { maxHeight } = props; + const tableHeight = (0, vue.unref)(mainTableHeight); + if (isNumber(maxHeight) && maxHeight > 0) return tableHeight; + const totalHeight = (0, vue.unref)(rowsHeight) + (0, vue.unref)(headerHeight) + (0, vue.unref)(fixedRowsHeight); + return Math.min(tableHeight, totalHeight); + }); + const mapColumn = (column) => column.width; + const leftTableWidth = (0, vue.computed)(() => sum((0, vue.unref)(fixedColumnsOnLeft).map(mapColumn))); + const rightTableWidth = (0, vue.computed)(() => sum((0, vue.unref)(fixedColumnsOnRight).map(mapColumn))); + const headerHeight = (0, vue.computed)(() => sum(props.headerHeight)); + const fixedRowsHeight = (0, vue.computed)(() => { + return (props.fixedData?.length || 0) * props.rowHeight; + }); + const windowHeight = (0, vue.computed)(() => { + return (0, vue.unref)(mainTableHeight) - (0, vue.unref)(headerHeight) - (0, vue.unref)(fixedRowsHeight); + }); + const rootStyle = (0, vue.computed)(() => { + const { style = {}, height, width } = props; + return enforceUnit({ + ...style, + height, + width + }); + }); + return { + bodyWidth, + fixedTableHeight, + mainTableHeight, + leftTableWidth, + rightTableWidth, + windowHeight, + footerHeight: (0, vue.computed)(() => enforceUnit({ height: props.footerHeight })), + emptyStyle: (0, vue.computed)(() => ({ + top: addUnit((0, vue.unref)(headerHeight)), + bottom: addUnit(props.footerHeight), + width: addUnit(props.width) + })), + rootStyle, + headerHeight + }; + }; + +//#endregion +//#region ../../packages/components/table-v2/src/composables/use-auto-resize.ts + const useAutoResize = (props) => { + const sizer = (0, vue.ref)(); + const width$ = (0, vue.ref)(0); + const height$ = (0, vue.ref)(0); + let resizerStopper; + (0, vue.onMounted)(() => { + resizerStopper = useResizeObserver(sizer, ([entry]) => { + const { width, height } = entry.contentRect; + const { paddingLeft, paddingRight, paddingTop, paddingBottom } = getComputedStyle(entry.target); + const left = Number.parseInt(paddingLeft) || 0; + const right = Number.parseInt(paddingRight) || 0; + const top = Number.parseInt(paddingTop) || 0; + const bottom = Number.parseInt(paddingBottom) || 0; + width$.value = width - left - right; + height$.value = height - top - bottom; + }).stop; + }); + (0, vue.onBeforeUnmount)(() => { + resizerStopper?.(); + }); + (0, vue.watch)([width$, height$], ([width, height]) => { + props.onResize?.({ + width, + height + }); + }); + return { + sizer, + width: width$, + height: height$ + }; + }; + +//#endregion +//#region ../../packages/components/table-v2/src/use-table.ts + function useTable(props) { + const mainTableRef = (0, vue.ref)(); + const leftTableRef = (0, vue.ref)(); + const rightTableRef = (0, vue.ref)(); + const { columns, columnsStyles, columnsTotalWidth, fixedColumnsOnLeft, fixedColumnsOnRight, hasFixedColumns, mainColumns, onColumnSorted } = useColumns(props, (0, vue.toRef)(props, "columns"), (0, vue.toRef)(props, "fixed")); + const { scrollTo, scrollToLeft, scrollToTop, scrollToRow, onScroll, onVerticalScroll, scrollPos } = useScrollbar(props, { + mainTableRef, + leftTableRef, + rightTableRef, + onMaybeEndReached + }); + const ns = useNamespace("table-v2"); + const instance = (0, vue.getCurrentInstance)(); + const isScrolling = (0, vue.shallowRef)(false); + const { expandedRowKeys, lastRenderedRowIndex, isDynamic, isResetting, rowHeights, resetAfterIndex, onRowExpanded, onRowHeightChange, onRowHovered, onRowsRendered } = useRow(props, { + mainTableRef, + leftTableRef, + rightTableRef, + tableInstance: instance, + ns, + isScrolling + }); + const { data, depthMap } = useData(props, { + expandedRowKeys, + lastRenderedRowIndex, + resetAfterIndex + }); + const rowsHeight = (0, vue.computed)(() => { + const { estimatedRowHeight, rowHeight } = props; + const _data = (0, vue.unref)(data); + if (isNumber(estimatedRowHeight)) return Object.values((0, vue.unref)(rowHeights)).reduce((acc, curr) => acc + curr, 0); + return _data.length * rowHeight; + }); + const { bodyWidth, fixedTableHeight, mainTableHeight, leftTableWidth, rightTableWidth, windowHeight, footerHeight, emptyStyle, rootStyle, headerHeight } = useStyles(props, { + columnsTotalWidth, + fixedColumnsOnLeft, + fixedColumnsOnRight, + rowsHeight + }); + const containerRef = (0, vue.ref)(); + const showEmpty = (0, vue.computed)(() => { + const noData = (0, vue.unref)(data).length === 0; + return isArray$1(props.fixedData) ? props.fixedData.length === 0 && noData : noData; + }); + function getRowHeight(rowIndex) { + const { estimatedRowHeight, rowHeight, rowKey } = props; + if (!estimatedRowHeight) return rowHeight; + return (0, vue.unref)(rowHeights)[(0, vue.unref)(data)[rowIndex][rowKey]] || estimatedRowHeight; + } + const isEndReached = (0, vue.ref)(false); + function onMaybeEndReached() { + const { onEndReached } = props; + if (!onEndReached) return; + const { scrollTop } = (0, vue.unref)(scrollPos); + const _totalHeight = (0, vue.unref)(rowsHeight); + const remainDistance = _totalHeight - (scrollTop + (0, vue.unref)(windowHeight)) + props.hScrollbarSize; + if (!isEndReached.value && (0, vue.unref)(lastRenderedRowIndex) >= 0 && _totalHeight <= scrollTop + (0, vue.unref)(mainTableHeight) - (0, vue.unref)(headerHeight)) { + isEndReached.value = true; + onEndReached(remainDistance); + } else isEndReached.value = false; + } + (0, vue.watch)(() => (0, vue.unref)(rowsHeight), () => isEndReached.value = false); + (0, vue.watch)(() => props.expandedRowKeys, (val) => expandedRowKeys.value = val, { deep: true }); + return { + columns, + containerRef, + mainTableRef, + leftTableRef, + rightTableRef, + isDynamic, + isResetting, + isScrolling, + hasFixedColumns, + columnsStyles, + columnsTotalWidth, + data, + expandedRowKeys, + depthMap, + fixedColumnsOnLeft, + fixedColumnsOnRight, + mainColumns, + bodyWidth, + emptyStyle, + rootStyle, + footerHeight, + mainTableHeight, + fixedTableHeight, + leftTableWidth, + rightTableWidth, + showEmpty, + getRowHeight, + onColumnSorted, + onRowHovered, + onRowExpanded, + onRowsRendered, + onRowHeightChange, + scrollTo, + scrollToLeft, + scrollToTop, + scrollToRow, + onScroll, + onVerticalScroll + }; + } + +//#endregion +//#region ../../packages/components/table-v2/src/tokens.ts + const TableV2InjectionKey = Symbol("tableV2"); + const TABLE_V2_GRID_INJECTION_KEY = "tableV2GridScrollLeft"; + +//#endregion +//#region ../../packages/components/table-v2/src/common.ts +/** + * @Note even though we can use `string[] | string` as the type but for + * convenience here we only use `string` as the acceptable value here. + */ + const classType = String; + const columns = { + type: definePropType(Array), + required: true + }; + const column = { type: definePropType(Object) }; + const fixedDataType = { type: definePropType(Array) }; + const dataType = { + ...fixedDataType, + required: true + }; + const expandColumnKey = String; + const expandKeys = { + type: definePropType(Array), + default: () => mutable([]) + }; + const requiredNumber = { + type: Number, + required: true + }; + const rowKey = { + type: definePropType([ + String, + Number, + Symbol + ]), + default: "id" + }; + /** + * @note even though we can use `StyleValue` but that would be difficult for us to mapping them, + * so we only use `CSSProperties` as the acceptable value here. + */ + const styleType = { type: definePropType(Object) }; + +//#endregion +//#region ../../packages/components/table-v2/src/row.ts + const tableV2RowProps = buildProps({ + class: String, + columns, + columnsStyles: { + type: definePropType(Object), + required: true + }, + depth: Number, + expandColumnKey, + estimatedRowHeight: { + ...virtualizedGridProps.estimatedRowHeight, + default: void 0 + }, + isScrolling: Boolean, + onRowExpand: { type: definePropType(Function) }, + onRowHover: { type: definePropType(Function) }, + onRowHeightChange: { type: definePropType(Function) }, + rowData: { + type: definePropType(Object), + required: true + }, + rowEventHandlers: { type: definePropType(Object) }, + rowIndex: { + type: Number, + required: true + }, + rowKey, + style: { type: definePropType(Object) } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/header.ts + const requiredNumberType = { + type: Number, + required: true + }; + const tableV2HeaderProps = buildProps({ + class: String, + columns, + fixedHeaderData: { type: definePropType(Array) }, + headerData: { + type: definePropType(Array), + required: true + }, + headerHeight: { + type: definePropType([Number, Array]), + default: 50 + }, + rowWidth: requiredNumberType, + rowHeight: { + type: Number, + default: 50 + }, + height: requiredNumberType, + width: requiredNumberType + }); + +//#endregion +//#region ../../packages/components/table-v2/src/grid.ts + const tableV2GridProps = buildProps({ + columns, + data: dataType, + fixedData: fixedDataType, + estimatedRowHeight: tableV2RowProps.estimatedRowHeight, + width: requiredNumber, + height: requiredNumber, + headerWidth: requiredNumber, + headerHeight: tableV2HeaderProps.headerHeight, + bodyWidth: requiredNumber, + rowHeight: requiredNumber, + cache: virtualizedListProps.cache, + useIsScrolling: Boolean, + scrollbarAlwaysOn: virtualizedGridProps.scrollbarAlwaysOn, + scrollbarStartGap: virtualizedGridProps.scrollbarStartGap, + scrollbarEndGap: virtualizedGridProps.scrollbarEndGap, + class: classType, + style: styleType, + containerStyle: styleType, + getRowHeight: { + type: definePropType(Function), + required: true + }, + rowKey: tableV2RowProps.rowKey, + onRowsRendered: { type: definePropType(Function) }, + onScroll: { type: definePropType(Function) } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/table.ts + const tableV2Props = buildProps({ + cache: tableV2GridProps.cache, + estimatedRowHeight: tableV2RowProps.estimatedRowHeight, + rowKey, + headerClass: { type: definePropType([String, Function]) }, + headerProps: { type: definePropType([Object, Function]) }, + headerCellProps: { type: definePropType([Object, Function]) }, + headerHeight: tableV2HeaderProps.headerHeight, + footerHeight: { + type: Number, + default: 0 + }, + rowClass: { type: definePropType([String, Function]) }, + rowProps: { type: definePropType([Object, Function]) }, + rowHeight: { + type: Number, + default: 50 + }, + cellProps: { type: definePropType([Object, Function]) }, + columns, + data: dataType, + dataGetter: { type: definePropType(Function) }, + fixedData: fixedDataType, + expandColumnKey: tableV2RowProps.expandColumnKey, + expandedRowKeys: expandKeys, + defaultExpandedRowKeys: expandKeys, + class: classType, + fixed: Boolean, + style: { type: definePropType(Object) }, + width: requiredNumber, + height: requiredNumber, + maxHeight: Number, + useIsScrolling: Boolean, + indentSize: { + type: Number, + default: 12 + }, + iconSize: { + type: Number, + default: 12 + }, + hScrollbarSize: virtualizedGridProps.hScrollbarSize, + vScrollbarSize: virtualizedGridProps.vScrollbarSize, + scrollbarAlwaysOn: virtualizedScrollbarProps.alwaysOn, + sortBy: { + type: definePropType(Object), + default: () => ({}) + }, + sortState: { + type: definePropType(Object), + default: void 0 + }, + onColumnSort: { type: definePropType(Function) }, + onExpandedRowsChange: { type: definePropType(Function) }, + onEndReached: { type: definePropType(Function) }, + onRowExpand: tableV2RowProps.onRowExpand, + onScroll: tableV2GridProps.onScroll, + onRowsRendered: tableV2GridProps.onRowsRendered, + rowEventHandlers: tableV2RowProps.rowEventHandlers + }); + +//#endregion +//#region ../../packages/components/table-v2/src/components/cell.tsx + const TableV2Cell = (props, { slots }) => { + const { cellData, style } = props; + const displayText = cellData?.toString?.() || ""; + const defaultSlot = (0, vue.renderSlot)(slots, "default", props, () => [displayText]); + return (0, vue.createVNode)("div", { + "class": props.class, + "title": displayText, + "style": style + }, [defaultSlot]); + }; + TableV2Cell.displayName = "ElTableV2Cell"; + TableV2Cell.inheritAttrs = false; + +//#endregion +//#region ../../packages/components/table-v2/src/components/header-cell.tsx + const HeaderCell = (props, { slots }) => (0, vue.renderSlot)(slots, "default", props, () => [(0, vue.createVNode)("div", { + "class": props.class, + "title": props.column?.title + }, [props.column?.title])]); + HeaderCell.displayName = "ElTableV2HeaderCell"; + HeaderCell.inheritAttrs = false; + +//#endregion +//#region ../../packages/components/table-v2/src/header-row.ts + const tableV2HeaderRowProps = buildProps({ + class: String, + columns, + columnsStyles: { + type: definePropType(Object), + required: true + }, + headerIndex: Number, + style: { type: definePropType(Object) } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/components/header-row.tsx + const TableV2HeaderRow = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTableV2HeaderRow", + props: tableV2HeaderRowProps, + setup(props, { slots }) { + return () => { + const { columns, columnsStyles, headerIndex, style } = props; + let Cells = columns.map((column, columnIndex) => { + return slots.cell({ + columns, + column, + columnIndex, + headerIndex, + style: columnsStyles[column.key] + }); + }); + if (slots.header) Cells = slots.header({ + cells: Cells.map((node) => { + if (isArray$1(node) && node.length === 1) return node[0]; + return node; + }), + columns, + headerIndex + }); + return (0, vue.createVNode)("div", { + "class": props.class, + "style": style, + "role": "row" + }, [Cells]); + }; + } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/components/header.tsx + const TableV2Header = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTableV2Header", + props: tableV2HeaderProps, + setup(props, { slots, expose }) { + const ns = useNamespace("table-v2"); + const scrollLeftInfo = (0, vue.inject)(TABLE_V2_GRID_INJECTION_KEY); + const headerRef = (0, vue.ref)(); + const headerStyle = (0, vue.computed)(() => enforceUnit({ + width: props.width, + height: props.height + })); + const rowStyle = (0, vue.computed)(() => enforceUnit({ + width: props.rowWidth, + height: props.height + })); + const headerHeights = (0, vue.computed)(() => castArray$1((0, vue.unref)(props.headerHeight))); + const scrollToLeft = (left) => { + const headerEl = (0, vue.unref)(headerRef); + (0, vue.nextTick)(() => { + headerEl?.scroll && headerEl.scroll({ left }); + }); + }; + const renderFixedRows = () => { + const fixedRowClassName = ns.e("fixed-header-row"); + const { columns, fixedHeaderData, rowHeight } = props; + return fixedHeaderData?.map((fixedRowData, fixedRowIndex) => { + const style = enforceUnit({ + height: rowHeight, + width: "100%" + }); + return slots.fixed?.({ + class: fixedRowClassName, + columns, + rowData: fixedRowData, + rowIndex: -(fixedRowIndex + 1), + style + }); + }); + }; + const renderDynamicRows = () => { + const dynamicRowClassName = ns.e("dynamic-header-row"); + const { columns } = props; + return (0, vue.unref)(headerHeights).map((rowHeight, rowIndex) => { + const style = enforceUnit({ + width: "100%", + height: rowHeight + }); + return slots.dynamic?.({ + class: dynamicRowClassName, + columns, + headerIndex: rowIndex, + style + }); + }); + }; + (0, vue.onUpdated)(() => { + if (scrollLeftInfo?.value) scrollToLeft(scrollLeftInfo.value); + }); + expose({ scrollToLeft }); + return () => { + if (props.height <= 0) return; + return (0, vue.createVNode)("div", { + "ref": headerRef, + "class": props.class, + "style": (0, vue.unref)(headerStyle), + "role": "rowgroup" + }, [(0, vue.createVNode)("div", { + "style": (0, vue.unref)(rowStyle), + "class": ns.e("header") + }, [renderDynamicRows(), renderFixedRows()])]); + }; + } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/components/row.tsx + const useTableRow = (props) => { + const { isScrolling } = (0, vue.inject)(TableV2InjectionKey); + const measured = (0, vue.ref)(false); + const rowRef = (0, vue.ref)(); + const measurable = (0, vue.computed)(() => { + return isNumber(props.estimatedRowHeight) && props.rowIndex >= 0; + }); + const doMeasure = (isInit = false) => { + const $rowRef = (0, vue.unref)(rowRef); + if (!$rowRef) return; + const { columns, onRowHeightChange, rowKey, rowIndex, style } = props; + const { height } = $rowRef.getBoundingClientRect(); + measured.value = true; + (0, vue.nextTick)(() => { + if (isInit || height !== Number.parseInt(style.height)) { + const firstColumn = columns[0]; + const isPlaceholder = firstColumn?.placeholderSign === placeholderSign; + onRowHeightChange?.({ + rowKey, + height, + rowIndex + }, firstColumn && !isPlaceholder && firstColumn.fixed); + } + }); + }; + const eventHandlers = (0, vue.computed)(() => { + const { rowData, rowIndex, rowKey, onRowHover } = props; + const handlers = props.rowEventHandlers || {}; + const eventHandlers = {}; + Object.entries(handlers).forEach(([eventName, handler]) => { + if (isFunction$1(handler)) eventHandlers[eventName] = (event) => { + handler({ + event, + rowData, + rowIndex, + rowKey + }); + }; + }); + if (onRowHover) [{ + name: "onMouseleave", + hovered: false + }, { + name: "onMouseenter", + hovered: true + }].forEach(({ name, hovered }) => { + const existedHandler = eventHandlers[name]; + eventHandlers[name] = (event) => { + onRowHover({ + event, + hovered, + rowData, + rowIndex, + rowKey + }); + existedHandler?.(event); + }; + }); + return eventHandlers; + }); + const onExpand = (expanded) => { + const { onRowExpand, rowData, rowIndex, rowKey } = props; + onRowExpand?.({ + expanded, + rowData, + rowIndex, + rowKey + }); + }; + (0, vue.onMounted)(() => { + if ((0, vue.unref)(measurable)) doMeasure(true); + }); + return { + isScrolling, + measurable, + measured, + rowRef, + eventHandlers, + onExpand + }; + }; + const TableV2Row = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTableV2TableRow", + props: tableV2RowProps, + setup(props, { expose, slots, attrs }) { + const { eventHandlers, isScrolling, measurable, measured, rowRef, onExpand } = useTableRow(props); + expose({ onExpand }); + return () => { + const { columns, columnsStyles, expandColumnKey, depth, rowData, rowIndex, style } = props; + let ColumnCells = columns.map((column, columnIndex) => { + const expandable = isArray$1(rowData.children) && rowData.children.length > 0 && column.key === expandColumnKey; + return slots.cell({ + column, + columns, + columnIndex, + depth, + style: columnsStyles[column.key], + rowData, + rowIndex, + isScrolling: (0, vue.unref)(isScrolling), + expandIconProps: expandable ? { + rowData, + rowIndex, + onExpand + } : void 0 + }); + }); + if (slots.row) ColumnCells = slots.row({ + cells: ColumnCells.map((node) => { + if (isArray$1(node) && node.length === 1) return node[0]; + return node; + }), + style, + columns, + depth, + rowData, + rowIndex, + isScrolling: (0, vue.unref)(isScrolling) + }); + if ((0, vue.unref)(measurable)) { + const { height, ...exceptHeightStyle } = style || {}; + const _measured = (0, vue.unref)(measured); + return (0, vue.createVNode)("div", (0, vue.mergeProps)({ + "ref": rowRef, + "class": props.class, + "style": _measured ? style : exceptHeightStyle, + "role": "row" + }, attrs, (0, vue.unref)(eventHandlers)), [ColumnCells]); + } + return (0, vue.createVNode)("div", (0, vue.mergeProps)(attrs, { + "ref": rowRef, + "class": props.class, + "style": style, + "role": "row" + }, (0, vue.unref)(eventHandlers)), [ColumnCells]); + }; + } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/components/sort-icon.tsx + const SortIcon = (props) => { + const { sortOrder } = props; + return (0, vue.createVNode)("button", { + "type": "button", + "aria-label": props.ariaLabel, + "class": props.class + }, [(0, vue.createVNode)(ElIcon, { "size": 14 }, { default: () => [sortOrder === SortOrder.ASC ? (0, vue.createVNode)(sort_up_default, null, null) : (0, vue.createVNode)(sort_down_default, null, null)] })]); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/components/expand-icon.tsx + const ExpandIcon = (props) => { + const { expanded, expandable, onExpand, style, size, ariaLabel } = props; + return (0, vue.createVNode)("button", (0, vue.mergeProps)({ + onClick: expandable ? () => onExpand(!expanded) : void 0, + ariaLabel, + ariaExpanded: expanded, + class: props.class + }, { "type": "button" }), [(0, vue.createVNode)(ElIcon, { + "size": size, + "style": style + }, { default: () => [(0, vue.createVNode)(arrow_right_default, null, null)] })]); + }; + ExpandIcon.inheritAttrs = false; + +//#endregion +//#region ../../packages/components/table-v2/src/table-grid.tsx + const COMPONENT_NAME$5 = "ElTableV2Grid"; + const useTableGrid = (props) => { + const headerRef = (0, vue.ref)(); + const bodyRef = (0, vue.ref)(); + const scrollLeft = (0, vue.ref)(0); + const totalHeight = (0, vue.computed)(() => { + const { data, rowHeight, estimatedRowHeight } = props; + if (estimatedRowHeight) return; + return data.length * rowHeight; + }); + const fixedRowHeight = (0, vue.computed)(() => { + const { fixedData, rowHeight } = props; + return (fixedData?.length || 0) * rowHeight; + }); + const headerHeight = (0, vue.computed)(() => sum(props.headerHeight)); + const gridHeight = (0, vue.computed)(() => { + const { height } = props; + return Math.max(0, height - (0, vue.unref)(headerHeight) - (0, vue.unref)(fixedRowHeight)); + }); + const hasHeader = (0, vue.computed)(() => { + return (0, vue.unref)(headerHeight) + (0, vue.unref)(fixedRowHeight) > 0; + }); + const itemKey = ({ data, rowIndex }) => data[rowIndex][props.rowKey]; + function onItemRendered({ rowCacheStart, rowCacheEnd, rowVisibleStart, rowVisibleEnd }) { + props.onRowsRendered?.({ + rowCacheStart, + rowCacheEnd, + rowVisibleStart, + rowVisibleEnd + }); + } + function resetAfterRowIndex(index, forceUpdate) { + bodyRef.value?.resetAfterRowIndex(index, forceUpdate); + } + function scrollTo(leftOrOptions, top) { + const header$ = (0, vue.unref)(headerRef); + const body$ = (0, vue.unref)(bodyRef); + if (isObject$1(leftOrOptions)) { + header$?.scrollToLeft(leftOrOptions.scrollLeft); + scrollLeft.value = leftOrOptions.scrollLeft; + body$?.scrollTo(leftOrOptions); + } else { + header$?.scrollToLeft(leftOrOptions); + scrollLeft.value = leftOrOptions; + body$?.scrollTo({ + scrollLeft: leftOrOptions, + scrollTop: top + }); + } + } + function scrollToTop(scrollTop) { + (0, vue.unref)(bodyRef)?.scrollTo({ scrollTop }); + } + function scrollToRow(row, strategy) { + const body = (0, vue.unref)(bodyRef); + if (!body) return; + const prevScrollLeft = scrollLeft.value; + body.scrollToItem(row, 0, strategy); + if (prevScrollLeft) scrollTo({ scrollLeft: prevScrollLeft }); + } + function forceUpdate() { + (0, vue.unref)(bodyRef)?.$forceUpdate(); + (0, vue.unref)(headerRef)?.$forceUpdate(); + } + (0, vue.watch)(() => props.bodyWidth, () => { + if (isNumber(props.estimatedRowHeight)) bodyRef.value?.resetAfter({ columnIndex: 0 }, false); + }); + return { + bodyRef, + forceUpdate, + fixedRowHeight, + gridHeight, + hasHeader, + headerHeight, + headerRef, + totalHeight, + itemKey, + onItemRendered, + resetAfterRowIndex, + scrollTo, + scrollToTop, + scrollToRow, + scrollLeft + }; + }; + const TableGrid = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$5, + props: tableV2GridProps, + setup(props, { slots, expose }) { + const { ns } = (0, vue.inject)(TableV2InjectionKey); + const { bodyRef, fixedRowHeight, gridHeight, hasHeader, headerRef, headerHeight, totalHeight, forceUpdate, itemKey, onItemRendered, resetAfterRowIndex, scrollTo, scrollToTop, scrollToRow, scrollLeft } = useTableGrid(props); + (0, vue.provide)(TABLE_V2_GRID_INJECTION_KEY, scrollLeft); + (0, vue.onActivated)(async () => { + await (0, vue.nextTick)(); + const scrollTop = bodyRef.value?.states.scrollTop; + scrollTop && scrollToTop(Math.round(scrollTop) + 1); + }); + expose({ + forceUpdate, + totalHeight, + scrollTo, + scrollToTop, + scrollToRow, + resetAfterRowIndex + }); + const getColumnWidth = () => props.bodyWidth; + return () => { + const { cache, columns, data, fixedData, useIsScrolling, scrollbarAlwaysOn, scrollbarEndGap, scrollbarStartGap, style, rowHeight, bodyWidth, estimatedRowHeight, headerWidth, height, width, getRowHeight, onScroll } = props; + const isDynamicRowEnabled = isNumber(estimatedRowHeight); + const Grid = isDynamicRowEnabled ? DynamicSizeGrid : FixedSizeGrid; + const _headerHeight = (0, vue.unref)(headerHeight); + return (0, vue.createVNode)("div", { + "role": "table", + "class": [ns.e("table"), props.class], + "style": style + }, [(0, vue.createVNode)(Grid, { + "ref": bodyRef, + "data": data, + "useIsScrolling": useIsScrolling, + "itemKey": itemKey, + "columnCache": 0, + "columnWidth": isDynamicRowEnabled ? getColumnWidth : bodyWidth, + "totalColumn": 1, + "totalRow": data.length, + "rowCache": cache, + "rowHeight": isDynamicRowEnabled ? getRowHeight : rowHeight, + "width": width, + "height": (0, vue.unref)(gridHeight), + "class": ns.e("body"), + "role": "rowgroup", + "scrollbarStartGap": scrollbarStartGap, + "scrollbarEndGap": scrollbarEndGap, + "scrollbarAlwaysOn": scrollbarAlwaysOn, + "onScroll": onScroll, + "onItemRendered": onItemRendered, + "perfMode": false + }, { default: (params) => { + const rowData = data[params.rowIndex]; + return slots.row?.({ + ...params, + columns, + rowData + }); + } }), (0, vue.unref)(hasHeader) && (0, vue.createVNode)(TableV2Header, { + "ref": headerRef, + "class": ns.e("header-wrapper"), + "columns": columns, + "headerData": data, + "headerHeight": props.headerHeight, + "fixedHeaderData": fixedData, + "rowWidth": headerWidth, + "rowHeight": rowHeight, + "width": width, + "height": Math.min(_headerHeight + (0, vue.unref)(fixedRowHeight), height) + }, { + dynamic: slots.header, + fixed: slots.row + })]); + }; + } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/main-table.tsx + function _isSlot$5(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + const MainTable = (props, { slots }) => { + const { mainTableRef, ...rest } = props; + return (0, vue.createVNode)(TableGrid, (0, vue.mergeProps)({ "ref": mainTableRef }, rest), _isSlot$5(slots) ? slots : { default: () => [slots] }); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/left-table.tsx + function _isSlot$4(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + const LeftTable = (props, { slots }) => { + if (!props.columns.length) return; + const { leftTableRef, ...rest } = props; + return (0, vue.createVNode)(TableGrid, (0, vue.mergeProps)({ "ref": leftTableRef }, rest), _isSlot$4(slots) ? slots : { default: () => [slots] }); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/right-table.tsx + function _isSlot$3(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + const RightTable = (props, { slots }) => { + if (!props.columns.length) return; + const { rightTableRef, ...rest } = props; + return (0, vue.createVNode)(TableGrid, (0, vue.mergeProps)({ "ref": rightTableRef }, rest), _isSlot$3(slots) ? slots : { default: () => [slots] }); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/row.tsx + function _isSlot$2(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + const RowRenderer = (props, { slots }) => { + const { columns, columnsStyles, depthMap, expandColumnKey, expandedRowKeys, estimatedRowHeight, hasFixedColumns, rowData, rowIndex, style, isScrolling, rowProps, rowClass, rowKey, rowEventHandlers, ns, onRowHovered, onRowExpanded } = props; + const rowKls = tryCall(rowClass, { + columns, + rowData, + rowIndex + }, ""); + const additionalProps = tryCall(rowProps, { + columns, + rowData, + rowIndex + }); + const _rowKey = rowData[rowKey]; + const depth = depthMap[_rowKey] || 0; + const canExpand = Boolean(expandColumnKey); + const isFixedRow = rowIndex < 0; + const kls = [ + ns.e("row"), + rowKls, + ns.is("expanded", canExpand && expandedRowKeys.includes(_rowKey)), + ns.is("fixed", !depth && isFixedRow), + ns.is("customized", Boolean(slots.row)), + { [ns.e(`row-depth-${depth}`)]: canExpand && rowIndex >= 0 } + ]; + const onRowHover = hasFixedColumns ? onRowHovered : void 0; + const _rowProps = { + ...additionalProps, + columns, + columnsStyles, + class: kls, + depth, + expandColumnKey, + estimatedRowHeight: isFixedRow ? void 0 : estimatedRowHeight, + isScrolling, + rowIndex, + rowData, + rowKey: _rowKey, + rowEventHandlers, + style + }; + const handlerMouseEnter = (e) => { + onRowHover?.({ + hovered: true, + rowKey: _rowKey, + event: e, + rowData, + rowIndex + }); + }; + const handlerMouseLeave = (e) => { + onRowHover?.({ + hovered: false, + rowKey: _rowKey, + event: e, + rowData, + rowIndex + }); + }; + return (0, vue.createVNode)(TableV2Row, (0, vue.mergeProps)(_rowProps, { + "onRowExpand": onRowExpanded, + "onMouseenter": handlerMouseEnter, + "onMouseleave": handlerMouseLeave, + "rowkey": _rowKey + }), _isSlot$2(slots) ? slots : { default: () => [slots] }); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/cell.tsx + const CellRenderer = ({ columns, column, columnIndex, depth, expandIconProps, isScrolling, rowData, rowIndex, style, expandedRowKeys, ns, t, cellProps: _cellProps, expandColumnKey, indentSize, iconSize, rowKey }, { slots }) => { + const cellStyle = enforceUnit(style); + if (column.placeholderSign === placeholderSign) return (0, vue.createVNode)("div", { + "class": ns.em("row-cell", "placeholder"), + "style": cellStyle + }, null); + const { cellRenderer, dataKey, dataGetter } = column; + const cellData = isFunction$1(dataGetter) ? dataGetter({ + columns, + column, + columnIndex, + rowData, + rowIndex + }) : get(rowData, dataKey ?? ""); + const extraCellProps = tryCall(_cellProps, { + cellData, + columns, + column, + columnIndex, + rowIndex, + rowData + }); + const cellProps = { + class: ns.e("cell-text"), + columns, + column, + columnIndex, + cellData, + isScrolling, + rowData, + rowIndex + }; + const columnCellRenderer = componentToSlot(cellRenderer); + const Cell = columnCellRenderer ? columnCellRenderer(cellProps) : (0, vue.renderSlot)(slots, "default", cellProps, () => [(0, vue.createVNode)(TableV2Cell, cellProps, null)]); + const kls = [ + ns.e("row-cell"), + column.class, + column.align === Alignment.CENTER && ns.is("align-center"), + column.align === Alignment.RIGHT && ns.is("align-right") + ]; + const expandable = rowIndex >= 0 && expandColumnKey && column.key === expandColumnKey; + const expanded = rowIndex >= 0 && expandedRowKeys.includes(rowData[rowKey]); + let IconOrPlaceholder; + const iconStyle = `margin-inline-start: ${depth * indentSize}px;`; + if (expandable) if (isObject$1(expandIconProps)) IconOrPlaceholder = (0, vue.createVNode)(ExpandIcon, (0, vue.mergeProps)(expandIconProps, { + "class": [ns.e("expand-icon"), ns.is("expanded", expanded)], + "size": iconSize, + "expanded": expanded, + "ariaLabel": t(expanded ? "el.table.collapseRowLabel" : "el.table.expandRowLabel"), + "style": iconStyle, + "expandable": true + }), null); + else IconOrPlaceholder = (0, vue.createVNode)("div", { "style": [iconStyle, `width: ${iconSize}px; height: ${iconSize}px;`].join(" ") }, null); + return (0, vue.createVNode)("div", (0, vue.mergeProps)({ + "class": kls, + "style": cellStyle + }, extraCellProps, { "role": "cell" }), [IconOrPlaceholder, Cell]); + }; + CellRenderer.inheritAttrs = false; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/header.tsx + function _isSlot$1(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + const HeaderRenderer = ({ columns, columnsStyles, headerIndex, style, headerClass, headerProps, ns }, { slots }) => { + const param = { + columns, + headerIndex + }; + const kls = [ + ns.e("header-row"), + tryCall(headerClass, param, ""), + ns.is("customized", Boolean(slots.header)) + ]; + return (0, vue.createVNode)(TableV2HeaderRow, { + ...tryCall(headerProps, param), + columnsStyles, + class: kls, + columns, + headerIndex, + style + }, _isSlot$1(slots) ? slots : { default: () => [slots] }); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/header-cell.tsx + const HeaderCellRenderer = (props, { slots }) => { + const { column, ns, t, style, onColumnSorted } = props; + const cellStyle = enforceUnit(style); + if (column.placeholderSign === placeholderSign) return (0, vue.createVNode)("div", { + "class": ns.em("header-row-cell", "placeholder"), + "style": cellStyle + }, null); + const { headerCellRenderer, headerClass, sortable } = column; + /** + * render Cell children + */ + const cellProps = { + ...props, + class: ns.e("header-cell-text") + }; + const columnCellRenderer = componentToSlot(headerCellRenderer); + const Cell = columnCellRenderer ? columnCellRenderer(cellProps) : (0, vue.renderSlot)(slots, "default", cellProps, () => [(0, vue.createVNode)(HeaderCell, cellProps, null)]); + /** + * Render cell container and sort indicator + */ + const { sortBy, sortState, headerCellProps } = props; + let sorting, sortOrder, ariaSort; + if (sortState) { + const order = sortState[column.key]; + sorting = Boolean(oppositeOrderMap[order]); + sortOrder = sorting ? order : SortOrder.ASC; + } else { + sorting = column.key === sortBy.key; + sortOrder = sorting ? sortBy.order : SortOrder.ASC; + } + if (sortOrder === SortOrder.ASC) ariaSort = "ascending"; + else if (sortOrder === SortOrder.DESC) ariaSort = "descending"; + else ariaSort = void 0; + const cellKls = [ + ns.e("header-cell"), + tryCall(headerClass, props, ""), + column.align === Alignment.CENTER && ns.is("align-center"), + column.align === Alignment.RIGHT && ns.is("align-right"), + sortable && ns.is("sortable") + ]; + return (0, vue.createVNode)("div", (0, vue.mergeProps)({ + ...tryCall(headerCellProps, props), + onClick: column.sortable ? onColumnSorted : void 0, + ariaSort: sortable ? ariaSort : void 0, + class: cellKls, + style: cellStyle, + ["data-key"]: column.key + }, { "role": "columnheader" }), [Cell, sortable && (0, vue.createVNode)(SortIcon, { + "class": [ns.e("sort-icon"), sorting && ns.is("sorting")], + "sortOrder": sortOrder, + "ariaLabel": t("el.table.sortLabel", { column: column.title || "" }) + }, null)]); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/footer.tsx + const Footer$1 = (props, { slots }) => { + return (0, vue.createVNode)("div", { + "class": props.class, + "style": props.style + }, [slots.default?.()]); + }; + Footer$1.displayName = "ElTableV2Footer"; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/empty.tsx + const Footer = (props, { slots }) => { + const defaultSlot = (0, vue.renderSlot)(slots, "default", {}, () => [(0, vue.createVNode)(ElEmpty, null, null)]); + return (0, vue.createVNode)("div", { + "class": props.class, + "style": props.style + }, [defaultSlot]); + }; + Footer.displayName = "ElTableV2Empty"; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/overlay.tsx + const Overlay = (props, { slots }) => { + return (0, vue.createVNode)("div", { + "class": props.class, + "style": props.style + }, [slots.default?.()]); + }; + Overlay.displayName = "ElTableV2Overlay"; + +//#endregion +//#region ../../packages/components/table-v2/src/table-v2.tsx + function _isSlot(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + const TableV2 = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTableV2", + props: tableV2Props, + slots: Object, + setup(props, { slots, expose }) { + const ns = useNamespace("table-v2"); + const { t } = useLocale(); + const { columnsStyles, fixedColumnsOnLeft, fixedColumnsOnRight, mainColumns, mainTableHeight, fixedTableHeight, leftTableWidth, rightTableWidth, data, depthMap, expandedRowKeys, hasFixedColumns, mainTableRef, leftTableRef, rightTableRef, isDynamic, isResetting, isScrolling, bodyWidth, emptyStyle, rootStyle, footerHeight, showEmpty, scrollTo, scrollToLeft, scrollToTop, scrollToRow, getRowHeight, onColumnSorted, onRowHeightChange, onRowHovered, onRowExpanded, onRowsRendered, onScroll, onVerticalScroll } = useTable(props); + expose({ + scrollTo, + scrollToLeft, + scrollToTop, + scrollToRow + }); + (0, vue.provide)(TableV2InjectionKey, { + ns, + isResetting, + isScrolling + }); + return () => { + const { cache, cellProps, estimatedRowHeight, expandColumnKey, fixedData, headerHeight, headerClass, headerProps, headerCellProps, sortBy, sortState, rowHeight, rowClass, rowEventHandlers, rowKey, rowProps, scrollbarAlwaysOn, indentSize, iconSize, useIsScrolling, vScrollbarSize, width } = props; + const _data = (0, vue.unref)(data); + const mainTableProps = { + cache, + class: ns.e("main"), + columns: (0, vue.unref)(mainColumns), + data: _data, + fixedData, + estimatedRowHeight, + bodyWidth: (0, vue.unref)(bodyWidth), + headerHeight, + headerWidth: (0, vue.unref)(bodyWidth), + height: (0, vue.unref)(mainTableHeight), + mainTableRef, + rowKey, + rowHeight, + scrollbarAlwaysOn, + scrollbarStartGap: 2, + scrollbarEndGap: vScrollbarSize, + useIsScrolling, + width, + getRowHeight, + onRowsRendered, + onScroll + }; + const leftColumnsWidth = (0, vue.unref)(leftTableWidth); + const _fixedTableHeight = (0, vue.unref)(fixedTableHeight); + const leftTableProps = { + cache, + class: ns.e("left"), + columns: (0, vue.unref)(fixedColumnsOnLeft), + data: _data, + fixedData, + estimatedRowHeight, + leftTableRef, + rowHeight, + bodyWidth: leftColumnsWidth, + headerWidth: leftColumnsWidth, + headerHeight, + height: _fixedTableHeight, + rowKey, + scrollbarAlwaysOn, + scrollbarStartGap: 2, + scrollbarEndGap: vScrollbarSize, + useIsScrolling, + width: leftColumnsWidth, + getRowHeight, + onScroll: onVerticalScroll + }; + const rightColumnsWidth = (0, vue.unref)(rightTableWidth); + const rightTableProps = { + cache, + class: ns.e("right"), + columns: (0, vue.unref)(fixedColumnsOnRight), + data: _data, + fixedData, + estimatedRowHeight, + rightTableRef, + rowHeight, + bodyWidth: rightColumnsWidth, + headerWidth: rightColumnsWidth, + headerHeight, + height: _fixedTableHeight, + rowKey, + scrollbarAlwaysOn, + scrollbarStartGap: 2, + scrollbarEndGap: vScrollbarSize, + width: rightColumnsWidth, + style: `${ns.cssVarName("table-scrollbar-size")}: ${vScrollbarSize}px`, + useIsScrolling, + getRowHeight, + onScroll: onVerticalScroll + }; + const _columnsStyles = (0, vue.unref)(columnsStyles); + const tableRowProps = { + ns, + depthMap: (0, vue.unref)(depthMap), + columnsStyles: _columnsStyles, + expandColumnKey, + expandedRowKeys: (0, vue.unref)(expandedRowKeys), + estimatedRowHeight, + hasFixedColumns: (0, vue.unref)(hasFixedColumns), + rowProps, + rowClass, + rowKey, + rowEventHandlers, + onRowHovered, + onRowExpanded, + onRowHeightChange + }; + const tableCellProps = { + cellProps, + expandColumnKey, + indentSize, + iconSize, + rowKey, + expandedRowKeys: (0, vue.unref)(expandedRowKeys), + ns, + t + }; + const tableHeaderProps = { + ns, + headerClass, + headerProps, + columnsStyles: _columnsStyles + }; + const tableHeaderCellProps = { + ns, + t, + sortBy, + sortState, + headerCellProps, + onColumnSorted + }; + const tableSlots = { + row: (props) => (0, vue.createVNode)(RowRenderer, (0, vue.mergeProps)(props, tableRowProps), { + row: slots.row, + cell: (props) => { + let _slot; + return slots.cell ? (0, vue.createVNode)(CellRenderer, (0, vue.mergeProps)(props, tableCellProps, { "style": _columnsStyles[props.column.key] }), _isSlot(_slot = slots.cell(props)) ? _slot : { default: () => [_slot] }) : (0, vue.createVNode)(CellRenderer, (0, vue.mergeProps)(props, tableCellProps, { "style": _columnsStyles[props.column.key] }), null); + } + }), + header: (props) => (0, vue.createVNode)(HeaderRenderer, (0, vue.mergeProps)(props, tableHeaderProps), { + header: slots.header, + cell: (props) => { + let _slot2; + return slots["header-cell"] ? (0, vue.createVNode)(HeaderCellRenderer, (0, vue.mergeProps)(props, tableHeaderCellProps, { "style": _columnsStyles[props.column.key] }), _isSlot(_slot2 = slots["header-cell"](props)) ? _slot2 : { default: () => [_slot2] }) : (0, vue.createVNode)(HeaderCellRenderer, (0, vue.mergeProps)(props, tableHeaderCellProps, { "style": _columnsStyles[props.column.key] }), null); + } + }) + }; + const rootKls = [ + props.class, + ns.b(), + ns.e("root"), + ns.is("dynamic", (0, vue.unref)(isDynamic)) + ]; + const footerProps = { + class: ns.e("footer"), + style: (0, vue.unref)(footerHeight) + }; + return (0, vue.createVNode)("div", { + "class": rootKls, + "style": (0, vue.unref)(rootStyle) + }, [ + (0, vue.createVNode)(MainTable, mainTableProps, _isSlot(tableSlots) ? tableSlots : { default: () => [tableSlots] }), + (0, vue.createVNode)(LeftTable, leftTableProps, _isSlot(tableSlots) ? tableSlots : { default: () => [tableSlots] }), + (0, vue.createVNode)(RightTable, rightTableProps, _isSlot(tableSlots) ? tableSlots : { default: () => [tableSlots] }), + slots.footer && (0, vue.createVNode)(Footer$1, footerProps, { default: slots.footer }), + (0, vue.unref)(showEmpty) && (0, vue.createVNode)(Footer, { + "class": ns.e("empty"), + "style": (0, vue.unref)(emptyStyle) + }, { default: slots.empty }), + slots.overlay && (0, vue.createVNode)(Overlay, { "class": ns.e("overlay") }, { default: slots.overlay }) + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/auto-resizer.ts + const autoResizerProps = buildProps({ + disableWidth: Boolean, + disableHeight: Boolean, + onResize: { type: definePropType(Function) } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/components/auto-resizer.tsx + const AutoResizer = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAutoResizer", + props: autoResizerProps, + setup(props, { slots }) { + const ns = useNamespace("auto-resizer"); + const { height, width, sizer } = useAutoResize(props); + const style = { + width: "100%", + height: "100%" + }; + return () => { + return (0, vue.createVNode)("div", { + "ref": sizer, + "class": ns.b(), + "style": style + }, [slots.default?.({ + height: height.value, + width: width.value + })]); + }; + } + }); + +//#endregion +//#region ../../packages/components/table-v2/index.ts + const ElTableV2 = withInstall(TableV2); + const ElAutoResizer = withInstall(AutoResizer); + +//#endregion +//#region ../../packages/components/tabs/src/constants.ts + const tabsRootContextKey = Symbol("tabsRootContextKey"); + +//#endregion +//#region ../../packages/components/tabs/src/tab-bar.ts +/** + * @deprecated Removed after 3.0.0, Use `TabBarProps` instead. + */ + const tabBarProps = buildProps({ + tabs: { + type: definePropType(Array), + default: () => mutable([]) + }, + tabRefs: { + type: definePropType(Object), + default: () => mutable({}) + } + }); + +//#endregion +//#region ../../packages/components/tabs/src/tab-bar.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$4 = "ElTabBar"; + var tab_bar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$4, + __name: "tab-bar", + props: tabBarProps, + setup(__props, { expose: __expose }) { + const props = __props; + const rootTabs = (0, vue.inject)(tabsRootContextKey); + if (!rootTabs) throwError(COMPONENT_NAME$4, ""); + const ns = useNamespace("tabs"); + const barRef = (0, vue.ref)(); + const barStyle = (0, vue.ref)(); + /** + * when defaultValue is not set, the bar is always shown. + * + * when defaultValue is set, the bar will be hidden until style is calculated + * to avoid the bar showing in the wrong position on initial render. + */ + const renderActiveBar = (0, vue.computed)(() => isUndefined(rootTabs.props.defaultValue) || Boolean(barStyle.value?.transform)); + const getBarStyle = () => { + let offset = 0; + let tabSize = 0; + const sizeName = ["top", "bottom"].includes(rootTabs.props.tabPosition) ? "width" : "height"; + const sizeDir = sizeName === "width" ? "x" : "y"; + const position = sizeDir === "x" ? "left" : "top"; + props.tabs.every((tab) => { + if (isUndefined(tab.paneName)) return false; + const $el = props.tabRefs[tab.paneName]; + if (!$el) return false; + if (!tab.active) return true; + offset = $el[`offset${capitalize(position)}`]; + tabSize = $el[`client${capitalize(sizeName)}`]; + const tabStyles = window.getComputedStyle($el); + if (sizeName === "width") { + tabSize -= Number.parseFloat(tabStyles.paddingLeft) + Number.parseFloat(tabStyles.paddingRight); + offset += Number.parseFloat(tabStyles.paddingLeft); + } + return false; + }); + return { + [sizeName]: `${tabSize}px`, + transform: `translate${capitalize(sizeDir)}(${offset}px)` + }; + }; + const update = () => barStyle.value = getBarStyle(); + const tabObservers = []; + const observerTabs = () => { + tabObservers.forEach((observer) => observer.stop()); + tabObservers.length = 0; + Object.values(props.tabRefs).forEach((tab) => { + tabObservers.push(useResizeObserver(tab, update)); + }); + }; + (0, vue.watch)(() => props.tabs, async () => { + await (0, vue.nextTick)(); + update(); + observerTabs(); + }, { immediate: true }); + const barObserver = useResizeObserver(barRef, () => update()); + (0, vue.onBeforeUnmount)(() => { + tabObservers.forEach((observer) => observer.stop()); + tabObservers.length = 0; + barObserver.stop(); + }); + __expose({ + ref: barRef, + update + }); + return (_ctx, _cache) => { + return renderActiveBar.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref_key: "barRef", + ref: barRef, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("active-bar"), (0, vue.unref)(ns).is((0, vue.unref)(rootTabs).props.tabPosition)]), + style: (0, vue.normalizeStyle)(barStyle.value) + }, null, 6)) : (0, vue.createCommentVNode)("v-if", true); + }; + } + }); + +//#endregion +//#region ../../packages/components/tabs/src/tab-bar.vue + var tab_bar_default = tab_bar_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tabs/src/tab-nav.tsx + const tabNavProps = buildProps({ + panes: { + type: definePropType(Array), + default: () => mutable([]) + }, + currentName: { + type: [String, Number], + default: "" + }, + editable: Boolean, + type: { + type: String, + values: [ + "card", + "border-card", + "" + ], + default: "" + }, + stretch: Boolean, + tabindex: { + type: [String, Number], + default: void 0 + } + }); + const tabNavEmits = { + tabClick: (tab, tabName, ev) => ev instanceof Event, + tabRemove: (tab, ev) => ev instanceof Event + }; + const COMPONENT_NAME$3 = "ElTabNav"; + const TabNav = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$3, + props: tabNavProps, + emits: tabNavEmits, + setup(props, { expose, emit }) { + const rootTabs = (0, vue.inject)(tabsRootContextKey); + if (!rootTabs) throwError(COMPONENT_NAME$3, ``); + const ns = useNamespace("tabs"); + const visibility = useDocumentVisibility(); + const focused = useWindowFocus(); + const navScroll$ = (0, vue.ref)(); + const nav$ = (0, vue.ref)(); + const el$ = (0, vue.ref)(); + const tabRefsMap = (0, vue.ref)({}); + const tabBarRef = (0, vue.ref)(); + const scrollable = (0, vue.ref)(false); + const navOffset = (0, vue.ref)(0); + const isFocus = (0, vue.ref)(false); + const focusable = (0, vue.ref)(true); + const isWheelScrolling = (0, vue.ref)(false); + const tracker = (0, vue.shallowRef)(); + const isHorizontal = (0, vue.computed)(() => ["top", "bottom"].includes(rootTabs.props.tabPosition)); + const sizeName = (0, vue.computed)(() => isHorizontal.value ? "width" : "height"); + const navStyle = (0, vue.computed)(() => { + const dir = sizeName.value === "width" ? "X" : "Y"; + return { + transition: isWheelScrolling.value ? "none" : void 0, + transform: `translate${dir}(-${navOffset.value}px)` + }; + }); + const { width: navContainerWidth, height: navContainerHeight } = useElementSize(navScroll$); + const { width: navWidth, height: navHeight } = useElementSize(nav$, { + width: 0, + height: 0 + }, { box: "border-box" }); + const navContainerSize = (0, vue.computed)(() => isHorizontal.value ? navContainerWidth.value : navContainerHeight.value); + const navSize = (0, vue.computed)(() => isHorizontal.value ? navWidth.value : navHeight.value); + const { onWheel } = useWheel({ + atStartEdge: (0, vue.computed)(() => navOffset.value <= 0), + atEndEdge: (0, vue.computed)(() => navSize.value - navOffset.value <= navContainerSize.value), + layout: (0, vue.computed)(() => isHorizontal.value ? "horizontal" : "vertical") + }, (offset) => { + navOffset.value = clamp$1(navOffset.value + offset, 0, navSize.value - navContainerSize.value); + }); + const handleWheel = (event) => { + isWheelScrolling.value = true; + onWheel(event); + rAF(() => { + isWheelScrolling.value = false; + }); + }; + const scrollPrev = () => { + if (!navScroll$.value) return; + const containerSize = navScroll$.value.getBoundingClientRect()[sizeName.value]; + const currentOffset = navOffset.value; + if (!currentOffset) return; + navOffset.value = currentOffset > containerSize ? currentOffset - containerSize : 0; + }; + const scrollNext = () => { + if (!navScroll$.value || !nav$.value) return; + const navSize = nav$.value.getBoundingClientRect()[sizeName.value]; + const containerSize = navScroll$.value.getBoundingClientRect()[sizeName.value]; + const currentOffset = navOffset.value; + if (!isGreaterThan(navSize - currentOffset, containerSize)) return; + navOffset.value = navSize - currentOffset > containerSize * 2 ? currentOffset + containerSize : navSize - containerSize; + }; + const scrollToActiveTab = async () => { + const nav = nav$.value; + if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return; + await (0, vue.nextTick)(); + const activeTab = tabRefsMap.value[props.currentName]; + if (!activeTab) return; + const navScroll = navScroll$.value; + const activeTabBounding = activeTab.getBoundingClientRect(); + const navScrollBounding = navScroll.getBoundingClientRect(); + const navScrollLeft = navScrollBounding.left + 1; + const navScrollRight = navScrollBounding.right - 1; + const navBounding = nav.getBoundingClientRect(); + const maxOffset = isHorizontal.value ? navBounding.width - navScrollBounding.width : navBounding.height - navScrollBounding.height; + const currentOffset = navOffset.value; + let newOffset = currentOffset; + if (isHorizontal.value) { + if (activeTabBounding.left < navScrollLeft) newOffset = currentOffset - (navScrollLeft - activeTabBounding.left); + if (activeTabBounding.right > navScrollRight) newOffset = currentOffset + activeTabBounding.right - navScrollRight; + } else { + if (activeTabBounding.top < navScrollBounding.top) newOffset = currentOffset - (navScrollBounding.top - activeTabBounding.top); + if (activeTabBounding.bottom > navScrollBounding.bottom) newOffset = currentOffset + (activeTabBounding.bottom - navScrollBounding.bottom); + } + newOffset = Math.max(newOffset, 0); + navOffset.value = Math.min(newOffset, maxOffset); + }; + const update = () => { + if (!nav$.value || !navScroll$.value) return; + props.stretch && tabBarRef.value?.update(); + const navSize = nav$.value.getBoundingClientRect()[sizeName.value]; + const containerSize = navScroll$.value.getBoundingClientRect()[sizeName.value]; + const currentOffset = navOffset.value; + if (containerSize < navSize) { + scrollable.value = scrollable.value || {}; + scrollable.value.prev = currentOffset; + scrollable.value.next = isGreaterThan(navSize, currentOffset + containerSize); + if (isGreaterThan(containerSize, navSize - currentOffset)) navOffset.value = navSize - containerSize; + } else { + scrollable.value = false; + if (currentOffset > 0) navOffset.value = 0; + } + }; + const changeTab = (event) => { + const code = getEventCode(event); + let step = 0; + switch (code) { + case EVENT_CODE.left: + case EVENT_CODE.up: + step = -1; + break; + case EVENT_CODE.right: + case EVENT_CODE.down: + step = 1; + break; + default: return; + } + const tabList = Array.from(event.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")); + let nextIndex = tabList.indexOf(event.target) + step; + if (nextIndex < 0) nextIndex = tabList.length - 1; + else if (nextIndex >= tabList.length) nextIndex = 0; + tabList[nextIndex].focus({ preventScroll: true }); + tabList[nextIndex].click(); + setFocus(); + }; + const setFocus = () => { + if (focusable.value) isFocus.value = true; + }; + const removeFocus = () => isFocus.value = false; + const setRefs = (el, key) => { + tabRefsMap.value[key] = el; + }; + const focusActiveTab = async () => { + await (0, vue.nextTick)(); + tabRefsMap.value[props.currentName]?.focus({ preventScroll: true }); + }; + (0, vue.watch)(visibility, (visibility) => { + if (visibility === "hidden") focusable.value = false; + else if (visibility === "visible") setTimeout(() => focusable.value = true, 50); + }); + (0, vue.watch)(focused, (focused) => { + if (focused) setTimeout(() => focusable.value = true, 50); + else focusable.value = false; + }); + useResizeObserver(el$, () => { + rAF(update); + }); + (0, vue.onMounted)(() => setTimeout(() => scrollToActiveTab(), 0)); + (0, vue.onUpdated)(() => update()); + expose({ + scrollToActiveTab, + removeFocus, + focusActiveTab, + tabListRef: nav$, + tabBarRef, + scheduleRender: () => (0, vue.triggerRef)(tracker) + }); + return () => { + const scrollBtn = scrollable.value ? [(0, vue.createVNode)("span", { + "class": [ns.e("nav-prev"), ns.is("disabled", !scrollable.value.prev)], + "onClick": scrollPrev + }, [(0, vue.createVNode)(ElIcon, null, { default: () => [(0, vue.createVNode)(arrow_left_default, null, null)] })]), (0, vue.createVNode)("span", { + "class": [ns.e("nav-next"), ns.is("disabled", !scrollable.value.next)], + "onClick": scrollNext + }, [(0, vue.createVNode)(ElIcon, null, { default: () => [(0, vue.createVNode)(arrow_right_default, null, null)] })])] : null; + const tabs = props.panes.map((pane, index) => { + const uid = pane.uid; + const disabled = pane.props.disabled; + const tabName = pane.props.name ?? pane.index ?? `${index}`; + const closable = !disabled && (pane.isClosable || pane.props.closable !== false && props.editable); + pane.index = `${index}`; + const btnClose = closable ? (0, vue.createVNode)(ElIcon, { + "class": "is-icon-close", + "onClick": (ev) => emit("tabRemove", pane, ev) + }, { default: () => [(0, vue.createVNode)(close_default, null, null)] }) : null; + const tabLabelContent = pane.slots.label?.() || pane.props.label; + const tabindex = !disabled && pane.active ? props.tabindex ?? rootTabs.props.tabindex : -1; + return (0, vue.createVNode)("div", { + "ref": (el) => setRefs(el, tabName), + "class": [ + ns.e("item"), + ns.is(rootTabs.props.tabPosition), + ns.is("active", pane.active), + ns.is("disabled", disabled), + ns.is("closable", closable), + ns.is("focus", isFocus.value) + ], + "id": `tab-${tabName}`, + "key": `tab-${uid}`, + "aria-controls": `pane-${tabName}`, + "role": "tab", + "aria-selected": pane.active, + "tabindex": tabindex, + "onFocus": () => setFocus(), + "onBlur": () => removeFocus(), + "onClick": (ev) => { + removeFocus(); + emit("tabClick", pane, tabName, ev); + }, + "onKeydown": (ev) => { + const code = getEventCode(ev); + if (closable && (code === EVENT_CODE.delete || code === EVENT_CODE.backspace)) emit("tabRemove", pane, ev); + } + }, [...[tabLabelContent, btnClose]]); + }); + tracker.value; + return (0, vue.createVNode)("div", { + "ref": el$, + "class": [ + ns.e("nav-wrap"), + ns.is("scrollable", !!scrollable.value), + ns.is(rootTabs.props.tabPosition) + ] + }, [scrollBtn, (0, vue.createVNode)("div", { + "class": ns.e("nav-scroll"), + "ref": navScroll$ + }, [props.panes.length > 0 ? (0, vue.createVNode)("div", { + "class": [ + ns.e("nav"), + ns.is(rootTabs.props.tabPosition), + ns.is("stretch", props.stretch && ["top", "bottom"].includes(rootTabs.props.tabPosition)) + ], + "ref": nav$, + "style": navStyle.value, + "role": "tablist", + "onKeydown": changeTab, + "onWheel": handleWheel + }, [...[!props.type ? (0, vue.createVNode)(tab_bar_default, { + "ref": tabBarRef, + "tabs": [...props.panes], + "tabRefs": tabRefsMap.value + }, null) : null, tabs]]) : null])]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tabs/src/tabs.tsx + const tabsProps = buildProps({ + 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: definePropType(Function), + default: () => true + }, + stretch: Boolean, + tabindex: { + type: [String, Number], + default: 0 + } + }); + const isPaneName = (value) => isString(value) || isNumber(value); + const tabsEmits = { + [UPDATE_MODEL_EVENT]: (name) => isPaneName(name), + tabClick: (pane, ev) => ev instanceof Event, + tabChange: (name) => isPaneName(name), + edit: (paneName, action) => ["remove", "add"].includes(action), + tabRemove: (name) => isPaneName(name), + tabAdd: () => true + }; + const Tabs = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTabs", + props: tabsProps, + emits: tabsEmits, + setup(props, { emit, slots, expose }) { + const ns = useNamespace("tabs"); + const isVertical = (0, vue.computed)(() => ["left", "right"].includes(props.tabPosition)); + const { children: panes, addChild: registerPane, removeChild: unregisterPane, ChildrenSorter: PanesSorter } = useOrderedChildren((0, vue.getCurrentInstance)(), "ElTabPane"); + const nav$ = (0, vue.ref)(); + const currentName = (0, vue.ref)((isUndefined(props.modelValue) ? props.defaultValue : props.modelValue) ?? "0"); + const setCurrentName = async (value, trigger = false) => { + if (currentName.value === value || isUndefined(value)) return; + try { + let canLeave; + if (props.beforeLeave) { + const result = props.beforeLeave(value, currentName.value); + canLeave = result instanceof Promise ? await result : result; + } else canLeave = true; + if (canLeave !== false) { + const isFocusInsidePane = panes.value.find((item) => item.paneName === currentName.value)?.isFocusInsidePane(); + currentName.value = value; + if (trigger) { + emit(UPDATE_MODEL_EVENT, value); + emit("tabChange", value); + } + nav$.value?.removeFocus?.(); + if (isFocusInsidePane) nav$.value?.focusActiveTab(); + } + } catch {} + }; + const handleTabClick = (tab, tabName, event) => { + if (tab.props.disabled) return; + emit("tabClick", tab, event); + setCurrentName(tabName, true); + }; + const handleTabRemove = (pane, ev) => { + if (pane.props.disabled || isUndefined(pane.props.name)) return; + ev.stopPropagation(); + emit("edit", pane.props.name, "remove"); + emit("tabRemove", pane.props.name); + }; + const handleTabAdd = () => { + emit("edit", void 0, "add"); + emit("tabAdd"); + }; + const handleKeydown = (event) => { + const code = getEventCode(event); + if ([EVENT_CODE.enter, EVENT_CODE.numpadEnter].includes(code)) handleTabAdd(); + }; + const swapChildren = (vnode) => { + const actualFirstChild = vnode.el.firstChild; + const firstChild = ["bottom", "right"].includes(props.tabPosition) ? vnode.children[0].el : vnode.children[1].el; + if (actualFirstChild !== firstChild) actualFirstChild.before(firstChild); + }; + (0, vue.watch)(() => props.modelValue, (modelValue) => setCurrentName(modelValue)); + (0, vue.watch)(currentName, async () => { + await (0, vue.nextTick)(); + nav$.value?.scrollToActiveTab(); + }); + (0, vue.provide)(tabsRootContextKey, { + props, + currentName, + registerPane, + unregisterPane, + nav$ + }); + expose({ + currentName, + get tabNavRef() { + return omit(nav$.value, ["scheduleRender"]); + } + }); + return () => { + const addSlot = slots["add-icon"]; + const newButton = props.editable || props.addable ? (0, vue.createVNode)("div", { + "class": [ns.e("new-tab"), isVertical.value && ns.e("new-tab-vertical")], + "tabindex": props.tabindex, + "onClick": handleTabAdd, + "onKeydown": handleKeydown + }, [addSlot ? (0, vue.renderSlot)(slots, "add-icon") : (0, vue.createVNode)(ElIcon, { "class": ns.is("icon-plus") }, { default: () => [(0, vue.createVNode)(plus_default, null, null)] })]) : null; + const tabNav = () => (0, vue.createVNode)(TabNav, { + "ref": nav$, + "currentName": currentName.value, + "editable": props.editable, + "type": props.type, + "panes": panes.value, + "stretch": props.stretch, + "onTabClick": handleTabClick, + "onTabRemove": handleTabRemove + }, null); + const header = (0, vue.createVNode)("div", { "class": [ + ns.e("header"), + isVertical.value && ns.e("header-vertical"), + ns.is(props.tabPosition) + ] }, [(0, vue.createVNode)(PanesSorter, null, { + default: tabNav, + $stable: true + }), newButton]); + const panels = (0, vue.createVNode)("div", { "class": ns.e("content") }, [(0, vue.renderSlot)(slots, "default")]); + return (0, vue.createVNode)("div", { + "class": [ + ns.b(), + ns.m(props.tabPosition), + { + [ns.m("card")]: props.type === "card", + [ns.m("border-card")]: props.type === "border-card" + } + ], + "onVnodeMounted": swapChildren, + "onVnodeUpdated": swapChildren + }, [panels, header]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tabs/src/tab-pane.ts +/** + * @deprecated Removed after 3.0.0, Use `TabPaneProps` instead. + */ + const tabPaneProps = buildProps({ + label: { + type: String, + default: "" + }, + name: { type: [String, Number] }, + closable: { + type: Boolean, + default: void 0 + }, + disabled: Boolean, + lazy: Boolean + }); + +//#endregion +//#region ../../packages/components/tabs/src/tab-pane.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$14 = [ + "id", + "aria-hidden", + "aria-labelledby" + ]; + const COMPONENT_NAME$2 = "ElTabPane"; + var tab_pane_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$2, + __name: "tab-pane", + props: tabPaneProps, + setup(__props) { + const props = __props; + const instance = (0, vue.getCurrentInstance)(); + const slots = (0, vue.useSlots)(); + const tabsRoot = (0, vue.inject)(tabsRootContextKey); + if (!tabsRoot) throwError(COMPONENT_NAME$2, "usage: "); + const ns = useNamespace("tab-pane"); + const paneRef = (0, vue.ref)(); + const index = (0, vue.ref)(); + const isClosable = (0, vue.computed)(() => props.closable ?? tabsRoot.props.closable); + const active = (0, vue.computed)(() => tabsRoot.currentName.value === (props.name ?? index.value)); + const loaded = (0, vue.ref)(active.value); + const paneName = (0, vue.computed)(() => props.name ?? index.value); + const shouldBeRender = (0, vue.computed)(() => !props.lazy || loaded.value || active.value); + const isFocusInsidePane = () => { + return paneRef.value?.contains(document.activeElement); + }; + (0, vue.watch)(active, (val) => { + if (val) loaded.value = true; + }); + const pane = (0, vue.reactive)({ + uid: instance.uid, + getVnode: () => instance.vnode, + slots, + props, + paneName, + active, + index, + isClosable, + isFocusInsidePane + }); + tabsRoot.registerPane(pane); + (0, vue.onBeforeUnmount)(() => { + tabsRoot.unregisterPane(pane); + }); + (0, vue.onBeforeUpdate)(() => { + if (slots.label) tabsRoot.nav$.value?.scheduleRender(); + }); + return (_ctx, _cache) => { + return shouldBeRender.value ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + id: `pane-${paneName.value}`, + ref_key: "paneRef", + ref: paneRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + role: "tabpanel", + "aria-hidden": !active.value, + "aria-labelledby": `tab-${paneName.value}` + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 10, _hoisted_1$14)), [[vue.vShow, active.value]]) : (0, vue.createCommentVNode)("v-if", true); + }; + } + }); + +//#endregion +//#region ../../packages/components/tabs/src/tab-pane.vue + var tab_pane_default = tab_pane_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tabs/index.ts + const ElTabs = withInstall(Tabs, { TabPane: tab_pane_default }); + const ElTabPane = withNoopInstall(tab_pane_default); + +//#endregion +//#region ../../packages/components/text/src/text.ts +/** + * @deprecated Removed after 3.0.0, Use `TextProps` instead. + */ + const textProps = buildProps({ + type: { + type: String, + values: [ + "primary", + "success", + "info", + "warning", + "danger", + "" + ], + default: "" + }, + size: { + type: String, + values: componentSizes, + default: "" + }, + truncated: Boolean, + lineClamp: { type: [String, Number] }, + tag: { + type: String, + default: "span" + } + }); + +//#endregion +//#region ../../packages/components/text/src/text.vue?vue&type=script&setup=true&lang.ts + var text_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElText", + __name: "text", + props: textProps, + setup(__props) { + const props = __props; + const textRef = (0, vue.ref)(); + const textSize = useFormSize(); + const ns = useNamespace("text"); + const textKls = (0, vue.computed)(() => [ + ns.b(), + ns.m(props.type), + ns.m(textSize.value), + ns.is("truncated", props.truncated), + ns.is("line-clamp", !isUndefined(props.lineClamp)) + ]); + const bindTitle = () => { + if ((0, vue.useAttrs)().title) return; + let shouldAddTitle = false; + const text = textRef.value?.textContent || ""; + if (props.truncated) { + const width = textRef.value?.offsetWidth; + const scrollWidth = textRef.value?.scrollWidth; + if (width && scrollWidth && scrollWidth > width) shouldAddTitle = true; + } else if (!isUndefined(props.lineClamp)) { + const height = textRef.value?.offsetHeight; + const scrollHeight = textRef.value?.scrollHeight; + if (height && scrollHeight && scrollHeight > height) shouldAddTitle = true; + } + if (shouldAddTitle) textRef.value?.setAttribute("title", text); + else textRef.value?.removeAttribute("title"); + }; + (0, vue.onMounted)(bindTitle); + (0, vue.onUpdated)(bindTitle); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.tag), { + ref_key: "textRef", + ref: textRef, + class: (0, vue.normalizeClass)(textKls.value), + style: (0, vue.normalizeStyle)({ "-webkit-line-clamp": __props.lineClamp }) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["class", "style"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/text/src/text.vue + var text_default = text_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/text/index.ts + const ElText = withInstall(text_default); + +//#endregion +//#region ../../packages/components/time-select/src/time-select.ts + const DEFAULT_STEP = "00:30"; + /** + * @deprecated Removed after 3.0.0, Use `TimeSelectProps` instead. + */ + const timeSelectProps = buildProps({ + format: { + type: String, + default: "HH:mm" + }, + modelValue: { type: definePropType(String) }, + disabled: { + type: Boolean, + default: void 0 + }, + editable: { + type: Boolean, + default: true + }, + effect: { + type: definePropType(String), + default: "light" + }, + clearable: { + type: Boolean, + default: true + }, + size: useSizeProp, + placeholder: String, + start: { + type: String, + default: "09:00" + }, + end: { + type: String, + default: "18:00" + }, + step: { + type: String, + default: DEFAULT_STEP + }, + minTime: { type: definePropType(String) }, + maxTime: { type: definePropType(String) }, + includeEndTime: Boolean, + name: String, + prefixIcon: { + type: definePropType([String, Object]), + default: () => clock_default + }, + clearIcon: { + type: definePropType([String, Object]), + default: () => circle_close_default + }, + popperClass: { + type: String, + default: "" + }, + popperStyle: { type: definePropType([String, Object]) }, + ...useEmptyValuesProps + }); + +//#endregion +//#region ../../packages/components/time-select/src/utils.ts + const parseTime = (time) => { + const values = (time || "").split(":"); + if (values.length >= 2) { + let hours = Number.parseInt(values[0], 10); + const minutes = Number.parseInt(values[1], 10); + const timeUpper = time.toUpperCase(); + if (timeUpper.includes("AM") && hours === 12) hours = 0; + else if (timeUpper.includes("PM") && hours !== 12) hours += 12; + return { + hours, + minutes + }; + } + return null; + }; + const compareTime = (time1, time2) => { + const value1 = parseTime(time1); + if (!value1) return -1; + const value2 = parseTime(time2); + if (!value2) return -1; + const minutes1 = value1.minutes + value1.hours * 60; + const minutes2 = value2.minutes + value2.hours * 60; + if (minutes1 === minutes2) return 0; + return minutes1 > minutes2 ? 1 : -1; + }; + const padTime = (time) => { + return `${time}`.padStart(2, "0"); + }; + const formatTime = (time) => { + return `${padTime(time.hours)}:${padTime(time.minutes)}`; + }; + const nextTime = (time, step) => { + const timeValue = parseTime(time); + if (!timeValue) return ""; + const stepValue = parseTime(step); + if (!stepValue) return ""; + const next = { + hours: timeValue.hours, + minutes: timeValue.minutes + }; + next.minutes += stepValue.minutes; + next.hours += stepValue.hours; + next.hours += Math.floor(next.minutes / 60); + next.minutes = next.minutes % 60; + return formatTime(next); + }; + +//#endregion +//#region ../../packages/components/time-select/src/time-select.vue?vue&type=script&setup=true&lang.ts + var time_select_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTimeSelect", + __name: "time-select", + props: timeSelectProps, + emits: [ + CHANGE_EVENT, + "blur", + "focus", + "clear", + UPDATE_MODEL_EVENT + ], + setup(__props, { expose: __expose }) { + import_dayjs_min.default.extend(import_customParseFormat.default); + const { Option: ElOption } = ElSelect; + const props = __props; + const nsInput = useNamespace("input"); + const select = (0, vue.ref)(); + const _disabled = useFormDisabled(); + const { lang } = useLocale(); + const value = (0, vue.computed)(() => props.modelValue); + const start = (0, vue.computed)(() => { + const time = parseTime(props.start); + return time ? formatTime(time) : null; + }); + const end = (0, vue.computed)(() => { + const time = parseTime(props.end); + return time ? formatTime(time) : null; + }); + const minTime = (0, vue.computed)(() => { + const time = parseTime(props.minTime || ""); + return time ? formatTime(time) : null; + }); + const maxTime = (0, vue.computed)(() => { + const time = parseTime(props.maxTime || ""); + return time ? formatTime(time) : null; + }); + const step = (0, vue.computed)(() => { + const time = parseTime(props.step); + const isInvalidStep = !time || time.hours < 0 || time.minutes < 0 || Number.isNaN(time.hours) || Number.isNaN(time.minutes) || time.hours === 0 && time.minutes === 0; + if (isInvalidStep) /* @__PURE__ */ debugWarn("ElTimeSelect", `invalid step, fallback to default step (${DEFAULT_STEP}).`); + return !isInvalidStep ? formatTime(time) : DEFAULT_STEP; + }); + const items = (0, vue.computed)(() => { + const result = []; + const push = (formattedValue, rawValue) => { + result.push({ + value: formattedValue, + rawValue, + disabled: compareTime(rawValue, minTime.value || "-1:-1") <= 0 || compareTime(rawValue, maxTime.value || "100:100") >= 0 + }); + }; + if (props.start && props.end && props.step) { + let current = start.value; + let currentTime; + while (current && end.value && compareTime(current, end.value) <= 0) { + currentTime = (0, import_dayjs_min.default)(current, "HH:mm").locale(lang.value).format(props.format); + push(currentTime, current); + current = nextTime(current, step.value); + } + if (props.includeEndTime && end.value && result[result.length - 1]?.rawValue !== end.value) push((0, import_dayjs_min.default)(end.value, "HH:mm").locale(lang.value).format(props.format), end.value); + } + return result; + }); + const blur = () => { + select.value?.blur?.(); + }; + const focus = () => { + select.value?.focus?.(); + }; + __expose({ + blur, + focus + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElSelect), { + ref_key: "select", + ref: select, + name: __props.name, + "model-value": value.value, + disabled: (0, vue.unref)(_disabled), + clearable: __props.clearable, + "clear-icon": __props.clearIcon, + size: __props.size, + effect: __props.effect, + placeholder: __props.placeholder, + "default-first-option": "", + filterable: __props.editable, + "empty-values": __props.emptyValues, + "value-on-clear": __props.valueOnClear, + "popper-class": __props.popperClass, + "popper-style": __props.popperStyle, + "onUpdate:modelValue": _cache[0] || (_cache[0] = (event) => _ctx.$emit((0, vue.unref)(UPDATE_MODEL_EVENT), event)), + onChange: _cache[1] || (_cache[1] = (event) => _ctx.$emit((0, vue.unref)(CHANGE_EVENT), event)), + onBlur: _cache[2] || (_cache[2] = (event) => _ctx.$emit("blur", event)), + onFocus: _cache[3] || (_cache[3] = (event) => _ctx.$emit("focus", event)), + onClear: _cache[4] || (_cache[4] = () => _ctx.$emit("clear")) + }, { + prefix: (0, vue.withCtx)(() => [__props.prefixIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("prefix-icon")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.prefixIcon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)]), + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(items.value, (item) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElOption), { + key: item.value, + label: item.value, + value: item.value, + disabled: item.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" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-select/src/time-select.vue + var time_select_default = time_select_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/time-select/index.ts + const ElTimeSelect = withInstall(time_select_default); + +//#endregion +//#region ../../packages/components/timeline/src/tokens.ts + const TIMELINE_INJECTION_KEY = "timeline"; + +//#endregion +//#region ../../packages/components/timeline/src/timeline.ts + const timelineProps = buildProps({ + mode: { + type: String, + values: [ + "start", + "alternate", + "alternate-reverse", + "end" + ], + default: "start" + }, + reverse: Boolean + }); + const Timeline = (0, vue.defineComponent)({ + name: "ElTimeline", + props: timelineProps, + setup(props, { slots }) { + const ns = useNamespace("timeline"); + (0, vue.provide)(TIMELINE_INJECTION_KEY, { + props, + slots + }); + const timelineKls = (0, vue.computed)(() => [ns.b(), ns.is(props.mode)]); + return () => { + const children = flattedChildren(slots.default?.() ?? []); + return (0, vue.h)("ul", { class: timelineKls.value }, props.reverse ? children.reverse() : children); + }; + } + }); + +//#endregion +//#region ../../packages/components/timeline/src/timeline-item.ts +/** + * @deprecated Removed after 3.0.0, Use `TimelineItemProps` instead. + */ + const timelineItemProps = buildProps({ + 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: iconPropType }, + hollow: Boolean + }); + +//#endregion +//#region ../../packages/components/timeline/src/timeline-item.vue?vue&type=script&setup=true&lang.ts + var timeline_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTimelineItem", + __name: "timeline-item", + props: timelineItemProps, + setup(__props) { + const props = __props; + const { props: timelineProps } = (0, vue.inject)(TIMELINE_INJECTION_KEY); + const ns = useNamespace("timeline-item"); + const defaultNodeKls = (0, vue.computed)(() => [ + ns.e("node"), + ns.em("node", props.size || ""), + ns.em("node", props.type || ""), + ns.is("hollow", props.hollow) + ]); + const timelineItemKls = (0, vue.computed)(() => [ + ns.b(), + { [ns.e("center")]: props.center }, + ns.is(timelineProps.mode) + ]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { class: (0, vue.normalizeClass)(timelineItemKls.value) }, [ + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("tail")) }, null, 2), + !_ctx.$slots.dot ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)(defaultNodeKls.value), + style: (0, vue.normalizeStyle)({ backgroundColor: __props.color }) + }, [__props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)], 6)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.dot ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("dot")) + }, [(0, vue.renderSlot)(_ctx.$slots, "dot")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("wrapper")) }, [ + !__props.hideTimestamp && __props.placement === "top" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("timestamp"), (0, vue.unref)(ns).is("top")]) + }, (0, vue.toDisplayString)(__props.timestamp), 3)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2), + !__props.hideTimestamp && __props.placement === "bottom" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("timestamp"), (0, vue.unref)(ns).is("bottom")]) + }, (0, vue.toDisplayString)(__props.timestamp), 3)) : (0, vue.createCommentVNode)("v-if", true) + ], 2) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/timeline/src/timeline-item.vue + var timeline_item_default = timeline_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/timeline/index.ts + const ElTimeline = withInstall(Timeline, { TimelineItem: timeline_item_default }); + const ElTimelineItem = withNoopInstall(timeline_item_default); + +//#endregion +//#region ../../packages/components/transfer/src/transfer.ts + const LEFT_CHECK_CHANGE_EVENT = "left-check-change"; + const RIGHT_CHECK_CHANGE_EVENT = "right-check-change"; + /** + * @deprecated Removed after 3.0.0, Use `TransferProps` instead. + */ + const transferProps = buildProps({ + data: { + type: definePropType(Array), + default: () => [] + }, + titles: { + type: definePropType(Array), + default: () => [] + }, + buttonTexts: { + type: definePropType(Array), + default: () => [] + }, + filterPlaceholder: String, + filterMethod: { type: definePropType(Function) }, + leftDefaultChecked: { + type: definePropType(Array), + default: () => [] + }, + rightDefaultChecked: { + type: definePropType(Array), + default: () => [] + }, + renderContent: { type: definePropType(Function) }, + modelValue: { + type: definePropType(Array), + default: () => [] + }, + format: { + type: definePropType(Object), + default: () => ({}) + }, + filterable: Boolean, + props: { + type: definePropType(Object), + default: () => mutable({ + label: "label", + key: "key", + disabled: "disabled" + }) + }, + targetOrder: { + type: String, + values: [ + "original", + "push", + "unshift" + ], + default: "original" + }, + validateEvent: { + type: Boolean, + default: true + } + }); + const transferCheckedChangeFn = (value, movedKeys) => [value, movedKeys].every(isArray$1) || isArray$1(value) && isNil(movedKeys); + const transferEmits = { + [CHANGE_EVENT]: (value, direction, movedKeys) => [value, movedKeys].every(isArray$1) && ["left", "right"].includes(direction), + [UPDATE_MODEL_EVENT]: (value) => isArray$1(value), + [LEFT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn, + [RIGHT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn + }; + +//#endregion +//#region ../../packages/components/transfer/src/transfer-panel.ts + const CHECKED_CHANGE_EVENT = "checked-change"; + /** + * @deprecated Removed after 3.0.0, Use `TransferPanelProps` instead. + */ + const transferPanelProps = buildProps({ + data: transferProps.data, + optionRender: { type: definePropType(Function) }, + placeholder: String, + title: String, + filterable: Boolean, + format: transferProps.format, + filterMethod: transferProps.filterMethod, + defaultChecked: transferProps.leftDefaultChecked, + props: transferProps.props + }); + const transferPanelEmits = { [CHECKED_CHANGE_EVENT]: transferCheckedChangeFn }; + +//#endregion +//#region ../../packages/components/transfer/src/composables/use-props-alias.ts + const usePropsAlias = (props) => { + const initProps = { + label: "label", + key: "key", + disabled: "disabled" + }; + return (0, vue.computed)(() => ({ + ...initProps, + ...props.props + })); + }; + +//#endregion +//#region ../../packages/components/transfer/src/composables/use-check.ts + const useCheck$1 = (props, panelState, emit) => { + const propsAlias = usePropsAlias(props); + const filteredData = (0, vue.computed)(() => { + return props.data.filter((item) => { + if (isFunction$1(props.filterMethod)) return props.filterMethod(panelState.query, item); + else return String(item[propsAlias.value.label] || item[propsAlias.value.key]).toLowerCase().includes(panelState.query.toLowerCase()); + }); + }); + const checkableData = (0, vue.computed)(() => filteredData.value.filter((item) => !item[propsAlias.value.disabled])); + const checkedSummary = (0, vue.computed)(() => { + const checkedLength = panelState.checked.length; + const dataLength = props.data.length; + const { noChecked, hasChecked } = props.format; + if (noChecked && hasChecked) return checkedLength > 0 ? hasChecked.replace(/\${checked}/g, checkedLength.toString()).replace(/\${total}/g, dataLength.toString()) : noChecked.replace(/\${total}/g, dataLength.toString()); + else return `${checkedLength}/${dataLength}`; + }); + const isIndeterminate = (0, vue.computed)(() => { + const checkedLength = panelState.checked.length; + return checkedLength > 0 && checkedLength < checkableData.value.length; + }); + const updateAllChecked = () => { + const checkableDataKeys = checkableData.value.map((item) => item[propsAlias.value.key]); + panelState.allChecked = checkableDataKeys.length > 0 && checkableDataKeys.every((item) => panelState.checked.includes(item)); + }; + const handleAllCheckedChange = (value) => { + panelState.checked = value ? checkableData.value.map((item) => item[propsAlias.value.key]) : []; + }; + (0, vue.watch)(() => panelState.checked, (val, oldVal) => { + updateAllChecked(); + if (panelState.checkChangeByUser) emit(CHECKED_CHANGE_EVENT, val, val.concat(oldVal).filter((v) => !val.includes(v) || !oldVal.includes(v))); + else { + emit(CHECKED_CHANGE_EVENT, val); + panelState.checkChangeByUser = true; + } + }); + (0, vue.watch)(checkableData, () => { + updateAllChecked(); + }); + (0, vue.watch)(() => props.data, () => { + const checked = []; + const filteredDataKeys = filteredData.value.map((item) => item[propsAlias.value.key]); + panelState.checked.forEach((item) => { + if (filteredDataKeys.includes(item)) checked.push(item); + }); + panelState.checkChangeByUser = false; + panelState.checked = checked; + }); + (0, vue.watch)(() => props.defaultChecked, (val, oldVal) => { + if (oldVal && val.length === oldVal.length && val.every((item) => oldVal.includes(item))) return; + const checked = []; + const checkableDataKeys = checkableData.value.map((item) => item[propsAlias.value.key]); + val.forEach((item) => { + if (checkableDataKeys.includes(item)) checked.push(item); + }); + panelState.checkChangeByUser = false; + panelState.checked = checked; + }, { immediate: true }); + return { + filteredData, + checkableData, + checkedSummary, + isIndeterminate, + updateAllChecked, + handleAllCheckedChange + }; + }; + +//#endregion +//#region ../../packages/components/transfer/src/composables/use-checked-change.ts + const useCheckedChange = (checkedState, emit) => { + const onSourceCheckedChange = (val, movedKeys) => { + checkedState.leftChecked = val; + if (!movedKeys) return; + emit(LEFT_CHECK_CHANGE_EVENT, val, movedKeys); + }; + const onTargetCheckedChange = (val, movedKeys) => { + checkedState.rightChecked = val; + if (!movedKeys) return; + emit(RIGHT_CHECK_CHANGE_EVENT, val, movedKeys); + }; + return { + onSourceCheckedChange, + onTargetCheckedChange + }; + }; + +//#endregion +//#region ../../packages/components/transfer/src/composables/use-computed-data.ts + const useComputedData = (props) => { + const propsAlias = usePropsAlias(props); + const dataObj = (0, vue.computed)(() => props.data.reduce((o, cur) => (o[cur[propsAlias.value.key]] = cur, o), {})); + return { + sourceData: (0, vue.computed)(() => props.data.filter((item) => !props.modelValue.includes(item[propsAlias.value.key]))), + targetData: (0, vue.computed)(() => { + if (props.targetOrder === "original") return props.data.filter((item) => props.modelValue.includes(item[propsAlias.value.key])); + else return props.modelValue.reduce((arr, cur) => { + const val = dataObj.value[cur]; + if (val) arr.push(val); + return arr; + }, []); + }) + }; + }; + +//#endregion +//#region ../../packages/components/transfer/src/composables/use-move.ts + const useMove = (props, checkedState, emit) => { + const propsAlias = usePropsAlias(props); + const _emit = (value, direction, movedKeys) => { + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value, direction, movedKeys); + }; + const addToLeft = () => { + const currentValue = props.modelValue.slice(); + checkedState.rightChecked.forEach((item) => { + const index = currentValue.indexOf(item); + if (index > -1) currentValue.splice(index, 1); + }); + _emit(currentValue, "left", checkedState.rightChecked); + }; + const addToRight = () => { + let currentValue = props.modelValue.slice(); + const itemsToBeMoved = props.data.filter((item) => { + const itemKey = item[propsAlias.value.key]; + return checkedState.leftChecked.includes(itemKey) && !props.modelValue.includes(itemKey); + }).map((item) => item[propsAlias.value.key]); + currentValue = props.targetOrder === "unshift" ? itemsToBeMoved.concat(currentValue) : currentValue.concat(itemsToBeMoved); + if (props.targetOrder === "original") currentValue = props.data.filter((item) => currentValue.includes(item[propsAlias.value.key])).map((item) => item[propsAlias.value.key]); + _emit(currentValue, "right", checkedState.leftChecked); + }; + return { + addToLeft, + addToRight + }; + }; + +//#endregion +//#region ../../packages/components/transfer/src/transfer-panel.vue?vue&type=script&setup=true&lang.ts + var transfer_panel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTransferPanel", + __name: "transfer-panel", + props: transferPanelProps, + emits: transferPanelEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const slots = (0, vue.useSlots)(); + const OptionContent = ({ option }) => option; + const { t } = useLocale(); + const ns = useNamespace("transfer"); + const panelState = (0, vue.reactive)({ + checked: [], + allChecked: false, + query: "", + checkChangeByUser: true + }); + const propsAlias = usePropsAlias(props); + const { filteredData, checkedSummary, isIndeterminate, handleAllCheckedChange } = useCheck$1(props, panelState, emit); + const hasNoMatch = (0, vue.computed)(() => !isEmpty(panelState.query) && isEmpty(filteredData.value)); + const hasFooter = (0, vue.computed)(() => !isEmpty(slots.default()[0].children)); + const { checked, allChecked, query } = (0, vue.toRefs)(panelState); + __expose({ query }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("panel")) }, [ + (0, vue.createElementVNode)("p", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "header")) }, [(0, vue.createVNode)((0, vue.unref)(ElCheckbox), { + modelValue: (0, vue.unref)(allChecked), + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => (0, vue.isRef)(allChecked) ? allChecked.value = $event : null), + indeterminate: (0, vue.unref)(isIndeterminate), + "validate-event": false, + onChange: (0, vue.unref)(handleAllCheckedChange) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "header-title")) }, (0, vue.toDisplayString)(__props.title), 3), (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "header-count")) }, (0, vue.toDisplayString)((0, vue.unref)(checkedSummary)), 3)]), + _: 1 + }, 8, [ + "modelValue", + "indeterminate", + "onChange" + ])], 2), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("panel", "body"), (0, vue.unref)(ns).is("with-footer", hasFooter.value)]) }, [ + __props.filterable ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElInput), { + key: 0, + modelValue: (0, vue.unref)(query), + "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => (0, vue.isRef)(query) ? query.value = $event : null), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "filter")), + size: "default", + placeholder: __props.placeholder, + "prefix-icon": (0, vue.unref)(search_default), + clearable: "", + "validate-event": false + }, null, 8, [ + "modelValue", + "class", + "placeholder", + "prefix-icon" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElCheckboxGroup), { + modelValue: (0, vue.unref)(checked), + "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => (0, vue.isRef)(checked) ? checked.value = $event : null), + "validate-event": false, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).is("filterable", __props.filterable), (0, vue.unref)(ns).be("panel", "list")]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(filteredData), (item) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElCheckbox), { + key: item[(0, vue.unref)(propsAlias).key], + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "item")), + value: item[(0, vue.unref)(propsAlias).key], + disabled: item[(0, vue.unref)(propsAlias).disabled], + "validate-event": false + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(OptionContent, { option: __props.optionRender?.(item) }, null, 8, ["option"])]), + _: 2 + }, 1032, [ + "class", + "value", + "disabled" + ]); + }), 128))]), + _: 1 + }, 8, ["modelValue", "class"]), [[vue.vShow, !hasNoMatch.value && !(0, vue.unref)(isEmpty)(__props.data)]]), + (0, vue.withDirectives)((0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "empty")) }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(hasNoMatch.value ? (0, vue.unref)(t)("el.transfer.noMatch") : (0, vue.unref)(t)("el.transfer.noData")), 1)])], 2), [[vue.vShow, hasNoMatch.value || (0, vue.unref)(isEmpty)(__props.data)]]) + ], 2), + hasFooter.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "footer")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/transfer/src/transfer-panel.vue + var transfer_panel_default = transfer_panel_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/transfer/src/transfer.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$13 = { key: 0 }; + const _hoisted_2$8 = { key: 0 }; + var transfer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTransfer", + __name: "transfer", + props: transferProps, + emits: transferEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const slots = (0, vue.useSlots)(); + const { t } = useLocale(); + const ns = useNamespace("transfer"); + const { formItem } = useFormItem(); + const checkedState = (0, vue.reactive)({ + leftChecked: [], + rightChecked: [] + }); + const propsAlias = usePropsAlias(props); + const { sourceData, targetData } = useComputedData(props); + const { onSourceCheckedChange, onTargetCheckedChange } = useCheckedChange(checkedState, emit); + const { addToLeft, addToRight } = useMove(props, checkedState, emit); + const leftPanel = (0, vue.ref)(); + const rightPanel = (0, vue.ref)(); + const clearQuery = (which) => { + switch (which) { + case "left": + leftPanel.value.query = ""; + break; + case "right": + rightPanel.value.query = ""; + break; + } + }; + const hasButtonTexts = (0, vue.computed)(() => props.buttonTexts.length === 2); + const leftPanelTitle = (0, vue.computed)(() => props.titles[0] || t("el.transfer.titles.0")); + const rightPanelTitle = (0, vue.computed)(() => props.titles[1] || t("el.transfer.titles.1")); + const panelFilterPlaceholder = (0, vue.computed)(() => props.filterPlaceholder || t("el.transfer.filterPlaceholder")); + (0, vue.watch)(() => props.modelValue, () => { + if (props.validateEvent) formItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + const optionRender = (0, vue.computed)(() => (option) => { + if (props.renderContent) return props.renderContent(vue.h, option); + const defaultSlotVNodes = (slots.default?.({ option }) || []).filter((node) => node.type !== vue.Comment); + if (defaultSlotVNodes.length) return defaultSlotVNodes; + return (0, vue.h)("span", option[propsAlias.value.label] || option[propsAlias.value.key]); + }); + __expose({ + clearQuery, + leftPanel, + rightPanel + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [ + (0, vue.createVNode)(transfer_panel_default, { + ref_key: "leftPanel", + ref: leftPanel, + data: (0, vue.unref)(sourceData), + "option-render": optionRender.value, + placeholder: panelFilterPlaceholder.value, + title: leftPanelTitle.value, + filterable: __props.filterable, + format: __props.format, + "filter-method": __props.filterMethod, + "default-checked": __props.leftDefaultChecked, + props: props.props, + onCheckedChange: (0, vue.unref)(onSourceCheckedChange) + }, { + empty: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "left-empty")]), + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "left-footer")]), + _: 3 + }, 8, [ + "data", + "option-render", + "placeholder", + "title", + "filterable", + "format", + "filter-method", + "default-checked", + "props", + "onCheckedChange" + ]), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("buttons")) }, [(0, vue.createVNode)((0, vue.unref)(ElButton), { + type: "primary", + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("button"), (0, vue.unref)(ns).is("with-texts", hasButtonTexts.value)]), + disabled: (0, vue.unref)(isEmpty)(checkedState.rightChecked), + onClick: (0, vue.unref)(addToLeft) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_left_default))]), + _: 1 + }), !(0, vue.unref)(isUndefined)(__props.buttonTexts[0]) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_1$13, (0, vue.toDisplayString)(__props.buttonTexts[0]), 1)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 1 + }, 8, [ + "class", + "disabled", + "onClick" + ]), (0, vue.createVNode)((0, vue.unref)(ElButton), { + type: "primary", + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("button"), (0, vue.unref)(ns).is("with-texts", hasButtonTexts.value)]), + disabled: (0, vue.unref)(isEmpty)(checkedState.leftChecked), + onClick: (0, vue.unref)(addToRight) + }, { + default: (0, vue.withCtx)(() => [!(0, vue.unref)(isUndefined)(__props.buttonTexts[1]) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2$8, (0, vue.toDisplayString)(__props.buttonTexts[1]), 1)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })]), + _: 1 + }, 8, [ + "class", + "disabled", + "onClick" + ])], 2), + (0, vue.createVNode)(transfer_panel_default, { + ref_key: "rightPanel", + ref: rightPanel, + data: (0, vue.unref)(targetData), + "option-render": optionRender.value, + placeholder: panelFilterPlaceholder.value, + filterable: __props.filterable, + format: __props.format, + "filter-method": __props.filterMethod, + title: rightPanelTitle.value, + "default-checked": __props.rightDefaultChecked, + props: props.props, + onCheckedChange: (0, vue.unref)(onTargetCheckedChange) + }, { + empty: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "right-empty")]), + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "right-footer")]), + _: 3 + }, 8, [ + "data", + "option-render", + "placeholder", + "filterable", + "format", + "filter-method", + "title", + "default-checked", + "props", + "onCheckedChange" + ]) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/transfer/src/transfer.vue + var transfer_default = transfer_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/transfer/index.ts + const ElTransfer = withInstall(transfer_default); + +//#endregion +//#region ../../packages/components/tree/src/model/util.ts + const NODE_KEY = "$treeNodeId"; + const markNodeData = function(node, data) { + if (!data || data[NODE_KEY]) return; + Object.defineProperty(data, NODE_KEY, { + value: node.id, + enumerable: false, + configurable: false, + writable: false + }); + }; + const getNodeKey = (key, data) => data?.[key || NODE_KEY]; + const handleCurrentChange = (store, emit, setCurrent) => { + const preCurrentNode = store.value.currentNode; + setCurrent(); + const currentNode = store.value.currentNode; + if (preCurrentNode === currentNode) return; + emit("current-change", currentNode ? currentNode.data : null, currentNode); + }; + +//#endregion +//#region ../../packages/components/tree/src/model/node.ts + const getChildState = (node) => { + let all = true; + let none = true; + let allWithoutDisable = true; + let isEffectivelyChecked = true; + for (let i = 0, j = node.length; i < j; i++) { + const n = node[i]; + if (n.checked !== true || n.indeterminate) { + all = false; + if (!n.disabled) allWithoutDisable = false; + } + if (n.checked !== false || n.indeterminate) none = false; + if (!n.isEffectivelyChecked) isEffectivelyChecked = false; + } + return { + all, + none, + allWithoutDisable, + half: !all && !none, + isEffectivelyChecked + }; + }; + const reInitChecked = function(node) { + if (node.childNodes.length === 0 || node.loading) { + node.isEffectivelyChecked = node.disabled || node.checked; + return; + } + const { all, none, half, isEffectivelyChecked } = getChildState(node.childNodes); + node.isEffectivelyChecked = isEffectivelyChecked; + if (all) { + node.checked = true; + node.indeterminate = false; + } else if (half) { + node.checked = false; + node.indeterminate = true; + } else if (none) { + node.checked = false; + node.indeterminate = false; + } + const parent = node.parent; + if (!parent || parent.level === 0) return; + if (!node.store.checkStrictly) reInitChecked(parent); + }; + const getPropertyFromData = function(node, prop) { + const props = node.store.props; + const data = node.data || {}; + const config = props[prop]; + if (isFunction$1(config)) return config(data, node); + else if (isString(config)) return data[config]; + else if (isUndefined(config)) { + const dataProp = data[prop]; + return isUndefined(dataProp) ? "" : dataProp; + } + }; + const setCanFocus = function(childNodes, focus) { + childNodes.forEach((item) => { + item.canFocus = focus; + setCanFocus(item.childNodes, focus); + }); + }; + let nodeIdSeed = 0; + var Node$1 = class Node$1 { + constructor(options) { + this.isLeafByUser = void 0; + this.isLeaf = void 0; + this.isEffectivelyChecked = false; + this.id = nodeIdSeed++; + this.text = null; + this.checked = false; + this.indeterminate = false; + this.data = null; + this.expanded = false; + this.parent = null; + this.visible = true; + this.isCurrent = false; + this.canFocus = false; + for (const name in options) if (hasOwn(options, name)) this[name] = options[name]; + this.level = 0; + this.loaded = false; + this.childNodes = []; + this.loading = false; + if (this.parent) this.level = this.parent.level + 1; + } + initialize() { + const store = this.store; + if (!store) throw new Error("[Node]store is required!"); + store.registerNode(this); + const props = store.props; + if (props && typeof props.isLeaf !== "undefined") { + const isLeaf = getPropertyFromData(this, "isLeaf"); + if (isBoolean(isLeaf)) this.isLeafByUser = isLeaf; + } + if (store.lazy !== true && this.data) { + this.setData(this.data); + if (store.defaultExpandAll) { + this.expanded = true; + this.canFocus = true; + } + } else if (this.level > 0 && store.lazy && store.defaultExpandAll && !this.isLeafByUser) this.expand(); + if (!isArray$1(this.data)) markNodeData(this, this.data); + if (!this.data) return; + const defaultExpandedKeys = store.defaultExpandedKeys; + const key = store.key; + if (key && !isNil(this.key) && defaultExpandedKeys && defaultExpandedKeys.includes(this.key)) this.expand(null, store.autoExpandParent); + if (key && store.currentNodeKey !== void 0 && this.key === store.currentNodeKey) { + store.currentNode && (store.currentNode.isCurrent = false); + store.currentNode = this; + store.currentNode.isCurrent = true; + } + if (store.lazy) store._initDefaultCheckedNode(this); + this.updateLeafState(); + if (this.level === 1 || this.parent?.expanded === true) this.canFocus = true; + } + setData(data) { + if (!isArray$1(data)) markNodeData(this, data); + this.data = data; + this.childNodes = []; + let children; + if (this.level === 0 && isArray$1(this.data)) children = this.data; + else children = getPropertyFromData(this, "children") || []; + for (let i = 0, j = children.length; i < j; i++) this.insertChild({ data: children[i] }); + } + get label() { + return getPropertyFromData(this, "label"); + } + get key() { + const nodeKey = this.store.key; + if (this.data) return this.data[nodeKey]; + return null; + } + get disabled() { + return getPropertyFromData(this, "disabled"); + } + get nextSibling() { + const parent = this.parent; + if (parent) { + const index = parent.childNodes.indexOf(this); + if (index > -1) return parent.childNodes[index + 1]; + } + return null; + } + get previousSibling() { + const parent = this.parent; + if (parent) { + const index = parent.childNodes.indexOf(this); + if (index > -1) return index > 0 ? parent.childNodes[index - 1] : null; + } + return null; + } + contains(target, deep = true) { + return (this.childNodes || []).some((child) => child === target || deep && child.contains(target)); + } + remove() { + const parent = this.parent; + if (parent) parent.removeChild(this); + } + insertChild(child, index, batch) { + if (!child) throw new Error("InsertChild error: child is required."); + if (!(child instanceof Node$1)) { + if (!batch) { + const children = this.getChildren(true); + if (!children?.includes(child.data)) if (isUndefined(index) || index < 0) children?.push(child.data); + else children?.splice(index, 0, child.data); + } + Object.assign(child, { + parent: this, + store: this.store + }); + child = (0, vue.reactive)(new Node$1(child)); + if (child instanceof Node$1) child.initialize(); + } + child.level = this.level + 1; + if (isUndefined(index) || index < 0) this.childNodes.push(child); + else this.childNodes.splice(index, 0, child); + this.updateLeafState(); + } + insertBefore(child, ref) { + let index; + if (ref) index = this.childNodes.indexOf(ref); + this.insertChild(child, index); + } + insertAfter(child, ref) { + let index; + if (ref) { + index = this.childNodes.indexOf(ref); + if (index !== -1) index += 1; + } + this.insertChild(child, index); + } + removeChild(child) { + const children = this.getChildren() || []; + const dataIndex = children.indexOf(child.data); + if (dataIndex > -1) children.splice(dataIndex, 1); + const index = this.childNodes.indexOf(child); + if (index > -1) { + this.store && this.store.deregisterNode(child); + child.parent = null; + this.childNodes.splice(index, 1); + } + this.updateLeafState(); + } + removeChildByData(data) { + const targetNode = this.childNodes.find((child) => child.data === data); + if (targetNode) this.removeChild(targetNode); + } + expand(callback, expandParent) { + const done = () => { + if (expandParent) { + let parent = this.parent; + while (parent && parent.level > 0) { + parent.expanded = true; + parent = parent.parent; + } + } + this.expanded = true; + if (callback) callback(); + setCanFocus(this.childNodes, true); + }; + if (this.shouldLoadData()) this.loadData((data) => { + if (isArray$1(data)) { + if (this.checked) this.setChecked(true, true); + else if (!this.store.checkStrictly) reInitChecked(this); + done(); + } + }); + else done(); + } + doCreateChildren(array, defaultProps = {}) { + array.forEach((item) => { + this.insertChild(Object.assign({ data: item }, defaultProps), void 0, true); + }); + } + collapse() { + this.expanded = false; + setCanFocus(this.childNodes, false); + } + shouldLoadData() { + return Boolean(this.store.lazy === true && this.store.load && !this.loaded); + } + updateLeafState() { + if (this.store.lazy === true && this.loaded !== true && typeof this.isLeafByUser !== "undefined") { + this.isLeaf = this.isLeafByUser; + this.isEffectivelyChecked = this.isLeaf && this.disabled; + return; + } + const childNodes = this.childNodes; + if (!this.store.lazy || this.store.lazy === true && this.loaded === true) { + this.isLeaf = !childNodes || childNodes.length === 0; + this.isEffectivelyChecked = this.isLeaf && this.disabled; + return; + } + this.isLeaf = false; + } + setChecked(value, deep, recursion, passValue) { + this.indeterminate = value === "half"; + this.checked = value === true; + this.isEffectivelyChecked = !this.childNodes.length && (this.disabled || this.checked); + if (this.store.checkStrictly) return; + if (!(this.shouldLoadData() && !this.store.checkDescendants)) { + const handleDescendants = () => { + if (deep) { + const childNodes = this.childNodes; + for (let i = 0, j = childNodes.length; i < j; i++) { + const child = childNodes[i]; + passValue = passValue || value !== false; + const isCheck = child.disabled && child.isLeaf ? child.checked : passValue; + child.setChecked(isCheck, deep, true, passValue); + } + const { half, all, isEffectivelyChecked } = getChildState(childNodes); + if (!all) { + this.checked = all; + this.indeterminate = half; + } + this.isEffectivelyChecked = !this.childNodes.length ? this.disabled || this.checked : isEffectivelyChecked; + } + }; + if (this.shouldLoadData()) { + this.loadData(() => { + handleDescendants(); + reInitChecked(this); + }, { checked: value !== false }); + return; + } else handleDescendants(); + } + const parent = this.parent; + if (!parent || parent.level === 0) return; + if (!recursion) reInitChecked(parent); + } + getChildren(forceInit = false) { + if (this.level === 0) return this.data; + const data = this.data; + if (!data) return null; + const props = this.store.props; + let children = "children"; + if (props) children = props.children || "children"; + if (isUndefined(data[children])) data[children] = null; + if (forceInit && !data[children]) data[children] = []; + return data[children]; + } + updateChildren() { + const newData = this.getChildren() || []; + const oldData = this.childNodes.map((node) => node.data); + const newDataMap = {}; + const newNodes = []; + newData.forEach((item, index) => { + const key = item[NODE_KEY]; + if (!!key && oldData.some((data) => data?.[NODE_KEY] === key)) newDataMap[key] = { + index, + data: item + }; + else newNodes.push({ + index, + data: item + }); + }); + if (!this.store.lazy) oldData.forEach((item) => { + if (!newDataMap[item?.[NODE_KEY]]) this.removeChildByData(item); + }); + newNodes.forEach(({ index, data }) => { + this.insertChild({ data }, index); + }); + this.updateLeafState(); + } + loadData(callback, defaultProps = {}) { + if (this.store.lazy === true && this.store.load && !this.loaded && (!this.loading || Object.keys(defaultProps).length)) { + this.loading = true; + const resolve = (children) => { + this.childNodes = []; + this.doCreateChildren(children, defaultProps); + this.loaded = true; + this.loading = false; + this.updateLeafState(); + if (callback) callback.call(this, children); + }; + const reject = () => { + this.loading = false; + }; + this.store.load(this, resolve, reject); + } else if (callback) callback.call(this); + } + eachNode(callback) { + const arr = [this]; + while (arr.length) { + const node = arr.shift(); + arr.unshift(...node.childNodes); + callback(node); + } + } + reInitChecked() { + if (this.store.checkStrictly) return; + reInitChecked(this); + } + }; + +//#endregion +//#region ../../packages/components/tree/src/model/tree-store.ts + var TreeStore = class { + constructor(options) { + this.lazy = false; + this.checkStrictly = false; + this.autoExpandParent = false; + this.defaultExpandAll = false; + this.checkDescendants = false; + this.currentNode = null; + this.currentNodeKey = null; + for (const option in options) if (hasOwn(options, option)) this[option] = options[option]; + this.nodesMap = {}; + } + initialize() { + this.root = new Node$1({ + data: this.data, + store: this + }); + this.root.initialize(); + if (this.lazy && this.load) { + const loadFn = this.load; + loadFn(this.root, (data) => { + this.root.doCreateChildren(data); + this._initDefaultCheckedNodes(); + }, NOOP); + } else this._initDefaultCheckedNodes(); + } + filter(value) { + const filterNodeMethod = this.filterNodeMethod; + const lazy = this.lazy; + const traverse = async function(node) { + const childNodes = node.root ? node.root.childNodes : node.childNodes; + for (const [index, child] of childNodes.entries()) { + child.visible = !!filterNodeMethod?.call(child, value, child.data, child); + if (index % 80 === 0 && index > 0) await (0, vue.nextTick)(); + await traverse(child); + } + if (!node.visible && childNodes.length) { + let allHidden = true; + allHidden = !childNodes.some((child) => child.visible); + if (node.root) node.root.visible = allHidden === false; + else node.visible = allHidden === false; + } + if (!value) return; + if (node.visible && !node.isLeaf) { + if (!lazy || node.loaded) node.expand(); + } + }; + traverse(this); + } + setData(newVal) { + if (newVal !== this.root.data) { + this.nodesMap = {}; + this.root.setData(newVal); + this._initDefaultCheckedNodes(); + this.setCurrentNodeKey(this.currentNodeKey); + } else this.root.updateChildren(); + } + getNode(data) { + if (data instanceof Node$1) return data; + const key = isObject$1(data) ? getNodeKey(this.key, data) : data; + return this.nodesMap[key] || null; + } + insertBefore(data, refData) { + const refNode = this.getNode(refData); + refNode.parent?.insertBefore({ data }, refNode); + } + insertAfter(data, refData) { + const refNode = this.getNode(refData); + refNode.parent?.insertAfter({ data }, refNode); + } + remove(data) { + const node = this.getNode(data); + if (node && node.parent) { + if (node === this.currentNode) this.currentNode = null; + node.parent.removeChild(node); + } + } + append(data, parentData) { + const parentNode = !isPropAbsent(parentData) ? this.getNode(parentData) : this.root; + if (parentNode) parentNode.insertChild({ data }); + } + _initDefaultCheckedNodes() { + const defaultCheckedKeys = this.defaultCheckedKeys || []; + const nodesMap = this.nodesMap; + defaultCheckedKeys.forEach((checkedKey) => { + const node = nodesMap[checkedKey]; + if (node) node.setChecked(true, !this.checkStrictly); + }); + } + _initDefaultCheckedNode(node) { + const defaultCheckedKeys = this.defaultCheckedKeys || []; + if (!isNil(node.key) && defaultCheckedKeys.includes(node.key)) node.setChecked(true, !this.checkStrictly); + } + setDefaultCheckedKey(newVal) { + if (newVal !== this.defaultCheckedKeys) { + this.defaultCheckedKeys = newVal; + this._initDefaultCheckedNodes(); + } + } + registerNode(node) { + const key = this.key; + if (!node || !node.data) return; + if (!key) this.nodesMap[node.id] = node; + else { + const nodeKey = node.key; + if (!isNil(nodeKey)) this.nodesMap[nodeKey] = node; + } + } + deregisterNode(node) { + if (!this.key || !node || !node.data) return; + node.childNodes.forEach((child) => { + this.deregisterNode(child); + }); + delete this.nodesMap[node.key]; + } + getCheckedNodes(leafOnly = false, includeHalfChecked = false) { + const checkedNodes = []; + const traverse = function(node) { + (node.root ? node.root.childNodes : node.childNodes).forEach((child) => { + if ((child.checked || includeHalfChecked && child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) checkedNodes.push(child.data); + traverse(child); + }); + }; + traverse(this); + return checkedNodes; + } + getCheckedKeys(leafOnly = false) { + return this.getCheckedNodes(leafOnly).map((data) => (data || {})[this.key]); + } + getHalfCheckedNodes() { + const nodes = []; + const traverse = function(node) { + (node.root ? node.root.childNodes : node.childNodes).forEach((child) => { + if (child.indeterminate) nodes.push(child.data); + traverse(child); + }); + }; + traverse(this); + return nodes; + } + getHalfCheckedKeys() { + return this.getHalfCheckedNodes().map((data) => (data || {})[this.key]); + } + _getAllNodes() { + const allNodes = []; + const nodesMap = this.nodesMap; + for (const nodeKey in nodesMap) if (hasOwn(nodesMap, nodeKey)) allNodes.push(nodesMap[nodeKey]); + return allNodes; + } + updateChildren(key, data) { + const node = this.nodesMap[key]; + if (!node) return; + const childNodes = node.childNodes; + for (let i = childNodes.length - 1; i >= 0; i--) { + const child = childNodes[i]; + this.remove(child.data); + } + for (let i = 0, j = data.length; i < j; i++) { + const child = data[i]; + this.append(child, node.data); + } + } + _setCheckedKeys(key, leafOnly = false, checkedKeys) { + const allNodes = this._getAllNodes().sort((a, b) => a.level - b.level); + const cache = Object.create(null); + const keys = Object.keys(checkedKeys); + allNodes.forEach((node) => node.setChecked(false, false)); + const cacheCheckedChild = (node) => { + node.childNodes.forEach((child) => { + cache[child.data[key]] = true; + if (child.childNodes?.length) cacheCheckedChild(child); + }); + }; + for (let i = 0, j = allNodes.length; i < j; i++) { + const node = allNodes[i]; + const nodeKey = node.data[key].toString(); + if (!keys.includes(nodeKey)) { + if (node.checked && !cache[nodeKey]) node.setChecked(false, false); + continue; + } + if (node.childNodes.length) cacheCheckedChild(node); + if (node.isLeaf || this.checkStrictly) { + node.setChecked(true, false); + continue; + } + node.setChecked(true, true); + if (leafOnly) { + node.setChecked(false, false, true); + const traverse = function(node) { + node.childNodes.forEach((child) => { + if (!child.isLeaf) child.setChecked(false, false, true); + traverse(child); + }); + node.reInitChecked(); + }; + traverse(node); + } + } + } + setCheckedNodes(array, leafOnly = false) { + const key = this.key; + const checkedKeys = {}; + array.forEach((item) => { + checkedKeys[(item || {})[key]] = true; + }); + this._setCheckedKeys(key, leafOnly, checkedKeys); + } + setCheckedKeys(keys, leafOnly = false) { + this.defaultCheckedKeys = keys; + const key = this.key; + const checkedKeys = {}; + keys.forEach((key) => { + checkedKeys[key] = true; + }); + this._setCheckedKeys(key, leafOnly, checkedKeys); + } + setDefaultExpandedKeys(keys) { + keys = keys || []; + this.defaultExpandedKeys = keys; + keys.forEach((key) => { + const node = this.getNode(key); + if (node) node.expand(null, this.autoExpandParent); + }); + } + setChecked(data, checked, deep) { + const node = this.getNode(data); + if (node) node.setChecked(!!checked, deep); + } + getCurrentNode() { + return this.currentNode; + } + setCurrentNode(currentNode) { + const prevCurrentNode = this.currentNode; + if (prevCurrentNode) prevCurrentNode.isCurrent = false; + this.currentNode = currentNode; + this.currentNode.isCurrent = true; + } + setUserCurrentNode(node, shouldAutoExpandParent = true) { + const key = node[this.key]; + const currNode = this.nodesMap[key]; + this.setCurrentNode(currNode); + if (shouldAutoExpandParent && this.currentNode && this.currentNode.level > 1) this.currentNode.parent?.expand(null, true); + } + setCurrentNodeKey(key, shouldAutoExpandParent = true) { + this.currentNodeKey = key; + if (isPropAbsent(key)) { + this.currentNode && (this.currentNode.isCurrent = false); + this.currentNode = null; + return; + } + const node = this.getNode(key); + if (node) { + this.setCurrentNode(node); + if (shouldAutoExpandParent && this.currentNode && this.currentNode.level > 1) this.currentNode.parent?.expand(null, true); + } + } + }; + +//#endregion +//#region ../../packages/components/tree/src/tokens.ts + const ROOT_TREE_INJECTION_KEY = "RootTree"; + const NODE_INSTANCE_INJECTION_KEY = "NodeInstance"; + const TREE_NODE_MAP_INJECTION_KEY = "TreeNodeMap"; + +//#endregion +//#region ../../packages/components/tree/src/tree-node-content.vue?vue&type=script&lang.ts + var tree_node_content_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElTreeNodeContent", + props: { + node: { + type: Object, + required: true + }, + renderContent: Function + }, + setup(props) { + const ns = useNamespace("tree"); + const nodeInstance = (0, vue.inject)(NODE_INSTANCE_INJECTION_KEY); + const tree = (0, vue.inject)(ROOT_TREE_INJECTION_KEY); + return () => { + const node = props.node; + const { data, store } = node; + return props.renderContent ? props.renderContent(vue.h, { + _self: nodeInstance, + node, + data, + store + }) : (0, vue.renderSlot)(tree.ctx.slots, "default", { + node, + data + }, () => [(0, vue.h)(ElText, { + tag: "span", + truncated: true, + class: ns.be("node", "label") + }, () => [node.label])]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tree/src/tree-node-content.vue + var tree_node_content_default$1 = tree_node_content_vue_vue_type_script_lang_default; + +//#endregion +//#region ../../packages/components/tree/src/model/useNodeExpandEventBroadcast.ts + function useNodeExpandEventBroadcast(props) { + const parentNodeMap = (0, vue.inject)(TREE_NODE_MAP_INJECTION_KEY, null); + let currentNodeMap = { + treeNodeExpand: (node) => { + if (props.node !== node) props.node?.collapse(); + }, + children: /* @__PURE__ */ new Set() + }; + if (parentNodeMap) parentNodeMap.children.add(currentNodeMap); + (0, vue.onBeforeUnmount)(() => { + if (parentNodeMap) parentNodeMap.children.delete(currentNodeMap); + currentNodeMap = null; + }); + (0, vue.provide)(TREE_NODE_MAP_INJECTION_KEY, currentNodeMap); + return { broadcastExpanded: (node) => { + if (!props.accordion) return; + for (const childNode of currentNodeMap.children) childNode.treeNodeExpand(node); + } }; + } + +//#endregion +//#region ../../packages/components/tree/src/model/useDragNode.ts + const dragEventsKey = Symbol("dragEvents"); + function useDragNodeHandler({ props, ctx, el$, dropIndicator$, store }) { + const ns = useNamespace("tree"); + const dragState = (0, vue.ref)({ + showDropIndicator: false, + draggingNode: null, + dropNode: null, + allowDrop: true, + dropType: null + }); + const treeNodeDragStart = ({ event, treeNode }) => { + if (!event.dataTransfer) return; + if (isFunction$1(props.allowDrag) && !props.allowDrag(treeNode.node)) { + event.preventDefault(); + return false; + } + event.dataTransfer.effectAllowed = "move"; + try { + event.dataTransfer.setData("text/plain", ""); + } catch {} + dragState.value.draggingNode = treeNode; + ctx.emit("node-drag-start", treeNode.node, event); + }; + const treeNodeDragOver = ({ event, treeNode }) => { + if (!event.dataTransfer) return; + const dropNode = treeNode; + const oldDropNode = dragState.value.dropNode; + if (oldDropNode && oldDropNode.node.id !== dropNode.node.id) removeClass(oldDropNode.$el, ns.is("drop-inner")); + const draggingNode = dragState.value.draggingNode; + if (!draggingNode || !dropNode) return; + let dropPrev = true; + let dropInner = true; + let dropNext = true; + let userAllowDropInner = true; + if (isFunction$1(props.allowDrop)) { + dropPrev = props.allowDrop(draggingNode.node, dropNode.node, "prev"); + userAllowDropInner = dropInner = props.allowDrop(draggingNode.node, dropNode.node, "inner"); + dropNext = props.allowDrop(draggingNode.node, dropNode.node, "next"); + } + event.dataTransfer.dropEffect = dropInner || dropPrev || dropNext ? "move" : "none"; + if ((dropPrev || dropInner || dropNext) && oldDropNode?.node.id !== dropNode.node.id) { + if (oldDropNode) ctx.emit("node-drag-leave", draggingNode.node, oldDropNode.node, event); + ctx.emit("node-drag-enter", draggingNode.node, dropNode.node, event); + } + if (dropPrev || dropInner || dropNext) dragState.value.dropNode = dropNode; + else dragState.value.dropNode = null; + if (dropNode.node.nextSibling === draggingNode.node) dropNext = false; + if (dropNode.node.previousSibling === draggingNode.node) dropPrev = false; + if (dropNode.node.contains(draggingNode.node, false)) dropInner = false; + if (draggingNode.node === dropNode.node || draggingNode.node.contains(dropNode.node)) { + dropPrev = false; + dropInner = false; + dropNext = false; + } + const dropEl = dropNode.$el; + const targetPosition = dropEl.querySelector(`.${ns.be("node", "content")}`).getBoundingClientRect(); + const treePosition = el$.value.getBoundingClientRect(); + const treeScrollTop = el$.value.scrollTop; + let dropType; + const prevPercent = dropPrev ? dropInner ? .25 : dropNext ? .45 : 1 : Number.NEGATIVE_INFINITY; + const nextPercent = dropNext ? dropInner ? .75 : dropPrev ? .55 : 0 : Number.POSITIVE_INFINITY; + let indicatorTop = -9999; + const distance = event.clientY - targetPosition.top; + if (distance < targetPosition.height * prevPercent) dropType = "before"; + else if (distance > targetPosition.height * nextPercent) dropType = "after"; + else if (dropInner) dropType = "inner"; + else dropType = "none"; + const iconPosition = dropEl.querySelector(`.${ns.be("node", "expand-icon")}`).getBoundingClientRect(); + const dropIndicator = dropIndicator$.value; + if (dropType === "before") indicatorTop = iconPosition.top - treePosition.top + treeScrollTop; + else if (dropType === "after") indicatorTop = iconPosition.bottom - treePosition.top + treeScrollTop; + dropIndicator.style.top = `${indicatorTop}px`; + dropIndicator.style.left = `${iconPosition.right - treePosition.left}px`; + if (dropType === "inner") addClass(dropEl, ns.is("drop-inner")); + else removeClass(dropEl, ns.is("drop-inner")); + dragState.value.showDropIndicator = dropType === "before" || dropType === "after"; + dragState.value.allowDrop = dragState.value.showDropIndicator || userAllowDropInner; + dragState.value.dropType = dropType; + ctx.emit("node-drag-over", draggingNode.node, dropNode.node, event); + }; + const treeNodeDragEnd = (event) => { + const { draggingNode, dropType, dropNode } = dragState.value; + event.preventDefault(); + if (event.dataTransfer) event.dataTransfer.dropEffect = "move"; + if (draggingNode?.node.data && dropNode) { + const draggingNodeCopy = { data: draggingNode.node.data }; + if (dropType !== "none") draggingNode.node.remove(); + if (dropType === "before") dropNode.node.parent?.insertBefore(draggingNodeCopy, dropNode.node); + else if (dropType === "after") dropNode.node.parent?.insertAfter(draggingNodeCopy, dropNode.node); + else if (dropType === "inner") dropNode.node.insertChild(draggingNodeCopy); + if (dropType !== "none") { + store.value.registerNode(draggingNodeCopy); + if (store.value.key) draggingNode.node.eachNode((node) => { + store.value.nodesMap[node.data[store.value.key]]?.setChecked(node.checked, !store.value.checkStrictly); + }); + } + removeClass(dropNode.$el, ns.is("drop-inner")); + ctx.emit("node-drag-end", draggingNode.node, dropNode.node, dropType, event); + if (dropType !== "none") ctx.emit("node-drop", draggingNode.node, dropNode.node, dropType, event); + } + if (draggingNode && !dropNode) ctx.emit("node-drag-end", draggingNode.node, null, dropType, event); + dragState.value.showDropIndicator = false; + dragState.value.draggingNode = null; + dragState.value.dropNode = null; + dragState.value.allowDrop = true; + }; + (0, vue.provide)(dragEventsKey, { + treeNodeDragStart, + treeNodeDragOver, + treeNodeDragEnd + }); + return { dragState }; + } + +//#endregion +//#region ../../packages/components/tree/src/tree-node.vue?vue&type=script&lang.ts + var tree_node_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElTreeNode", + components: { + ElCollapseTransition, + ElCheckbox, + NodeContent: tree_node_content_default$1, + ElIcon, + Loading: loading_default + }, + props: { + node: { + type: Node$1, + default: () => ({}) + }, + props: { + type: Object, + default: () => ({}) + }, + accordion: Boolean, + renderContent: Function, + renderAfterExpand: Boolean, + showCheckbox: Boolean + }, + emits: ["node-expand"], + setup(props, ctx) { + const ns = useNamespace("tree"); + const { broadcastExpanded } = useNodeExpandEventBroadcast(props); + const tree = (0, vue.inject)(ROOT_TREE_INJECTION_KEY); + const expanded = (0, vue.ref)(false); + const childNodeRendered = (0, vue.ref)(false); + const oldChecked = (0, vue.ref)(); + const oldIndeterminate = (0, vue.ref)(); + const node$ = (0, vue.ref)(); + const dragEvents = (0, vue.inject)(dragEventsKey); + const instance = (0, vue.getCurrentInstance)(); + (0, vue.provide)(NODE_INSTANCE_INJECTION_KEY, instance); + if (!tree) /* @__PURE__ */ debugWarn("Tree", "Can not find node's tree."); + if (props.node.expanded) { + expanded.value = true; + childNodeRendered.value = true; + } + const childrenKey = tree.props.props["children"] || "children"; + (0, vue.watch)(() => { + const children = props.node.data?.[childrenKey]; + return children && [...children]; + }, () => { + props.node.updateChildren(); + }); + (0, vue.watch)(() => props.node.indeterminate, (val) => { + handleSelectChange(props.node.checked, val); + }); + (0, vue.watch)(() => props.node.checked, (val) => { + handleSelectChange(val, props.node.indeterminate); + }); + (0, vue.watch)(() => props.node.childNodes.length, () => props.node.reInitChecked()); + (0, vue.watch)(() => props.node.expanded, (val) => { + (0, vue.nextTick)(() => expanded.value = val); + if (val) childNodeRendered.value = true; + }); + const getNodeKey$2 = (node) => { + return tree.props.nodeKey ? getNodeKey(tree.props.nodeKey, node.data) : node.id; + }; + const getNodeClass = (node) => { + const nodeClassFunc = props.props.class; + if (!nodeClassFunc) return {}; + let className; + if (isFunction$1(nodeClassFunc)) { + const { data } = node; + className = nodeClassFunc(data, node); + } else className = nodeClassFunc; + if (isString(className)) return { [className]: true }; + else return className; + }; + const handleSelectChange = (checked, indeterminate) => { + if (oldChecked.value !== checked || oldIndeterminate.value !== indeterminate) tree.ctx.emit("check-change", props.node.data, checked, indeterminate); + oldChecked.value = checked; + oldIndeterminate.value = indeterminate; + }; + const handleClick = (e) => { + handleCurrentChange(tree.store, tree.ctx.emit, () => { + if (tree?.props?.nodeKey) { + const curNodeKey = getNodeKey$2(props.node); + tree.store.value.setCurrentNodeKey(curNodeKey); + } else tree.store.value.setCurrentNode(props.node); + }); + tree.currentNode.value = props.node; + if (tree.props.expandOnClickNode) handleExpandIconClick(); + if ((tree.props.checkOnClickNode || props.node.isLeaf && tree.props.checkOnClickLeaf && props.showCheckbox) && !props.node.disabled) handleCheckChange(!props.node.checked); + tree.ctx.emit("node-click", props.node.data, props.node, instance, e); + }; + const handleContextMenu = (event) => { + if (tree.instance.vnode.props?.["onNodeContextmenu"]) { + event.stopPropagation(); + event.preventDefault(); + } + tree.ctx.emit("node-contextmenu", event, props.node.data, props.node, instance); + }; + const handleExpandIconClick = () => { + if (props.node.isLeaf) return; + if (expanded.value) { + tree.ctx.emit("node-collapse", props.node.data, props.node, instance); + props.node.collapse(); + } else props.node.expand(() => { + ctx.emit("node-expand", props.node.data, props.node, instance); + }); + }; + const handleCheckChange = (value) => { + const checkStrictly = tree?.props.checkStrictly; + const childNodes = props.node.childNodes; + if (!checkStrictly && childNodes.length) value = childNodes.some((node) => !node.isEffectivelyChecked); + props.node.setChecked(value, !checkStrictly); + (0, vue.nextTick)(() => { + const store = tree.store.value; + tree.ctx.emit("check", props.node.data, { + checkedNodes: store.getCheckedNodes(), + checkedKeys: store.getCheckedKeys(), + halfCheckedNodes: store.getHalfCheckedNodes(), + halfCheckedKeys: store.getHalfCheckedKeys() + }); + }); + }; + const handleChildNodeExpand = (nodeData, node, instance) => { + broadcastExpanded(node); + tree.ctx.emit("node-expand", nodeData, node, instance); + }; + const handleDragStart = (event) => { + if (!tree.props.draggable) return; + dragEvents.treeNodeDragStart({ + event, + treeNode: props + }); + }; + const handleDragOver = (event) => { + event.preventDefault(); + if (!tree.props.draggable) return; + dragEvents.treeNodeDragOver({ + event, + treeNode: { + $el: node$.value, + node: props.node + } + }); + }; + const handleDrop = (event) => { + event.preventDefault(); + }; + const handleDragEnd = (event) => { + if (!tree.props.draggable) return; + dragEvents.treeNodeDragEnd(event); + }; + return { + ns, + node$, + tree, + expanded, + childNodeRendered, + oldChecked, + oldIndeterminate, + getNodeKey: getNodeKey$2, + getNodeClass, + handleSelectChange, + handleClick, + handleContextMenu, + handleExpandIconClick, + handleCheckChange, + handleChildNodeExpand, + handleDragStart, + handleDragOver, + handleDrop, + handleDragEnd, + CaretRight: caret_right_default + }; + } + }); + +//#endregion +//#region ../../packages/components/tree/src/tree-node.vue + const _hoisted_1$12 = [ + "aria-expanded", + "aria-disabled", + "aria-checked", + "draggable", + "data-key" + ]; + const _hoisted_2$7 = ["aria-expanded"]; + function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + const _component_el_checkbox = (0, vue.resolveComponent)("el-checkbox"); + const _component_loading = (0, vue.resolveComponent)("loading"); + const _component_node_content = (0, vue.resolveComponent)("node-content"); + const _component_el_tree_node = (0, vue.resolveComponent)("el-tree-node"); + const _component_el_collapse_transition = (0, vue.resolveComponent)("el-collapse-transition"); + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref: "node$", + class: (0, vue.normalizeClass)([ + _ctx.ns.b("node"), + _ctx.ns.is("expanded", _ctx.expanded), + _ctx.ns.is("current", _ctx.node.isCurrent), + _ctx.ns.is("hidden", !_ctx.node.visible), + _ctx.ns.is("focusable", !_ctx.node.disabled), + _ctx.ns.is("checked", !_ctx.node.disabled && _ctx.node.checked), + _ctx.getNodeClass(_ctx.node) + ]), + role: "treeitem", + tabindex: "-1", + "aria-expanded": _ctx.expanded, + "aria-disabled": _ctx.node.disabled, + "aria-checked": _ctx.node.checked, + draggable: _ctx.tree.props.draggable, + "data-key": _ctx.getNodeKey(_ctx.node), + onClick: _cache[2] || (_cache[2] = (0, vue.withModifiers)((...args) => _ctx.handleClick && _ctx.handleClick(...args), ["stop"])), + onContextmenu: _cache[3] || (_cache[3] = (...args) => _ctx.handleContextMenu && _ctx.handleContextMenu(...args)), + onDragstart: _cache[4] || (_cache[4] = (0, vue.withModifiers)((...args) => _ctx.handleDragStart && _ctx.handleDragStart(...args), ["stop"])), + onDragover: _cache[5] || (_cache[5] = (0, vue.withModifiers)((...args) => _ctx.handleDragOver && _ctx.handleDragOver(...args), ["stop"])), + onDragend: _cache[6] || (_cache[6] = (0, vue.withModifiers)((...args) => _ctx.handleDragEnd && _ctx.handleDragEnd(...args), ["stop"])), + onDrop: _cache[7] || (_cache[7] = (0, vue.withModifiers)((...args) => _ctx.handleDrop && _ctx.handleDrop(...args), ["stop"])) + }, [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)(_ctx.ns.be("node", "content")), + style: (0, vue.normalizeStyle)({ paddingLeft: (_ctx.node.level - 1) * _ctx.tree.props.indent + "px" }) + }, [ + _ctx.tree.props.icon || _ctx.CaretRight ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 0, + class: (0, vue.normalizeClass)([ + _ctx.ns.be("node", "expand-icon"), + _ctx.ns.is("leaf", _ctx.node.isLeaf), + { expanded: !_ctx.node.isLeaf && _ctx.expanded } + ]), + onClick: (0, vue.withModifiers)(_ctx.handleExpandIconClick, ["stop"]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.tree.props.icon || _ctx.CaretRight)))]), + _: 1 + }, 8, ["class", "onClick"])) : (0, vue.createCommentVNode)("v-if", true), + _ctx.showCheckbox ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_checkbox, { + key: 1, + "model-value": _ctx.node.checked, + indeterminate: _ctx.node.indeterminate, + disabled: !!_ctx.node.disabled, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])), + onChange: _ctx.handleCheckChange + }, null, 8, [ + "model-value", + "indeterminate", + "disabled", + "onChange" + ])) : (0, vue.createCommentVNode)("v-if", true), + _ctx.node.loading ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 2, + class: (0, vue.normalizeClass)([_ctx.ns.be("node", "loading-icon"), _ctx.ns.is("loading")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_loading)]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createVNode)(_component_node_content, { + node: _ctx.node, + "render-content": _ctx.renderContent + }, null, 8, ["node", "render-content"]) + ], 6), (0, vue.createVNode)(_component_el_collapse_transition, null, { + default: (0, vue.withCtx)(() => [!_ctx.renderAfterExpand || _ctx.childNodeRendered ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)(_ctx.ns.be("node", "children")), + role: "group", + "aria-expanded": _ctx.expanded, + onClick: _cache[1] || (_cache[1] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.node.childNodes, (child) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_tree_node, { + key: _ctx.getNodeKey(child), + "render-content": _ctx.renderContent, + "render-after-expand": _ctx.renderAfterExpand, + "show-checkbox": _ctx.showCheckbox, + node: child, + accordion: _ctx.accordion, + props: _ctx.props, + onNodeExpand: _ctx.handleChildNodeExpand + }, null, 8, [ + "render-content", + "render-after-expand", + "show-checkbox", + "node", + "accordion", + "props", + "onNodeExpand" + ]); + }), 128))], 10, _hoisted_2$7)), [[vue.vShow, _ctx.expanded]]) : (0, vue.createCommentVNode)("v-if", true)]), + _: 1 + })], 42, _hoisted_1$12)), [[vue.vShow, _ctx.node.visible]]); + } + var tree_node_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(tree_node_vue_vue_type_script_lang_default, [["render", _sfc_render$2]]); + +//#endregion +//#region ../../packages/components/tree/src/model/useKeydown.ts + function useKeydown({ el$ }, store) { + const ns = useNamespace("tree"); + (0, vue.onMounted)(() => { + initTabIndex(); + }); + (0, vue.onUpdated)(() => { + el$.value?.querySelectorAll("input[type=checkbox]").forEach((checkbox) => { + checkbox.setAttribute("tabindex", "-1"); + }); + }); + function canNodeFocus(treeItems, nextIndex) { + const currentNode = store.value.getNode(treeItems[nextIndex].dataset.key); + return currentNode.canFocus && currentNode.visible && (currentNode.parent?.expanded || currentNode.parent?.level === 0); + } + const handleKeydown = (ev) => { + const currentItem = ev.target; + if (!currentItem.className.includes(ns.b("node"))) return; + const code = getEventCode(ev); + const treeItems = Array.from(el$.value.querySelectorAll(`.${ns.is("focusable")}[role=treeitem]`)); + const currentIndex = treeItems.indexOf(currentItem); + let nextIndex; + if ([EVENT_CODE.up, EVENT_CODE.down].includes(code)) { + ev.preventDefault(); + if (code === EVENT_CODE.up) { + nextIndex = currentIndex === -1 ? 0 : currentIndex !== 0 ? currentIndex - 1 : treeItems.length - 1; + const startIndex = nextIndex; + while (true) { + if (canNodeFocus(treeItems, nextIndex)) break; + nextIndex--; + if (nextIndex === startIndex) { + nextIndex = -1; + break; + } + if (nextIndex < 0) nextIndex = treeItems.length - 1; + } + } else { + nextIndex = currentIndex === -1 ? 0 : currentIndex < treeItems.length - 1 ? currentIndex + 1 : 0; + const startIndex = nextIndex; + while (true) { + if (canNodeFocus(treeItems, nextIndex)) break; + nextIndex++; + if (nextIndex === startIndex) { + nextIndex = -1; + break; + } + if (nextIndex >= treeItems.length) nextIndex = 0; + } + } + nextIndex !== -1 && treeItems[nextIndex].focus(); + } + if ([EVENT_CODE.left, EVENT_CODE.right].includes(code)) { + ev.preventDefault(); + currentItem.click(); + } + const hasInput = currentItem.querySelector("[type=\"checkbox\"]"); + if ([ + EVENT_CODE.enter, + EVENT_CODE.numpadEnter, + EVENT_CODE.space + ].includes(code) && hasInput) { + ev.preventDefault(); + hasInput.click(); + } + }; + useEventListener(el$, "keydown", handleKeydown); + const initTabIndex = () => { + if (!el$.value) return; + const treeItems = Array.from(el$.value.querySelectorAll(`.${ns.is("focusable")}[role=treeitem]`)); + Array.from(el$.value.querySelectorAll("input[type=checkbox]")).forEach((checkbox) => { + checkbox.setAttribute("tabindex", "-1"); + }); + const checkedItem = el$.value.querySelectorAll(`.${ns.is("checked")}[role=treeitem]`); + if (checkedItem.length) { + checkedItem[0].setAttribute("tabindex", "0"); + return; + } + treeItems[0]?.setAttribute("tabindex", "0"); + }; + } + +//#endregion +//#region ../../packages/components/tree/src/tree.ts + const treeProps = buildProps({ + data: { + type: definePropType(Array), + default: () => [] + }, + emptyText: { type: String }, + renderAfterExpand: { + type: Boolean, + default: true + }, + nodeKey: String, + checkStrictly: Boolean, + defaultExpandAll: Boolean, + expandOnClickNode: { + type: Boolean, + default: true + }, + checkOnClickNode: Boolean, + checkOnClickLeaf: { + type: Boolean, + default: true + }, + checkDescendants: Boolean, + autoExpandParent: { + type: Boolean, + default: true + }, + defaultCheckedKeys: { type: Array }, + defaultExpandedKeys: { type: Array }, + currentNodeKey: { type: [String, Number] }, + renderContent: { type: definePropType(Function) }, + showCheckbox: Boolean, + draggable: Boolean, + allowDrag: { type: definePropType(Function) }, + allowDrop: { type: definePropType(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: iconPropType } + }); + const treeEmits = { + "check-change": (data, checked, indeterminate) => data && isBoolean(checked) && isBoolean(indeterminate), + "current-change": (data, node) => true, + "node-click": (data, node, nodeInstance, evt) => data && node && evt instanceof Event, + "node-contextmenu": (evt, data, node, nodeInstance) => evt instanceof Event && data && node, + "node-collapse": (data, node, nodeInstance) => data && node, + "node-expand": (data, node, nodeInstance) => data && node, + check: (data, checkedInfo) => data && checkedInfo, + "node-drag-start": (node, evt) => node && evt, + "node-drag-end": (draggingNode, dropNode, dropType, evt) => draggingNode && evt, + "node-drop": (draggingNode, dropNode, dropType, evt) => draggingNode && dropNode && evt, + "node-drag-leave": (draggingNode, oldDropNode, evt) => draggingNode && oldDropNode && evt, + "node-drag-enter": (draggingNode, dropNode, evt) => draggingNode && dropNode && evt, + "node-drag-over": (draggingNode, dropNode, evt) => draggingNode && dropNode && evt + }; + +//#endregion +//#region ../../packages/components/tree/src/tree.vue?vue&type=script&lang.ts + var tree_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElTree", + components: { ElTreeNode: tree_node_default$1 }, + props: treeProps, + emits: treeEmits, + setup(props, ctx) { + const { t } = useLocale(); + const ns = useNamespace("tree"); + const store = (0, vue.ref)(new TreeStore({ + key: props.nodeKey, + data: props.data, + lazy: props.lazy, + props: props.props, + load: props.load, + currentNodeKey: props.currentNodeKey, + checkStrictly: props.checkStrictly, + checkDescendants: props.checkDescendants, + defaultCheckedKeys: props.defaultCheckedKeys, + defaultExpandedKeys: props.defaultExpandedKeys, + autoExpandParent: props.autoExpandParent, + defaultExpandAll: props.defaultExpandAll, + filterNodeMethod: props.filterNodeMethod + })); + store.value.initialize(); + const root = (0, vue.ref)(store.value.root); + const currentNode = (0, vue.ref)(null); + const el$ = (0, vue.ref)(null); + const dropIndicator$ = (0, vue.ref)(null); + const { broadcastExpanded } = useNodeExpandEventBroadcast(props); + const { dragState } = useDragNodeHandler({ + props, + ctx, + el$, + dropIndicator$, + store + }); + useKeydown({ el$ }, store); + const instance = (0, vue.getCurrentInstance)(); + const isSelectTree = (0, vue.computed)(() => { + let parent = instance?.parent; + while (parent) { + if (parent.type.name === "ElTreeSelect") return true; + parent = parent.parent; + } + return false; + }); + const isEmpty = (0, vue.computed)(() => { + const { childNodes } = root.value; + return (!childNodes || childNodes.length === 0 || childNodes.every(({ visible }) => !visible)) && !isSelectTree.value; + }); + (0, vue.watch)(() => props.currentNodeKey, (newVal) => { + store.value.setCurrentNodeKey(newVal ?? null); + }); + (0, vue.watch)(() => props.defaultCheckedKeys, (newVal, oldVal) => { + if (isEqual$1(newVal, oldVal)) return; + store.value.setDefaultCheckedKey(newVal ?? []); + }); + (0, vue.watch)(() => props.defaultExpandedKeys, (newVal) => { + store.value.setDefaultExpandedKeys(newVal ?? []); + }); + (0, vue.watch)(() => props.data, (newVal) => { + store.value.setData(newVal); + }, { deep: true }); + (0, vue.watch)(() => props.checkStrictly, (newVal) => { + store.value.checkStrictly = newVal; + }); + const filter = (value) => { + if (!props.filterNodeMethod) throw new Error("[Tree] filterNodeMethod is required when filter"); + store.value.filter(value); + }; + const getNodeKey$1 = (node) => { + return props.nodeKey ? getNodeKey(props.nodeKey, node.data) : node.id; + }; + const requireNodeKey = (methodName) => { + if (!props.nodeKey) throw new Error(`[Tree] nodeKey is required in ${methodName}`); + }; + const getNodePath = (data) => { + requireNodeKey("getNodePath"); + const node = store.value.getNode(data); + if (!node) return []; + const path = [node.data]; + let parent = node.parent; + while (parent && parent !== root.value) { + path.push(parent.data); + parent = parent.parent; + } + return path.reverse(); + }; + const getCheckedNodes = (leafOnly, includeHalfChecked) => { + return store.value.getCheckedNodes(leafOnly, includeHalfChecked); + }; + const getCheckedKeys = (leafOnly) => { + return store.value.getCheckedKeys(leafOnly); + }; + const getCurrentNode = () => { + const currentNode = store.value.getCurrentNode(); + return currentNode ? currentNode.data : null; + }; + const getCurrentKey = () => { + requireNodeKey("getCurrentKey"); + const currentNode = getCurrentNode(); + return currentNode ? currentNode[props.nodeKey] : null; + }; + const setCheckedNodes = (nodes, leafOnly) => { + requireNodeKey("setCheckedNodes"); + store.value.setCheckedNodes(nodes, leafOnly); + }; + const setCheckedKeys = (keys, leafOnly) => { + requireNodeKey("setCheckedKeys"); + store.value.setCheckedKeys(keys, leafOnly); + }; + const setChecked = (data, checked, deep) => { + store.value.setChecked(data, checked, deep); + }; + const getHalfCheckedNodes = () => { + return store.value.getHalfCheckedNodes(); + }; + const getHalfCheckedKeys = () => { + return store.value.getHalfCheckedKeys(); + }; + const setCurrentNode = (node, shouldAutoExpandParent = true) => { + requireNodeKey("setCurrentNode"); + handleCurrentChange(store, ctx.emit, () => { + broadcastExpanded(node); + store.value.setUserCurrentNode(node, shouldAutoExpandParent); + }); + }; + const setCurrentKey = (key = null, shouldAutoExpandParent = true) => { + requireNodeKey("setCurrentKey"); + handleCurrentChange(store, ctx.emit, () => { + broadcastExpanded(); + store.value.setCurrentNodeKey(key, shouldAutoExpandParent); + }); + }; + const getNode = (data) => { + return store.value.getNode(data); + }; + const remove = (data) => { + store.value.remove(data); + }; + const append = (data, parentNode) => { + store.value.append(data, parentNode); + }; + const insertBefore = (data, refNode) => { + store.value.insertBefore(data, refNode); + }; + const insertAfter = (data, refNode) => { + store.value.insertAfter(data, refNode); + }; + const handleNodeExpand = (nodeData, node, instance) => { + broadcastExpanded(node); + ctx.emit("node-expand", nodeData, node, instance); + }; + const updateKeyChildren = (key, data) => { + requireNodeKey("updateKeyChildren"); + store.value.updateChildren(key, data); + }; + (0, vue.provide)(ROOT_TREE_INJECTION_KEY, { + ctx, + props, + store, + root, + currentNode, + instance + }); + (0, vue.provide)(formItemContextKey, void 0); + return { + ns, + store, + root, + currentNode, + dragState, + el$, + dropIndicator$, + isEmpty, + filter, + getNodeKey: getNodeKey$1, + getNodePath, + getCheckedNodes, + getCheckedKeys, + getCurrentNode, + getCurrentKey, + setCheckedNodes, + setCheckedKeys, + setChecked, + getHalfCheckedNodes, + getHalfCheckedKeys, + setCurrentNode, + setCurrentKey, + t, + getNode, + remove, + append, + insertBefore, + insertAfter, + handleNodeExpand, + updateKeyChildren + }; + } + }); + +//#endregion +//#region ../../packages/components/tree/src/tree.vue + function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_tree_node = (0, vue.resolveComponent)("el-tree-node"); + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref: "el$", + class: (0, vue.normalizeClass)([ + _ctx.ns.b(), + _ctx.ns.is("dragging", !!_ctx.dragState.draggingNode), + _ctx.ns.is("drop-not-allow", !_ctx.dragState.allowDrop), + _ctx.ns.is("drop-inner", _ctx.dragState.dropType === "inner"), + { [_ctx.ns.m("highlight-current")]: _ctx.highlightCurrent } + ]), + role: "tree" + }, [ + ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.root.childNodes, (child) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_tree_node, { + key: _ctx.getNodeKey(child), + node: child, + props: _ctx.props, + accordion: _ctx.accordion, + "render-after-expand": _ctx.renderAfterExpand, + "show-checkbox": _ctx.showCheckbox, + "render-content": _ctx.renderContent, + onNodeExpand: _ctx.handleNodeExpand + }, null, 8, [ + "node", + "props", + "accordion", + "render-after-expand", + "show-checkbox", + "render-content", + "onNodeExpand" + ]); + }), 128)), + _ctx.isEmpty ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)(_ctx.ns.e("empty-block")) + }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.ns.e("empty-text")) }, (0, vue.toDisplayString)(_ctx.emptyText ?? _ctx.t("el.tree.emptyText")), 3)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.withDirectives)((0, vue.createElementVNode)("div", { + ref: "dropIndicator$", + class: (0, vue.normalizeClass)(_ctx.ns.e("drop-indicator")) + }, null, 2), [[vue.vShow, _ctx.dragState.showDropIndicator]]) + ], 2); + } + var tree_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(tree_vue_vue_type_script_lang_default, [["render", _sfc_render$1]]); + +//#endregion +//#region ../../packages/components/tree/index.ts + const ElTree = withInstall(tree_default$1); + +//#endregion +//#region ../../packages/components/tree-select/src/select.ts + const useSelect = (props, { attrs, emit }, { select, tree, key }) => { + const ns = useNamespace("tree-select"); + (0, vue.watch)(() => props.data, () => { + if (props.filterable) (0, vue.nextTick)(() => { + tree.value?.filter(select.value?.states.inputValue); + }); + }, { flush: "post" }); + const focusLastNode = (listNode) => { + const lastNode = listNode.at(-1); + if (lastNode.expanded && lastNode.childNodes.at(-1)) focusLastNode([lastNode.childNodes.at(-1)]); + else { + (tree.value.el$?.querySelector(`[data-key="${listNode.at(-1).key}"]`))?.focus({ preventScroll: true }); + return; + } + }; + (0, vue.onMounted)(() => { + useEventListener(() => select.value?.$el, "keydown", async (evt) => { + const code = getEventCode(evt); + const { dropdownMenuVisible } = select.value; + if ([EVENT_CODE.down, EVENT_CODE.up].includes(code) && dropdownMenuVisible) { + await (0, vue.nextTick)(); + setTimeout(() => { + if (EVENT_CODE.up === code) { + const listNode = tree.value.store.root.childNodes; + focusLastNode(listNode); + return; + } + select.value.optionsArray[select.value.states.hoveringIndex].$el?.parentNode?.parentNode?.focus({ preventScroll: true }); + }); + } + }, { capture: true }); + }); + return { + ...pick((0, vue.toRefs)(props), Object.keys(ElSelect.props)), + ...attrs, + class: (0, vue.computed)(() => attrs.class), + style: (0, vue.computed)(() => attrs.style), + "onUpdate:modelValue": (value) => emit(UPDATE_MODEL_EVENT, value), + valueKey: key, + popperClass: (0, vue.computed)(() => { + const classes = [ns.e("popper")]; + if (props.popperClass) classes.push(props.popperClass); + return classes.join(" "); + }), + filterMethod: (keyword = "") => { + if (props.filterMethod) props.filterMethod(keyword); + else if (props.remoteMethod) props.remoteMethod(keyword); + else tree.value?.filter(keyword); + } + }; + }; + +//#endregion +//#region ../../packages/components/tree-select/src/tree-select-option.ts + const component = (0, vue.defineComponent)({ + extends: ElOption, + setup(props, ctx) { + const result = ElOption.setup(props, ctx); + delete result.selectOptionClick; + const vm = (0, vue.getCurrentInstance)().proxy; + (0, vue.nextTick)(() => { + if (!result.select.states.cachedOptions.get(vm.value)) result.select.onOptionCreate(vm); + }); + (0, vue.watch)(() => ctx.attrs.visible, (val) => { + (0, vue.nextTick)(() => { + result.states.visible = val; + }); + }, { immediate: true }); + return result; + }, + methods: { selectOptionClick() { + this.$el.parentElement.click(); + } } + }); + +//#endregion +//#region ../../packages/components/tree-select/src/utils.ts + function isValidValue(val) { + return val || val === 0; + } + function isValidArray(val) { + return isArray$1(val) && val.length; + } + function toValidArray(val) { + return isArray$1(val) ? val : isValidValue(val) ? [val] : []; + } + function treeFind(treeData, findCallback, getChildren, resultCallback, parent) { + for (let i = 0; i < treeData.length; i++) { + const data = treeData[i]; + if (findCallback(data, i, treeData, parent)) return resultCallback ? resultCallback(data, i, treeData, parent) : data; + else { + const children = getChildren(data); + if (isValidArray(children)) { + const find = treeFind(children, findCallback, getChildren, resultCallback, data); + if (find) return find; + } + } + } + } + function treeEach(treeData, callback, getChildren, parent) { + for (let i = 0; i < treeData.length; i++) { + const data = treeData[i]; + callback(data, i, treeData, parent); + const children = getChildren(data); + if (isValidArray(children)) treeEach(children, callback, getChildren, data); + } + } + +//#endregion +//#region ../../packages/components/tree-select/src/tree.ts + const useTree$1 = (props, { attrs, slots, emit }, { select, tree, key }) => { + (0, vue.watch)([() => props.modelValue, tree], () => { + if (props.showCheckbox) (0, vue.nextTick)(() => { + const treeInstance = tree.value; + if (treeInstance && !isEqual$1(treeInstance.getCheckedKeys(), toValidArray(props.modelValue))) treeInstance.setCheckedKeys(toValidArray(props.modelValue)); + }); + }, { + immediate: true, + deep: true + }); + const propsMap = (0, vue.computed)(() => ({ + value: key.value, + label: "label", + children: "children", + disabled: "disabled", + isLeaf: "isLeaf", + ...props.props + })); + const getNodeValByProp = (prop, data) => { + const propVal = propsMap.value[prop]; + if (isFunction$1(propVal)) return propVal(data, tree.value?.getNode(getNodeValByProp("value", data))); + else return data[propVal]; + }; + const defaultExpandedParentKeys = toValidArray(props.modelValue).map((value) => { + return treeFind(props.data || [], (data) => getNodeValByProp("value", data) === value, (data) => getNodeValByProp("children", data), (data, index, array, parent) => parent && getNodeValByProp("value", parent)); + }).filter((item) => isValidValue(item)); + const cacheOptions = (0, vue.computed)(() => { + if (!props.renderAfterExpand && !props.lazy) return []; + const options = []; + treeEach(props.data.concat(props.cacheData), (node) => { + const value = getNodeValByProp("value", node); + options.push({ + value, + currentLabel: getNodeValByProp("label", node), + isDisabled: getNodeValByProp("disabled", node) + }); + }, (data) => getNodeValByProp("children", data)); + return options; + }); + const getChildCheckedKeys = () => { + return tree.value?.getCheckedKeys().filter((checkedKey) => { + const node = tree.value?.getNode(checkedKey); + return !isNil(node) && isEmpty(node.childNodes); + }); + }; + const emitChange = (val) => { + if (!isEqual$1(props.modelValue, val)) emit(CHANGE_EVENT, val); + }; + function update(val) { + emit(UPDATE_MODEL_EVENT, val); + emitChange(val); + } + return { + ...pick((0, vue.toRefs)(props), Object.keys(ElTree.props)), + ...attrs, + nodeKey: key, + expandOnClickNode: (0, vue.computed)(() => { + return !props.checkStrictly && props.expandOnClickNode; + }), + defaultExpandedKeys: (0, vue.computed)(() => { + return props.defaultExpandedKeys ? props.defaultExpandedKeys.concat(defaultExpandedParentKeys) : defaultExpandedParentKeys; + }), + renderContent: (h, { node, data, store }) => { + return h(component, { + value: getNodeValByProp("value", data), + label: getNodeValByProp("label", data), + disabled: getNodeValByProp("disabled", data), + visible: node.visible + }, props.renderContent ? () => props.renderContent(h, { + node, + data, + store + }) : slots.default ? () => slots.default({ + node, + data, + store + }) : void 0); + }, + filterNodeMethod: (value, data, node) => { + if (props.filterNodeMethod) return props.filterNodeMethod(value, data, node); + if (!value) return true; + return new RegExp(escapeStringRegexp(value), "i").test(getNodeValByProp("label", data) || ""); + }, + onNodeClick: (data, node, e) => { + attrs.onNodeClick?.(data, node, e); + if (props.showCheckbox && props.checkOnClickNode) return; + if (!props.showCheckbox && (props.checkStrictly || node.isLeaf)) { + if (!getNodeValByProp("disabled", data)) { + const option = select.value?.states.options.get(getNodeValByProp("value", data)); + select.value?.handleOptionSelect(option); + } + } else if (props.expandOnClickNode) e.proxy.handleExpandIconClick(); + }, + onCheck: (data, params) => { + if (!props.showCheckbox) return; + const dataValue = getNodeValByProp("value", data); + const dataMap = {}; + treeEach([tree.value.store.root], (node) => dataMap[node.key] = node, (node) => node.childNodes); + const uncachedCheckedKeys = params.checkedKeys; + const cachedKeys = props.multiple ? toValidArray(props.modelValue).filter((item) => !(item in dataMap) && !uncachedCheckedKeys.includes(item)) : []; + const checkedKeys = cachedKeys.concat(uncachedCheckedKeys); + if (props.checkStrictly) update(props.multiple ? checkedKeys : checkedKeys.includes(dataValue) ? dataValue : void 0); + else if (props.multiple) { + const childKeys = getChildCheckedKeys(); + update(cachedKeys.concat(childKeys)); + } else { + const firstLeaf = treeFind([data], (data) => !isValidArray(getNodeValByProp("children", data)) && !getNodeValByProp("disabled", data), (data) => getNodeValByProp("children", data)); + const firstLeafKey = firstLeaf ? getNodeValByProp("value", firstLeaf) : void 0; + const hasCheckedChild = isValidValue(props.modelValue) && !!treeFind([data], (data) => getNodeValByProp("value", data) === props.modelValue, (data) => getNodeValByProp("children", data)); + update(firstLeafKey === props.modelValue || hasCheckedChild ? void 0 : firstLeafKey); + } + (0, vue.nextTick)(() => { + const checkedKeys = toValidArray(props.modelValue); + tree.value.setCheckedKeys(checkedKeys); + attrs.onCheck?.(data, { + checkedKeys: tree.value.getCheckedKeys(), + checkedNodes: tree.value.getCheckedNodes(), + halfCheckedKeys: tree.value.getHalfCheckedKeys(), + halfCheckedNodes: tree.value.getHalfCheckedNodes() + }); + }); + select.value?.focus(); + }, + onNodeExpand: (data, node, e) => { + attrs.onNodeExpand?.(data, node, e); + (0, vue.nextTick)(() => { + if (!props.checkStrictly && props.lazy && props.multiple && node.checked) { + const dataMap = {}; + const uncachedCheckedKeys = tree.value.getCheckedKeys(); + treeEach([tree.value.store.root], (node) => dataMap[node.key] = node, (node) => node.childNodes); + const cachedKeys = toValidArray(props.modelValue).filter((item) => !(item in dataMap) && !uncachedCheckedKeys.includes(item)); + const childKeys = getChildCheckedKeys(); + update(cachedKeys.concat(childKeys)); + } + }); + }, + cacheOptions + }; + }; + +//#endregion +//#region ../../packages/components/tree-select/src/cache-options.ts + var cache_options_default = (0, vue.defineComponent)({ + props: { data: { + type: Array, + default: () => [] + } }, + setup(props) { + const select = (0, vue.inject)(selectKey); + (0, vue.watch)(() => props.data, () => { + props.data.forEach((item) => { + if (!select.states.cachedOptions.has(item.value)) select.states.cachedOptions.set(item.value, item); + }); + const inputs = select.selectRef?.querySelectorAll("input") || []; + if (isClient && !Array.from(inputs).includes(document.activeElement)) select.setSelected(); + }, { + flush: "post", + immediate: true + }); + return () => void 0; + } + }); + +//#endregion +//#region ../../packages/components/tree-select/src/tree-select.vue?vue&type=script&lang.ts + var tree_select_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElTreeSelect", + inheritAttrs: false, + props: { + ...selectProps, + ...treeProps, + cacheData: { + type: Array, + default: () => [] + } + }, + setup(props, context) { + const { slots, expose, emit, attrs } = context; + const childAttrs = { + ...attrs, + onChange: void 0 + }; + const select = (0, vue.ref)(); + const tree = (0, vue.ref)(); + const key = (0, vue.computed)(() => props.nodeKey || props.valueKey || "value"); + const selectProps = useSelect(props, { + attrs, + emit + }, { + select, + tree, + key + }); + const { cacheOptions, ...treeProps } = useTree$1(props, { + attrs: childAttrs, + slots, + emit + }, { + select, + tree, + key + }); + const methods = (0, vue.reactive)({}); + expose(methods); + (0, vue.onMounted)(() => { + Object.assign(methods, { + ...pick(tree.value, [ + "filter", + "updateKeyChildren", + "getCheckedNodes", + "setCheckedNodes", + "getCheckedKeys", + "setCheckedKeys", + "setChecked", + "getHalfCheckedNodes", + "getHalfCheckedKeys", + "getCurrentKey", + "getCurrentNode", + "setCurrentKey", + "setCurrentNode", + "getNode", + "remove", + "append", + "insertBefore", + "insertAfter" + ]), + ...pick(select.value, [ + "focus", + "blur", + "selectedLabel" + ]), + treeRef: tree.value, + selectRef: select.value + }); + }); + return () => (0, vue.h)( + ElSelect, + /** + * 1. The `props` is processed into `Refs`, but `v-bind` and + * render function props cannot read `Refs`, so use `reactive` + * unwrap the `Refs` and keep reactive. + * 2. The keyword `ref` requires `Ref`, but `reactive` broke it, + * so use function. + */ + (0, vue.reactive)({ + ...selectProps, + ref: (ref) => select.value = ref + }), + { + ...slots, + default: () => [(0, vue.h)(cache_options_default, { data: cacheOptions.value }), (0, vue.h)(ElTree, (0, vue.reactive)({ + ...treeProps, + ref: (ref) => tree.value = ref + }))] + } + ); + } + }); + +//#endregion +//#region ../../packages/components/tree-select/src/tree-select.vue + var tree_select_default = tree_select_vue_vue_type_script_lang_default; + +//#endregion +//#region ../../packages/components/tree-select/index.ts + const ElTreeSelect = withInstall(tree_select_default); + +//#endregion +//#region ../../packages/components/tree-v2/src/virtual-tree.ts + const ROOT_TREE_INJECTION_KEY$1 = Symbol(); + const EMPTY_NODE = { + key: -1, + level: -1, + data: {} + }; + let TreeOptionsEnum = /* @__PURE__ */ function(TreeOptionsEnum) { + TreeOptionsEnum["KEY"] = "id"; + TreeOptionsEnum["LABEL"] = "label"; + TreeOptionsEnum["CHILDREN"] = "children"; + TreeOptionsEnum["DISABLED"] = "disabled"; + TreeOptionsEnum["CLASS"] = ""; + return TreeOptionsEnum; + }({}); + let SetOperationEnum = /* @__PURE__ */ function(SetOperationEnum) { + SetOperationEnum["ADD"] = "add"; + SetOperationEnum["DELETE"] = "delete"; + return SetOperationEnum; + }({}); + const itemSize = { + type: Number, + default: 26 + }; + /** + * @deprecated Removed after 3.0.0, Use `TreeProps` instead. + */ + const treeProps$1 = buildProps({ + data: { + type: definePropType(Array), + default: () => mutable([]) + }, + emptyText: { type: String }, + height: { + type: Number, + default: 200 + }, + props: { + type: definePropType(Object), + default: () => mutable({ + children: TreeOptionsEnum.CHILDREN, + label: TreeOptionsEnum.LABEL, + disabled: TreeOptionsEnum.DISABLED, + value: TreeOptionsEnum.KEY, + class: TreeOptionsEnum.CLASS + }) + }, + highlightCurrent: Boolean, + showCheckbox: Boolean, + defaultCheckedKeys: { + type: definePropType(Array), + default: () => mutable([]) + }, + checkStrictly: Boolean, + defaultExpandedKeys: { + type: definePropType(Array), + default: () => mutable([]) + }, + indent: { + type: Number, + default: 16 + }, + itemSize, + icon: { type: iconPropType }, + expandOnClickNode: { + type: Boolean, + default: true + }, + checkOnClickNode: Boolean, + checkOnClickLeaf: { + type: Boolean, + default: true + }, + currentNodeKey: { type: definePropType([String, Number]) }, + accordion: Boolean, + filterMethod: { type: definePropType(Function) }, + perfMode: { + type: Boolean, + default: true + }, + scrollbarAlwaysOn: Boolean + }); + /** + * @deprecated Removed after 3.0.0, Use `TreeNodeProps` instead. + */ + const treeNodeProps = buildProps({ + node: { + type: definePropType(Object), + default: () => mutable(EMPTY_NODE) + }, + expanded: Boolean, + checked: Boolean, + indeterminate: Boolean, + showCheckbox: Boolean, + disabled: Boolean, + current: Boolean, + hiddenExpandIcon: Boolean, + itemSize + }); + const treeNodeContentProps = buildProps({ node: { + type: definePropType(Object), + required: true + } }); + const NODE_CLICK = "node-click"; + const NODE_DROP = "node-drop"; + const NODE_EXPAND = "node-expand"; + const NODE_COLLAPSE = "node-collapse"; + const CURRENT_CHANGE = "current-change"; + const NODE_CHECK = "check"; + const NODE_CHECK_CHANGE = "check-change"; + const NODE_CONTEXTMENU = "node-contextmenu"; + const treeEmits$1 = { + [NODE_CLICK]: (data, node, e) => data && node && e, + [NODE_DROP]: (data, node, e) => data && node && e, + [NODE_EXPAND]: (data, node) => data && node, + [NODE_COLLAPSE]: (data, node) => data && node, + [CURRENT_CHANGE]: (data, node) => data && node, + [NODE_CHECK]: (data, checkedInfo) => data && checkedInfo, + [NODE_CHECK_CHANGE]: (data, checked) => data && isBoolean(checked), + [NODE_CONTEXTMENU]: (evt, data, node) => evt && data && node + }; + const treeNodeEmits = { + click: (node, e) => !!(node && e), + drop: (node, e) => !!(node && e), + toggle: (node) => !!node, + check: (node, checked) => node && isBoolean(checked) + }; + +//#endregion +//#region ../../packages/components/tree-v2/src/composables/useCheck.ts + function useCheck(props, tree) { + const checkedKeys = (0, vue.ref)(/* @__PURE__ */ new Set()); + const indeterminateKeys = (0, vue.ref)(/* @__PURE__ */ new Set()); + const { emit } = (0, vue.getCurrentInstance)(); + (0, vue.watch)([() => tree.value, () => props.defaultCheckedKeys], () => { + return (0, vue.nextTick)(() => { + _setCheckedKeys(props.defaultCheckedKeys); + }); + }, { immediate: true }); + const updateCheckedKeys = () => { + if (!tree.value || !props.showCheckbox || props.checkStrictly) return; + const { levelTreeNodeMap, maxLevel } = tree.value; + const checkedKeySet = checkedKeys.value; + const indeterminateKeySet = /* @__PURE__ */ new Set(); + for (let level = maxLevel; level >= 1; --level) { + const nodes = levelTreeNodeMap.get(level); + if (!nodes) continue; + nodes.forEach((node) => { + const children = node.children; + let isEffectivelyChecked = !node.isLeaf || node.disabled || checkedKeySet.has(node.key); + if (children) { + let allChecked = true; + let hasChecked = false; + for (const childNode of children) { + const key = childNode.key; + if (!childNode.isEffectivelyChecked) isEffectivelyChecked = false; + if (checkedKeySet.has(key)) hasChecked = true; + else if (indeterminateKeySet.has(key)) { + allChecked = false; + hasChecked = true; + break; + } else allChecked = false; + } + if (allChecked) checkedKeySet.add(node.key); + else if (hasChecked) { + indeterminateKeySet.add(node.key); + checkedKeySet.delete(node.key); + } else { + checkedKeySet.delete(node.key); + indeterminateKeySet.delete(node.key); + } + } + node.isEffectivelyChecked = isEffectivelyChecked; + }); + } + indeterminateKeys.value = indeterminateKeySet; + }; + const isChecked = (node) => checkedKeys.value.has(node.key); + const isIndeterminate = (node) => indeterminateKeys.value.has(node.key); + const toggleCheckbox = (node, isChecked, nodeClick = true, immediateUpdate = true) => { + const checkedKeySet = checkedKeys.value; + const children = node.children; + if (!props.checkStrictly && nodeClick && children?.length) isChecked = children.some((node) => !node.isEffectivelyChecked); + const toggle = (node, checked) => { + checkedKeySet[checked ? SetOperationEnum.ADD : SetOperationEnum.DELETE](node.key); + const children = node.children; + if (!props.checkStrictly && children) children.forEach((childNode) => { + if (!childNode.disabled || childNode.children) toggle(childNode, checked); + }); + }; + toggle(node, isChecked); + if (immediateUpdate) updateCheckedKeys(); + if (nodeClick) afterNodeCheck(node, isChecked); + }; + const afterNodeCheck = (node, checked) => { + const { checkedNodes, checkedKeys } = getChecked(); + const { halfCheckedNodes, halfCheckedKeys } = getHalfChecked(); + emit(NODE_CHECK, node.data, { + checkedKeys, + checkedNodes, + halfCheckedKeys, + halfCheckedNodes + }); + emit(NODE_CHECK_CHANGE, node.data, checked); + }; + function getCheckedKeys(leafOnly = false) { + return getChecked(leafOnly).checkedKeys; + } + function getCheckedNodes(leafOnly = false) { + return getChecked(leafOnly).checkedNodes; + } + function getHalfCheckedKeys() { + return getHalfChecked().halfCheckedKeys; + } + function getHalfCheckedNodes() { + return getHalfChecked().halfCheckedNodes; + } + function getChecked(leafOnly = false) { + const checkedNodes = []; + const keys = []; + if (tree?.value && props.showCheckbox) { + const { treeNodeMap } = tree.value; + checkedKeys.value.forEach((key) => { + const node = treeNodeMap.get(key); + if (node && (!leafOnly || leafOnly && node.isLeaf)) { + keys.push(key); + checkedNodes.push(node.data); + } + }); + } + return { + checkedKeys: keys, + checkedNodes + }; + } + function getHalfChecked() { + const halfCheckedNodes = []; + const halfCheckedKeys = []; + if (tree?.value && props.showCheckbox) { + const { treeNodeMap } = tree.value; + indeterminateKeys.value.forEach((key) => { + const node = treeNodeMap.get(key); + if (node) { + halfCheckedKeys.push(key); + halfCheckedNodes.push(node.data); + } + }); + } + return { + halfCheckedNodes, + halfCheckedKeys + }; + } + function setCheckedKeys(keys) { + checkedKeys.value.clear(); + indeterminateKeys.value.clear(); + (0, vue.nextTick)(() => { + _setCheckedKeys(keys); + }); + } + function setChecked(key, isChecked) { + if (tree?.value && props.showCheckbox) { + const node = tree.value.treeNodeMap.get(key); + if (node) toggleCheckbox(node, isChecked, false); + } + } + function _setCheckedKeys(keys) { + if (tree?.value) { + const { treeNodeMap } = tree.value; + if (props.showCheckbox && treeNodeMap && keys?.length > 0) { + for (const key of keys) { + const node = treeNodeMap.get(key); + if (node && !isChecked(node)) toggleCheckbox(node, true, false, false); + } + updateCheckedKeys(); + } + } + } + return { + updateCheckedKeys, + toggleCheckbox, + isChecked, + isIndeterminate, + getCheckedKeys, + getCheckedNodes, + getHalfCheckedKeys, + getHalfCheckedNodes, + setChecked, + setCheckedKeys + }; + } + +//#endregion +//#region ../../packages/components/tree-v2/src/composables/useFilter.ts + function useFilter(props, tree) { + const hiddenNodeKeySet = (0, vue.ref)(/* @__PURE__ */ new Set([])); + const hiddenExpandIconKeySet = (0, vue.ref)(/* @__PURE__ */ new Set([])); + const filterable = (0, vue.computed)(() => { + return isFunction$1(props.filterMethod); + }); + function doFilter(query) { + if (!filterable.value) return; + const expandKeySet = /* @__PURE__ */ new Set(); + const hiddenExpandIconKeys = hiddenExpandIconKeySet.value; + const hiddenKeys = hiddenNodeKeySet.value; + const family = []; + const nodes = tree.value?.treeNodes || []; + const filter = props.filterMethod; + hiddenKeys.clear(); + function traverse(nodes) { + nodes.forEach((node) => { + family.push(node); + if (filter?.(query, node.data, node)) family.forEach((member) => { + expandKeySet.add(member.key); + member.expanded = true; + }); + else { + node.expanded = false; + if (node.isLeaf) hiddenKeys.add(node.key); + } + const children = node.children; + if (children) traverse(children); + if (!node.isLeaf) { + if (!expandKeySet.has(node.key)) hiddenKeys.add(node.key); + else if (children) { + let allHidden = true; + for (const childNode of children) if (!hiddenKeys.has(childNode.key)) { + allHidden = false; + break; + } + if (allHidden) hiddenExpandIconKeys.add(node.key); + else hiddenExpandIconKeys.delete(node.key); + } + } + family.pop(); + }); + } + traverse(nodes); + return expandKeySet; + } + function isForceHiddenExpandIcon(node) { + return hiddenExpandIconKeySet.value.has(node.key); + } + return { + hiddenExpandIconKeySet, + hiddenNodeKeySet, + doFilter, + isForceHiddenExpandIcon + }; + } + +//#endregion +//#region ../../packages/components/tree-v2/src/composables/useTree.ts + function useTree(props, emit) { + const expandedKeySet = (0, vue.ref)(/* @__PURE__ */ new Set()); + const currentKey = (0, vue.ref)(); + const tree = (0, vue.shallowRef)(); + const listRef = (0, vue.ref)(); + const { isIndeterminate, isChecked, toggleCheckbox, getCheckedKeys, getCheckedNodes, getHalfCheckedKeys, getHalfCheckedNodes, setChecked, setCheckedKeys } = useCheck(props, tree); + const { doFilter, hiddenNodeKeySet, isForceHiddenExpandIcon } = useFilter(props, tree); + const valueKey = (0, vue.computed)(() => { + return props.props?.value || TreeOptionsEnum.KEY; + }); + const childrenKey = (0, vue.computed)(() => { + return props.props?.children || TreeOptionsEnum.CHILDREN; + }); + const disabledKey = (0, vue.computed)(() => { + return props.props?.disabled || TreeOptionsEnum.DISABLED; + }); + const labelKey = (0, vue.computed)(() => { + return props.props?.label || TreeOptionsEnum.LABEL; + }); + const flattenTree = (0, vue.computed)(() => { + const expandedKeys = expandedKeySet.value; + const hiddenKeys = hiddenNodeKeySet.value; + const flattenNodes = []; + const nodes = tree.value?.treeNodes || []; + const stack = []; + for (let i = nodes.length - 1; i >= 0; --i) stack.push(nodes[i]); + while (stack.length) { + const node = stack.pop(); + if (hiddenKeys.has(node.key)) continue; + flattenNodes.push(node); + if (node.children && expandedKeys.has(node.key)) for (let i = node.children.length - 1; i >= 0; --i) stack.push(node.children[i]); + } + return flattenNodes; + }); + const isNotEmpty = (0, vue.computed)(() => { + return flattenTree.value.length > 0; + }); + function createTree(data) { + const treeNodeMap = /* @__PURE__ */ new Map(); + const levelTreeNodeMap = /* @__PURE__ */ new Map(); + let maxLevel = 1; + function traverse(nodes, level = 1, parent = void 0) { + const siblings = []; + for (const rawNode of nodes) { + const value = getKey(rawNode); + const node = { + level, + key: value, + data: rawNode + }; + node.label = getLabel(rawNode); + node.parent = parent; + const children = getChildren(rawNode); + node.disabled = getDisabled(rawNode); + node.isLeaf = !children || children.length === 0; + node.expanded = expandedKeySet.value.has(value); + if (children && children.length) node.children = traverse(children, level + 1, node); + siblings.push(node); + treeNodeMap.set(value, node); + if (!levelTreeNodeMap.has(level)) levelTreeNodeMap.set(level, []); + levelTreeNodeMap.get(level)?.push(node); + } + if (level > maxLevel) maxLevel = level; + return siblings; + } + const treeNodes = traverse(data); + return { + treeNodeMap, + levelTreeNodeMap, + maxLevel, + treeNodes + }; + } + function filter(query) { + const keys = doFilter(query); + if (keys) expandedKeySet.value = keys; + } + function getChildren(node) { + return node[childrenKey.value]; + } + function getKey(node) { + if (!node) return ""; + return node[valueKey.value]; + } + function getDisabled(node) { + return node[disabledKey.value]; + } + function getLabel(node) { + return node[labelKey.value]; + } + function toggleExpand(node) { + if (expandedKeySet.value.has(node.key)) collapseNode(node); + else expandNode(node); + } + function setExpandedKeys(keys) { + const expandedKeys = /* @__PURE__ */ new Set(); + const nodeMap = tree.value.treeNodeMap; + expandedKeySet.value.forEach((key) => { + const node = nodeMap.get(key); + if (node) node.expanded = false; + }); + keys.forEach((k) => { + let node = nodeMap.get(k); + while (node && !expandedKeys.has(node.key)) { + expandedKeys.add(node.key); + node.expanded = true; + node = node.parent; + } + }); + expandedKeySet.value = expandedKeys; + } + function handleNodeClick(node, e) { + emit(NODE_CLICK, node.data, node, e); + handleCurrentChange(node); + if (props.expandOnClickNode) toggleExpand(node); + if (props.showCheckbox && (props.checkOnClickNode || node.isLeaf && props.checkOnClickLeaf) && !node.disabled) toggleCheckbox(node, !isChecked(node), true); + } + function handleNodeDrop(node, e) { + emit(NODE_DROP, node.data, node, e); + } + function handleCurrentChange(node) { + if (!isCurrent(node)) { + currentKey.value = node.key; + emit(CURRENT_CHANGE, node.data, node); + } + } + function handleNodeCheck(node, checked) { + toggleCheckbox(node, checked); + } + function expandNode(node) { + const keySet = expandedKeySet.value; + if (tree.value && props.accordion) { + const { treeNodeMap } = tree.value; + keySet.forEach((key) => { + const treeNode = treeNodeMap.get(key); + if (node && node.level === treeNode?.level) { + keySet.delete(key); + treeNode.expanded = false; + } + }); + } + keySet.add(node.key); + const _node = getNode(node.key); + if (_node) { + _node.expanded = true; + emit(NODE_EXPAND, _node.data, _node); + } + } + function collapseNode(node) { + expandedKeySet.value.delete(node.key); + const _node = getNode(node.key); + if (_node) { + _node.expanded = false; + emit(NODE_COLLAPSE, _node.data, _node); + } + } + function isDisabled(node) { + return !!node.disabled; + } + function isCurrent(node) { + const current = currentKey.value; + return current !== void 0 && current === node.key; + } + function getCurrentNode() { + if (!currentKey.value) return void 0; + return tree.value?.treeNodeMap.get(currentKey.value)?.data; + } + function getCurrentKey() { + return currentKey.value; + } + function setCurrentKey(key) { + currentKey.value = key; + } + function setData(data) { + tree.value = createTree(data); + } + function getNode(data) { + const key = isObject$1(data) ? getKey(data) : data; + return tree.value?.treeNodeMap.get(key); + } + function scrollToNode(key, strategy = "auto") { + const node = getNode(key); + if (node && listRef.value) listRef.value.scrollToItem(flattenTree.value.indexOf(node), strategy); + } + function scrollTo(offset) { + listRef.value?.scrollTo(offset); + } + (0, vue.watch)(() => props.currentNodeKey, (key) => { + currentKey.value = key; + }, { immediate: true }); + (0, vue.watch)(() => props.defaultExpandedKeys, (keys) => { + setExpandedKeys(keys || []); + }); + (0, vue.watch)(() => props.data, (data) => { + setData(data); + setExpandedKeys(props.defaultExpandedKeys || []); + }, { immediate: true }); + return { + tree, + flattenTree, + isNotEmpty, + listRef, + getKey, + getChildren, + toggleExpand, + toggleCheckbox, + isChecked, + isIndeterminate, + isDisabled, + isCurrent, + isForceHiddenExpandIcon, + handleNodeClick, + handleNodeDrop, + handleNodeCheck, + getCurrentNode, + getCurrentKey, + setCurrentKey, + getCheckedKeys, + getCheckedNodes, + getHalfCheckedKeys, + getHalfCheckedNodes, + setChecked, + setCheckedKeys, + filter, + setData, + getNode, + expandNode, + collapseNode, + setExpandedKeys, + scrollToNode, + scrollTo + }; + } + +//#endregion +//#region ../../packages/components/tree-v2/src/tree-node-content.ts + var tree_node_content_default = (0, vue.defineComponent)({ + name: "ElTreeNodeContent", + props: treeNodeContentProps, + setup(props) { + const tree = (0, vue.inject)(ROOT_TREE_INJECTION_KEY$1); + const ns = useNamespace("tree"); + return () => { + const node = props.node; + const { data } = node; + return tree?.ctx.slots.default ? tree.ctx.slots.default({ + node, + data + }) : (0, vue.h)(ElText, { + tag: "span", + truncated: true, + class: ns.be("node", "label") + }, () => [node?.label]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tree-v2/src/tree-node.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$11 = [ + "aria-expanded", + "aria-disabled", + "aria-checked", + "data-key" + ]; + var tree_node_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTreeNode", + __name: "tree-node", + props: treeNodeProps, + emits: treeNodeEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const tree = (0, vue.inject)(ROOT_TREE_INJECTION_KEY$1); + const ns = useNamespace("tree"); + const indent = (0, vue.computed)(() => tree?.props.indent ?? 16); + const icon = (0, vue.computed)(() => tree?.props.icon ?? caret_right_default); + const getNodeClass = (node) => { + const nodeClassFunc = tree?.props.props?.class; + if (!nodeClassFunc) return {}; + let className; + if (isFunction$1(nodeClassFunc)) { + const { data } = node; + className = nodeClassFunc(data, node); + } else className = nodeClassFunc; + return isString(className) ? { [className]: true } : className; + }; + const handleClick = (e) => { + emit("click", props.node, e); + }; + const handleDrop = (e) => { + emit("drop", props.node, e); + }; + const handleExpandIconClick = () => { + emit("toggle", props.node); + }; + const handleCheckChange = (value) => { + emit("check", props.node, value); + }; + const handleContextMenu = (event) => { + if (tree?.instance?.vnode?.props?.["onNodeContextmenu"]) { + event.stopPropagation(); + event.preventDefault(); + } + tree?.ctx.emit(NODE_CONTEXTMENU, event, props.node?.data, props.node); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref: "node$", + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b("node"), + (0, vue.unref)(ns).is("expanded", __props.expanded), + (0, vue.unref)(ns).is("current", __props.current), + (0, vue.unref)(ns).is("focusable", !__props.disabled), + (0, vue.unref)(ns).is("checked", !__props.disabled && __props.checked), + getNodeClass(__props.node) + ]), + role: "treeitem", + tabindex: "-1", + "aria-expanded": __props.expanded, + "aria-disabled": __props.disabled, + "aria-checked": __props.checked, + "data-key": __props.node?.key, + onClick: (0, vue.withModifiers)(handleClick, ["stop"]), + onContextmenu: handleContextMenu, + onDragover: _cache[1] || (_cache[1] = (0, vue.withModifiers)(() => {}, ["prevent"])), + onDragenter: _cache[2] || (_cache[2] = (0, vue.withModifiers)(() => {}, ["prevent"])), + onDrop: (0, vue.withModifiers)(handleDrop, ["stop"]) + }, [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("node", "content")), + style: (0, vue.normalizeStyle)({ + paddingLeft: `${(__props.node.level - 1) * indent.value}px`, + height: __props.itemSize + "px" + }) + }, [ + icon.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).is("leaf", !!__props.node?.isLeaf), + (0, vue.unref)(ns).is("hidden", __props.hiddenExpandIcon), + { expanded: !__props.node?.isLeaf && __props.expanded }, + (0, vue.unref)(ns).be("node", "expand-icon") + ]), + onClick: (0, vue.withModifiers)(handleExpandIconClick, ["stop"]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(icon.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), + __props.showCheckbox ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElCheckbox), { + key: 1, + "model-value": __props.checked, + indeterminate: __props.indeterminate, + disabled: __props.disabled, + onChange: handleCheckChange, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, null, 8, [ + "model-value", + "indeterminate", + "disabled" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createVNode)((0, vue.unref)(tree_node_content_default), { node: { + ...__props.node, + expanded: __props.expanded + } }, null, 8, ["node"]) + ], 6)], 42, _hoisted_1$11); + }; + } + }); + +//#endregion +//#region ../../packages/components/tree-v2/src/tree-node.vue + var tree_node_default = tree_node_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tree-v2/src/tree.vue?vue&type=script&setup=true&lang.ts + var tree_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTreeV2", + __name: "tree", + props: treeProps$1, + emits: treeEmits$1, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const slots = (0, vue.useSlots)(); + const treeNodeSize = (0, vue.computed)(() => props.itemSize); + (0, vue.provide)(ROOT_TREE_INJECTION_KEY$1, { + ctx: { + emit, + slots + }, + props, + instance: (0, vue.getCurrentInstance)() + }); + (0, vue.provide)(formItemContextKey, void 0); + const { t } = useLocale(); + const ns = useNamespace("tree"); + const { flattenTree, isNotEmpty, listRef, toggleExpand, isIndeterminate, isChecked, isDisabled, isCurrent, isForceHiddenExpandIcon, handleNodeClick, handleNodeDrop, handleNodeCheck, toggleCheckbox, getCurrentNode, getCurrentKey, setCurrentKey, getCheckedKeys, getCheckedNodes, getHalfCheckedKeys, getHalfCheckedNodes, setChecked, setCheckedKeys, filter, setData, getNode, expandNode, collapseNode, setExpandedKeys, scrollToNode, scrollTo } = useTree(props, emit); + __expose({ + toggleCheckbox, + getCurrentNode, + getCurrentKey, + setCurrentKey, + getCheckedKeys, + getCheckedNodes, + getHalfCheckedKeys, + getHalfCheckedNodes, + setChecked, + setCheckedKeys, + filter, + setData, + getNode, + expandNode, + collapseNode, + setExpandedKeys, + scrollToNode, + scrollTo + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), { [(0, vue.unref)(ns).m("highlight-current")]: __props.highlightCurrent }]), + role: "tree" + }, [(0, vue.unref)(isNotEmpty) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(FixedSizeList), { + key: 0, + ref_key: "listRef", + ref: listRef, + "class-name": (0, vue.unref)(ns).b("virtual-list"), + data: (0, vue.unref)(flattenTree), + total: (0, vue.unref)(flattenTree).length, + height: __props.height, + "item-size": treeNodeSize.value, + "perf-mode": __props.perfMode, + "scrollbar-always-on": __props.scrollbarAlwaysOn + }, { + default: (0, vue.withCtx)(({ data, index, style }) => [((0, vue.openBlock)(), (0, vue.createBlock)(tree_node_default, { + key: data[index].key, + style: (0, vue.normalizeStyle)(style), + node: data[index], + expanded: data[index].expanded, + "show-checkbox": __props.showCheckbox, + checked: (0, vue.unref)(isChecked)(data[index]), + indeterminate: (0, vue.unref)(isIndeterminate)(data[index]), + "item-size": treeNodeSize.value, + disabled: (0, vue.unref)(isDisabled)(data[index]), + current: (0, vue.unref)(isCurrent)(data[index]), + "hidden-expand-icon": (0, vue.unref)(isForceHiddenExpandIcon)(data[index]), + onClick: (0, vue.unref)(handleNodeClick), + onToggle: (0, vue.unref)(toggleExpand), + onCheck: (0, vue.unref)(handleNodeCheck), + onDrop: (0, vue.unref)(handleNodeDrop) + }, 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" + ])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("empty-block")) + }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("empty-text")) }, (0, vue.toDisplayString)(__props.emptyText ?? (0, vue.unref)(t)("el.tree.emptyText")), 3)])], 2))], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/tree-v2/src/tree.vue + var tree_default = tree_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tree-v2/index.ts + const ElTreeV2 = withInstall(tree_default); + +//#endregion +//#region ../../packages/components/upload/src/ajax.ts + const SCOPE$3 = "ElUpload"; + var UploadAjaxError = class extends Error { + constructor(message, status, method, url) { + super(message); + this.name = "UploadAjaxError"; + this.status = status; + this.method = method; + this.url = url; + } + }; + function getError(action, option, xhr) { + let msg; + if (xhr.response) msg = `${xhr.response.error || xhr.response}`; + else if (xhr.responseText) msg = `${xhr.responseText}`; + else msg = `fail to ${option.method} ${action} ${xhr.status}`; + return new UploadAjaxError(msg, xhr.status, option.method, action); + } + function getBody(xhr) { + const text = xhr.responseText || xhr.response; + if (!text) return text; + try { + return JSON.parse(text); + } catch { + return text; + } + } + const ajaxUpload = (option) => { + if (typeof XMLHttpRequest === "undefined") throwError(SCOPE$3, "XMLHttpRequest is undefined"); + const xhr = new XMLHttpRequest(); + const action = option.action; + if (xhr.upload) xhr.upload.addEventListener("progress", (evt) => { + const progressEvt = evt; + progressEvt.percent = evt.total > 0 ? evt.loaded / evt.total * 100 : 0; + option.onProgress(progressEvt); + }); + const formData = new FormData(); + if (option.data) for (const [key, value] of Object.entries(option.data)) if (isArray$1(value)) if (value.length === 2 && value[0] instanceof Blob && isString(value[1])) formData.append(key, value[0], value[1]); + else value.forEach((item) => { + formData.append(key, item); + }); + else formData.append(key, value); + formData.append(option.filename, option.file, option.file.name); + xhr.addEventListener("error", () => { + option.onError(getError(action, option, xhr)); + }); + xhr.addEventListener("load", () => { + if (xhr.status < 200 || xhr.status >= 300) return option.onError(getError(action, option, xhr)); + option.onSuccess(getBody(xhr)); + }); + xhr.open(option.method, action, true); + if (option.withCredentials && "withCredentials" in xhr) xhr.withCredentials = true; + const headers = option.headers || {}; + if (headers instanceof Headers) headers.forEach((value, key) => xhr.setRequestHeader(key, value)); + else for (const [key, value] of Object.entries(headers)) { + if (isNil(value)) continue; + xhr.setRequestHeader(key, String(value)); + } + xhr.send(formData); + return xhr; + }; + +//#endregion +//#region ../../packages/components/upload/src/upload.ts +/** + * @deprecated Removed after 3.0.0, Use `UploadProps` instead. + */ + const uploadListTypes = [ + "text", + "picture", + "picture-card" + ]; + let fileId = 1; + const genFileId = () => Date.now() + fileId++; + /** + * @deprecated Removed after 3.0.0, Use `UploadBaseProps` instead. + */ + const uploadBaseProps = buildProps({ + action: { + type: String, + default: "#" + }, + headers: { type: definePropType(Object) }, + method: { + type: String, + default: "post" + }, + data: { + type: definePropType([ + Object, + Function, + Promise + ]), + default: () => mutable({}) + }, + multiple: Boolean, + name: { + type: String, + default: "file" + }, + drag: Boolean, + withCredentials: Boolean, + showFileList: { + type: Boolean, + default: true + }, + accept: { + type: String, + default: "" + }, + fileList: { + type: definePropType(Array), + default: () => mutable([]) + }, + autoUpload: { + type: Boolean, + default: true + }, + listType: { + type: String, + values: uploadListTypes, + default: "text" + }, + httpRequest: { + type: definePropType(Function), + default: ajaxUpload + }, + disabled: { + type: Boolean, + default: void 0 + }, + limit: Number, + directory: Boolean + }); + /** + * @deprecated Removed after 3.0.0, Use `UploadProps` instead. + */ + const uploadProps = buildProps({ + ...uploadBaseProps, + beforeUpload: { + type: definePropType(Function), + default: NOOP + }, + beforeRemove: { type: definePropType(Function) }, + onRemove: { + type: definePropType(Function), + default: NOOP + }, + onChange: { + type: definePropType(Function), + default: NOOP + }, + onPreview: { + type: definePropType(Function), + default: NOOP + }, + onSuccess: { + type: definePropType(Function), + default: NOOP + }, + onProgress: { + type: definePropType(Function), + default: NOOP + }, + onError: { + type: definePropType(Function), + default: NOOP + }, + onExceed: { + type: definePropType(Function), + default: NOOP + }, + crossorigin: { type: definePropType(String) } + }); + const uploadBasePropsDefaults = { + action: "#", + method: "post", + data: () => mutable({}), + name: "file", + showFileList: true, + accept: "", + fileList: () => mutable([]), + autoUpload: true, + listType: "text", + httpRequest: ajaxUpload, + disabled: void 0 + }; + const uploadPropsDefaults = { + ...uploadBasePropsDefaults, + beforeUpload: NOOP, + onRemove: NOOP, + onChange: NOOP, + onPreview: NOOP, + onSuccess: NOOP, + onProgress: NOOP, + onError: NOOP, + onExceed: NOOP + }; + +//#endregion +//#region ../../packages/components/upload/src/constants.ts + const uploadContextKey = Symbol("uploadContextKey"); + +//#endregion +//#region ../../packages/components/upload/src/upload-list.ts +/** + * @deprecated Removed after 3.0.0, Use `UploadListProps` instead. + */ + const uploadListProps = buildProps({ + files: { + type: definePropType(Array), + default: () => mutable([]) + }, + disabled: { + type: Boolean, + default: void 0 + }, + handlePreview: { + type: definePropType(Function), + default: NOOP + }, + listType: { + type: String, + values: uploadListTypes, + default: "text" + }, + crossorigin: { type: definePropType(String) } + }); + const uploadListEmits = { remove: (file) => !!file }; + +//#endregion +//#region ../../packages/components/upload/src/upload-list.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$10 = [ + "tabindex", + "aria-disabled", + "onKeydown" + ]; + const _hoisted_2$6 = ["src", "crossorigin"]; + const _hoisted_3$2 = ["onClick"]; + const _hoisted_4$1 = ["title"]; + const _hoisted_5 = ["onClick"]; + const _hoisted_6 = ["onClick"]; + var upload_list_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElUploadList", + __name: "upload-list", + props: uploadListProps, + emits: uploadListEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const { t } = useLocale(); + const nsUpload = useNamespace("upload"); + const nsIcon = useNamespace("icon"); + const nsList = useNamespace("list"); + const disabled = useFormDisabled(); + const focusing = (0, vue.ref)(false); + const containerKls = (0, vue.computed)(() => [ + nsUpload.b("list"), + nsUpload.bm("list", props.listType), + nsUpload.is("disabled", disabled.value) + ]); + const handleRemove = (file) => { + emit("remove", file); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.TransitionGroup, { + tag: "ul", + class: (0, vue.normalizeClass)(containerKls.value), + name: (0, vue.unref)(nsList).b() + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.files, (file, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: file.uid || file.name, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(nsUpload).be("list", "item"), + (0, vue.unref)(nsUpload).is(file.status), + { focusing: focusing.value } + ]), + tabindex: (0, vue.unref)(disabled) ? void 0 : 0, + "aria-disabled": (0, vue.unref)(disabled), + role: "button", + onKeydown: (0, vue.withKeys)(($event) => !(0, vue.unref)(disabled) && handleRemove(file), ["delete"]), + onFocus: _cache[0] || (_cache[0] = ($event) => focusing.value = true), + onBlur: _cache[1] || (_cache[1] = ($event) => focusing.value = false), + onClick: _cache[2] || (_cache[2] = ($event) => focusing.value = false) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", { + file, + index + }, () => [ + __props.listType === "picture" || file.status !== "uploading" && __props.listType === "picture-card" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("img", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-thumbnail")), + src: file.url, + crossorigin: __props.crossorigin, + alt: "" + }, null, 10, _hoisted_2$6)) : (0, vue.createCommentVNode)("v-if", true), + file.status === "uploading" || __props.listType !== "picture-card" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-info")) + }, [(0, vue.createElementVNode)("a", { + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-name")), + onClick: (0, vue.withModifiers)(($event) => __props.handlePreview(file), ["prevent"]) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(nsIcon).m("document")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(document_default))]), + _: 1 + }, 8, ["class"]), (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-file-name")), + title: file.name + }, (0, vue.toDisplayString)(file.name), 11, _hoisted_4$1)], 10, _hoisted_3$2), file.status === "uploading" ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElProgress), { + key: 0, + type: __props.listType === "picture-card" ? "circle" : "line", + "stroke-width": __props.listType === "picture-card" ? 6 : 2, + percentage: Number(file.percentage), + style: (0, vue.normalizeStyle)(__props.listType === "picture-card" ? "" : "margin-top: 0.5rem") + }, null, 8, [ + "type", + "stroke-width", + "percentage", + "style" + ])) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("label", { class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-status-label")) }, [__props.listType === "text" ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsIcon).m("upload-success"), (0, vue.unref)(nsIcon).m("circle-check")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(circle_check_default))]), + _: 1 + }, 8, ["class"])) : ["picture-card", "picture"].includes(__props.listType) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsIcon).m("upload-success"), (0, vue.unref)(nsIcon).m("check")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(check_default))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)], 2), + !(0, vue.unref)(disabled) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(nsIcon).m("close")), + "aria-label": (0, vue.unref)(t)("el.upload.delete"), + role: "button", + tabindex: "0", + onClick: ($event) => handleRemove(file), + onKeydown: (0, vue.withKeys)((0, vue.withModifiers)(($event) => handleRemove(file), ["prevent"]), ["enter", "space"]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + }, 8, [ + "class", + "aria-label", + "onClick", + "onKeydown" + ])) : (0, vue.createCommentVNode)("v-if", true), + !(0, vue.unref)(disabled) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("i", { + key: 3, + class: (0, vue.normalizeClass)((0, vue.unref)(nsIcon).m("close-tip")) + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.upload.deleteTip")), 3)) : (0, vue.createCommentVNode)("v-if", true), + __props.listType === "picture-card" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 4, + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-actions")) + }, [(0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-preview")), + onClick: ($event) => __props.handlePreview(file) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(nsIcon).m("zoom-in")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(zoom_in_default))]), + _: 1 + }, 8, ["class"])], 10, _hoisted_5), !(0, vue.unref)(disabled) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-delete")), + onClick: ($event) => handleRemove(file) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(nsIcon).m("delete")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(delete_default))]), + _: 1 + }, 8, ["class"])], 10, _hoisted_6)) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true) + ])], 42, _hoisted_1$10); + }), 128)), (0, vue.renderSlot)(_ctx.$slots, "append")]), + _: 3 + }, 8, ["class", "name"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/upload/src/upload-list.vue + var upload_list_default = upload_list_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/upload/src/upload-content.ts +/** + * @deprecated Removed after 3.0.0, Use `UploadContentProps` instead. + */ + const uploadContentProps = buildProps({ + ...uploadBaseProps, + beforeUpload: { + type: definePropType(Function), + default: NOOP + }, + onRemove: { + type: definePropType(Function), + default: NOOP + }, + onStart: { + type: definePropType(Function), + default: NOOP + }, + onSuccess: { + type: definePropType(Function), + default: NOOP + }, + onProgress: { + type: definePropType(Function), + default: NOOP + }, + onError: { + type: definePropType(Function), + default: NOOP + }, + onExceed: { + type: definePropType(Function), + default: NOOP + } + }); + const uploadContentPropsDefaults = { + ...uploadBasePropsDefaults, + beforeUpload: NOOP, + onRemove: NOOP, + onStart: NOOP, + onSuccess: NOOP, + onProgress: NOOP, + onError: NOOP, + onExceed: NOOP + }; + +//#endregion +//#region ../../packages/components/upload/src/upload-dragger.ts +/** + * @deprecated Removed after 3.0.0, Use `UploadDraggerProps` instead. + */ + const uploadDraggerProps = buildProps({ + disabled: { + type: Boolean, + default: void 0 + }, + directory: Boolean + }); + const uploadDraggerEmits = { file: (file) => isArray$1(file) }; + +//#endregion +//#region ../../packages/components/upload/src/upload-dragger.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$1 = "ElUploadDrag"; + var upload_dragger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$1, + __name: "upload-dragger", + props: uploadDraggerProps, + emits: uploadDraggerEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + if (!(0, vue.inject)(uploadContextKey)) throwError(COMPONENT_NAME$1, "usage: "); + const ns = useNamespace("upload"); + const dragover = (0, vue.ref)(false); + const disabled = useFormDisabled(); + const getFile = (entry) => { + return new Promise((resolve, reject) => entry.file(resolve, reject)); + }; + const getAllFiles = async (entry) => { + try { + if (entry.isFile) { + const file = await getFile(entry); + file.isDirectory = false; + return [file]; + } + if (entry.isDirectory) { + const dirReader = entry.createReader(); + const getEntries = () => { + return new Promise((resolve, reject) => dirReader.readEntries(resolve, reject)); + }; + const entries = []; + let readEntries = await getEntries(); + /** + * In Chromium-based browsers, readEntries() will only return the first 100 FileSystemEntry instances. + * https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries#:~:text=In%20Chromium%2Dbased%20browsers%2C%20readEntries()%20will%20only%20return%20the%20first%20100%20FileSystemEntry%20instances.%20In%20order%20to%20obtain%20all%20of%20the%20instances%2C%20readEntries()%20must%20be%20called%20multiple%20times. + */ + while (readEntries.length > 0) { + entries.push(...readEntries); + readEntries = await getEntries(); + } + const filePromises = entries.map((entry) => getAllFiles(entry).catch(() => [])); + return flatten(await Promise.all(filePromises)); + } + } catch { + return []; + } + return []; + }; + const onDrop = async (e) => { + if (disabled.value) return; + dragover.value = false; + e.stopPropagation(); + const files = Array.from(e.dataTransfer.files); + const items = e.dataTransfer.items || []; + if (props.directory) { + const entries = Array.from(items).map((item) => item?.webkitGetAsEntry?.()).filter((entry) => entry); + emit("file", flatten(await Promise.all(entries.map(getAllFiles)))); + return; + } + files.forEach((file, index) => { + const entry = items[index]?.webkitGetAsEntry?.(); + if (entry) file.isDirectory = entry.isDirectory; + }); + emit("file", files); + }; + const onDragover = () => { + if (!disabled.value) dragover.value = true; + }; + const onDragleave = (e) => { + if (!e.currentTarget.contains(e.relatedTarget)) dragover.value = false; + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("dragger"), (0, vue.unref)(ns).is("dragover", dragover.value)]), + onDrop: (0, vue.withModifiers)(onDrop, ["prevent"]), + onDragover: (0, vue.withModifiers)(onDragover, ["prevent"]), + onDragleave: (0, vue.withModifiers)(onDragleave, ["prevent"]) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 34); + }; + } + }); + +//#endregion +//#region ../../packages/components/upload/src/upload-dragger.vue + var upload_dragger_default = upload_dragger_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/upload/src/upload-content.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$9 = [ + "tabindex", + "aria-disabled", + "onKeydown" + ]; + const _hoisted_2$5 = [ + "name", + "disabled", + "multiple", + "accept", + "webkitdirectory" + ]; + var upload_content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElUploadContent", + inheritAttrs: false, + __name: "upload-content", + props: uploadContentProps, + setup(__props, { expose: __expose }) { + const props = __props; + const ns = useNamespace("upload"); + const disabled = useFormDisabled(); + const requests = (0, vue.shallowRef)({}); + const inputRef = (0, vue.shallowRef)(); + const uploadFiles = (files) => { + if (files.length === 0) return; + const { autoUpload, limit, fileList, multiple, onStart, onExceed } = props; + if (limit && fileList.length + files.length > limit) { + onExceed(files, fileList); + return; + } + if (!multiple) files = files.slice(0, 1); + for (const file of files) { + const rawFile = file; + rawFile.uid = genFileId(); + onStart(rawFile); + if (autoUpload) upload(rawFile); + } + }; + const upload = async (rawFile) => { + inputRef.value.value = ""; + if (!props.beforeUpload) return doUpload(rawFile); + let hookResult; + let beforeData = {}; + try { + const originData = props.data; + const beforeUploadPromise = props.beforeUpload(rawFile); + beforeData = isPlainObject$1(props.data) ? cloneDeep(props.data) : props.data; + hookResult = await beforeUploadPromise; + if (isPlainObject$1(props.data) && isEqual$1(originData, beforeData)) beforeData = cloneDeep(props.data); + } catch { + hookResult = false; + } + if (hookResult === false) { + props.onRemove(rawFile); + return; + } + let file = rawFile; + if (hookResult instanceof Blob) if (hookResult instanceof File) file = hookResult; + else file = new File([hookResult], rawFile.name, { type: rawFile.type }); + doUpload(Object.assign(file, { uid: rawFile.uid }), beforeData); + }; + const resolveData = async (data, rawFile) => { + if (isFunction$1(data)) return data(rawFile); + return data; + }; + const doUpload = async (rawFile, beforeData) => { + const { headers, data, method, withCredentials, name: filename, action, onProgress, onSuccess, onError, httpRequest } = props; + try { + beforeData = await resolveData(beforeData ?? data, rawFile); + } catch { + props.onRemove(rawFile); + return; + } + const { uid } = rawFile; + const options = { + headers: headers || {}, + withCredentials, + file: rawFile, + data: beforeData, + method, + filename, + action, + onProgress: (evt) => { + onProgress(evt, rawFile); + }, + onSuccess: (res) => { + onSuccess(res, rawFile); + delete requests.value[uid]; + }, + onError: (err) => { + onError(err, rawFile); + delete requests.value[uid]; + } + }; + const request = httpRequest(options); + requests.value[uid] = request; + if (request instanceof Promise) request.then(options.onSuccess, options.onError); + }; + const handleChange = (e) => { + const files = e.target.files; + if (!files) return; + uploadFiles(Array.from(files)); + }; + const handleClick = () => { + if (!disabled.value) { + inputRef.value.value = ""; + inputRef.value.click(); + } + }; + const handleKeydown = () => { + handleClick(); + }; + const abort = (file) => { + entriesOf(requests.value).filter(file ? ([uid]) => String(file.uid) === uid : () => true).forEach(([uid, req]) => { + if (req instanceof XMLHttpRequest) req.abort(); + delete requests.value[uid]; + }); + }; + __expose({ + abort, + upload + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).m(__props.listType), + (0, vue.unref)(ns).is("drag", __props.drag), + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(disabled)) + ]), + tabindex: (0, vue.unref)(disabled) ? void 0 : 0, + "aria-disabled": (0, vue.unref)(disabled), + role: "button", + onClick: handleClick, + onKeydown: (0, vue.withKeys)((0, vue.withModifiers)(handleKeydown, ["self"]), ["enter", "space"]) + }, [__props.drag ? ((0, vue.openBlock)(), (0, vue.createBlock)(upload_dragger_default, { + key: 0, + disabled: (0, vue.unref)(disabled), + directory: __props.directory, + onFile: uploadFiles + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["disabled", "directory"])) : (0, vue.renderSlot)(_ctx.$slots, "default", { key: 1 }), (0, vue.createElementVNode)("input", { + ref_key: "inputRef", + ref: inputRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("input")), + name: __props.name, + disabled: (0, vue.unref)(disabled), + multiple: __props.multiple, + accept: __props.accept, + webkitdirectory: __props.directory || void 0, + type: "file", + onChange: handleChange, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, null, 42, _hoisted_2$5)], 42, _hoisted_1$9); + }; + } + }); + +//#endregion +//#region ../../packages/components/upload/src/upload-content.vue + var upload_content_default = upload_content_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/upload/src/use-handlers.ts + const SCOPE$2 = "ElUpload"; + const revokeFileObjectURL = (file) => { + if (file.url?.startsWith("blob:")) URL.revokeObjectURL(file.url); + }; + const useHandlers = (props, uploadRef) => { + const uploadFiles = useVModel(props, "fileList", void 0, { passive: true }); + const getFile = (rawFile) => uploadFiles.value.find((file) => file.uid === rawFile.uid); + function abort(file) { + uploadRef.value?.abort(file); + } + function clearFiles(states = [ + "ready", + "uploading", + "success", + "fail" + ]) { + uploadFiles.value = uploadFiles.value.filter((row) => !states.includes(row.status)); + } + function removeFile(file) { + uploadFiles.value = uploadFiles.value.filter((uploadFile) => uploadFile.uid !== file.uid); + } + const emitChange = (file) => { + (0, vue.nextTick)(() => props.onChange(file, uploadFiles.value)); + }; + const handleError = (err, rawFile) => { + const file = getFile(rawFile); + if (!file) return; + console.error(err); + file.status = "fail"; + removeFile(file); + props.onError(err, file, uploadFiles.value); + emitChange(file); + }; + const handleProgress = (evt, rawFile) => { + const file = getFile(rawFile); + if (!file) return; + props.onProgress(evt, file, uploadFiles.value); + file.status = "uploading"; + file.percentage = Math.round(evt.percent); + }; + const handleSuccess = (response, rawFile) => { + const file = getFile(rawFile); + if (!file) return; + file.status = "success"; + file.response = response; + props.onSuccess(response, file, uploadFiles.value); + emitChange(file); + }; + const handleStart = (file) => { + if (isNil(file.uid)) file.uid = genFileId(); + const uploadFile = { + name: file.name, + percentage: 0, + status: "ready", + size: file.size, + raw: file, + uid: file.uid + }; + if (props.listType === "picture-card" || props.listType === "picture") try { + uploadFile.url = URL.createObjectURL(file); + } catch (err) { + /* @__PURE__ */ debugWarn(SCOPE$2, err.message); + props.onError(err, uploadFile, uploadFiles.value); + } + uploadFiles.value = [...uploadFiles.value, uploadFile]; + emitChange(uploadFile); + }; + const handleRemove = async (file) => { + const uploadFile = file instanceof File ? getFile(file) : file; + if (!uploadFile) throwError(SCOPE$2, "file to be removed not found"); + const doRemove = (file) => { + abort(file); + removeFile(file); + props.onRemove(file, uploadFiles.value); + revokeFileObjectURL(file); + }; + if (props.beforeRemove) { + if (await props.beforeRemove(uploadFile, uploadFiles.value) !== false) doRemove(uploadFile); + } else doRemove(uploadFile); + }; + function submit() { + uploadFiles.value.filter(({ status }) => status === "ready").forEach(({ raw }) => raw && uploadRef.value?.upload(raw)); + } + (0, vue.watch)(() => props.listType, (val) => { + if (val !== "picture-card" && val !== "picture") return; + uploadFiles.value = uploadFiles.value.map((file) => { + const { raw, url } = file; + if (!url && raw) try { + file.url = URL.createObjectURL(raw); + } catch (err) { + props.onError(err, file, uploadFiles.value); + } + return file; + }); + }); + (0, vue.watch)(uploadFiles, (files) => { + for (const file of files) { + file.uid ||= genFileId(); + file.status ||= "success"; + } + }, { + immediate: true, + deep: true + }); + return { + uploadFiles, + abort, + clearFiles, + handleError, + handleProgress, + handleStart, + handleSuccess, + handleRemove, + submit, + revokeFileObjectURL + }; + }; + +//#endregion +//#region ../../packages/components/upload/src/upload.vue?vue&type=script&setup=true&lang.ts + var upload_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElUpload", + __name: "upload", + props: uploadProps, + setup(__props, { expose: __expose }) { + const props = __props; + const disabled = useFormDisabled(); + const uploadRef = (0, vue.shallowRef)(); + const { abort, submit, clearFiles, uploadFiles, handleStart, handleError, handleRemove, handleSuccess, handleProgress, revokeFileObjectURL } = useHandlers(props, uploadRef); + const isPictureCard = (0, vue.computed)(() => props.listType === "picture-card"); + const uploadContentProps = (0, vue.computed)(() => ({ + ...props, + fileList: uploadFiles.value, + onStart: handleStart, + onProgress: handleProgress, + onSuccess: handleSuccess, + onError: handleError, + onRemove: handleRemove + })); + (0, vue.onBeforeUnmount)(() => { + uploadFiles.value.forEach(revokeFileObjectURL); + }); + (0, vue.provide)(uploadContextKey, { accept: (0, vue.toRef)(props, "accept") }); + __expose({ + abort, + submit, + clearFiles, + handleStart, + handleRemove + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", null, [ + isPictureCard.value && __props.showFileList ? ((0, vue.openBlock)(), (0, vue.createBlock)(upload_list_default, { + key: 0, + disabled: (0, vue.unref)(disabled), + "list-type": __props.listType, + files: (0, vue.unref)(uploadFiles), + crossorigin: __props.crossorigin, + "handle-preview": __props.onPreview, + onRemove: (0, vue.unref)(handleRemove) + }, (0, vue.createSlots)({ + append: (0, vue.withCtx)(() => [(0, vue.createVNode)(upload_content_default, (0, vue.mergeProps)({ + ref_key: "uploadRef", + ref: uploadRef + }, uploadContentProps.value), { + default: (0, vue.withCtx)(() => [_ctx.$slots.trigger ? (0, vue.renderSlot)(_ctx.$slots, "trigger", { key: 0 }) : (0, vue.createCommentVNode)("v-if", true), !_ctx.$slots.trigger && _ctx.$slots.default ? (0, vue.renderSlot)(_ctx.$slots, "default", { key: 1 }) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 16)]), + _: 2 + }, [_ctx.$slots.file ? { + name: "default", + fn: (0, vue.withCtx)(({ file, index }) => [(0, vue.renderSlot)(_ctx.$slots, "file", { + file, + index + })]), + key: "0" + } : void 0]), 1032, [ + "disabled", + "list-type", + "files", + "crossorigin", + "handle-preview", + "onRemove" + ])) : (0, vue.createCommentVNode)("v-if", true), + !isPictureCard.value || isPictureCard.value && !__props.showFileList ? ((0, vue.openBlock)(), (0, vue.createBlock)(upload_content_default, (0, vue.mergeProps)({ + key: 1, + ref_key: "uploadRef", + ref: uploadRef + }, uploadContentProps.value), { + default: (0, vue.withCtx)(() => [_ctx.$slots.trigger ? (0, vue.renderSlot)(_ctx.$slots, "trigger", { key: 0 }) : (0, vue.createCommentVNode)("v-if", true), !_ctx.$slots.trigger && _ctx.$slots.default ? (0, vue.renderSlot)(_ctx.$slots, "default", { key: 1 }) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 16)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.trigger ? (0, vue.renderSlot)(_ctx.$slots, "default", { key: 2 }) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.renderSlot)(_ctx.$slots, "tip"), + !isPictureCard.value && __props.showFileList ? ((0, vue.openBlock)(), (0, vue.createBlock)(upload_list_default, { + key: 3, + disabled: (0, vue.unref)(disabled), + "list-type": __props.listType, + files: (0, vue.unref)(uploadFiles), + crossorigin: __props.crossorigin, + "handle-preview": __props.onPreview, + onRemove: (0, vue.unref)(handleRemove) + }, (0, vue.createSlots)({ _: 2 }, [_ctx.$slots.file ? { + name: "default", + fn: (0, vue.withCtx)(({ file, index }) => [(0, vue.renderSlot)(_ctx.$slots, "file", { + file, + index + })]), + key: "0" + } : void 0]), 1032, [ + "disabled", + "list-type", + "files", + "crossorigin", + "handle-preview", + "onRemove" + ])) : (0, vue.createCommentVNode)("v-if", true) + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/upload/src/upload.vue + var upload_default = upload_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/upload/index.ts + const ElUpload = withInstall(upload_default); + +//#endregion +//#region ../../packages/components/watermark/src/watermark.ts +/** + * @deprecated Removed after 3.0.0, Use `WatermarkProps` instead. + */ + const watermarkProps = buildProps({ + zIndex: { + type: Number, + default: 9 + }, + rotate: { + type: Number, + default: -22 + }, + width: Number, + height: Number, + image: String, + content: { + type: definePropType([String, Array]), + default: "Element Plus" + }, + font: { type: definePropType(Object) }, + gap: { + type: definePropType(Array), + default: () => [100, 100] + }, + offset: { type: definePropType(Array) } + }); + +//#endregion +//#region ../../packages/components/watermark/src/utils.ts +/** converting camel-cased strings to be lowercase and link it with Separator */ + function toLowercaseSeparator(key) { + return key.replace(/([A-Z])/g, "-$1").toLowerCase(); + } + function getStyleStr(style) { + return Object.keys(style).map((key) => `${toLowercaseSeparator(key)}: ${style[key]};`).join(" "); + } + /** Returns the ratio of the device's physical pixel resolution to the css pixel resolution */ + function getPixelRatio() { + return window.devicePixelRatio || 1; + } + /** Whether to re-render the watermark */ + const reRendering = (mutation, watermarkElement) => { + let flag = false; + if (mutation.removedNodes.length && watermarkElement) flag = Array.from(mutation.removedNodes).includes(watermarkElement); + if (mutation.type === "attributes" && mutation.target === watermarkElement) flag = true; + return flag; + }; + +//#endregion +//#region ../../packages/components/watermark/src/useClips.ts + const TEXT_ALIGN_RATIO_MAP = { + left: [0, .5], + start: [0, .5], + center: [.5, 0], + right: [1, -.5], + end: [1, -.5] + }; + function prepareCanvas(width, height, ratio = 1) { + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d"); + const realWidth = width * ratio; + const realHeight = height * ratio; + canvas.setAttribute("width", `${realWidth}px`); + canvas.setAttribute("height", `${realHeight}px`); + ctx.save(); + return [ + ctx, + canvas, + realWidth, + realHeight + ]; + } + /** + * Get the clips of text content. + * This is a lazy hook function since SSR no need this + */ + function useClips() { + function getClips(content, rotate, ratio, width, height, font, gapX, gapY, space) { + const [ctx, canvas, contentWidth, contentHeight] = prepareCanvas(width, height, ratio); + let baselineOffset = 0; + if (content instanceof HTMLImageElement) ctx.drawImage(content, 0, 0, contentWidth, contentHeight); + else { + const { color, fontSize, fontStyle, fontWeight, fontFamily, textAlign, textBaseline } = font; + const mergedFontSize = Number(fontSize) * ratio; + ctx.font = `${fontStyle} normal ${fontWeight} ${mergedFontSize}px/${height}px ${fontFamily}`; + ctx.fillStyle = color; + ctx.textAlign = textAlign; + ctx.textBaseline = textBaseline; + const contents = isArray$1(content) ? content : [content]; + if (textBaseline !== "top" && contents[0]) { + const argumentMetrics = ctx.measureText(contents[0]); + ctx.textBaseline = "top"; + const topMetrics = ctx.measureText(contents[0]); + baselineOffset = argumentMetrics.actualBoundingBoxAscent - topMetrics.actualBoundingBoxAscent; + } + contents?.forEach((item, index) => { + const [alignRatio, spaceRatio] = TEXT_ALIGN_RATIO_MAP[textAlign]; + ctx.fillText(item ?? "", contentWidth * alignRatio + space * spaceRatio, index * (mergedFontSize + font.fontGap * ratio)); + }); + } + const angle = Math.PI / 180 * Number(rotate); + const maxSize = Math.max(width, height); + const [rCtx, rCanvas, realMaxSize] = prepareCanvas(maxSize, maxSize, ratio); + rCtx.translate(realMaxSize / 2, realMaxSize / 2); + rCtx.rotate(angle); + if (contentWidth > 0 && contentHeight > 0) rCtx.drawImage(canvas, -contentWidth / 2, -contentHeight / 2); + function getRotatePos(x, y) { + return [x * Math.cos(angle) - y * Math.sin(angle), x * Math.sin(angle) + y * Math.cos(angle)]; + } + let left = 0; + let right = 0; + let top = 0; + let bottom = 0; + const halfWidth = contentWidth / 2; + const halfHeight = contentHeight / 2; + [ + [0 - halfWidth, 0 - halfHeight], + [0 + halfWidth, 0 - halfHeight], + [0 + halfWidth, 0 + halfHeight], + [0 - halfWidth, 0 + halfHeight] + ].forEach(([x, y]) => { + const [targetX, targetY] = getRotatePos(x, y); + left = Math.min(left, targetX); + right = Math.max(right, targetX); + top = Math.min(top, targetY); + bottom = Math.max(bottom, targetY); + }); + const cutLeft = left + realMaxSize / 2; + const cutTop = top + realMaxSize / 2; + const cutWidth = right - left; + const cutHeight = bottom - top; + const realGapX = gapX * ratio; + const realGapY = gapY * ratio; + const filledWidth = (cutWidth + realGapX) * 2; + const filledHeight = cutHeight + realGapY; + const [fCtx, fCanvas] = prepareCanvas(filledWidth, filledHeight); + function drawImg(targetX = 0, targetY = 0) { + fCtx.drawImage(rCanvas, cutLeft, cutTop, cutWidth, cutHeight, targetX, targetY + baselineOffset, cutWidth, cutHeight); + } + drawImg(); + drawImg(cutWidth + realGapX, -cutHeight / 2 - realGapY / 2); + drawImg(cutWidth + realGapX, +cutHeight / 2 + realGapY / 2); + return [ + fCanvas.toDataURL(), + filledWidth / ratio, + filledHeight / ratio + ]; + } + return getClips; + } + +//#endregion +//#region ../../packages/components/watermark/src/watermark.vue?vue&type=script&setup=true&lang.ts + var watermark_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElWatermark", + __name: "watermark", + props: watermarkProps, + setup(__props) { + const style = { position: "relative" }; + const props = __props; + const fontGap = (0, vue.computed)(() => props.font?.fontGap ?? 3); + const color = (0, vue.computed)(() => props.font?.color ?? "rgba(0,0,0,.15)"); + const fontSize = (0, vue.computed)(() => props.font?.fontSize ?? 16); + const fontWeight = (0, vue.computed)(() => props.font?.fontWeight ?? "normal"); + const fontStyle = (0, vue.computed)(() => props.font?.fontStyle ?? "normal"); + const fontFamily = (0, vue.computed)(() => props.font?.fontFamily ?? "sans-serif"); + const textAlign = (0, vue.computed)(() => props.font?.textAlign ?? "center"); + const textBaseline = (0, vue.computed)(() => props.font?.textBaseline ?? "hanging"); + const gapX = (0, vue.computed)(() => props.gap[0]); + const gapY = (0, vue.computed)(() => props.gap[1]); + const gapXCenter = (0, vue.computed)(() => gapX.value / 2); + const gapYCenter = (0, vue.computed)(() => gapY.value / 2); + const offsetLeft = (0, vue.computed)(() => props.offset?.[0] ?? gapXCenter.value); + const offsetTop = (0, vue.computed)(() => props.offset?.[1] ?? gapYCenter.value); + const getMarkStyle = () => { + const markStyle = { + zIndex: props.zIndex, + position: "absolute", + left: 0, + top: 0, + width: "100%", + height: "100%", + pointerEvents: "none", + backgroundRepeat: "repeat" + }; + /** Calculate the style of the offset */ + let positionLeft = offsetLeft.value - gapXCenter.value; + let positionTop = offsetTop.value - gapYCenter.value; + if (positionLeft > 0) { + markStyle.left = `${positionLeft}px`; + markStyle.width = `calc(100% - ${positionLeft}px)`; + positionLeft = 0; + } + if (positionTop > 0) { + markStyle.top = `${positionTop}px`; + markStyle.height = `calc(100% - ${positionTop}px)`; + positionTop = 0; + } + markStyle.backgroundPosition = `${positionLeft}px ${positionTop}px`; + return markStyle; + }; + const containerRef = (0, vue.shallowRef)(null); + const watermarkRef = (0, vue.shallowRef)(); + const stopObservation = (0, vue.ref)(false); + const destroyWatermark = () => { + if (watermarkRef.value) { + watermarkRef.value.remove(); + watermarkRef.value = void 0; + } + }; + const appendWatermark = (base64Url, markWidth) => { + if (containerRef.value && watermarkRef.value) { + stopObservation.value = true; + watermarkRef.value.setAttribute("style", getStyleStr({ + ...getMarkStyle(), + backgroundImage: `url('${base64Url}')`, + backgroundSize: `${Math.floor(markWidth)}px` + })); + containerRef.value?.append(watermarkRef.value); + setTimeout(() => { + stopObservation.value = false; + }); + } + }; + /** + * Get the width and height of the watermark. The default values are as follows + * Image: [120, 64]; Content: It's calculated by content; + */ + const getMarkSize = (ctx) => { + let defaultWidth = 120; + let defaultHeight = 64; + let space = 0; + const { image, content, width, height, rotate } = props; + if (!image && ctx.measureText) { + ctx.font = `${Number(fontSize.value)}px ${fontFamily.value}`; + const contents = isArray$1(content) ? content : [content]; + let maxWidth = 0; + let maxHeight = 0; + contents.forEach((item) => { + const { width, fontBoundingBoxAscent, fontBoundingBoxDescent, actualBoundingBoxAscent, actualBoundingBoxDescent } = ctx.measureText(item); + const height = isUndefined(fontBoundingBoxAscent) ? actualBoundingBoxAscent + actualBoundingBoxDescent : fontBoundingBoxAscent + fontBoundingBoxDescent; + if (width > maxWidth) maxWidth = Math.ceil(width); + if (height > maxHeight) maxHeight = Math.ceil(height); + }); + defaultWidth = maxWidth; + defaultHeight = maxHeight * contents.length + (contents.length - 1) * fontGap.value; + const angle = Math.PI / 180 * Number(rotate); + space = Math.ceil(Math.abs(Math.sin(angle) * defaultHeight) / 2); + defaultWidth += space; + } + return [ + width ?? defaultWidth, + height ?? defaultHeight, + space + ]; + }; + const getClips = useClips(); + const renderWatermark = () => { + const ctx = document.createElement("canvas").getContext("2d"); + const image = props.image; + const content = props.content; + const rotate = props.rotate; + if (ctx) { + if (!watermarkRef.value) watermarkRef.value = document.createElement("div"); + const ratio = getPixelRatio(); + const [markWidth, markHeight, space] = getMarkSize(ctx); + const drawCanvas = (drawContent) => { + const [textClips, clipWidth] = getClips(drawContent || "", rotate, ratio, markWidth, markHeight, { + color: color.value, + fontSize: fontSize.value, + fontStyle: fontStyle.value, + fontWeight: fontWeight.value, + fontFamily: fontFamily.value, + fontGap: fontGap.value, + textAlign: textAlign.value, + textBaseline: textBaseline.value + }, gapX.value, gapY.value, space); + appendWatermark(textClips, clipWidth); + }; + if (image) { + const img = new Image(); + img.onload = () => { + drawCanvas(img); + }; + img.onerror = () => { + drawCanvas(content); + }; + img.crossOrigin = "anonymous"; + img.referrerPolicy = "no-referrer"; + img.src = image; + } else drawCanvas(content); + } + }; + (0, vue.onMounted)(() => { + renderWatermark(); + }); + (0, vue.watch)(() => props, () => { + renderWatermark(); + }, { + deep: true, + flush: "post" + }); + (0, vue.onBeforeUnmount)(() => { + destroyWatermark(); + }); + const onMutate = (mutations) => { + if (stopObservation.value) return; + mutations.forEach((mutation) => { + if (reRendering(mutation, watermarkRef.value)) { + destroyWatermark(); + renderWatermark(); + } + }); + }; + useMutationObserver(containerRef, onMutate, { + attributes: true, + subtree: true, + childList: true + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "containerRef", + ref: containerRef, + style: (0, vue.normalizeStyle)([style]) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 4); + }; + } + }); + +//#endregion +//#region ../../packages/components/watermark/src/watermark.vue + var watermark_default = watermark_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/watermark/index.ts + const ElWatermark = withInstall(watermark_default); + +//#endregion +//#region ../../packages/components/tour/src/content.ts + const tourStrategies = ["absolute", "fixed"]; + const tourPlacements = [ + "top-start", + "top-end", + "top", + "bottom-start", + "bottom-end", + "bottom", + "left-start", + "left-end", + "left", + "right-start", + "right-end", + "right" + ]; + /** + * @deprecated Removed after 3.0.0, Use `TourContentProps` instead. + */ + const tourContentProps = buildProps({ + placement: { + type: definePropType(String), + values: tourPlacements, + default: "bottom" + }, + reference: { + type: definePropType(Object), + default: null + }, + strategy: { + type: definePropType(String), + values: tourStrategies, + default: "absolute" + }, + offset: { + type: Number, + default: 10 + }, + showArrow: Boolean, + zIndex: { + type: Number, + default: 2001 + } + }); + const tourContentEmits = { close: () => true }; + +//#endregion +//#region ../../packages/components/tour/src/tour.ts +/** + * @deprecated Removed after 3.0.0, Use `TourProps` instead. + */ + const tourProps = buildProps({ + modelValue: Boolean, + current: { + type: Number, + default: 0 + }, + showArrow: { + type: Boolean, + default: true + }, + showClose: { + type: Boolean, + default: true + }, + closeIcon: { type: iconPropType }, + placement: tourContentProps.placement, + contentStyle: { type: definePropType([Object]) }, + mask: { + type: definePropType([Boolean, Object]), + default: true + }, + gap: { + type: definePropType(Object), + default: () => ({ + offset: 6, + radius: 2 + }) + }, + zIndex: { type: Number }, + scrollIntoViewOptions: { + type: definePropType([Boolean, Object]), + default: () => ({ block: "center" }) + }, + type: { type: definePropType(String) }, + appendTo: { + type: teleportProps.to.type, + default: "body" + }, + closeOnPressEscape: { + type: Boolean, + default: true + }, + targetAreaClickable: { + type: Boolean, + default: true + } + }); + const tourEmits = { + [UPDATE_MODEL_EVENT]: (value) => isBoolean(value), + ["update:current"]: (current) => isNumber(current), + close: (current) => isNumber(current), + finish: () => true, + change: (current) => isNumber(current) + }; + +//#endregion +//#region ../../packages/components/tour/src/mask.ts +/** + * @deprecated Removed after 3.0.0, Use `MaskProps` instead. + */ + const maskProps = buildProps({ + zIndex: { + type: Number, + default: 1001 + }, + visible: Boolean, + fill: { + type: String, + default: "rgba(0,0,0,0.5)" + }, + pos: { type: definePropType(Object) }, + targetAreaClickable: { + type: Boolean, + default: true + } + }); + +//#endregion +//#region ../../packages/components/tour/src/helper.ts + const useTarget = (target, open, gap, mergedMask, scrollIntoViewOptions) => { + const posInfo = (0, vue.ref)(null); + const getTargetEl = () => { + let targetEl; + if (isString(target.value)) targetEl = document.querySelector(target.value); + else if (isFunction$1(target.value)) targetEl = target.value(); + else targetEl = target.value; + return targetEl; + }; + const updatePosInfo = () => { + const targetEl = getTargetEl(); + if (!targetEl || !open.value) { + posInfo.value = null; + return; + } + if (!isInViewPort(targetEl)) targetEl.scrollIntoView(scrollIntoViewOptions.value); + const { left, top, width, height } = targetEl.getBoundingClientRect(); + posInfo.value = { + left, + top, + width, + height, + radius: 0 + }; + }; + (0, vue.onMounted)(() => { + (0, vue.watch)([open, target], () => { + updatePosInfo(); + }, { immediate: true }); + window.addEventListener("resize", updatePosInfo); + }); + (0, vue.onBeforeUnmount)(() => { + window.removeEventListener("resize", updatePosInfo); + }); + const getGapOffset = (index) => (isArray$1(gap.value.offset) ? gap.value.offset[index] : gap.value.offset) ?? 6; + const mergedPosInfo = (0, vue.computed)(() => { + if (!posInfo.value) return posInfo.value; + const gapOffsetX = getGapOffset(0); + const gapOffsetY = getGapOffset(1); + const gapRadius = gap.value?.radius || 2; + return { + left: posInfo.value.left - gapOffsetX, + top: posInfo.value.top - gapOffsetY, + width: posInfo.value.width + gapOffsetX * 2, + height: posInfo.value.height + gapOffsetY * 2, + radius: gapRadius + }; + }); + return { + mergedPosInfo, + triggerTarget: (0, vue.computed)(() => { + const targetEl = getTargetEl(); + if (!mergedMask.value || !targetEl || !window.DOMRect) return targetEl || void 0; + return { getBoundingClientRect() { + return window.DOMRect.fromRect({ + width: mergedPosInfo.value?.width || 0, + height: mergedPosInfo.value?.height || 0, + x: mergedPosInfo.value?.left || 0, + y: mergedPosInfo.value?.top || 0 + }); + } }; + }) + }; + }; + const tourKey = Symbol("ElTour"); + function isInViewPort(element) { + const viewWidth = window.innerWidth || document.documentElement.clientWidth; + const viewHeight = window.innerHeight || document.documentElement.clientHeight; + const { top, right, bottom, left } = element.getBoundingClientRect(); + return top >= 0 && left >= 0 && right <= viewWidth && bottom <= viewHeight; + } + const useFloating$1 = (referenceRef, contentRef, arrowRef, placement, strategy, offset$2, zIndex, showArrow) => { + const x = (0, vue.ref)(); + const y = (0, vue.ref)(); + const middlewareData = (0, vue.ref)({}); + const states = { + x, + y, + placement, + strategy, + middlewareData + }; + const middleware = (0, vue.computed)(() => { + const _middleware = [ + offset((0, vue.unref)(offset$2)), + flip(), + shift(), + overflowMiddleware() + ]; + if ((0, vue.unref)(showArrow) && (0, vue.unref)(arrowRef)) _middleware.push(arrow({ element: (0, vue.unref)(arrowRef) })); + return _middleware; + }); + const update = async () => { + if (!isClient) return; + const referenceEl = (0, vue.unref)(referenceRef); + const contentEl = (0, vue.unref)(contentRef); + if (!referenceEl || !contentEl) return; + const data = await computePosition(referenceEl, contentEl, { + placement: (0, vue.unref)(placement), + strategy: (0, vue.unref)(strategy), + middleware: (0, vue.unref)(middleware) + }); + keysOf(states).forEach((key) => { + states[key].value = data[key]; + }); + }; + const contentStyle = (0, vue.computed)(() => { + if (!(0, vue.unref)(referenceRef)) return { + position: "fixed", + top: "50%", + left: "50%", + transform: "translate3d(-50%, -50%, 0)", + maxWidth: "100vw", + zIndex: (0, vue.unref)(zIndex) + }; + const { overflow } = (0, vue.unref)(middlewareData); + return { + position: (0, vue.unref)(strategy), + zIndex: (0, vue.unref)(zIndex), + top: (0, vue.unref)(y) != null ? `${(0, vue.unref)(y)}px` : "", + left: (0, vue.unref)(x) != null ? `${(0, vue.unref)(x)}px` : "", + maxWidth: overflow?.maxWidth ? `${overflow?.maxWidth}px` : "" + }; + }); + const arrowStyle = (0, vue.computed)(() => { + if (!(0, vue.unref)(showArrow)) return {}; + const { arrow } = (0, vue.unref)(middlewareData); + return { + left: arrow?.x != null ? `${arrow?.x}px` : "", + top: arrow?.y != null ? `${arrow?.y}px` : "" + }; + }); + let cleanup; + (0, vue.onMounted)(() => { + const referenceEl = (0, vue.unref)(referenceRef); + const contentEl = (0, vue.unref)(contentRef); + if (referenceEl && contentEl) cleanup = autoUpdate(referenceEl, contentEl, update); + (0, vue.watchEffect)(() => { + update(); + }); + }); + (0, vue.onBeforeUnmount)(() => { + cleanup && cleanup(); + }); + return { + update, + contentStyle, + arrowStyle + }; + }; + const overflowMiddleware = () => { + return { + name: "overflow", + async fn(state) { + const overflow = await detectOverflow(state); + let overWidth = 0; + if (overflow.left > 0) overWidth = overflow.left; + if (overflow.right > 0) overWidth = overflow.right; + return { data: { maxWidth: state.rects.floating.width - overWidth } }; + } + }; + }; + +//#endregion +//#region ../../packages/components/tour/src/mask.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$8 = { style: { + width: "100%", + height: "100%" + } }; + const _hoisted_2$4 = ["d"]; + var mask_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTourMask", + inheritAttrs: false, + __name: "mask", + props: maskProps, + setup(__props) { + const props = __props; + const { ns } = (0, vue.inject)(tourKey); + const radius = (0, vue.computed)(() => props.pos?.radius ?? 2); + const roundInfo = (0, vue.computed)(() => { + const v = radius.value; + const baseInfo = `a${v},${v} 0 0 1`; + return { + topRight: `${baseInfo} ${v},${v}`, + bottomRight: `${baseInfo} ${-v},${v}`, + bottomLeft: `${baseInfo} ${-v},${-v}`, + topLeft: `${baseInfo} ${v},${-v}` + }; + }); + const { width: windowWidth, height: windowHeight } = useWindowSize(); + const path = (0, vue.computed)(() => { + const width = windowWidth.value; + const height = windowHeight.value; + const info = roundInfo.value; + const _path = `M${width},0 L0,0 L0,${height} L${width},${height} L${width},0 Z`; + const _radius = radius.value; + return props.pos ? `${_path} M${props.pos.left + _radius},${props.pos.top} h${props.pos.width - _radius * 2} ${info.topRight} v${props.pos.height - _radius * 2} ${info.bottomRight} h${-props.pos.width + _radius * 2} ${info.bottomLeft} v${-props.pos.height + _radius * 2} ${info.topLeft} z` : _path; + }); + const maskStyle = (0, vue.computed)(() => ({ + position: "fixed", + left: 0, + right: 0, + top: 0, + bottom: 0, + zIndex: props.zIndex, + pointerEvents: props.pos && props.targetAreaClickable ? "none" : "auto" + })); + const pathStyle = (0, vue.computed)(() => ({ + fill: props.fill, + pointerEvents: "auto", + cursor: "auto" + })); + useLockscreen((0, vue.toRef)(props, "visible"), { ns }); + return (_ctx, _cache) => { + return __props.visible ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", (0, vue.mergeProps)({ + key: 0, + class: (0, vue.unref)(ns).e("mask"), + style: maskStyle.value + }, _ctx.$attrs), [((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", _hoisted_1$8, [(0, vue.createElementVNode)("path", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("hollow")), + style: (0, vue.normalizeStyle)(pathStyle.value), + d: path.value + }, null, 14, _hoisted_2$4)]))], 16)) : (0, vue.createCommentVNode)("v-if", true); + }; + } + }); + +//#endregion +//#region ../../packages/components/tour/src/mask.vue + var mask_default = mask_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tour/src/content.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$7 = ["data-side"]; + var content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTourContent", + __name: "content", + props: tourContentProps, + emits: tourContentEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const placement = (0, vue.ref)(props.placement); + const strategy = (0, vue.ref)(props.strategy); + const contentRef = (0, vue.ref)(null); + const arrowRef = (0, vue.ref)(null); + (0, vue.watch)(() => props.placement, () => { + placement.value = props.placement; + }); + const { contentStyle, arrowStyle } = useFloating$1((0, vue.toRef)(props, "reference"), contentRef, arrowRef, placement, strategy, (0, vue.toRef)(props, "offset"), (0, vue.toRef)(props, "zIndex"), (0, vue.toRef)(props, "showArrow")); + const side = (0, vue.computed)(() => { + return placement.value.split("-")[0]; + }); + const { ns } = (0, vue.inject)(tourKey); + const onCloseRequested = () => { + emit("close"); + }; + const onFocusoutPrevented = (event) => { + if (event.detail.focusReason === "pointer") event.preventDefault(); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "contentRef", + ref: contentRef, + style: (0, vue.normalizeStyle)((0, vue.unref)(contentStyle)), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")), + "data-side": side.value, + tabindex: "-1" + }, [(0, vue.createVNode)((0, vue.unref)(focus_trap_default), { + loop: "", + trapped: "", + "focus-start-el": "container", + "focus-trap-el": contentRef.value || void 0, + onReleaseRequested: onCloseRequested, + onFocusoutPrevented + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["focus-trap-el"]), __props.showArrow ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + ref_key: "arrowRef", + ref: arrowRef, + style: (0, vue.normalizeStyle)((0, vue.unref)(arrowStyle)), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("arrow")) + }, null, 6)) : (0, vue.createCommentVNode)("v-if", true)], 14, _hoisted_1$7); + }; + } + }); + +//#endregion +//#region ../../packages/components/tour/src/content.vue + var content_default$1 = content_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tour/src/steps.ts + var steps_default = (0, vue.defineComponent)({ + name: "ElTourSteps", + props: { current: { + type: Number, + default: 0 + } }, + emits: ["update-total"], + setup(props, { slots, emit }) { + let cacheTotal = 0; + return () => { + const children = slots.default?.(); + const result = []; + let total = 0; + function filterSteps(children) { + if (!isArray$1(children)) return; + children.forEach((item) => { + if ((item?.type || {})?.name === "ElTourStep") { + result.push(item); + total += 1; + } + }); + } + if (children.length) filterSteps(flattedChildren(children[0]?.children)); + if (cacheTotal !== total) { + cacheTotal = total; + emit("update-total", total); + } + if (result.length) return result[props.current]; + return null; + }; + } + }); + +//#endregion +//#region ../../packages/components/tour/src/tour.vue?vue&type=script&setup=true&lang.ts + var tour_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTour", + inheritAttrs: false, + __name: "tour", + props: tourProps, + emits: tourEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("tour"); + const total = (0, vue.ref)(0); + const currentStep = (0, vue.ref)(); + const current = useVModel(props, "current", emit, { passive: true }); + const currentTarget = (0, vue.computed)(() => currentStep.value?.target); + const kls = (0, vue.computed)(() => [ns.b(), mergedType.value === "primary" ? ns.m("primary") : ""]); + const mergedPlacement = (0, vue.computed)(() => currentStep.value?.placement || props.placement); + const mergedContentStyle = (0, vue.computed)(() => currentStep.value?.contentStyle ?? props.contentStyle); + const mergedMask = (0, vue.computed)(() => currentStep.value?.mask ?? props.mask); + const mergedShowMask = (0, vue.computed)(() => !!mergedMask.value && props.modelValue); + const mergedMaskStyle = (0, vue.computed)(() => isBoolean(mergedMask.value) ? void 0 : mergedMask.value); + const mergedShowArrow = (0, vue.computed)(() => !!currentTarget.value && (currentStep.value?.showArrow ?? props.showArrow)); + const mergedScrollIntoViewOptions = (0, vue.computed)(() => currentStep.value?.scrollIntoViewOptions ?? props.scrollIntoViewOptions); + const mergedType = (0, vue.computed)(() => currentStep.value?.type ?? props.type); + const { nextZIndex } = useZIndex(); + const nowZIndex = nextZIndex(); + const mergedZIndex = (0, vue.computed)(() => props.zIndex ?? nowZIndex); + const { mergedPosInfo: pos, triggerTarget } = useTarget(currentTarget, (0, vue.toRef)(props, "modelValue"), (0, vue.toRef)(props, "gap"), mergedMask, mergedScrollIntoViewOptions); + (0, vue.watch)(() => props.modelValue, (val) => { + if (!val) current.value = 0; + }); + const onEscClose = () => { + if (props.closeOnPressEscape) { + emit(UPDATE_MODEL_EVENT, false); + emit("close", current.value); + } + }; + const onUpdateTotal = (val) => { + total.value = val; + }; + const slots = (0, vue.useSlots)(); + (0, vue.provide)(tourKey, { + currentStep, + current, + total, + showClose: (0, vue.toRef)(props, "showClose"), + closeIcon: (0, vue.toRef)(props, "closeIcon"), + mergedType, + ns, + slots, + updateModelValue(modelValue) { + emit(UPDATE_MODEL_EVENT, modelValue); + }, + onClose() { + emit("close", current.value); + }, + onFinish() { + emit("finish"); + }, + onChange() { + emit(CHANGE_EVENT, current.value); + } + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [ + (0, vue.createVNode)((0, vue.unref)(ElTeleport), { to: __props.appendTo }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", (0, vue.mergeProps)({ class: kls.value }, _ctx.$attrs), [(0, vue.createVNode)(mask_default, { + visible: mergedShowMask.value, + fill: mergedMaskStyle.value?.color, + style: (0, vue.normalizeStyle)(mergedMaskStyle.value?.style), + pos: (0, vue.unref)(pos), + "z-index": mergedZIndex.value, + "target-area-clickable": __props.targetAreaClickable + }, null, 8, [ + "visible", + "fill", + "style", + "pos", + "z-index", + "target-area-clickable" + ]), __props.modelValue ? ((0, vue.openBlock)(), (0, vue.createBlock)(content_default$1, { + key: (0, vue.unref)(current), + reference: (0, vue.unref)(triggerTarget), + placement: mergedPlacement.value, + "show-arrow": mergedShowArrow.value, + "z-index": mergedZIndex.value, + style: (0, vue.normalizeStyle)(mergedContentStyle.value), + onClose: onEscClose + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(steps_default), { + current: (0, vue.unref)(current), + onUpdateTotal + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["current"])]), + _: 3 + }, 8, [ + "reference", + "placement", + "show-arrow", + "z-index", + "style" + ])) : (0, vue.createCommentVNode)("v-if", true)], 16)]), + _: 3 + }, 8, ["to"]), + (0, vue.createCommentVNode)(" just for IDE "), + (0, vue.createCommentVNode)("v-if", true) + ], 64); + }; + } + }); + +//#endregion +//#region ../../packages/components/tour/src/tour.vue + var tour_default = tour_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tour/src/step.ts +/** + * @deprecated Removed after 3.0.0, Use `TourStepProps` instead. + */ + const tourStepProps = buildProps({ + target: { type: definePropType([ + String, + Object, + Function + ]) }, + title: String, + description: String, + showClose: { + type: Boolean, + default: void 0 + }, + closeIcon: { type: iconPropType }, + showArrow: { + type: Boolean, + default: void 0 + }, + placement: tourContentProps.placement, + mask: { + type: definePropType([Boolean, Object]), + default: void 0 + }, + contentStyle: { type: definePropType([Object]) }, + prevButtonProps: { type: definePropType(Object) }, + nextButtonProps: { type: definePropType(Object) }, + scrollIntoViewOptions: { + type: definePropType([Boolean, Object]), + default: void 0 + }, + type: { type: definePropType(String) } + }); + const tourStepEmits = { close: () => true }; + +//#endregion +//#region ../../packages/components/tour/src/step.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$6 = ["aria-label"]; + var step_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTourStep", + __name: "step", + props: tourStepProps, + emits: tourStepEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const { Close } = CloseComponents; + const { t } = useLocale(); + const { currentStep, current, total, showClose, closeIcon, mergedType, ns, slots: tourSlots, updateModelValue, onClose: tourOnClose, onFinish: tourOnFinish, onChange } = (0, vue.inject)(tourKey); + (0, vue.watch)(props, (val) => { + currentStep.value = val; + }, { immediate: true }); + const mergedShowClose = (0, vue.computed)(() => props.showClose ?? showClose.value); + const mergedCloseIcon = (0, vue.computed)(() => props.closeIcon ?? closeIcon.value ?? Close); + const filterButtonProps = (btnProps) => { + if (!btnProps) return; + return omit(btnProps, ["children", "onClick"]); + }; + const onPrev = () => { + current.value -= 1; + if (props.prevButtonProps?.onClick) props.prevButtonProps?.onClick(); + onChange(); + }; + const onNext = () => { + if (current.value >= total.value - 1) onFinish(); + else current.value += 1; + if (props.nextButtonProps?.onClick) props.nextButtonProps.onClick(); + onChange(); + }; + const onFinish = () => { + onClose(); + tourOnFinish(); + }; + const onClose = () => { + updateModelValue(false); + tourOnClose(); + emit("close"); + }; + const handleKeydown = (e) => { + if (e.target?.isContentEditable) return; + switch (getEventCode(e)) { + case EVENT_CODE.left: + e.preventDefault(); + current.value > 0 && onPrev(); + break; + case EVENT_CODE.right: + e.preventDefault(); + onNext(); + break; + } + }; + (0, vue.onMounted)(() => { + window.addEventListener("keydown", handleKeydown); + }); + (0, vue.onBeforeUnmount)(() => { + window.removeEventListener("keydown", handleKeydown); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [ + mergedShowClose.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + "aria-label": (0, vue.unref)(t)("el.tour.close"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("closebtn")), + type: "button", + onClick: onClose + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close")) }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(mergedCloseIcon.value)))]), + _: 1 + }, 8, ["class"])], 10, _hoisted_1$6)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("header", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("header"), { "show-close": (0, vue.unref)(showClose) }]) }, [(0, vue.renderSlot)(_ctx.$slots, "header", {}, () => [(0, vue.createElementVNode)("span", { + role: "heading", + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) + }, (0, vue.toDisplayString)(__props.title), 3)])], 2), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("body")) }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(__props.description), 1)])], 2), + (0, vue.createElementVNode)("footer", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("footer")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("indicators")) }, [(0, vue.unref)(tourSlots).indicators ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.unref)(tourSlots).indicators), { + key: 0, + current: (0, vue.unref)(current), + total: (0, vue.unref)(total) + }, null, 8, ["current", "total"])) : ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, (0, vue.renderList)((0, vue.unref)(total), (item, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: item, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("indicator"), (0, vue.unref)(ns).is("active", index === (0, vue.unref)(current))]) + }, null, 2); + }), 128))], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("buttons")) }, [(0, vue.unref)(current) > 0 ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElButton), (0, vue.mergeProps)({ + key: 0, + size: "small", + type: (0, vue.unref)(mergedType) + }, filterButtonProps(__props.prevButtonProps), { onClick: onPrev }), { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.prevButtonProps?.children ?? (0, vue.unref)(t)("el.tour.previous")), 1)]), + _: 1 + }, 16, ["type"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.unref)(current) <= (0, vue.unref)(total) - 1 ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElButton), (0, vue.mergeProps)({ + key: 1, + size: "small", + type: (0, vue.unref)(mergedType) === "primary" ? "default" : "primary" + }, filterButtonProps(__props.nextButtonProps), { onClick: onNext }), { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.nextButtonProps?.children ?? ((0, vue.unref)(current) === (0, vue.unref)(total) - 1 ? (0, vue.unref)(t)("el.tour.finish") : (0, vue.unref)(t)("el.tour.next"))), 1)]), + _: 1 + }, 16, ["type"])) : (0, vue.createCommentVNode)("v-if", true)], 2)], 2) + ], 64); + }; + } + }); + +//#endregion +//#region ../../packages/components/tour/src/step.vue + var step_default = step_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tour/index.ts + const ElTour = withInstall(tour_default, { TourStep: step_default }); + const ElTourStep = withNoopInstall(step_default); + +//#endregion +//#region ../../packages/components/anchor/src/anchor.ts +/** + * @deprecated Removed after 3.0.0, Use `AnchorProps` instead. + */ + const anchorProps = buildProps({ + container: { type: definePropType([String, Object]) }, + offset: { + type: Number, + default: 0 + }, + bound: { + type: Number, + default: 15 + }, + duration: { + type: Number, + default: 300 + }, + marker: { + type: Boolean, + default: true + }, + type: { + type: definePropType(String), + default: "default" + }, + direction: { + type: definePropType(String), + default: "vertical" + }, + selectScrollTop: Boolean + }); + const anchorEmits = { + change: (href) => isString(href), + click: (e, href) => e instanceof MouseEvent && (isString(href) || isUndefined(href)) + }; + +//#endregion +//#region ../../packages/components/anchor/src/constants.ts + const anchorKey = Symbol("anchor"); + +//#endregion +//#region ../../packages/components/anchor/src/anchor.vue?vue&type=script&setup=true&lang.ts + var anchor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAnchor", + __name: "anchor", + props: anchorProps, + emits: anchorEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const slots = (0, vue.useSlots)(); + const currentAnchor = (0, vue.ref)(""); + const markerStyle = (0, vue.ref)({}); + const anchorRef = (0, vue.ref)(null); + const markerRef = (0, vue.ref)(null); + const containerEl = (0, vue.ref)(); + const links = {}; + let isScrolling = false; + let currentScrollTop = 0; + const ns = useNamespace("anchor"); + const cls = (0, vue.computed)(() => [ + ns.b(), + props.type === "underline" ? ns.m("underline") : "", + ns.m(props.direction) + ]); + const addLink = (state) => { + links[state.href] = state.el; + }; + const removeLink = (href) => { + delete links[href]; + }; + const setCurrentAnchor = (href) => { + if (currentAnchor.value !== href) { + currentAnchor.value = href; + emit(CHANGE_EVENT, href); + } + }; + let clearAnimate = null; + let currentTargetHref = ""; + const scrollToAnchor = (href) => { + if (!containerEl.value) return; + const target = getElement(href); + if (!target) return; + if (clearAnimate) { + if (currentTargetHref === href) return; + clearAnimate(); + } + currentTargetHref = href; + isScrolling = true; + const scrollEle = getScrollElement(target, containerEl.value); + const distance = getOffsetTopDistance(target, scrollEle); + const max = scrollEle.scrollHeight - scrollEle.clientHeight; + const to = Math.min(distance - props.offset, max); + clearAnimate = animateScrollTo(containerEl.value, currentScrollTop, to, props.duration, () => { + setTimeout(() => { + isScrolling = false; + currentTargetHref = ""; + }, 20); + }); + }; + const scrollTo = (href) => { + if (href) { + setCurrentAnchor(href); + scrollToAnchor(href); + } + }; + const handleClick = (e, href) => { + emit("click", e, href); + scrollTo(href); + }; + const handleScroll = throttleByRaf(() => { + if (containerEl.value) currentScrollTop = getScrollTop(containerEl.value); + const currentHref = getCurrentHref(); + if (isScrolling || isUndefined(currentHref)) return; + setCurrentAnchor(currentHref); + }); + const getCurrentHref = () => { + if (!containerEl.value) return; + const scrollTop = getScrollTop(containerEl.value); + const anchorTopList = []; + for (const href of Object.keys(links)) { + const target = getElement(href); + if (!target) continue; + const distance = getOffsetTopDistance(target, getScrollElement(target, containerEl.value)); + anchorTopList.push({ + top: distance - props.offset - props.bound, + href + }); + } + anchorTopList.sort((prev, next) => prev.top - next.top); + for (let i = 0; i < anchorTopList.length; i++) { + const item = anchorTopList[i]; + const next = anchorTopList[i + 1]; + if (i === 0 && scrollTop === 0) return props.selectScrollTop ? item.href : ""; + if (item.top <= scrollTop && (!next || next.top > scrollTop)) return item.href; + } + }; + const getContainer = () => { + const el = getElement(props.container); + if (!el || isWindow(el)) containerEl.value = window; + else containerEl.value = el; + }; + useEventListener(containerEl, "scroll", handleScroll); + const updateMarkerStyle = () => { + (0, vue.nextTick)(() => { + if (!anchorRef.value || !markerRef.value || !currentAnchor.value) { + markerStyle.value = {}; + return; + } + const currentLinkEl = links[currentAnchor.value]; + if (!currentLinkEl) { + markerStyle.value = {}; + return; + } + const anchorRect = anchorRef.value.getBoundingClientRect(); + const markerRect = markerRef.value.getBoundingClientRect(); + const linkRect = currentLinkEl.getBoundingClientRect(); + if (props.direction === "horizontal") markerStyle.value = { + left: `${linkRect.left - anchorRect.left}px`, + width: `${linkRect.width}px`, + opacity: 1 + }; + else markerStyle.value = { + top: `${linkRect.top - anchorRect.top + (linkRect.height - markerRect.height) / 2}px`, + opacity: 1 + }; + }); + }; + (0, vue.watch)(currentAnchor, updateMarkerStyle); + (0, vue.watch)(() => slots.default?.(), updateMarkerStyle); + (0, vue.onMounted)(() => { + getContainer(); + const hash = decodeURIComponent(window.location.hash); + if (getElement(hash)) scrollTo(hash); + else handleScroll(); + }); + (0, vue.watch)(() => props.container, () => { + getContainer(); + }); + (0, vue.provide)(anchorKey, { + ns, + direction: props.direction, + currentAnchor, + addLink, + removeLink, + handleClick + }); + __expose({ scrollTo }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "anchorRef", + ref: anchorRef, + class: (0, vue.normalizeClass)(cls.value) + }, [__props.marker ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref_key: "markerRef", + ref: markerRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("marker")), + style: (0, vue.normalizeStyle)(markerStyle.value) + }, null, 6)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("list")) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/anchor/src/anchor.vue + var anchor_default = anchor_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/anchor/src/anchor-link.ts +/** + * @deprecated Removed after 3.0.0, Use `AnchorLinkProps` instead. + */ + const anchorLinkProps = buildProps({ + title: String, + href: String + }); + +//#endregion +//#region ../../packages/components/anchor/src/anchor-link.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$5 = ["href"]; + var anchor_link_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAnchorLink", + __name: "anchor-link", + props: anchorLinkProps, + setup(__props) { + const props = __props; + const linkRef = (0, vue.ref)(null); + const { ns, direction, currentAnchor, addLink, removeLink, handleClick: contextHandleClick } = (0, vue.inject)(anchorKey); + const cls = (0, vue.computed)(() => [ns.e("link"), ns.is("active", currentAnchor.value === props.href)]); + const handleClick = (e) => { + contextHandleClick(e, props.href); + }; + (0, vue.watch)(() => props.href, (val, oldVal) => { + (0, vue.nextTick)(() => { + if (oldVal) removeLink(oldVal); + if (val) addLink({ + href: val, + el: linkRef.value + }); + }); + }); + (0, vue.onMounted)(() => { + const { href } = props; + if (href) addLink({ + href, + el: linkRef.value + }); + }); + (0, vue.onBeforeUnmount)(() => { + const { href } = props; + if (href) removeLink(href); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("item")) }, [(0, vue.createElementVNode)("a", { + ref_key: "linkRef", + ref: linkRef, + class: (0, vue.normalizeClass)(cls.value), + href: __props.href, + onClick: handleClick + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 10, _hoisted_1$5), _ctx.$slots["sub-link"] && (0, vue.unref)(direction) === "vertical" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("list")) + }, [(0, vue.renderSlot)(_ctx.$slots, "sub-link")], 2)) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/anchor/src/anchor-link.vue + var anchor_link_default = anchor_link_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/anchor/index.ts + const ElAnchor = withInstall(anchor_default, { AnchorLink: anchor_link_default }); + const ElAnchorLink = withNoopInstall(anchor_link_default); + +//#endregion +//#region ../../packages/components/segmented/src/segmented.ts + const defaultProps = { + label: "label", + value: "value", + disabled: "disabled" + }; + /** + * @deprecated Removed after 3.0.0, Use `SegmentedProps` instead. + */ + const segmentedProps = buildProps({ + direction: { + type: definePropType(String), + default: "horizontal" + }, + options: { + type: definePropType(Array), + default: () => [] + }, + modelValue: { + type: [ + String, + Number, + Boolean + ], + default: void 0 + }, + props: { + type: definePropType(Object), + default: () => defaultProps + }, + block: Boolean, + size: useSizeProp, + disabled: { + type: Boolean, + default: void 0 + }, + validateEvent: { + type: Boolean, + default: true + }, + id: String, + name: String, + ...useAriaProps(["ariaLabel"]) + }); + const segmentedEmits = { + [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val), + [CHANGE_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val) + }; + +//#endregion +//#region ../../packages/components/segmented/src/segmented.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$4 = [ + "id", + "aria-label", + "aria-labelledby" + ]; + const _hoisted_2$3 = [ + "name", + "disabled", + "checked", + "onChange" + ]; + var segmented_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSegmented", + __name: "segmented", + props: segmentedProps, + emits: segmentedEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("segmented"); + const segmentedId = useId(); + const segmentedSize = useFormSize(); + const _disabled = useFormDisabled(); + const { formItem } = useFormItem(); + const { inputId, isLabeledByFormItem } = useFormItemInputId(props, { formItemContext: formItem }); + const segmentedRef = (0, vue.ref)(null); + const activeElement = useActiveElement(); + const state = (0, vue.reactive)({ + isInit: false, + width: 0, + height: 0, + translateX: 0, + translateY: 0, + focusVisible: false + }); + const handleChange = (evt, item) => { + const value = getValue(item); + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value); + evt.target.checked = value === props.modelValue; + }; + const aliasProps = (0, vue.computed)(() => ({ + ...defaultProps, + ...props.props + })); + const getValue = (item) => { + return isObject$1(item) ? item[aliasProps.value.value] : item; + }; + const getLabel = (item) => { + return isObject$1(item) ? item[aliasProps.value.label] : item; + }; + const getDisabled = (item) => { + return !!(_disabled.value || (isObject$1(item) ? item[aliasProps.value.disabled] : false)); + }; + const getSelected = (item) => { + return props.modelValue === getValue(item); + }; + const getOption = (value) => { + return props.options.find((item) => getValue(item) === value); + }; + const getItemCls = (item) => { + return [ + ns.e("item"), + ns.is("selected", getSelected(item)), + ns.is("disabled", getDisabled(item)) + ]; + }; + const updateSelect = () => { + if (!segmentedRef.value) return; + const selectedItem = segmentedRef.value.querySelector(".is-selected"); + const selectedItemInput = segmentedRef.value.querySelector(".is-selected input"); + if (!selectedItem || !selectedItemInput) { + state.width = 0; + state.height = 0; + state.translateX = 0; + state.translateY = 0; + state.focusVisible = false; + return; + } + state.isInit = true; + if (props.direction === "vertical") { + state.height = selectedItem.offsetHeight; + state.translateY = selectedItem.offsetTop; + } else { + state.width = selectedItem.offsetWidth; + state.translateX = selectedItem.offsetLeft; + } + try { + state.focusVisible = selectedItemInput.matches(":focus-visible"); + } catch {} + }; + const segmentedCls = (0, vue.computed)(() => [ + ns.b(), + ns.m(segmentedSize.value), + ns.is("block", props.block) + ]); + const selectedStyle = (0, vue.computed)(() => ({ + width: props.direction === "vertical" ? "100%" : `${state.width}px`, + height: props.direction === "vertical" ? `${state.height}px` : "100%", + transform: props.direction === "vertical" ? `translateY(${state.translateY}px)` : `translateX(${state.translateX}px)`, + display: state.isInit ? "block" : "none" + })); + const selectedCls = (0, vue.computed)(() => [ + ns.e("item-selected"), + ns.is("disabled", getDisabled(getOption(props.modelValue))), + ns.is("focus-visible", state.focusVisible) + ]); + const name = (0, vue.computed)(() => { + return props.name || segmentedId.value; + }); + useResizeObserver(segmentedRef, updateSelect); + (0, vue.watch)(activeElement, updateSelect); + (0, vue.watch)(() => props.modelValue, () => { + updateSelect(); + if (props.validateEvent) formItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }, { flush: "post" }); + return (_ctx, _cache) => { + return __props.options.length ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + id: (0, vue.unref)(inputId), + ref_key: "segmentedRef", + ref: segmentedRef, + class: (0, vue.normalizeClass)(segmentedCls.value), + role: "radiogroup", + "aria-label": !(0, vue.unref)(isLabeledByFormItem) ? __props.ariaLabel || "segmented" : void 0, + "aria-labelledby": (0, vue.unref)(isLabeledByFormItem) ? (0, vue.unref)(formItem).labelId : void 0 + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("group"), (0, vue.unref)(ns).m(__props.direction)]) }, [(0, vue.createElementVNode)("div", { + style: (0, vue.normalizeStyle)(selectedStyle.value), + class: (0, vue.normalizeClass)(selectedCls.value) + }, null, 6), ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.options, (item, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("label", { + key: index, + class: (0, vue.normalizeClass)(getItemCls(item)) + }, [(0, vue.createElementVNode)("input", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("item-input")), + type: "radio", + name: name.value, + disabled: getDisabled(item), + checked: getSelected(item), + onChange: ($event) => handleChange($event, item) + }, null, 42, _hoisted_2$3), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("item-label")) }, [(0, vue.renderSlot)(_ctx.$slots, "default", { item }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(getLabel(item)), 1)])], 2)], 2); + }), 128))], 2)], 10, _hoisted_1$4)) : (0, vue.createCommentVNode)("v-if", true); + }; + } + }); + +//#endregion +//#region ../../packages/components/segmented/src/segmented.vue + var segmented_default = segmented_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/segmented/index.ts + const ElSegmented = withInstall(segmented_default); + +//#endregion +//#region ../../packages/components/mention/src/helper.ts + const filterOption = (pattern, option) => { + const lowerCase = pattern.toLowerCase(); + return (option.label || option.value || "").toLowerCase().includes(lowerCase); + }; + const getMentionCtx = (inputEl, prefix, split) => { + const { selectionEnd } = inputEl; + if (selectionEnd === null) return; + const inputValue = inputEl.value; + const prefixArray = castArray$1(prefix); + let splitIndex = -1; + let mentionCtx; + for (let i = selectionEnd - 1; i >= 0; --i) { + const char = inputValue[i]; + if (splitIndex === -1 && (char === split || char === "\n" || char === "\r")) { + splitIndex = i; + continue; + } + if (prefixArray.includes(char)) { + const end = splitIndex === -1 ? selectionEnd : splitIndex; + mentionCtx = { + pattern: inputValue.slice(i + 1, end), + start: i + 1, + end, + prefix: char, + prefixIndex: i, + splitIndex, + selectionEnd + }; + break; + } + } + return mentionCtx; + }; + /** + * fork from textarea-caret-position + * https://github.com/component/textarea-caret-position + * The MIT License (MIT) + * Copyright (c) 2015 Jonathan Ong me@jongleberry.com + * 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. + */ + const getCursorPosition = (element, options = { + debug: false, + useSelectionEnd: false + }) => { + const selectionStart = element.selectionStart !== null ? element.selectionStart : 0; + const selectionEnd = element.selectionEnd !== null ? element.selectionEnd : 0; + const position = options.useSelectionEnd ? selectionEnd : selectionStart; + const properties = [ + "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" + ]; + if (options.debug) { + const el = document.querySelector("#input-textarea-caret-position-mirror-div"); + if (el?.parentNode) el.parentNode.removeChild(el); + } + const div = document.createElement("div"); + div.id = "input-textarea-caret-position-mirror-div"; + document.body.appendChild(div); + const style = div.style; + const computed = window.getComputedStyle(element); + const isInput = element.nodeName === "INPUT"; + style.whiteSpace = isInput ? "nowrap" : "pre-wrap"; + if (!isInput) style.wordWrap = "break-word"; + style.position = "absolute"; + if (!options.debug) style.visibility = "hidden"; + properties.forEach((prop) => { + if (isInput && prop === "lineHeight") if (computed.boxSizing === "border-box") { + const height = Number.parseInt(computed.height); + const outerHeight = Number.parseInt(computed.paddingTop) + Number.parseInt(computed.paddingBottom) + Number.parseInt(computed.borderTopWidth) + Number.parseInt(computed.borderBottomWidth); + const targetHeight = outerHeight + Number.parseInt(computed.lineHeight); + if (height > targetHeight) style.lineHeight = `${height - outerHeight}px`; + else if (height === targetHeight) style.lineHeight = computed.lineHeight; + else style.lineHeight = "0"; + } else style.lineHeight = computed.height; + else style[prop] = computed[prop]; + }); + if (isFirefox()) { + if (element.scrollHeight > Number.parseInt(computed.height)) style.overflowY = "scroll"; + } else style.overflow = "hidden"; + div.textContent = element.value.slice(0, Math.max(0, position)); + if (isInput && div.textContent) div.textContent = div.textContent.replace(/\s/g, "\xA0"); + const span = document.createElement("span"); + span.textContent = element.value.slice(Math.max(0, position)) || "."; + span.style.position = "relative"; + span.style.left = `${-element.scrollLeft}px`; + span.style.top = `${-element.scrollTop}px`; + div.appendChild(span); + const relativePosition = { + top: span.offsetTop + Number.parseInt(computed.borderTopWidth), + left: span.offsetLeft + Number.parseInt(computed.borderLeftWidth), + height: Number.parseInt(computed.fontSize) * 1.5 + }; + if (options.debug) span.style.backgroundColor = "#aaa"; + else document.body.removeChild(div); + if (relativePosition.left >= element.clientWidth) relativePosition.left = element.clientWidth; + return relativePosition; + }; + +//#endregion +//#region ../../packages/components/mention/src/mention.ts +/** + * @deprecated Removed after 3.0.0, Use `MentionProps` instead. + */ + const mentionProps = buildProps({ + ...inputProps, + options: { + type: definePropType(Array), + default: () => [] + }, + prefix: { + type: definePropType([String, Array]), + default: "@", + validator: (val) => { + if (isString(val)) return val.length === 1; + return val.every((v) => isString(v) && v.length === 1); + } + }, + split: { + type: String, + default: " ", + validator: (val) => val.length === 1 + }, + filterOption: { + type: definePropType([Boolean, Function]), + default: () => filterOption, + validator: (val) => { + if (val === false) return true; + return isFunction$1(val); + } + }, + placement: { + type: definePropType(String), + default: "bottom" + }, + showArrow: Boolean, + offset: { + type: Number, + default: 0 + }, + whole: Boolean, + checkIsWhole: { type: definePropType(Function) }, + modelValue: String, + loading: Boolean, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + props: { + type: definePropType(Object), + default: () => mentionDefaultProps + } + }); + const mentionEmits = { + [UPDATE_MODEL_EVENT]: (value) => isString(value), + "whole-remove": (pattern, prefix) => isString(pattern) && isString(prefix), + input: (value) => isString(value), + search: (pattern, prefix) => isString(pattern) && isString(prefix), + select: (option, prefix) => isObject$1(option) && isString(prefix), + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent + }; + const mentionDefaultProps = { + value: "value", + label: "label", + disabled: "disabled" + }; + +//#endregion +//#region ../../packages/components/mention/src/mention-dropdown.ts +/** + * @deprecated Removed after 3.0.0, Use `MentionDropdownProps` instead. + */ + const mentionDropdownProps = buildProps({ + options: { + type: definePropType(Array), + default: () => [] + }, + loading: Boolean, + disabled: Boolean, + contentId: String, + ariaLabel: String + }); + const mentionDropdownEmits = { select: (option) => isString(option.value) }; + +//#endregion +//#region ../../packages/components/mention/src/mention-dropdown.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$3 = [ + "id", + "aria-disabled", + "aria-selected", + "onMousemove", + "onClick" + ]; + var mention_dropdown_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElMentionDropdown", + __name: "mention-dropdown", + props: mentionDropdownProps, + emits: mentionDropdownEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("mention"); + const { t } = useLocale(); + const hoveringIndex = (0, vue.ref)(-1); + const scrollbarRef = (0, vue.ref)(); + const optionRefs = (0, vue.ref)(); + const dropdownRef = (0, vue.ref)(); + const optionkls = (item, index) => [ + ns.be("dropdown", "item"), + ns.is("hovering", hoveringIndex.value === index), + ns.is("disabled", item.disabled || props.disabled) + ]; + const handleSelect = (item) => { + if (item.disabled || props.disabled) return; + emit("select", item); + }; + const handleMouseEnter = (index) => { + hoveringIndex.value = index; + }; + const filteredAllDisabled = (0, vue.computed)(() => props.disabled || props.options.every((item) => item.disabled)); + const hoverOption = (0, vue.computed)(() => props.options[hoveringIndex.value]); + const selectHoverOption = () => { + if (!hoverOption.value || hoverOption.value.disabled || props.disabled) return; + emit("select", hoverOption.value); + }; + const navigateOptions = (direction) => { + const { options } = props; + if (options.length === 0 || filteredAllDisabled.value) return; + if (direction === "next") { + hoveringIndex.value++; + if (hoveringIndex.value === options.length) hoveringIndex.value = 0; + } else if (direction === "prev") { + hoveringIndex.value--; + if (hoveringIndex.value < 0) hoveringIndex.value = options.length - 1; + } + const option = options[hoveringIndex.value]; + if (option.disabled) { + navigateOptions(direction); + return; + } + (0, vue.nextTick)(() => scrollToOption(option)); + }; + const scrollToOption = (option) => { + const { options } = props; + const index = options.findIndex((item) => item.value === option.value); + const target = optionRefs.value?.[index]; + if (target) { + const menu = dropdownRef.value?.querySelector?.(`.${ns.be("dropdown", "wrap")}`); + if (menu) scrollIntoView(menu, target); + } + scrollbarRef.value?.handleScroll(); + }; + const resetHoveringIndex = () => { + if (filteredAllDisabled.value || props.options.length === 0) hoveringIndex.value = -1; + else hoveringIndex.value = props.options.findIndex((item) => !item.disabled); + }; + (0, vue.watch)(() => props.options, resetHoveringIndex, { immediate: true }); + __expose({ + hoveringIndex, + navigateOptions, + selectHoverOption, + hoverOption + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "dropdownRef", + ref: dropdownRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("dropdown")) + }, [ + _ctx.$slots.header ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("dropdown", "header")) + }, [(0, vue.renderSlot)(_ctx.$slots, "header")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElScrollbar), { + id: __props.contentId, + ref_key: "scrollbarRef", + ref: scrollbarRef, + tag: "ul", + "wrap-class": (0, vue.unref)(ns).be("dropdown", "wrap"), + "view-class": (0, vue.unref)(ns).be("dropdown", "list"), + role: "listbox", + "aria-label": __props.ariaLabel, + "aria-orientation": "vertical" + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.options, (item, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + id: `${__props.contentId}-${index}`, + ref_for: true, + ref_key: "optionRefs", + ref: optionRefs, + key: index, + class: (0, vue.normalizeClass)(optionkls(item, index)), + role: "option", + "aria-disabled": item.disabled || __props.disabled || void 0, + "aria-selected": hoveringIndex.value === index, + onMousemove: ($event) => handleMouseEnter(index), + onClick: (0, vue.withModifiers)(($event) => handleSelect(item), ["stop"]) + }, [(0, vue.renderSlot)(_ctx.$slots, "label", { + item, + index + }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(item.label ?? item.value), 1)])], 42, _hoisted_1$3); + }), 128))]), + _: 3 + }, 8, [ + "id", + "wrap-class", + "view-class", + "aria-label" + ]), [[vue.vShow, __props.options.length > 0 && !__props.loading]]), + __props.loading ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("dropdown", "loading")) + }, [(0, vue.renderSlot)(_ctx.$slots, "loading", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.mention.loading")), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("dropdown", "footer")) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/mention/src/mention-dropdown.vue + var mention_dropdown_default = mention_dropdown_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/mention/src/mention.vue?vue&type=script&setup=true&lang.ts + var mention_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElMention", + inheritAttrs: false, + __name: "mention", + props: mentionProps, + emits: mentionEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const passInputProps = (0, vue.computed)(() => { + const inputProps = ElInput.props ?? []; + return pick(props, isArray$1(inputProps) ? inputProps : Object.keys(inputProps)); + }); + const ns = useNamespace("mention"); + const disabled = useFormDisabled(); + const contentId = useId(); + const elInputRef = (0, vue.ref)(); + const tooltipRef = (0, vue.ref)(); + const dropdownRef = (0, vue.ref)(); + const visible = (0, vue.ref)(false); + const cursorStyle = (0, vue.ref)(); + const mentionCtx = (0, vue.ref)(); + const computedPlacement = (0, vue.computed)(() => props.showArrow ? props.placement : `${props.placement}-start`); + const computedFallbackPlacements = (0, vue.computed)(() => props.showArrow ? ["bottom", "top"] : ["bottom-start", "top-start"]); + const aliasProps = (0, vue.computed)(() => ({ + ...mentionDefaultProps, + ...props.props + })); + const mapOption = (option) => { + const base = { + label: option[aliasProps.value.label], + value: option[aliasProps.value.value], + disabled: option[aliasProps.value.disabled] + }; + return { + ...option, + ...base + }; + }; + const options = (0, vue.computed)(() => props.options.map(mapOption)); + const filteredOptions = (0, vue.computed)(() => { + const { filterOption } = props; + if (!mentionCtx.value || !filterOption) return options.value; + return options.value.filter((option) => filterOption(mentionCtx.value.pattern, option)); + }); + const dropdownVisible = (0, vue.computed)(() => { + return visible.value && (!!filteredOptions.value.length || props.loading); + }); + const hoveringId = (0, vue.computed)(() => { + return `${contentId.value}-${dropdownRef.value?.hoveringIndex}`; + }); + const handleInputChange = (value) => { + emit(UPDATE_MODEL_EVENT, value); + emit(INPUT_EVENT, value); + syncAfterCursorMove(); + }; + const handleInputKeyDown = (event) => { + if (elInputRef.value?.isComposing) return; + const code = getEventCode(event); + switch (code) { + case EVENT_CODE.left: + case EVENT_CODE.right: + syncAfterCursorMove(); + break; + case EVENT_CODE.up: + case EVENT_CODE.down: + if (!visible.value) return; + event.preventDefault(); + dropdownRef.value?.navigateOptions(code === EVENT_CODE.up ? "prev" : "next"); + break; + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + if (!visible.value) { + props.type !== "textarea" && syncAfterCursorMove(); + return; + } + event.preventDefault(); + if (dropdownRef.value?.hoverOption) dropdownRef.value?.selectHoverOption(); + else visible.value = false; + break; + case EVENT_CODE.esc: + if (!visible.value) return; + event.preventDefault(); + visible.value = false; + break; + case EVENT_CODE.backspace: if (props.whole && mentionCtx.value) { + const { splitIndex, selectionEnd, pattern, prefixIndex, prefix } = mentionCtx.value; + const inputEl = getInputEl(); + if (!inputEl) return; + const inputValue = inputEl.value; + const matchOption = options.value.find((item) => item.value === pattern); + if ((isFunction$1(props.checkIsWhole) ? props.checkIsWhole(pattern, prefix) : matchOption) && splitIndex !== -1 && splitIndex + 1 === selectionEnd) { + event.preventDefault(); + const newValue = inputValue.slice(0, prefixIndex) + inputValue.slice(splitIndex + 1); + emit(UPDATE_MODEL_EVENT, newValue); + emit(INPUT_EVENT, newValue); + emit("whole-remove", pattern, prefix); + const newSelectionEnd = prefixIndex; + (0, vue.nextTick)(() => { + inputEl.selectionStart = newSelectionEnd; + inputEl.selectionEnd = newSelectionEnd; + syncDropdownVisible(); + }); + } + } + } + }; + const { wrapperRef } = useFocusController(elInputRef, { + disabled, + afterFocus() { + syncAfterCursorMove(); + }, + beforeBlur(event) { + return tooltipRef.value?.isFocusInsideContent(event); + }, + afterBlur() { + visible.value = false; + } + }); + const handleInputMouseDown = () => { + syncAfterCursorMove(); + }; + const getOriginalOption = (mentionOption) => { + return props.options.find((option) => { + return mentionOption.value === option[aliasProps.value.value]; + }); + }; + const handleSelect = (item) => { + if (!mentionCtx.value) return; + const inputEl = getInputEl(); + if (!inputEl) return; + const inputValue = inputEl.value; + const { split } = props; + const newEndPart = inputValue.slice(mentionCtx.value.end); + const alreadySeparated = newEndPart.startsWith(split); + const newMiddlePart = `${item.value}${alreadySeparated ? "" : split}`; + const newValue = inputValue.slice(0, mentionCtx.value.start) + newMiddlePart + newEndPart; + emit(UPDATE_MODEL_EVENT, newValue); + emit(INPUT_EVENT, newValue); + emit("select", getOriginalOption(item), mentionCtx.value.prefix); + const newSelectionEnd = mentionCtx.value.start + newMiddlePart.length + (alreadySeparated ? 1 : 0); + (0, vue.nextTick)(() => { + inputEl.selectionStart = newSelectionEnd; + inputEl.selectionEnd = newSelectionEnd; + inputEl.focus(); + syncDropdownVisible(); + }); + }; + const getInputEl = () => props.type === "textarea" ? elInputRef.value?.textarea : elInputRef.value?.input; + const syncAfterCursorMove = () => { + setTimeout(() => { + syncCursor(); + syncDropdownVisible(); + (0, vue.nextTick)(() => tooltipRef.value?.updatePopper()); + }, 0); + }; + const syncCursor = () => { + const inputEl = getInputEl(); + if (!inputEl) return; + const caretPosition = getCursorPosition(inputEl); + const inputRect = inputEl.getBoundingClientRect(); + const wrapperRect = wrapperRef.value.getBoundingClientRect(); + cursorStyle.value = { + position: "absolute", + width: 0, + height: `${caretPosition.height}px`, + left: `${caretPosition.left + inputRect.left - wrapperRect.left}px`, + top: `${caretPosition.top + inputRect.top - wrapperRect.top}px` + }; + }; + const syncDropdownVisible = () => { + const inputEl = getInputEl(); + if (document.activeElement !== inputEl) { + visible.value = false; + return; + } + const { prefix, split } = props; + mentionCtx.value = getMentionCtx(inputEl, prefix, split); + if (mentionCtx.value && mentionCtx.value.splitIndex === -1) { + visible.value = true; + emit("search", mentionCtx.value.pattern, mentionCtx.value.prefix); + return; + } + visible.value = false; + }; + __expose({ + input: elInputRef, + tooltip: tooltipRef, + dropdownVisible + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "wrapperRef", + ref: wrapperRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) + }, [(0, vue.createVNode)((0, vue.unref)(ElInput), (0, vue.mergeProps)((0, vue.mergeProps)(passInputProps.value, _ctx.$attrs), { + ref_key: "elInputRef", + ref: elInputRef, + "model-value": __props.modelValue, + disabled: (0, vue.unref)(disabled), + role: dropdownVisible.value ? "combobox" : void 0, + "aria-activedescendant": dropdownVisible.value ? hoveringId.value || "" : void 0, + "aria-controls": dropdownVisible.value ? (0, vue.unref)(contentId) : void 0, + "aria-expanded": dropdownVisible.value || void 0, + "aria-label": __props.ariaLabel, + "aria-autocomplete": dropdownVisible.value ? "none" : void 0, + "aria-haspopup": dropdownVisible.value ? "listbox" : void 0, + onInput: handleInputChange, + onKeydown: handleInputKeyDown, + onMousedown: handleInputMouseDown + }), (0, vue.createSlots)({ _: 2 }, [(0, vue.renderList)(_ctx.$slots, (_, name) => { + return { + name, + fn: (0, vue.withCtx)((slotProps) => [(0, vue.renderSlot)(_ctx.$slots, name, (0, vue.normalizeProps)((0, vue.guardReactiveProps)(slotProps)))]) + }; + })]), 1040, [ + "model-value", + "disabled", + "role", + "aria-activedescendant", + "aria-controls", + "aria-expanded", + "aria-label", + "aria-autocomplete", + "aria-haspopup" + ]), (0, vue.createVNode)((0, vue.unref)(ElTooltip), { + ref_key: "tooltipRef", + ref: tooltipRef, + visible: dropdownVisible.value, + "popper-class": [(0, vue.unref)(ns).e("popper"), __props.popperClass], + "popper-style": __props.popperStyle, + "popper-options": __props.popperOptions, + placement: computedPlacement.value, + "fallback-placements": computedFallbackPlacements.value, + effect: "light", + pure: "", + offset: __props.offset, + "show-arrow": __props.showArrow + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { style: (0, vue.normalizeStyle)(cursorStyle.value) }, null, 4)]), + content: (0, vue.withCtx)(() => [(0, vue.createVNode)(mention_dropdown_default, { + ref_key: "dropdownRef", + ref: dropdownRef, + options: filteredOptions.value, + disabled: (0, vue.unref)(disabled), + loading: __props.loading, + "content-id": (0, vue.unref)(contentId), + "aria-label": __props.ariaLabel, + onSelect: handleSelect, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(($event) => elInputRef.value?.focus(), ["stop"])) + }, (0, vue.createSlots)({ _: 2 }, [(0, vue.renderList)(_ctx.$slots, (_, name) => { + return { + name, + fn: (0, vue.withCtx)((slotProps) => [(0, vue.renderSlot)(_ctx.$slots, name, (0, vue.normalizeProps)((0, vue.guardReactiveProps)(slotProps)))]) + }; + })]), 1032, [ + "options", + "disabled", + "loading", + "content-id", + "aria-label" + ])]), + _: 3 + }, 8, [ + "visible", + "popper-class", + "popper-style", + "popper-options", + "placement", + "fallback-placements", + "offset", + "show-arrow" + ])], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/mention/src/mention.vue + var mention_default = mention_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/mention/index.ts + const ElMention = withInstall(mention_default); + +//#endregion +//#region ../../packages/components/splitter/src/splitter.ts +/** + * @deprecated Removed after 3.0.0, Use `SplitterProps` instead. + */ + const splitterProps = buildProps({ + layout: { + type: String, + default: "horizontal", + values: ["horizontal", "vertical"] + }, + lazy: Boolean + }); + const splitterEmits = { + resizeStart: (index, sizes) => true, + resize: (index, sizes) => true, + resizeEnd: (index, sizes) => true, + collapse: (index, type, sizes) => true + }; + +//#endregion +//#region ../../packages/components/splitter/src/hooks/useContainer.ts + function useContainer(layout) { + const containerEl = (0, vue.ref)(); + const { width, height } = useElementSize(containerEl); + return { + containerEl, + containerSize: (0, vue.computed)(() => { + return layout.value === "horizontal" ? width.value : height.value; + }) + }; + } + +//#endregion +//#region ../../packages/components/splitter/src/hooks/useSize.ts + function getPct(str) { + return Number(str.slice(0, -1)) / 100; + } + function getPx(str) { + return Number(str.slice(0, -2)); + } + function isPct(itemSize) { + return isString(itemSize) && itemSize.endsWith("%"); + } + function isPx(itemSize) { + return isString(itemSize) && itemSize.endsWith("px"); + } + function useSize$1(panels, containerSize) { + const propSizes = (0, vue.computed)(() => panels.value.map((i) => i.size)); + const panelCounts = (0, vue.computed)(() => panels.value.length); + const percentSizes = (0, vue.ref)([]); + (0, vue.watch)([ + propSizes, + panelCounts, + containerSize + ], () => { + let ptgList = []; + let emptyCount = 0; + for (let i = 0; i < panelCounts.value; i += 1) { + const itemSize = panels.value[i]?.size; + if (isPct(itemSize)) ptgList[i] = getPct(itemSize); + else if (isPx(itemSize)) ptgList[i] = getPx(itemSize) / containerSize.value; + else if (itemSize || itemSize === 0) { + const num = Number(itemSize); + if (!Number.isNaN(num)) ptgList[i] = num / containerSize.value; + } else { + emptyCount += 1; + ptgList[i] = void 0; + } + } + const totalPtg = ptgList.reduce((acc, ptg) => acc + (ptg || 0), 0); + if (totalPtg > 1 || !emptyCount) { + const scale = 1 / totalPtg; + ptgList = ptgList.map((ptg) => ptg === void 0 ? 0 : ptg * scale); + } else { + const avgRest = (1 - totalPtg) / emptyCount; + ptgList = ptgList.map((ptg) => ptg === void 0 ? avgRest : ptg); + } + percentSizes.value = ptgList; + }); + const ptg2px = (ptg) => ptg * containerSize.value; + return { + percentSizes, + pxSizes: (0, vue.computed)(() => percentSizes.value.map(ptg2px)) + }; + } + +//#endregion +//#region ../../packages/components/splitter/src/hooks/useResize.ts + function useResize(panels, containerSize, pxSizes, lazy) { + const ptg2px = (ptg) => ptg * containerSize.value || 0; + function getLimitSize(str, defaultLimit) { + if (isPct(str)) return ptg2px(getPct(str)); + else if (isPx(str)) return getPx(str); + return str ?? defaultLimit; + } + const lazyOffset = (0, vue.ref)(0); + const movingIndex = (0, vue.ref)(null); + let cachePxSizes = []; + let updatePanelSizes = NOOP; + const limitSizes = (0, vue.computed)(() => panels.value.map((item) => [item.min, item.max])); + (0, vue.watch)(lazy, () => { + if (lazyOffset.value) { + const mouseup = new MouseEvent("mouseup", { bubbles: true }); + window.dispatchEvent(mouseup); + } + }); + const onMoveStart = (index) => { + lazyOffset.value = 0; + movingIndex.value = { + index, + confirmed: false + }; + cachePxSizes = pxSizes.value; + }; + const onMoving = (index, offset) => { + let confirmedIndex = null; + if ((!movingIndex.value || !movingIndex.value.confirmed) && offset !== 0) { + if (offset > 0) { + confirmedIndex = index; + movingIndex.value = { + index, + confirmed: true + }; + } else for (let i = index; i >= 0; i -= 1) if (cachePxSizes[i] > 0) { + confirmedIndex = i; + movingIndex.value = { + index: i, + confirmed: true + }; + break; + } + } + const mergedIndex = confirmedIndex ?? movingIndex.value?.index ?? index; + const numSizes = [...cachePxSizes]; + const nextIndex = mergedIndex + 1; + const startMinSize = getLimitSize(limitSizes.value[mergedIndex][0], 0); + const endMinSize = getLimitSize(limitSizes.value[nextIndex][0], 0); + const startMaxSize = getLimitSize(limitSizes.value[mergedIndex][1], containerSize.value || 0); + const endMaxSize = getLimitSize(limitSizes.value[nextIndex][1], containerSize.value || 0); + let mergedOffset = offset; + if (numSizes[mergedIndex] + mergedOffset < startMinSize) mergedOffset = startMinSize - numSizes[mergedIndex]; + if (numSizes[nextIndex] - mergedOffset < endMinSize) mergedOffset = numSizes[nextIndex] - endMinSize; + if (numSizes[mergedIndex] + mergedOffset > startMaxSize) mergedOffset = startMaxSize - numSizes[mergedIndex]; + if (numSizes[nextIndex] - mergedOffset > endMaxSize) mergedOffset = numSizes[nextIndex] - endMaxSize; + numSizes[mergedIndex] += mergedOffset; + numSizes[nextIndex] -= mergedOffset; + lazyOffset.value = mergedOffset; + updatePanelSizes = () => { + panels.value.forEach((panel, index) => { + panel.size = numSizes[index]; + }); + updatePanelSizes = NOOP; + }; + if (!lazy.value) updatePanelSizes(); + }; + const onMoveEnd = () => { + if (lazy.value) updatePanelSizes(); + lazyOffset.value = 0; + movingIndex.value = null; + cachePxSizes = []; + }; + const cacheCollapsedSize = []; + const onCollapse = (index, type) => { + if (!cacheCollapsedSize.length) cacheCollapsedSize.push(...pxSizes.value); + const currentSizes = pxSizes.value; + const currentIndex = type === "start" ? index : index + 1; + const targetIndex = type === "start" ? index + 1 : index; + const currentSize = currentSizes[currentIndex]; + const targetSize = currentSizes[targetIndex]; + if (currentSize !== 0 && targetSize !== 0) { + currentSizes[currentIndex] = 0; + currentSizes[targetIndex] += currentSize; + cacheCollapsedSize[index] = currentSize; + } else { + const totalSize = currentSize + targetSize; + const targetCacheCollapsedSize = cacheCollapsedSize[index]; + const currentCacheCollapsedSize = totalSize - targetCacheCollapsedSize; + currentSizes[targetIndex] = targetCacheCollapsedSize; + currentSizes[currentIndex] = currentCacheCollapsedSize; + } + panels.value.forEach((panel, index) => { + panel.size = currentSizes[index]; + }); + }; + return { + lazyOffset, + onMoveStart, + onMoving, + onMoveEnd, + movingIndex, + onCollapse + }; + } + +//#endregion +//#region ../../packages/components/splitter/src/type.ts + const splitterRootContextKey = Symbol("splitterRootContextKey"); + +//#endregion +//#region ../../packages/components/splitter/src/splitter.vue?vue&type=script&setup=true&lang.ts + var splitter_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSplitter", + __name: "splitter", + props: splitterProps, + emits: splitterEmits, + setup(__props, { emit: __emit }) { + const ns = useNamespace("splitter"); + const emits = __emit; + const props = __props; + const layout = (0, vue.toRef)(props, "layout"); + const lazy = (0, vue.toRef)(props, "lazy"); + const { containerEl, containerSize } = useContainer(layout); + const { removeChild: unregisterPanel, children: panels, addChild: registerPanel, ChildrenSorter: PanelsSorter } = useOrderedChildren((0, vue.getCurrentInstance)(), "ElSplitterPanel"); + (0, vue.watch)(panels, () => { + movingIndex.value = null; + panels.value.forEach((instance, index) => { + instance.setIndex(index); + }); + }); + const { percentSizes, pxSizes } = useSize$1(panels, containerSize); + const { lazyOffset, movingIndex, onMoveStart, onMoving, onMoveEnd, onCollapse } = useResize(panels, containerSize, pxSizes, lazy); + const splitterStyles = (0, vue.computed)(() => { + return { [ns.cssVarBlockName("bar-offset")]: lazy.value ? `${lazyOffset.value}px` : void 0 }; + }); + const onResizeStart = (index) => { + onMoveStart(index); + emits("resizeStart", index, pxSizes.value); + }; + const onResize = (index, offset) => { + onMoving(index, offset); + if (!lazy.value) emits("resize", index, pxSizes.value); + }; + const onResizeEnd = async (index) => { + onMoveEnd(); + await (0, vue.nextTick)(); + emits("resizeEnd", index, pxSizes.value); + }; + const onCollapsible = (index, type) => { + onCollapse(index, type); + emits("collapse", index, type, pxSizes.value); + }; + (0, vue.provide)(splitterRootContextKey, (0, vue.reactive)({ + panels, + percentSizes, + pxSizes, + layout, + lazy, + movingIndex, + containerSize, + onMoveStart: onResizeStart, + onMoving: onResize, + onMoveEnd: onResizeEnd, + onCollapse: onCollapsible, + registerPanel, + unregisterPanel + })); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "containerEl", + ref: containerEl, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), (0, vue.unref)(ns).e(layout.value)]), + style: (0, vue.normalizeStyle)(splitterStyles.value) + }, [ + (0, vue.renderSlot)(_ctx.$slots, "default"), + (0, vue.createVNode)((0, vue.unref)(PanelsSorter)), + (0, vue.createCommentVNode)(" Prevent iframe touch events from breaking "), + (0, vue.unref)(movingIndex) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("mask"), (0, vue.unref)(ns).e(`mask-${layout.value}`)]) + }, null, 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/splitter/src/splitter.vue + var splitter_default = splitter_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/splitter/src/split-panel.ts +/** + * @deprecated Removed after 3.0.0, Use `SplitterPanelProps` instead. + */ + const splitterPanelProps = buildProps({ + min: { type: [String, Number] }, + max: { type: [String, Number] }, + size: { type: [String, Number] }, + resizable: { + type: Boolean, + default: true + }, + collapsible: Boolean + }); + const splitterPanelEmits = { "update:size": (value) => typeof value === "number" || typeof value === "string" }; + +//#endregion +//#region ../../packages/components/splitter/src/hooks/usePanel.ts + function getCollapsible(collapsible) { + if (collapsible && isObject$1(collapsible)) return collapsible; + return { + start: !!collapsible, + end: !!collapsible + }; + } + function isCollapsible(panel, size, nextPanel, nextSize) { + if (panel?.collapsible.end && size > 0) return true; + if (nextPanel?.collapsible.start && nextSize === 0 && size > 0) return true; + return false; + } + +//#endregion +//#region ../../packages/components/splitter/src/split-bar.vue?vue&type=script&setup=true&lang.ts + var split_bar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSplitterBar", + __name: "split-bar", + props: { + index: { + type: Number, + required: true + }, + layout: { + type: String, + values: ["horizontal", "vertical"], + default: "horizontal" + }, + resizable: { + type: Boolean, + default: true + }, + lazy: Boolean, + startCollapsible: Boolean, + endCollapsible: Boolean + }, + emits: [ + "moveStart", + "moving", + "moveEnd", + "collapse" + ], + setup(__props, { emit: __emit }) { + const ns = useNamespace("splitter-bar"); + const props = __props; + const emit = __emit; + const isHorizontal = (0, vue.computed)(() => props.layout === "horizontal"); + const barWrapStyles = (0, vue.computed)(() => { + if (isHorizontal.value) return { width: 0 }; + return { height: 0 }; + }); + const draggerStyles = (0, vue.computed)(() => { + return { + width: isHorizontal.value ? "16px" : "100%", + height: isHorizontal.value ? "100%" : "16px", + cursor: !props.resizable ? "auto" : isHorizontal.value ? "ew-resize" : "ns-resize", + touchAction: "none" + }; + }); + const draggerPseudoClass = (0, vue.computed)(() => { + const prefix = ns.e("dragger"); + return { + [`${prefix}-horizontal`]: isHorizontal.value, + [`${prefix}-vertical`]: !isHorizontal.value, + [`${prefix}-active`]: !!startPos.value + }; + }); + const startPos = (0, vue.ref)(null); + const onMousedown = (e) => { + if (!props.resizable) return; + startPos.value = [e.pageX, e.pageY]; + emit("moveStart", props.index); + window.addEventListener("mouseup", onMouseUp); + window.addEventListener("mousemove", onMouseMove); + }; + const onTouchStart = (e) => { + if (props.resizable && e.touches.length === 1) { + e.preventDefault(); + const touch = e.touches[0]; + startPos.value = [touch.pageX, touch.pageY]; + emit("moveStart", props.index); + window.addEventListener("touchend", onTouchEnd); + window.addEventListener("touchmove", onTouchMove); + } + }; + const onMouseMove = (e) => { + const { pageX, pageY } = e; + const offsetX = pageX - startPos.value[0]; + const offsetY = pageY - startPos.value[1]; + const offset = isHorizontal.value ? offsetX : offsetY; + emit("moving", props.index, offset); + }; + const onTouchMove = (e) => { + if (e.touches.length === 1) { + e.preventDefault(); + const touch = e.touches[0]; + const offsetX = touch.pageX - startPos.value[0]; + const offsetY = touch.pageY - startPos.value[1]; + const offset = isHorizontal.value ? offsetX : offsetY; + emit("moving", props.index, offset); + } + }; + const onMouseUp = () => { + startPos.value = null; + window.removeEventListener("mouseup", onMouseUp); + window.removeEventListener("mousemove", onMouseMove); + emit("moveEnd", props.index); + }; + const onTouchEnd = () => { + startPos.value = null; + window.removeEventListener("touchend", onTouchEnd); + window.removeEventListener("touchmove", onTouchMove); + emit("moveEnd", props.index); + }; + const StartIcon = (0, vue.computed)(() => isHorizontal.value ? arrow_left_default : arrow_up_default); + const EndIcon = (0, vue.computed)(() => isHorizontal.value ? arrow_right_default : arrow_down_default); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b()]), + style: (0, vue.normalizeStyle)(barWrapStyles.value) + }, [ + __props.startCollapsible ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("collapse-icon"), (0, vue.unref)(ns).e(`${__props.layout}-collapse-icon-start`)]), + onClick: _cache[0] || (_cache[0] = ($event) => emit("collapse", __props.index, "start")) + }, [(0, vue.renderSlot)(_ctx.$slots, "start-collapsible", {}, () => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(StartIcon.value), { style: { + "width": "12px", + "height": "12px" + } }))])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("dragger"), + draggerPseudoClass.value, + (0, vue.unref)(ns).is("disabled", !__props.resizable), + (0, vue.unref)(ns).is("lazy", __props.resizable && __props.lazy) + ]), + style: (0, vue.normalizeStyle)(draggerStyles.value), + onMousedown, + onTouchstart: onTouchStart + }, null, 38), + __props.endCollapsible ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("collapse-icon"), (0, vue.unref)(ns).e(`${__props.layout}-collapse-icon-end`)]), + onClick: _cache[1] || (_cache[1] = ($event) => emit("collapse", __props.index, "end")) + }, [(0, vue.renderSlot)(_ctx.$slots, "end-collapsible", {}, () => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(EndIcon.value), { style: { + "width": "12px", + "height": "12px" + } }))])], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/splitter/src/split-bar.vue + var split_bar_default = split_bar_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/splitter/src/split-panel.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME = "ElSplitterPanel"; + var split_panel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME, + __name: "split-panel", + props: splitterPanelProps, + emits: splitterPanelEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const ns = useNamespace("splitter-panel"); + const props = __props; + const emits = __emit; + const splitterContext = (0, vue.inject)(splitterRootContextKey); + if (!splitterContext) throwError(COMPONENT_NAME, "usage: "); + const { panels, layout, lazy, containerSize, pxSizes } = (0, vue.toRefs)(splitterContext); + const { registerPanel, unregisterPanel, onCollapse, onMoveEnd, onMoveStart, onMoving } = splitterContext; + const panelEl = (0, vue.ref)(); + const instance = (0, vue.getCurrentInstance)(); + const uid = instance.uid; + const index = (0, vue.ref)(0); + const panel = (0, vue.computed)(() => panels.value[index.value]); + const setIndex = (val) => { + index.value = val; + }; + const panelSize = (0, vue.computed)(() => { + if (!panel.value) return 0; + return pxSizes.value[index.value] ?? 0; + }); + const nextSize = (0, vue.computed)(() => { + if (!panel.value) return 0; + return pxSizes.value[index.value + 1] ?? 0; + }); + const nextPanel = (0, vue.computed)(() => { + if (panel.value) return panels.value[index.value + 1]; + return null; + }); + const isResizable = (0, vue.computed)(() => { + if (!nextPanel.value) return false; + return props.resizable && nextPanel.value?.resizable && (panelSize.value !== 0 || !props.min) && (nextSize.value !== 0 || !nextPanel.value.min); + }); + const isShowBar = (0, vue.computed)(() => { + if (!panel.value) return false; + return index.value !== panels.value.length - 1; + }); + const startCollapsible = (0, vue.computed)(() => isCollapsible(panel.value, panelSize.value, nextPanel.value, nextSize.value)); + const endCollapsible = (0, vue.computed)(() => isCollapsible(nextPanel.value, nextSize.value, panel.value, panelSize.value)); + function sizeToPx(str) { + if (isPct(str)) return getPct(str) * containerSize.value || 0; + else if (isPx(str)) return getPx(str); + return str ?? 0; + } + let isSizeUpdating = false; + (0, vue.watch)(() => props.size, () => { + if (!isSizeUpdating && panel.value) { + if (!containerSize.value) { + panel.value.size = props.size; + return; + } + const size = sizeToPx(props.size); + const maxSize = sizeToPx(props.max); + const minSize = sizeToPx(props.min); + const finalSize = Math.min(Math.max(size, minSize || 0), maxSize || size); + if (finalSize !== size) emits("update:size", finalSize); + panel.value.size = finalSize; + } + }); + (0, vue.watch)(() => panel.value?.size, (val) => { + if (val !== props.size) { + isSizeUpdating = true; + emits("update:size", val); + (0, vue.nextTick)(() => isSizeUpdating = false); + } + }); + (0, vue.watch)(() => props.resizable, (val) => { + if (panel.value) panel.value.resizable = val; + }); + const _panel = (0, vue.reactive)({ + uid, + getVnode: () => instance.vnode, + setIndex, + ...props, + collapsible: (0, vue.computed)(() => getCollapsible(props.collapsible)) + }); + registerPanel(_panel); + (0, vue.onBeforeUnmount)(() => unregisterPanel(_panel)); + __expose({ splitterPanelRef: panelEl }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [(0, vue.createElementVNode)("div", (0, vue.mergeProps)({ + ref_key: "panelEl", + ref: panelEl, + class: [(0, vue.unref)(ns).b()], + style: { flexBasis: `${panelSize.value}px` } + }, _ctx.$attrs), [(0, vue.renderSlot)(_ctx.$slots, "default")], 16), isShowBar.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(split_bar_default, { + key: 0, + index: index.value, + layout: (0, vue.unref)(layout), + lazy: (0, vue.unref)(lazy), + resizable: isResizable.value, + "start-collapsible": startCollapsible.value, + "end-collapsible": endCollapsible.value, + onMoveStart: (0, vue.unref)(onMoveStart), + onMoving: (0, vue.unref)(onMoving), + onMoveEnd: (0, vue.unref)(onMoveEnd), + onCollapse: (0, vue.unref)(onCollapse) + }, { + "start-collapsible": (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "start-collapsible")]), + "end-collapsible": (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "end-collapsible")]), + _: 3 + }, 8, [ + "index", + "layout", + "lazy", + "resizable", + "start-collapsible", + "end-collapsible", + "onMoveStart", + "onMoving", + "onMoveEnd", + "onCollapse" + ])) : (0, vue.createCommentVNode)("v-if", true)], 64); + }; + } + }); + +//#endregion +//#region ../../packages/components/splitter/src/split-panel.vue + var split_panel_default = split_panel_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/splitter/index.ts + const ElSplitter = withInstall(splitter_default, { SplitPanel: split_panel_default }); + const ElSplitterPanel = withNoopInstall(split_panel_default); + +//#endregion +//#region ../../packages/element-plus/component.ts + var component_default = [ + ElAffix, + ElAlert, + ElAutocomplete, + ElAutoResizer, + ElAvatar, + ElAvatarGroup, + ElBacktop, + ElBadge, + ElBreadcrumb, + ElBreadcrumbItem, + ElButton, + ElButtonGroup, + ElCalendar, + ElCard, + ElCarousel, + ElCarouselItem, + ElCascader, + ElCascaderPanel, + ElCheckTag, + ElCheckbox, + ElCheckboxButton, + ElCheckboxGroup, + ElCol, + ElCollapse, + ElCollapseItem, + ElCollapseTransition, + ElColorPickerPanel, + ElColorPicker, + ElConfigProvider, + ElContainer, + ElAside, + ElFooter, + ElHeader, + ElMain, + ElDatePicker, + ElDatePickerPanel, + ElDescriptions, + ElDescriptionsItem, + ElDialog, + ElDivider, + ElDrawer, + ElDropdown, + ElDropdownItem, + ElDropdownMenu, + ElEmpty, + ElForm, + ElFormItem, + ElIcon, + ElImage, + ElImageViewer, + ElInput, + ElInputNumber, + ElInputTag, + ElLink, + ElMenu, + ElMenuItem, + ElMenuItemGroup, + ElSubMenu, + ElPageHeader, + ElPagination, + ElPopconfirm, + ElPopover, + ElPopper, + ElProgress, + ElRadio, + ElRadioButton, + ElRadioGroup, + ElRate, + ElResult, + ElRow, + ElScrollbar, + ElSelect, + ElOption, + ElOptionGroup, + ElSelectV2, + ElSkeleton, + ElSkeletonItem, + ElSlider, + ElSpace, + ElStatistic, + ElCountdown, + ElSteps, + ElStep, + ElSwitch, + ElTable, + ElTableColumn, + ElTableV2, + ElTabs, + ElTabPane, + ElTag, + ElText, + ElTimePicker, + ElTimeSelect, + ElTimeline, + ElTimelineItem, + ElTooltip, + ElTransfer, + ElTree, + ElTreeSelect, + ElTreeV2, + ElUpload, + ElWatermark, + ElTour, + ElTourStep, + ElAnchor, + ElAnchorLink, + ElSegmented, + ElMention, + ElSplitter, + ElSplitterPanel + ]; + +//#endregion +//#region ../../packages/components/infinite-scroll/src/index.ts + const SCOPE$1 = "ElInfiniteScroll"; + const CHECK_INTERVAL = 50; + const DEFAULT_DELAY = 200; + const DEFAULT_DISTANCE = 0; + const attributes = { + delay: { + type: Number, + default: DEFAULT_DELAY + }, + distance: { + type: Number, + default: DEFAULT_DISTANCE + }, + disabled: { + type: Boolean, + default: false + }, + immediate: { + type: Boolean, + default: true + } + }; + const getScrollOptions = (el, instance) => { + return Object.entries(attributes).reduce((acm, [name, option]) => { + const { type, default: defaultValue } = option; + const attrVal = el.getAttribute(`infinite-scroll-${name}`); + let value = instance[attrVal] ?? attrVal ?? defaultValue; + value = value === "false" ? false : value; + value = type(value); + acm[name] = Number.isNaN(value) ? defaultValue : value; + return acm; + }, {}); + }; + const destroyObserver = (el) => { + const { observer } = el[SCOPE$1]; + if (observer) { + observer.disconnect(); + delete el[SCOPE$1].observer; + } + }; + const handleScroll = (el, cb) => { + const { container, containerEl, instance, observer, lastScrollTop } = el[SCOPE$1]; + const { disabled, distance } = getScrollOptions(el, instance); + const { clientHeight, scrollHeight, scrollTop } = containerEl; + const delta = scrollTop - lastScrollTop; + el[SCOPE$1].lastScrollTop = scrollTop; + if (observer || disabled || delta < 0) return; + let shouldTrigger = false; + if (container === el) shouldTrigger = scrollHeight - (clientHeight + scrollTop) <= distance; + else { + const { clientTop, scrollHeight: height } = el; + const offsetTop = getOffsetTopDistance(el, containerEl); + shouldTrigger = scrollTop + clientHeight >= offsetTop + clientTop + height - distance; + } + if (shouldTrigger) cb.call(instance); + }; + function checkFull(el, cb) { + const { containerEl, instance } = el[SCOPE$1]; + const { disabled } = getScrollOptions(el, instance); + if (disabled || containerEl.clientHeight === 0) return; + if (containerEl.scrollHeight <= containerEl.clientHeight) cb.call(instance); + else destroyObserver(el); + } + const InfiniteScroll = { + async mounted(el, binding) { + const { instance, value: cb } = binding; + useDeprecated({ + scope: SCOPE$1, + 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" + }, true); + if (!isFunction$1(cb)) throwError(SCOPE$1, "'v-infinite-scroll' binding value must be a function"); + await (0, vue.nextTick)(); + const { delay, immediate } = getScrollOptions(el, instance); + const container = getScrollContainer(el, true); + const containerEl = container === window ? document.documentElement : container; + const onScroll = throttle(handleScroll.bind(null, el, cb), delay); + if (!container) return; + el[SCOPE$1] = { + instance, + container, + containerEl, + delay, + cb, + onScroll, + lastScrollTop: containerEl.scrollTop + }; + if (immediate) { + const observer = new MutationObserver(throttle(checkFull.bind(null, el, cb), CHECK_INTERVAL)); + el[SCOPE$1].observer = observer; + observer.observe(el, { + childList: true, + subtree: true + }); + checkFull(el, cb); + } + container.addEventListener("scroll", onScroll); + }, + unmounted(el) { + if (!el[SCOPE$1]) return; + const { container, onScroll } = el[SCOPE$1]; + container?.removeEventListener("scroll", onScroll); + destroyObserver(el); + }, + async updated(el) { + if (!el[SCOPE$1]) await (0, vue.nextTick)(); + else { + const { containerEl, cb, observer } = el[SCOPE$1]; + if (containerEl.clientHeight && observer) checkFull(el, cb); + } + } + }; + +//#endregion +//#region ../../packages/components/infinite-scroll/index.ts + const _InfiniteScroll = InfiniteScroll; + _InfiniteScroll.install = (app) => { + app.directive("InfiniteScroll", _InfiniteScroll); + }; + const ElInfiniteScroll = _InfiniteScroll; + +//#endregion +//#region ../../packages/components/loading/src/loading.ts + function createLoadingComponent(options, appContext) { + let afterLeaveTimer; + const afterLeaveFlag = (0, vue.ref)(false); + const data = (0, vue.reactive)({ + ...options, + originalPosition: "", + originalOverflow: "", + visible: false + }); + function setText(text) { + data.text = text; + } + function destroySelf() { + const target = data.parent; + const ns = vm.ns; + if (!target.vLoadingAddClassList) { + let loadingNumber = target.getAttribute("loading-number"); + loadingNumber = Number.parseInt(loadingNumber) - 1; + if (!loadingNumber) { + removeClass(target, ns.bm("parent", "relative")); + target.removeAttribute("loading-number"); + } else target.setAttribute("loading-number", loadingNumber.toString()); + removeClass(target, ns.bm("parent", "hidden")); + } + removeElLoadingChild(); + loadingInstance.unmount(); + } + function removeElLoadingChild() { + vm.$el?.parentNode?.removeChild(vm.$el); + } + function close() { + if (options.beforeClose && !options.beforeClose()) return; + afterLeaveFlag.value = true; + clearTimeout(afterLeaveTimer); + afterLeaveTimer = setTimeout(handleAfterLeave, 400); + data.visible = false; + options.closed?.(); + } + function handleAfterLeave() { + if (!afterLeaveFlag.value) return; + const target = data.parent; + afterLeaveFlag.value = false; + target.vLoadingAddClassList = void 0; + destroySelf(); + } + const loadingInstance = (0, vue.createApp)((0, vue.defineComponent)({ + name: "ElLoading", + setup(_, { expose }) { + const { ns, zIndex } = useGlobalComponentSettings("loading"); + expose({ + ns, + zIndex + }); + return () => { + const svg = data.spinner || data.svg; + const spinner = (0, vue.h)("svg", { + class: "circular", + viewBox: data.svgViewBox ? data.svgViewBox : "0 0 50 50", + ...svg ? { innerHTML: svg } : {} + }, [(0, vue.h)("circle", { + class: "path", + cx: "25", + cy: "25", + r: "20", + fill: "none" + })]); + const spinnerText = data.text ? (0, vue.h)("p", { class: ns.b("text") }, [data.text]) : void 0; + return (0, vue.h)(vue.Transition, { + name: ns.b("fade"), + onAfterLeave: handleAfterLeave + }, { default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createVNode)("div", { + style: { backgroundColor: data.background || "" }, + class: [ + ns.b("mask"), + data.customClass, + ns.is("fullscreen", data.fullscreen) + ] + }, [(0, vue.h)("div", { class: ns.b("spinner") }, [spinner, spinnerText])]), [[vue.vShow, data.visible]])]) }); + }; + } + })); + Object.assign(loadingInstance._context, appContext ?? {}); + const vm = loadingInstance.mount(document.createElement("div")); + return { + ...(0, vue.toRefs)(data), + setText, + removeElLoadingChild, + close, + handleAfterLeave, + vm, + get $el() { + return vm.$el; + } + }; + } + +//#endregion +//#region ../../packages/components/loading/src/service.ts + let fullscreenInstance = void 0; + const Loading = function(options = {}, context) { + if (!isClient) return void 0; + const resolved = resolveOptions(options); + if (resolved.fullscreen && fullscreenInstance) return fullscreenInstance; + const instance = createLoadingComponent({ + ...resolved, + closed: () => { + resolved.closed?.(); + if (resolved.fullscreen) fullscreenInstance = void 0; + } + }, context ?? Loading._context); + addStyle(resolved, resolved.parent, instance); + addClassList(resolved, resolved.parent, instance); + resolved.parent.vLoadingAddClassList = () => addClassList(resolved, resolved.parent, instance); + /** + * add loading-number to parent. + * because if a fullscreen loading is triggered when somewhere + * a v-loading.body was triggered before and it's parent is + * document.body which with a margin , the fullscreen loading's + * destroySelf function will remove 'el-loading-parent--relative', + * and then the position of v-loading.body will be error. + */ + let loadingNumber = resolved.parent.getAttribute("loading-number"); + if (!loadingNumber) loadingNumber = "1"; + else loadingNumber = `${Number.parseInt(loadingNumber) + 1}`; + resolved.parent.setAttribute("loading-number", loadingNumber); + resolved.parent.appendChild(instance.$el); + (0, vue.nextTick)(() => instance.visible.value = resolved.visible); + if (resolved.fullscreen) fullscreenInstance = instance; + return instance; + }; + const resolveOptions = (options) => { + let target; + if (isString(options.target)) target = document.querySelector(options.target) ?? document.body; + else target = options.target || document.body; + return { + parent: target === document.body || options.body ? document.body : target, + background: options.background || "", + svg: options.svg || "", + svgViewBox: options.svgViewBox || "", + spinner: options.spinner || false, + text: options.text || "", + fullscreen: target === document.body && (options.fullscreen ?? true), + lock: options.lock ?? false, + customClass: options.customClass || "", + visible: options.visible ?? true, + beforeClose: options.beforeClose, + closed: options.closed, + target + }; + }; + const addStyle = async (options, parent, instance) => { + const { nextZIndex } = instance.vm.zIndex || instance.vm._.exposed.zIndex; + const maskStyle = {}; + if (options.fullscreen) { + instance.originalPosition.value = getStyle(document.body, "position"); + instance.originalOverflow.value = getStyle(document.body, "overflow"); + maskStyle.zIndex = nextZIndex(); + } else if (options.parent === document.body) { + instance.originalPosition.value = getStyle(document.body, "position"); + /** + * await dom render when visible is true in init, + * because some component's height maybe 0. + * e.g. el-table. + */ + await (0, vue.nextTick)(); + for (const property of ["top", "left"]) { + const scroll = property === "top" ? "scrollTop" : "scrollLeft"; + maskStyle[property] = `${options.target.getBoundingClientRect()[property] + document.body[scroll] + document.documentElement[scroll] - Number.parseInt(getStyle(document.body, `margin-${property}`), 10)}px`; + } + for (const property of ["height", "width"]) maskStyle[property] = `${options.target.getBoundingClientRect()[property]}px`; + } else instance.originalPosition.value = getStyle(parent, "position"); + for (const [key, value] of Object.entries(maskStyle)) instance.$el.style[key] = value; + }; + const addClassList = (options, parent, instance) => { + const ns = instance.vm.ns || instance.vm._.exposed.ns; + if (![ + "absolute", + "fixed", + "sticky" + ].includes(instance.originalPosition.value)) addClass(parent, ns.bm("parent", "relative")); + else removeClass(parent, ns.bm("parent", "relative")); + if (options.fullscreen && options.lock) addClass(parent, ns.bm("parent", "hidden")); + else removeClass(parent, ns.bm("parent", "hidden")); + }; + Loading._context = null; + +//#endregion +//#region ../../packages/components/loading/src/directive.ts + const INSTANCE_KEY = Symbol("ElLoading"); + const getAttributeName = (name) => { + return `element-loading-${hyphenate(name)}`; + }; + const createInstance = (el, binding) => { + const vm = binding.instance; + const getBindingProp = (key) => isObject$1(binding.value) ? binding.value[key] : void 0; + const resolveExpression = (key) => { + return (0, vue.ref)(isString(key) && vm?.[key] || key); + }; + const getProp = (name) => resolveExpression(getBindingProp(name) || el.getAttribute(getAttributeName(name))); + const fullscreen = getBindingProp("fullscreen") ?? binding.modifiers.fullscreen; + const options = { + text: getProp("text"), + svg: getProp("svg"), + svgViewBox: getProp("svgViewBox"), + spinner: getProp("spinner"), + background: getProp("background"), + customClass: getProp("customClass"), + fullscreen, + target: getBindingProp("target") ?? (fullscreen ? void 0 : el), + body: getBindingProp("body") ?? binding.modifiers.body, + lock: getBindingProp("lock") ?? binding.modifiers.lock + }; + const instance = Loading(options); + instance._context = vLoading._context; + el[INSTANCE_KEY] = { + options, + instance + }; + }; + const updateOptions = (originalOptions, newOptions) => { + for (const key of Object.keys(originalOptions)) if ((0, vue.isRef)(originalOptions[key])) originalOptions[key].value = newOptions[key]; + }; + const vLoading = { + mounted(el, binding) { + if (binding.value) createInstance(el, binding); + }, + updated(el, binding) { + const instance = el[INSTANCE_KEY]; + if (!binding.value) { + instance?.instance.close(); + el[INSTANCE_KEY] = null; + return; + } + if (!instance) createInstance(el, binding); + else updateOptions(instance.options, isObject$1(binding.value) ? binding.value : { + text: el.getAttribute(getAttributeName("text")), + svg: el.getAttribute(getAttributeName("svg")), + svgViewBox: el.getAttribute(getAttributeName("svgViewBox")), + spinner: el.getAttribute(getAttributeName("spinner")), + background: el.getAttribute(getAttributeName("background")), + customClass: el.getAttribute(getAttributeName("customClass")) + }); + }, + unmounted(el) { + el[INSTANCE_KEY]?.instance.close(); + el[INSTANCE_KEY] = null; + } + }; + vLoading._context = null; + +//#endregion +//#region ../../packages/components/loading/index.ts + const ElLoading = { + install(app) { + Loading._context = app._context; + vLoading._context = app._context; + app.directive("loading", vLoading); + app.config.globalProperties.$loading = Loading; + }, + directive: vLoading, + service: Loading + }; + +//#endregion +//#region ../../packages/components/message/src/message.ts + const messageTypes = [ + "primary", + "success", + "info", + "warning", + "error" + ]; + const messagePlacement = [ + "top", + "top-left", + "top-right", + "bottom", + "bottom-left", + "bottom-right" + ]; + const MESSAGE_DEFAULT_PLACEMENT = "top"; + const messageDefaults = mutable({ + customClass: "", + dangerouslyUseHTMLString: false, + duration: 3e3, + icon: void 0, + id: "", + message: "", + onClose: void 0, + showClose: false, + type: "info", + plain: false, + offset: 16, + placement: void 0, + zIndex: 0, + grouping: false, + repeatNum: 1, + appendTo: isClient ? document.body : void 0 + }); + /** + * @deprecated Removed after 3.0.0, Use `MessageProps` instead. + */ + const messageProps = buildProps({ + customClass: { + type: String, + default: messageDefaults.customClass + }, + dangerouslyUseHTMLString: { + type: Boolean, + default: messageDefaults.dangerouslyUseHTMLString + }, + duration: { + type: Number, + default: messageDefaults.duration + }, + icon: { + type: iconPropType, + default: messageDefaults.icon + }, + id: { + type: String, + default: messageDefaults.id + }, + message: { + type: definePropType([ + String, + Object, + Function + ]), + default: messageDefaults.message + }, + onClose: { + type: definePropType(Function), + default: messageDefaults.onClose + }, + showClose: { + type: Boolean, + default: messageDefaults.showClose + }, + type: { + type: String, + values: messageTypes, + default: messageDefaults.type + }, + plain: { + type: Boolean, + default: messageDefaults.plain + }, + offset: { + type: Number, + default: messageDefaults.offset + }, + placement: { + type: String, + values: messagePlacement, + default: messageDefaults.placement + }, + zIndex: { + type: Number, + default: messageDefaults.zIndex + }, + grouping: { + type: Boolean, + default: messageDefaults.grouping + }, + repeatNum: { + type: Number, + default: messageDefaults.repeatNum + } + }); + const messageEmits = { destroy: () => true }; + +//#endregion +//#region ../../packages/components/message/src/instance.ts + const placementInstances = (0, vue.shallowReactive)({}); + const getOrCreatePlacementInstances = (placement) => { + if (!placementInstances[placement]) placementInstances[placement] = (0, vue.shallowReactive)([]); + return placementInstances[placement]; + }; + const getInstance = (id, placement) => { + const instances = placementInstances[placement] || []; + const idx = instances.findIndex((instance) => instance.id === id); + const current = instances[idx]; + let prev; + if (idx > 0) prev = instances[idx - 1]; + return { + current, + prev + }; + }; + const getLastOffset = (id, placement) => { + const { prev } = getInstance(id, placement); + if (!prev) return 0; + return prev.vm.exposed.bottom.value; + }; + const getOffsetOrSpace = (id, offset, placement) => { + return (placementInstances[placement] || []).findIndex((instance) => instance.id === id) > 0 ? 16 : offset; + }; + +//#endregion +//#region ../../packages/components/message/src/message.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$2 = ["id"]; + const _hoisted_2$2 = ["innerHTML"]; + var message_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElMessage", + __name: "message", + props: messageProps, + emits: messageEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const { Close } = TypeComponents; + const props = __props; + const emit = __emit; + const isStartTransition = (0, vue.ref)(false); + const { ns, zIndex } = useGlobalComponentSettings("message"); + const { currentZIndex, nextZIndex } = zIndex; + const messageRef = (0, vue.ref)(); + const visible = (0, vue.ref)(false); + const height = (0, vue.ref)(0); + let stopTimer = void 0; + const badgeType = (0, vue.computed)(() => props.type ? props.type === "error" ? "danger" : props.type : "info"); + const typeClass = (0, vue.computed)(() => { + const type = props.type; + return { [ns.bm("icon", type)]: type && TypeComponentsMap[type] }; + }); + const iconComponent = (0, vue.computed)(() => props.icon || TypeComponentsMap[props.type] || ""); + const placement = (0, vue.computed)(() => props.placement || MESSAGE_DEFAULT_PLACEMENT); + const lastOffset = (0, vue.computed)(() => getLastOffset(props.id, placement.value)); + const offset = (0, vue.computed)(() => { + return Math.max(getOffsetOrSpace(props.id, props.offset, placement.value) + lastOffset.value, props.offset); + }); + const bottom = (0, vue.computed)(() => height.value + offset.value); + const horizontalClass = (0, vue.computed)(() => { + if (placement.value.includes("left")) return ns.is("left"); + if (placement.value.includes("right")) return ns.is("right"); + return ns.is("center"); + }); + const verticalProperty = (0, vue.computed)(() => placement.value.startsWith("top") ? "top" : "bottom"); + const customStyle = (0, vue.computed)(() => ({ + [verticalProperty.value]: `${offset.value}px`, + zIndex: currentZIndex.value + })); + function startTimer() { + if (props.duration === 0) return; + ({stop: stopTimer} = useTimeoutFn(() => { + close(); + }, props.duration)); + } + function clearTimer() { + stopTimer?.(); + } + function close() { + visible.value = false; + (0, vue.nextTick)(() => { + if (!isStartTransition.value) { + props.onClose?.(); + emit("destroy"); + } + }); + } + function keydown(event) { + if (getEventCode(event) === EVENT_CODE.esc) close(); + } + (0, vue.onMounted)(() => { + startTimer(); + nextZIndex(); + visible.value = true; + }); + (0, vue.watch)(() => props.repeatNum, () => { + clearTimer(); + startTimer(); + }); + useEventListener(document, "keydown", keydown); + useResizeObserver(messageRef, () => { + height.value = messageRef.value.getBoundingClientRect().height; + }); + __expose({ + visible, + bottom, + close + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + name: (0, vue.unref)(ns).b("fade"), + onBeforeEnter: _cache[0] || (_cache[0] = ($event) => isStartTransition.value = true), + onBeforeLeave: __props.onClose, + onAfterLeave: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("destroy")), + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("div", { + id: __props.id, + ref_key: "messageRef", + ref: messageRef, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + { [(0, vue.unref)(ns).m(__props.type)]: __props.type }, + (0, vue.unref)(ns).is("closable", __props.showClose), + (0, vue.unref)(ns).is("plain", __props.plain), + (0, vue.unref)(ns).is("bottom", verticalProperty.value === "bottom"), + horizontalClass.value, + __props.customClass + ]), + style: (0, vue.normalizeStyle)(customStyle.value), + role: "alert", + onMouseenter: clearTimer, + onMouseleave: startTimer + }, [ + __props.repeatNum > 1 ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElBadge), { + key: 0, + value: __props.repeatNum, + type: badgeType.value, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("badge")) + }, null, 8, [ + "value", + "type", + "class" + ])) : (0, vue.createCommentVNode)("v-if", true), + iconComponent.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon"), typeClass.value]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(iconComponent.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [!__props.dangerouslyUseHTMLString ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) + }, (0, vue.toDisplayString)(__props.message), 3)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.createCommentVNode)(" Caution here, message could've been compromised, never use user's input as message "), (0, vue.createElementVNode)("p", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")), + innerHTML: __props.message + }, null, 10, _hoisted_2$2)], 2112))]), + __props.showClose ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("closeBtn")), + onClick: (0, vue.withModifiers)(close, ["stop"]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(Close))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true) + ], 46, _hoisted_1$2), [[vue.vShow, visible.value]])]), + _: 3 + }, 8, ["name", "onBeforeLeave"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/message/src/message.vue + var message_default = message_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/message/src/method.ts + let seed$1 = 1; + const normalizeAppendTo = (normalized) => { + if (!normalized.appendTo) normalized.appendTo = document.body; + else if (isString(normalized.appendTo)) { + let appendTo = document.querySelector(normalized.appendTo); + if (!isElement$1(appendTo)) { + /* @__PURE__ */ debugWarn("ElMessage", "the appendTo option is not an HTMLElement. Falling back to document.body."); + appendTo = document.body; + } + normalized.appendTo = appendTo; + } + }; + const normalizePlacement = (normalized) => { + if (!normalized.placement && isString(messageConfig.placement) && messageConfig.placement) normalized.placement = messageConfig.placement; + if (!normalized.placement) normalized.placement = MESSAGE_DEFAULT_PLACEMENT; + if (!messagePlacement.includes(normalized.placement)) { + /* @__PURE__ */ debugWarn("ElMessage", `Invalid placement: ${normalized.placement}. Falling back to '${MESSAGE_DEFAULT_PLACEMENT}'.`); + normalized.placement = MESSAGE_DEFAULT_PLACEMENT; + } + }; + const normalizeOptions = (params) => { + const options = !params || isString(params) || (0, vue.isVNode)(params) || isFunction$1(params) ? { message: params } : params; + const normalized = { + ...messageDefaults, + ...options + }; + normalizeAppendTo(normalized); + normalizePlacement(normalized); + if (isBoolean(messageConfig.grouping) && !normalized.grouping) normalized.grouping = messageConfig.grouping; + if (isNumber(messageConfig.duration) && normalized.duration === 3e3) normalized.duration = messageConfig.duration; + if (isNumber(messageConfig.offset) && normalized.offset === 16) normalized.offset = messageConfig.offset; + if (isBoolean(messageConfig.showClose) && !normalized.showClose) normalized.showClose = messageConfig.showClose; + if (isBoolean(messageConfig.plain) && !normalized.plain) normalized.plain = messageConfig.plain; + return normalized; + }; + const closeMessage = (instance) => { + const instances = placementInstances[instance.props.placement || MESSAGE_DEFAULT_PLACEMENT]; + const idx = instances.indexOf(instance); + if (idx === -1) return; + instances.splice(idx, 1); + const { handler } = instance; + handler.close(); + }; + const createMessage = ({ appendTo, ...options }, context) => { + const id = `message_${seed$1++}`; + const userOnClose = options.onClose; + const container = document.createElement("div"); + const props = { + ...options, + id, + onClose: () => { + userOnClose?.(); + closeMessage(instance); + }, + onDestroy: () => { + (0, vue.render)(null, container); + } + }; + const vnode = (0, vue.createVNode)(message_default, props, isFunction$1(props.message) || (0, vue.isVNode)(props.message) ? { default: isFunction$1(props.message) ? props.message : () => props.message } : null); + vnode.appContext = context || message._context; + (0, vue.render)(vnode, container); + appendTo.appendChild(container.firstElementChild); + const vm = vnode.component; + const instance = { + id, + vnode, + vm, + handler: { close: () => { + vm.exposed.close(); + } }, + props: vnode.component.props + }; + return instance; + }; + const message = (options = {}, context) => { + if (!isClient) return { close: () => void 0 }; + const normalized = normalizeOptions(options); + const instances = getOrCreatePlacementInstances(normalized.placement || MESSAGE_DEFAULT_PLACEMENT); + if (normalized.grouping && instances.length) { + const instance = instances.find(({ vnode: vm }) => vm.props?.message === normalized.message); + if (instance) { + instance.props.repeatNum += 1; + instance.props.type = normalized.type; + return instance.handler; + } + } + if (isNumber(messageConfig.max) && instances.length >= messageConfig.max) return { close: () => void 0 }; + const instance = createMessage(normalized, context); + instances.push(instance); + return instance.handler; + }; + messageTypes.forEach((type) => { + message[type] = (options = {}, appContext) => { + return message({ + ...normalizeOptions(options), + type + }, appContext); + }; + }); + function closeAll$1(type) { + for (const placement in placementInstances) if (hasOwn(placementInstances, placement)) { + const instances = [...placementInstances[placement]]; + for (const instance of instances) if (!type || type === instance.props.type) instance.handler.close(); + } + } + function closeAllByPlacement(placement) { + if (!placementInstances[placement]) return; + [...placementInstances[placement]].forEach((instance) => instance.handler.close()); + } + message.closeAll = closeAll$1; + message.closeAllByPlacement = closeAllByPlacement; + message._context = null; + +//#endregion +//#region ../../packages/components/message/index.ts + const ElMessage = withInstallFunction(message, "$message"); + +//#endregion +//#region ../../packages/components/message-box/src/index.vue?vue&type=script&lang.ts + var index_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElMessageBox", + directives: { TrapFocus }, + components: { + ElButton, + ElFocusTrap: focus_trap_default, + ElInput, + ElOverlay, + ElIcon, + ...TypeComponents + }, + inheritAttrs: false, + props: { + buttonSize: { + type: String, + validator: isValidComponentSize + }, + modal: { + type: Boolean, + default: true + }, + lockScroll: { + type: Boolean, + default: true + }, + showClose: { + type: Boolean, + default: true + }, + closeOnClickModal: { + type: Boolean, + default: true + }, + closeOnPressEscape: { + type: Boolean, + default: true + }, + closeOnHashChange: { + type: Boolean, + default: true + }, + center: Boolean, + draggable: Boolean, + overflow: Boolean, + roundButton: Boolean, + container: { + type: String, + default: "body" + }, + boxType: { + type: String, + default: "" + } + }, + emits: ["vanish", "action"], + setup(props, { emit }) { + const { locale, zIndex, ns, size: btnSize } = useGlobalComponentSettings("message-box", (0, vue.computed)(() => props.buttonSize)); + const { t } = locale; + const { nextZIndex } = zIndex; + const visible = (0, vue.ref)(false); + const state = (0, vue.reactive)({ + autofocus: true, + beforeClose: null, + callback: null, + cancelButtonText: "", + cancelButtonClass: "", + confirmButtonText: "", + confirmButtonClass: "", + cancelButtonType: "", + confirmButtonType: "primary", + customClass: "", + customStyle: {}, + dangerouslyUseHTMLString: false, + distinguishCancelAndClose: false, + icon: "", + closeIcon: "", + inputPattern: null, + inputPlaceholder: "", + inputType: "text", + inputValue: "", + inputValidator: void 0, + inputErrorMessage: "", + message: "", + modalFade: true, + modalClass: "", + showCancelButton: false, + showConfirmButton: true, + type: "", + title: void 0, + showInput: false, + action: "", + confirmButtonLoading: false, + cancelButtonLoading: false, + confirmButtonLoadingIcon: (0, vue.markRaw)(loading_default), + cancelButtonLoadingIcon: (0, vue.markRaw)(loading_default), + confirmButtonDisabled: false, + editorErrorMessage: "", + validateError: false, + zIndex: nextZIndex() + }); + const typeClass = (0, vue.computed)(() => { + const type = state.type; + return { [ns.bm("icon", type)]: type && TypeComponentsMap[type] }; + }); + const contentId = useId(); + const inputId = useId(); + const iconComponent = (0, vue.computed)(() => { + const type = state.type; + return state.icon || type && TypeComponentsMap[type] || ""; + }); + const hasMessage = (0, vue.computed)(() => !!state.message); + const rootRef = (0, vue.ref)(); + const headerRef = (0, vue.ref)(); + const focusStartRef = (0, vue.ref)(); + const inputRef = (0, vue.ref)(); + const confirmRef = (0, vue.ref)(); + const confirmButtonClasses = (0, vue.computed)(() => state.confirmButtonClass); + (0, vue.watch)(() => state.inputValue, async (val) => { + await (0, vue.nextTick)(); + if (props.boxType === "prompt" && val) validate(); + }, { immediate: true }); + (0, vue.watch)(() => visible.value, (val) => { + if (val) { + if (props.boxType !== "prompt") if (state.autofocus) focusStartRef.value = confirmRef.value?.$el ?? rootRef.value; + else focusStartRef.value = rootRef.value; + state.zIndex = nextZIndex(); + } + if (props.boxType !== "prompt") return; + if (val) (0, vue.nextTick)().then(() => { + if (inputRef.value && inputRef.value.$el) if (state.autofocus) focusStartRef.value = getInputElement() ?? rootRef.value; + else focusStartRef.value = rootRef.value; + }); + else { + state.editorErrorMessage = ""; + state.validateError = false; + } + }); + const { isDragging } = useDraggable(rootRef, headerRef, (0, vue.computed)(() => props.draggable), (0, vue.computed)(() => props.overflow)); + (0, vue.onMounted)(async () => { + await (0, vue.nextTick)(); + if (props.closeOnHashChange) window.addEventListener("hashchange", doClose); + }); + (0, vue.onBeforeUnmount)(() => { + if (props.closeOnHashChange) window.removeEventListener("hashchange", doClose); + }); + function doClose() { + if (!visible.value) return; + visible.value = false; + (0, vue.nextTick)(() => { + if (state.action) emit("action", state.action); + }); + } + const handleWrapperClick = () => { + if (props.closeOnClickModal) handleAction(state.distinguishCancelAndClose ? "close" : "cancel"); + }; + const overlayEvent = useSameTarget(handleWrapperClick); + const handleInputEnter = (e) => { + if (state.inputType !== "textarea" && !inputRef.value?.isComposing) { + e.preventDefault(); + return handleAction("confirm"); + } + }; + const handleAction = (action) => { + if (props.boxType === "prompt" && action === "confirm" && !validate()) return; + state.action = action; + if (state.beforeClose) state.beforeClose?.(action, state, doClose); + else doClose(); + }; + const validate = () => { + if (props.boxType === "prompt") { + const inputPattern = state.inputPattern; + if (inputPattern && !inputPattern.test(state.inputValue || "")) { + state.editorErrorMessage = state.inputErrorMessage || t("el.messagebox.error"); + state.validateError = true; + return false; + } + const inputValidator = state.inputValidator; + if (isFunction$1(inputValidator)) { + const validateResult = inputValidator(state.inputValue); + if (validateResult === false) { + state.editorErrorMessage = state.inputErrorMessage || t("el.messagebox.error"); + state.validateError = true; + return false; + } + if (isString(validateResult)) { + state.editorErrorMessage = validateResult; + state.validateError = true; + return false; + } + } + } + state.editorErrorMessage = ""; + state.validateError = false; + return true; + }; + const getInputElement = () => { + const inputRefs = inputRef.value?.$refs; + return inputRefs?.input ?? inputRefs?.textarea; + }; + const handleClose = () => { + handleAction("close"); + }; + const onCloseRequested = () => { + if (props.closeOnPressEscape) handleClose(); + }; + if (props.lockScroll) useLockscreen(visible, { ns }); + return { + ...(0, vue.toRefs)(state), + ns, + overlayEvent, + visible, + hasMessage, + typeClass, + contentId, + inputId, + btnSize, + iconComponent, + confirmButtonClasses, + rootRef, + focusStartRef, + headerRef, + inputRef, + isDragging, + confirmRef, + doClose, + handleClose, + onCloseRequested, + handleWrapperClick, + handleInputEnter, + handleAction, + t + }; + } + }); + +//#endregion +//#region ../../packages/components/message-box/src/index.vue + const _hoisted_1$1 = ["aria-label", "aria-describedby"]; + const _hoisted_2$1 = ["aria-label"]; + const _hoisted_3$1 = ["id"]; + function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + const _component_el_input = (0, vue.resolveComponent)("el-input"); + const _component_el_button = (0, vue.resolveComponent)("el-button"); + const _component_el_focus_trap = (0, vue.resolveComponent)("el-focus-trap"); + const _component_el_overlay = (0, vue.resolveComponent)("el-overlay"); + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + name: "fade-in-linear", + onAfterLeave: _cache[11] || (_cache[11] = ($event) => _ctx.$emit("vanish")), + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createVNode)(_component_el_overlay, { + "z-index": _ctx.zIndex, + "overlay-class": [_ctx.ns.is("message-box"), _ctx.modalClass], + mask: _ctx.modal + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + role: "dialog", + "aria-label": _ctx.title, + "aria-modal": "true", + "aria-describedby": !_ctx.showInput ? _ctx.contentId : void 0, + class: (0, vue.normalizeClass)(`${_ctx.ns.namespace.value}-overlay-message-box`), + onClick: _cache[8] || (_cache[8] = (...args) => _ctx.overlayEvent.onClick && _ctx.overlayEvent.onClick(...args)), + onMousedown: _cache[9] || (_cache[9] = (...args) => _ctx.overlayEvent.onMousedown && _ctx.overlayEvent.onMousedown(...args)), + onMouseup: _cache[10] || (_cache[10] = (...args) => _ctx.overlayEvent.onMouseup && _ctx.overlayEvent.onMouseup(...args)) + }, [(0, vue.createVNode)(_component_el_focus_trap, { + loop: "", + trapped: _ctx.visible, + "focus-trap-el": _ctx.rootRef, + "focus-start-el": _ctx.focusStartRef, + onReleaseRequested: _ctx.onCloseRequested + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "rootRef", + class: (0, vue.normalizeClass)([ + _ctx.ns.b(), + _ctx.customClass, + _ctx.ns.is("draggable", _ctx.draggable), + _ctx.ns.is("dragging", _ctx.isDragging), + { [_ctx.ns.m("center")]: _ctx.center } + ]), + style: (0, vue.normalizeStyle)(_ctx.customStyle), + tabindex: "-1", + onClick: _cache[7] || (_cache[7] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [ + _ctx.title !== null && _ctx.title !== void 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref: "headerRef", + class: (0, vue.normalizeClass)([_ctx.ns.e("header"), { "show-close": _ctx.showClose }]) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.ns.e("title")) }, [_ctx.iconComponent && _ctx.center ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 0, + class: (0, vue.normalizeClass)([_ctx.ns.e("status"), _ctx.typeClass]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.iconComponent)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.title), 1)], 2), _ctx.showClose ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + class: (0, vue.normalizeClass)(_ctx.ns.e("headerbtn")), + "aria-label": _ctx.t("el.messagebox.close"), + onClick: _cache[0] || (_cache[0] = ($event) => _ctx.handleAction(_ctx.distinguishCancelAndClose ? "close" : "cancel")), + onKeydown: _cache[1] || (_cache[1] = (0, vue.withKeys)((0, vue.withModifiers)(($event) => _ctx.handleAction(_ctx.distinguishCancelAndClose ? "close" : "cancel"), ["prevent"]), ["enter"])) + }, [(0, vue.createVNode)(_component_el_icon, { class: (0, vue.normalizeClass)(_ctx.ns.e("close")) }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.closeIcon || "close")))]), + _: 1 + }, 8, ["class"])], 42, _hoisted_2$1)) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + id: _ctx.contentId, + class: (0, vue.normalizeClass)(_ctx.ns.e("content")) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.ns.e("container")) }, [_ctx.iconComponent && !_ctx.center && _ctx.hasMessage ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 0, + class: (0, vue.normalizeClass)([_ctx.ns.e("status"), _ctx.typeClass]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.iconComponent)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), _ctx.hasMessage ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)(_ctx.ns.e("message")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [!_ctx.dangerouslyUseHTMLString ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.showInput ? "label" : "p"), { + key: 0, + for: _ctx.showInput ? _ctx.inputId : void 0, + textContent: (0, vue.toDisplayString)(_ctx.message) + }, null, 8, ["for", "textContent"])) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.showInput ? "label" : "p"), { + key: 1, + for: _ctx.showInput ? _ctx.inputId : void 0, + innerHTML: _ctx.message + }, null, 8, ["for", "innerHTML"]))])], 2)) : (0, vue.createCommentVNode)("v-if", true)], 2), (0, vue.withDirectives)((0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.ns.e("input")) }, [(0, vue.createVNode)(_component_el_input, { + id: _ctx.inputId, + ref: "inputRef", + modelValue: _ctx.inputValue, + "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.inputValue = $event), + type: _ctx.inputType, + placeholder: _ctx.inputPlaceholder, + "aria-invalid": _ctx.validateError, + class: (0, vue.normalizeClass)({ invalid: _ctx.validateError }), + onKeydown: (0, vue.withKeys)(_ctx.handleInputEnter, ["enter"]) + }, null, 8, [ + "id", + "modelValue", + "type", + "placeholder", + "aria-invalid", + "class", + "onKeydown" + ]), (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)(_ctx.ns.e("errormsg")), + style: (0, vue.normalizeStyle)({ visibility: !!_ctx.editorErrorMessage ? "visible" : "hidden" }) + }, (0, vue.toDisplayString)(_ctx.editorErrorMessage), 7)], 2), [[vue.vShow, _ctx.showInput]])], 10, _hoisted_3$1), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.ns.e("btns")) }, [_ctx.showCancelButton ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_button, { + key: 0, + type: _ctx.cancelButtonType === "text" ? "" : _ctx.cancelButtonType, + text: _ctx.cancelButtonType === "text", + loading: _ctx.cancelButtonLoading, + "loading-icon": _ctx.cancelButtonLoadingIcon, + class: (0, vue.normalizeClass)([_ctx.cancelButtonClass]), + round: _ctx.roundButton, + size: _ctx.btnSize, + onClick: _cache[3] || (_cache[3] = ($event) => _ctx.handleAction("cancel")), + onKeydown: _cache[4] || (_cache[4] = (0, vue.withKeys)((0, vue.withModifiers)(($event) => _ctx.handleAction("cancel"), ["prevent"]), ["enter"])) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(_ctx.cancelButtonText || _ctx.t("el.messagebox.cancel")), 1)]), + _: 1 + }, 8, [ + "type", + "text", + "loading", + "loading-icon", + "class", + "round", + "size" + ])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.withDirectives)((0, vue.createVNode)(_component_el_button, { + ref: "confirmRef", + type: _ctx.confirmButtonType === "text" ? "" : _ctx.confirmButtonType, + text: _ctx.confirmButtonType === "text", + loading: _ctx.confirmButtonLoading, + "loading-icon": _ctx.confirmButtonLoadingIcon, + class: (0, vue.normalizeClass)([_ctx.confirmButtonClasses]), + round: _ctx.roundButton, + disabled: _ctx.confirmButtonDisabled, + size: _ctx.btnSize, + onClick: _cache[5] || (_cache[5] = ($event) => _ctx.handleAction("confirm")), + onKeydown: _cache[6] || (_cache[6] = (0, vue.withKeys)((0, vue.withModifiers)(($event) => _ctx.handleAction("confirm"), ["prevent"]), ["enter"])) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(_ctx.confirmButtonText || _ctx.t("el.messagebox.confirm")), 1)]), + _: 1 + }, 8, [ + "type", + "text", + "loading", + "loading-icon", + "class", + "round", + "disabled", + "size" + ]), [[vue.vShow, _ctx.showConfirmButton]])], 2) + ], 6)]), + _: 3 + }, 8, [ + "trapped", + "focus-trap-el", + "focus-start-el", + "onReleaseRequested" + ])], 42, _hoisted_1$1)]), + _: 3 + }, 8, [ + "z-index", + "overlay-class", + "mask" + ]), [[vue.vShow, _ctx.visible]])]), + _: 3 + }); + } + var src_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_lang_default, [["render", _sfc_render]]); + +//#endregion +//#region ../../packages/components/message-box/src/messageBox.ts + const messageInstance = /* @__PURE__ */ new Map(); + const getAppendToElement = (props) => { + let appendTo = document.body; + if (props.appendTo) { + if (isString(props.appendTo)) appendTo = document.querySelector(props.appendTo); + if (isElement$1(props.appendTo)) appendTo = props.appendTo; + if (!isElement$1(appendTo)) { + /* @__PURE__ */ debugWarn("ElMessageBox", "the appendTo option is not an HTMLElement. Falling back to document.body."); + appendTo = document.body; + } + } + return appendTo; + }; + const initInstance = (props, container, appContext = null) => { + const vnode = (0, vue.createVNode)(src_default, props, isFunction$1(props.message) || (0, vue.isVNode)(props.message) ? { default: isFunction$1(props.message) ? props.message : () => props.message } : null); + vnode.appContext = appContext; + (0, vue.render)(vnode, container); + getAppendToElement(props).appendChild(container.firstElementChild); + return vnode.component; + }; + const genContainer = () => { + return document.createElement("div"); + }; + const showMessage = (options, appContext) => { + const container = genContainer(); + options.onVanish = () => { + (0, vue.render)(null, container); + messageInstance.delete(vm); + }; + options.onAction = (action) => { + const currentMsg = messageInstance.get(vm); + let resolve; + if (options.showInput) resolve = { + value: vm.inputValue, + action + }; + else resolve = action; + if (options.callback) options.callback(resolve, instance.proxy); + else if (action === "cancel" || action === "close") if (options.distinguishCancelAndClose && action !== "cancel") currentMsg.reject("close"); + else currentMsg.reject("cancel"); + else currentMsg.resolve(resolve); + }; + const instance = initInstance(options, container, appContext); + const vm = instance.proxy; + for (const prop in options) if (hasOwn(options, prop) && !hasOwn(vm.$props, prop)) if (prop === "closeIcon" && isObject$1(options[prop])) vm[prop] = (0, vue.markRaw)(options[prop]); + else vm[prop] = options[prop]; + vm.visible = true; + return vm; + }; + function MessageBox(options, appContext = null) { + if (!isClient) return Promise.reject(); + let callback; + if (isString(options) || (0, vue.isVNode)(options)) options = { message: options }; + else callback = options.callback; + return new Promise((resolve, reject) => { + const vm = showMessage(options, appContext ?? MessageBox._context); + messageInstance.set(vm, { + options, + callback, + resolve, + reject + }); + }); + } + const MESSAGE_BOX_VARIANTS = [ + "alert", + "confirm", + "prompt" + ]; + const MESSAGE_BOX_DEFAULT_OPTS = { + alert: { + closeOnPressEscape: false, + closeOnClickModal: false + }, + confirm: { showCancelButton: true }, + prompt: { + showCancelButton: true, + showInput: true + } + }; + MESSAGE_BOX_VARIANTS.forEach((boxType) => { + MessageBox[boxType] = messageBoxFactory(boxType); + }); + function messageBoxFactory(boxType) { + return (message, title, options, appContext) => { + let titleOrOpts = ""; + if (isObject$1(title)) { + options = title; + titleOrOpts = ""; + } else if (isUndefined(title)) titleOrOpts = ""; + else titleOrOpts = title; + return MessageBox(Object.assign({ + title: titleOrOpts, + message, + type: "", + ...MESSAGE_BOX_DEFAULT_OPTS[boxType] + }, options, { boxType }), appContext); + }; + } + MessageBox.close = () => { + messageInstance.forEach((_, vm) => { + vm.doClose(); + }); + messageInstance.clear(); + }; + MessageBox._context = null; + +//#endregion +//#region ../../packages/components/message-box/index.ts + const _MessageBox = MessageBox; + _MessageBox.install = (app) => { + _MessageBox._context = app._context; + app.config.globalProperties.$msgbox = _MessageBox; + app.config.globalProperties.$messageBox = _MessageBox; + app.config.globalProperties.$alert = _MessageBox.alert; + app.config.globalProperties.$confirm = _MessageBox.confirm; + app.config.globalProperties.$prompt = _MessageBox.prompt; + }; + const ElMessageBox = _MessageBox; + +//#endregion +//#region ../../packages/components/notification/src/notification.ts + const notificationTypes = [ + "primary", + "success", + "info", + "warning", + "error" + ]; + /** + * @deprecated Removed after 3.0.0, Use `NotificationProps` instead. + */ + const notificationProps = buildProps({ + customClass: { + type: String, + default: "" + }, + dangerouslyUseHTMLString: Boolean, + duration: { + type: Number, + default: 4500 + }, + icon: { type: iconPropType }, + id: { + type: String, + default: "" + }, + message: { + type: definePropType([ + String, + Object, + Function + ]), + default: "" + }, + offset: { + type: Number, + default: 0 + }, + onClick: { + type: definePropType(Function), + default: () => void 0 + }, + onClose: { + type: definePropType(Function), + required: true + }, + position: { + type: String, + values: [ + "top-right", + "top-left", + "bottom-right", + "bottom-left" + ], + default: "top-right" + }, + showClose: { + type: Boolean, + default: true + }, + title: { + type: String, + default: "" + }, + type: { + type: String, + values: [...notificationTypes, ""], + default: "" + }, + zIndex: Number, + closeIcon: { + type: iconPropType, + default: close_default + } + }); + const notificationEmits = { destroy: () => true }; + +//#endregion +//#region ../../packages/components/notification/src/notification.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1 = ["id"]; + const _hoisted_2 = ["textContent"]; + const _hoisted_3 = { key: 0 }; + const _hoisted_4 = ["innerHTML"]; + var notification_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElNotification", + __name: "notification", + props: notificationProps, + emits: notificationEmits, + setup(__props, { expose: __expose }) { + const props = __props; + const { ns, zIndex } = useGlobalComponentSettings("notification"); + const { nextZIndex, currentZIndex } = zIndex; + const visible = (0, vue.ref)(false); + let timer = void 0; + const typeClass = (0, vue.computed)(() => { + const type = props.type; + return type && TypeComponentsMap[props.type] ? ns.m(type) : ""; + }); + const iconComponent = (0, vue.computed)(() => { + if (!props.type) return props.icon; + return TypeComponentsMap[props.type] || props.icon; + }); + const horizontalClass = (0, vue.computed)(() => props.position.endsWith("right") ? "right" : "left"); + const verticalProperty = (0, vue.computed)(() => props.position.startsWith("top") ? "top" : "bottom"); + const positionStyle = (0, vue.computed)(() => { + return { + [verticalProperty.value]: `${props.offset}px`, + zIndex: props.zIndex ?? currentZIndex.value + }; + }); + function startTimer() { + if (props.duration > 0) ({stop: timer} = useTimeoutFn(() => { + if (visible.value) close(); + }, props.duration)); + } + function clearTimer() { + timer?.(); + } + function close() { + visible.value = false; + } + function onKeydown(event) { + switch (getEventCode(event)) { + case EVENT_CODE.delete: + case EVENT_CODE.backspace: + clearTimer(); + break; + case EVENT_CODE.esc: + if (visible.value) close(); + break; + default: + startTimer(); + break; + } + } + (0, vue.onMounted)(() => { + startTimer(); + nextZIndex(); + visible.value = true; + }); + useEventListener(document, "keydown", onKeydown); + __expose({ + visible, + close + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + name: (0, vue.unref)(ns).b("fade"), + onBeforeLeave: __props.onClose, + onAfterLeave: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("destroy")), + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("div", { + id: __props.id, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + __props.customClass, + horizontalClass.value + ]), + style: (0, vue.normalizeStyle)(positionStyle.value), + role: "alert", + onMouseenter: clearTimer, + onMouseleave: startTimer, + onClick: _cache[0] || (_cache[0] = (...args) => __props.onClick && __props.onClick(...args)) + }, [iconComponent.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon"), typeClass.value]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(iconComponent.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("group")) }, [ + (0, vue.createElementVNode)("h2", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")), + textContent: (0, vue.toDisplayString)(__props.title) + }, null, 10, _hoisted_2), + (0, vue.withDirectives)((0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")), + style: (0, vue.normalizeStyle)(!!__props.title ? void 0 : { margin: 0 }) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [!__props.dangerouslyUseHTMLString ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", _hoisted_3, (0, vue.toDisplayString)(__props.message), 1)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.createCommentVNode)(" Caution here, message could've been compromised, never use user's input as message "), (0, vue.createElementVNode)("p", { innerHTML: __props.message }, null, 8, _hoisted_4)], 2112))])], 6), [[vue.vShow, __props.message]]), + __props.showClose ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("closeBtn")), + onClick: (0, vue.withModifiers)(close, ["stop"]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.closeIcon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true) + ], 2)], 46, _hoisted_1), [[vue.vShow, visible.value]])]), + _: 3 + }, 8, ["name", "onBeforeLeave"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/notification/src/notification.vue + var notification_default = notification_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/notification/src/notify.ts + const notifications = { + "top-left": [], + "top-right": [], + "bottom-left": [], + "bottom-right": [] + }; + const GAP_SIZE = 16; + let seed = 1; + const notify = function(options = {}, context) { + if (!isClient) return { close: () => void 0 }; + if (isString(options) || (0, vue.isVNode)(options)) options = { message: options }; + const position = options.position || "top-right"; + let verticalOffset = options.offset || 0; + notifications[position].forEach(({ vm }) => { + verticalOffset += (vm.el?.offsetHeight || 0) + GAP_SIZE; + }); + verticalOffset += GAP_SIZE; + const id = `notification_${seed++}`; + const userOnClose = options.onClose; + const props = { + ...options, + offset: verticalOffset, + id, + onClose: () => { + close(id, position, userOnClose); + } + }; + let appendTo = document.body; + if (isElement$1(options.appendTo)) appendTo = options.appendTo; + else if (isString(options.appendTo)) appendTo = document.querySelector(options.appendTo); + if (!isElement$1(appendTo)) { + /* @__PURE__ */ debugWarn("ElNotification", "the appendTo option is not an HTMLElement. Falling back to document.body."); + appendTo = document.body; + } + const container = document.createElement("div"); + const vm = (0, vue.createVNode)(notification_default, props, isFunction$1(props.message) ? props.message : (0, vue.isVNode)(props.message) ? () => props.message : null); + vm.appContext = isUndefined(context) ? notify._context : context; + vm.props.onDestroy = () => { + (0, vue.render)(null, container); + }; + (0, vue.render)(vm, container); + notifications[position].push({ vm }); + appendTo.appendChild(container.firstElementChild); + return { close: () => { + vm.component.exposed.visible.value = false; + } }; + }; + notificationTypes.forEach((type) => { + notify[type] = (options = {}, appContext) => { + if (isString(options) || (0, vue.isVNode)(options)) options = { message: options }; + return notify({ + ...options, + type + }, appContext); + }; + }); + /** + * This function gets called when user click `x` button or press `esc` or the time reached its limitation. + * Emitted by transition@before-leave event so that we can fetch the current notification.offsetHeight, if this was called + * by @after-leave the DOM element will be removed from the page thus we can no longer fetch the offsetHeight. + * @param {String} id notification id to be closed + * @param {Position} position the positioning strategy + * @param {Function} userOnClose the callback called when close passed by user + */ + function close(id, position, userOnClose) { + const orientedNotifications = notifications[position]; + const idx = orientedNotifications.findIndex(({ vm }) => vm.component?.props.id === id); + if (idx === -1) return; + const { vm } = orientedNotifications[idx]; + if (!vm) return; + userOnClose?.(vm); + const removedHeight = vm.el.offsetHeight; + const verticalPos = position.split("-")[0]; + orientedNotifications.splice(idx, 1); + const len = orientedNotifications.length; + if (len < 1) return; + for (let i = idx; i < len; i++) { + const { el, component } = orientedNotifications[i].vm; + const pos = Number.parseInt(el.style[verticalPos], 10) - removedHeight - GAP_SIZE; + component.props.offset = pos; + } + } + function closeAll() { + for (const orientedNotifications of Object.values(notifications)) orientedNotifications.forEach(({ vm }) => { + vm.component.exposed.visible.value = false; + }); + } + function updateOffsets(position = "top-right") { + let verticalOffset = notifications[position][0]?.vm.component?.props?.offset || 0; + for (const { vm } of notifications[position]) { + vm.component.props.offset = verticalOffset; + verticalOffset += (vm.el?.offsetHeight || 0) + GAP_SIZE; + } + } + notify.closeAll = closeAll; + notify.updateOffsets = updateOffsets; + notify._context = null; + +//#endregion +//#region ../../packages/components/notification/index.ts + const ElNotification = withInstallFunction(notify, "$notify"); + +//#endregion +//#region ../../packages/element-plus/plugin.ts + var plugin_default = [ + ElInfiniteScroll, + ElLoading, + ElMessage, + ElMessageBox, + ElNotification, + ElPopoverDirective + ]; + +//#endregion +//#region ../../packages/element-plus/defaults.ts + var defaults_default = makeInstaller([...component_default, ...plugin_default]); + +//#endregion +//#region ../../packages/element-plus/index.ts + const install = defaults_default.install; + const version = defaults_default.version; + var element_plus_default = defaults_default; + +//#endregion +exports.BAR_MAP = BAR_MAP; +exports.BORDER_HORIZONTAL_WIDTH = BORDER_HORIZONTAL_WIDTH; +exports.CAROUSEL_ITEM_NAME = CAROUSEL_ITEM_NAME; +exports.CASCADER_PANEL_INJECTION_KEY = CASCADER_PANEL_INJECTION_KEY; +exports.CHANGE_EVENT = CHANGE_EVENT; +exports.ClickOutside = ClickOutside; +exports.CommonPicker = picker_default; +exports.CommonProps = CommonProps; +exports.DEFAULT_DIALOG_TRANSITION = DEFAULT_DIALOG_TRANSITION; +exports.DEFAULT_EMPTY_VALUES = DEFAULT_EMPTY_VALUES; +exports.DEFAULT_FORMATS_DATE = DEFAULT_FORMATS_DATE; +exports.DEFAULT_FORMATS_DATEPICKER = DEFAULT_FORMATS_DATEPICKER; +exports.DEFAULT_FORMATS_TIME = DEFAULT_FORMATS_TIME; +exports.DEFAULT_STEP = DEFAULT_STEP; +exports.DEFAULT_VALUE_ON_CLEAR = DEFAULT_VALUE_ON_CLEAR; +exports.DROPDOWN_INJECTION_KEY = DROPDOWN_INJECTION_KEY; +exports.DROPDOWN_INSTANCE_INJECTION_KEY = DROPDOWN_INSTANCE_INJECTION_KEY; +exports.DefaultProps = DefaultProps; +exports.DynamicSizeGrid = DynamicSizeGrid; +exports.DynamicSizeList = DynamicSizeList; +exports.EVENT_CODE = EVENT_CODE; +exports.Effect = Effect; +exports.ElAffix = ElAffix; +exports.ElAlert = ElAlert; +exports.ElAnchor = ElAnchor; +exports.ElAnchorLink = ElAnchorLink; +exports.ElAside = ElAside; +exports.ElAutoResizer = ElAutoResizer; +exports.ElAutocomplete = ElAutocomplete; +exports.ElAvatar = ElAvatar; +exports.ElAvatarGroup = ElAvatarGroup; +exports.ElBacktop = ElBacktop; +exports.ElBadge = ElBadge; +exports.ElBreadcrumb = ElBreadcrumb; +exports.ElBreadcrumbItem = ElBreadcrumbItem; +exports.ElButton = ElButton; +exports.ElButtonGroup = ElButtonGroup; +exports.ElCalendar = ElCalendar; +exports.ElCard = ElCard; +exports.ElCarousel = ElCarousel; +exports.ElCarouselItem = ElCarouselItem; +exports.ElCascader = ElCascader; +exports.ElCascaderPanel = ElCascaderPanel; +exports.ElCheckTag = ElCheckTag; +exports.ElCheckbox = ElCheckbox; +exports.ElCheckboxButton = ElCheckboxButton; +exports.ElCheckboxGroup = ElCheckboxGroup; +exports.ElCol = ElCol; +exports.ElCollapse = ElCollapse; +exports.ElCollapseItem = ElCollapseItem; +exports.ElCollapseTransition = ElCollapseTransition; +exports.ElColorPicker = ElColorPicker; +exports.ElColorPickerPanel = ElColorPickerPanel; +exports.ElConfigProvider = ElConfigProvider; +exports.ElContainer = ElContainer; +exports.ElCountdown = ElCountdown; +exports.ElDatePicker = ElDatePicker; +exports.ElDatePickerPanel = ElDatePickerPanel; +exports.ElDescriptions = ElDescriptions; +exports.ElDescriptionsItem = ElDescriptionsItem; +exports.ElDialog = ElDialog; +exports.ElDivider = ElDivider; +exports.ElDrawer = ElDrawer; +exports.ElDropdown = ElDropdown; +exports.ElDropdownItem = ElDropdownItem; +exports.ElDropdownMenu = ElDropdownMenu; +exports.ElEmpty = ElEmpty; +exports.ElFooter = ElFooter; +exports.ElForm = ElForm; +exports.ElFormItem = ElFormItem; +exports.ElHeader = ElHeader; +exports.ElIcon = ElIcon; +exports.ElImage = ElImage; +exports.ElImageViewer = ElImageViewer; +exports.ElInfiniteScroll = ElInfiniteScroll; +exports.ElInput = ElInput; +exports.ElInputNumber = ElInputNumber; +exports.ElInputTag = ElInputTag; +exports.ElLink = ElLink; +exports.ElLoading = ElLoading; +exports.ElLoadingDirective = vLoading; +exports.vLoading = vLoading; +exports.ElLoadingService = Loading; +exports.ElMain = ElMain; +exports.ElMention = ElMention; +exports.ElMenu = ElMenu; +exports.ElMenuItem = ElMenuItem; +exports.ElMenuItemGroup = ElMenuItemGroup; +exports.ElMessage = ElMessage; +exports.ElMessageBox = ElMessageBox; +exports.ElNotification = ElNotification; +exports.ElOption = ElOption; +exports.ElOptionGroup = ElOptionGroup; +exports.ElOverlay = ElOverlay; +exports.ElPageHeader = ElPageHeader; +exports.ElPagination = ElPagination; +exports.ElPopconfirm = ElPopconfirm; +exports.ElPopover = ElPopover; +exports.ElPopoverDirective = ElPopoverDirective; +exports.ElPopper = ElPopper; +exports.ElPopperArrow = arrow_default; +exports.ElPopperContent = content_default; +exports.ElPopperTrigger = trigger_default; +exports.ElProgress = ElProgress; +exports.ElRadio = ElRadio; +exports.ElRadioButton = ElRadioButton; +exports.ElRadioGroup = ElRadioGroup; +exports.ElRate = ElRate; +exports.ElResult = ElResult; +exports.ElRow = ElRow; +exports.ElScrollbar = ElScrollbar; +exports.ElSegmented = ElSegmented; +exports.ElSelect = ElSelect; +exports.ElSelectV2 = ElSelectV2; +exports.ElSkeleton = ElSkeleton; +exports.ElSkeletonItem = ElSkeletonItem; +exports.ElSlider = ElSlider; +exports.ElSpace = ElSpace; +exports.ElSplitter = ElSplitter; +exports.ElSplitterPanel = ElSplitterPanel; +exports.ElStatistic = ElStatistic; +exports.ElStep = ElStep; +exports.ElSteps = ElSteps; +exports.ElSubMenu = ElSubMenu; +exports.ElSwitch = ElSwitch; +exports.ElTabPane = ElTabPane; +exports.ElTable = ElTable; +exports.ElTableColumn = ElTableColumn; +exports.ElTableV2 = ElTableV2; +exports.ElTabs = ElTabs; +exports.ElTag = ElTag; +exports.ElText = ElText; +exports.ElTimePicker = ElTimePicker; +exports.ElTimeSelect = ElTimeSelect; +exports.ElTimeline = ElTimeline; +exports.ElTimelineItem = ElTimelineItem; +exports.ElTooltip = ElTooltip; +exports.ElTour = ElTour; +exports.ElTourStep = ElTourStep; +exports.ElTransfer = ElTransfer; +exports.ElTree = ElTree; +exports.ElTreeSelect = ElTreeSelect; +exports.ElTreeV2 = ElTreeV2; +exports.ElUpload = ElUpload; +exports.ElWatermark = ElWatermark; +exports.FIRST_KEYS = FIRST_KEYS; +exports.FIRST_LAST_KEYS = FIRST_LAST_KEYS; +exports.FORWARD_REF_INJECTION_KEY = FORWARD_REF_INJECTION_KEY; +exports.FixedSizeGrid = FixedSizeGrid; +exports.FixedSizeList = FixedSizeList; +exports.GAP = GAP; +exports.ID_INJECTION_KEY = ID_INJECTION_KEY; +exports.INPUT_EVENT = INPUT_EVENT; +exports.INSTALLED_KEY = INSTALLED_KEY; +exports.IconComponentMap = IconComponentMap; +exports.IconMap = IconMap; +exports.LAST_KEYS = LAST_KEYS; +exports.LEFT_CHECK_CHANGE_EVENT = LEFT_CHECK_CHANGE_EVENT; +exports.MENU_INJECTION_KEY = MENU_INJECTION_KEY; +exports.MESSAGE_DEFAULT_PLACEMENT = MESSAGE_DEFAULT_PLACEMENT; +exports.MINIMUM_INPUT_WIDTH = MINIMUM_INPUT_WIDTH; +exports.Mousewheel = Mousewheel; +exports.NODE_INSTANCE_INJECTION_KEY = NODE_INSTANCE_INJECTION_KEY; +exports.PICKER_BASE_INJECTION_KEY = PICKER_BASE_INJECTION_KEY; +exports.PICKER_POPPER_OPTIONS_INJECTION_KEY = PICKER_POPPER_OPTIONS_INJECTION_KEY; +exports.POPPER_CONTENT_INJECTION_KEY = POPPER_CONTENT_INJECTION_KEY; +exports.POPPER_INJECTION_KEY = POPPER_INJECTION_KEY; +exports.RIGHT_CHECK_CHANGE_EVENT = RIGHT_CHECK_CHANGE_EVENT; +exports.ROOT_COMMON_COLOR_INJECTION_KEY = ROOT_COMMON_COLOR_INJECTION_KEY; +exports.ROOT_COMMON_PICKER_INJECTION_KEY = ROOT_COMMON_PICKER_INJECTION_KEY; +exports.ROOT_PICKER_INJECTION_KEY = ROOT_PICKER_INJECTION_KEY; +exports.ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY = ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY; +exports.ROOT_TREE_INJECTION_KEY = ROOT_TREE_INJECTION_KEY; +exports.RowAlign = RowAlign; +exports.RowJustify = RowJustify; +exports.SCOPE = SCOPE; +exports.SIZE_INJECTION_KEY = SIZE_INJECTION_KEY; +exports.STEPS_INJECTION_KEY = STEPS_INJECTION_KEY; +exports.SUB_MENU_INJECTION_KEY = SUB_MENU_INJECTION_KEY; +exports.TIMELINE_INJECTION_KEY = TIMELINE_INJECTION_KEY; +exports.TOOLTIP_INJECTION_KEY = TOOLTIP_INJECTION_KEY; +exports.TREE_NODE_MAP_INJECTION_KEY = TREE_NODE_MAP_INJECTION_KEY; +exports.TableV2 = TableV2; +exports.TableV2Alignment = Alignment; +exports.TableV2FixedDir = FixedDir; +exports.TableV2Placeholder = placeholderSign; +exports.TableV2SortOrder = SortOrder; +exports.TimePickPanel = panel_time_pick_default; +exports.TrapFocus = TrapFocus; +exports.UPDATE_MODEL_EVENT = UPDATE_MODEL_EVENT; +exports.WEEK_DAYS = WEEK_DAYS; +exports.ZINDEX_INJECTION_KEY = ZINDEX_INJECTION_KEY; +exports.affixEmits = affixEmits; +exports.affixProps = affixProps; +exports.alertEffects = alertEffects; +exports.alertEmits = alertEmits; +exports.alertProps = alertProps; +exports.anchorEmits = anchorEmits; +exports.anchorProps = anchorProps; +exports.ariaProps = ariaProps; +exports.arrowMiddleware = arrowMiddleware; +exports.autoResizerProps = autoResizerProps; +exports.autocompleteEmits = autocompleteEmits; +exports.autocompleteProps = autocompleteProps; +exports.avatarEmits = avatarEmits; +exports.avatarGroupContextKey = avatarGroupContextKey; +exports.avatarGroupProps = avatarGroupProps; +exports.avatarProps = avatarProps; +exports.backtopEmits = backtopEmits; +exports.backtopProps = backtopProps; +exports.badgeProps = badgeProps; +exports.breadcrumbItemProps = breadcrumbItemProps; +exports.breadcrumbKey = breadcrumbKey; +exports.breadcrumbProps = breadcrumbProps; +exports.buildLocaleContext = buildLocaleContext; +exports.buildTimeList = buildTimeList; +exports.buildTranslator = buildTranslator; +exports.buttonEmits = buttonEmits; +exports.buttonGroupContextKey = buttonGroupContextKey; +exports.buttonNativeTypes = buttonNativeTypes; +exports.buttonProps = buttonProps; +exports.buttonTypes = buttonTypes; +exports.calendarEmits = calendarEmits; +exports.calendarProps = calendarProps; +exports.cardContextKey = cardContextKey; +exports.cardProps = cardProps; +exports.carouselContextKey = carouselContextKey; +exports.carouselEmits = carouselEmits; +exports.carouselItemProps = carouselItemProps; +exports.carouselProps = carouselProps; +exports.cascaderEmits = cascaderEmits; +exports.cascaderPanelEmits = cascaderPanelEmits; +exports.cascaderPanelProps = cascaderPanelProps; +exports.cascaderProps = cascaderProps; +exports.checkTagEmits = checkTagEmits; +exports.checkTagProps = checkTagProps; +exports.checkboxDefaultProps = checkboxDefaultProps; +exports.checkboxEmits = checkboxEmits; +exports.checkboxGroupContextKey = checkboxGroupContextKey; +exports.checkboxGroupEmits = checkboxGroupEmits; +exports.checkboxGroupProps = checkboxGroupProps; +exports.checkboxProps = checkboxProps; +exports.checkboxPropsDefaults = checkboxPropsDefaults; +exports.colProps = colProps; +exports.collapseContextKey = collapseContextKey; +exports.collapseEmits = collapseEmits; +exports.collapseItemProps = collapseItemProps; +exports.collapseProps = collapseProps; +exports.colorPickerEmits = colorPickerEmits; +exports.colorPickerPanelContextKey = colorPickerPanelContextKey; +exports.colorPickerPanelEmits = colorPickerPanelEmits; +exports.colorPickerPanelProps = colorPickerPanelProps; +exports.colorPickerProps = colorPickerProps; +exports.colorPickerPropsDefaults = colorPickerPropsDefaults; +exports.columnAlignment = columnAlignment; +exports.componentSizeMap = componentSizeMap; +exports.componentSizes = componentSizes; +exports.configProviderContextKey = configProviderContextKey; +exports.configProviderProps = configProviderProps; +exports.countdownEmits = countdownEmits; +exports.countdownProps = countdownProps; +exports.createModelToggleComposable = createModelToggleComposable; +exports.dateEquals = dateEquals; +exports.datePickTypes = datePickTypes; +exports.datePickerPanelProps = datePickerPanelProps; +exports.datePickerProps = datePickerProps; +exports.dayOrDaysToDate = dayOrDaysToDate; +Object.defineProperty(exports, 'dayjs', { + enumerable: true, + get: function () { + return import_dayjs_min.default; + } +}); +exports.default = element_plus_default; +exports.defaultInitialZIndex = defaultInitialZIndex; +exports.defaultNamespace = defaultNamespace; +exports.defaultProps = defaultProps; +exports.descriptionItemProps = descriptionItemProps; +exports.descriptionProps = descriptionProps; +exports.dialogContextKey = dialogContextKey; +exports.dialogEmits = dialogEmits; +exports.dialogInjectionKey = dialogInjectionKey; +exports.dialogProps = dialogProps; +exports.dialogPropsDefaults = dialogPropsDefaults; +exports.dividerProps = dividerProps; +exports.drawerEmits = drawerEmits; +exports.drawerProps = drawerProps; +exports.dropdownItemProps = dropdownItemProps; +exports.dropdownMenuProps = dropdownMenuProps; +exports.dropdownProps = dropdownProps; +exports.elPaginationKey = elPaginationKey; +exports.emitChangeFn = emitChangeFn; +exports.emptyProps = emptyProps; +exports.emptyValuesContextKey = emptyValuesContextKey; +exports.extractDateFormat = extractDateFormat; +exports.extractTimeFormat = extractTimeFormat; +exports.formContextKey = formContextKey; +exports.formEmits = formEmits; +exports.formItemContextKey = formItemContextKey; +exports.formItemProps = formItemProps; +exports.formItemValidateStates = formItemValidateStates; +exports.formMetaProps = formMetaProps; +exports.formProps = formProps; +exports.formatter = formatter; +exports.genFileId = genFileId; +exports.getPositionDataWithUnit = getPositionDataWithUnit; +exports.iconProps = iconProps; +exports.imageEmits = imageEmits; +exports.imageProps = imageProps; +exports.imageViewerEmits = imageViewerEmits; +exports.imageViewerProps = imageViewerProps; +exports.inputEmits = inputEmits; +exports.inputNumberEmits = inputNumberEmits; +exports.inputNumberProps = inputNumberProps; +exports.inputProps = inputProps; +exports.inputPropsDefaults = inputPropsDefaults; +exports.inputTagEmits = inputTagEmits; +exports.inputTagProps = inputTagProps; +exports.install = install; +exports.linkEmits = linkEmits; +exports.linkProps = linkProps; +exports.localeContextKey = localeContextKey; +exports.makeInstaller = makeInstaller; +exports.makeList = makeList; +exports.mentionDefaultProps = mentionDefaultProps; +exports.mentionEmits = mentionEmits; +exports.mentionProps = mentionProps; +exports.menuEmits = menuEmits; +exports.menuItemEmits = menuItemEmits; +exports.menuItemGroupProps = menuItemGroupProps; +exports.menuItemProps = menuItemProps; +exports.menuProps = menuProps; +exports.messageConfig = messageConfig; +exports.messageDefaults = messageDefaults; +exports.messageEmits = messageEmits; +exports.messagePlacement = messagePlacement; +exports.messageProps = messageProps; +exports.messageTypes = messageTypes; +exports.namespaceContextKey = namespaceContextKey; +exports.notificationEmits = notificationEmits; +exports.notificationProps = notificationProps; +exports.notificationTypes = notificationTypes; +exports.overlayEmits = overlayEmits; +exports.overlayProps = overlayProps; +exports.pageHeaderEmits = pageHeaderEmits; +exports.pageHeaderProps = pageHeaderProps; +exports.paginationEmits = paginationEmits; +exports.paginationProps = paginationProps; +exports.parseDate = parseDate; +exports.popconfirmEmits = popconfirmEmits; +exports.popconfirmProps = popconfirmProps; +exports.popoverEmits = popoverEmits; +exports.popoverProps = popoverProps; +exports.popoverPropsDefaults = popoverPropsDefaults; +exports.popperArrowProps = popperArrowProps; +exports.popperArrowPropsDefaults = popperArrowPropsDefaults; +exports.popperContentEmits = popperContentEmits; +exports.popperContentProps = popperContentProps; +exports.popperContentPropsDefaults = popperContentPropsDefaults; +exports.popperCoreConfigProps = popperCoreConfigProps; +exports.popperCoreConfigPropsDefaults = popperCoreConfigPropsDefaults; +exports.popperProps = popperProps; +exports.popperTriggerProps = popperTriggerProps; +exports.progressProps = progressProps; +exports.provideGlobalConfig = provideGlobalConfig; +exports.radioButtonProps = radioButtonProps; +exports.radioButtonPropsDefaults = radioButtonPropsDefaults; +exports.radioDefaultProps = radioDefaultProps; +exports.radioEmits = radioEmits; +exports.radioGroupEmits = radioGroupEmits; +exports.radioGroupKey = radioGroupKey; +exports.radioGroupProps = radioGroupProps; +exports.radioGroupPropsDefaults = radioGroupPropsDefaults; +exports.radioProps = radioProps; +exports.radioPropsBase = radioPropsBase; +exports.radioPropsDefaults = radioPropsDefaults; +exports.rangeArr = rangeArr; +exports.rateEmits = rateEmits; +exports.rateProps = rateProps; +exports.renderThumbStyle = renderThumbStyle; +exports.resultProps = resultProps; +exports.roleTypes = roleTypes; +exports.rowContextKey = rowContextKey; +exports.rowProps = rowProps; +exports.scrollbarContextKey = scrollbarContextKey; +exports.scrollbarEmits = scrollbarEmits; +exports.scrollbarProps = scrollbarProps; +exports.segmentedEmits = segmentedEmits; +exports.segmentedProps = segmentedProps; +exports.selectEmits = selectEmits; +exports.selectGroupKey = selectGroupKey; +exports.selectKey = selectKey; +exports.selectProps = selectProps; +exports.selectV2InjectionKey = selectV2InjectionKey; +exports.skeletonItemProps = skeletonItemProps; +exports.skeletonProps = skeletonProps; +exports.sliderContextKey = sliderContextKey; +exports.sliderEmits = sliderEmits; +exports.sliderProps = sliderProps; +exports.spaceItemProps = spaceItemProps; +exports.spaceProps = spaceProps; +exports.splitterEmits = splitterEmits; +exports.splitterPanelEmits = splitterPanelEmits; +exports.splitterPanelProps = splitterPanelProps; +exports.splitterProps = splitterProps; +exports.statisticProps = statisticProps; +exports.stepProps = stepProps; +exports.stepsEmits = stepsEmits; +exports.stepsProps = stepsProps; +exports.subMenuProps = subMenuProps; +exports.switchEmits = switchEmits; +exports.switchProps = switchProps; +exports.tabBarProps = tabBarProps; +exports.tabNavEmits = tabNavEmits; +exports.tabNavProps = tabNavProps; +exports.tabPaneProps = tabPaneProps; +exports.tableV2Props = tableV2Props; +exports.tableV2RowProps = tableV2RowProps; +exports.tabsEmits = tabsEmits; +exports.tabsProps = tabsProps; +exports.tabsRootContextKey = tabsRootContextKey; +exports.tagEmits = tagEmits; +exports.tagProps = tagProps; +exports.textProps = textProps; +exports.thumbProps = thumbProps; +exports.timePickerDefaultProps = timePickerDefaultProps; +exports.timePickerRangeTriggerProps = timePickerRangeTriggerProps; +exports.timePickerRngeTriggerProps = timePickerRngeTriggerProps; +exports.timeSelectProps = timeSelectProps; +exports.timeUnits = timeUnits; +exports.timelineItemProps = timelineItemProps; +exports.timelineProps = timelineProps; +exports.tooltipEmits = tooltipEmits; +exports.tourContentEmits = tourContentEmits; +exports.tourContentProps = tourContentProps; +exports.tourEmits = tourEmits; +exports.tourPlacements = tourPlacements; +exports.tourProps = tourProps; +exports.tourStepEmits = tourStepEmits; +exports.tourStepProps = tourStepProps; +exports.tourStrategies = tourStrategies; +exports.transferCheckedChangeFn = transferCheckedChangeFn; +exports.transferEmits = transferEmits; +exports.transferProps = transferProps; +exports.translate = translate; +exports.treeEmits = treeEmits; +exports.treeProps = treeProps; +exports.uploadBaseProps = uploadBaseProps; +exports.uploadBasePropsDefaults = uploadBasePropsDefaults; +exports.uploadContentProps = uploadContentProps; +exports.uploadContentPropsDefaults = uploadContentPropsDefaults; +exports.uploadContextKey = uploadContextKey; +exports.uploadDraggerEmits = uploadDraggerEmits; +exports.uploadDraggerProps = uploadDraggerProps; +exports.uploadListEmits = uploadListEmits; +exports.uploadListProps = uploadListProps; +exports.uploadListTypes = uploadListTypes; +exports.uploadProps = uploadProps; +exports.uploadPropsDefaults = uploadPropsDefaults; +exports.useAriaProps = useAriaProps; +exports.useAttrs = useAttrs; +exports.useCalcInputWidth = useCalcInputWidth; +exports.useCascaderConfig = useCascaderConfig; +exports.useComposition = useComposition; +exports.useCursor = useCursor; +exports.useDelayedRender = useDelayedRender; +exports.useDelayedToggle = useDelayedToggle; +exports.useDelayedToggleProps = useDelayedToggleProps; +exports.useDelayedTogglePropsDefaults = useDelayedTogglePropsDefaults; +exports.useDeprecated = useDeprecated; +exports.useDialog = useDialog; +exports.useDisabled = useDisabled; +exports.useDraggable = useDraggable; +exports.useEmptyValues = useEmptyValues; +exports.useEmptyValuesProps = useEmptyValuesProps; +exports.useEscapeKeydown = useEscapeKeydown; +exports.useFloating = useFloating; +exports.useFloatingProps = useFloatingProps; +exports.useFocus = useFocus; +exports.useFocusController = useFocusController; +exports.useFormDisabled = useFormDisabled; +exports.useFormItem = useFormItem; +exports.useFormItemInputId = useFormItemInputId; +exports.useFormSize = useFormSize; +exports.useForwardRef = useForwardRef; +exports.useForwardRefDirective = useForwardRefDirective; +exports.useGetDerivedNamespace = useGetDerivedNamespace; +exports.useGlobalComponentSettings = useGlobalComponentSettings; +exports.useGlobalConfig = useGlobalConfig; +exports.useGlobalSize = useGlobalSize; +exports.useId = useId; +exports.useIdInjection = useIdInjection; +exports.useLocale = useLocale; +exports.useLockscreen = useLockscreen; +exports.useModal = useModal; +exports.useModelToggle = useModelToggle; +exports.useModelToggleEmits = useModelToggleEmits; +exports.useModelToggleProps = useModelToggleProps; +exports.useNamespace = useNamespace; +exports.useOrderedChildren = useOrderedChildren; +exports.usePopper = usePopper; +exports.usePopperArrowProps = usePopperArrowProps; +exports.usePopperContainer = usePopperContainer; +exports.usePopperContainerId = usePopperContainerId; +exports.usePopperContentEmits = usePopperContentEmits; +exports.usePopperContentProps = usePopperContentProps; +exports.usePopperCoreConfigProps = usePopperCoreConfigProps; +exports.usePopperProps = usePopperProps; +exports.usePopperTriggerProps = usePopperTriggerProps; +exports.usePreventGlobal = usePreventGlobal; +exports.useProp = useProp; +exports.useSameTarget = useSameTarget; +exports.useSize = useSize; +exports.useSizeProp = useSizeProp; +exports.useSizeProps = useSizeProps; +exports.useSpace = useSpace; +exports.useTeleport = useTeleport; +exports.useThrottleRender = useThrottleRender; +exports.useTimeout = useTimeout; +exports.useTooltipContentProps = useTooltipContentProps; +exports.useTooltipContentPropsDefaults = useTooltipContentPropsDefaults; +exports.useTooltipModelToggle = useTooltipModelToggle; +exports.useTooltipModelToggleEmits = useTooltipModelToggleEmits; +exports.useTooltipModelToggleProps = useTooltipModelToggleProps; +exports.useTooltipProps = useTooltipProps; +exports.useTooltipTriggerProps = useTooltipTriggerProps; +exports.useTooltipTriggerPropsDefaults = useTooltipTriggerPropsDefaults; +exports.useTransitionFallthrough = useTransitionFallthrough; +exports.useTransitionFallthroughEmits = useTransitionFallthroughEmits; +exports.useZIndex = useZIndex; +exports.vRepeatClick = vRepeatClick; +exports.valueEquals = valueEquals; +exports.version = version; +exports.virtualizedGridProps = virtualizedGridProps; +exports.virtualizedListProps = virtualizedListProps; +exports.virtualizedProps = virtualizedProps; +exports.virtualizedScrollbarProps = virtualizedScrollbarProps; +exports.watermarkProps = watermarkProps; +exports.zIndexContextKey = zIndexContextKey; +}); \ No newline at end of file diff --git a/platform/backend/static/element-plus/index.css b/platform/backend/static/element-plus/index.css new file mode 100644 index 0000000..601bc84 --- /dev/null +++ b/platform/backend/static/element-plus/index.css @@ -0,0 +1 @@ +@charset "UTF-8";:root{--el-color-white:#ffffff;--el-color-black:#000000;--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:0.3s;--el-transition-duration-fast:0.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(0.645, 0.045, 0.355, 1);--el-transition-function-fast-bezier:cubic-bezier(0.23, 1, 0.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}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--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:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--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:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, 0.04),0px 8px 20px rgba(0, 0, 0, 0.08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, 0.12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, 0.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, 0.08),0px 12px 32px rgba(0, 0, 0, 0.12),0px 8px 16px -8px rgba(0, 0, 0, 0.16);--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:rgba(0, 0, 0, 0.8);--el-overlay-color-light:rgba(0, 0, 0, 0.7);--el-overlay-color-lighter:rgba(0, 0, 0, 0.5);--el-mask-color:rgba(255, 255, 255, 0.9);--el-mask-color-extra-light:rgba(255, 255, 255, 0.3);--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;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center 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;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.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;transform:scale(1,1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45,.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-enter-active,.el-collapse-transition-leave-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-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}@keyframes rotating{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width: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:13px;--el-alert-description-font-size:12px;--el-alert-close-font-size:12px;--el-alert-close-customed-font-size:13px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;width:100%;padding:var(--el-alert-padding);margin:0;box-sizing:border-box;border-radius:var(--el-alert-border-radius-base);position:relative;background-color:var(--el-color-white);overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity var(--el-transition-duration-fast)}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn{color:var(--el-color-white)}.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.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{display:table-cell;padding:0 8px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:18px;vertical-align:text-top}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:5px 0 0 0}.el-alert .el-alert__close-btn{font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert .el-alert__close-btn.is-customed{font-style:normal;font-size:var(--el-alert-close-customed-font-size);top:9px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{overflow:auto;box-sizing:border-box;flex-shrink:0;width:var(--el-aside-width,300px)}.el-autocomplete{position:relative;display:inline-block}.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:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);list-style:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li:hover{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.highlighted{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid var(--el-color-black)}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:var(--el-text-color-secondary)}.el-autocomplete-suggestion.is-loading li::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.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;--el-avatar-size:40px;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;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)}.el-avatar>img{display:block;width:100%;height:100%}.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-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);position:fixed;background-color:var(--el-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--el-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5}.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;position:relative;vertical-align:middle;display:inline-block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;justify-content:center;align-items:center;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)}.el-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--el-badge-size)/ 2);transform:translateY(-50%) translateX(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.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{font-size:14px;line-height:1}.el-breadcrumb::after,.el-breadcrumb::before{display:table;content:""}.el-breadcrumb::after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:var(--el-text-color-placeholder)}.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;display:inline-flex;align-items:center}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;transition:var(--el-transition-color);color:var(--el-text-color-primary)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:var(--el-text-color-regular);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group::after,.el-button-group::before{display:table;content:""}.el-button-group::after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius: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:not(:last-child){margin-right:-1px}.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-button.is-active{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .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 .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .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 .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .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 .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .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 .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .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{--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:rgba(255, 255, 255, 0.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-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-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-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);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.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:0}.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:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.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:0}.el-button.is-disabled,.el-button.is-disabled:focus,.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{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{width:32px;border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.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}.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:focus,.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{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.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:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.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-link,.el-button--primary.is-plain,.el-button--primary.is-text{--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-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{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-link,.el-button--success.is-plain,.el-button--success.is-text{--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-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{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-link,.el-button--warning.is-plain,.el-button--warning.is-text{--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-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{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-link,.el-button--danger.is-plain,.el-button--danger.is-text{--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-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{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-link,.el-button--info.is-plain,.el-button--info.is-text{--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-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{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);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.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);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.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{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:var(--el-calendar-header-border-bottom)}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:var(--el-text-color-regular);font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{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;padding:8px;height:var(--el-calendar-cell-width)}.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)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{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)}.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{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:calc(var(--el-index-normal) - 1)}.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.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage: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{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--el-color-white);opacity:.24;transition:var(--el-transition-duration-fast)}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31, 45, 61, 0.11);--el-carousel-arrow-hover-background:rgba(31, 45, 61, 0.23);--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{overflow:hidden}.el-carousel--vertical{overflow:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);border-radius:50%;background-color:var(--el-carousel-arrow-background);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:var(--el-carousel-arrow-font-size);display:inline-flex;justify-content:center;align-items:center}.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{position:absolute;list-style:none;margin:0;padding:0;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical) * 2);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{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px;color:#000}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.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{display:block;opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:var(--el-transition-duration)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{transform:translateY(-50%) translateX(10px);opacity:0}.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)}.el-cascader-panel{display:flex;border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{min-width:180px;box-sizing:border-box;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{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;color:var(--el-cascader-color-empty)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.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-active,.el-cascader-node.is-selectable.in-checked-path{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):focus,.el-cascader-node:not(.is-disabled):hover{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{flex:1;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-checkbox{margin-right:0}.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);display:inline-block;vertical-align:middle;position:relative;font-size:var(--el-font-size-base);line-height:32px;outline:0}.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{display:flex;cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis;cursor:pointer}.el-cascader .el-input .el-input__suffix-inner .el-icon{height:calc(100% - 2px)}.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:rotateZ(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--small{font-size:12px;line-height:24px}.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)}.el-cascader__dropdown{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:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-cascader-tag-background)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-fill-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{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>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:var(--el-cascader-color-empty)}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 11px;padding:0;color:var(--el-cascader-menu-text-color);border:none;outline:0;box-sizing:border-box;background:0 0}.el-cascader__search-input::-moz-placeholder{color:transparent}.el-cascader__search-input:-ms-input-placeholder{color:transparent}.el-cascader__search-input::placeholder{color:transparent}.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;display:inline-block;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all);font-weight:700}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.is-checked:hover{background-color:var(--el-color-primary-light-7)}.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{position:relative;display:inline-block}.el-checkbox-button__inner{display:inline-block;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));border:var(--el-border);border-left-color:transparent;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.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;outline:0;position:absolute;margin:0;z-index:-1}.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:first-child .el-checkbox-button__inner{border-left:var(--el-border);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{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.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)}.el-checkbox{color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px;height:var(--el-checkbox-height,32px)}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.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{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.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{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.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:0;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)}.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{transform:rotate(45deg) scaleY(1);border-color:var(--el-checkbox-checked-icon-color)}.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:"";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.el-checkbox__inner{display:inline-block;position:relative;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)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner::after{box-sizing:content-box;content:"";border:1px solid transparent;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.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{display:block;min-height:1px}.el-col-0{display:none}.el-col-0.is-guttered{display:none}.el-col-0{max-width:0%;flex:0 0 0%}.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{max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{max-width:12.5%;flex:0 0 12.5%}.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{max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{max-width:25%;flex:0 0 25%}.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{max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{max-width:37.5%;flex:0 0 37.5%}.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{max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{max-width:50%;flex:0 0 50%}.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{max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{max-width:62.5%;flex:0 0 62.5%}.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{max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{max-width:75%;flex:0 0 75%}.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{max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{max-width:87.5%;flex:0 0 87.5%}.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{max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{max-width:100%;flex:0 0 100%}.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 (max-width:768px){.el-col-xs-0{display:none}.el-col-xs-0.is-guttered{display:none}.el-col-xs-0{max-width:0%;flex:0 0 0%}.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{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{display:block;max-width:12.5%;flex:0 0 12.5%}.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{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{display:block;max-width:25%;flex:0 0 25%}.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{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{display:block;max-width:37.5%;flex:0 0 37.5%}.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{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{display:block;max-width:50%;flex:0 0 50%}.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{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{display:block;max-width:62.5%;flex:0 0 62.5%}.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{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{display:block;max-width:75%;flex:0 0 75%}.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{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{display:block;max-width:87.5%;flex:0 0 87.5%}.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{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{display:block;max-width:100%;flex:0 0 100%}.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 (min-width:768px){.el-col-sm-0{display:none}.el-col-sm-0.is-guttered{display:none}.el-col-sm-0{max-width:0%;flex:0 0 0%}.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{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{display:block;max-width:12.5%;flex:0 0 12.5%}.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{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{display:block;max-width:25%;flex:0 0 25%}.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{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{display:block;max-width:37.5%;flex:0 0 37.5%}.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{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{display:block;max-width:50%;flex:0 0 50%}.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{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{display:block;max-width:62.5%;flex:0 0 62.5%}.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{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{display:block;max-width:75%;flex:0 0 75%}.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{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{display:block;max-width:87.5%;flex:0 0 87.5%}.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{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{display:block;max-width:100%;flex:0 0 100%}.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 (min-width:992px){.el-col-md-0{display:none}.el-col-md-0.is-guttered{display:none}.el-col-md-0{max-width:0%;flex:0 0 0%}.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{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{display:block;max-width:12.5%;flex:0 0 12.5%}.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{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{display:block;max-width:25%;flex:0 0 25%}.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{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{display:block;max-width:37.5%;flex:0 0 37.5%}.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{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{display:block;max-width:50%;flex:0 0 50%}.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{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{display:block;max-width:62.5%;flex:0 0 62.5%}.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{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{display:block;max-width:75%;flex:0 0 75%}.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{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{display:block;max-width:87.5%;flex:0 0 87.5%}.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{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{display:block;max-width:100%;flex:0 0 100%}.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 (min-width:1200px){.el-col-lg-0{display:none}.el-col-lg-0.is-guttered{display:none}.el-col-lg-0{max-width:0%;flex:0 0 0%}.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{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{display:block;max-width:12.5%;flex:0 0 12.5%}.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{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{display:block;max-width:25%;flex:0 0 25%}.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{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{display:block;max-width:37.5%;flex:0 0 37.5%}.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{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{display:block;max-width:50%;flex:0 0 50%}.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{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{display:block;max-width:62.5%;flex:0 0 62.5%}.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{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{display:block;max-width:75%;flex:0 0 75%}.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{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{display:block;max-width:87.5%;flex:0 0 87.5%}.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{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{display:block;max-width:100%;flex:0 0 100%}.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 (min-width:1920px){.el-col-xl-0{display:none}.el-col-xl-0.is-guttered{display:none}.el-col-xl-0{max-width:0%;flex:0 0 0%}.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{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{display:block;max-width:12.5%;flex:0 0 12.5%}.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{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{display:block;max-width:25%;flex:0 0 25%}.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{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{display:block;max-width:37.5%;flex:0 0 37.5%}.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{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{display:block;max-width:50%;flex:0 0 50%}.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{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{display:block;max-width:62.5%;flex:0 0 62.5%}.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{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{display:block;max-width:75%;flex:0 0 75%}.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{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{display:block;max-width:87.5%;flex:0 0 87.5%}.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{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{display:block;max-width:100%;flex:0 0 100%}.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{--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-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{width:100%;padding:0;border:none;display:flex;align-items:center;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-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--el-transition-duration);outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item__content{padding-bottom:25px;font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.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(to bottom,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{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;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-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,var(--el-bg-color) 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper::after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-picker{display:inline-block;position:relative;line-height:normal;outline:0}.el-color-picker:hover:not(.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}.el-color-picker--large{height:40px}.el-color-picker--large .el-color-picker__trigger{height:40px;width:40px}.el-color-picker--large .el-color-picker__mask{height:38px;width:38px}.el-color-picker--small{height:24px}.el-color-picker--small .el-color-picker__trigger{height:24px;width:24px}.el-color-picker--small .el-color-picker__mask{height:22px;width:22px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__mask{height:30px;width:30px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:rgba(255,255,255,.7)}.el-color-picker__trigger{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;height:32px;width:32px;padding:4px;border:1px solid var(--el-border-color);border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);width:100%;height:100%;text-align:center}.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-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-picker__color-inner{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%}.el-color-picker .el-color-picker__empty{font-size:12px;color:var(--el-text-color-secondary)}.el-color-picker .el-color-picker__icon{display:inline-flex;justify-content:center;align-items:center;color:#fff;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light)}.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:#333333}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.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{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.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{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td .el-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td .el-date-table-cell .el-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translateX(-50%);border-radius: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.end-date .el-date-table-cell__text,.el-date-table td.today.start-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.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.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{margin-left:5px;margin-right:5px;background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.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{font-size:80%;color:var(--el-datepicker-header-text-color)}.el-date-table td:focus{outline:0}.el-date-table th{padding:5px;color:var(--el-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--el-border-color-lighter)}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{width:48px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.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{font-size:12px;color:var(--el-text-color-secondary);position:absolute;left:0;width:100%;z-index:var(--el-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}.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{padding:0;text-align:center}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list::after,.el-time-spinner__list::before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--el-text-color-regular)}.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:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.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%;position:relative;text-align:left;vertical-align:middle}.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.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{cursor:pointer}.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{height:inherit;font-size:14px;color:var(--el-text-color-placeholder);float:left}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:transparent}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;word-break:keep-all;color:var(--el-text-color-primary)}.el-date-editor .el-range__close-icon{font-size:14px;color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.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{display:inline-flex;align-items:center;padding:0 10px}.el-range-editor.is-active{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.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{line-height:40px;font-size:14px}.el-range-editor--large .el-range-input{height:38px;line-height:38px;font-size:14px}.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{line-height:24px;font-size:12px}.el-range-editor--small .el-range-input{height:22px;line-height:22px;font-size:12px}.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:focus,.el-range-editor.is-disabled:hover{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::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.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-bg-color-overlay);border-radius:var(--el-border-radius-base);line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker-panel__body-wrapper::after,.el-picker-panel__body::after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);padding:4px 12px;text-align:right;background-color:var(--el-bg-color-overlay);position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--el-datepicker-text-color);padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:var(--el-datepicker-icon-color);border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.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 .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;padding-top:6px;background-color:var(--el-bg-color-overlay);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-date-picker{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{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--el-border-color-lighter)}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--el-text-color-regular)}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{outline:0;color:var(--el-datepicker-hover-text-color)}.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{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.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-date-range-picker{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__header{position:relative;text-align:center;height:28px}.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{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.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{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--el-datepicker-icon-color)}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid var(--el-datepicker-border-color)}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:var(--el-index-top);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content::after,.el-time-panel__content::before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left}.el-time-panel__content::after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content::before{padding-left:50%;margin-right:12%;margin-left:12%;border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light)}.el-time-panel__content.has-seconds::after{left:66.6666666667%}.el-time-panel__content.has-seconds::before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-time-panel__btn.confirm{font-weight:800;color:var(--el-timepicker-active-color,var(--el-color-primary))}.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{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.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-weight:400;line-height:23px;font-size:14px}.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{font-weight:700;color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background)}.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:0.5}.v-modal-enter{-webkit-animation:v-modal-in var(--el-transition-duration-fast) ease;animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{-webkit-animation:v-modal-out var(--el-transition-duration-fast) ease forwards;animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{100%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.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:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;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;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.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{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{-webkit-animation:modal-fade-in var(--el-transition-duration);animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{-webkit-animation:dialog-fade-in var(--el-transition-duration);animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{-webkit-animation:modal-fade-out var(--el-transition-duration);animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{-webkit-animation:dialog-fade-out var(--el-transition-duration);animation:dialog-fade-out var(--el-transition-duration)}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}100%{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}100%{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--el-border-color) var(--el-border-style)}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--el-border-color) var(--el-border-style)}.el-divider__text{position:absolute;background-color:var(--el-bg-color);padding:0 20px;font-weight:500;color:var(--el-text-color-primary);font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.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{position:absolute;box-sizing:border-box;background-color:var(--el-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--el-box-shadow-dark);overflow:hidden;transition:all var(--el-transition-duration)}.el-drawer .rtl{transform:translate(0,0)}.el-drawer .ltr{transform:translate(0,0)}.el-drawer .ttb{transform:translate(0,0)}.el-drawer .btt{transform:translate(0,0)}.el-drawer__sr-focus:focus{outline:0!important}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{display:inline-flex;border:none;cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;padding:var(--el-drawer-padding-primary);overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{opacity:0}.el-drawer-fade-enter-to,.el-drawer-fade-leave-from{opacity:1}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translateX(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translateX(-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;display:inline-flex;position:relative;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1;vertical-align:top}.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:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.el-dropdown .el-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button::before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--el-overlay-color-lighter)}.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:0}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{position:relative;top:0;left:0;z-index:var(--el-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;list-style:none}.el-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:0}.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{margin:6px 0;border-top:1px solid var(--el-border-color-lighter)}.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;line-height:22px;font-size:14px}.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;line-height:20px;font-size:12px}.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;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding)}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-secondary)}.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;flex-shrink:0;height:var(--el-footer-height)}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.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-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.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-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-select-v2__wrapper.is-focused{border-color:transparent}.el-form-item.is-error .el-select-v2__wrapper,.el-form-item.is-error .el-select-v2__wrapper:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-color-danger) inset!important}.el-form-item.is-error .el-select:hover{box-shadow:0 0 0 1px transparent}.el-form-item.is-error .el-select .el-input .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset!important}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__btn .el-icon{font-size:inherit;cursor:pointer}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{position:static;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__actions{left:50%;bottom:30px;transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__close{width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in var(--el-transition-duration);animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out var(--el-transition-duration);animation:viewer-fade-out var(--el-transition-duration)}@-webkit-keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{width:100%;height:100%}.el-image{position:relative;display:inline-block;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{display:flex;justify-content:center;align-items:center;font-size:14px;background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle}.el-image__preview{cursor:pointer}.el-input-number{position:relative;display:inline-flex;width:150px;line-height:30px}.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,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase: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__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase: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__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--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__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [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__decrease,.el-input-number.is-controls-right .el-input-number__increase{--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__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.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%}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-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);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.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{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.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::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.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{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:var(--el-input-width);line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.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);font-size:14px;cursor:pointer}.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%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));cursor:text;transition:var(--el-transition-box-shadow);transform:translate3d(0,0,0);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.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__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;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);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.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__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.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{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.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);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::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.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-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{--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{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.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{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;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}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;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}.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-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;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}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.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-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;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}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.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)}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color)}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--el-link-hover-text-color)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{display:inline-flex;justify-content:center;align-items:center}.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--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--primary.is-underline:hover:after{border-color:var(--el-link-text-color)}.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--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--success.is-underline:hover:after{border-color:var(--el-link-text-color)}.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--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning.is-underline:hover:after{border-color:var(--el-link-text-color)}.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--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger.is-underline:hover:after{border-color:var(--el-link-text-color)}.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--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--error.is-underline:hover:after{border-color:var(--el-link-text-color)}.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.el-link--info:after{border-color:var(--el-link-text-color)}.el-link.el-link--info.is-underline:hover:after{border-color:var(--el-link-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{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.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{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@-webkit-keyframes loading-rotate{100%{transform:rotate(360deg)}}@keyframes loading-rotate{100%{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}: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);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.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-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__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{display:flex;flex-wrap:nowrap;border-right:none;height:var(--el-menu-horizontal-height)}.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{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.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:0}.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%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.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);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.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-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.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-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .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,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;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);list-style:none;cursor:pointer;position:relative;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}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.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]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.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{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;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);list-style:none;cursor:pointer;position:relative;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}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.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__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-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;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{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-6px;transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--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:15px}.el-message-box{display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box::after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.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{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status::before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.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{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{-webkit-animation:msgbox-fade-in var(--el-transition-duration);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}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--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)}.el-message{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);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);position:fixed;left:50%;top:20px;transform:translateX(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.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:anywhere}.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:anywhere}.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:anywhere}.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:anywhere}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.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{position:absolute;top:50%;right:19px;transform:translateY(-50%);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;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)}.el-notification{display:flex;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);position:fixed;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:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.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);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color);text-align:justify}.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)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-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:translateX(100%)}.el-notification-fade-enter-from.left{left:0;transform:translateX(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);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{display:flex;align-items:center;justify-content:space-between;line-height:24px}.el-page-header__left{display:flex;align-items:center;margin-right:40px;position:relative}.el-page-header__back{display:flex;align-items:center;cursor:pointer}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{font-size:16px;margin-right:10px;display:flex;align-items:center}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:var(--el-text-color-primary)}.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-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);font-weight:400;display:flex;align-items:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select .el-input{width:128px}.el-pagination button{display:flex;justify-content:center;align-items:center;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);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pagination button.is-disabled,.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.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{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{display:flex;align-items:center;margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.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,.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;display:flex;align-items:center;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color)}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.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-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li: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-next,.el-pagination--small .btn-prev,.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 button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select .el-input{width:100px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{display:flex;justify-content:center;align-items:center;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);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:0}.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{font-weight:700;color:var(--el-text-color-secondary)}.el-pager li.is-disabled,.el-pager li: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__main{display:flex;align-items:center}.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);min-width:150px;border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;text-align:justify;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);word-break:break-all;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);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){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,.el-popover.el-popper:focus:active{outline-width:0}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;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{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translate(0,-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{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-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{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{-webkit-animation:striped-flow 3s linear infinite;animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}100%{left:100%}}@keyframes indeterminate{0%{left:-100%}100%{left:100%}}@-webkit-keyframes striped-flow{0%{background-position:-100%}100%{background-position:100%}}@keyframes striped-flow{0%{background-position:-100%}100%{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)}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.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-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button__original-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__original-radio:checked+.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: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{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.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)}.el-radio{color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:32px;height:32px}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.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{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.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{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{padding:0 11px 0 7px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative;vertical-align:middle}.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{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);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner::after{width:4px;height:4px;border-radius:var(--el-radio-input-border-radius);background-color:var(--el-color-white);content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin: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{display:inline-flex;align-items:center;height:32px}.el-rate:active,.el-rate:focus{outline:0}.el-rate__item{cursor:pointer;display:inline-block;position:relative;font-size:0;vertical-align:middle;color:var(--el-rate-void-color);line-height:normal}.el-rate .el-rate__icon{position:relative;display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{position:absolute;top:0;left:0;display:inline-block;overflow:hidden;color:var(--el-rate-fill-color)}.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:auto;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}.el-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-result-padding)}.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{margin:0;font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);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{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.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:0.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:0.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.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{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.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 340ms ease-out}.el-scrollbar-fade-leave-active{transition:opacity 120ms 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__option-item.is-selected:not(.is-multiple).is-disabled{color:var(--el-text-color-disabled)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled::after{background-color:var(--el-text-color-disabled)}.el-select-dropdown__option-item:hover:not(.hover){background-color:transparent}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-disabled.is-selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;margin:6px 0!important;padding:0!important;box-sizing:border-box}.el-select-dropdown__option-item{font-size:var(--el-select-font-size);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__option-item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__option-item.is-disabled:hover{background-color:var(--el-bg-color)}.el-select-dropdown__option-item.is-selected{background-color:var(--el-fill-color-light);font-weight:700}.el-select-dropdown__option-item.is-selected:not(.is-multiple){color:var(--el-color-primary)}.el-select-dropdown__option-item.hover{background-color:var(--el-fill-color-light)!important}.el-select-dropdown__option-item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon{position:absolute;right:20px;top:0;height:inherit;font-size:12px}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon svg{height:inherit;vertical-align:middle}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type)::after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-v2{--el-select-border-color-hover:var(--el-border-color-hover);--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-v2{display:inline-block;position:relative;vertical-align:middle;font-size:14px}.el-select-v2__wrapper{display:flex;align-items:center;flex-wrap:wrap;position:relative;box-sizing:border-box;cursor:pointer;padding:1px 30px 1px 0;border:1px solid var(--el-border-color);border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration)}.el-select-v2__wrapper:hover{border-color:var(--el-text-color-placeholder)}.el-select-v2__wrapper.is-filterable{cursor:text}.el-select-v2__wrapper.is-focused{border-color:var(--el-color-primary)}.el-select-v2__wrapper.is-hovering:not(.is-focused){border-color:var(--el-border-color-hover)}.el-select-v2__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled:hover{border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled.is-focus{border-color:var(--el-input-focus-border-color)}.el-select-v2__wrapper.is-disabled .is-transparent{opacity:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-select-v2__wrapper.is-disabled .el-select-v2__caret{cursor:not-allowed}.el-select-v2__wrapper.is-disabled .el-select-v2__combobox-input{cursor:not-allowed}.el-select-v2__wrapper .el-select-v2__input-wrapper{box-sizing:border-box;position:relative;-webkit-margin-start:12px;margin-inline-start:12px;max-width:100%;overflow:hidden}.el-select-v2__wrapper,.el-select-v2__wrapper .el-select-v2__input-wrapper{line-height:32px}.el-select-v2__wrapper .el-select-v2__input-wrapper input{--el-input-inner-height:calc(var(--el-component-size, 32px) - 8px);height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);min-width:4px;width:100%;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:none;margin:2px 0;outline:0;padding:0}.el-select-v2 .el-select-v2__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select-v2__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:14px}.el-select-v2__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-v2__popper.el-popper .el-popper__arrow::before{border:1px solid var(--el-border-color-light)}.el-select-v2__popper.el-popper[data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-select-v2--large .el-select-v2__wrapper .el-select-v2__combobox-input{height:32px}.el-select-v2--large .el-select-v2__caret{height:40px}.el-select-v2--large .el-select-v2__suffix{height:40px}.el-select-v2--large .el-select-v2__placeholder{font-size:14px;line-height:40px}.el-select-v2--small .el-select-v2__wrapper .el-select-v2__combobox-input{height:16px}.el-select-v2--small .el-select-v2__caret{height:24px}.el-select-v2--small .el-select-v2__suffix{height:24px}.el-select-v2--small .el-select-v2__placeholder{font-size:12px;line-height:24px}.el-select-v2 .el-select-v2__selection>span{display:inline-block}.el-select-v2:hover .el-select-v2__combobox-input{border-color:var(--el-select-border-color-hover)}.el-select-v2 .el-select__selection-text{text-overflow:ellipsis;display:inline-block;overflow-x:hidden;vertical-align:bottom}.el-select-v2 .el-select-v2__combobox-input{padding-right:35px;display:block;color:var(--el-text-color-regular)}.el-select-v2 .el-select-v2__combobox-input:focus{border-color:var(--el-select-input-focus-border-color)}.el-select-v2__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px}.el-select-v2__input.is-small{height:14px}.el-select-v2__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select-v2__close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__suffix{display:inline-flex;position:absolute;right:12px;height:32px;top:50%;transform:translateY(-50%);color:var(--el-input-icon-color,var(--el-text-color-placeholder))}.el-select-v2__suffix .el-input__icon{height:inherit}.el-select-v2__suffix .el-input__icon:not(:first-child){margin-left:8px}.el-select-v2__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);transform:rotateZ(180deg);cursor:pointer}.el-select-v2__caret.is-reverse{transform:rotateZ(0)}.el-select-v2__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotateZ(180deg);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select-v2__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__caret.el-icon{height:inherit}.el-select-v2__caret.el-icon svg{vertical-align:middle}.el-select-v2__selection{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;width:100%}.el-select-v2__input-calculator{left:0;position:absolute;top:0;visibility:hidden;white-space:pre;z-index:999}.el-select-v2__selected-item{line-height:inherit;height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-wrap:wrap}.el-select-v2__placeholder{position:absolute;top:50%;transform:translateY(-50%);-webkit-margin-start:12px;margin-inline-start:12px;width:calc(100% - 52px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--el-input-text-color,var(--el-text-color-regular))}.el-select-v2__placeholder.is-transparent{color:var(--el-text-color-placeholder)}.el-select-v2 .el-select-v2__selection .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:var(--el-fill-color)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;color:var(--el-color-white)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close::before{display:block;transform:translate(0,.5px)}.el-select-v2.el-select-v2--small .el-select-v2__selection .el-tag{margin:1px 0 1px 6px;height:18px}.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.is-multiple .el-select-dropdown__item.selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-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") 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") no-repeat;mask-size:100% 100%;-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") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.is-disabled::after{background-color:var(--el-text-color-disabled)}.el-select-dropdown .el-select-dropdown__option-item.is-selected::after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-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") 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") no-repeat;mask-size:100% 100%;-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") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown .el-select-dropdown__item.is-disabled:hover{background-color:unset}.el-select-dropdown .el-select-dropdown__item.is-disabled.selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__header{padding:10px;border-bottom:1px solid var(--el-border-color-light)}.el-select-dropdown__footer{padding:10px;border-top:1px solid var(--el-border-color-light)}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--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{display:inline-block;position:relative;vertical-align:middle;line-height:32px}.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:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-select .el-select-tags-wrapper.has-prefix{margin-left:6px}.el-select--large{line-height:40px}.el-select--large .el-select-tags-wrapper.has-prefix{margin-left:8px}.el-select--small{line-height:24px}.el-select--small .el-select-tags-wrapper.has-prefix{margin-left:4px}.el-select .el-select__tags>span{display:inline-block}.el-select:hover:not(.el-select--disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-border-color-hover) inset}.el-select .el-select__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select .el-input__wrapper{cursor:pointer}.el-select .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select .el-input__inner{cursor:pointer}.el-select .el-input{display:flex}.el-select .el-input .el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:transform var(--el-transition-duration);transform:rotateZ(0);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotateZ(-180deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotateZ(0);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select .el-input .el-select__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select .el-input .el-select__caret.el-icon{position:relative;height:inherit;z-index:2}.el-select .el-input.is-disabled .el-input__wrapper{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-select__caret{cursor:not-allowed}.el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-disabled{cursor:not-allowed}.el-select__input--iOS{position:absolute;left:0;top:0;z-index:6}.el-select__input.is-small{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select__close:hover{color:var(--el-select-close-hover-color)}.el-select__tags{position:absolute;line-height:normal;top:50%;transform:translateY(-50%);white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__tags .el-tag:last-child{margin-right:0}.el-select__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__tags .el-tag .el-icon-close::before{display:block;transform:translate(0,.5px)}.el-select__tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__tags.is-disabled{cursor:not-allowed}.el-select__collapse-tags{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__collapse-tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__collapse-tags .el-tag:last-child{margin-right:0}.el-select__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__collapse-tags .el-tag .el-icon-close::before{display:block;transform:translate(0,.5px)}.el-select__collapse-tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tag{line-height:inherit;height:inherit;display:flex}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);display:inline-block;height:16px;border-radius:var(--el-border-radius-base);width:100%}.el-skeleton__circle{border-radius:50%;width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size)}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.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;display:flex;align-items:center;justify-content:center;border-radius:0}.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)}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.el-skeleton__paragraph{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.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%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.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}.el-slider{width:100%;height:32px;display:flex;align-items:center}.el-slider__runway{flex:1;height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);position:relative;cursor:pointer}.el-slider__runway.show-input{margin-right:30px;width:auto}.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{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.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);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;outline:0}.el-slider__button-wrapper::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{display:inline-block;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);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;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);transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translateX(-50%);font-size:14px;color:var(--el-color-info);margin-top:15px;white-space:pre}.el-slider.is-vertical{position:relative;display:inline-flex;width:auto;height:100%;flex:0}.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);height:auto;border-radius:0 0 3px 3px}.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{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{100%{transform:rotate(360deg)}}@keyframes rotate{100%{transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.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{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:var(--el-bg-color);transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.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{position:absolute;border-color:inherit;background-color:var(--el-text-color-placeholder)}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:var(--el-text-color-primary)}.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{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.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{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.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-center .el-step__head{text-align:center}.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{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.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{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow::after,.el-step.is-simple .el-step__arrow::before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:var(--el-text-color-placeholder)}.el-step.is-simple .el-step__arrow::before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow::after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:var(--el-fill-color-light)}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color)}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.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);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--el-text-color-primary)}.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 *{line-height:1;font-size:14px;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{display:inline-flex;position:relative;align-items:center;min-width:40px;height:20px;border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));outline:0;border-radius:10px;box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);height:16px;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:0 4px 0 calc(16px + 2px)}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{font-size:12px;color:var(--el-color-white);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-switch__core .el-switch__action{position:absolute;left:1px;border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);width:16px;height:16px;background-color:var(--el-color-white);display:flex;justify-content:center;align-items:center;color:var(--el-switch-off-color)}.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{left:calc(100% - 17px);color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 calc(16px + 2px) 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{font-size:14px;line-height:24px;height:40px}.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{min-width:50px;height:24px;border-radius:12px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 calc(20px + 2px)}.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 calc(20px + 2px) 0 6px}.el-switch--small{font-size:12px;line-height:16px;height:24px}.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{min-width:30px;height:16px;border-radius:8px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 calc(12px + 2px)}.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 calc(12px + 2px) 0 2px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--el-font-size-base)}.el-table-filter__list-item:hover{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__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:var(--el-text-color-regular);cursor:pointer;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:focus{outline:0}.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{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.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-bg-color);--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-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, 0.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, 0.15);--el-table-index:var(--el-index-normal)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.el-table__inner-wrapper::before{left:0;bottom:0;width:100%;height:1px}.el-table tbody:focus-visible{outline:0}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{position:-webkit-sticky;position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.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:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.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 tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:var(--el-table-index)}.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{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding:0 12px}.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:14px}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:12px}.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 td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;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{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border .el-table__inner-wrapper::after,.el-table--border::after,.el-table--border::before,.el-table__inner-wrapper::before{content:"";position:absolute;background-color:var(--el-table-border-color);z-index:calc(var(--el-table-index) + 2)}.el-table--border .el-table__inner-wrapper::after{left:0;top:0;width:100%;height:1px;z-index:calc(var(--el-table-index) + 2)}.el-table--border::before{top:-1px;left:0;width:1px;height:100%}.el-table--border::after{top:-1px;right:0;width:1px;height:100%}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;flex-shrink:0}.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__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.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,.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{position:-webkit-sticky!important;position:sticky!important;background:inherit;z-index:calc(var(--el-table-index) + 1)}.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--left.is-last-column::before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-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-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--right.is-first-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-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--right.is-first-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-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--right.is-first-column::before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.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--left.is-last-column::before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-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-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--right.is-first-column::before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column::before{content:"";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.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,.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{left:-10px}.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,.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{right:-10px;box-shadow:none}.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,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{position:-webkit-sticky!important;position:sticky!important;z-index:calc(var(--el-table-index) + 1);background:#fff;right:0}.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__body,.el-table__footer,.el-table__header{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{overflow:hidden;flex-shrink:0}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-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{overflow:hidden;position:relative;flex:1}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;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;position:absolute;z-index:-1}.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.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.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>td.el-table__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{position:-webkit-sticky;position:sticky;top:0;z-index:calc(var(--el-table-index) + 2)}.el-table.el-table--scrollable-y .el-table__body-footer{position:-webkit-sticky;position:sticky;bottom:0;z-index:calc(var(--el-table-index) + 2)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:calc(var(--el-table-index) + 9)}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:calc(var(--el-table-index) + 2);position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:calc(var(--el-table-index) + 2);position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:calc(var(--el-table-index) + 2);position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.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{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.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-bg-color);--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-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, 0.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, 0.15);--el-table-index:var(--el-index-normal)}.el-table-v2{font-size:14px}.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{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0;box-shadow:2px 0 4px 0 rgba(0,0,0,.06)}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);right:0;box-shadow:-2px 0 4px 0 rgba(0,0,0,.06)}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row{-webkit-padding-end:var(--el-table-scrollbar-size);padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__row{-webkit-padding-end:var(--el-table-scrollbar-size);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__footer{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{position:absolute;left:0;right:0;top:0;bottom:0;z-index:9999}.el-table-v2__header-row{display:flex;border-bottom:var(--el-table-border)}.el-table-v2__header-cell{display:flex;align-items:center;padding:0 8px;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);font-weight:700}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{transition:opacity,display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{border-bottom:var(--el-table-border);display:flex;align-items:center;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{height:100%;overflow:hidden;display:flex;align-items:center;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{margin:0 4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.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{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{overflow:hidden;align-items:stretch}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{word-break:break-all}.el-tabs{--el-tabs-header-height:40px}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:var(--el-color-primary);z-index:1;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}.el-tabs__new-tab{display:flex;align-items:center;justify-content:center;float:right;border:1px solid var(--el-border-color);height:20px;width:20px;line-height:20px;margin:10px 0 10px 10px;border-radius:3px;text-align:center;font-size:12px;color:var(--el-text-color-primary);cursor:pointer;transition:all .15s}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8,.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--el-border-color-light);z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:var(--el-text-color-secondary);width:20px;text-align:center}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;white-space:nowrap;position:relative;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:var(--el-tabs-header-height);box-sizing:border-box;display:flex;align-items:center;justify-content:center;list-style:none;font-size:var(--el-font-size-base);font-weight:500;color:var(--el-text-color-primary);position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.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{border-radius:50%;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-left:5px}.el-tabs__item .is-icon-close:before{transform:scale(.9);display:inline-block}.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{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height)}.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);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{position:relative;font-size:12px;width:0;height:14px;overflow:hidden;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;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)}.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);border:1px solid transparent;margin-top:-1px;color:var(--el-text-color-secondary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.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 .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.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),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.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){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover{padding-left:13px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.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,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.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{padding-right:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover{padding-right:13px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.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 transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.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-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{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{top:0;bottom:auto;width:2px;height: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-next,.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-next,.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-next,.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-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.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-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotateZ(90deg)}.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{left:auto;top:0}.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{right:auto;bottom:0}.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{height:100%;width:2px;bottom:auto;top:0}.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 .el-tabs__header.is-left{float: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{left:auto;right:0}.el-tabs--left .el-tabs__active-bar.is-left{right:0;left:auto}.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-right-color:#fff;border-left:none;border-bottom:none}.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-radius:4px 0 0 4px;border-bottom:1px solid var(--el-border-color-light);border-right:none}.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 transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float: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-left-color:#fff;border-right:none;border-bottom: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-radius:0 4px 4px 0;border-bottom:1px solid var(--el-border-color-light);border-left:none}.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 transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter var(--el-transition-duration);animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave var(--el-transition-duration);animation:slideInRight-leave var(--el-transition-duration)}.slideInLeft-enter{-webkit-animation:slideInLeft-enter var(--el-transition-duration);animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave var(--el-transition-duration);animation:slideInLeft-leave var(--el-transition-duration)}@-webkit-keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(-100%);opacity:0}}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px}.el-tag{--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-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.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.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.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)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--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-text-color:var(--el-color-white);--el-tag-text-color:var(--el-color-white)}.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-text-color:var(--el-color-white)}.el-tag--dark.el-tag--success{--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--warning{--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--danger{--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--error{--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--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-bg-color:var(--el-fill-color-blank)}.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{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.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)}.el-text{align-self:center;margin:0;padding:0;font-size:var(--el-text-font-size);color:var(--el-text-color);word-break:break-all}.el-text.is-truncated{display:inline-block;max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;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{margin:5px 0;min-width: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);font-weight:700;cursor:pointer}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid var(--el-timeline-node-color)}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{position:absolute;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{left:-2px;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{position:absolute;display:flex;justify-content:center;align-items:center}.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{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light)}.el-timeline{margin:0;font-size:var(--el-font-size-base);list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{display:flex;align-items:center}.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{display:block;height:calc(50% - 10px)}.el-tooltip-v2__content{--el-tooltip-v2-padding:5px 10px;--el-tooltip-v2-border-radius:4px;--el-tooltip-v2-border-color:var(--el-border-color);border-radius:var(--el-tooltip-v2-border-radius);color:var(--el-color-black);background-color:var(--el-color-white);padding:var(--el-tooltip-v2-padding);border:1px solid var(--el-border-color)}.el-tooltip-v2__arrow{position:absolute;color:var(--el-color-white);width:var(--el-tooltip-v2-arrow-width);height:var(--el-tooltip-v2-arrow-height);pointer-events:none;left:var(--el-tooltip-v2-arrow-x);top:var(--el-tooltip-v2-arrow-y)}.el-tooltip-v2__arrow::before{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__arrow::after{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow{bottom:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow::before{border-top-color:var(--el-color-white);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow::after{border-top-color:var(--el-border-color);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:100%;z-index:-1}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow{top:0}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow::before{border-bottom-color:var(--el-color-white);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow::after{border-bottom-color:var(--el-border-color);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow{right:0}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow::before{border-left-color:var(--el-color-white);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow::after{border-left-color:var(--el-border-color);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow{left:0}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow::before{border-right-color:var(--el-color-white);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow::after{border-right-color:var(--el-border-color);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:100%;z-index:-1}.el-tooltip-v2__content.is-dark{--el-tooltip-v2-border-color:transparent;background-color:var(--el-color-black);color:var(--el-color-white);border-color:transparent}.el-tooltip-v2__content.is-dark .el-tooltip-v2__arrow{background-color:var(--el-color-black);border-color:transparent}.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}.el-transfer{font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.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{overflow:hidden;background:var(--el-bg-color-overlay);display:inline-block;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);max-height:100%;box-sizing:border-box;position:relative}.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-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:var(--el-transfer-panel-body-height);overflow:auto;box-sizing:border-box}.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)}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:22px;line-height:var(--el-transfer-item-height)}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;padding:15px;box-sizing:border-box}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:calc(var(--el-transfer-filter-height)/ 2)}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{display:flex;align-items:center;height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);margin:0;padding-left:15px;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)}.el-transfer-panel .el-transfer-panel__header .el-checkbox{position:relative;display:flex;width:100%;align-items:center}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:var(--el-text-color-primary);font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0);color:var(--el-text-color-secondary);font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);margin:0;padding:0;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)}.el-transfer-panel .el-transfer-panel__footer::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:var(--el-text-color-regular)}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding:6px 15px 0;color:var(--el-text-color-secondary);text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner::after{height:6px;width:3px;left:4px}.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)}.el-tree{position:relative;cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--el-text-color-secondary);font-size:var(--el-font-size-base)}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:var(--el-color-primary)}.el-tree-node{white-space:nowrap;outline:0}.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);display:flex;align-items:center;height:var(--el-tree-node-content-height);cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px;box-sizing:content-box}.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);font-size:12px;transform:rotate(0);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default;visibility:hidden}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{margin-right:8px;font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color)}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.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__item{flex:1;background:0 0!important;padding-left:0;height:20px;line-height:20px}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px}.el-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card>i{font-size:28px;color:var(--el-text-color-secondary)}.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-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;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);font-size:14px;text-align:center}.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-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.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{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);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{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.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:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{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:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.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{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.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{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.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{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.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;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar{opacity:1}.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 340ms 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{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);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-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);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-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow::before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.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:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent!important;border-top-color:transparent!important}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.selected{color:var(--el-color-primary);font-weight:700}.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);line-height:20px;margin-bottom:4px}.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} \ No newline at end of file diff --git a/platform/backend/static/element-plus/index.full.min.js b/platform/backend/static/element-plus/index.full.min.js new file mode 100644 index 0000000..bfe9d16 --- /dev/null +++ b/platform/backend/static/element-plus/index.full.min.js @@ -0,0 +1,78 @@ +/*! Element Plus v2.4.3 */(function(V,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(V=typeof globalThis!="undefined"?globalThis:V||self,e(V.ElementPlus={},V.Vue))})(this,function(V,e){"use strict";const xN='a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])',FN=t=>getComputedStyle(t).position==="fixed"?!1:t.offsetParent!==null,Sm=t=>Array.from(t.querySelectorAll(xN)).filter(n=>HN(n)&&FN(n)),HN=t=>{if(t.tabIndex>0||t.tabIndex===0&&t.getAttribute("tabIndex")!==null)return!0;if(t.disabled)return!1;switch(t.nodeName){case"A":return!!t.href&&t.rel!=="ignore";case"INPUT":return!(t.type==="hidden"||t.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},ja=function(t,n,...o){let r;n.includes("mouse")||n.includes("click")?r="MouseEvents":n.includes("key")?r="KeyboardEvent":r="HTMLEvents";const l=document.createEvent(r);return l.initEvent(n,...o),t.dispatchEvent(l),t},Em=t=>!t.getAttribute("aria-owns"),Nm=(t,n,o)=>{const{parentNode:r}=t;if(!r)return null;const l=r.querySelectorAll(o),a=Array.prototype.indexOf.call(l,t);return l[a+n]||null},Ua=t=>{!t||(t.focus(),!Em(t)&&t.click())},pt=(t,n,{checkForDefaultPrevented:o=!0}={})=>l=>{const a=t==null?void 0:t(l);if(o===!1||!a)return n==null?void 0:n(l)},_m=t=>n=>n.pointerType==="mouse"?t(n):void 0;var KN=Object.defineProperty,WN=Object.defineProperties,jN=Object.getOwnPropertyDescriptors,Bm=Object.getOwnPropertySymbols,UN=Object.prototype.hasOwnProperty,GN=Object.prototype.propertyIsEnumerable,$m=(t,n,o)=>n in t?KN(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,qN=(t,n)=>{for(var o in n||(n={}))UN.call(n,o)&&$m(t,o,n[o]);if(Bm)for(var o of Bm(n))GN.call(n,o)&&$m(t,o,n[o]);return t},YN=(t,n)=>WN(t,jN(n));function Tm(t,n){var o;const r=e.shallowRef();return e.watchEffect(()=>{r.value=t()},YN(qN({},n),{flush:(o=n==null?void 0:n.flush)!=null?o:"sync"})),e.readonly(r)}var vm;const He=typeof window!="undefined",XN=t=>typeof t!="undefined",ZN=t=>typeof t=="string",uc=()=>{},JN=He&&((vm=window==null?void 0:window.navigator)==null?void 0:vm.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ur(t){return typeof t=="function"?t():e.unref(t)}function Vm(t,n){function o(...r){t(()=>n.apply(this,r),{fn:n,thisArg:this,args:r})}return o}function QN(t,n={}){let o,r;return a=>{const s=ur(t),i=ur(n.maxWait);if(o&&clearTimeout(o),s<=0||i!==void 0&&i<=0)return r&&(clearTimeout(r),r=null),a();i&&!r&&(r=setTimeout(()=>{o&&clearTimeout(o),r=null,a()},i)),o=setTimeout(()=>{r&&clearTimeout(r),r=null,a()},s)}}function e_(t,n=!0,o=!0){let r=0,l,a=!0;const s=()=>{l&&(clearTimeout(l),l=void 0)};return c=>{const f=ur(t),u=Date.now()-r;if(s(),f<=0)return r=Date.now(),c();u>f&&(o||!a)?(r=Date.now(),c()):n&&(l=setTimeout(()=>{r=Date.now(),a=!0,s(),c()},f)),!o&&!l&&(l=setTimeout(()=>a=!0,f)),a=!1}}function t_(t){return t}function Al(t){return e.getCurrentScope()?(e.onScopeDispose(t),!0):!1}function n_(t,n=200,o={}){return Vm(QN(n,o),t)}function o_(t,n=200,o={}){if(n<=0)return t;const r=e.ref(t.value),l=n_(()=>{r.value=t.value},n,o);return e.watch(t,()=>l()),r}function Mm(t,n=200,o=!1,r=!0){return Vm(e_(n,o,r),t)}function pc(t,n=!0){e.getCurrentInstance()?e.onMounted(t):n?t():e.nextTick(t)}function pr(t,n,o={}){const{immediate:r=!0}=o,l=e.ref(!1);let a=null;function s(){a&&(clearTimeout(a),a=null)}function i(){l.value=!1,s()}function c(...f){s(),l.value=!0,a=setTimeout(()=>{l.value=!1,a=null,t(...f)},ur(n))}return r&&(l.value=!0,He&&c()),Al(i),{isPending:l,start:c,stop:i}}function sn(t){var n;const o=ur(t);return(n=o==null?void 0:o.$el)!=null?n:o}const mr=He?window:void 0,r_=He?window.document:void 0;function rt(...t){let n,o,r,l;if(ZN(t[0])?([o,r,l]=t,n=mr):[n,o,r,l]=t,!n)return uc;let a=uc;const s=e.watch(()=>sn(n),c=>{a(),c&&(c.addEventListener(o,r,l),a=()=>{c.removeEventListener(o,r,l),a=uc})},{immediate:!0,flush:"post"}),i=()=>{s(),a()};return Al(i),i}function mc(t,n,o={}){const{window:r=mr,ignore:l,capture:a=!0,detectIframe:s=!1}=o;if(!r)return;const i=e.ref(!0);let c;const f=p=>{r.clearTimeout(c);const h=sn(t),g=p.composedPath();!h||h===p.target||g.includes(h)||!i.value||l&&l.length>0&&l.some(m=>{const b=sn(m);return b&&(p.target===b||g.includes(b))})||n(p)},u=[rt(r,"click",f,{passive:!0,capture:a}),rt(r,"pointerdown",p=>{const h=sn(t);i.value=!!h&&!p.composedPath().includes(h)},{passive:!0}),rt(r,"pointerup",p=>{if(p.button===0){const h=p.composedPath();p.composedPath=()=>h,c=r.setTimeout(()=>f(p),50)}},{passive:!0}),s&&rt(r,"blur",p=>{var h;const g=sn(t);((h=document.activeElement)==null?void 0:h.tagName)==="IFRAME"&&!(g!=null&&g.contains(document.activeElement))&&n(p)})].filter(Boolean);return()=>u.forEach(p=>p())}function Im(t,n=!1){const o=e.ref(),r=()=>o.value=Boolean(t());return r(),pc(r,n),o}const hc=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},gc="__vueuse_ssr_handlers__";hc[gc]=hc[gc]||{},hc[gc];function l_(t,n,{window:o=mr,initialValue:r=""}={}){const l=e.ref(r),a=e.computed(()=>{var s;return sn(n)||((s=o==null?void 0:o.document)==null?void 0:s.documentElement)});return e.watch([a,()=>ur(t)],([s,i])=>{var c;if(s&&o){const f=(c=o.getComputedStyle(s).getPropertyValue(i))==null?void 0:c.trim();l.value=f||r}},{immediate:!0}),e.watch(l,s=>{var i;(i=a.value)!=null&&i.style&&a.value.style.setProperty(ur(t),s)}),l}function a_({document:t=r_}={}){if(!t)return e.ref("visible");const n=e.ref(t.visibilityState);return rt(t,"visibilitychange",()=>{n.value=t.visibilityState}),n}var Pm=Object.getOwnPropertySymbols,s_=Object.prototype.hasOwnProperty,i_=Object.prototype.propertyIsEnumerable,c_=(t,n)=>{var o={};for(var r in t)s_.call(t,r)&&n.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&Pm)for(var r of Pm(t))n.indexOf(r)<0&&i_.call(t,r)&&(o[r]=t[r]);return o};function jt(t,n,o={}){const r=o,{window:l=mr}=r,a=c_(r,["window"]);let s;const i=Im(()=>l&&"ResizeObserver"in l),c=()=>{s&&(s.disconnect(),s=void 0)},f=e.watch(()=>sn(t),d=>{c(),i.value&&l&&d&&(s=new ResizeObserver(n),s.observe(d,a))},{immediate:!0,flush:"post"}),u=()=>{c(),f()};return Al(u),{isSupported:i,stop:u}}function Rm(t,n={}){const{reset:o=!0,windowResize:r=!0,windowScroll:l=!0,immediate:a=!0}=n,s=e.ref(0),i=e.ref(0),c=e.ref(0),f=e.ref(0),u=e.ref(0),d=e.ref(0),p=e.ref(0),h=e.ref(0);function g(){const m=sn(t);if(!m){o&&(s.value=0,i.value=0,c.value=0,f.value=0,u.value=0,d.value=0,p.value=0,h.value=0);return}const b=m.getBoundingClientRect();s.value=b.height,i.value=b.bottom,c.value=b.left,f.value=b.right,u.value=b.top,d.value=b.width,p.value=b.x,h.value=b.y}return jt(t,g),e.watch(()=>sn(t),m=>!m&&g()),l&&rt("scroll",g,{passive:!0}),r&&rt("resize",g,{passive:!0}),pc(()=>{a&&g()}),{height:s,bottom:i,left:c,right:f,top:u,width:d,x:p,y:h,update:g}}var Om=Object.getOwnPropertySymbols,d_=Object.prototype.hasOwnProperty,f_=Object.prototype.propertyIsEnumerable,u_=(t,n)=>{var o={};for(var r in t)d_.call(t,r)&&n.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&Om)for(var r of Om(t))n.indexOf(r)<0&&f_.call(t,r)&&(o[r]=t[r]);return o};function p_(t,n,o={}){const r=o,{window:l=mr}=r,a=u_(r,["window"]);let s;const i=Im(()=>l&&"MutationObserver"in l),c=()=>{s&&(s.disconnect(),s=void 0)},f=e.watch(()=>sn(t),d=>{c(),i.value&&l&&d&&(s=new MutationObserver(n),s.observe(d,a))},{immediate:!0}),u=()=>{c(),f()};return Al(u),{isSupported:i,stop:u}}var Am;(function(t){t.UP="UP",t.RIGHT="RIGHT",t.DOWN="DOWN",t.LEFT="LEFT",t.NONE="NONE"})(Am||(Am={}));var m_=Object.defineProperty,zm=Object.getOwnPropertySymbols,h_=Object.prototype.hasOwnProperty,g_=Object.prototype.propertyIsEnumerable,Dm=(t,n,o)=>n in t?m_(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,y_=(t,n)=>{for(var o in n||(n={}))h_.call(n,o)&&Dm(t,o,n[o]);if(zm)for(var o of zm(n))g_.call(n,o)&&Dm(t,o,n[o]);return t};y_({linear:t_},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]});function b_(t,n,o,r={}){var l,a,s;const{passive:i=!1,eventName:c,deep:f=!1,defaultValue:u}=r,d=e.getCurrentInstance(),p=o||(d==null?void 0:d.emit)||((l=d==null?void 0:d.$emit)==null?void 0:l.bind(d))||((s=(a=d==null?void 0:d.proxy)==null?void 0:a.$emit)==null?void 0:s.bind(d==null?void 0:d.proxy));let h=c;n||(n="modelValue"),h=c||h||`update:${n.toString()}`;const g=()=>XN(t[n])?t[n]:u;if(i){const m=e.ref(g());return e.watch(()=>t[n],b=>m.value=b),e.watch(m,b=>{(b!==t[n]||f)&&p(h,b)},{deep:f}),m}else return e.computed({get(){return g()},set(m){p(h,m)}})}function C_({window:t=mr}={}){if(!t)return e.ref(!1);const n=e.ref(t.document.hasFocus());return rt(t,"blur",()=>{n.value=!1}),rt(t,"focus",()=>{n.value=!0}),n}function w_(t={}){const{window:n=mr,initialWidth:o=1/0,initialHeight:r=1/0,listenOrientation:l=!0}=t,a=e.ref(o),s=e.ref(r),i=()=>{n&&(a.value=n.innerWidth,s.value=n.innerHeight)};return i(),pc(i),rt("resize",i,{passive:!0}),l&&rt("orientationchange",i,{passive:!0}),{width:a,height:s}}const Lm=()=>He&&/firefox/i.test(window.navigator.userAgent),k_=(t,n)=>{if(!He||!t||!n)return!1;const o=t.getBoundingClientRect();let r;return n instanceof Element?r=n.getBoundingClientRect():r={top:0,right:window.innerWidth,bottom:window.innerHeight,left:0},o.topr.top&&o.right>r.left&&o.left{let n=0,o=t;for(;o;)n+=o.offsetTop,o=o.offsetParent;return n},S_=(t,n)=>Math.abs(xm(t)-xm(n)),yc=t=>{let n,o;return t.type==="touchend"?(o=t.changedTouches[0].clientY,n=t.changedTouches[0].clientX):t.type.startsWith("touch")?(o=t.touches[0].clientY,n=t.touches[0].clientX):(o=t.clientY,n=t.clientX),{clientX:n,clientY:o}},st=()=>{},E_=Object.prototype.hasOwnProperty,Lt=(t,n)=>E_.call(t,n),Re=Array.isArray,zl=t=>Cc(t)==="[object Date]",qe=t=>typeof t=="function",De=t=>typeof t=="string",nt=t=>t!==null&&typeof t=="object",bc=t=>nt(t)&&qe(t.then)&&qe(t.catch),N_=Object.prototype.toString,Cc=t=>N_.call(t),wc=t=>Cc(t).slice(8,-1),Fm=t=>Cc(t)==="[object Object]",kc=t=>{const n=Object.create(null);return o=>n[o]||(n[o]=t(o))},__=/-(\w)/g,Hm=kc(t=>t.replace(__,(n,o)=>o?o.toUpperCase():"")),B_=/\B([A-Z])/g,$_=kc(t=>t.replace(B_,"-$1").toLowerCase()),T_=kc(t=>t.charAt(0).toUpperCase()+t.slice(1));var Km=typeof global=="object"&&global&&global.Object===Object&&global,v_=typeof self=="object"&&self&&self.Object===Object&&self,Ot=Km||v_||Function("return this")(),Ut=Ot.Symbol,Wm=Object.prototype,V_=Wm.hasOwnProperty,M_=Wm.toString,Dl=Ut?Ut.toStringTag:void 0;function I_(t){var n=V_.call(t,Dl),o=t[Dl];try{t[Dl]=void 0;var r=!0}catch(a){}var l=M_.call(t);return r&&(n?t[Dl]=o:delete t[Dl]),l}var P_=Object.prototype,R_=P_.toString;function O_(t){return R_.call(t)}var A_="[object Null]",z_="[object Undefined]",jm=Ut?Ut.toStringTag:void 0;function Jt(t){return t==null?t===void 0?z_:A_:jm&&jm in Object(t)?I_(t):O_(t)}function Et(t){return t!=null&&typeof t=="object"}var D_="[object Symbol]";function gn(t){return typeof t=="symbol"||Et(t)&&Jt(t)==D_}var L_=0/0;function Um(t){return typeof t=="number"?t:gn(t)?L_:+t}function bt(t,n){for(var o=-1,r=t==null?0:t.length,l=Array(r);++o0){if(++n>=SB)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}var sh=ah(th),_B=/\{\n\/\* \[wrapped with (.+)\] \*/,BB=/,? & /;function $B(t){var n=t.match(_B);return n?n[1].split(BB):[]}var TB=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function vB(t,n){var o=n.length;if(!o)return t;var r=o-1;return n[r]=(o>1?"& ":"")+n[r],n=n.join(o>2?", ":" "),t.replace(TB,`{ +/* [wrapped with `+n+`] */ +`)}function _c(t){return function(){return t}}var Ja=function(){try{var t=gr(Object,"defineProperty");return t({},"",{}),t}catch(n){}}(),VB=Ja?function(t,n){return Ja(t,"toString",{configurable:!0,enumerable:!1,value:_c(n),writable:!0})}:Qt,Bc=ah(VB);function Bn(t,n){for(var o=-1,r=t==null?0:t.length;++o-1}var IB=1,PB=2,RB=8,OB=16,AB=32,zB=64,DB=128,LB=256,xB=512,FB=[["ary",DB],["bind",IB],["bindKey",PB],["curry",RB],["curryRight",OB],["flip",xB],["partial",AB],["partialRight",zB],["rearg",LB]];function HB(t,n){return Bn(FB,function(o){var r="_."+o[0];n&o[1]&&!es(t,r)&&t.push(r)}),t.sort()}function ch(t,n,o){var r=n+"";return Bc(t,vB(r,HB($B(r),o)))}var KB=1,WB=2,jB=4,UB=8,dh=32,fh=64;function uh(t,n,o,r,l,a,s,i,c,f){var u=n&UB,d=u?s:void 0,p=u?void 0:s,h=u?a:void 0,g=u?void 0:a;n|=u?dh:fh,n&=~(u?fh:dh),n&jB||(n&=~(KB|WB));var m=[t,n,l,h,d,g,p,i,c,f],b=o.apply(void 0,m);return Nc(t)&&sh(b,m),b.placeholder=r,ch(b,t,n)}function Gr(t){var n=t;return n.placeholder}var GB=9007199254740991,qB=/^(?:0|[1-9]\d*)$/;function Co(t,n){var o=typeof t;return n=n==null?GB:n,!!n&&(o=="number"||o!="symbol"&&qB.test(t))&&t>-1&&t%1==0&&t1&&C.reverse(),u&&c-1&&t%1==0&&t<=h$}function dn(t){return t!=null&&ns(t.length)&&!bo(t)}function en(t,n,o){if(!Ct(o))return!1;var r=typeof n;return(r=="number"?dn(o)&&Co(n,o.length):r=="string"&&n in o)?Dn(o[n],t):!1}function qr(t){return Je(function(n,o){var r=-1,l=o.length,a=l>1?o[l-1]:void 0,s=l>2?o[2]:void 0;for(a=t.length>3&&typeof a=="function"?(l--,a):void 0,s&&en(o[0],o[1],s)&&(a=l<3?void 0:a,l=1),n=Object(n);++r-1}function BT(t,n){var o=this.__data__,r=rs(o,t);return r<0?(++this.size,o.push([t,n])):o[r][1]=n,this}function So(t){var n=-1,o=t==null?0:t.length;for(this.clear();++n0&&o(i)?n>1?xt(i,n-1,o,r,l):xo(l,i):r||(l[l.length]=i)}return l}function zc(t){var n=t==null?0:t.length;return n?xt(t,1):[]}function No(t){return Bc(Sh(t,void 0,zc),t+"")}var xT=No(Ac),as=Mh(Object.getPrototypeOf,Object),FT="[object Object]",HT=Function.prototype,KT=Object.prototype,Oh=HT.toString,WT=KT.hasOwnProperty,jT=Oh.call(Object);function ql(t){if(!Et(t)||Jt(t)!=FT)return!1;var n=as(t);if(n===null)return!0;var o=WT.call(n,"constructor")&&n.constructor;return typeof o=="function"&&o instanceof o&&Oh.call(o)==jT}var UT="[object DOMException]",GT="[object Error]";function Dc(t){if(!Et(t))return!1;var n=Jt(t);return n==GT||n==UT||typeof t.message=="string"&&typeof t.name=="string"&&!ql(t)}var Ah=Je(function(t,n){try{return bn(t,void 0,n)}catch(o){return Dc(o)?o:new Error(o)}}),qT="Expected a function";function zh(t,n){var o;if(typeof n!="function")throw new TypeError(qT);return t=Ze(t),function(){return--t>0&&(o=n.apply(this,arguments)),t<=1&&(n=void 0),o}}var YT=1,XT=32,ss=Je(function(t,n,o){var r=YT;if(o.length){var l=zo(o,Gr(ss));r|=XT}return wo(t,r,n,o,l)});ss.placeholder={};var ZT=No(function(t,n){return Bn(n,function(o){o=eo(o),ko(t,o,ss(t[o],t))}),t}),JT=1,QT=2,ev=32,Lc=Je(function(t,n,o){var r=JT|QT;if(o.length){var l=zo(o,Gr(Lc));r|=ev}return wo(n,r,t,o,l)});Lc.placeholder={};function Tn(t,n,o){var r=-1,l=t.length;n<0&&(n=-n>l?0:l+n),o=o>l?l:o,o<0&&(o+=l),l=n>o?0:o-n>>>0,n>>>=0;for(var a=Array(l);++r=r?t:Tn(t,n,o)}var tv="\\ud800-\\udfff",nv="\\u0300-\\u036f",ov="\\ufe20-\\ufe2f",rv="\\u20d0-\\u20ff",lv=nv+ov+rv,av="\\ufe0e\\ufe0f",sv="\\u200d",iv=RegExp("["+sv+tv+lv+av+"]");function Xr(t){return iv.test(t)}function cv(t){return t.split("")}var Dh="\\ud800-\\udfff",dv="\\u0300-\\u036f",fv="\\ufe20-\\ufe2f",uv="\\u20d0-\\u20ff",pv=dv+fv+uv,mv="\\ufe0e\\ufe0f",hv="["+Dh+"]",xc="["+pv+"]",Fc="\\ud83c[\\udffb-\\udfff]",gv="(?:"+xc+"|"+Fc+")",Lh="[^"+Dh+"]",xh="(?:\\ud83c[\\udde6-\\uddff]){2}",Fh="[\\ud800-\\udbff][\\udc00-\\udfff]",yv="\\u200d",Hh=gv+"?",Kh="["+mv+"]?",bv="(?:"+yv+"(?:"+[Lh,xh,Fh].join("|")+")"+Kh+Hh+")*",Cv=Kh+Hh+bv,wv="(?:"+[Lh+xc+"?",xc,xh,Fh,hv].join("|")+")",kv=RegExp(Fc+"(?="+Fc+")|"+wv+Cv,"g");function Sv(t){return t.match(kv)||[]}function Ln(t){return Xr(t)?Sv(t):cv(t)}function Wh(t){return function(n){n=it(n);var o=Xr(n)?Ln(n):void 0,r=o?o[0]:n.charAt(0),l=o?Fo(o,1).join(""):n.slice(1);return r[t]()+l}}var Hc=Wh("toUpperCase");function jh(t){return Hc(it(t).toLowerCase())}function Kc(t,n,o,r){var l=-1,a=t==null?0:t.length;for(r&&a&&(o=t[++l]);++l=n?t:n)),t}function mV(t,n,o){return o===void 0&&(o=n,n=void 0),o!==void 0&&(o=Nn(o),o=o===o?o:0),n!==void 0&&(n=Nn(n),n=n===n?n:0),wr(Nn(t),n,o)}function hV(){this.__data__=new So,this.size=0}function gV(t){var n=this.__data__,o=n.delete(t);return this.size=n.size,o}function yV(t){return this.__data__.get(t)}function bV(t){return this.__data__.has(t)}var CV=200;function wV(t,n){var o=this.__data__;if(o instanceof So){var r=o.__data__;if(!Ul||r.lengthi))return!1;var f=a.get(t),u=a.get(n);if(f&&u)return f==n&&u==t;var d=-1,p=!0,h=o&JM?new Sr:void 0;for(a.set(t,n),a.set(n,t);++d=n||_<0||d&&B>=a}function y(){var S=us();if(b(S))return C(S);i=setTimeout(y,m(S))}function C(S){return i=void 0,p&&r?h(S):(r=l=void 0,s)}function k(){i!==void 0&&clearTimeout(i),f=0,r=c=l=i=void 0}function w(){return i===void 0?s:C(us())}function E(){var S=us(),_=b(S);if(r=arguments,l=this,c=S,_){if(i===void 0)return g(c);if(d)return clearTimeout(i),i=setTimeout(y,n),h(c)}return i===void 0&&(i=setTimeout(y,n)),s}return E.cancel=k,E.flush=w,E}function KI(t,n){return t==null||t!==t?n:t}var Zg=Object.prototype,WI=Zg.hasOwnProperty,jI=Je(function(t,n){t=Object(t);var o=-1,r=n.length,l=r>2?n[2]:void 0;for(l&&en(n[0],n[1],l)&&(r=1);++o=ZI&&(a=Xl,s=!1,n=new Sr(n));e:for(;++l=0&&t.slice(o,l)==n}function iP(t,n){return bt(n,function(o){return[o,t[o]]})}function cP(t){var n=-1,o=Array(t.size);return t.forEach(function(r){o[++n]=[r,r]}),o}var dP="[object Map]",fP="[object Set]";function a0(t){return function(n){var o=to(n);return o==dP?td(n):o==fP?cP(n):iP(n,t(n))}}var s0=a0(Mt),i0=a0(fn),uP={"&":"&","<":"<",">":">",'"':""","'":"'"},pP=Wc(uP),c0=/[&<>"']/g,mP=RegExp(c0.source);function d0(t){return t=it(t),t&&mP.test(t)?t.replace(c0,pP):t}var f0=/[\\^$.*+?()[\]{}|]/g,hP=RegExp(f0.source);function gP(t){return t=it(t),t&&hP.test(t)?t.replace(f0,"\\$&"):t}function u0(t,n){for(var o=-1,r=t==null?0:t.length;++ol?0:l+o),r=r===void 0||r>l?l:Ze(r),r<0&&(r+=l),r=o>r?0:p0(r);o-1?l[a?n[s]:s]:void 0}}var EP=Math.max;function g0(t,n,o){var r=t==null?0:t.length;if(!r)return-1;var l=o==null?0:Ze(o);return l<0&&(l=EP(r+l,0)),Qa(t,Ue(n),l)}var NP=h0(g0);function y0(t,n,o){var r;return o(t,function(l,a,s){if(n(l,a,s))return r=a,!1}),r}function _P(t,n){return y0(t,Ue(n),no)}var BP=Math.max,$P=Math.min;function md(t,n,o){var r=t==null?0:t.length;if(!r)return-1;var l=r-1;return o!==void 0&&(l=Ze(o),l=o<0?BP(r+l,0):$P(l,r-1)),Qa(t,Ue(n),l,!0)}var TP=h0(md);function vP(t,n){return y0(t,Ue(n),pd)}function b0(t){return t&&t.length?t[0]:void 0}function C0(t,n){var o=-1,r=dn(t)?Array(t.length):[];return Wo(t,function(l,a,s){r[++o]=n(l,a,s)}),r}function hs(t,n){var o=Ye(t)?bt:C0;return o(t,Ue(n))}function w0(t,n){return xt(hs(t,n),1)}var VP=1/0;function MP(t,n){return xt(hs(t,n),VP)}function IP(t,n,o){return o=o===void 0?1:Ze(o),xt(hs(t,n),o)}var PP=1/0;function k0(t){var n=t==null?0:t.length;return n?xt(t,PP):[]}function RP(t,n){var o=t==null?0:t.length;return o?(n=n===void 0?1:Ze(n),xt(t,n)):[]}var OP=512;function AP(t){return wo(t,OP)}var zP=jc("floor"),DP="Expected a function",LP=8,xP=32,FP=128,HP=256;function S0(t){return No(function(n){var o=n.length,r=o,l=_n.prototype.thru;for(t&&n.reverse();r--;){var a=n[r];if(typeof a!="function")throw new TypeError(DP);if(l&&!s&&Za(a)=="wrapper")var s=new _n([],!0)}for(r=s?r:o;++rn}function ys(t){return function(n,o){return typeof n=="string"&&typeof o=="string"||(n=Nn(n),o=Nn(o)),t(n,o)}}var eR=ys(hd),tR=ys(function(t,n){return t>=n}),nR=Object.prototype,oR=nR.hasOwnProperty;function rR(t,n){return t!=null&&oR.call(t,n)}function lR(t,n){return t!=null&&jg(t,n,rR)}var aR=Math.max,sR=Math.min;function iR(t,n,o){return t>=sR(n,o)&&t-1:!!l&&Ur(t,n,o)>-1}var pR=Math.max;function mR(t,n,o){var r=t==null?0:t.length;if(!r)return-1;var l=o==null?0:Ze(o);return l<0&&(l=pR(r+l,0)),Ur(t,n,l)}function hR(t){var n=t==null?0:t.length;return n?Tn(t,0,-1):[]}var gR=Math.min;function yd(t,n,o){for(var r=o?ud:es,l=t[0].length,a=t.length,s=a,i=Array(a),c=1/0,f=[];s--;){var u=t[s];s&&n&&(u=bt(u,Cn(n))),c=gR(u.length,c),i[s]=!o&&(n||l>=120&&u.length>=120)?new Sr(s&&u):void 0}u=t[0];var d=-1,p=i[0];e:for(;++d=-M0&&t<=M0}function wd(t){return t===void 0}var oO="[object WeakMap]";function rO(t){return Et(t)&&to(t)==oO}var lO="[object WeakSet]";function aO(t){return Et(t)&&Jt(t)==lO}var sO=1;function iO(t){return Ue(typeof t=="function"?t:vn(t,sO))}var cO=Array.prototype,dO=cO.join;function fO(t,n){return t==null?"":dO.call(t,n)}var uO=Jr(function(t,n,o){return t+(o?"-":"")+n.toLowerCase()}),pO=fs(function(t,n,o){ko(t,o,n)});function mO(t,n,o){for(var r=o+1;r--;)if(t[r]===n)return r;return r}var hO=Math.max,gO=Math.min;function yO(t,n,o){var r=t==null?0:t.length;if(!r)return-1;var l=r;return o!==void 0&&(l=Ze(o),l=l<0?hO(r+l,0):gO(l,r-1)),n===n?mO(t,n,l):Qa(t,ih,l,!0)}var bO=Jr(function(t,n,o){return t+(o?" ":"")+n.toLowerCase()}),CO=Wh("toLowerCase");function kd(t,n){return t=this.__values__.length,n=t?void 0:this.__values__[this.__index__++];return{done:t,value:n}}function O0(t,n){var o=t.length;if(!!o)return n+=n<0?o:0,Co(n,o)?t[n]:void 0}function KO(t,n){return t&&t.length?O0(t,Ze(n)):void 0}function WO(t){return t=Ze(t),Je(function(n){return O0(n,t)})}function _d(t,n){return n=Lo(n,t),t=_0(t,n),t==null||delete t[eo(wn(n))]}function jO(t){return ql(t)?void 0:t}var UO=1,GO=2,qO=4,YO=No(function(t,n){var o={};if(t==null)return o;var r=!1;n=bt(n,function(a){return a=Lo(a,t),r||(r=a.length>1),a}),Qn(t,Yc(t),o),r&&(o=vn(o,UO|GO|qO,jO));for(var l=n.length;l--;)_d(o,n[l]);return o});function na(t,n,o,r){if(!Ct(t))return t;n=Lo(n,t);for(var l=-1,a=n.length,s=a-1,i=t;i!=null&&++ln||a&&s&&c&&!i&&!f||r&&s&&c||!o&&c||!l)return 1;if(!r&&!a&&!f&&t=i)return c;var f=o[r];return c*(f=="desc"?-1:1)}}return t.index-n.index}function L0(t,n,o){n.length?n=bt(n,function(a){return Ye(a)?function(s){return Cr(s,a.length===1?a[0]:a)}:a}):n=[Qt];var r=-1;n=bt(n,Cn(Ue));var l=C0(t,function(a,s,i){var c=bt(n,function(f){return f(a)});return{criteria:c,index:++r,value:a}});return JO(l,function(a,s){return QO(a,s,o)})}function eA(t,n,o,r){return t==null?[]:(Ye(n)||(n=n==null?[]:[n]),o=r?void 0:o,Ye(o)||(o=o==null?[]:[o]),L0(t,n,o))}function Bd(t){return No(function(n){return n=bt(n,Cn(Ue)),Je(function(o){var r=this;return t(n,function(l){return bn(l,r,o)})})})}var tA=Bd(bt),nA=Je,oA=Math.min,rA=nA(function(t,n){n=n.length==1&&Ye(n[0])?bt(n[0],Cn(Ue)):bt(xt(n,1),Cn(Ue));var o=n.length;return Je(function(r){for(var l=-1,a=oA(r.length,o);++lsA)return o;do n%2&&(o+=t),n=iA(n/2),n&&(t+=t);while(n);return o}var cA=ad("length"),x0="\\ud800-\\udfff",dA="\\u0300-\\u036f",fA="\\ufe20-\\ufe2f",uA="\\u20d0-\\u20ff",pA=dA+fA+uA,mA="\\ufe0e\\ufe0f",hA="["+x0+"]",Td="["+pA+"]",vd="\\ud83c[\\udffb-\\udfff]",gA="(?:"+Td+"|"+vd+")",F0="[^"+x0+"]",H0="(?:\\ud83c[\\udde6-\\uddff]){2}",K0="[\\ud800-\\udbff][\\udc00-\\udfff]",yA="\\u200d",W0=gA+"?",j0="["+mA+"]?",bA="(?:"+yA+"(?:"+[F0,H0,K0].join("|")+")"+j0+W0+")*",CA=j0+W0+bA,wA="(?:"+[F0+Td+"?",Td,H0,K0,hA].join("|")+")",U0=RegExp(vd+"(?="+vd+")|"+wA+CA,"g");function kA(t){for(var n=U0.lastIndex=0;U0.test(t);)++n;return n}function tl(t){return Xr(t)?kA(t):cA(t)}var SA=Math.ceil;function ws(t,n){n=n===void 0?" ":yn(n);var o=n.length;if(o<2)return o?$d(n,t):n;var r=$d(n,SA(t/tl(n)));return Xr(n)?Fo(Ln(r),0,t).join(""):r.slice(0,t)}var EA=Math.ceil,NA=Math.floor;function _A(t,n,o){t=it(t),n=Ze(n);var r=n?tl(t):0;if(!n||r>=n)return t;var l=(n-r)/2;return ws(NA(l),o)+t+ws(EA(l),o)}function BA(t,n,o){t=it(t),n=Ze(n);var r=n?tl(t):0;return n&&r-1;)i!==t&&G0.call(i,c,1),G0.call(t,c,1);return t}function q0(t,n){return t&&t.length&&n&&n.length?Md(t,n):t}var LA=Je(q0);function xA(t,n,o){return t&&t.length&&n&&n.length?Md(t,n,Ue(o)):t}function FA(t,n,o){return t&&t.length&&n&&n.length?Md(t,n,void 0,o):t}var HA=Array.prototype,KA=HA.splice;function Y0(t,n){for(var o=t?n.length:0,r=o-1;o--;){var l=n[o];if(o==r||l!==a){var a=l;Co(l)?KA.call(t,l,1):_d(t,l)}}return t}var WA=No(function(t,n){var o=t==null?0:t.length,r=Ac(t,n);return Y0(t,bt(n,function(l){return Co(l,o)?+l:l}).sort(D0)),r}),jA=Math.floor,UA=Math.random;function Id(t,n){return t+jA(UA()*(n-t+1))}var GA=parseFloat,qA=Math.min,YA=Math.random;function XA(t,n,o){if(o&&typeof o!="boolean"&&en(t,n,o)&&(n=o=void 0),o===void 0&&(typeof n=="boolean"?(o=n,n=void 0):typeof t=="boolean"&&(o=t,t=void 0)),t===void 0&&n===void 0?(t=0,n=1):(t=yo(t),n===void 0?(n=t,t=0):n=yo(n)),t>n){var r=t;t=n,n=r}if(o||t%1||n%1){var l=YA();return qA(t+l*(n-t+GA("1e-"+((l+"").length-1))),n)}return Id(t,n)}var ZA=Math.ceil,JA=Math.max;function QA(t,n,o,r){for(var l=-1,a=JA(ZA((n-t)/(o||1)),0),s=Array(a);a--;)s[r?a:++l]=t,t+=o;return s}function X0(t){return function(n,o,r){return r&&typeof r!="number"&&en(n,o,r)&&(o=r=void 0),n=yo(n),o===void 0?(o=n,n=0):o=yo(o),r=r===void 0?n1&&en(t,n[0],n[1])?n=[]:o>2&&en(n[0],n[1],n[2])&&(n=[n[0]]),L0(t,xt(n,1),[])}),R3=4294967295,O3=R3-1,A3=Math.floor,z3=Math.min;function Rd(t,n,o,r){var l=0,a=t==null?0:t.length;if(a===0)return 0;n=o(n);for(var s=n!==n,i=n===null,c=gn(n),f=n===void 0;l>>1;function Es(t,n,o){var r=0,l=t==null?r:t.length;if(typeof n=="number"&&n===n&&l<=L3){for(;r>>1,s=t[a];s!==null&&!gn(s)&&(o?s<=n:s>>0,o?(t=it(t),t&&(typeof n=="string"||n!=null&&!Cd(n))&&(n=yn(n),!n&&Xr(t))?Fo(Ln(t),0,o):t.split(n,o)):[]}var X3="Expected a function",Z3=Math.max;function J3(t,n){if(typeof t!="function")throw new TypeError(X3);return n=n==null?0:Z3(Ze(n),0),Je(function(o){var r=o[n],l=Fo(o,0,n);return r&&xo(l,r),bn(t,this,l)})}var Q3=Jr(function(t,n,o){return t+(o?" ":"")+Hc(n)});function e4(t,n,o){return t=it(t),o=o==null?0:wr(Ze(o),0,t.length),n=yn(n),t.slice(o,o+n.length)==n}function t4(){return{}}function n4(){return""}function o4(){return!0}var r4=Ga(function(t,n){return t-n},0);function l4(t){return t&&t.length?Sd(t,Qt):0}function a4(t,n){return t&&t.length?Sd(t,Ue(n)):0}function s4(t){var n=t==null?0:t.length;return n?Tn(t,1,n):[]}function i4(t,n,o){return t&&t.length?(n=o||n===void 0?1:Ze(n),Tn(t,0,n<0?0:n)):[]}function c4(t,n,o){var r=t==null?0:t.length;return r?(n=o||n===void 0?1:Ze(n),n=r-n,Tn(t,n<0?0:n,r)):[]}function d4(t,n){return t&&t.length?ms(t,Ue(n),!1,!0):[]}function f4(t,n){return t&&t.length?ms(t,Ue(n)):[]}function u4(t,n){return n(t),t}var ty=Object.prototype,p4=ty.hasOwnProperty;function ny(t,n,o,r){return t===void 0||Dn(t,ty[o])&&!p4.call(r,o)?n:t}var m4={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};function h4(t){return"\\"+m4[t]}var oy=/<%=([\s\S]+?)%>/g,g4=/<%-([\s\S]+?)%>/g,y4=/<%([\s\S]+?)%>/g,Od={escape:g4,evaluate:y4,interpolate:oy,variable:"",imports:{_:{escape:d0}}},b4="Invalid `variable` option passed into `_.template`",C4=/\b__p \+= '';/g,w4=/\b(__p \+=) '' \+/g,k4=/(__e\(.*?\)|\b__t\)) \+\n'';/g,S4=/[()=,{}\[\]\/\s]/,E4=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ns=/($^)/,N4=/['\n\r\u2028\u2029\\]/g,_4=Object.prototype,ry=_4.hasOwnProperty;function B4(t,n,o){var r=Od.imports._.templateSettings||Od;o&&en(t,n,o)&&(n=void 0),t=it(t),n=os({},n,r,ny);var l=os({},n.imports,r.imports,ny),a=Mt(l),s=gd(l,a),i,c,f=0,u=n.interpolate||Ns,d="__p += '",p=RegExp((n.escape||Ns).source+"|"+u.source+"|"+(u===oy?E4:Ns).source+"|"+(n.evaluate||Ns).source+"|$","g"),h=ry.call(n,"sourceURL")?"//# sourceURL="+(n.sourceURL+"").replace(/\s/g," ")+` +`:"";t.replace(p,function(b,y,C,k,w,E){return C||(C=k),d+=t.slice(f,E).replace(N4,h4),y&&(i=!0,d+=`' + +__e(`+y+`) + +'`),w&&(c=!0,d+=`'; +`+w+`; +__p += '`),C&&(d+=`' + +((__t = (`+C+`)) == null ? '' : __t) + +'`),f=E+b.length,b}),d+=`'; +`;var g=ry.call(n,"variable")&&n.variable;if(!g)d=`with (obj) { +`+d+` +} +`;else if(S4.test(g))throw new Error(b4);d=(c?d.replace(C4,""):d).replace(w4,"$1").replace(k4,"$1;"),d="function("+(g||"obj")+`) { +`+(g?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(i?", __e = _.escape":"")+(c?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+d+`return __p +}`;var m=Ah(function(){return Function(a,h+"return "+d).apply(void 0,s)});if(m.source=d,Dc(m))throw m;return m}var $4="Expected a function";function jo(t,n,o){var r=!0,l=!0;if(typeof t!="function")throw new TypeError($4);return Ct(o)&&(r="leading"in o?!!o.leading:r,l="trailing"in o?!!o.trailing:l),Gt(t,n,{leading:r,maxWait:n,trailing:l})}function oa(t,n){return n(t)}var T4=9007199254740991,Ad=4294967295,v4=Math.min;function V4(t,n){if(t=Ze(t),t<1||t>T4)return[];var o=Ad,r=v4(t,Ad);n=oo(n),t-=Ad;for(var l=Mc(r,n);++o-1;);return o}function iy(t,n){for(var o=-1,r=t.length;++o-1;);return o}function z4(t,n,o){if(t=it(t),t&&(o||n===void 0))return Xm(t);if(!t||!(n=yn(n)))return t;var r=Ln(t),l=Ln(n),a=iy(r,l),s=sy(r,l)+1;return Fo(r,a,s).join("")}function D4(t,n,o){if(t=it(t),t&&(o||n===void 0))return t.slice(0,Ym(t)+1);if(!t||!(n=yn(n)))return t;var r=Ln(t),l=sy(r,Ln(n))+1;return Fo(r,0,l).join("")}var L4=/^\s+/;function x4(t,n,o){if(t=it(t),t&&(o||n===void 0))return t.replace(L4,"");if(!t||!(n=yn(n)))return t;var r=Ln(t),l=iy(r,Ln(n));return Fo(r,l).join("")}var F4=30,H4="...",K4=/\w*$/;function W4(t,n){var o=F4,r=H4;if(Ct(n)){var l="separator"in n?n.separator:l;o="length"in n?Ze(n.length):o,r="omission"in n?yn(n.omission):r}t=it(t);var a=t.length;if(Xr(t)){var s=Ln(t);a=s.length}if(o>=a)return t;var i=o-tl(r);if(i<1)return r;var c=s?Fo(s,0,i).join(""):t.slice(0,i);if(l===void 0)return c+r;if(s&&(i+=c.length-i),Cd(l)){if(t.slice(i).search(l)){var f,u=c;for(l.global||(l=RegExp(l.source,it(K4.exec(l))+"g")),l.lastIndex=0;f=l.exec(u);)var d=f.index;c=c.slice(0,d===void 0?i:d)}}else if(t.indexOf(yn(l),i)!=i){var p=c.lastIndexOf(l);p>-1&&(c=c.slice(0,p))}return c+r}function j4(t){return wh(t,1)}var U4={"&":"&","<":"<",">":">",""":'"',"'":"'"},G4=Wc(U4),cy=/&(?:amp|lt|gt|quot|#39);/g,q4=RegExp(cy.source);function Y4(t){return t=it(t),t&&q4.test(t)?t.replace(cy,G4):t}var X4=1/0,Z4=Qr&&1/cs(new Qr([,-0]))[1]==X4?function(t){return new Qr(t)}:Sc,J4=200;function Uo(t,n,o){var r=-1,l=es,a=t.length,s=!0,i=[],c=i;if(o)s=!1,l=ud;else if(a>=J4){var f=n?null:Z4(t);if(f)return cs(f);s=!1,l=Xl,c=new Sr}else c=n?[]:i;e:for(;++r1||this.__actions__.length||!(r instanceof et)||!Co(o)?this.thru(l):(r=r.slice(o,+o+(n?1:0)),r.__actions__.push({func:oa,args:[l],thisArg:void 0}),new _n(r,this.__chain__).thru(function(a){return n&&!a.length&&a.push(void 0),a}))});function hz(){return fg(this)}function gz(){var t=this.__wrapped__;if(t instanceof et){var n=t;return this.__actions__.length&&(n=new et(this)),n=n.reverse(),n.__actions__.push({func:oa,args:[Pd],thisArg:void 0}),new _n(n,this.__chain__)}return this.thru(Pd)}function Ld(t,n,o){var r=t.length;if(r<2)return r?Uo(t[0]):[];for(var l=-1,a=Array(r);++l1?t[n-1]:void 0;return o=typeof o=="function"?(t.pop(),o):void 0,dy(t,o)}),Ve={chunk:pV,compact:UM,concat:GM,difference:JI,differenceBy:QI,differenceWith:eP,drop:nP,dropRight:oP,dropRightWhile:rP,dropWhile:lP,fill:kP,findIndex:g0,findLastIndex:md,first:b0,flatten:zc,flattenDeep:k0,flattenDepth:RP,fromPairs:Ql,head:b0,indexOf:mR,initial:hR,intersection:yR,intersectionBy:bR,intersectionWith:CR,join:fO,last:wn,lastIndexOf:yO,nth:KO,pull:LA,pullAll:q0,pullAllBy:xA,pullAllWith:FA,pullAt:WA,remove:i3,reverse:Pd,slice:v3,sortedIndex:x3,sortedIndexBy:F3,sortedIndexOf:H3,sortedLastIndex:K3,sortedLastIndexBy:W3,sortedLastIndexOf:j3,sortedUniq:U3,sortedUniqBy:G3,tail:s4,take:i4,takeRight:c4,takeRightWhile:d4,takeWhile:f4,union:_s,unionBy:Q4,unionWith:ez,uniq:tz,uniqBy:nz,uniqWith:oz,unzip:Dd,unzipWith:dy,without:uz,xor:yz,xorBy:bz,xorWith:Cz,zip:wz,zipObject:kz,zipObjectDeep:Sz,zipWith:Ez},ft={countBy:AI,each:n0,eachRight:l0,every:bP,filter:SP,find:NP,findLast:TP,flatMap:w0,flatMapDeep:MP,flatMapDepth:IP,forEach:n0,forEachRight:l0,groupBy:QP,includes:uR,invokeMap:TR,keyBy:pO,map:hs,orderBy:eA,partition:PA,reduce:r3,reduceRight:a3,reject:s3,sample:b3,sampleSize:k3,shuffle:_3,size:T3,some:I3,sortBy:P3},Nz={now:us},Nt={after:X_,ary:wh,before:zh,bind:ss,bindKey:Lc,curry:id,curryRight:cd,debounce:Gt,defer:YI,delay:XI,flip:AP,memoize:Gl,negate:ta,once:ZO,overArgs:rA,partial:ks,partialRight:Vd,rearg:o3,rest:u3,spread:J3,throttle:jo,unary:j4,wrap:pz},Fe={castArray:Ho,clone:Qc,cloneDeep:Yl,cloneDeepWith:HM,cloneWith:WM,conformsTo:MI,eq:Dn,gt:eR,gte:tR,isArguments:yr,isArray:Ye,isArrayBuffer:MR,isArrayLike:dn,isArrayLikeObject:Bt,isBoolean:PR,isBuffer:Do,isDate:AR,isElement:zR,isEmpty:HR,isEqual:tn,isEqualWith:KR,isError:Dc,isFinite:jR,isFunction:bo,isInteger:T0,isLength:ns,isMap:Mg,isMatch:UR,isMatchWith:GR,isNaN:YR,isNative:JR,isNil:wt,isNull:QR,isNumber:v0,isObject:Ct,isObjectLike:Et,isPlainObject:ql,isRegExp:Cd,isSafeInteger:nO,isSet:Pg,isString:bs,isSymbol:gn,isTypedArray:Yr,isUndefined:wd,isWeakMap:rO,isWeakSet:aO,lt:wO,lte:kO,toArray:R0,toFinite:yo,toInteger:Ze,toLength:p0,toNumber:Nn,toPlainObject:Jg,toSafeInteger:R4,toString:it},nn={add:F_,ceil:dV,divide:tP,floor:zP,max:TO,maxBy:vO,mean:MO,meanBy:IO,min:OO,minBy:AO,multiply:zO,round:g3,subtract:r4,sum:l4,sumBy:a4},xd={clamp:mV,inRange:cR,random:XA},je={assign:tT,assignIn:Ih,assignInWith:os,assignWith:aT,at:xT,create:zI,defaults:jI,defaultsDeep:GI,entries:s0,entriesIn:i0,extend:Ih,extendWith:os,findKey:_P,findLastKey:vP,forIn:jP,forInRight:UP,forOwn:GP,forOwnRight:qP,functions:YP,functionsIn:XP,get:ct,has:lR,hasIn:ld,invert:ER,invertBy:BR,invoke:$R,keys:Mt,keysIn:fn,mapKeys:SO,mapValues:EO,merge:Ed,mergeWith:e0,omit:YO,omitBy:XO,pick:ro,pickBy:z0,result:p3,set:Q0,setWith:S3,toPairs:s0,toPairsIn:i0,transform:A4,unset:az,update:iz,updateWith:cz,values:el,valuesIn:fz},lo={at:mz,chain:fg,commit:jM,lodash:L,next:HO,plant:OA,reverse:gz,tap:u4,thru:oa,toIterator:M4,toJSON:zd,value:zd,valueOf:zd,wrapperChain:hz},lt={camelCase:sV,capitalize:jh,deburr:Uh,endsWith:sP,escape:d0,escapeRegExp:gP,kebabCase:uO,lowerCase:bO,lowerFirst:CO,pad:_A,padEnd:BA,padStart:$A,parseInt:VA,repeat:c3,replace:d3,snakeCase:V3,split:Y3,startCase:Q3,startsWith:e4,template:B4,templateSettings:Od,toLower:I4,toUpper:O4,trim:z4,trimEnd:D4,trimStart:x4,truncate:W4,unescape:Y4,upperCase:dz,upperFirst:Hc,words:dg},dt={attempt:Ah,bindAll:ZT,cond:$I,conforms:VI,constant:_c,defaultTo:KI,flow:KP,flowRight:WP,identity:Qt,iteratee:iO,matches:_O,matchesProperty:$O,method:PO,methodOf:RO,mixin:P0,noop:Sc,nthArg:WO,over:tA,overEvery:lA,overSome:aA,property:Gg,propertyOf:AA,range:e3,rangeRight:t3,stubArray:Uc,stubFalse:Ic,stubObject:t4,stubString:n4,stubTrue:o4,times:V4,toPath:P4,uniqueId:lz};function _z(){var t=new et(this.__wrapped__);return t.__actions__=cn(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=cn(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=cn(this.__views__),t}function Bz(){if(this.__filtered__){var t=new et(this);t.__dir__=-1,t.__filtered__=!0}else t=this.clone(),t.__dir__*=-1;return t}var $z=Math.max,Tz=Math.min;function vz(t,n,o){for(var r=-1,l=o.length;++r0||n<0)?new et(o):(t<0?o=o.takeRight(-t):t&&(o=o.drop(t)),n!==void 0&&(n=Ze(n),o=n<0?o.dropRight(-n):o.take(n-t)),o)},et.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},et.prototype.toArray=function(){return this.take(py)},no(et.prototype,function(t,n){var o=/^(?:filter|find|map|reject)|While$/.test(n),r=/^(?:head|last)$/.test(n),l=L[r?"take"+(n=="last"?"Right":""):n],a=r||/^find/.test(n);!l||(L.prototype[n]=function(){var s=this.__wrapped__,i=r?[1]:arguments,c=s instanceof et,f=i[0],u=c||Ye(s),d=function(y){var C=l.apply(L,xo([y],i));return r&&p?C[0]:C};u&&o&&typeof f=="function"&&f.length!=1&&(c=u=!1);var p=this.__chain__,h=!!this.__actions__.length,g=a&&!p,m=c&&!h;if(!a&&u){s=m?s:new et(this);var b=t.apply(s,i);return b.__actions__.push({func:oa,args:[d],thisArg:void 0}),new _n(b,p)}return g&&m?t.apply(this,i):(b=this.thru(d),g?r?b.value()[0]:b.value():b)})}),Bn(["pop","push","shift","sort","splice","unshift"],function(t){var n=Dz[t],o=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);L.prototype[t]=function(){var l=arguments;if(r&&!this.__chain__){var a=this.value();return n.apply(Ye(a)?a:[],l)}return this[o](function(s){return n.apply(Ye(s)?s:[],l)})}}),no(et.prototype,function(t,n){var o=L[n];if(o){var r=o.name+"";my.call(jr,r)||(jr[r]=[]),jr[r].push({name:n,func:o})}}),jr[ts(void 0,Oz).name]=[{name:"wrapper",func:void 0}],et.prototype.clone=_z,et.prototype.reverse=Bz,et.prototype.value=Pz,L.prototype.at=lo.at,L.prototype.chain=lo.wrapperChain,L.prototype.commit=lo.commit,L.prototype.next=lo.next,L.prototype.plant=lo.plant,L.prototype.reverse=lo.reverse,L.prototype.toJSON=L.prototype.valueOf=L.prototype.value=lo.value,L.prototype.first=L.prototype.head,hy&&(L.prototype[hy]=lo.toIterator);/** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */const $t=t=>t===void 0,Tt=t=>typeof t=="boolean",be=t=>typeof t=="number",Vn=t=>!t&&t!==0||Re(t)&&t.length===0||nt(t)&&!Object.keys(t).length,Mn=t=>typeof Element=="undefined"?!1:t instanceof Element,Fz=t=>wt(t),Hz=t=>De(t)?!Number.isNaN(Number(t)):!1,yy=(t="")=>t.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d"),ao=t=>T_(t),ra=t=>Object.keys(t),Kz=t=>Object.entries(t),Bs=(t,n,o)=>({get value(){return ct(t,n,o)},set value(r){Q0(t,n,r)}});class Wz extends Error{constructor(n){super(n),this.name="ElementPlusError"}}function vt(t,n){throw new Wz(`[${t}] ${n}`)}function pee(t,n){}const by=(t="")=>t.split(" ").filter(n=>!!n.trim()),Fn=(t,n)=>{if(!t||!n)return!1;if(n.includes(" "))throw new Error("className should not contain space.");return t.classList.contains(n)},so=(t,n)=>{!t||!n.trim()||t.classList.add(...by(n))},un=(t,n)=>{!t||!n.trim()||t.classList.remove(...by(n))},Go=(t,n)=>{var o;if(!He||!t||!n)return"";let r=Hm(n);r==="float"&&(r="cssFloat");try{const l=t.style[r];if(l)return l;const a=(o=document.defaultView)==null?void 0:o.getComputedStyle(t,"");return a?a[r]:""}catch(l){return t.style[r]}};function kt(t,n="px"){if(!t)return"";if(be(t)||Hz(t))return`${t}${n}`;if(De(t))return t}const jz=(t,n)=>{if(!He)return!1;const o={undefined:"overflow",true:"overflow-y",false:"overflow-x"}[String(n)],r=Go(t,o);return["scroll","auto","overlay"].some(l=>r.includes(l))},Hd=(t,n)=>{if(!He)return;let o=t;for(;o;){if([window,document,document.documentElement].includes(o))return window;if(jz(o,n))return o;o=o.parentNode}return o};let $s;const Cy=t=>{var n;if(!He)return 0;if($s!==void 0)return $s;const o=document.createElement("div");o.className=`${t}-scrollbar__wrap`,o.style.visibility="hidden",o.style.width="100px",o.style.position="absolute",o.style.top="-9999px",document.body.appendChild(o);const r=o.offsetWidth;o.style.overflow="scroll";const l=document.createElement("div");l.style.width="100%",o.appendChild(l);const a=l.offsetWidth;return(n=o.parentNode)==null||n.removeChild(o),$s=r-a,$s};function wy(t,n){if(!He)return;if(!n){t.scrollTop=0;return}const o=[];let r=n.offsetParent;for(;r!==null&&t!==r&&t.contains(r);)o.push(r),r=r.offsetParent;const l=n.offsetTop+o.reduce((c,f)=>c+f.offsetTop,0),a=l+n.offsetHeight,s=t.scrollTop,i=s+t.clientHeight;li&&(t.scrollTop=a-t.clientHeight)}let Uz=He?document.body:void 0;function Gz(t){const n=document.createElement("div");return t!==void 0&&n.setAttribute("id",t),Uz.appendChild(n),n}function qz(t){t.remove()}var Yz=e.defineComponent({name:"ArrowDown",__name:"arrow-down",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 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.592 30.592 0 0 0-42.752 0z"})]))}}),qo=Yz,Xz=e.defineComponent({name:"ArrowLeft",__name:"arrow-left",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"})]))}}),Yo=Xz,Zz=e.defineComponent({name:"ArrowRight",__name:"arrow-right",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 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"})]))}}),on=Zz,Jz=e.defineComponent({name:"ArrowUp",__name:"arrow-up",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),Ts=Jz,Qz=e.defineComponent({name:"Back",__name:"back",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64"}),e.createElementVNode("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"})]))}}),eD=Qz,tD=e.defineComponent({name:"Calendar",__name:"calendar",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),nD=tD,oD=e.defineComponent({name:"CaretRight",__name:"caret-right",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M384 192v640l384-320.064z"})]))}}),ky=oD,rD=e.defineComponent({name:"CaretTop",__name:"caret-top",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M512 320 192 704h639.936z"})]))}}),lD=rD,aD=e.defineComponent({name:"Check",__name:"check",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),la=aD,sD=e.defineComponent({name:"CircleCheckFilled",__name:"circle-check-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),iD=sD,cD=e.defineComponent({name:"CircleCheck",__name:"circle-check",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"}),e.createElementVNode("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.752l265.344-265.408z"})]))}}),Kd=cD,dD=e.defineComponent({name:"CircleCloseFilled",__name:"circle-close-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),Wd=dD,fD=e.defineComponent({name:"CircleClose",__name:"circle-close",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"}),e.createElementVNode("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"})]))}}),Xo=fD,uD=e.defineComponent({name:"Clock",__name:"clock",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"}),e.createElementVNode("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"}),e.createElementVNode("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32"})]))}}),Sy=uD,pD=e.defineComponent({name:"Close",__name:"close",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),Hn=pD,mD=e.defineComponent({name:"DArrowLeft",__name:"d-arrow-left",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.592 30.592 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.672l331.648-340.224zm256 0a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.592 30.592 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.672l331.648-340.224z"})]))}}),nl=mD,hD=e.defineComponent({name:"DArrowRight",__name:"d-arrow-right",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.592 30.592 0 0 1 0-42.752L764.736 512 452.864 192a30.592 30.592 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.592 30.592 0 0 1 0-42.752L508.736 512 196.864 192a30.592 30.592 0 0 1 0-42.688z"})]))}}),ol=hD,gD=e.defineComponent({name:"Delete",__name:"delete",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),yD=gD,bD=e.defineComponent({name:"Document",__name:"document",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),CD=bD,wD=e.defineComponent({name:"FullScreen",__name:"full-screen",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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-64l192-.192zm0 831.872-192-.192a32 32 0 0 1 0-64l192 .192V672a32 32 0 1 1 64 0v256h-64z"})]))}}),kD=wD,SD=e.defineComponent({name:"Hide",__name:"hide",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-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 176C44.8 438.4 0 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.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 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.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.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.6-28.8 48-80 105.6-153.6 172.8-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-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z"}),e.createElementVNode("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 112-32 28.8-67.2 48-112 48Z"})]))}}),ED=SD,ND=e.defineComponent({name:"InfoFilled",__name:"info-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.992 12.992 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"})]))}}),jd=ND,_D=e.defineComponent({name:"Loading",__name:"loading",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.248zm452.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.248zM828.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 0z"})]))}}),Zo=_D,BD=e.defineComponent({name:"Minus",__name:"minus",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64"})]))}}),$D=BD,TD=e.defineComponent({name:"MoreFilled",__name:"more-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),Ey=TD,vD=e.defineComponent({name:"More",__name:"more",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),VD=vD,MD=e.defineComponent({name:"PictureFilled",__name:"picture-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),ID=MD,PD=e.defineComponent({name:"Plus",__name:"plus",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),Ny=PD,RD=e.defineComponent({name:"QuestionFilled",__name:"question-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.592 0-42.944-14.08-76.736-42.24-101.376-28.16-25.344-65.472-37.312-111.232-37.312zm-12.672 406.208a54.272 54.272 0 0 0-38.72 14.784 49.408 49.408 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.848 54.848 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.968 51.968 0 0 0-15.488-38.016 55.936 55.936 0 0 0-39.424-14.784z"})]))}}),OD=RD,AD=e.defineComponent({name:"RefreshLeft",__name:"refresh-left",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),zD=AD,DD=e.defineComponent({name:"RefreshRight",__name:"refresh-right",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.88z"})]))}}),LD=DD,xD=e.defineComponent({name:"ScaleToOriginal",__name:"scale-to-original",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 0 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118zm-361.412 0a30.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 1 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118M512 361.412a30.118 30.118 0 0 0-30.118 30.117v30.118a30.118 30.118 0 0 0 60.236 0V391.53A30.118 30.118 0 0 0 512 361.412M512 512a30.118 30.118 0 0 0-30.118 30.118v30.117a30.118 30.118 0 0 0 60.236 0v-30.117A30.118 30.118 0 0 0 512 512"})]))}}),FD=xD,HD=e.defineComponent({name:"Search",__name:"search",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),KD=HD,WD=e.defineComponent({name:"SortDown",__name:"sort-down",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),jD=WD,UD=e.defineComponent({name:"SortUp",__name:"sort-up",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),GD=UD,qD=e.defineComponent({name:"StarFilled",__name:"star-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M283.84 867.84 512 747.776l228.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.72z"})]))}}),vs=qD,YD=e.defineComponent({name:"Star",__name:"star",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),XD=YD,ZD=e.defineComponent({name:"SuccessFilled",__name:"success-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),_y=ZD,JD=e.defineComponent({name:"View",__name:"view",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}}),QD=JD,eL=e.defineComponent({name:"WarningFilled",__name:"warning-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 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"})]))}}),Vs=eL,tL=e.defineComponent({name:"ZoomIn",__name:"zoom-in",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),By=tL,nL=e.defineComponent({name:"ZoomOut",__name:"zoom-out",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),oL=nL;/*! Element Plus Icons Vue v2.3.1 */const $y="__epPropKey",W=t=>t,rL=t=>nt(t)&&!!t[$y],Kn=(t,n)=>{if(!nt(t)||rL(t))return t;const{values:o,required:r,default:l,type:a,validator:s}=t,c={type:a,required:!!r,validator:o||s?f=>{let u=!1,d=[];if(o&&(d=Array.from(o),Lt(t,"default")&&d.push(l),u||(u=d.includes(f))),s&&(u||(u=s(f))),!u&&d.length>0){const p=[...new Set(d)].map(h=>JSON.stringify(h)).join(", ");e.warn(`Invalid prop: validation failed${n?` for prop "${n}"`:""}. Expected one of [${p}], got value ${JSON.stringify(f)}.`)}return u}:void 0,[$y]:!0};return Lt(t,"default")&&(c.default=l),c},le=t=>Ql(Object.entries(t).map(([n,o])=>[n,Kn(o,n)])),ot=W([String,Object,Function]),Ty={Close:Hn},Ud={Close:Hn,SuccessFilled:_y,InfoFilled:jd,WarningFilled:Vs,CircleCloseFilled:Wd},Jo={success:_y,warning:Vs,error:Wd,info:jd},Gd={validating:Zo,success:Kd,error:Xo},Me=(t,n)=>{if(t.install=o=>{for(const r of[t,...Object.values(n!=null?n:{})])o.component(r.name,r)},n)for(const[o,r]of Object.entries(n))t[o]=r;return t},vy=(t,n)=>(t.install=o=>{t._context=o._context,o.config.globalProperties[n]=t},t),lL=(t,n)=>(t.install=o=>{o.directive(n,t)},t),ht=t=>(t.install=st,t),Ms=(...t)=>n=>{t.forEach(o=>{qe(o)?o(n):o.value=n})},pe={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"},Vy=["year","month","date","dates","week","datetime","datetimerange","daterange","monthrange"],Is=["sun","mon","tue","wed","thu","fri","sat"],Ie="update:modelValue",at="change",qt="input",qd=Symbol("INSTALLED_KEY"),Wn=["","default","small","large"],My={large:40,default:32,small:24},aL=t=>My[t||"default"],Yd=t=>["",...Wn].includes(t);var In=(t=>(t[t.TEXT=1]="TEXT",t[t.CLASS=2]="CLASS",t[t.STYLE=4]="STYLE",t[t.PROPS=8]="PROPS",t[t.FULL_PROPS=16]="FULL_PROPS",t[t.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",t[t.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",t[t.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",t[t.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",t[t.NEED_PATCH=512]="NEED_PATCH",t[t.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",t[t.HOISTED=-1]="HOISTED",t[t.BAIL=-2]="BAIL",t))(In||{});function Xd(t){return e.isVNode(t)&&t.type===e.Fragment}function sL(t){return e.isVNode(t)&&t.type===e.Comment}function iL(t){return e.isVNode(t)&&!Xd(t)&&!sL(t)}const cL=t=>{if(!e.isVNode(t))return{};const n=t.props||{},o=(e.isVNode(t.type)?t.type.props:void 0)||{},r={};return Object.keys(o).forEach(l=>{Lt(o[l],"default")&&(r[l]=o[l].default)}),Object.keys(n).forEach(l=>{r[Hm(l)]=n[l]}),r},dL=t=>{if(!Re(t)||t.length>1)throw new Error("expect to receive a single Vue element child");return t[0]},Er=t=>{const n=Re(t)?t:[t],o=[];return n.forEach(r=>{var l;Re(r)?o.push(...Er(r)):e.isVNode(r)&&Re(r.children)?o.push(...Er(r.children)):(o.push(r),e.isVNode(r)&&((l=r.component)==null?void 0:l.subTree)&&o.push(...Er(r.component.subTree)))}),o},Iy=t=>[...new Set(t)],_o=t=>!t&&t!==0?[]:Array.isArray(t)?t:[t],Ps=t=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(t),rl=t=>He?window.requestAnimationFrame(t):setTimeout(t,16),Rs=t=>He?window.cancelAnimationFrame(t):clearTimeout(t),Os=()=>Math.floor(Math.random()*1e4),ut=t=>t,fL=["class","style"],uL=/^on[A-Z]/,As=(t={})=>{const{excludeListeners:n=!1,excludeKeys:o}=t,r=e.computed(()=>((o==null?void 0:o.value)||[]).concat(fL)),l=e.getCurrentInstance();return l?e.computed(()=>{var a;return Ql(Object.entries((a=l.proxy)==null?void 0:a.$attrs).filter(([s])=>!r.value.includes(s)&&!(n&&uL.test(s))))}):e.computed(()=>({}))},jn=({from:t,replacement:n,scope:o,version:r,ref:l,type:a="API"},s)=>{e.watch(()=>e.unref(s),i=>{},{immediate:!0})},Zd=(t,n,o)=>{let r={offsetX:0,offsetY:0};const l=i=>{const c=i.clientX,f=i.clientY,{offsetX:u,offsetY:d}=r,p=t.value.getBoundingClientRect(),h=p.left,g=p.top,m=p.width,b=p.height,y=document.documentElement.clientWidth,C=document.documentElement.clientHeight,k=-h+u,w=-g+d,E=y-h-m+u,S=C-g-b+d,_=M=>{const P=Math.min(Math.max(u+M.clientX-c,k),E),T=Math.min(Math.max(d+M.clientY-f,w),S);r={offsetX:P,offsetY:T},t.value&&(t.value.style.transform=`translate(${kt(P)}, ${kt(T)})`)},B=()=>{document.removeEventListener("mousemove",_),document.removeEventListener("mouseup",B)};document.addEventListener("mousemove",_),document.addEventListener("mouseup",B)},a=()=>{n.value&&t.value&&n.value.addEventListener("mousedown",l)},s=()=>{n.value&&t.value&&n.value.removeEventListener("mousedown",l)};e.onMounted(()=>{e.watchEffect(()=>{o.value?a():s()})}),e.onBeforeUnmount(()=>{s()})},pL=t=>({focus:()=>{var n,o;(o=(n=t.value)==null?void 0:n.focus)==null||o.call(n)}});var mL={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new 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",week:"week",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"},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"},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"}}};const Py=t=>(n,o)=>Ry(n,o,e.unref(t)),Ry=(t,n,o)=>ct(o,t,t).replace(/\{(\w+)\}/g,(r,l)=>{var a;return`${(a=n==null?void 0:n[l])!=null?a:`{${l}}`}`}),Oy=t=>{const n=e.computed(()=>e.unref(t).name),o=e.isRef(t)?t:e.ref(t);return{lang:n,locale:o,t:Py(t)}},Jd=Symbol("localeContextKey"),Ke=t=>{const n=t||e.inject(Jd,e.ref());return Oy(e.computed(()=>n.value||mL))};let hL;function gL(t,n=hL){n&&n.active&&n.effects.push(t)}const yL=t=>{const n=new Set(t);return n.w=0,n.n=0,n},Ay=t=>(t.w&Qo)>0,zy=t=>(t.n&Qo)>0,bL=({deps:t})=>{if(t.length)for(let n=0;n{const{deps:n}=t;if(n.length){let o=0;for(let r=0;r{this._dirty||(this._dirty=!0,NL(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!l,this.__v_isReadonly=r}get value(){const n=Ds(this);return EL(n),(n._dirty||!n._cacheable)&&(n._dirty=!1,n._value=n.effect.run()),n._value}set value(n){this._setter(n)}}function BL(t,n,o=!1){let r,l;const a=qe(t);return a?(r=t,l=st):(r=t.get,l=t.set),new _L(r,l,a||!l,o)}const ll="el",$L="is-",Nr=(t,n,o,r,l)=>{let a=`${t}-${n}`;return o&&(a+=`-${o}`),r&&(a+=`__${r}`),l&&(a+=`--${l}`),a},ef=Symbol("namespaceContextKey"),Ls=t=>{const n=t||(e.getCurrentInstance()?e.inject(ef,e.ref(ll)):e.ref(ll));return e.computed(()=>e.unref(n)||ll)},Q=(t,n)=>{const o=Ls(n);return{namespace:o,b:(m="")=>Nr(o.value,t,m,"",""),e:m=>m?Nr(o.value,t,"",m,""):"",m:m=>m?Nr(o.value,t,"","",m):"",be:(m,b)=>m&&b?Nr(o.value,t,m,b,""):"",em:(m,b)=>m&&b?Nr(o.value,t,"",m,b):"",bm:(m,b)=>m&&b?Nr(o.value,t,m,"",b):"",bem:(m,b,y)=>m&&b&&y?Nr(o.value,t,m,b,y):"",is:(m,...b)=>{const y=b.length>=1?b[0]:!0;return m&&y?`${$L}${m}`:""},cssVar:m=>{const b={};for(const y in m)m[y]&&(b[`--${o.value}-${y}`]=m[y]);return b},cssVarName:m=>`--${o.value}-${m}`,cssVarBlock:m=>{const b={};for(const y in m)m[y]&&(b[`--${o.value}-${t}-${y}`]=m[y]);return b},cssVarBlockName:m=>`--${o.value}-${t}-${m}`}},tf=(t,n={})=>{e.isRef(t)||vt("[useLockscreen]","You need to pass a ref param to this function");const o=n.ns||Q("popup"),r=BL(()=>o.bm("parent","hidden"));if(!He||Fn(document.body,r.value))return;let l=0,a=!1,s="0";const i=()=>{setTimeout(()=>{un(document==null?void 0:document.body,r.value),a&&document&&(document.body.style.width=s)},200)};e.watch(t,c=>{if(!c){i();return}a=!Fn(document.body,r.value),a&&(s=document.body.style.width),l=Cy(o.namespace.value);const f=document.documentElement.clientHeight0&&(f||u==="scroll")&&a&&(document.body.style.width=`calc(100% - ${l}px)`),so(document.body,r.value)}),e.onScopeDispose(()=>i())},al=[],TL=t=>{al.length!==0&&t.code===pe.esc&&(t.stopPropagation(),al[al.length-1].handleClose())},vL=(t,n)=>{e.watch(n,o=>{o?al.push(t):al.splice(al.indexOf(t),1)})};He&&rt(document,"keydown",TL);const VL=Kn({type:W(Boolean),default:null}),ML=Kn({type:W(Function)}),nf=t=>{const n=`update:${t}`,o=`onUpdate:${t}`,r=[n],l={[t]:VL,[o]:ML};return{useModelToggle:({indicator:s,toggleReason:i,shouldHideWhenRouteChanges:c,shouldProceed:f,onShow:u,onHide:d})=>{const p=e.getCurrentInstance(),{emit:h}=p,g=p.props,m=e.computed(()=>qe(g[o])),b=e.computed(()=>g[t]===null),y=_=>{s.value!==!0&&(s.value=!0,i&&(i.value=_),qe(u)&&u(_))},C=_=>{s.value!==!1&&(s.value=!1,i&&(i.value=_),qe(d)&&d(_))},k=_=>{if(g.disabled===!0||qe(f)&&!f())return;const B=m.value&&He;B&&h(n,!0),(b.value||!B)&&y(_)},w=_=>{if(g.disabled===!0||!He)return;const B=m.value&&He;B&&h(n,!1),(b.value||!B)&&C(_)},E=_=>{!Tt(_)||(g.disabled&&_?m.value&&h(n,!1):s.value!==_&&(_?y():C()))},S=()=>{s.value?w():k()};return e.watch(()=>g[t],E),c&&p.appContext.config.globalProperties.$route!==void 0&&e.watch(()=>({...p.proxy.$route}),()=>{c.value&&s.value&&w()}),e.onMounted(()=>{E(g[t])}),{hide:w,show:k,toggle:S,hasUpdateHandler:m}},useModelToggleProps:l,useModelToggleEmits:r}},{useModelToggle:IL,useModelToggleProps:PL,useModelToggleEmits:RL}=nf("modelValue"),OL=(t,n,o)=>{const r=a=>{o(a)&&a.stopImmediatePropagation()};let l;e.watch(()=>t.value,a=>{a?l=rt(document,n,r,!0):l==null||l()},{immediate:!0})},of=t=>{const n=e.getCurrentInstance();return e.computed(()=>{var o,r;return(r=(o=n==null?void 0:n.proxy)==null?void 0:o.$props)==null?void 0:r[t]})};var pn="top",Pn="bottom",Rn="right",mn="left",rf="auto",sa=[pn,Pn,Rn,mn],sl="start",ia="end",AL="clippingParents",xy="viewport",ca="popper",zL="reference",Fy=sa.reduce(function(t,n){return t.concat([n+"-"+sl,n+"-"+ia])},[]),_r=[].concat(sa,[rf]).reduce(function(t,n){return t.concat([n,n+"-"+sl,n+"-"+ia])},[]),DL="beforeRead",LL="read",xL="afterRead",FL="beforeMain",HL="main",KL="afterMain",WL="beforeWrite",jL="write",UL="afterWrite",GL=[DL,LL,xL,FL,HL,KL,WL,jL,UL];function co(t){return t?(t.nodeName||"").toLowerCase():null}function Un(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var n=t.ownerDocument;return n&&n.defaultView||window}return t}function il(t){var n=Un(t).Element;return t instanceof n||t instanceof Element}function On(t){var n=Un(t).HTMLElement;return t instanceof n||t instanceof HTMLElement}function lf(t){if(typeof ShadowRoot=="undefined")return!1;var n=Un(t).ShadowRoot;return t instanceof n||t instanceof ShadowRoot}function qL(t){var n=t.state;Object.keys(n.elements).forEach(function(o){var r=n.styles[o]||{},l=n.attributes[o]||{},a=n.elements[o];!On(a)||!co(a)||(Object.assign(a.style,r),Object.keys(l).forEach(function(s){var i=l[s];i===!1?a.removeAttribute(s):a.setAttribute(s,i===!0?"":i)}))})}function YL(t){var n=t.state,o={popper:{position:n.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(n.elements.popper.style,o.popper),n.styles=o,n.elements.arrow&&Object.assign(n.elements.arrow.style,o.arrow),function(){Object.keys(n.elements).forEach(function(r){var l=n.elements[r],a=n.attributes[r]||{},s=Object.keys(n.styles.hasOwnProperty(r)?n.styles[r]:o[r]),i=s.reduce(function(c,f){return c[f]="",c},{});!On(l)||!co(l)||(Object.assign(l.style,i),Object.keys(a).forEach(function(c){l.removeAttribute(c)}))})}}var Hy={name:"applyStyles",enabled:!0,phase:"write",fn:qL,effect:YL,requires:["computeStyles"]};function fo(t){return t.split("-")[0]}var Br=Math.max,xs=Math.min,cl=Math.round;function dl(t,n){n===void 0&&(n=!1);var o=t.getBoundingClientRect(),r=1,l=1;if(On(t)&&n){var a=t.offsetHeight,s=t.offsetWidth;s>0&&(r=cl(o.width)/s||1),a>0&&(l=cl(o.height)/a||1)}return{width:o.width/r,height:o.height/l,top:o.top/l,right:o.right/r,bottom:o.bottom/l,left:o.left/r,x:o.left/r,y:o.top/l}}function af(t){var n=dl(t),o=t.offsetWidth,r=t.offsetHeight;return Math.abs(n.width-o)<=1&&(o=n.width),Math.abs(n.height-r)<=1&&(r=n.height),{x:t.offsetLeft,y:t.offsetTop,width:o,height:r}}function Ky(t,n){var o=n.getRootNode&&n.getRootNode();if(t.contains(n))return!0;if(o&&lf(o)){var r=n;do{if(r&&t.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Bo(t){return Un(t).getComputedStyle(t)}function XL(t){return["table","td","th"].indexOf(co(t))>=0}function er(t){return((il(t)?t.ownerDocument:t.document)||window.document).documentElement}function Fs(t){return co(t)==="html"?t:t.assignedSlot||t.parentNode||(lf(t)?t.host:null)||er(t)}function Wy(t){return!On(t)||Bo(t).position==="fixed"?null:t.offsetParent}function ZL(t){var n=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,o=navigator.userAgent.indexOf("Trident")!==-1;if(o&&On(t)){var r=Bo(t);if(r.position==="fixed")return null}var l=Fs(t);for(lf(l)&&(l=l.host);On(l)&&["html","body"].indexOf(co(l))<0;){var a=Bo(l);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||n&&a.willChange==="filter"||n&&a.filter&&a.filter!=="none")return l;l=l.parentNode}return null}function da(t){for(var n=Un(t),o=Wy(t);o&&XL(o)&&Bo(o).position==="static";)o=Wy(o);return o&&(co(o)==="html"||co(o)==="body"&&Bo(o).position==="static")?n:o||ZL(t)||n}function sf(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function fa(t,n,o){return Br(t,xs(n,o))}function JL(t,n,o){var r=fa(t,n,o);return r>o?o:r}function jy(){return{top:0,right:0,bottom:0,left:0}}function Uy(t){return Object.assign({},jy(),t)}function Gy(t,n){return n.reduce(function(o,r){return o[r]=t,o},{})}var QL=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,Uy(typeof t!="number"?t:Gy(t,sa))};function ex(t){var n,o=t.state,r=t.name,l=t.options,a=o.elements.arrow,s=o.modifiersData.popperOffsets,i=fo(o.placement),c=sf(i),f=[mn,Rn].indexOf(i)>=0,u=f?"height":"width";if(!(!a||!s)){var d=QL(l.padding,o),p=af(a),h=c==="y"?pn:mn,g=c==="y"?Pn:Rn,m=o.rects.reference[u]+o.rects.reference[c]-s[c]-o.rects.popper[u],b=s[c]-o.rects.reference[c],y=da(a),C=y?c==="y"?y.clientHeight||0:y.clientWidth||0:0,k=m/2-b/2,w=d[h],E=C-p[u]-d[g],S=C/2-p[u]/2+k,_=fa(w,S,E),B=c;o.modifiersData[r]=(n={},n[B]=_,n.centerOffset=_-S,n)}}function tx(t){var n=t.state,o=t.options,r=o.element,l=r===void 0?"[data-popper-arrow]":r;l!=null&&(typeof l=="string"&&(l=n.elements.popper.querySelector(l),!l)||!Ky(n.elements.popper,l)||(n.elements.arrow=l))}var nx={name:"arrow",enabled:!0,phase:"main",fn:ex,effect:tx,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function fl(t){return t.split("-")[1]}var ox={top:"auto",right:"auto",bottom:"auto",left:"auto"};function rx(t){var n=t.x,o=t.y,r=window,l=r.devicePixelRatio||1;return{x:cl(n*l)/l||0,y:cl(o*l)/l||0}}function qy(t){var n,o=t.popper,r=t.popperRect,l=t.placement,a=t.variation,s=t.offsets,i=t.position,c=t.gpuAcceleration,f=t.adaptive,u=t.roundOffsets,d=t.isFixed,p=s.x,h=p===void 0?0:p,g=s.y,m=g===void 0?0:g,b=typeof u=="function"?u({x:h,y:m}):{x:h,y:m};h=b.x,m=b.y;var y=s.hasOwnProperty("x"),C=s.hasOwnProperty("y"),k=mn,w=pn,E=window;if(f){var S=da(o),_="clientHeight",B="clientWidth";if(S===Un(o)&&(S=er(o),Bo(S).position!=="static"&&i==="absolute"&&(_="scrollHeight",B="scrollWidth")),S=S,l===pn||(l===mn||l===Rn)&&a===ia){w=Pn;var M=d&&S===E&&E.visualViewport?E.visualViewport.height:S[_];m-=M-r.height,m*=c?1:-1}if(l===mn||(l===pn||l===Pn)&&a===ia){k=Rn;var P=d&&S===E&&E.visualViewport?E.visualViewport.width:S[B];h-=P-r.width,h*=c?1:-1}}var T=Object.assign({position:i},f&&ox),I=u===!0?rx({x:h,y:m}):{x:h,y:m};if(h=I.x,m=I.y,c){var v;return Object.assign({},T,(v={},v[w]=C?"0":"",v[k]=y?"0":"",v.transform=(E.devicePixelRatio||1)<=1?"translate("+h+"px, "+m+"px)":"translate3d("+h+"px, "+m+"px, 0)",v))}return Object.assign({},T,(n={},n[w]=C?m+"px":"",n[k]=y?h+"px":"",n.transform="",n))}function lx(t){var n=t.state,o=t.options,r=o.gpuAcceleration,l=r===void 0?!0:r,a=o.adaptive,s=a===void 0?!0:a,i=o.roundOffsets,c=i===void 0?!0:i,f={placement:fo(n.placement),variation:fl(n.placement),popper:n.elements.popper,popperRect:n.rects.popper,gpuAcceleration:l,isFixed:n.options.strategy==="fixed"};n.modifiersData.popperOffsets!=null&&(n.styles.popper=Object.assign({},n.styles.popper,qy(Object.assign({},f,{offsets:n.modifiersData.popperOffsets,position:n.options.strategy,adaptive:s,roundOffsets:c})))),n.modifiersData.arrow!=null&&(n.styles.arrow=Object.assign({},n.styles.arrow,qy(Object.assign({},f,{offsets:n.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),n.attributes.popper=Object.assign({},n.attributes.popper,{"data-popper-placement":n.placement})}var Yy={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:lx,data:{}},Hs={passive:!0};function ax(t){var n=t.state,o=t.instance,r=t.options,l=r.scroll,a=l===void 0?!0:l,s=r.resize,i=s===void 0?!0:s,c=Un(n.elements.popper),f=[].concat(n.scrollParents.reference,n.scrollParents.popper);return a&&f.forEach(function(u){u.addEventListener("scroll",o.update,Hs)}),i&&c.addEventListener("resize",o.update,Hs),function(){a&&f.forEach(function(u){u.removeEventListener("scroll",o.update,Hs)}),i&&c.removeEventListener("resize",o.update,Hs)}}var Xy={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:ax,data:{}},sx={left:"right",right:"left",bottom:"top",top:"bottom"};function Ks(t){return t.replace(/left|right|bottom|top/g,function(n){return sx[n]})}var ix={start:"end",end:"start"};function Zy(t){return t.replace(/start|end/g,function(n){return ix[n]})}function cf(t){var n=Un(t),o=n.pageXOffset,r=n.pageYOffset;return{scrollLeft:o,scrollTop:r}}function df(t){return dl(er(t)).left+cf(t).scrollLeft}function cx(t){var n=Un(t),o=er(t),r=n.visualViewport,l=o.clientWidth,a=o.clientHeight,s=0,i=0;return r&&(l=r.width,a=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=r.offsetLeft,i=r.offsetTop)),{width:l,height:a,x:s+df(t),y:i}}function dx(t){var n,o=er(t),r=cf(t),l=(n=t.ownerDocument)==null?void 0:n.body,a=Br(o.scrollWidth,o.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),s=Br(o.scrollHeight,o.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),i=-r.scrollLeft+df(t),c=-r.scrollTop;return Bo(l||o).direction==="rtl"&&(i+=Br(o.clientWidth,l?l.clientWidth:0)-a),{width:a,height:s,x:i,y:c}}function ff(t){var n=Bo(t),o=n.overflow,r=n.overflowX,l=n.overflowY;return/auto|scroll|overlay|hidden/.test(o+l+r)}function Jy(t){return["html","body","#document"].indexOf(co(t))>=0?t.ownerDocument.body:On(t)&&ff(t)?t:Jy(Fs(t))}function ua(t,n){var o;n===void 0&&(n=[]);var r=Jy(t),l=r===((o=t.ownerDocument)==null?void 0:o.body),a=Un(r),s=l?[a].concat(a.visualViewport||[],ff(r)?r:[]):r,i=n.concat(s);return l?i:i.concat(ua(Fs(s)))}function uf(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function fx(t){var n=dl(t);return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}function Qy(t,n){return n===xy?uf(cx(t)):il(n)?fx(n):uf(dx(er(t)))}function ux(t){var n=ua(Fs(t)),o=["absolute","fixed"].indexOf(Bo(t).position)>=0,r=o&&On(t)?da(t):t;return il(r)?n.filter(function(l){return il(l)&&Ky(l,r)&&co(l)!=="body"}):[]}function px(t,n,o){var r=n==="clippingParents"?ux(t):[].concat(n),l=[].concat(r,[o]),a=l[0],s=l.reduce(function(i,c){var f=Qy(t,c);return i.top=Br(f.top,i.top),i.right=xs(f.right,i.right),i.bottom=xs(f.bottom,i.bottom),i.left=Br(f.left,i.left),i},Qy(t,a));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function eb(t){var n=t.reference,o=t.element,r=t.placement,l=r?fo(r):null,a=r?fl(r):null,s=n.x+n.width/2-o.width/2,i=n.y+n.height/2-o.height/2,c;switch(l){case pn:c={x:s,y:n.y-o.height};break;case Pn:c={x:s,y:n.y+n.height};break;case Rn:c={x:n.x+n.width,y:i};break;case mn:c={x:n.x-o.width,y:i};break;default:c={x:n.x,y:n.y}}var f=l?sf(l):null;if(f!=null){var u=f==="y"?"height":"width";switch(a){case sl:c[f]=c[f]-(n[u]/2-o[u]/2);break;case ia:c[f]=c[f]+(n[u]/2-o[u]/2);break}}return c}function pa(t,n){n===void 0&&(n={});var o=n,r=o.placement,l=r===void 0?t.placement:r,a=o.boundary,s=a===void 0?AL:a,i=o.rootBoundary,c=i===void 0?xy:i,f=o.elementContext,u=f===void 0?ca:f,d=o.altBoundary,p=d===void 0?!1:d,h=o.padding,g=h===void 0?0:h,m=Uy(typeof g!="number"?g:Gy(g,sa)),b=u===ca?zL:ca,y=t.rects.popper,C=t.elements[p?b:u],k=px(il(C)?C:C.contextElement||er(t.elements.popper),s,c),w=dl(t.elements.reference),E=eb({reference:w,element:y,strategy:"absolute",placement:l}),S=uf(Object.assign({},y,E)),_=u===ca?S:w,B={top:k.top-_.top+m.top,bottom:_.bottom-k.bottom+m.bottom,left:k.left-_.left+m.left,right:_.right-k.right+m.right},M=t.modifiersData.offset;if(u===ca&&M){var P=M[l];Object.keys(B).forEach(function(T){var I=[Rn,Pn].indexOf(T)>=0?1:-1,v=[pn,Pn].indexOf(T)>=0?"y":"x";B[T]+=P[v]*I})}return B}function mx(t,n){n===void 0&&(n={});var o=n,r=o.placement,l=o.boundary,a=o.rootBoundary,s=o.padding,i=o.flipVariations,c=o.allowedAutoPlacements,f=c===void 0?_r:c,u=fl(r),d=u?i?Fy:Fy.filter(function(g){return fl(g)===u}):sa,p=d.filter(function(g){return f.indexOf(g)>=0});p.length===0&&(p=d);var h=p.reduce(function(g,m){return g[m]=pa(t,{placement:m,boundary:l,rootBoundary:a,padding:s})[fo(m)],g},{});return Object.keys(h).sort(function(g,m){return h[g]-h[m]})}function hx(t){if(fo(t)===rf)return[];var n=Ks(t);return[Zy(t),n,Zy(n)]}function gx(t){var n=t.state,o=t.options,r=t.name;if(!n.modifiersData[r]._skip){for(var l=o.mainAxis,a=l===void 0?!0:l,s=o.altAxis,i=s===void 0?!0:s,c=o.fallbackPlacements,f=o.padding,u=o.boundary,d=o.rootBoundary,p=o.altBoundary,h=o.flipVariations,g=h===void 0?!0:h,m=o.allowedAutoPlacements,b=n.options.placement,y=fo(b),C=y===b,k=c||(C||!g?[Ks(b)]:hx(b)),w=[b].concat(k).reduce(function(q,ne){return q.concat(fo(ne)===rf?mx(n,{placement:ne,boundary:u,rootBoundary:d,padding:f,flipVariations:g,allowedAutoPlacements:m}):ne)},[]),E=n.rects.reference,S=n.rects.popper,_=new Map,B=!0,M=w[0],P=0;P=0,D=O?"width":"height",z=pa(n,{placement:T,boundary:u,rootBoundary:d,altBoundary:p,padding:f}),$=O?v?Rn:mn:v?Pn:pn;E[D]>S[D]&&($=Ks($));var R=Ks($),N=[];if(a&&N.push(z[I]<=0),i&&N.push(z[$]<=0,z[R]<=0),N.every(function(q){return q})){M=T,B=!1;break}_.set(T,N)}if(B)for(var A=g?3:1,x=function(q){var ne=w.find(function(Y){var Z=_.get(Y);if(Z)return Z.slice(0,q).every(function(U){return U})});if(ne)return M=ne,"break"},H=A;H>0;H--){var K=x(H);if(K==="break")break}n.placement!==M&&(n.modifiersData[r]._skip=!0,n.placement=M,n.reset=!0)}}var yx={name:"flip",enabled:!0,phase:"main",fn:gx,requiresIfExists:["offset"],data:{_skip:!1}};function tb(t,n,o){return o===void 0&&(o={x:0,y:0}),{top:t.top-n.height-o.y,right:t.right-n.width+o.x,bottom:t.bottom-n.height+o.y,left:t.left-n.width-o.x}}function nb(t){return[pn,Rn,Pn,mn].some(function(n){return t[n]>=0})}function bx(t){var n=t.state,o=t.name,r=n.rects.reference,l=n.rects.popper,a=n.modifiersData.preventOverflow,s=pa(n,{elementContext:"reference"}),i=pa(n,{altBoundary:!0}),c=tb(s,r),f=tb(i,l,a),u=nb(c),d=nb(f);n.modifiersData[o]={referenceClippingOffsets:c,popperEscapeOffsets:f,isReferenceHidden:u,hasPopperEscaped:d},n.attributes.popper=Object.assign({},n.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var Cx={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:bx};function wx(t,n,o){var r=fo(t),l=[mn,pn].indexOf(r)>=0?-1:1,a=typeof o=="function"?o(Object.assign({},n,{placement:t})):o,s=a[0],i=a[1];return s=s||0,i=(i||0)*l,[mn,Rn].indexOf(r)>=0?{x:i,y:s}:{x:s,y:i}}function kx(t){var n=t.state,o=t.options,r=t.name,l=o.offset,a=l===void 0?[0,0]:l,s=_r.reduce(function(u,d){return u[d]=wx(d,n.rects,a),u},{}),i=s[n.placement],c=i.x,f=i.y;n.modifiersData.popperOffsets!=null&&(n.modifiersData.popperOffsets.x+=c,n.modifiersData.popperOffsets.y+=f),n.modifiersData[r]=s}var Sx={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:kx};function Ex(t){var n=t.state,o=t.name;n.modifiersData[o]=eb({reference:n.rects.reference,element:n.rects.popper,strategy:"absolute",placement:n.placement})}var ob={name:"popperOffsets",enabled:!0,phase:"read",fn:Ex,data:{}};function Nx(t){return t==="x"?"y":"x"}function _x(t){var n=t.state,o=t.options,r=t.name,l=o.mainAxis,a=l===void 0?!0:l,s=o.altAxis,i=s===void 0?!1:s,c=o.boundary,f=o.rootBoundary,u=o.altBoundary,d=o.padding,p=o.tether,h=p===void 0?!0:p,g=o.tetherOffset,m=g===void 0?0:g,b=pa(n,{boundary:c,rootBoundary:f,padding:d,altBoundary:u}),y=fo(n.placement),C=fl(n.placement),k=!C,w=sf(y),E=Nx(w),S=n.modifiersData.popperOffsets,_=n.rects.reference,B=n.rects.popper,M=typeof m=="function"?m(Object.assign({},n.rects,{placement:n.placement})):m,P=typeof M=="number"?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),T=n.modifiersData.offset?n.modifiersData.offset[n.placement]:null,I={x:0,y:0};if(S){if(a){var v,O=w==="y"?pn:mn,D=w==="y"?Pn:Rn,z=w==="y"?"height":"width",$=S[w],R=$+b[O],N=$-b[D],A=h?-B[z]/2:0,x=C===sl?_[z]:B[z],H=C===sl?-B[z]:-_[z],K=n.elements.arrow,q=h&&K?af(K):{width:0,height:0},ne=n.modifiersData["arrow#persistent"]?n.modifiersData["arrow#persistent"].padding:jy(),Y=ne[O],Z=ne[D],U=fa(0,_[z],q[z]),re=k?_[z]/2-A-U-Y-P.mainAxis:x-U-Y-P.mainAxis,te=k?-_[z]/2+A+U+Z+P.mainAxis:H+U+Z+P.mainAxis,oe=n.elements.arrow&&da(n.elements.arrow),ie=oe?w==="y"?oe.clientTop||0:oe.clientLeft||0:0,ye=(v=T==null?void 0:T[w])!=null?v:0,Ne=$+re-ye-ie,Te=$+te-ye,Pe=fa(h?xs(R,Ne):R,$,h?Br(N,Te):N);S[w]=Pe,I[w]=Pe-$}if(i){var he,Ce=w==="x"?pn:mn,ge=w==="x"?Pn:Rn,me=S[E],_e=E==="y"?"height":"width",$e=me+b[Ce],Ae=me-b[ge],Oe=[pn,mn].indexOf(y)!==-1,ce=(he=T==null?void 0:T[E])!=null?he:0,Ee=Oe?$e:me-_[_e]-B[_e]-ce+P.altAxis,Le=Oe?me+_[_e]+B[_e]-ce-P.altAxis:Ae,Xe=h&&Oe?JL(Ee,me,Le):fa(h?Ee:$e,me,h?Le:Ae);S[E]=Xe,I[E]=Xe-me}n.modifiersData[r]=I}}var Bx={name:"preventOverflow",enabled:!0,phase:"main",fn:_x,requiresIfExists:["offset"]};function $x(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function Tx(t){return t===Un(t)||!On(t)?cf(t):$x(t)}function vx(t){var n=t.getBoundingClientRect(),o=cl(n.width)/t.offsetWidth||1,r=cl(n.height)/t.offsetHeight||1;return o!==1||r!==1}function Vx(t,n,o){o===void 0&&(o=!1);var r=On(n),l=On(n)&&vx(n),a=er(n),s=dl(t,l),i={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!o)&&((co(n)!=="body"||ff(a))&&(i=Tx(n)),On(n)?(c=dl(n,!0),c.x+=n.clientLeft,c.y+=n.clientTop):a&&(c.x=df(a))),{x:s.left+i.scrollLeft-c.x,y:s.top+i.scrollTop-c.y,width:s.width,height:s.height}}function Mx(t){var n=new Map,o=new Set,r=[];t.forEach(function(a){n.set(a.name,a)});function l(a){o.add(a.name);var s=[].concat(a.requires||[],a.requiresIfExists||[]);s.forEach(function(i){if(!o.has(i)){var c=n.get(i);c&&l(c)}}),r.push(a)}return t.forEach(function(a){o.has(a.name)||l(a)}),r}function Ix(t){var n=Mx(t);return GL.reduce(function(o,r){return o.concat(n.filter(function(l){return l.phase===r}))},[])}function Px(t){var n;return function(){return n||(n=new Promise(function(o){Promise.resolve().then(function(){n=void 0,o(t())})})),n}}function Rx(t){var n=t.reduce(function(o,r){var l=o[r.name];return o[r.name]=l?Object.assign({},l,r,{options:Object.assign({},l.options,r.options),data:Object.assign({},l.data,r.data)}):r,o},{});return Object.keys(n).map(function(o){return n[o]})}var rb={placement:"bottom",modifiers:[],strategy:"absolute"};function lb(){for(var t=arguments.length,n=new Array(t),o=0;o{const r={name:"updateState",enabled:!0,phase:"write",fn:({state:c})=>{const f=zx(c);Object.assign(s.value,f)},requires:["computeStyles"]},l=e.computed(()=>{const{onFirstUpdate:c,placement:f,strategy:u,modifiers:d}=e.unref(o);return{onFirstUpdate:c,placement:f||"bottom",strategy:u||"absolute",modifiers:[...d||[],r,{name:"applyStyles",enabled:!1}]}}),a=e.shallowRef(),s=e.ref({styles:{popper:{position:e.unref(l).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),i=()=>{!a.value||(a.value.destroy(),a.value=void 0)};return e.watch(l,c=>{const f=e.unref(a);f&&f.setOptions(c)},{deep:!0}),e.watch([t,n],([c,f])=>{i(),!(!c||!f)&&(a.value=ab(c,f,e.unref(l)))}),e.onBeforeUnmount(()=>{i()}),{state:e.computed(()=>{var c;return{...((c=e.unref(a))==null?void 0:c.state)||{}}}),styles:e.computed(()=>e.unref(s).styles),attributes:e.computed(()=>e.unref(s).attributes),update:()=>{var c;return(c=e.unref(a))==null?void 0:c.update()},forceUpdate:()=>{var c;return(c=e.unref(a))==null?void 0:c.forceUpdate()},instanceRef:e.computed(()=>e.unref(a))}};function zx(t){const n=Object.keys(t.elements),o=Ql(n.map(l=>[l,t.styles[l]||{}])),r=Ql(n.map(l=>[l,t.attributes[l]]));return{styles:o,attributes:r}}const Ws=t=>{if(!t)return{onClick:st,onMousedown:st,onMouseup:st};let n=!1,o=!1;return{onClick:s=>{n&&o&&t(s),n=o=!1},onMousedown:s=>{n=s.target===s.currentTarget},onMouseup:s=>{o=s.target===s.currentTarget}}},Dx=(t,n)=>{const o=e.ref(!1);if(!He)return{isTeleportVisible:o,showTeleport:st,hideTeleport:st,renderTeleport:st};let r=null;const l=()=>{o.value=!0,r===null&&(r=Gz())},a=()=>{o.value=!1,r!==null&&(qz(r),r=null)},s=()=>n.value!==!0?t():o.value?[e.h(e.Teleport,{to:r},t())]:void 0;return e.onUnmounted(a),{isTeleportVisible:o,showTeleport:l,hideTeleport:a,renderTeleport:s}},ib=(t,n=0)=>{if(n===0)return t;const o=e.ref(!1);let r=0;const l=()=>{r&&clearTimeout(r),r=window.setTimeout(()=>{o.value=t.value},n)};return e.onMounted(l),e.watch(()=>t.value,a=>{a?l():o.value=a}),o};function mf(){let t;const n=(r,l)=>{o(),t=window.setTimeout(r,l)},o=()=>window.clearTimeout(t);return Al(()=>o()),{registerTimeout:n,cancelTimeout:o}}const cb="after-appear",db="after-enter",fb="after-leave",Lx="appear",ub="appear-cancelled",pb="before-enter",mb="before-leave",hb="enter",gb="enter-cancelled",yb="leave",bb="leave-cancelled",xx=[cb,db,fb,Lx,ub,pb,mb,hb,gb,yb,bb],Fx=()=>{const{emit:t}=e.getCurrentInstance();return{onAfterAppear:()=>{t(cb)},onAfterEnter:()=>{t(db)},onAfterLeave:()=>{t(fb)},onAppearCancelled:()=>{t(ub)},onBeforeEnter:()=>{t(pb)},onBeforeLeave:()=>{t(mb)},onEnter:()=>{t(hb)},onEnterCancelled:()=>{t(gb)},onLeave:()=>{t(yb)},onLeaveCancelled:()=>{t(bb)}}},Cb={prefix:Math.floor(Math.random()*1e4),current:0},wb=Symbol("elIdInjection"),hf=()=>e.getCurrentInstance()?e.inject(wb,Cb):Cb,rn=t=>{const n=hf(),o=Ls();return e.computed(()=>e.unref(t)||`${o.value}-id-${n.prefix}-${n.current++}`)};let ul=[];const kb=t=>{const n=t;n.key===pe.esc&&ul.forEach(o=>o(n))},Sb=t=>{e.onMounted(()=>{ul.length===0&&document.addEventListener("keydown",kb),He&&ul.push(t)}),e.onBeforeUnmount(()=>{ul=ul.filter(n=>n!==t),ul.length===0&&He&&document.removeEventListener("keydown",kb)})};let Eb;const gf=()=>{const t=Ls(),n=hf(),o=e.computed(()=>`${t.value}-popper-container-${n.prefix}`),r=e.computed(()=>`#${o.value}`);return{id:o,selector:r}},Hx=t=>{const n=document.createElement("div");return n.id=t,document.body.appendChild(n),n},Nb=()=>{const{id:t,selector:n}=gf();return e.onBeforeMount(()=>{!He||!Eb&&!document.body.querySelector(n.value)&&(Eb=Hx(t.value))}),{id:t,selector:n}},Kx=({indicator:t,intermediateIndicator:n,shouldSetIntermediate:o=()=>!0,beforeShow:r,afterShow:l,afterHide:a,beforeHide:s})=>{e.watch(()=>e.unref(t),i=>{i?(r==null||r(),e.nextTick(()=>{!e.unref(t)||o("show")&&(n.value=!0)})):(s==null||s(),e.nextTick(()=>{e.unref(t)||o("hide")&&(n.value=!1)}))}),e.watch(()=>n.value,i=>{i?l==null||l():a==null||a()})},_b=le({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),yf=({showAfter:t,hideAfter:n,autoClose:o,open:r,close:l})=>{const{registerTimeout:a}=mf(),{registerTimeout:s,cancelTimeout:i}=mf();return{onOpen:u=>{a(()=>{r(u);const d=e.unref(o);be(d)&&d>0&&s(()=>{l(u)},d)},e.unref(t))},onClose:u=>{i(),a(()=>{l(u)},e.unref(n))}}},bf=Symbol("elForwardRef"),Bb=t=>{const n=o=>{t.value=o};e.provide(bf,{setForwardRef:n})},$b=t=>({mounted(n){t(n)},updated(n){t(n)},unmounted(){t(null)}}),Tb=e.ref(0),Cf=2e3,wf=Symbol("zIndexContextKey"),$r=t=>{const n=t||(e.getCurrentInstance()?e.inject(wf,void 0):void 0),o=e.computed(()=>{const a=e.unref(n);return be(a)?a:Cf}),r=e.computed(()=>o.value+Tb.value);return{initialZIndex:o,currentZIndex:r,nextZIndex:()=>(Tb.value++,r.value)}};function kf(t){return t.split("-")[0]}function Sf(t){return t.split("-")[1]}function Ef(t){return["top","bottom"].includes(kf(t))?"x":"y"}function vb(t){return t==="y"?"height":"width"}function Vb(t,n,o){let{reference:r,floating:l}=t;const a=r.x+r.width/2-l.width/2,s=r.y+r.height/2-l.height/2,i=Ef(n),c=vb(i),f=r[c]/2-l[c]/2,u=kf(n),d=i==="x";let p;switch(u){case"top":p={x:a,y:r.y-l.height};break;case"bottom":p={x:a,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:s};break;case"left":p={x:r.x-l.width,y:s};break;default:p={x:r.x,y:r.y}}switch(Sf(n)){case"start":p[i]-=f*(o&&d?-1:1);break;case"end":p[i]+=f*(o&&d?-1:1);break}return p}const Wx=async(t,n,o)=>{const{placement:r="bottom",strategy:l="absolute",middleware:a=[],platform:s}=o,i=await(s.isRTL==null?void 0:s.isRTL(n));if(process.env.NODE_ENV!=="production"&&(s==null&&console.error(["Floating UI: `platform` property was not passed to config. If you","want to use Floating UI on the web, install @floating-ui/dom","instead of the /core package. Otherwise, you can create your own","`platform`: https://floating-ui.com/docs/platform"].join(" ")),a.filter(g=>{let{name:m}=g;return m==="autoPlacement"||m==="flip"}).length>1))throw new Error(["Floating UI: duplicate `flip` and/or `autoPlacement`","middleware detected. This will lead to an infinite loop. Ensure only","one of either has been passed to the `middleware` array."].join(" "));let c=await s.getElementRects({reference:t,floating:n,strategy:l}),{x:f,y:u}=Vb(c,r,i),d=r,p={},h=0;for(let g=0;g50&&console.warn(["Floating UI: The middleware lifecycle appears to be running in an","infinite loop. This is usually caused by a `reset` continually","being returned without a break condition."].join(" ")),w&&h<=50){h++,typeof w=="object"&&(w.placement&&(d=w.placement),w.rects&&(c=w.rects===!0?await s.getElementRects({reference:t,floating:n,strategy:l}):w.rects),{x:f,y:u}=Vb(c,d,i)),g=-1;continue}}return{x:f,y:u,placement:d,strategy:l,middlewareData:p}};function jx(t){return{top:0,right:0,bottom:0,left:0,...t}}function Ux(t){return typeof t!="number"?jx(t):{top:t,right:t,bottom:t,left:t}}function Mb(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}const Gx=Math.min,qx=Math.max;function Yx(t,n,o){return qx(t,Gx(n,o))}const Xx=t=>({name:"arrow",options:t,async fn(n){const{element:o,padding:r=0}=t!=null?t:{},{x:l,y:a,placement:s,rects:i,platform:c}=n;if(o==null)return process.env.NODE_ENV!=="production"&&console.warn("Floating UI: No `element` was passed to the `arrow` middleware."),{};const f=Ux(r),u={x:l,y:a},d=Ef(s),p=Sf(s),h=vb(d),g=await c.getDimensions(o),m=d==="y"?"top":"left",b=d==="y"?"bottom":"right",y=i.reference[h]+i.reference[d]-u[d]-i.floating[h],C=u[d]-i.reference[d],k=await(c.getOffsetParent==null?void 0:c.getOffsetParent(o));let w=k?d==="y"?k.clientHeight||0:k.clientWidth||0:0;w===0&&(w=i.floating[h]);const E=y/2-C/2,S=f[m],_=w-g[h]-f[b],B=w/2-g[h]/2+E,M=Yx(S,B,_),I=(p==="start"?f[m]:f[b])>0&&B!==M&&i.reference[h]<=i.floating[h]?Bn.brand+"/"+n.version).join(" "):navigator.userAgent}function po(t){return t instanceof $o(t).HTMLElement}function pl(t){return t instanceof $o(t).Element}function Qx(t){return t instanceof $o(t).Node}function ml(t){if(typeof ShadowRoot=="undefined")return!1;const n=$o(t).ShadowRoot;return t instanceof n||t instanceof ShadowRoot}function js(t){const{overflow:n,overflowX:o,overflowY:r}=uo(t);return/auto|scroll|overlay|hidden/.test(n+r+o)}function e8(t){return["table","td","th"].includes(To(t))}function Rb(t){const n=/firefox/i.test(Pb()),o=uo(t);return o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].includes(o.willChange)||n&&o.willChange==="filter"||n&&(o.filter?o.filter!=="none":!1)}function Ob(){return!/^((?!chrome|android).)*safari/i.test(Pb())}const Ab=Math.min,ma=Math.max,Us=Math.round;function Tr(t,n,o){var r,l,a,s;n===void 0&&(n=!1),o===void 0&&(o=!1);const i=t.getBoundingClientRect();let c=1,f=1;n&&po(t)&&(c=t.offsetWidth>0&&Us(i.width)/t.offsetWidth||1,f=t.offsetHeight>0&&Us(i.height)/t.offsetHeight||1);const u=pl(t)?$o(t):window,d=!Ob()&&o,p=(i.left+(d&&(r=(l=u.visualViewport)==null?void 0:l.offsetLeft)!=null?r:0))/c,h=(i.top+(d&&(a=(s=u.visualViewport)==null?void 0:s.offsetTop)!=null?a:0))/f,g=i.width/c,m=i.height/f;return{width:g,height:m,top:h,right:p+g,bottom:h+m,left:p,x:p,y:h}}function tr(t){return((Qx(t)?t.ownerDocument:t.document)||window.document).documentElement}function Gs(t){return pl(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function zb(t){return Tr(tr(t)).left+Gs(t).scrollLeft}function t8(t){const n=Tr(t);return Us(n.width)!==t.offsetWidth||Us(n.height)!==t.offsetHeight}function n8(t,n,o){const r=po(n),l=tr(n),a=Tr(t,r&&t8(n),o==="fixed");let s={scrollLeft:0,scrollTop:0};const i={x:0,y:0};if(r||!r&&o!=="fixed")if((To(n)!=="body"||js(l))&&(s=Gs(n)),po(n)){const c=Tr(n,!0);i.x=c.x+n.clientLeft,i.y=c.y+n.clientTop}else l&&(i.x=zb(l));return{x:a.left+s.scrollLeft-i.x,y:a.top+s.scrollTop-i.y,width:a.width,height:a.height}}function Db(t){return To(t)==="html"?t:t.assignedSlot||t.parentNode||(ml(t)?t.host:null)||tr(t)}function Lb(t){return!po(t)||uo(t).position==="fixed"?null:o8(t)}function o8(t){let{offsetParent:n}=t,o=t,r=!1;for(;o&&o!==n;){const{assignedSlot:l}=o;if(l){let a=l.offsetParent;if(uo(l).display==="contents"){const s=l.hasAttribute("style"),i=l.style.display;l.style.display=uo(o).display,a=l.offsetParent,l.style.display=i,s||l.removeAttribute("style")}o=l,n!==a&&(n=a,r=!0)}else if(ml(o)&&o.host&&r)break;o=ml(o)&&o.host||o.parentNode}return n}function r8(t){let n=Db(t);for(ml(n)&&(n=n.host);po(n)&&!["html","body"].includes(To(n));){if(Rb(n))return n;{const o=n.parentNode;n=ml(o)?o.host:o}}return null}function Nf(t){const n=$o(t);let o=Lb(t);for(;o&&e8(o)&&uo(o).position==="static";)o=Lb(o);return o&&(To(o)==="html"||To(o)==="body"&&uo(o).position==="static"&&!Rb(o))?n:o||r8(t)||n}function xb(t){if(po(t))return{width:t.offsetWidth,height:t.offsetHeight};const n=Tr(t);return{width:n.width,height:n.height}}function l8(t){let{rect:n,offsetParent:o,strategy:r}=t;const l=po(o),a=tr(o);if(o===a)return n;let s={scrollLeft:0,scrollTop:0};const i={x:0,y:0};if((l||!l&&r!=="fixed")&&((To(o)!=="body"||js(a))&&(s=Gs(o)),po(o))){const c=Tr(o,!0);i.x=c.x+o.clientLeft,i.y=c.y+o.clientTop}return{...n,x:n.x-s.scrollLeft+i.x,y:n.y-s.scrollTop+i.y}}function a8(t,n){const o=$o(t),r=tr(t),l=o.visualViewport;let a=r.clientWidth,s=r.clientHeight,i=0,c=0;if(l){a=l.width,s=l.height;const f=Ob();(f||!f&&n==="fixed")&&(i=l.offsetLeft,c=l.offsetTop)}return{width:a,height:s,x:i,y:c}}function s8(t){var n;const o=tr(t),r=Gs(t),l=(n=t.ownerDocument)==null?void 0:n.body,a=ma(o.scrollWidth,o.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),s=ma(o.scrollHeight,o.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0);let i=-r.scrollLeft+zb(t);const c=-r.scrollTop;return uo(l||o).direction==="rtl"&&(i+=ma(o.clientWidth,l?l.clientWidth:0)-a),{width:a,height:s,x:i,y:c}}function Fb(t){const n=Db(t);return["html","body","#document"].includes(To(n))?t.ownerDocument.body:po(n)&&js(n)?n:Fb(n)}function Hb(t,n){var o;n===void 0&&(n=[]);const r=Fb(t),l=r===((o=t.ownerDocument)==null?void 0:o.body),a=$o(r),s=l?[a].concat(a.visualViewport||[],js(r)?r:[]):r,i=n.concat(s);return l?i:i.concat(Hb(s))}function i8(t,n){const o=n.getRootNode==null?void 0:n.getRootNode();if(t.contains(n))return!0;if(o&&ml(o)){let r=n;do{if(r&&t===r)return!0;r=r.parentNode||r.host}while(r)}return!1}function c8(t,n){const o=Tr(t,!1,n==="fixed"),r=o.top+t.clientTop,l=o.left+t.clientLeft;return{top:r,left:l,x:l,y:r,right:l+t.clientWidth,bottom:r+t.clientHeight,width:t.clientWidth,height:t.clientHeight}}function Kb(t,n,o){return n==="viewport"?Mb(a8(t,o)):pl(n)?c8(n,o):Mb(s8(tr(t)))}function d8(t){const n=Hb(t),r=["absolute","fixed"].includes(uo(t).position)&&po(t)?Nf(t):t;return pl(r)?n.filter(l=>pl(l)&&i8(l,r)&&To(l)!=="body"):[]}function f8(t){let{element:n,boundary:o,rootBoundary:r,strategy:l}=t;const s=[...o==="clippingAncestors"?d8(n):[].concat(o),r],i=s[0],c=s.reduce((f,u)=>{const d=Kb(n,u,l);return f.top=ma(d.top,f.top),f.right=Ab(d.right,f.right),f.bottom=Ab(d.bottom,f.bottom),f.left=ma(d.left,f.left),f},Kb(n,i,l));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}const u8={getClippingRect:f8,convertOffsetParentRelativeRectToViewportRelativeRect:l8,isElement:pl,getDimensions:xb,getOffsetParent:Nf,getDocumentElement:tr,getElementRects:t=>{let{reference:n,floating:o,strategy:r}=t;return{reference:n8(n,Nf(o),r),floating:{...xb(o),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>uo(t).direction==="rtl"},p8=(t,n,o)=>Wx(t,n,{platform:u8,...o}),m8=le({}),h8=t=>{if(!He)return;if(!t)return t;const n=sn(t);return n||(e.isRef(t)?n:t)},g8=(t,n)=>{const o=t==null?void 0:t[n];return wt(o)?"":`${o}px`},Wb=({middleware:t,placement:n,strategy:o})=>{const r=e.ref(),l=e.ref(),a=e.ref(),s=e.ref(),i=e.ref({}),c={x:a,y:s,placement:n,strategy:o,middlewareData:i},f=async()=>{if(!He)return;const u=h8(r),d=sn(l);if(!u||!d)return;const p=await p8(u,d,{placement:e.unref(n),strategy:e.unref(o),middleware:e.unref(t)});ra(c).forEach(h=>{c[h].value=p[h]})};return e.onMounted(()=>{e.watchEffect(()=>{f()})}),{...c,update:f,referenceRef:r,contentRef:l}},jb=({arrowRef:t,padding:n})=>({name:"arrow",options:{element:t,padding:n},fn(o){const r=e.unref(t);return r?Xx({element:r,padding:n}).fn(o):{}}});function Ub(t){const n=e.ref();function o(){if(t.value==null)return;const{selectionStart:l,selectionEnd:a,value:s}=t.value;if(l==null||a==null)return;const i=s.slice(0,Math.max(0,l)),c=s.slice(Math.max(0,a));n.value={selectionStart:l,selectionEnd:a,value:s,beforeTxt:i,afterTxt:c}}function r(){if(t.value==null||n.value==null)return;const{value:l}=t.value,{beforeTxt:a,afterTxt:s,selectionStart:i}=n.value;if(a==null||s==null||i==null)return;let c=l.length;if(l.endsWith(s))c=l.length-s.length;else if(l.startsWith(a))c=a.length;else{const f=a[i-1],u=l.indexOf(f,i-1);u!==-1&&(c=u+1)}t.value.setSelectionRange(c,c)}return[o,r]}const y8=(t,n,o)=>Er(t.subTree).filter(a=>{var s;return e.isVNode(a)&&((s=a.type)==null?void 0:s.name)===n&&!!a.component}).map(a=>a.component.uid).map(a=>o[a]).filter(a=>!!a),qs=(t,n)=>{const o={},r=e.shallowRef([]);return{children:r,addChild:s=>{o[s.uid]=s,r.value=y8(t,n,o)},removeChild:s=>{delete o[s],r.value=r.value.filter(i=>i.uid!==s)}}},Vt=Kn({type:String,values:Wn,required:!1}),b8={size:Vt},_f=Symbol("size"),Gb=()=>{const t=e.inject(_f,{});return e.computed(()=>e.unref(t.size)||"")};function Bf(t,{afterFocus:n,beforeBlur:o,afterBlur:r}={}){const l=e.getCurrentInstance(),{emit:a}=l,s=e.shallowRef(),i=e.ref(!1),c=d=>{i.value||(i.value=!0,a("focus",d),n==null||n())},f=d=>{var p;(qe(o)?o(d):!1)||d.relatedTarget&&((p=s.value)==null?void 0:p.contains(d.relatedTarget))||(i.value=!1,a("blur",d),r==null||r())},u=()=>{var d;(d=t.value)==null||d.focus()};return e.watch(s,d=>{d&&d.setAttribute("tabindex","-1")}),rt(s,"click",u),{wrapperRef:s,isFocused:i,handleFocus:c,handleBlur:f}}const $f=Symbol(),Ys=e.ref();function ha(t,n=void 0){const o=e.getCurrentInstance()?e.inject($f,Ys):Ys;return t?e.computed(()=>{var r,l;return(l=(r=o.value)==null?void 0:r[t])!=null?l:n}):o}function ga(t,n){const o=ha(),r=Q(t,e.computed(()=>{var i;return((i=o.value)==null?void 0:i.namespace)||ll})),l=Ke(e.computed(()=>{var i;return(i=o.value)==null?void 0:i.locale})),a=$r(e.computed(()=>{var i;return((i=o.value)==null?void 0:i.zIndex)||Cf})),s=e.computed(()=>{var i;return e.unref(n)||((i=o.value)==null?void 0:i.size)||""});return Xs(e.computed(()=>e.unref(o)||{})),{ns:r,locale:l,zIndex:a,size:s}}const Xs=(t,n,o=!1)=>{var r;const l=!!e.getCurrentInstance(),a=l?ha():void 0,s=(r=n==null?void 0:n.provide)!=null?r:l?e.provide:void 0;if(!s)return;const i=e.computed(()=>{const c=e.unref(t);return a!=null&&a.value?C8(a.value,c):c});return s($f,i),s(Jd,e.computed(()=>i.value.locale)),s(ef,e.computed(()=>i.value.namespace)),s(wf,e.computed(()=>i.value.zIndex)),s(_f,{size:e.computed(()=>i.value.size||"")}),(o||!Ys.value)&&(Ys.value=i.value),i},C8=(t,n)=>{var o;const r=[...new Set([...ra(t),...ra(n)])],l={};for(const a of r)l[a]=(o=n[a])!=null?o:t[a];return l},qb=le({a11y:{type:Boolean,default:!0},locale:{type:W(Object)},size:Vt,button:{type:W(Object)},experimentalFeatures:{type:W(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:W(Object)},zIndex:Number,namespace:{type:String,default:"el"}}),Zs={},w8=e.defineComponent({name:"ElConfigProvider",props:qb,setup(t,{slots:n}){e.watch(()=>t.message,r=>{Object.assign(Zs,r!=null?r:{})},{immediate:!0,deep:!0});const o=Xs(t);return()=>e.renderSlot(n,"default",{config:o==null?void 0:o.value})}}),Yb=Me(w8),k8="2.4.3",Xb=(t=[])=>({version:k8,install:(o,r)=>{o[qd]||(o[qd]=!0,t.forEach(l=>o.use(l)),r&&Xs(r,o,!0))}}),Zb=le({zIndex:{type:W([Number,String]),default:100},target:{type:String,default:""},offset:{type:Number,default:0},position:{type:String,values:["top","bottom"],default:"top"}}),Jb={scroll:({scrollTop:t,fixed:n})=>be(t)&&Tt(n),[at]:t=>Tt(t)};var se=(t,n)=>{const o=t.__vccOpts||t;for(const[r,l]of n)o[r]=l;return o};const Qb="ElAffix",S8=e.defineComponent({name:Qb}),E8=e.defineComponent({...S8,props:Zb,emits:Jb,setup(t,{expose:n,emit:o}){const r=t,l=Q("affix"),a=e.shallowRef(),s=e.shallowRef(),i=e.shallowRef(),{height:c}=w_(),{height:f,width:u,top:d,bottom:p,update:h}=Rm(s,{windowScroll:!1}),g=Rm(a),m=e.ref(!1),b=e.ref(0),y=e.ref(0),C=e.computed(()=>({height:m.value?`${f.value}px`:"",width:m.value?`${u.value}px`:""})),k=e.computed(()=>{if(!m.value)return{};const S=r.offset?kt(r.offset):0;return{height:`${f.value}px`,width:`${u.value}px`,top:r.position==="top"?S:"",bottom:r.position==="bottom"?S:"",transform:y.value?`translateY(${y.value}px)`:"",zIndex:r.zIndex}}),w=()=>{if(!!i.value)if(b.value=i.value instanceof Window?document.documentElement.scrollTop:i.value.scrollTop||0,r.position==="top")if(r.target){const S=g.bottom.value-r.offset-f.value;m.value=r.offset>d.value&&g.bottom.value>0,y.value=S<0?S:0}else m.value=r.offset>d.value;else if(r.target){const S=c.value-g.top.value-r.offset-f.value;m.value=c.value-r.offsetg.top.value,y.value=S<0?-S:0}else m.value=c.value-r.offset{h(),o("scroll",{scrollTop:b.value,fixed:m.value})};return e.watch(m,S=>o("change",S)),e.onMounted(()=>{var S;r.target?(a.value=(S=document.querySelector(r.target))!=null?S:void 0,a.value||vt(Qb,`Target is not existed: ${r.target}`)):a.value=document.documentElement,i.value=Hd(s.value,!0),h()}),rt(i,"scroll",E),e.watchEffect(w),n({update:w,updateRoot:h}),(S,_)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:s,class:e.normalizeClass(e.unref(l).b()),style:e.normalizeStyle(e.unref(C))},[e.createElementVNode("div",{class:e.normalizeClass({[e.unref(l).m("fixed")]:m.value}),style:e.normalizeStyle(e.unref(k))},[e.renderSlot(S.$slots,"default")],6)],6))}});var N8=se(E8,[["__file","affix.vue"]]);const eC=Me(N8),tC=le({size:{type:W([Number,String])},color:{type:String}}),_8=e.defineComponent({name:"ElIcon",inheritAttrs:!1}),B8=e.defineComponent({..._8,props:tC,setup(t){const n=t,o=Q("icon"),r=e.computed(()=>{const{size:l,color:a}=n;return!l&&!a?{}:{fontSize:$t(l)?void 0:kt(l),"--color":a}});return(l,a)=>(e.openBlock(),e.createElementBlock("i",e.mergeProps({class:e.unref(o).b(),style:e.unref(r)},l.$attrs),[e.renderSlot(l.$slots,"default")],16))}});var $8=se(B8,[["__file","icon.vue"]]);const fe=Me($8),nC=["light","dark"],oC=le({title:{type:String,default:""},description:{type:String,default:""},type:{type:String,values:ra(Jo),default:"info"},closable:{type:Boolean,default:!0},closeText:{type:String,default:""},showIcon:Boolean,center:Boolean,effect:{type:String,values:nC,default:"light"}}),rC={close:t=>t instanceof MouseEvent},T8=e.defineComponent({name:"ElAlert"}),v8=e.defineComponent({...T8,props:oC,emits:rC,setup(t,{emit:n}){const o=t,{Close:r}=Ud,l=e.useSlots(),a=Q("alert"),s=e.ref(!0),i=e.computed(()=>Jo[o.type]),c=e.computed(()=>[a.e("icon"),{[a.is("big")]:!!o.description||!!l.default}]),f=e.computed(()=>({[a.is("bold")]:o.description||l.default})),u=d=>{s.value=!1,n("close",d)};return(d,p)=>(e.openBlock(),e.createBlock(e.Transition,{name:e.unref(a).b("fade"),persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass([e.unref(a).b(),e.unref(a).m(d.type),e.unref(a).is("center",d.center),e.unref(a).is(d.effect)]),role:"alert"},[d.showIcon&&e.unref(i)?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(c))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(i))))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("content"))},[d.title||d.$slots.title?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass([e.unref(a).e("title"),e.unref(f)])},[e.renderSlot(d.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(d.title),1)])],2)):e.createCommentVNode("v-if",!0),d.$slots.default||d.description?(e.openBlock(),e.createElementBlock("p",{key:1,class:e.normalizeClass(e.unref(a).e("description"))},[e.renderSlot(d.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(d.description),1)])],2)):e.createCommentVNode("v-if",!0),d.closable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[d.closeText?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(a).e("close-btn"),e.unref(a).is("customed")]),onClick:u},e.toDisplayString(d.closeText),3)):(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass(e.unref(a).e("close-btn")),onClick:u},{default:e.withCtx(()=>[e.createVNode(e.unref(r))]),_:1},8,["class"]))],64)):e.createCommentVNode("v-if",!0)],2)],2),[[e.vShow,s.value]])]),_:3},8,["name"]))}});var V8=se(v8,[["__file","alert.vue"]]);const lC=Me(V8),nr=Symbol("formContextKey"),Gn=Symbol("formItemContextKey"),St=(t,n={})=>{const o=e.ref(void 0),r=n.prop?o:of("size"),l=n.global?o:Gb(),a=n.form?{size:void 0}:e.inject(nr,void 0),s=n.formItem?{size:void 0}:e.inject(Gn,void 0);return e.computed(()=>r.value||e.unref(t)||(s==null?void 0:s.size)||(a==null?void 0:a.size)||l.value||"")},Yt=t=>{const n=of("disabled"),o=e.inject(nr,void 0);return e.computed(()=>n.value||e.unref(t)||(o==null?void 0:o.disabled)||!1)},M8=St,I8=Yt,Xt=()=>{const t=e.inject(nr,void 0),n=e.inject(Gn,void 0);return{form:t,formItem:n}},vo=(t,{formItemContext:n,disableIdGeneration:o,disableIdManagement:r})=>{o||(o=e.ref(!1)),r||(r=e.ref(!1));const l=e.ref();let a;const s=e.computed(()=>{var i;return!!(!t.label&&n&&n.inputIds&&((i=n.inputIds)==null?void 0:i.length)<=1)});return e.onMounted(()=>{a=e.watch([e.toRef(t,"id"),o],([i,c])=>{const f=i!=null?i:c?void 0:rn().value;f!==l.value&&(n!=null&&n.removeInputId&&(l.value&&n.removeInputId(l.value),!(r!=null&&r.value)&&!c&&f&&n.addInputId(f)),l.value=f)},{immediate:!0})}),e.onUnmounted(()=>{a&&a(),n!=null&&n.removeInputId&&l.value&&n.removeInputId(l.value)}),{isLabeledByFormItem:s,inputId:l}},P8=le({size:{type:String,values:Wn},disabled:Boolean}),aC=le({...P8,model:Object,rules:{type:W(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:[Object,Boolean]}}),sC={validate:(t,n,o)=>(Re(t)||De(t))&&Tt(n)&&De(o)};function R8(){const t=e.ref([]),n=e.computed(()=>{if(!t.value.length)return"0";const a=Math.max(...t.value);return a?`${a}px`:""});function o(a){const s=t.value.indexOf(a);return s===-1&&n.value,s}function r(a,s){if(a&&s){const i=o(s);t.value.splice(i,1,a)}else a&&t.value.push(a)}function l(a){const s=o(a);s>-1&&t.value.splice(s,1)}return{autoLabelWidth:n,registerLabelWidth:r,deregisterLabelWidth:l}}const Js=(t,n)=>{const o=Ho(n);return o.length>0?t.filter(r=>r.prop&&o.includes(r.prop)):t},O8="ElForm",A8=e.defineComponent({name:O8}),z8=e.defineComponent({...A8,props:aC,emits:sC,setup(t,{expose:n,emit:o}){const r=t,l=[],a=St(),s=Q("form"),i=e.computed(()=>{const{labelPosition:C,inline:k}=r;return[s.b(),s.m(a.value||"default"),{[s.m(`label-${C}`)]:C,[s.m("inline")]:k}]}),c=C=>{l.push(C)},f=C=>{C.prop&&l.splice(l.indexOf(C),1)},u=(C=[])=>{!r.model||Js(l,C).forEach(k=>k.resetField())},d=(C=[])=>{Js(l,C).forEach(k=>k.clearValidate())},p=e.computed(()=>!!r.model),h=C=>{if(l.length===0)return[];const k=Js(l,C);return k.length?k:[]},g=async C=>b(void 0,C),m=async(C=[])=>{if(!p.value)return!1;const k=h(C);if(k.length===0)return!0;let w={};for(const E of k)try{await E.validate("")}catch(S){w={...w,...S}}return Object.keys(w).length===0?!0:Promise.reject(w)},b=async(C=[],k)=>{const w=!qe(k);try{const E=await m(C);return E===!0&&(k==null||k(E)),E}catch(E){if(E instanceof Error)throw E;const S=E;return r.scrollToError&&y(Object.keys(S)[0]),k==null||k(!1,S),w&&Promise.reject(S)}},y=C=>{var k;const w=Js(l,C)[0];w&&((k=w.$el)==null||k.scrollIntoView(r.scrollIntoViewOptions))};return e.watch(()=>r.rules,()=>{r.validateOnRuleChange&&g().catch(C=>void 0)},{deep:!0}),e.provide(nr,e.reactive({...e.toRefs(r),emit:o,resetFields:u,clearValidate:d,validateField:b,addField:c,removeField:f,...R8()})),n({validate:g,validateField:b,resetFields:u,clearValidate:d,scrollToField:y}),(C,k)=>(e.openBlock(),e.createElementBlock("form",{class:e.normalizeClass(e.unref(i))},[e.renderSlot(C.$slots,"default")],2))}});var D8=se(z8,[["__file","form.vue"]]);function vr(){return vr=Object.assign?Object.assign.bind():function(t){for(var n=1;n1?n-1:0),r=1;r=a)return i;switch(i){case"%s":return String(o[l++]);case"%d":return Number(o[l++]);case"%j":try{return JSON.stringify(o[l++])}catch(c){return"[Circular]"}break;default:return i}});return s}return t}function W8(t){return t==="string"||t==="url"||t==="hex"||t==="email"||t==="date"||t==="pattern"}function It(t,n){return!!(t==null||n==="array"&&Array.isArray(t)&&!t.length||W8(n)&&typeof t=="string"&&!t)}function j8(t,n,o){var r=[],l=0,a=t.length;function s(i){r.push.apply(r,i||[]),l++,l===a&&o(r)}t.forEach(function(i){n(i,s)})}function iC(t,n,o){var r=0,l=t.length;function a(s){if(s&&s.length){o(s);return}var i=r;r=r+1,i()\[\]\\.,;:\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},ba={integer:function(n){return ba.number(n)&&parseInt(n,10)===n},float:function(n){return ba.number(n)&&!ba.integer(n)},array:function(n){return Array.isArray(n)},regexp:function(n){if(n instanceof RegExp)return!0;try{return!!new RegExp(n)}catch(o){return!1}},date:function(n){return typeof n.getTime=="function"&&typeof n.getMonth=="function"&&typeof n.getYear=="function"&&!isNaN(n.getTime())},number:function(n){return isNaN(n)?!1:typeof n=="number"},object:function(n){return typeof n=="object"&&!ba.array(n)},method:function(n){return typeof n=="function"},email:function(n){return typeof n=="string"&&n.length<=320&&!!n.match(pC.email)},url:function(n){return typeof n=="string"&&n.length<=2048&&!!n.match(Z8())},hex:function(n){return typeof n=="string"&&!!n.match(pC.hex)}},J8=function(n,o,r,l,a){if(n.required&&o===void 0){uC(n,o,r,l,a);return}var s=["integer","float","array","regexp","object","method","email","number","date","url","hex"],i=n.type;s.indexOf(i)>-1?ba[i](o)||l.push(kn(a.messages.types[i],n.fullField,n.type)):i&&typeof o!==n.type&&l.push(kn(a.messages.types[i],n.fullField,n.type))},Q8=function(n,o,r,l,a){var s=typeof n.len=="number",i=typeof n.min=="number",c=typeof n.max=="number",f=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=o,d=null,p=typeof o=="number",h=typeof o=="string",g=Array.isArray(o);if(p?d="number":h?d="string":g&&(d="array"),!d)return!1;g&&(u=o.length),h&&(u=o.replace(f,"_").length),s?u!==n.len&&l.push(kn(a.messages[d].len,n.fullField,n.len)):i&&!c&&un.max?l.push(kn(a.messages[d].max,n.fullField,n.max)):i&&c&&(un.max)&&l.push(kn(a.messages[d].range,n.fullField,n.min,n.max))},hl="enum",e6=function(n,o,r,l,a){n[hl]=Array.isArray(n[hl])?n[hl]:[],n[hl].indexOf(o)===-1&&l.push(kn(a.messages[hl],n.fullField,n[hl].join(", ")))},t6=function(n,o,r,l,a){if(n.pattern){if(n.pattern instanceof RegExp)n.pattern.lastIndex=0,n.pattern.test(o)||l.push(kn(a.messages.pattern.mismatch,n.fullField,o,n.pattern));else if(typeof n.pattern=="string"){var s=new RegExp(n.pattern);s.test(o)||l.push(kn(a.messages.pattern.mismatch,n.fullField,o,n.pattern))}}},tt={required:uC,whitespace:X8,type:J8,range:Q8,enum:e6,pattern:t6},n6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o,"string")&&!n.required)return r();tt.required(n,o,l,s,a,"string"),It(o,"string")||(tt.type(n,o,l,s,a),tt.range(n,o,l,s,a),tt.pattern(n,o,l,s,a),n.whitespace===!0&&tt.whitespace(n,o,l,s,a))}r(s)},o6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&tt.type(n,o,l,s,a)}r(s)},r6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(o===""&&(o=void 0),It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&(tt.type(n,o,l,s,a),tt.range(n,o,l,s,a))}r(s)},l6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&tt.type(n,o,l,s,a)}r(s)},a6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),It(o)||tt.type(n,o,l,s,a)}r(s)},s6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&(tt.type(n,o,l,s,a),tt.range(n,o,l,s,a))}r(s)},i6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&(tt.type(n,o,l,s,a),tt.range(n,o,l,s,a))}r(s)},c6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(o==null&&!n.required)return r();tt.required(n,o,l,s,a,"array"),o!=null&&(tt.type(n,o,l,s,a),tt.range(n,o,l,s,a))}r(s)},d6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&tt.type(n,o,l,s,a)}r(s)},f6="enum",u6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&tt[f6](n,o,l,s,a)}r(s)},p6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o,"string")&&!n.required)return r();tt.required(n,o,l,s,a),It(o,"string")||tt.pattern(n,o,l,s,a)}r(s)},m6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o,"date")&&!n.required)return r();if(tt.required(n,o,l,s,a),!It(o,"date")){var c;o instanceof Date?c=o:c=new Date(o),tt.type(n,c,l,s,a),c&&tt.range(n,c.getTime(),l,s,a)}}r(s)},h6=function(n,o,r,l,a){var s=[],i=Array.isArray(o)?"array":typeof o;tt.required(n,o,l,s,a,i),r(s)},Mf=function(n,o,r,l,a){var s=n.type,i=[],c=n.required||!n.required&&l.hasOwnProperty(n.field);if(c){if(It(o,s)&&!n.required)return r();tt.required(n,o,l,i,a,s),It(o,s)||tt.type(n,o,l,i,a)}r(i)},g6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a)}r(s)},Ca={string:n6,method:o6,number:r6,boolean:l6,regexp:a6,integer:s6,float:i6,array:c6,object:d6,enum:u6,pattern:p6,date:m6,url:Mf,hex:Mf,email:Mf,required:h6,any:g6};function If(){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 n=JSON.parse(JSON.stringify(this));return n.clone=this.clone,n}}}var Pf=If(),wa=function(){function t(o){this.rules=null,this._messages=Pf,this.define(o)}var n=t.prototype;return n.define=function(r){var l=this;if(!r)throw new Error("Cannot configure a schema with no rules");if(typeof r!="object"||Array.isArray(r))throw new Error("Rules must be an object");this.rules={},Object.keys(r).forEach(function(a){var s=r[a];l.rules[a]=Array.isArray(s)?s:[s]})},n.messages=function(r){return r&&(this._messages=fC(If(),r)),this._messages},n.validate=function(r,l,a){var s=this;l===void 0&&(l={}),a===void 0&&(a=function(){});var i=r,c=l,f=a;if(typeof c=="function"&&(f=c,c={}),!this.rules||Object.keys(this.rules).length===0)return f&&f(null,i),Promise.resolve(i);function u(m){var b=[],y={};function C(w){if(Array.isArray(w)){var E;b=(E=b).concat.apply(E,w)}else b.push(w)}for(var k=0;k");const l=Q("form"),a=e.ref(),s=e.ref(0),i=()=>{var u;if((u=a.value)!=null&&u.firstElementChild){const d=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(d))}else return 0},c=(u="update")=>{e.nextTick(()=>{n.default&&t.isAutoWidth&&(u==="update"?s.value=i():u==="remove"&&(o==null||o.deregisterLabelWidth(s.value)))})},f=()=>c("update");return e.onMounted(()=>{f()}),e.onBeforeUnmount(()=>{c("remove")}),e.onUpdated(()=>f()),e.watch(s,(u,d)=>{t.updateAll&&(o==null||o.registerLabelWidth(u,d))}),jt(e.computed(()=>{var u,d;return(d=(u=a.value)==null?void 0:u.firstElementChild)!=null?d:null}),f),()=>{var u,d;if(!n)return null;const{isAutoWidth:p}=t;if(p){const h=o==null?void 0:o.autoLabelWidth,g=r==null?void 0:r.hasLabel,m={};if(g&&h&&h!=="auto"){const b=Math.max(0,Number.parseInt(h,10)-s.value),y=o.labelPosition==="left"?"marginRight":"marginLeft";b&&(m[y]=`${b}px`)}return e.createVNode("div",{ref:a,class:[l.be("item","label-wrap")],style:m},[(u=n.default)==null?void 0:u.call(n)])}else return e.createVNode(e.Fragment,{ref:a},[(d=n.default)==null?void 0:d.call(n)])}}});const b6=["role","aria-labelledby"],C6=e.defineComponent({name:"ElFormItem"}),w6=e.defineComponent({...C6,props:hC,setup(t,{expose:n}){const o=t,r=e.useSlots(),l=e.inject(nr,void 0),a=e.inject(Gn,void 0),s=St(void 0,{formItem:!1}),i=Q("form-item"),c=rn().value,f=e.ref([]),u=e.ref(""),d=o_(u,100),p=e.ref(""),h=e.ref();let g,m=!1;const b=e.computed(()=>{if((l==null?void 0:l.labelPosition)==="top")return{};const Z=kt(o.labelWidth||(l==null?void 0:l.labelWidth)||"");return Z?{width:Z}:{}}),y=e.computed(()=>{if((l==null?void 0:l.labelPosition)==="top"||(l==null?void 0:l.inline))return{};if(!o.label&&!o.labelWidth&&M)return{};const Z=kt(o.labelWidth||(l==null?void 0:l.labelWidth)||"");return!o.label&&!r.label?{marginLeft:Z}:{}}),C=e.computed(()=>[i.b(),i.m(s.value),i.is("error",u.value==="error"),i.is("validating",u.value==="validating"),i.is("success",u.value==="success"),i.is("required",O.value||o.required),i.is("no-asterisk",l==null?void 0:l.hideRequiredAsterisk),(l==null?void 0:l.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[i.m("feedback")]:l==null?void 0:l.statusIcon}]),k=e.computed(()=>Tt(o.inlineMessage)?o.inlineMessage:(l==null?void 0:l.inlineMessage)||!1),w=e.computed(()=>[i.e("error"),{[i.em("error","inline")]:k.value}]),E=e.computed(()=>o.prop?De(o.prop)?o.prop:o.prop.join("."):""),S=e.computed(()=>!!(o.label||r.label)),_=e.computed(()=>o.for||(f.value.length===1?f.value[0]:void 0)),B=e.computed(()=>!_.value&&S.value),M=!!a,P=e.computed(()=>{const Z=l==null?void 0:l.model;if(!(!Z||!o.prop))return Bs(Z,o.prop).value}),T=e.computed(()=>{const{required:Z}=o,U=[];o.rules&&U.push(...Ho(o.rules));const re=l==null?void 0:l.rules;if(re&&o.prop){const te=Bs(re,o.prop).value;te&&U.push(...Ho(te))}if(Z!==void 0){const te=U.map((oe,ie)=>[oe,ie]).filter(([oe])=>Object.keys(oe).includes("required"));if(te.length>0)for(const[oe,ie]of te)oe.required!==Z&&(U[ie]={...oe,required:Z});else U.push({required:Z})}return U}),I=e.computed(()=>T.value.length>0),v=Z=>T.value.filter(re=>!re.trigger||!Z?!0:Array.isArray(re.trigger)?re.trigger.includes(Z):re.trigger===Z).map(({trigger:re,...te})=>te),O=e.computed(()=>T.value.some(Z=>Z.required)),D=e.computed(()=>{var Z;return d.value==="error"&&o.showMessage&&((Z=l==null?void 0:l.showMessage)!=null?Z:!0)}),z=e.computed(()=>`${o.label||""}${(l==null?void 0:l.labelSuffix)||""}`),$=Z=>{u.value=Z},R=Z=>{var U,re;const{errors:te,fields:oe}=Z;(!te||!oe)&&console.error(Z),$("error"),p.value=te?(re=(U=te==null?void 0:te[0])==null?void 0:U.message)!=null?re:`${o.prop} is required`:"",l==null||l.emit("validate",o.prop,!1,p.value)},N=()=>{$("success"),l==null||l.emit("validate",o.prop,!0,"")},A=async Z=>{const U=E.value;return new wa({[U]:Z}).validate({[U]:P.value},{firstFields:!0}).then(()=>(N(),!0)).catch(te=>(R(te),Promise.reject(te)))},x=async(Z,U)=>{if(m||!o.prop)return!1;const re=qe(U);if(!I.value)return U==null||U(!1),!1;const te=v(Z);return te.length===0?(U==null||U(!0),!0):($("validating"),A(te).then(()=>(U==null||U(!0),!0)).catch(oe=>{const{fields:ie}=oe;return U==null||U(!1,ie),re?!1:Promise.reject(ie)}))},H=()=>{$(""),p.value="",m=!1},K=async()=>{const Z=l==null?void 0:l.model;if(!Z||!o.prop)return;const U=Bs(Z,o.prop);m=!0,U.value=Qc(g),await e.nextTick(),H(),m=!1},q=Z=>{f.value.includes(Z)||f.value.push(Z)},ne=Z=>{f.value=f.value.filter(U=>U!==Z)};e.watch(()=>o.error,Z=>{p.value=Z||"",$(Z?"error":"")},{immediate:!0}),e.watch(()=>o.validateStatus,Z=>$(Z||""));const Y=e.reactive({...e.toRefs(o),$el:h,size:s,validateState:u,labelId:c,inputIds:f,isGroup:B,hasLabel:S,addInputId:q,removeInputId:ne,resetField:K,clearValidate:H,validate:x});return e.provide(Gn,Y),e.onMounted(()=>{o.prop&&(l==null||l.addField(Y),g=Qc(P.value))}),e.onBeforeUnmount(()=>{l==null||l.removeField(Y)}),n({size:s,validateMessage:p,validateState:u,validate:x,clearValidate:H,resetField:K}),(Z,U)=>{var re;return e.openBlock(),e.createElementBlock("div",{ref_key:"formItemRef",ref:h,class:e.normalizeClass(e.unref(C)),role:e.unref(B)?"group":void 0,"aria-labelledby":e.unref(B)?e.unref(c):void 0},[e.createVNode(e.unref(y6),{"is-auto-width":e.unref(b).width==="auto","update-all":((re=e.unref(l))==null?void 0:re.labelWidth)==="auto"},{default:e.withCtx(()=>[e.unref(S)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(_)?"label":"div"),{key:0,id:e.unref(c),for:e.unref(_),class:e.normalizeClass(e.unref(i).e("label")),style:e.normalizeStyle(e.unref(b))},{default:e.withCtx(()=>[e.renderSlot(Z.$slots,"label",{label:e.unref(z)},()=>[e.createTextVNode(e.toDisplayString(e.unref(z)),1)])]),_:3},8,["id","for","class","style"])):e.createCommentVNode("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),e.createElementVNode("div",{class:e.normalizeClass(e.unref(i).e("content")),style:e.normalizeStyle(e.unref(y))},[e.renderSlot(Z.$slots,"default"),e.createVNode(e.TransitionGroup,{name:`${e.unref(i).namespace.value}-zoom-in-top`},{default:e.withCtx(()=>[e.unref(D)?e.renderSlot(Z.$slots,"error",{key:0,error:p.value},()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(w))},e.toDisplayString(p.value),3)]):e.createCommentVNode("v-if",!0)]),_:3},8,["name"])],6)],10,b6)}}});var yC=se(w6,[["__file","form-item.vue"]]);const bC=Me(D8,{FormItem:yC}),CC=ht(yC);let qn;const k6=` + height:0 !important; + visibility:hidden !important; + ${Lm()?"":"overflow:hidden !important;"} + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important; +`,S6=["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"];function E6(t){const n=window.getComputedStyle(t),o=n.getPropertyValue("box-sizing"),r=Number.parseFloat(n.getPropertyValue("padding-bottom"))+Number.parseFloat(n.getPropertyValue("padding-top")),l=Number.parseFloat(n.getPropertyValue("border-bottom-width"))+Number.parseFloat(n.getPropertyValue("border-top-width"));return{contextStyle:S6.map(s=>`${s}:${n.getPropertyValue(s)}`).join(";"),paddingSize:r,borderSize:l,boxSizing:o}}function wC(t,n=1,o){var r;qn||(qn=document.createElement("textarea"),document.body.appendChild(qn));const{paddingSize:l,borderSize:a,boxSizing:s,contextStyle:i}=E6(t);qn.setAttribute("style",`${i};${k6}`),qn.value=t.value||t.placeholder||"";let c=qn.scrollHeight;const f={};s==="border-box"?c=c+a:s==="content-box"&&(c=c-l),qn.value="";const u=qn.scrollHeight-l;if(be(n)){let d=u*n;s==="border-box"&&(d=d+l+a),c=Math.max(d,c),f.minHeight=`${d}px`}if(be(o)){let d=u*o;s==="border-box"&&(d=d+l+a),c=Math.min(d,c)}return f.height=`${c}px`,(r=qn.parentNode)==null||r.removeChild(qn),qn=void 0,f}const kC=le({id:{type:String,default:void 0},size:Vt,disabled:Boolean,modelValue:{type:W([String,Number,Object]),default:""},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:W([Boolean,Object]),default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:ot},prefixIcon:{type:ot},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:W([Object,Array,String]),default:()=>ut({})},autofocus:{type:Boolean,default:!1}}),SC={[Ie]:t=>De(t),input:t=>De(t),change:t=>De(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,clear:()=>!0,mouseleave:t=>t instanceof MouseEvent,mouseenter:t=>t instanceof MouseEvent,keydown:t=>t instanceof Event,compositionstart:t=>t instanceof CompositionEvent,compositionupdate:t=>t instanceof CompositionEvent,compositionend:t=>t instanceof CompositionEvent},N6=["role"],_6=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus"],B6=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus"],$6=e.defineComponent({name:"ElInput",inheritAttrs:!1}),T6=e.defineComponent({...$6,props:kC,emits:SC,setup(t,{expose:n,emit:o}){const r=t,l=e.useAttrs(),a=e.useSlots(),s=e.computed(()=>{const ce={};return r.containerRole==="combobox"&&(ce["aria-haspopup"]=l["aria-haspopup"],ce["aria-owns"]=l["aria-owns"],ce["aria-expanded"]=l["aria-expanded"]),ce}),i=e.computed(()=>[r.type==="textarea"?b.b():m.b(),m.m(h.value),m.is("disabled",g.value),m.is("exceed",q.value),{[m.b("group")]:a.prepend||a.append,[m.bm("group","append")]:a.append,[m.bm("group","prepend")]:a.prepend,[m.m("prefix")]:a.prefix||r.prefixIcon,[m.m("suffix")]:a.suffix||r.suffixIcon||r.clearable||r.showPassword,[m.bm("suffix","password-clear")]:A.value&&x.value},l.class]),c=e.computed(()=>[m.e("wrapper"),m.is("focus",P.value)]),f=As({excludeKeys:e.computed(()=>Object.keys(s.value))}),{form:u,formItem:d}=Xt(),{inputId:p}=vo(r,{formItemContext:d}),h=St(),g=Yt(),m=Q("input"),b=Q("textarea"),y=e.shallowRef(),C=e.shallowRef(),k=e.ref(!1),w=e.ref(!1),E=e.ref(!1),S=e.ref(),_=e.shallowRef(r.inputStyle),B=e.computed(()=>y.value||C.value),{wrapperRef:M,isFocused:P,handleFocus:T,handleBlur:I}=Bf(B,{afterBlur(){var ce;r.validateEvent&&((ce=d==null?void 0:d.validate)==null||ce.call(d,"blur").catch(Ee=>void 0))}}),v=e.computed(()=>{var ce;return(ce=u==null?void 0:u.statusIcon)!=null?ce:!1}),O=e.computed(()=>(d==null?void 0:d.validateState)||""),D=e.computed(()=>O.value&&Gd[O.value]),z=e.computed(()=>E.value?QD:ED),$=e.computed(()=>[l.style,r.inputStyle]),R=e.computed(()=>[r.inputStyle,_.value,{resize:r.resize}]),N=e.computed(()=>wt(r.modelValue)?"":String(r.modelValue)),A=e.computed(()=>r.clearable&&!g.value&&!r.readonly&&!!N.value&&(P.value||k.value)),x=e.computed(()=>r.showPassword&&!g.value&&!r.readonly&&!!N.value&&(!!N.value||P.value)),H=e.computed(()=>r.showWordLimit&&!!f.value.maxlength&&(r.type==="text"||r.type==="textarea")&&!g.value&&!r.readonly&&!r.showPassword),K=e.computed(()=>N.value.length),q=e.computed(()=>!!H.value&&K.value>Number(f.value.maxlength)),ne=e.computed(()=>!!a.suffix||!!r.suffixIcon||A.value||r.showPassword||H.value||!!O.value&&v.value),[Y,Z]=Ub(y);jt(C,ce=>{if(te(),!H.value||r.resize!=="both")return;const Ee=ce[0],{width:Le}=Ee.contentRect;S.value={right:`calc(100% - ${Le+15+6}px)`}});const U=()=>{const{type:ce,autosize:Ee}=r;if(!(!He||ce!=="textarea"||!C.value))if(Ee){const Le=nt(Ee)?Ee.minRows:void 0,Xe=nt(Ee)?Ee.maxRows:void 0,Qe=wC(C.value,Le,Xe);_.value={overflowY:"hidden",...Qe},e.nextTick(()=>{C.value.offsetHeight,_.value=Qe})}else _.value={minHeight:wC(C.value).minHeight}},te=(ce=>{let Ee=!1;return()=>{var Le;if(Ee||!r.autosize)return;((Le=C.value)==null?void 0:Le.offsetParent)===null||(ce(),Ee=!0)}})(U),oe=()=>{const ce=B.value,Ee=r.formatter?r.formatter(N.value):N.value;!ce||ce.value===Ee||(ce.value=Ee)},ie=async ce=>{Y();let{value:Ee}=ce.target;if(r.formatter&&(Ee=r.parser?r.parser(Ee):Ee),!w.value){if(Ee===N.value){oe();return}o(Ie,Ee),o("input",Ee),await e.nextTick(),oe(),Z()}},ye=ce=>{o("change",ce.target.value)},Ne=ce=>{o("compositionstart",ce),w.value=!0},Te=ce=>{var Ee;o("compositionupdate",ce);const Le=(Ee=ce.target)==null?void 0:Ee.value,Xe=Le[Le.length-1]||"";w.value=!Ps(Xe)},Pe=ce=>{o("compositionend",ce),w.value&&(w.value=!1,ie(ce))},he=()=>{E.value=!E.value,Ce()},Ce=async()=>{var ce;await e.nextTick(),(ce=B.value)==null||ce.focus()},ge=()=>{var ce;return(ce=B.value)==null?void 0:ce.blur()},me=ce=>{k.value=!1,o("mouseleave",ce)},_e=ce=>{k.value=!0,o("mouseenter",ce)},$e=ce=>{o("keydown",ce)},Ae=()=>{var ce;(ce=B.value)==null||ce.select()},Oe=()=>{o(Ie,""),o("change",""),o("clear"),o("input","")};return e.watch(()=>r.modelValue,()=>{var ce;e.nextTick(()=>U()),r.validateEvent&&((ce=d==null?void 0:d.validate)==null||ce.call(d,"change").catch(Ee=>void 0))}),e.watch(N,()=>oe()),e.watch(()=>r.type,async()=>{await e.nextTick(),oe(),U()}),e.onMounted(()=>{!r.formatter&&r.parser,oe(),e.nextTick(U)}),n({input:y,textarea:C,ref:B,textareaStyle:R,autosize:e.toRef(r,"autosize"),focus:Ce,blur:ge,select:Ae,clear:Oe,resizeTextarea:U}),(ce,Ee)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",e.mergeProps(e.unref(s),{class:e.unref(i),style:e.unref($),role:ce.containerRole,onMouseenter:_e,onMouseleave:me}),[e.createCommentVNode(" input "),ce.type!=="textarea"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createCommentVNode(" prepend slot "),ce.$slots.prepend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(m).be("group","prepend"))},[e.renderSlot(ce.$slots,"prepend")],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{ref_key:"wrapperRef",ref:M,class:e.normalizeClass(e.unref(c))},[e.createCommentVNode(" prefix slot "),ce.$slots.prefix||ce.prefixIcon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(m).e("prefix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(m).e("prefix-inner"))},[e.renderSlot(ce.$slots,"prefix"),ce.prefixIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(m).e("icon"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(ce.prefixIcon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],2)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(p),ref_key:"input",ref:y,class:e.unref(m).e("inner")},e.unref(f),{type:ce.showPassword?E.value?"text":"password":ce.type,disabled:e.unref(g),formatter:ce.formatter,parser:ce.parser,readonly:ce.readonly,autocomplete:ce.autocomplete,tabindex:ce.tabindex,"aria-label":ce.label,placeholder:ce.placeholder,style:ce.inputStyle,form:r.form,autofocus:r.autofocus,onCompositionstart:Ne,onCompositionupdate:Te,onCompositionend:Pe,onInput:ie,onFocus:Ee[0]||(Ee[0]=(...Le)=>e.unref(T)&&e.unref(T)(...Le)),onBlur:Ee[1]||(Ee[1]=(...Le)=>e.unref(I)&&e.unref(I)(...Le)),onChange:ye,onKeydown:$e}),null,16,_6),e.createCommentVNode(" suffix slot "),e.unref(ne)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(m).e("suffix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(m).e("suffix-inner"))},[!e.unref(A)||!e.unref(x)||!e.unref(H)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(ce.$slots,"suffix"),ce.suffixIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(m).e("icon"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(ce.suffixIcon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],64)):e.createCommentVNode("v-if",!0),e.unref(A)?(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass([e.unref(m).e("icon"),e.unref(m).e("clear")]),onMousedown:e.withModifiers(e.unref(st),["prevent"]),onClick:Oe},{default:e.withCtx(()=>[e.createVNode(e.unref(Xo))]),_:1},8,["class","onMousedown"])):e.createCommentVNode("v-if",!0),e.unref(x)?(e.openBlock(),e.createBlock(e.unref(fe),{key:2,class:e.normalizeClass([e.unref(m).e("icon"),e.unref(m).e("password")]),onClick:he},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(z))))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.unref(H)?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(e.unref(m).e("count"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(m).e("count-inner"))},e.toDisplayString(e.unref(K))+" / "+e.toDisplayString(e.unref(f).maxlength),3)],2)):e.createCommentVNode("v-if",!0),e.unref(O)&&e.unref(D)&&e.unref(v)?(e.openBlock(),e.createBlock(e.unref(fe),{key:4,class:e.normalizeClass([e.unref(m).e("icon"),e.unref(m).e("validateIcon"),e.unref(m).is("loading",e.unref(O)==="validating")])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(D))))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],2)],2)):e.createCommentVNode("v-if",!0)],2),e.createCommentVNode(" append slot "),ce.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(m).be("group","append"))},[e.renderSlot(ce.$slots,"append")],2)):e.createCommentVNode("v-if",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" textarea "),e.createElementVNode("textarea",e.mergeProps({id:e.unref(p),ref_key:"textarea",ref:C,class:e.unref(b).e("inner")},e.unref(f),{tabindex:ce.tabindex,disabled:e.unref(g),readonly:ce.readonly,autocomplete:ce.autocomplete,style:e.unref(R),"aria-label":ce.label,placeholder:ce.placeholder,form:r.form,autofocus:r.autofocus,onCompositionstart:Ne,onCompositionupdate:Te,onCompositionend:Pe,onInput:ie,onFocus:Ee[2]||(Ee[2]=(...Le)=>e.unref(T)&&e.unref(T)(...Le)),onBlur:Ee[3]||(Ee[3]=(...Le)=>e.unref(I)&&e.unref(I)(...Le)),onChange:ye,onKeydown:$e}),null,16,B6),e.unref(H)?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle(S.value),class:e.normalizeClass(e.unref(m).e("count"))},e.toDisplayString(e.unref(K))+" / "+e.toDisplayString(e.unref(f).maxlength),7)):e.createCommentVNode("v-if",!0)],64))],16,N6)),[[e.vShow,ce.type!=="hidden"]])}});var v6=se(T6,[["__file","input.vue"]]);const Ft=Me(v6),Vr=4,Rf={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"}},EC=({move:t,size:n,bar:o})=>({[o.size]:n,transform:`translate${o.axis}(${t}%)`}),Of=Symbol("scrollbarContextKey"),NC=le({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),V6="Thumb";var _C=se(e.defineComponent({__name:"thumb",props:NC,setup(t){const n=t,o=e.inject(Of),r=Q("scrollbar");o||vt(V6,"can not inject scrollbar context");const l=e.ref(),a=e.ref(),s=e.ref({}),i=e.ref(!1);let c=!1,f=!1,u=He?document.onselectstart:null;const d=e.computed(()=>Rf[n.vertical?"vertical":"horizontal"]),p=e.computed(()=>EC({size:n.size,move:n.move,bar:d.value})),h=e.computed(()=>l.value[d.value.offset]**2/o.wrapElement[d.value.scrollSize]/n.ratio/a.value[d.value.offset]),g=S=>{var _;if(S.stopPropagation(),S.ctrlKey||[1,2].includes(S.button))return;(_=window.getSelection())==null||_.removeAllRanges(),b(S);const B=S.currentTarget;!B||(s.value[d.value.axis]=B[d.value.offset]-(S[d.value.client]-B.getBoundingClientRect()[d.value.direction]))},m=S=>{if(!a.value||!l.value||!o.wrapElement)return;const _=Math.abs(S.target.getBoundingClientRect()[d.value.direction]-S[d.value.client]),B=a.value[d.value.offset]/2,M=(_-B)*100*h.value/l.value[d.value.offset];o.wrapElement[d.value.scroll]=M*o.wrapElement[d.value.scrollSize]/100},b=S=>{S.stopImmediatePropagation(),c=!0,document.addEventListener("mousemove",y),document.addEventListener("mouseup",C),u=document.onselectstart,document.onselectstart=()=>!1},y=S=>{if(!l.value||!a.value||c===!1)return;const _=s.value[d.value.axis];if(!_)return;const B=(l.value.getBoundingClientRect()[d.value.direction]-S[d.value.client])*-1,M=a.value[d.value.offset]-_,P=(B-M)*100*h.value/l.value[d.value.offset];o.wrapElement[d.value.scroll]=P*o.wrapElement[d.value.scrollSize]/100},C=()=>{c=!1,s.value[d.value.axis]=0,document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",C),E(),f&&(i.value=!1)},k=()=>{f=!1,i.value=!!n.size},w=()=>{f=!0,i.value=c};e.onBeforeUnmount(()=>{E(),document.removeEventListener("mouseup",C)});const E=()=>{document.onselectstart!==u&&(document.onselectstart=u)};return rt(e.toRef(o,"scrollbarElement"),"mousemove",k),rt(e.toRef(o,"scrollbarElement"),"mouseleave",w),(S,_)=>(e.openBlock(),e.createBlock(e.Transition,{name:e.unref(r).b("fade"),persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"instance",ref:l,class:e.normalizeClass([e.unref(r).e("bar"),e.unref(r).is(e.unref(d).key)]),onMousedown:m},[e.createElementVNode("div",{ref_key:"thumb",ref:a,class:e.normalizeClass(e.unref(r).e("thumb")),style:e.normalizeStyle(e.unref(p)),onMousedown:g},null,38)],34),[[e.vShow,S.always||i.value]])]),_:1},8,["name"]))}}),[["__file","thumb.vue"]]);const M6=le({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}});var I6=se(e.defineComponent({__name:"bar",props:M6,setup(t,{expose:n}){const o=t,r=e.ref(0),l=e.ref(0);return n({handleScroll:s=>{if(s){const i=s.offsetHeight-Vr,c=s.offsetWidth-Vr;l.value=s.scrollTop*100/i*o.ratioY,r.value=s.scrollLeft*100/c*o.ratioX}}}),(s,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(_C,{move:r.value,ratio:s.ratioX,size:s.width,always:s.always},null,8,["move","ratio","size","always"]),e.createVNode(_C,{move:l.value,ratio:s.ratioY,size:s.height,vertical:"",always:s.always},null,8,["move","ratio","size","always"])],64))}}),[["__file","bar.vue"]]);const BC=le({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:W([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},id:String,role:String,ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical"]}}),$C={scroll:({scrollTop:t,scrollLeft:n})=>[t,n].every(be)},P6="ElScrollbar",R6=e.defineComponent({name:P6}),O6=e.defineComponent({...R6,props:BC,emits:$C,setup(t,{expose:n,emit:o}){const r=t,l=Q("scrollbar");let a,s;const i=e.ref(),c=e.ref(),f=e.ref(),u=e.ref("0"),d=e.ref("0"),p=e.ref(),h=e.ref(1),g=e.ref(1),m=e.computed(()=>{const _={};return r.height&&(_.height=kt(r.height)),r.maxHeight&&(_.maxHeight=kt(r.maxHeight)),[r.wrapStyle,_]}),b=e.computed(()=>[r.wrapClass,l.e("wrap"),{[l.em("wrap","hidden-default")]:!r.native}]),y=e.computed(()=>[l.e("view"),r.viewClass]),C=()=>{var _;c.value&&((_=p.value)==null||_.handleScroll(c.value),o("scroll",{scrollTop:c.value.scrollTop,scrollLeft:c.value.scrollLeft}))};function k(_,B){nt(_)?c.value.scrollTo(_):be(_)&&be(B)&&c.value.scrollTo(_,B)}const w=_=>{!be(_)||(c.value.scrollTop=_)},E=_=>{!be(_)||(c.value.scrollLeft=_)},S=()=>{if(!c.value)return;const _=c.value.offsetHeight-Vr,B=c.value.offsetWidth-Vr,M=_**2/c.value.scrollHeight,P=B**2/c.value.scrollWidth,T=Math.max(M,r.minSize),I=Math.max(P,r.minSize);h.value=M/(_-M)/(T/(_-T)),g.value=P/(B-P)/(I/(B-I)),d.value=T+Vr<_?`${T}px`:"",u.value=I+Vrr.noresize,_=>{_?(a==null||a(),s==null||s()):({stop:a}=jt(f,S),s=rt("resize",S))},{immediate:!0}),e.watch(()=>[r.maxHeight,r.height],()=>{r.native||e.nextTick(()=>{var _;S(),c.value&&((_=p.value)==null||_.handleScroll(c.value))})}),e.provide(Of,e.reactive({scrollbarElement:i,wrapElement:c})),e.onMounted(()=>{r.native||e.nextTick(()=>{S()})}),e.onUpdated(()=>S()),n({wrapRef:c,update:S,scrollTo:k,setScrollTop:w,setScrollLeft:E,handleScroll:C}),(_,B)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"scrollbarRef",ref:i,class:e.normalizeClass(e.unref(l).b())},[e.createElementVNode("div",{ref_key:"wrapRef",ref:c,class:e.normalizeClass(e.unref(b)),style:e.normalizeStyle(e.unref(m)),onScroll:C},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(_.tag),{id:_.id,ref_key:"resizeRef",ref:f,class:e.normalizeClass(e.unref(y)),style:e.normalizeStyle(_.viewStyle),role:_.role,"aria-label":_.ariaLabel,"aria-orientation":_.ariaOrientation},{default:e.withCtx(()=>[e.renderSlot(_.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],38),_.native?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(I6,{key:0,ref_key:"barRef",ref:p,height:d.value,width:u.value,always:_.always,"ratio-x":g.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var A6=se(O6,[["__file","scrollbar.vue"]]);const mo=Me(A6),ti=Symbol("popper"),Af=Symbol("popperContent"),z6={LIGHT:"light",DARK:"dark"},TC=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],ni=le({role:{type:String,values:TC,default:"tooltip"}}),D6=ni,L6=e.defineComponent({name:"ElPopper",inheritAttrs:!1}),x6=e.defineComponent({...L6,props:ni,setup(t,{expose:n}){const o=t,r=e.ref(),l=e.ref(),a=e.ref(),s=e.ref(),i=e.computed(()=>o.role),c={triggerRef:r,popperInstanceRef:l,contentRef:a,referenceRef:s,role:i};return n(c),e.provide(ti,c),(f,u)=>e.renderSlot(f.$slots,"default")}});var F6=se(x6,[["__file","popper.vue"]]);const oi=le({arrowOffset:{type:Number,default:5}}),H6=oi,K6=e.defineComponent({name:"ElPopperArrow",inheritAttrs:!1}),W6=e.defineComponent({...K6,props:oi,setup(t,{expose:n}){const o=t,r=Q("popper"),{arrowOffset:l,arrowRef:a,arrowStyle:s}=e.inject(Af,void 0);return e.watch(()=>o.arrowOffset,i=>{l.value=i}),e.onBeforeUnmount(()=>{a.value=void 0}),n({arrowRef:a}),(i,c)=>(e.openBlock(),e.createElementBlock("span",{ref_key:"arrowRef",ref:a,class:e.normalizeClass(e.unref(r).e("arrow")),style:e.normalizeStyle(e.unref(s)),"data-popper-arrow":""},null,6))}});var vC=se(W6,[["__file","arrow.vue"]]);const j6="ElOnlyChild",VC=e.defineComponent({name:j6,setup(t,{slots:n,attrs:o}){var r;const l=e.inject(bf),a=$b((r=l==null?void 0:l.setForwardRef)!=null?r:st);return()=>{var s;const i=(s=n.default)==null?void 0:s.call(n,o);if(!i||i.length>1)return null;const c=MC(i);return c?e.withDirectives(e.cloneVNode(c,o),[[a]]):null}}});function MC(t){if(!t)return null;const n=t;for(const o of n){if(nt(o))switch(o.type){case e.Comment:continue;case e.Text:case"svg":return IC(o);case e.Fragment:return MC(o.children);default:return o}return IC(o)}return null}function IC(t){const n=Q("only-child");return e.createVNode("span",{class:n.e("content")},[t])}const ri=le({virtualRef:{type:W(Object)},virtualTriggering:Boolean,onMouseenter:{type:W(Function)},onMouseleave:{type:W(Function)},onClick:{type:W(Function)},onKeydown:{type:W(Function)},onFocus:{type:W(Function)},onBlur:{type:W(Function)},onContextmenu:{type:W(Function)},id:String,open:Boolean}),U6=ri,G6=e.defineComponent({name:"ElPopperTrigger",inheritAttrs:!1}),q6=e.defineComponent({...G6,props:ri,setup(t,{expose:n}){const o=t,{role:r,triggerRef:l}=e.inject(ti,void 0);Bb(l);const a=e.computed(()=>i.value?o.id:void 0),s=e.computed(()=>{if(r&&r.value==="tooltip")return o.open&&o.id?o.id:void 0}),i=e.computed(()=>{if(r&&r.value!=="tooltip")return r.value}),c=e.computed(()=>i.value?`${o.open}`:void 0);let f;return e.onMounted(()=>{e.watch(()=>o.virtualRef,u=>{u&&(l.value=sn(u))},{immediate:!0}),e.watch(l,(u,d)=>{f==null||f(),f=void 0,Mn(u)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(p=>{var h;const g=o[p];g&&(u.addEventListener(p.slice(2).toLowerCase(),g),(h=d==null?void 0:d.removeEventListener)==null||h.call(d,p.slice(2).toLowerCase(),g))}),f=e.watch([a,s,i,c],p=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,g)=>{wt(p[g])?u.removeAttribute(h):u.setAttribute(h,p[g])})},{immediate:!0})),Mn(d)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(p=>d.removeAttribute(p))},{immediate:!0})}),e.onBeforeUnmount(()=>{f==null||f(),f=void 0}),n({triggerRef:l}),(u,d)=>u.virtualTriggering?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(e.unref(VC),e.mergeProps({key:0},u.$attrs,{"aria-controls":e.unref(a),"aria-describedby":e.unref(s),"aria-expanded":e.unref(c),"aria-haspopup":e.unref(i)}),{default:e.withCtx(()=>[e.renderSlot(u.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var PC=se(q6,[["__file","trigger.vue"]]);const zf="focus-trap.focus-after-trapped",Df="focus-trap.focus-after-released",Y6="focus-trap.focusout-prevented",RC={cancelable:!0,bubbles:!1},X6={cancelable:!0,bubbles:!1},OC="focusAfterTrapped",AC="focusAfterReleased",Lf=Symbol("elFocusTrap"),xf=e.ref(),li=e.ref(0),Ff=e.ref(0);let ai=0;const zC=t=>{const n=[],o=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const l=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||l?NodeFilter.FILTER_SKIP:r.tabIndex>=0||r===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)n.push(o.currentNode);return n},DC=(t,n)=>{for(const o of t)if(!Z6(o,n))return o},Z6=(t,n)=>{if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(n&&t===n)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1},J6=t=>{const n=zC(t),o=DC(n,t),r=DC(n.reverse(),t);return[o,r]},Q6=t=>t instanceof HTMLInputElement&&"select"in t,or=(t,n)=>{if(t&&t.focus){const o=document.activeElement;t.focus({preventScroll:!0}),Ff.value=window.performance.now(),t!==o&&Q6(t)&&n&&t.select()}};function LC(t,n){const o=[...t],r=t.indexOf(n);return r!==-1&&o.splice(r,1),o}const eF=()=>{let t=[];return{push:r=>{const l=t[0];l&&r!==l&&l.pause(),t=LC(t,r),t.unshift(r)},remove:r=>{var l,a;t=LC(t,r),(a=(l=t[0])==null?void 0:l.resume)==null||a.call(l)}}},tF=(t,n=!1)=>{const o=document.activeElement;for(const r of t)if(or(r,n),document.activeElement!==o)return},xC=eF(),nF=()=>li.value>Ff.value,si=()=>{xf.value="pointer",li.value=window.performance.now()},FC=()=>{xf.value="keyboard",li.value=window.performance.now()},oF=()=>(e.onMounted(()=>{ai===0&&(document.addEventListener("mousedown",si),document.addEventListener("touchstart",si),document.addEventListener("keydown",FC)),ai++}),e.onBeforeUnmount(()=>{ai--,ai<=0&&(document.removeEventListener("mousedown",si),document.removeEventListener("touchstart",si),document.removeEventListener("keydown",FC))}),{focusReason:xf,lastUserFocusTimestamp:li,lastAutomatedFocusTimestamp:Ff}),ii=t=>new CustomEvent(Y6,{...X6,detail:t}),rF=e.defineComponent({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[OC,AC,"focusin","focusout","focusout-prevented","release-requested"],setup(t,{emit:n}){const o=e.ref();let r,l;const{focusReason:a}=oF();Sb(g=>{t.trapped&&!s.paused&&n("release-requested",g)});const s={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},i=g=>{if(!t.loop&&!t.trapped||s.paused)return;const{key:m,altKey:b,ctrlKey:y,metaKey:C,currentTarget:k,shiftKey:w}=g,{loop:E}=t,S=m===pe.tab&&!b&&!y&&!C,_=document.activeElement;if(S&&_){const B=k,[M,P]=J6(B);if(M&&P){if(!w&&_===P){const I=ii({focusReason:a.value});n("focusout-prevented",I),I.defaultPrevented||(g.preventDefault(),E&&or(M,!0))}else if(w&&[M,B].includes(_)){const I=ii({focusReason:a.value});n("focusout-prevented",I),I.defaultPrevented||(g.preventDefault(),E&&or(P,!0))}}else if(_===B){const I=ii({focusReason:a.value});n("focusout-prevented",I),I.defaultPrevented||g.preventDefault()}}};e.provide(Lf,{focusTrapRef:o,onKeydown:i}),e.watch(()=>t.focusTrapEl,g=>{g&&(o.value=g)},{immediate:!0}),e.watch([o],([g],[m])=>{g&&(g.addEventListener("keydown",i),g.addEventListener("focusin",u),g.addEventListener("focusout",d)),m&&(m.removeEventListener("keydown",i),m.removeEventListener("focusin",u),m.removeEventListener("focusout",d))});const c=g=>{n(OC,g)},f=g=>n(AC,g),u=g=>{const m=e.unref(o);if(!m)return;const b=g.target,y=g.relatedTarget,C=b&&m.contains(b);t.trapped||y&&m.contains(y)||(r=y),C&&n("focusin",g),!s.paused&&t.trapped&&(C?l=b:or(l,!0))},d=g=>{const m=e.unref(o);if(!(s.paused||!m))if(t.trapped){const b=g.relatedTarget;!wt(b)&&!m.contains(b)&&setTimeout(()=>{if(!s.paused&&t.trapped){const y=ii({focusReason:a.value});n("focusout-prevented",y),y.defaultPrevented||or(l,!0)}},0)}else{const b=g.target;b&&m.contains(b)||n("focusout",g)}};async function p(){await e.nextTick();const g=e.unref(o);if(g){xC.push(s);const m=g.contains(document.activeElement)?r:document.activeElement;if(r=m,!g.contains(m)){const y=new Event(zf,RC);g.addEventListener(zf,c),g.dispatchEvent(y),y.defaultPrevented||e.nextTick(()=>{let C=t.focusStartEl;De(C)||(or(C),document.activeElement!==C&&(C="first")),C==="first"&&tF(zC(g),!0),(document.activeElement===m||C==="container")&&or(g)})}}}function h(){const g=e.unref(o);if(g){g.removeEventListener(zf,c);const m=new CustomEvent(Df,{...RC,detail:{focusReason:a.value}});g.addEventListener(Df,f),g.dispatchEvent(m),!m.defaultPrevented&&(a.value=="keyboard"||!nF()||g.contains(document.activeElement))&&or(r!=null?r:document.body),g.removeEventListener(Df,f),xC.remove(s)}}return e.onMounted(()=>{t.trapped&&p(),e.watch(()=>t.trapped,g=>{g?p():h()})}),e.onBeforeUnmount(()=>{t.trapped&&h()}),{onKeydown:i}}});function lF(t,n,o,r,l,a){return e.renderSlot(t.$slots,"default",{handleKeydown:t.onKeydown})}var ci=se(rF,[["render",lF],["__file","focus-trap.vue"]]);const aF=["fixed","absolute"],Hf=le({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:W(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:_r,default:"bottom"},popperOptions:{type:W(Object),default:()=>({})},strategy:{type:String,values:aF,default:"absolute"}}),di=le({...Hf,id:String,style:{type:W([String,Array,Object])},className:{type:W([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:W([String,Array,Object])},popperStyle:{type:W([String,Array,Object])},referenceEl:{type:W(Object)},triggerTargetEl:{type:W(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),Kf={mouseenter:t=>t instanceof MouseEvent,mouseleave:t=>t instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},sF=Hf,iF=di,cF=Kf,dF=(t,n=[])=>{const{placement:o,strategy:r,popperOptions:l}=t,a={placement:o,strategy:r,...l,modifiers:[...uF(t),...n]};return pF(a,l==null?void 0:l.modifiers),a},fF=t=>{if(!!He)return sn(t)};function uF(t){const{offset:n,gpuAcceleration:o,fallbackPlacements:r}=t;return[{name:"offset",options:{offset:[0,n!=null?n:12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:r}},{name:"computeStyles",options:{gpuAcceleration:o}}]}function pF(t,n){n&&(t.modifiers=[...t.modifiers,...n!=null?n:[]])}const mF=0,hF=t=>{const{popperInstanceRef:n,contentRef:o,triggerRef:r,role:l}=e.inject(ti,void 0),a=e.ref(),s=e.ref(),i=e.computed(()=>({name:"eventListeners",enabled:!!t.visible})),c=e.computed(()=>{var y;const C=e.unref(a),k=(y=e.unref(s))!=null?y:mF;return{name:"arrow",enabled:!wd(C),options:{element:C,padding:k}}}),f=e.computed(()=>({onFirstUpdate:()=>{g()},...dF(t,[e.unref(c),e.unref(i)])})),u=e.computed(()=>fF(t.referenceEl)||e.unref(r)),{attributes:d,state:p,styles:h,update:g,forceUpdate:m,instanceRef:b}=sb(u,o,f);return e.watch(b,y=>n.value=y),e.onMounted(()=>{e.watch(()=>{var y;return(y=e.unref(u))==null?void 0:y.getBoundingClientRect()},()=>{g()})}),{attributes:d,arrowRef:a,contentRef:o,instanceRef:b,state:p,styles:h,role:l,forceUpdate:m,update:g}},gF=(t,{attributes:n,styles:o,role:r})=>{const{nextZIndex:l}=$r(),a=Q("popper"),s=e.computed(()=>e.unref(n).popper),i=e.ref(be(t.zIndex)?t.zIndex:l()),c=e.computed(()=>[a.b(),a.is("pure",t.pure),a.is(t.effect),t.popperClass]),f=e.computed(()=>[{zIndex:e.unref(i)},e.unref(o).popper,t.popperStyle||{}]),u=e.computed(()=>r.value==="dialog"?"false":void 0),d=e.computed(()=>e.unref(o).arrow||{});return{ariaModal:u,arrowStyle:d,contentAttrs:s,contentClass:c,contentStyle:f,contentZIndex:i,updateZIndex:()=>{i.value=be(t.zIndex)?t.zIndex:l()}}},yF=(t,n)=>{const o=e.ref(!1),r=e.ref();return{focusStartRef:r,trapped:o,onFocusAfterReleased:f=>{var u;((u=f.detail)==null?void 0:u.focusReason)!=="pointer"&&(r.value="first",n("blur"))},onFocusAfterTrapped:()=>{n("focus")},onFocusInTrap:f=>{t.visible&&!o.value&&(f.target&&(r.value=f.target),o.value=!0)},onFocusoutPrevented:f=>{t.trapping||(f.detail.focusReason==="pointer"&&f.preventDefault(),o.value=!1)},onReleaseRequested:()=>{o.value=!1,n("close")}}},bF=e.defineComponent({name:"ElPopperContent"}),CF=e.defineComponent({...bF,props:di,emits:Kf,setup(t,{expose:n,emit:o}){const r=t,{focusStartRef:l,trapped:a,onFocusAfterReleased:s,onFocusAfterTrapped:i,onFocusInTrap:c,onFocusoutPrevented:f,onReleaseRequested:u}=yF(r,o),{attributes:d,arrowRef:p,contentRef:h,styles:g,instanceRef:m,role:b,update:y}=hF(r),{ariaModal:C,arrowStyle:k,contentAttrs:w,contentClass:E,contentStyle:S,updateZIndex:_}=gF(r,{styles:g,attributes:d,role:b}),B=e.inject(Gn,void 0),M=e.ref();e.provide(Af,{arrowStyle:k,arrowRef:p,arrowOffset:M}),B&&(B.addInputId||B.removeInputId)&&e.provide(Gn,{...B,addInputId:st,removeInputId:st});let P;const T=(v=!0)=>{y(),v&&_()},I=()=>{T(!1),r.visible&&r.focusOnShow?a.value=!0:r.visible===!1&&(a.value=!1)};return e.onMounted(()=>{e.watch(()=>r.triggerTargetEl,(v,O)=>{P==null||P(),P=void 0;const D=e.unref(v||h.value),z=e.unref(O||h.value);Mn(D)&&(P=e.watch([b,()=>r.ariaLabel,C,()=>r.id],$=>{["role","aria-label","aria-modal","id"].forEach((R,N)=>{wt($[N])?D.removeAttribute(R):D.setAttribute(R,$[N])})},{immediate:!0})),z!==D&&Mn(z)&&["role","aria-label","aria-modal","id"].forEach($=>{z.removeAttribute($)})},{immediate:!0}),e.watch(()=>r.visible,I,{immediate:!0})}),e.onBeforeUnmount(()=>{P==null||P(),P=void 0}),n({popperContentRef:h,popperInstanceRef:m,updatePopper:T,contentStyle:S}),(v,O)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({ref_key:"contentRef",ref:h},e.unref(w),{style:e.unref(S),class:e.unref(E),tabindex:"-1",onMouseenter:O[0]||(O[0]=D=>v.$emit("mouseenter",D)),onMouseleave:O[1]||(O[1]=D=>v.$emit("mouseleave",D))}),[e.createVNode(e.unref(ci),{trapped:e.unref(a),"trap-on-focus-in":!0,"focus-trap-el":e.unref(h),"focus-start-el":e.unref(l),onFocusAfterTrapped:e.unref(i),onFocusAfterReleased:e.unref(s),onFocusin:e.unref(c),onFocusoutPrevented:e.unref(f),onReleaseRequested:e.unref(u)},{default:e.withCtx(()=>[e.renderSlot(v.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var HC=se(CF,[["__file","content.vue"]]);const Wf=Me(F6),ka=Symbol("elTooltip"),Pt=le({..._b,...di,appendTo:{type:W([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:W(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),gl=le({...ri,disabled:Boolean,trigger:{type:W([String,Array]),default:"hover"},triggerKeys:{type:W(Array),default:()=>[pe.enter,pe.space]}}),{useModelToggleProps:KC,useModelToggleEmits:WC,useModelToggle:jC}=nf("visible"),UC=le({...ni,...KC,...Pt,...gl,...oi,showArrow:{type:Boolean,default:!0}}),GC=[...WC,"before-show","before-hide","show","hide","open","close"],wF=(t,n)=>Re(t)?t.includes(n):t===n,yl=(t,n,o)=>r=>{wF(e.unref(t),n)&&o(r)},kF=e.defineComponent({name:"ElTooltipTrigger"}),SF=e.defineComponent({...kF,props:gl,setup(t,{expose:n}){const o=t,r=Q("tooltip"),{controlled:l,id:a,open:s,onOpen:i,onClose:c,onToggle:f}=e.inject(ka,void 0),u=e.ref(null),d=()=>{if(e.unref(l)||o.disabled)return!0},p=e.toRef(o,"trigger"),h=pt(d,yl(p,"hover",i)),g=pt(d,yl(p,"hover",c)),m=pt(d,yl(p,"click",w=>{w.button===0&&f(w)})),b=pt(d,yl(p,"focus",i)),y=pt(d,yl(p,"focus",c)),C=pt(d,yl(p,"contextmenu",w=>{w.preventDefault(),f(w)})),k=pt(d,w=>{const{code:E}=w;o.triggerKeys.includes(E)&&(w.preventDefault(),f(w))});return n({triggerRef:u}),(w,E)=>(e.openBlock(),e.createBlock(e.unref(PC),{id:e.unref(a),"virtual-ref":w.virtualRef,open:e.unref(s),"virtual-triggering":w.virtualTriggering,class:e.normalizeClass(e.unref(r).e("trigger")),onBlur:e.unref(y),onClick:e.unref(m),onContextmenu:e.unref(C),onFocus:e.unref(b),onMouseenter:e.unref(h),onMouseleave:e.unref(g),onKeydown:e.unref(k)},{default:e.withCtx(()=>[e.renderSlot(w.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var EF=se(SF,[["__file","trigger.vue"]]);const NF=e.defineComponent({name:"ElTooltipContent",inheritAttrs:!1}),_F=e.defineComponent({...NF,props:Pt,setup(t,{expose:n}){const o=t,{selector:r}=gf(),l=Q("tooltip"),a=e.ref(null),s=e.ref(!1),{controlled:i,id:c,open:f,trigger:u,onClose:d,onOpen:p,onShow:h,onHide:g,onBeforeShow:m,onBeforeHide:b}=e.inject(ka,void 0),y=e.computed(()=>o.transition||`${l.namespace.value}-fade-in-linear`),C=e.computed(()=>o.persistent);e.onBeforeUnmount(()=>{s.value=!0});const k=e.computed(()=>e.unref(C)?!0:e.unref(f)),w=e.computed(()=>o.disabled?!1:e.unref(f)),E=e.computed(()=>o.appendTo||r.value),S=e.computed(()=>{var $;return($=o.style)!=null?$:{}}),_=e.computed(()=>!e.unref(f)),B=()=>{g()},M=()=>{if(e.unref(i))return!0},P=pt(M,()=>{o.enterable&&e.unref(u)==="hover"&&p()}),T=pt(M,()=>{e.unref(u)==="hover"&&d()}),I=()=>{var $,R;(R=($=a.value)==null?void 0:$.updatePopper)==null||R.call($),m==null||m()},v=()=>{b==null||b()},O=()=>{h(),z=mc(e.computed(()=>{var $;return($=a.value)==null?void 0:$.popperContentRef}),()=>{if(e.unref(i))return;e.unref(u)!=="hover"&&d()})},D=()=>{o.virtualTriggering||d()};let z;return e.watch(()=>e.unref(f),$=>{$||z==null||z()},{flush:"post"}),e.watch(()=>o.content,()=>{var $,R;(R=($=a.value)==null?void 0:$.updatePopper)==null||R.call($)}),n({contentRef:a}),($,R)=>(e.openBlock(),e.createBlock(e.Teleport,{disabled:!$.teleported,to:e.unref(E)},[e.createVNode(e.Transition,{name:e.unref(y),onAfterLeave:B,onBeforeEnter:I,onAfterEnter:O,onBeforeLeave:v},{default:e.withCtx(()=>[e.unref(k)?e.withDirectives((e.openBlock(),e.createBlock(e.unref(HC),e.mergeProps({key:0,id:e.unref(c),ref_key:"contentRef",ref:a},$.$attrs,{"aria-label":$.ariaLabel,"aria-hidden":e.unref(_),"boundaries-padding":$.boundariesPadding,"fallback-placements":$.fallbackPlacements,"gpu-acceleration":$.gpuAcceleration,offset:$.offset,placement:$.placement,"popper-options":$.popperOptions,strategy:$.strategy,effect:$.effect,enterable:$.enterable,pure:$.pure,"popper-class":$.popperClass,"popper-style":[$.popperStyle,e.unref(S)],"reference-el":$.referenceEl,"trigger-target-el":$.triggerTargetEl,visible:e.unref(w),"z-index":$.zIndex,onMouseenter:e.unref(P),onMouseleave:e.unref(T),onBlur:D,onClose:e.unref(d)}),{default:e.withCtx(()=>[s.value?e.createCommentVNode("v-if",!0):e.renderSlot($.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[e.vShow,e.unref(w)]]):e.createCommentVNode("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var BF=se(_F,[["__file","content.vue"]]);const $F=["innerHTML"],TF={key:1},vF=e.defineComponent({name:"ElTooltip"}),VF=e.defineComponent({...vF,props:UC,emits:GC,setup(t,{expose:n,emit:o}){const r=t;Nb();const l=rn(),a=e.ref(),s=e.ref(),i=()=>{var y;const C=e.unref(a);C&&((y=C.popperInstanceRef)==null||y.update())},c=e.ref(!1),f=e.ref(),{show:u,hide:d,hasUpdateHandler:p}=jC({indicator:c,toggleReason:f}),{onOpen:h,onClose:g}=yf({showAfter:e.toRef(r,"showAfter"),hideAfter:e.toRef(r,"hideAfter"),autoClose:e.toRef(r,"autoClose"),open:u,close:d}),m=e.computed(()=>Tt(r.visible)&&!p.value);e.provide(ka,{controlled:m,id:l,open:e.readonly(c),trigger:e.toRef(r,"trigger"),onOpen:y=>{h(y)},onClose:y=>{g(y)},onToggle:y=>{e.unref(c)?g(y):h(y)},onShow:()=>{o("show",f.value)},onHide:()=>{o("hide",f.value)},onBeforeShow:()=>{o("before-show",f.value)},onBeforeHide:()=>{o("before-hide",f.value)},updatePopper:i}),e.watch(()=>r.disabled,y=>{y&&c.value&&(c.value=!1)});const b=y=>{var C,k;const w=(k=(C=s.value)==null?void 0:C.contentRef)==null?void 0:k.popperContentRef,E=(y==null?void 0:y.relatedTarget)||document.activeElement;return w&&w.contains(E)};return e.onDeactivated(()=>c.value&&d()),n({popperRef:a,contentRef:s,isFocusInsideContent:b,updatePopper:i,onOpen:h,onClose:g,hide:d}),(y,C)=>(e.openBlock(),e.createBlock(e.unref(Wf),{ref_key:"popperRef",ref:a,role:y.role},{default:e.withCtx(()=>[e.createVNode(EF,{disabled:y.disabled,trigger:y.trigger,"trigger-keys":y.triggerKeys,"virtual-ref":y.virtualRef,"virtual-triggering":y.virtualTriggering},{default:e.withCtx(()=>[y.$slots.default?e.renderSlot(y.$slots,"default",{key:0}):e.createCommentVNode("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),e.createVNode(BF,{ref_key:"contentRef",ref:s,"aria-label":y.ariaLabel,"boundaries-padding":y.boundariesPadding,content:y.content,disabled:y.disabled,effect:y.effect,enterable:y.enterable,"fallback-placements":y.fallbackPlacements,"hide-after":y.hideAfter,"gpu-acceleration":y.gpuAcceleration,offset:y.offset,persistent:y.persistent,"popper-class":y.popperClass,"popper-style":y.popperStyle,placement:y.placement,"popper-options":y.popperOptions,pure:y.pure,"raw-content":y.rawContent,"reference-el":y.referenceEl,"trigger-target-el":y.triggerTargetEl,"show-after":y.showAfter,strategy:y.strategy,teleported:y.teleported,transition:y.transition,"virtual-triggering":y.virtualTriggering,"z-index":y.zIndex,"append-to":y.appendTo},{default:e.withCtx(()=>[e.renderSlot(y.$slots,"content",{},()=>[y.rawContent?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:y.content},null,8,$F)):(e.openBlock(),e.createElementBlock("span",TF,e.toDisplayString(y.content),1))]),y.showArrow?(e.openBlock(),e.createBlock(e.unref(vC),{key:0,"arrow-offset":y.arrowOffset},null,8,["arrow-offset"])):e.createCommentVNode("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","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var MF=se(VF,[["__file","tooltip.vue"]]);const Zt=Me(MF),qC=le({valueKey:{type:String,default:"value"},modelValue:{type:[String,Number],default:""},debounce:{type:Number,default:300},placement:{type:W(String),values:["top","top-start","top-end","bottom","bottom-start","bottom-end"],default:"bottom-start"},fetchSuggestions:{type:W([Function,Array]),default:st},popperClass:{type:String,default:""},triggerOnFocus:{type:Boolean,default:!0},selectWhenUnmatched:{type:Boolean,default:!1},hideLoading:{type:Boolean,default:!1},label:{type:String},teleported:Pt.teleported,highlightFirstItem:{type:Boolean,default:!1},fitInputWidth:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},name:String}),YC={[Ie]:t=>De(t),[qt]:t=>De(t),[at]:t=>De(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,clear:()=>!0,select:t=>nt(t)},IF=["aria-expanded","aria-owns"],PF={key:0},RF=["id","aria-selected","onClick"],XC="ElAutocomplete",OF=e.defineComponent({name:XC,inheritAttrs:!1}),AF=e.defineComponent({...OF,props:qC,emits:YC,setup(t,{expose:n,emit:o}){const r=t,l=As(),a=e.useAttrs(),s=Yt(),i=Q("autocomplete"),c=e.ref(),f=e.ref(),u=e.ref(),d=e.ref();let p=!1,h=!1;const g=e.ref([]),m=e.ref(-1),b=e.ref(""),y=e.ref(!1),C=e.ref(!1),k=e.ref(!1),w=e.computed(()=>i.b(String(Os()))),E=e.computed(()=>a.style),S=e.computed(()=>(g.value.length>0||k.value)&&y.value),_=e.computed(()=>!r.hideLoading&&k.value),B=e.computed(()=>c.value?Array.from(c.value.$el.querySelectorAll("input")):[]),M=()=>{S.value&&(b.value=`${c.value.$el.offsetWidth}px`)},P=()=>{m.value=-1},I=Gt(async Y=>{if(C.value)return;const Z=U=>{k.value=!1,!C.value&&(Re(U)?(g.value=U,m.value=r.highlightFirstItem?0:-1):vt(XC,"autocomplete suggestions must be an array"))};if(k.value=!0,Re(r.fetchSuggestions))Z(r.fetchSuggestions);else{const U=await r.fetchSuggestions(Y,Z);Re(U)&&Z(U)}},r.debounce),v=Y=>{const Z=!!Y;if(o(qt,Y),o(Ie,Y),C.value=!1,y.value||(y.value=Z),!r.triggerOnFocus&&!Y){C.value=!0,g.value=[];return}I(Y)},O=Y=>{var Z;s.value||(((Z=Y.target)==null?void 0:Z.tagName)!=="INPUT"||B.value.includes(document.activeElement))&&(y.value=!0)},D=Y=>{o(at,Y)},z=Y=>{h?h=!1:(y.value=!0,o("focus",Y),r.triggerOnFocus&&!p&&I(String(r.modelValue)))},$=Y=>{setTimeout(()=>{var Z;if((Z=u.value)!=null&&Z.isFocusInsideContent()){h=!0;return}y.value&&x(),o("blur",Y)})},R=()=>{y.value=!1,o(Ie,""),o("clear")},N=async()=>{S.value&&m.value>=0&&m.value{S.value&&(Y.preventDefault(),Y.stopPropagation(),x())},x=()=>{y.value=!1},H=()=>{var Y;(Y=c.value)==null||Y.focus()},K=()=>{var Y;(Y=c.value)==null||Y.blur()},q=async Y=>{o(qt,Y[r.valueKey]),o(Ie,Y[r.valueKey]),o("select",Y),g.value=[],m.value=-1},ne=Y=>{if(!S.value||k.value)return;if(Y<0){m.value=-1;return}Y>=g.value.length&&(Y=g.value.length-1);const Z=f.value.querySelector(`.${i.be("suggestion","wrap")}`),re=Z.querySelectorAll(`.${i.be("suggestion","list")} li`)[Y],te=Z.scrollTop,{offsetTop:oe,scrollHeight:ie}=re;oe+ie>te+Z.clientHeight&&(Z.scrollTop+=ie),oe{S.value&&x()}),e.onMounted(()=>{c.value.ref.setAttribute("role","textbox"),c.value.ref.setAttribute("aria-autocomplete","list"),c.value.ref.setAttribute("aria-controls","id"),c.value.ref.setAttribute("aria-activedescendant",`${w.value}-item-${m.value}`),p=c.value.ref.hasAttribute("readonly")}),n({highlightedIndex:m,activated:y,loading:k,inputRef:c,popperRef:u,suggestions:g,handleSelect:q,handleKeyEnter:N,focus:H,blur:K,close:x,highlight:ne}),(Y,Z)=>(e.openBlock(),e.createBlock(e.unref(Zt),{ref_key:"popperRef",ref:u,visible:e.unref(S),placement:Y.placement,"fallback-placements":["bottom-start","top-start"],"popper-class":[e.unref(i).e("popper"),Y.popperClass],teleported:Y.teleported,"gpu-acceleration":!1,pure:"","manual-mode":"",effect:"light",trigger:"click",transition:`${e.unref(i).namespace.value}-zoom-in-top`,persistent:"",role:"listbox",onBeforeShow:M,onHide:P},{content:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"regionRef",ref:f,class:e.normalizeClass([e.unref(i).b("suggestion"),e.unref(i).is("loading",e.unref(_))]),style:e.normalizeStyle({[Y.fitInputWidth?"width":"minWidth"]:b.value,outline:"none"}),role:"region"},[e.createVNode(e.unref(mo),{id:e.unref(w),tag:"ul","wrap-class":e.unref(i).be("suggestion","wrap"),"view-class":e.unref(i).be("suggestion","list"),role:"listbox"},{default:e.withCtx(()=>[e.unref(_)?(e.openBlock(),e.createElementBlock("li",PF,[e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(i).is("loading"))},{default:e.withCtx(()=>[e.createVNode(e.unref(Zo))]),_:1},8,["class"])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(g.value,(U,re)=>(e.openBlock(),e.createElementBlock("li",{id:`${e.unref(w)}-item-${re}`,key:re,class:e.normalizeClass({highlighted:m.value===re}),role:"option","aria-selected":m.value===re,onClick:te=>q(U)},[e.renderSlot(Y.$slots,"default",{item:U},()=>[e.createTextVNode(e.toDisplayString(U[Y.valueKey]),1)])],10,RF))),128))]),_:3},8,["id","wrap-class","view-class"])],6)]),default:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"listboxRef",ref:d,class:e.normalizeClass([e.unref(i).b(),Y.$attrs.class]),style:e.normalizeStyle(e.unref(E)),role:"combobox","aria-haspopup":"listbox","aria-expanded":e.unref(S),"aria-owns":e.unref(w)},[e.createVNode(e.unref(Ft),e.mergeProps({ref_key:"inputRef",ref:c},e.unref(l),{clearable:Y.clearable,disabled:e.unref(s),name:Y.name,"model-value":Y.modelValue,onInput:v,onChange:D,onFocus:z,onBlur:$,onClear:R,onKeydown:[Z[0]||(Z[0]=e.withKeys(e.withModifiers(U=>ne(m.value-1),["prevent"]),["up"])),Z[1]||(Z[1]=e.withKeys(e.withModifiers(U=>ne(m.value+1),["prevent"]),["down"])),e.withKeys(N,["enter"]),e.withKeys(x,["tab"]),e.withKeys(A,["esc"])],onMousedown:O}),e.createSlots({_:2},[Y.$slots.prepend?{name:"prepend",fn:e.withCtx(()=>[e.renderSlot(Y.$slots,"prepend")])}:void 0,Y.$slots.append?{name:"append",fn:e.withCtx(()=>[e.renderSlot(Y.$slots,"append")])}:void 0,Y.$slots.prefix?{name:"prefix",fn:e.withCtx(()=>[e.renderSlot(Y.$slots,"prefix")])}:void 0,Y.$slots.suffix?{name:"suffix",fn:e.withCtx(()=>[e.renderSlot(Y.$slots,"suffix")])}:void 0]),1040,["clearable","disabled","name","model-value","onKeydown"])],14,IF)]),_:3},8,["visible","placement","popper-class","teleported","transition"]))}});var zF=se(AF,[["__file","autocomplete.vue"]]);const ZC=Me(zF),JC=le({size:{type:[Number,String],values:Wn,default:"",validator:t=>be(t)},shape:{type:String,values:["circle","square"],default:"circle"},icon:{type:ot},src:{type:String,default:""},alt:String,srcSet:String,fit:{type:W(String),default:"cover"}}),QC={error:t=>t instanceof Event},DF=["src","alt","srcset"],LF=e.defineComponent({name:"ElAvatar"}),xF=e.defineComponent({...LF,props:JC,emits:QC,setup(t,{emit:n}){const o=t,r=Q("avatar"),l=e.ref(!1),a=e.computed(()=>{const{size:f,icon:u,shape:d}=o,p=[r.b()];return De(f)&&p.push(r.m(f)),u&&p.push(r.m("icon")),d&&p.push(r.m(d)),p}),s=e.computed(()=>{const{size:f}=o;return be(f)?r.cssVarBlock({size:kt(f)||""}):void 0}),i=e.computed(()=>({objectFit:o.fit}));e.watch(()=>o.src,()=>l.value=!1);function c(f){l.value=!0,n("error",f)}return(f,u)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(a)),style:e.normalizeStyle(e.unref(s))},[(f.src||f.srcSet)&&!l.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:f.src,alt:f.alt,srcset:f.srcSet,style:e.normalizeStyle(e.unref(i)),onError:c},null,44,DF)):f.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(f.icon)))]),_:1})):e.renderSlot(f.$slots,"default",{key:2})],6))}});var FF=se(xF,[["__file","avatar.vue"]]);const ew=Me(FF),tw={visibilityHeight:{type:Number,default:200},target:{type:String,default:""},right:{type:Number,default:40},bottom:{type:Number,default:40}},nw={click:t=>t instanceof MouseEvent},HF=(t,n,o)=>{const r=e.shallowRef(),l=e.shallowRef(),a=e.ref(!1),s=()=>{r.value&&(a.value=r.value.scrollTop>=t.visibilityHeight)},i=f=>{var u;(u=r.value)==null||u.scrollTo({top:0,behavior:"smooth"}),n("click",f)},c=Mm(s,300,!0);return rt(l,"scroll",c),e.onMounted(()=>{var f;l.value=document,r.value=document.documentElement,t.target&&(r.value=(f=document.querySelector(t.target))!=null?f:void 0,r.value||vt(o,`target does not exist: ${t.target}`),l.value=r.value),s()}),{visible:a,handleClick:i}},ow="ElBacktop",KF=e.defineComponent({name:ow}),WF=e.defineComponent({...KF,props:tw,emits:nw,setup(t,{emit:n}){const o=t,r=Q("backtop"),{handleClick:l,visible:a}=HF(o,n,ow),s=e.computed(()=>({right:`${o.right}px`,bottom:`${o.bottom}px`}));return(i,c)=>(e.openBlock(),e.createBlock(e.Transition,{name:`${e.unref(r).namespace.value}-fade-in`},{default:e.withCtx(()=>[e.unref(a)?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(e.unref(s)),class:e.normalizeClass(e.unref(r).b()),onClick:c[0]||(c[0]=e.withModifiers((...f)=>e.unref(l)&&e.unref(l)(...f),["stop"]))},[e.renderSlot(i.$slots,"default",{},()=>[e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(r).e("icon"))},{default:e.withCtx(()=>[e.createVNode(e.unref(lD))]),_:1},8,["class"])])],6)):e.createCommentVNode("v-if",!0)]),_:3},8,["name"]))}});var jF=se(WF,[["__file","backtop.vue"]]);const rw=Me(jF),lw=le({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"}}),UF=["textContent"],GF=e.defineComponent({name:"ElBadge"}),qF=e.defineComponent({...GF,props:lw,setup(t,{expose:n}){const o=t,r=Q("badge"),l=e.computed(()=>o.isDot?"":be(o.value)&&be(o.max)?o.max(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(r).b())},[e.renderSlot(a.$slots,"default"),e.createVNode(e.Transition,{name:`${e.unref(r).namespace.value}-zoom-in-center`,persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("sup",{class:e.normalizeClass([e.unref(r).e("content"),e.unref(r).em("content",a.type),e.unref(r).is("fixed",!!a.$slots.default),e.unref(r).is("dot",a.isDot)]),textContent:e.toDisplayString(e.unref(l))},null,10,UF),[[e.vShow,!a.hidden&&(e.unref(l)||a.isDot)]])]),_:1},8,["name"])],2))}});var YF=se(qF,[["__file","badge.vue"]]);const jf=Me(YF),Uf=Symbol("breadcrumbKey"),aw=le({separator:{type:String,default:"/"},separatorIcon:{type:ot}}),XF=e.defineComponent({name:"ElBreadcrumb"}),ZF=e.defineComponent({...XF,props:aw,setup(t){const n=t,o=Q("breadcrumb"),r=e.ref();return e.provide(Uf,n),e.onMounted(()=>{const l=r.value.querySelectorAll(`.${o.e("item")}`);l.length&&l[l.length-1].setAttribute("aria-current","page")}),(l,a)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"breadcrumb",ref:r,class:e.normalizeClass(e.unref(o).b()),"aria-label":"Breadcrumb",role:"navigation"},[e.renderSlot(l.$slots,"default")],2))}});var JF=se(ZF,[["__file","breadcrumb.vue"]]);const sw=le({to:{type:W([String,Object]),default:""},replace:{type:Boolean,default:!1}}),QF=e.defineComponent({name:"ElBreadcrumbItem"}),e5=e.defineComponent({...QF,props:sw,setup(t){const n=t,o=e.getCurrentInstance(),r=e.inject(Uf,void 0),l=Q("breadcrumb"),a=o.appContext.config.globalProperties.$router,s=e.ref(),i=()=>{!n.to||!a||(n.replace?a.replace(n.to):a.push(n.to))};return(c,f)=>{var u,d;return e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(l).e("item"))},[e.createElementVNode("span",{ref_key:"link",ref:s,class:e.normalizeClass([e.unref(l).e("inner"),e.unref(l).is("link",!!c.to)]),role:"link",onClick:i},[e.renderSlot(c.$slots,"default")],2),(u=e.unref(r))!=null&&u.separatorIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(l).e("separator"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(r).separatorIcon)))]),_:1},8,["class"])):(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(l).e("separator")),role:"presentation"},e.toDisplayString((d=e.unref(r))==null?void 0:d.separator),3))],2)}}});var iw=se(e5,[["__file","breadcrumb-item.vue"]]);const cw=Me(JF,{BreadcrumbItem:iw}),dw=ht(iw),Gf=Symbol("buttonGroupContextKey"),t5=(t,n)=>{jn({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},e.computed(()=>t.type==="text"));const o=e.inject(Gf,void 0),r=ha("button"),{form:l}=Xt(),a=St(e.computed(()=>o==null?void 0:o.size)),s=Yt(),i=e.ref(),c=e.useSlots(),f=e.computed(()=>t.type||(o==null?void 0:o.type)||""),u=e.computed(()=>{var g,m,b;return(b=(m=t.autoInsertSpace)!=null?m:(g=r.value)==null?void 0:g.autoInsertSpace)!=null?b:!1}),d=e.computed(()=>t.tag==="button"?{ariaDisabled:s.value||t.loading,disabled:s.value||t.loading,autofocus:t.autofocus,type:t.nativeType}:{}),p=e.computed(()=>{var g;const m=(g=c.default)==null?void 0:g.call(c);if(u.value&&(m==null?void 0:m.length)===1){const b=m[0];if((b==null?void 0:b.type)===e.Text){const y=b.children;return/^\p{Unified_Ideograph}{2}$/u.test(y.trim())}}return!1});return{_disabled:s,_size:a,_type:f,_ref:i,_props:d,shouldAddSpace:p,handleClick:g=>{t.nativeType==="reset"&&(l==null||l.resetFields()),n("click",g)}}},fi=["default","primary","success","warning","info","danger","text",""],fw=["button","submit","reset"],ui=le({size:Vt,disabled:Boolean,type:{type:String,values:fi,default:""},icon:{type:ot},nativeType:{type:String,values:fw,default:"button"},loading:Boolean,loadingIcon:{type:ot,default:()=>Zo},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:W([String,Object]),default:"button"}}),uw={click:t=>t instanceof MouseEvent};function Ht(t,n){n5(t)&&(t="100%");var o=o5(t);return t=n===360?t:Math.min(n,Math.max(0,parseFloat(t))),o&&(t=parseInt(String(t*n),10)/100),Math.abs(t-n)<1e-6?1:(n===360?t=(t<0?t%n+n:t%n)/parseFloat(String(n)):t=t%n/parseFloat(String(n)),t)}function pi(t){return Math.min(1,Math.max(0,t))}function n5(t){return typeof t=="string"&&t.indexOf(".")!==-1&&parseFloat(t)===1}function o5(t){return typeof t=="string"&&t.indexOf("%")!==-1}function pw(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function mi(t){return t<=1?"".concat(Number(t)*100,"%"):t}function Mr(t){return t.length===1?"0"+t:String(t)}function r5(t,n,o){return{r:Ht(t,255)*255,g:Ht(n,255)*255,b:Ht(o,255)*255}}function mw(t,n,o){t=Ht(t,255),n=Ht(n,255),o=Ht(o,255);var r=Math.max(t,n,o),l=Math.min(t,n,o),a=0,s=0,i=(r+l)/2;if(r===l)s=0,a=0;else{var c=r-l;switch(s=i>.5?c/(2-r-l):c/(r+l),r){case t:a=(n-o)/c+(n1&&(o-=1),o<1/6?t+(n-t)*(6*o):o<1/2?n:o<2/3?t+(n-t)*(2/3-o)*6:t}function l5(t,n,o){var r,l,a;if(t=Ht(t,360),n=Ht(n,100),o=Ht(o,100),n===0)l=o,a=o,r=o;else{var s=o<.5?o*(1+n):o+n-o*n,i=2*o-s;r=qf(i,s,t+1/3),l=qf(i,s,t),a=qf(i,s,t-1/3)}return{r:r*255,g:l*255,b:a*255}}function hw(t,n,o){t=Ht(t,255),n=Ht(n,255),o=Ht(o,255);var r=Math.max(t,n,o),l=Math.min(t,n,o),a=0,s=r,i=r-l,c=r===0?0:i/r;if(r===l)a=0;else{switch(r){case t:a=(n-o)/i+(n>16,g:(t&65280)>>8,b:t&255}}var Yf={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 d5(t){var n={r:0,g:0,b:0},o=1,r=null,l=null,a=null,s=!1,i=!1;return typeof t=="string"&&(t=p5(t)),typeof t=="object"&&(Vo(t.r)&&Vo(t.g)&&Vo(t.b)?(n=r5(t.r,t.g,t.b),s=!0,i=String(t.r).substr(-1)==="%"?"prgb":"rgb"):Vo(t.h)&&Vo(t.s)&&Vo(t.v)?(r=mi(t.s),l=mi(t.v),n=a5(t.h,r,l),s=!0,i="hsv"):Vo(t.h)&&Vo(t.s)&&Vo(t.l)&&(r=mi(t.s),a=mi(t.l),n=l5(t.h,r,a),s=!0,i="hsl"),Object.prototype.hasOwnProperty.call(t,"a")&&(o=t.a)),o=pw(o),{ok:s,format:t.format||i,r:Math.min(255,Math.max(n.r,0)),g:Math.min(255,Math.max(n.g,0)),b:Math.min(255,Math.max(n.b,0)),a:o}}var f5="[-\\+]?\\d+%?",u5="[-\\+]?\\d*\\.\\d+%?",rr="(?:".concat(u5,")|(?:").concat(f5,")"),Xf="[\\s|\\(]+(".concat(rr,")[,|\\s]+(").concat(rr,")[,|\\s]+(").concat(rr,")\\s*\\)?"),Zf="[\\s|\\(]+(".concat(rr,")[,|\\s]+(").concat(rr,")[,|\\s]+(").concat(rr,")[,|\\s]+(").concat(rr,")\\s*\\)?"),Yn={CSS_UNIT:new RegExp(rr),rgb:new RegExp("rgb"+Xf),rgba:new RegExp("rgba"+Zf),hsl:new RegExp("hsl"+Xf),hsla:new RegExp("hsla"+Zf),hsv:new RegExp("hsv"+Xf),hsva:new RegExp("hsva"+Zf),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 p5(t){if(t=t.trim().toLowerCase(),t.length===0)return!1;var n=!1;if(Yf[t])t=Yf[t],n=!0;else if(t==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var o=Yn.rgb.exec(t);return o?{r:o[1],g:o[2],b:o[3]}:(o=Yn.rgba.exec(t),o?{r:o[1],g:o[2],b:o[3],a:o[4]}:(o=Yn.hsl.exec(t),o?{h:o[1],s:o[2],l:o[3]}:(o=Yn.hsla.exec(t),o?{h:o[1],s:o[2],l:o[3],a:o[4]}:(o=Yn.hsv.exec(t),o?{h:o[1],s:o[2],v:o[3]}:(o=Yn.hsva.exec(t),o?{h:o[1],s:o[2],v:o[3],a:o[4]}:(o=Yn.hex8.exec(t),o?{r:Sn(o[1]),g:Sn(o[2]),b:Sn(o[3]),a:yw(o[4]),format:n?"name":"hex8"}:(o=Yn.hex6.exec(t),o?{r:Sn(o[1]),g:Sn(o[2]),b:Sn(o[3]),format:n?"name":"hex"}:(o=Yn.hex4.exec(t),o?{r:Sn(o[1]+o[1]),g:Sn(o[2]+o[2]),b:Sn(o[3]+o[3]),a:yw(o[4]+o[4]),format:n?"name":"hex8"}:(o=Yn.hex3.exec(t),o?{r:Sn(o[1]+o[1]),g:Sn(o[2]+o[2]),b:Sn(o[3]+o[3]),format:n?"name":"hex"}:!1)))))))))}function Vo(t){return Boolean(Yn.CSS_UNIT.exec(String(t)))}var bw=function(){function t(n,o){n===void 0&&(n=""),o===void 0&&(o={});var r;if(n instanceof t)return n;typeof n=="number"&&(n=c5(n)),this.originalInput=n;var l=d5(n);this.originalInput=n,this.r=l.r,this.g=l.g,this.b=l.b,this.a=l.a,this.roundA=Math.round(100*this.a)/100,this.format=(r=o.format)!==null&&r!==void 0?r:l.format,this.gradientType=o.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=l.ok}return t.prototype.isDark=function(){return this.getBrightness()<128},t.prototype.isLight=function(){return!this.isDark()},t.prototype.getBrightness=function(){var n=this.toRgb();return(n.r*299+n.g*587+n.b*114)/1e3},t.prototype.getLuminance=function(){var n=this.toRgb(),o,r,l,a=n.r/255,s=n.g/255,i=n.b/255;return a<=.03928?o=a/12.92:o=Math.pow((a+.055)/1.055,2.4),s<=.03928?r=s/12.92:r=Math.pow((s+.055)/1.055,2.4),i<=.03928?l=i/12.92:l=Math.pow((i+.055)/1.055,2.4),.2126*o+.7152*r+.0722*l},t.prototype.getAlpha=function(){return this.a},t.prototype.setAlpha=function(n){return this.a=pw(n),this.roundA=Math.round(100*this.a)/100,this},t.prototype.toHsv=function(){var n=hw(this.r,this.g,this.b);return{h:n.h*360,s:n.s,v:n.v,a:this.a}},t.prototype.toHsvString=function(){var n=hw(this.r,this.g,this.b),o=Math.round(n.h*360),r=Math.round(n.s*100),l=Math.round(n.v*100);return this.a===1?"hsv(".concat(o,", ").concat(r,"%, ").concat(l,"%)"):"hsva(".concat(o,", ").concat(r,"%, ").concat(l,"%, ").concat(this.roundA,")")},t.prototype.toHsl=function(){var n=mw(this.r,this.g,this.b);return{h:n.h*360,s:n.s,l:n.l,a:this.a}},t.prototype.toHslString=function(){var n=mw(this.r,this.g,this.b),o=Math.round(n.h*360),r=Math.round(n.s*100),l=Math.round(n.l*100);return this.a===1?"hsl(".concat(o,", ").concat(r,"%, ").concat(l,"%)"):"hsla(".concat(o,", ").concat(r,"%, ").concat(l,"%, ").concat(this.roundA,")")},t.prototype.toHex=function(n){return n===void 0&&(n=!1),gw(this.r,this.g,this.b,n)},t.prototype.toHexString=function(n){return n===void 0&&(n=!1),"#"+this.toHex(n)},t.prototype.toHex8=function(n){return n===void 0&&(n=!1),s5(this.r,this.g,this.b,this.a,n)},t.prototype.toHex8String=function(n){return n===void 0&&(n=!1),"#"+this.toHex8(n)},t.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},t.prototype.toRgbString=function(){var n=Math.round(this.r),o=Math.round(this.g),r=Math.round(this.b);return this.a===1?"rgb(".concat(n,", ").concat(o,", ").concat(r,")"):"rgba(".concat(n,", ").concat(o,", ").concat(r,", ").concat(this.roundA,")")},t.prototype.toPercentageRgb=function(){var n=function(o){return"".concat(Math.round(Ht(o,255)*100),"%")};return{r:n(this.r),g:n(this.g),b:n(this.b),a:this.a}},t.prototype.toPercentageRgbString=function(){var n=function(o){return Math.round(Ht(o,255)*100)};return this.a===1?"rgb(".concat(n(this.r),"%, ").concat(n(this.g),"%, ").concat(n(this.b),"%)"):"rgba(".concat(n(this.r),"%, ").concat(n(this.g),"%, ").concat(n(this.b),"%, ").concat(this.roundA,")")},t.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var n="#"+gw(this.r,this.g,this.b,!1),o=0,r=Object.entries(Yf);o=0,a=!o&&l&&(n.startsWith("hex")||n==="name");return a?n==="name"&&this.a===0?this.toName():this.toRgbString():(n==="rgb"&&(r=this.toRgbString()),n==="prgb"&&(r=this.toPercentageRgbString()),(n==="hex"||n==="hex6")&&(r=this.toHexString()),n==="hex3"&&(r=this.toHexString(!0)),n==="hex4"&&(r=this.toHex8String(!0)),n==="hex8"&&(r=this.toHex8String()),n==="name"&&(r=this.toName()),n==="hsl"&&(r=this.toHslString()),n==="hsv"&&(r=this.toHsvString()),r||this.toHexString())},t.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},t.prototype.clone=function(){return new t(this.toString())},t.prototype.lighten=function(n){n===void 0&&(n=10);var o=this.toHsl();return o.l+=n/100,o.l=pi(o.l),new t(o)},t.prototype.brighten=function(n){n===void 0&&(n=10);var o=this.toRgb();return o.r=Math.max(0,Math.min(255,o.r-Math.round(255*-(n/100)))),o.g=Math.max(0,Math.min(255,o.g-Math.round(255*-(n/100)))),o.b=Math.max(0,Math.min(255,o.b-Math.round(255*-(n/100)))),new t(o)},t.prototype.darken=function(n){n===void 0&&(n=10);var o=this.toHsl();return o.l-=n/100,o.l=pi(o.l),new t(o)},t.prototype.tint=function(n){return n===void 0&&(n=10),this.mix("white",n)},t.prototype.shade=function(n){return n===void 0&&(n=10),this.mix("black",n)},t.prototype.desaturate=function(n){n===void 0&&(n=10);var o=this.toHsl();return o.s-=n/100,o.s=pi(o.s),new t(o)},t.prototype.saturate=function(n){n===void 0&&(n=10);var o=this.toHsl();return o.s+=n/100,o.s=pi(o.s),new t(o)},t.prototype.greyscale=function(){return this.desaturate(100)},t.prototype.spin=function(n){var o=this.toHsl(),r=(o.h+n)%360;return o.h=r<0?360+r:r,new t(o)},t.prototype.mix=function(n,o){o===void 0&&(o=50);var r=this.toRgb(),l=new t(n).toRgb(),a=o/100,s={r:(l.r-r.r)*a+r.r,g:(l.g-r.g)*a+r.g,b:(l.b-r.b)*a+r.b,a:(l.a-r.a)*a+r.a};return new t(s)},t.prototype.analogous=function(n,o){n===void 0&&(n=6),o===void 0&&(o=30);var r=this.toHsl(),l=360/o,a=[this];for(r.h=(r.h-(l*n>>1)+720)%360;--n;)r.h=(r.h+l)%360,a.push(new t(r));return a},t.prototype.complement=function(){var n=this.toHsl();return n.h=(n.h+180)%360,new t(n)},t.prototype.monochromatic=function(n){n===void 0&&(n=6);for(var o=this.toHsv(),r=o.h,l=o.s,a=o.v,s=[],i=1/n;n--;)s.push(new t({h:r,s:l,v:a})),a=(a+i)%1;return s},t.prototype.splitcomplement=function(){var n=this.toHsl(),o=n.h;return[this,new t({h:(o+72)%360,s:n.s,l:n.l}),new t({h:(o+216)%360,s:n.s,l:n.l})]},t.prototype.onBackground=function(n){var o=this.toRgb(),r=new t(n).toRgb();return new t({r:r.r+(o.r-r.r)*o.a,g:r.g+(o.g-r.g)*o.a,b:r.b+(o.b-r.b)*o.a})},t.prototype.triad=function(){return this.polyad(3)},t.prototype.tetrad=function(){return this.polyad(4)},t.prototype.polyad=function(n){for(var o=this.toHsl(),r=o.h,l=[this],a=360/n,s=1;s{let r={};const l=t.color;if(l){const a=new bw(l),s=t.dark?a.tint(20).toString():lr(a,20);if(t.plain)r=o.cssVarBlock({"bg-color":t.dark?lr(a,90):a.tint(90).toString(),"text-color":l,"border-color":t.dark?lr(a,50):a.tint(50).toString(),"hover-text-color":`var(${o.cssVarName("color-white")})`,"hover-bg-color":l,"hover-border-color":l,"active-bg-color":s,"active-text-color":`var(${o.cssVarName("color-white")})`,"active-border-color":s}),n.value&&(r[o.cssVarBlockName("disabled-bg-color")]=t.dark?lr(a,90):a.tint(90).toString(),r[o.cssVarBlockName("disabled-text-color")]=t.dark?lr(a,50):a.tint(50).toString(),r[o.cssVarBlockName("disabled-border-color")]=t.dark?lr(a,80):a.tint(80).toString());else{const i=t.dark?lr(a,30):a.tint(30).toString(),c=a.isDark()?`var(${o.cssVarName("color-white")})`:`var(${o.cssVarName("color-black")})`;if(r=o.cssVarBlock({"bg-color":l,"text-color":c,"border-color":l,"hover-bg-color":i,"hover-text-color":c,"hover-border-color":i,"active-bg-color":s,"active-border-color":s}),n.value){const f=t.dark?lr(a,50):a.tint(50).toString();r[o.cssVarBlockName("disabled-bg-color")]=f,r[o.cssVarBlockName("disabled-text-color")]=t.dark?"rgba(255, 255, 255, 0.5)":`var(${o.cssVarName("color-white")})`,r[o.cssVarBlockName("disabled-border-color")]=f}}}return r})}const h5=e.defineComponent({name:"ElButton"}),g5=e.defineComponent({...h5,props:ui,emits:uw,setup(t,{expose:n,emit:o}){const r=t,l=m5(r),a=Q("button"),{_ref:s,_size:i,_type:c,_disabled:f,_props:u,shouldAddSpace:d,handleClick:p}=t5(r,o);return n({ref:s,size:i,type:c,disabled:f,shouldAddSpace:d}),(h,g)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.tag),e.mergeProps({ref_key:"_ref",ref:s},e.unref(u),{class:[e.unref(a).b(),e.unref(a).m(e.unref(c)),e.unref(a).m(e.unref(i)),e.unref(a).is("disabled",e.unref(f)),e.unref(a).is("loading",h.loading),e.unref(a).is("plain",h.plain),e.unref(a).is("round",h.round),e.unref(a).is("circle",h.circle),e.unref(a).is("text",h.text),e.unref(a).is("link",h.link),e.unref(a).is("has-bg",h.bg)],style:e.unref(l),onClick:e.unref(p)}),{default:e.withCtx(()=>[h.loading?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[h.$slots.loading?e.renderSlot(h.$slots,"loading",{key:0}):(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass(e.unref(a).is("loading"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.loadingIcon)))]),_:1},8,["class"]))],64)):h.icon||h.$slots.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:1},{default:e.withCtx(()=>[h.icon?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.icon),{key:0})):e.renderSlot(h.$slots,"icon",{key:1})]),_:3})):e.createCommentVNode("v-if",!0),h.$slots.default?(e.openBlock(),e.createElementBlock("span",{key:2,class:e.normalizeClass({[e.unref(a).em("text","expand")]:e.unref(d)})},[e.renderSlot(h.$slots,"default")],2)):e.createCommentVNode("v-if",!0)]),_:3},16,["class","style","onClick"]))}});var y5=se(g5,[["__file","button.vue"]]);const b5={size:ui.size,type:ui.type},C5=e.defineComponent({name:"ElButtonGroup"}),w5=e.defineComponent({...C5,props:b5,setup(t){const n=t;e.provide(Gf,e.reactive({size:e.toRef(n,"size"),type:e.toRef(n,"type")}));const o=Q("button");return(r,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(`${e.unref(o).b("group")}`)},[e.renderSlot(r.$slots,"default")],2))}});var Cw=se(w5,[["__file","button-group.vue"]]);const At=Me(y5,{ButtonGroup:Cw}),Jf=ht(Cw);var Mo=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},ww={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){var o=1e3,r=6e4,l=36e5,a="millisecond",s="second",i="minute",c="hour",f="day",u="week",d="month",p="quarter",h="year",g="date",m="Invalid Date",b=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,C={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("_")},k=function(v,O,D){var z=String(v);return!z||z.length>=O?v:""+Array(O+1-z.length).join(D)+v},w={s:k,z:function(v){var O=-v.utcOffset(),D=Math.abs(O),z=Math.floor(D/60),$=D%60;return(O<=0?"+":"-")+k(z,2,"0")+":"+k($,2,"0")},m:function v(O,D){if(O.date()1)return v(N[0])}else{var A=O.name;S[A]=O,$=A}return!z&&$&&(E=$),$||!z&&E},M=function(v,O){if(_(v))return v.clone();var D=typeof O=="object"?O:{};return D.date=v,D.args=arguments,new T(D)},P=w;P.l=B,P.i=_,P.w=function(v,O){return M(v,{locale:O.$L,utc:O.$u,x:O.$x,$offset:O.$offset})};var T=function(){function v(D){this.$L=B(D.locale,null,!0),this.parse(D)}var O=v.prototype;return O.parse=function(D){this.$d=function(z){var $=z.date,R=z.utc;if($===null)return new Date(NaN);if(P.u($))return new Date;if($ instanceof Date)return new Date($);if(typeof $=="string"&&!/Z$/i.test($)){var N=$.match(b);if(N){var A=N[2]-1||0,x=(N[7]||"0").substring(0,3);return R?new Date(Date.UTC(N[1],A,N[3]||1,N[4]||0,N[5]||0,N[6]||0,x)):new Date(N[1],A,N[3]||1,N[4]||0,N[5]||0,N[6]||0,x)}}return new Date($)}(D),this.$x=D.x||{},this.init()},O.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},O.$utils=function(){return P},O.isValid=function(){return this.$d.toString()!==m},O.isSame=function(D,z){var $=M(D);return this.startOf(z)<=$&&$<=this.endOf(z)},O.isAfter=function(D,z){return M(D)68?1900:2e3)},f=function(m){return function(b){this[m]=+b}},u=[/[+-]\d\d:?(\d\d)?|Z/,function(m){(this.zone||(this.zone={})).offset=function(b){if(!b||b==="Z")return 0;var y=b.match(/([+-]|\d\d)/g),C=60*y[1]+(+y[2]||0);return C===0?0:y[0]==="+"?-C:C}(m)}],d=function(m){var b=i[m];return b&&(b.indexOf?b:b.s.concat(b.f))},p=function(m,b){var y,C=i.meridiem;if(C){for(var k=1;k<=24;k+=1)if(m.indexOf(C(k,0,b))>-1){y=k>12;break}}else y=m===(b?"pm":"PM");return y},h={A:[s,function(m){this.afternoon=p(m,!1)}],a:[s,function(m){this.afternoon=p(m,!0)}],S:[/\d/,function(m){this.milliseconds=100*+m}],SS:[l,function(m){this.milliseconds=10*+m}],SSS:[/\d{3}/,function(m){this.milliseconds=+m}],s:[a,f("seconds")],ss:[a,f("seconds")],m:[a,f("minutes")],mm:[a,f("minutes")],H:[a,f("hours")],h:[a,f("hours")],HH:[a,f("hours")],hh:[a,f("hours")],D:[a,f("day")],DD:[l,f("day")],Do:[s,function(m){var b=i.ordinal,y=m.match(/\d+/);if(this.day=y[0],b)for(var C=1;C<=31;C+=1)b(C).replace(/\[|\]/g,"")===m&&(this.day=C)}],M:[a,f("month")],MM:[l,f("month")],MMM:[s,function(m){var b=d("months"),y=(d("monthsShort")||b.map(function(C){return C.slice(0,3)})).indexOf(m)+1;if(y<1)throw new Error;this.month=y%12||y}],MMMM:[s,function(m){var b=d("months").indexOf(m)+1;if(b<1)throw new Error;this.month=b%12||b}],Y:[/[+-]?\d+/,f("year")],YY:[l,function(m){this.year=c(m)}],YYYY:[/\d{4}/,f("year")],Z:u,ZZ:u};function g(m){var b,y;b=m,y=i&&i.formats;for(var C=(m=b.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(M,P,T){var I=T&&T.toUpperCase();return P||y[T]||o[T]||y[I].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(v,O,D){return O||D.slice(1)})})).match(r),k=C.length,w=0;w-1)return new Date(($==="X"?1e3:1)*z);var N=g($)(z),A=N.year,x=N.month,H=N.day,K=N.hours,q=N.minutes,ne=N.seconds,Y=N.milliseconds,Z=N.zone,U=new Date,re=H||(A||x?1:U.getDate()),te=A||U.getFullYear(),oe=0;A&&!x||(oe=x>0?x-1:U.getMonth());var ie=K||0,ye=q||0,Ne=ne||0,Te=Y||0;return Z?new Date(Date.UTC(te,oe,re,ie,ye,Ne,Te+60*Z.offset*1e3)):R?new Date(Date.UTC(te,oe,re,ie,ye,Ne,Te)):new Date(te,oe,re,ie,ye,Ne,Te)}catch(Pe){return new Date("")}}(E,B,S),this.init(),I&&I!==!0&&(this.$L=this.locale(I).$L),T&&E!=this.format(B)&&(this.$d=new Date("")),i={}}else if(B instanceof Array)for(var v=B.length,O=1;O<=v;O+=1){_[1]=B[O-1];var D=y.apply(this,_);if(D.isValid()){this.$d=D.$d,this.$L=D.$L,this.init();break}O===v&&(this.$d=new Date(""))}else k.call(this,w)}}})})(kw);var Qf=kw.exports;const eu=["hours","minutes","seconds"],hi="HH:mm:ss",Ir="YYYY-MM-DD",Sw={date:Ir,dates:Ir,week:"gggg[w]ww",year:"YYYY",month:"YYYY-MM",datetime:`${Ir} ${hi}`,monthrange:"YYYY-MM",daterange:Ir,datetimerange:`${Ir} ${hi}`},gi=(t,n)=>[t>0?t-1:void 0,t,tArray.from(Array.from({length:t}).keys()),tu=t=>t.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim(),nu=t=>t.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g,"").trim(),ou=function(t,n){const o=zl(t),r=zl(n);return o&&r?t.getTime()===n.getTime():!o&&!r?t===n:!1},ru=function(t,n){const o=Re(t),r=Re(n);return o&&r?t.length!==n.length?!1:t.every((l,a)=>ou(l,n[a])):!o&&!r?ou(t,n):!1},lu=function(t,n,o){const r=Vn(n)||n==="x"?ve(t).locale(o):ve(t,n).locale(o);return r.isValid()?r:void 0},au=function(t,n,o){return Vn(n)?t:n==="x"?+t:ve(t).locale(o).format(n)},yi=(t,n)=>{var o;const r=[],l=n==null?void 0:n();for(let a=0;a({})},modelValue:{type:W([Date,Array,String,Number]),default:""},rangeSeparator:{type:String,default:"-"},startPlaceholder:String,endPlaceholder:String,defaultValue:{type:W([Date,Array])},defaultTime:{type:W([Date,Array])},isRange:Boolean,...Ew,disabledDate:{type:Function},cellClassName:{type:Function},shortcuts:{type:Array,default:()=>[]},arrowControl:Boolean,label:{type:String,default:void 0},tabindex:{type:W([String,Number]),default:0},validateEvent:{type:Boolean,default:!0},unlinkPanels:Boolean}),k5=["id","name","placeholder","value","disabled","readonly"],S5=["id","name","placeholder","value","disabled","readonly"],E5=e.defineComponent({name:"Picker"}),N5=e.defineComponent({...E5,props:bi,emits:["update:modelValue","change","focus","blur","calendar-change","panel-change","visible-change","keydown"],setup(t,{expose:n,emit:o}){const r=t,l=e.useAttrs(),{lang:a}=Ke(),s=Q("date"),i=Q("input"),c=Q("range"),{form:f,formItem:u}=Xt(),d=e.inject("ElPopperOptions",{}),p=e.ref(),h=e.ref(),g=e.ref(!1),m=e.ref(!1),b=e.ref(null);let y=!1,C=!1;const k=e.computed(()=>[s.b("editor"),s.bm("editor",r.type),i.e("wrapper"),s.is("disabled",H.value),s.is("active",g.value),c.b("editor"),he?c.bm("editor",he.value):"",l.class]),w=e.computed(()=>[i.e("icon"),c.e("close-icon"),re.value?"":c.e("close-icon--hidden")]);e.watch(g,F=>{F?e.nextTick(()=>{F&&(b.value=r.modelValue)}):(me.value=null,e.nextTick(()=>{E(r.modelValue)}))});const E=(F,ue)=>{(ue||!ru(F,b.value))&&(o("change",F),r.validateEvent&&(u==null||u.validate("change").catch(Be=>void 0)))},S=F=>{if(!ru(r.modelValue,F)){let ue;Re(F)?ue=F.map(Be=>au(Be,r.valueFormat,a.value)):F&&(ue=au(F,r.valueFormat,a.value)),o("update:modelValue",F&&ue,a.value)}},_=F=>{o("keydown",F)},B=e.computed(()=>{if(h.value){const F=Pe.value?h.value:h.value.$el;return Array.from(F.querySelectorAll("input"))}return[]}),M=(F,ue,Be)=>{const xe=B.value;!xe.length||(!Be||Be==="min"?(xe[0].setSelectionRange(F,ue),xe[0].focus()):Be==="max"&&(xe[1].setSelectionRange(F,ue),xe[1].focus()))},P=()=>{R(!0,!0),e.nextTick(()=>{C=!1})},T=(F="",ue=!1)=>{ue||(C=!0),g.value=ue;let Be;Re(F)?Be=F.map(xe=>xe.toDate()):Be=F&&F.toDate(),me.value=null,S(Be)},I=()=>{m.value=!0},v=()=>{o("visible-change",!0)},O=F=>{(F==null?void 0:F.key)===pe.esc&&R(!0,!0)},D=()=>{m.value=!1,g.value=!1,C=!1,o("visible-change",!1)},z=()=>{g.value=!0},$=()=>{g.value=!1},R=(F=!0,ue=!1)=>{C=ue;const[Be,xe]=e.unref(B);let _t=Be;!F&&Pe.value&&(_t=xe),_t&&_t.focus()},N=F=>{r.readonly||H.value||g.value||C||(g.value=!0,o("focus",F))};let A;const x=F=>{const ue=async()=>{setTimeout(()=>{var Be;A===ue&&(!(((Be=p.value)==null?void 0:Be.isFocusInsideContent())&&!y)&&B.value.filter(xe=>xe.contains(document.activeElement)).length===0&&(_e(),g.value=!1,o("blur",F),r.validateEvent&&(u==null||u.validate("blur").catch(xe=>void 0))),y=!1)},0)};A=ue,ue()},H=e.computed(()=>r.disabled||(f==null?void 0:f.disabled)),K=e.computed(()=>{let F;if(oe.value?J.value.getDefaultValue&&(F=J.value.getDefaultValue()):Re(r.modelValue)?F=r.modelValue.map(ue=>lu(ue,r.valueFormat,a.value)):F=lu(r.modelValue,r.valueFormat,a.value),J.value.getRangeAvailableTime){const ue=J.value.getRangeAvailableTime(F);tn(ue,F)||(F=ue,S(Re(F)?F.map(Be=>Be.toDate()):F.toDate()))}return Re(F)&&F.some(ue=>!ue)&&(F=[]),F}),q=e.computed(()=>{if(!J.value.panelReady)return"";const F=Ae(K.value);return Re(me.value)?[me.value[0]||F&&F[0]||"",me.value[1]||F&&F[1]||""]:me.value!==null?me.value:!Y.value&&oe.value||!g.value&&oe.value?"":F?Z.value?F.join(", "):F:""}),ne=e.computed(()=>r.type.includes("time")),Y=e.computed(()=>r.type.startsWith("time")),Z=e.computed(()=>r.type==="dates"),U=e.computed(()=>r.prefixIcon||(ne.value?Sy:nD)),re=e.ref(!1),te=F=>{r.readonly||H.value||re.value&&(F.stopPropagation(),P(),S(null),E(null,!0),re.value=!1,g.value=!1,J.value.handleClear&&J.value.handleClear())},oe=e.computed(()=>{const{modelValue:F}=r;return!F||Re(F)&&!F.filter(Boolean).length}),ie=async F=>{var ue;r.readonly||H.value||(((ue=F.target)==null?void 0:ue.tagName)!=="INPUT"||B.value.includes(document.activeElement))&&(g.value=!0)},ye=()=>{r.readonly||H.value||!oe.value&&r.clearable&&(re.value=!0)},Ne=()=>{re.value=!1},Te=F=>{var ue;r.readonly||H.value||(((ue=F.touches[0].target)==null?void 0:ue.tagName)!=="INPUT"||B.value.includes(document.activeElement))&&(g.value=!0)},Pe=e.computed(()=>r.type.includes("range")),he=St(),Ce=e.computed(()=>{var F,ue;return(ue=(F=e.unref(p))==null?void 0:F.popperRef)==null?void 0:ue.contentRef}),ge=e.computed(()=>{var F;return e.unref(Pe)?e.unref(h):(F=e.unref(h))==null?void 0:F.$el});mc(ge,F=>{const ue=e.unref(Ce),Be=e.unref(ge);ue&&(F.target===ue||F.composedPath().includes(ue))||F.target===Be||F.composedPath().includes(Be)||(g.value=!1)});const me=e.ref(null),_e=()=>{if(me.value){const F=$e(q.value);F&&Oe(F)&&(S(Re(F)?F.map(ue=>ue.toDate()):F.toDate()),me.value=null)}me.value===""&&(S(null),E(null),me.value=null)},$e=F=>F?J.value.parseUserInput(F):null,Ae=F=>F?J.value.formatToString(F):null,Oe=F=>J.value.isValidValue(F),ce=async F=>{if(r.readonly||H.value)return;const{code:ue}=F;if(_(F),ue===pe.esc){g.value===!0&&(g.value=!1,F.preventDefault(),F.stopPropagation());return}if(ue===pe.down&&(J.value.handleFocusPicker&&(F.preventDefault(),F.stopPropagation()),g.value===!1&&(g.value=!0,await e.nextTick()),J.value.handleFocusPicker)){J.value.handleFocusPicker();return}if(ue===pe.tab){y=!0;return}if(ue===pe.enter||ue===pe.numpadEnter){(me.value===null||me.value===""||Oe($e(q.value)))&&(_e(),g.value=!1),F.stopPropagation();return}if(me.value){F.stopPropagation();return}J.value.handleKeydownInput&&J.value.handleKeydownInput(F)},Ee=F=>{me.value=F,g.value||(g.value=!0)},Le=F=>{const ue=F.target;me.value?me.value=[ue.value,me.value[1]]:me.value=[ue.value,null]},Xe=F=>{const ue=F.target;me.value?me.value=[me.value[0],ue.value]:me.value=[null,ue.value]},Qe=()=>{var F;const ue=me.value,Be=$e(ue&&ue[0]),xe=e.unref(K);if(Be&&Be.isValid()){me.value=[Ae(Be),((F=q.value)==null?void 0:F[1])||null];const _t=[Be,xe&&(xe[1]||null)];Oe(_t)&&(S(_t),me.value=null)}},ke=()=>{var F;const ue=e.unref(me),Be=$e(ue&&ue[1]),xe=e.unref(K);if(Be&&Be.isValid()){me.value=[((F=e.unref(q))==null?void 0:F[0])||null,Ae(Be)];const _t=[xe&&xe[0],Be];Oe(_t)&&(S(_t),me.value=null)}},J=e.ref({}),G=F=>{J.value[F[0]]=F[1],J.value.panelReady=!0},j=F=>{o("calendar-change",F)},ee=(F,ue,Be)=>{o("panel-change",F,ue,Be)};return e.provide("EP_PICKER_BASE",{props:r}),n({focus:R,handleFocusInput:N,handleBlurInput:x,handleOpen:z,handleClose:$,onPick:T}),(F,ue)=>(e.openBlock(),e.createBlock(e.unref(Zt),e.mergeProps({ref_key:"refPopper",ref:p,visible:g.value,effect:"light",pure:"",trigger:"click"},F.$attrs,{role:"dialog",teleported:"",transition:`${e.unref(s).namespace.value}-zoom-in-top`,"popper-class":[`${e.unref(s).namespace.value}-picker__popper`,F.popperClass],"popper-options":e.unref(d),"fallback-placements":["bottom","top","right","left"],"gpu-acceleration":!1,"stop-popper-mouse-event":!1,"hide-after":0,persistent:"",onBeforeShow:I,onShow:v,onHide:D}),{default:e.withCtx(()=>[e.unref(Pe)?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"inputRef",ref:h,class:e.normalizeClass(e.unref(k)),style:e.normalizeStyle(F.$attrs.style),onClick:N,onMouseenter:ye,onMouseleave:Ne,onTouchstart:Te,onKeydown:ce},[e.unref(U)?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass([e.unref(i).e("icon"),e.unref(c).e("icon")]),onMousedown:e.withModifiers(ie,["prevent"]),onTouchstart:Te},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(U))))]),_:1},8,["class","onMousedown"])):e.createCommentVNode("v-if",!0),e.createElementVNode("input",{id:F.id&&F.id[0],autocomplete:"off",name:F.name&&F.name[0],placeholder:F.startPlaceholder,value:e.unref(q)&&e.unref(q)[0],disabled:e.unref(H),readonly:!F.editable||F.readonly,class:e.normalizeClass(e.unref(c).b("input")),onMousedown:ie,onInput:Le,onChange:Qe,onFocus:N,onBlur:x},null,42,k5),e.renderSlot(F.$slots,"range-separator",{},()=>[e.createElementVNode("span",{class:e.normalizeClass(e.unref(c).b("separator"))},e.toDisplayString(F.rangeSeparator),3)]),e.createElementVNode("input",{id:F.id&&F.id[1],autocomplete:"off",name:F.name&&F.name[1],placeholder:F.endPlaceholder,value:e.unref(q)&&e.unref(q)[1],disabled:e.unref(H),readonly:!F.editable||F.readonly,class:e.normalizeClass(e.unref(c).b("input")),onMousedown:ie,onFocus:N,onBlur:x,onInput:Xe,onChange:ke},null,42,S5),F.clearIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass(e.unref(w)),onClick:te},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(F.clearIcon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],38)):(e.openBlock(),e.createBlock(e.unref(Ft),{key:0,id:F.id,ref_key:"inputRef",ref:h,"container-role":"combobox","model-value":e.unref(q),name:F.name,size:e.unref(he),disabled:e.unref(H),placeholder:F.placeholder,class:e.normalizeClass([e.unref(s).b("editor"),e.unref(s).bm("editor",F.type),F.$attrs.class]),style:e.normalizeStyle(F.$attrs.style),readonly:!F.editable||F.readonly||e.unref(Z)||F.type==="week",label:F.label,tabindex:F.tabindex,"validate-event":!1,onInput:Ee,onFocus:N,onBlur:x,onKeydown:ce,onChange:_e,onMousedown:ie,onMouseenter:ye,onMouseleave:Ne,onTouchstart:Te,onClick:ue[0]||(ue[0]=e.withModifiers(()=>{},["stop"]))},{prefix:e.withCtx(()=>[e.unref(U)?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(i).e("icon")),onMousedown:e.withModifiers(ie,["prevent"]),onTouchstart:Te},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(U))))]),_:1},8,["class","onMousedown"])):e.createCommentVNode("v-if",!0)]),suffix:e.withCtx(()=>[re.value&&F.clearIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(`${e.unref(i).e("icon")} clear-icon`),onClick:e.withModifiers(te,["stop"])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(F.clearIcon)))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0)]),_:1},8,["id","model-value","name","size","disabled","placeholder","class","style","readonly","label","tabindex","onKeydown"]))]),content:e.withCtx(()=>[e.renderSlot(F.$slots,"default",{visible:g.value,actualVisible:m.value,parsedValue:e.unref(K),format:F.format,dateFormat:F.dateFormat,timeFormat:F.timeFormat,unlinkPanels:F.unlinkPanels,type:F.type,defaultValue:F.defaultValue,onPick:T,onSelectRange:M,onSetPickerOption:G,onCalendarChange:j,onPanelChange:ee,onKeydown:O,onMousedown:ue[1]||(ue[1]=e.withModifiers(()=>{},["stop"]))})]),_:3},16,["visible","transition","popper-class","popper-options"]))}});var su=se(N5,[["__file","picker.vue"]]);const _5=le({...Nw,datetimeRole:String,parsedValue:{type:W(Object)}}),_w=({getAvailableHours:t,getAvailableMinutes:n,getAvailableSeconds:o})=>{const r=(s,i,c,f)=>{const u={hour:t,minute:n,second:o};let d=s;return["hour","minute","second"].forEach(p=>{if(u[p]){let h;const g=u[p];switch(p){case"minute":{h=g(d.hour(),i,f);break}case"second":{h=g(d.hour(),d.minute(),i,f);break}default:{h=g(i,f);break}}if((h==null?void 0:h.length)&&!h.includes(d[p]())){const m=c?0:h.length-1;d=d[p](h[m])}}}),d},l={};return{timePickerOptions:l,getAvailableTime:r,onSetOption:([s,i])=>{l[s]=i}}},iu=t=>{const n=(r,l)=>r||l,o=r=>r!==!0;return t.map(n).filter(o)},Bw=(t,n,o)=>({getHoursList:(s,i)=>yi(24,t&&(()=>t==null?void 0:t(s,i))),getMinutesList:(s,i,c)=>yi(60,n&&(()=>n==null?void 0:n(s,i,c))),getSecondsList:(s,i,c,f)=>yi(60,o&&(()=>o==null?void 0:o(s,i,c,f)))}),$w=(t,n,o)=>{const{getHoursList:r,getMinutesList:l,getSecondsList:a}=Bw(t,n,o);return{getAvailableHours:(f,u)=>iu(r(f,u)),getAvailableMinutes:(f,u,d)=>iu(l(f,u,d)),getAvailableSeconds:(f,u,d,p)=>iu(a(f,u,d,p))}},Tw=t=>{const n=e.ref(t.parsedValue);return e.watch(()=>t.visible,o=>{o||(n.value=t.parsedValue)}),n},ar=new Map;let vw;He&&(document.addEventListener("mousedown",t=>vw=t),document.addEventListener("mouseup",t=>{for(const n of ar.values())for(const{documentHandler:o}of n)o(t,vw)}));function Vw(t,n){let o=[];return Array.isArray(n.arg)?o=n.arg:Mn(n.arg)&&o.push(n.arg),function(r,l){const a=n.instance.popperRef,s=r.target,i=l==null?void 0:l.target,c=!n||!n.instance,f=!s||!i,u=t.contains(s)||t.contains(i),d=t===s,p=o.length&&o.some(g=>g==null?void 0:g.contains(s))||o.length&&o.includes(i),h=a&&(a.contains(s)||a.contains(i));c||f||u||d||p||h||n.value(r,l)}}const Po={beforeMount(t,n){ar.has(t)||ar.set(t,[]),ar.get(t).push({documentHandler:Vw(t,n),bindingFn:n.value})},updated(t,n){ar.has(t)||ar.set(t,[]);const o=ar.get(t),r=o.findIndex(a=>a.bindingFn===n.oldValue),l={documentHandler:Vw(t,n),bindingFn:n.value};r>=0?o.splice(r,1,l):o.push(l)},unmounted(t){ar.delete(t)}},B5=100,$5=600,Sa={beforeMount(t,n){const o=n.value,{interval:r=B5,delay:l=$5}=qe(o)?{}:o;let a,s;const i=()=>qe(o)?o():o.handler(),c=()=>{s&&(clearTimeout(s),s=void 0),a&&(clearInterval(a),a=void 0)};t.addEventListener("mousedown",f=>{f.button===0&&(c(),i(),document.addEventListener("mouseup",()=>c(),{once:!0}),s=setTimeout(()=>{a=setInterval(()=>{i()},r)},l))})}},cu="_trap-focus-children",Pr=[],Mw=t=>{if(Pr.length===0)return;const n=Pr[Pr.length-1][cu];if(n.length>0&&t.code===pe.tab){if(n.length===1){t.preventDefault(),document.activeElement!==n[0]&&n[0].focus();return}const o=t.shiftKey,r=t.target===n[0],l=t.target===n[n.length-1];r&&o&&(t.preventDefault(),n[n.length-1].focus()),l&&!o&&(t.preventDefault(),n[0].focus())}},Iw={beforeMount(t){t[cu]=Sm(t),Pr.push(t),Pr.length<=1&&document.addEventListener("keydown",Mw)},updated(t){e.nextTick(()=>{t[cu]=Sm(t)})},unmounted(){Pr.shift(),Pr.length===0&&document.removeEventListener("keydown",Mw)}};var Pw=!1,Rr,du,fu,Ci,wi,Rw,ki,uu,pu,mu,Ow,hu,gu,Aw,zw;function hn(){if(!Pw){Pw=!0;var t=navigator.userAgent,n=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(t),o=/(Mac OS X)|(Windows)|(Linux)/.exec(t);if(hu=/\b(iPhone|iP[ao]d)/.exec(t),gu=/\b(iP[ao]d)/.exec(t),mu=/Android/i.exec(t),Aw=/FBAN\/\w+;/i.exec(t),zw=/Mobile/i.exec(t),Ow=!!/Win64/.exec(t),n){Rr=n[1]?parseFloat(n[1]):n[5]?parseFloat(n[5]):NaN,Rr&&document&&document.documentMode&&(Rr=document.documentMode);var r=/(?:Trident\/(\d+.\d+))/.exec(t);Rw=r?parseFloat(r[1])+4:Rr,du=n[2]?parseFloat(n[2]):NaN,fu=n[3]?parseFloat(n[3]):NaN,Ci=n[4]?parseFloat(n[4]):NaN,Ci?(n=/(?:Chrome\/(\d+\.\d+))/.exec(t),wi=n&&n[1]?parseFloat(n[1]):NaN):wi=NaN}else Rr=du=fu=wi=Ci=NaN;if(o){if(o[1]){var l=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(t);ki=l?parseFloat(l[1].replace("_",".")):!0}else ki=!1;uu=!!o[2],pu=!!o[3]}else ki=uu=pu=!1}}var yu={ie:function(){return hn()||Rr},ieCompatibilityMode:function(){return hn()||Rw>Rr},ie64:function(){return yu.ie()&&Ow},firefox:function(){return hn()||du},opera:function(){return hn()||fu},webkit:function(){return hn()||Ci},safari:function(){return yu.webkit()},chrome:function(){return hn()||wi},windows:function(){return hn()||uu},osx:function(){return hn()||ki},linux:function(){return hn()||pu},iphone:function(){return hn()||hu},mobile:function(){return hn()||hu||gu||mu||zw},nativeApp:function(){return hn()||Aw},android:function(){return hn()||mu},ipad:function(){return hn()||gu}},T5=yu,Si=!!(typeof window<"u"&&window.document&&window.document.createElement),v5={canUseDOM:Si,canUseWorkers:typeof Worker<"u",canUseEventListeners:Si&&!!(window.addEventListener||window.attachEvent),canUseViewport:Si&&!!window.screen,isInWorker:!Si},Dw=v5,Lw;Dw.canUseDOM&&(Lw=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function V5(t,n){if(!Dw.canUseDOM||n&&!("addEventListener"in document))return!1;var o="on"+t,r=o in document;if(!r){var l=document.createElement("div");l.setAttribute(o,"return;"),r=typeof l[o]=="function"}return!r&&Lw&&t==="wheel"&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var M5=V5,xw=10,Fw=40,Hw=800;function Kw(t){var n=0,o=0,r=0,l=0;return"detail"in t&&(o=t.detail),"wheelDelta"in t&&(o=-t.wheelDelta/120),"wheelDeltaY"in t&&(o=-t.wheelDeltaY/120),"wheelDeltaX"in t&&(n=-t.wheelDeltaX/120),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(n=o,o=0),r=n*xw,l=o*xw,"deltaY"in t&&(l=t.deltaY),"deltaX"in t&&(r=t.deltaX),(r||l)&&t.deltaMode&&(t.deltaMode==1?(r*=Fw,l*=Fw):(r*=Hw,l*=Hw)),r&&!n&&(n=r<1?-1:1),l&&!o&&(o=l<1?-1:1),{spinX:n,spinY:o,pixelX:r,pixelY:l}}Kw.getEventType=function(){return T5.firefox()?"DOMMouseScroll":M5("wheel")?"wheel":"mousewheel"};var I5=Kw;/** +* Checks if an event is supported in the current execution environment. +* +* NOTE: This will not work correctly for non-generic events such as `change`, +* `reset`, `load`, `error`, and `select`. +* +* Borrows from Modernizr. +* +* @param {string} eventNameSuffix Event name, e.g. "click". +* @param {?boolean} capture Check if the capture phase is supported. +* @return {boolean} True if the event is supported. +* @internal +* @license Modernizr 3.0.0pre (Custom Build) | MIT +*/const P5=function(t,n){if(t&&t.addEventListener){const o=function(r){const l=I5(r);n&&Reflect.apply(n,this,[r,l])};t.addEventListener("wheel",o,{passive:!0})}},Ww={beforeMount(t,n){P5(t,n.value)}},R5=le({role:{type:String,required:!0},spinnerDate:{type:W(Object),required:!0},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:W(String),default:""},...Ew}),O5=["onClick"],A5=["onMouseenter"];var bu=se(e.defineComponent({__name:"basic-time-spinner",props:R5,emits:["change","select-range","set-option"],setup(t,{emit:n}){const o=t,r=Q("time"),{getHoursList:l,getMinutesList:a,getSecondsList:s}=Bw(o.disabledHours,o.disabledMinutes,o.disabledSeconds);let i=!1;const c=e.ref(),f=e.ref(),u=e.ref(),d=e.ref(),p={hours:f,minutes:u,seconds:d},h=e.computed(()=>o.showSeconds?eu:eu.slice(0,2)),g=e.computed(()=>{const{spinnerDate:N}=o,A=N.hour(),x=N.minute(),H=N.second();return{hours:A,minutes:x,seconds:H}}),m=e.computed(()=>{const{hours:N,minutes:A}=e.unref(g);return{hours:l(o.role),minutes:a(N,o.role),seconds:s(N,A,o.role)}}),b=e.computed(()=>{const{hours:N,minutes:A,seconds:x}=e.unref(g);return{hours:gi(N,23),minutes:gi(A,59),seconds:gi(x,59)}}),y=Gt(N=>{i=!1,w(N)},200),C=N=>{if(!!!o.amPmMode)return"";const x=o.amPmMode==="A";let H=N<12?" am":" pm";return x&&(H=H.toUpperCase()),H},k=N=>{let A;switch(N){case"hours":A=[0,2];break;case"minutes":A=[3,5];break;case"seconds":A=[6,8];break}const[x,H]=A;n("select-range",x,H),c.value=N},w=N=>{_(N,e.unref(g)[N])},E=()=>{w("hours"),w("minutes"),w("seconds")},S=N=>N.querySelector(`.${r.namespace.value}-scrollbar__wrap`),_=(N,A)=>{if(o.arrowControl)return;const x=e.unref(p[N]);x&&x.$el&&(S(x.$el).scrollTop=Math.max(0,A*B(N)))},B=N=>{const A=e.unref(p[N]),x=A==null?void 0:A.$el.querySelector("li");return x&&Number.parseFloat(Go(x,"height"))||0},M=()=>{T(1)},P=()=>{T(-1)},T=N=>{c.value||k("hours");const A=c.value,x=e.unref(g)[A],H=c.value==="hours"?24:60,K=I(A,x,N,H);v(A,K),_(A,K),e.nextTick(()=>k(A))},I=(N,A,x,H)=>{let K=(A+x+H)%H;const q=e.unref(m)[N];for(;q[K]&&K!==A;)K=(K+x+H)%H;return K},v=(N,A)=>{if(e.unref(m)[N][A])return;const{hours:K,minutes:q,seconds:ne}=e.unref(g);let Y;switch(N){case"hours":Y=o.spinnerDate.hour(A).minute(q).second(ne);break;case"minutes":Y=o.spinnerDate.hour(K).minute(A).second(ne);break;case"seconds":Y=o.spinnerDate.hour(K).minute(q).second(A);break}n("change",Y)},O=(N,{value:A,disabled:x})=>{x||(v(N,A),k(N),_(N,A))},D=N=>{i=!0,y(N);const A=Math.min(Math.round((S(e.unref(p[N]).$el).scrollTop-(z(N)*.5-10)/B(N)+3)/B(N)),N==="hours"?23:59);v(N,A)},z=N=>e.unref(p[N]).$el.offsetHeight,$=()=>{const N=A=>{const x=e.unref(p[A]);x&&x.$el&&(S(x.$el).onscroll=()=>{D(A)})};N("hours"),N("minutes"),N("seconds")};e.onMounted(()=>{e.nextTick(()=>{!o.arrowControl&&$(),E(),o.role==="start"&&k("hours")})});const R=(N,A)=>{p[A].value=N};return n("set-option",[`${o.role}_scrollDown`,T]),n("set-option",[`${o.role}_emitSelectRange`,k]),e.watch(()=>o.spinnerDate,()=>{i||E()}),(N,A)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(r).b("spinner"),{"has-seconds":N.showSeconds}])},[N.arrowControl?e.createCommentVNode("v-if",!0):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(e.unref(h),x=>(e.openBlock(),e.createBlock(e.unref(mo),{key:x,ref_for:!0,ref:H=>R(H,x),class:e.normalizeClass(e.unref(r).be("spinner","wrapper")),"wrap-style":"max-height: inherit;","view-class":e.unref(r).be("spinner","list"),noresize:"",tag:"ul",onMouseenter:H=>k(x),onMousemove:H=>w(x)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m)[x],(H,K)=>(e.openBlock(),e.createElementBlock("li",{key:K,class:e.normalizeClass([e.unref(r).be("spinner","item"),e.unref(r).is("active",K===e.unref(g)[x]),e.unref(r).is("disabled",H)]),onClick:q=>O(x,{value:K,disabled:H})},[x==="hours"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(("0"+(N.amPmMode?K%12||12:K)).slice(-2))+e.toDisplayString(C(K)),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(("0"+K).slice(-2)),1)],64))],10,O5))),128))]),_:2},1032,["class","view-class","onMouseenter","onMousemove"]))),128)),N.arrowControl?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(e.unref(h),x=>(e.openBlock(),e.createElementBlock("div",{key:x,class:e.normalizeClass([e.unref(r).be("spinner","wrapper"),e.unref(r).is("arrow")]),onMouseenter:H=>k(x)},[e.withDirectives((e.openBlock(),e.createBlock(e.unref(fe),{class:e.normalizeClass(["arrow-up",e.unref(r).be("spinner","arrow")])},{default:e.withCtx(()=>[e.createVNode(e.unref(Ts))]),_:1},8,["class"])),[[e.unref(Sa),P]]),e.withDirectives((e.openBlock(),e.createBlock(e.unref(fe),{class:e.normalizeClass(["arrow-down",e.unref(r).be("spinner","arrow")])},{default:e.withCtx(()=>[e.createVNode(e.unref(qo))]),_:1},8,["class"])),[[e.unref(Sa),M]]),e.createElementVNode("ul",{class:e.normalizeClass(e.unref(r).be("spinner","list"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b)[x],(H,K)=>(e.openBlock(),e.createElementBlock("li",{key:K,class:e.normalizeClass([e.unref(r).be("spinner","item"),e.unref(r).is("active",H===e.unref(g)[x]),e.unref(r).is("disabled",e.unref(m)[x][H])])},[typeof H=="number"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[x==="hours"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(("0"+(N.amPmMode?H%12||12:H)).slice(-2))+e.toDisplayString(C(H)),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(("0"+H).slice(-2)),1)],64))],64)):e.createCommentVNode("v-if",!0)],2))),128))],2)],42,A5))),128)):e.createCommentVNode("v-if",!0)],2))}}),[["__file","basic-time-spinner.vue"]]),Ea=se(e.defineComponent({__name:"panel-time-pick",props:_5,emits:["pick","select-range","set-picker-option"],setup(t,{emit:n}){const o=t,r=e.inject("EP_PICKER_BASE"),{arrowControl:l,disabledHours:a,disabledMinutes:s,disabledSeconds:i,defaultValue:c}=r.props,{getAvailableHours:f,getAvailableMinutes:u,getAvailableSeconds:d}=$w(a,s,i),p=Q("time"),{t:h,lang:g}=Ke(),m=e.ref([0,2]),b=Tw(o),y=e.computed(()=>$t(o.actualVisible)?`${p.namespace.value}-zoom-in-top`:""),C=e.computed(()=>o.format.includes("ss")),k=e.computed(()=>o.format.includes("A")?"A":o.format.includes("a")?"a":""),w=R=>{const N=ve(R).locale(g.value),A=O(N);return N.isSame(A)},E=()=>{n("pick",b.value,!1)},S=(R=!1,N=!1)=>{N||n("pick",o.parsedValue,R)},_=R=>{if(!o.visible)return;const N=O(R).millisecond(0);n("pick",N,!0)},B=(R,N)=>{n("select-range",R,N),m.value=[R,N]},M=R=>{const N=[0,3].concat(C.value?[6]:[]),A=["hours","minutes"].concat(C.value?["seconds"]:[]),H=(N.indexOf(m.value[0])+R+N.length)%N.length;T.start_emitSelectRange(A[H])},P=R=>{const N=R.code,{left:A,right:x,up:H,down:K}=pe;if([A,x].includes(N)){M(N===A?-1:1),R.preventDefault();return}if([H,K].includes(N)){const q=N===H?-1:1;T.start_scrollDown(q),R.preventDefault();return}},{timePickerOptions:T,onSetOption:I,getAvailableTime:v}=_w({getAvailableHours:f,getAvailableMinutes:u,getAvailableSeconds:d}),O=R=>v(R,o.datetimeRole||"",!0),D=R=>R?ve(R,o.format).locale(g.value):null,z=R=>R?R.format(o.format):null,$=()=>ve(c).locale(g.value);return n("set-picker-option",["isValidValue",w]),n("set-picker-option",["formatToString",z]),n("set-picker-option",["parseUserInput",D]),n("set-picker-option",["handleKeydownInput",P]),n("set-picker-option",["getRangeAvailableTime",O]),n("set-picker-option",["getDefaultValue",$]),(R,N)=>(e.openBlock(),e.createBlock(e.Transition,{name:e.unref(y)},{default:e.withCtx(()=>[R.actualVisible||R.visible?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(p).b("panel"))},[e.createElementVNode("div",{class:e.normalizeClass([e.unref(p).be("panel","content"),{"has-seconds":e.unref(C)}])},[e.createVNode(bu,{ref:"spinner",role:R.datetimeRole||"start","arrow-control":e.unref(l),"show-seconds":e.unref(C),"am-pm-mode":e.unref(k),"spinner-date":R.parsedValue,"disabled-hours":e.unref(a),"disabled-minutes":e.unref(s),"disabled-seconds":e.unref(i),onChange:_,onSetOption:e.unref(I),onSelectRange:B},null,8,["role","arrow-control","show-seconds","am-pm-mode","spinner-date","disabled-hours","disabled-minutes","disabled-seconds","onSetOption"])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(p).be("panel","footer"))},[e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(p).be("panel","btn"),"cancel"]),onClick:E},e.toDisplayString(e.unref(h)("el.datepicker.cancel")),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(p).be("panel","btn"),"confirm"]),onClick:N[0]||(N[0]=A=>S())},e.toDisplayString(e.unref(h)("el.datepicker.confirm")),3)],2)],2)):e.createCommentVNode("v-if",!0)]),_:1},8,["name"]))}}),[["__file","panel-time-pick.vue"]]);const z5=le({...Nw,parsedValue:{type:W(Array)}}),D5=["disabled"];var L5=se(e.defineComponent({__name:"panel-time-range",props:z5,emits:["pick","select-range","set-picker-option"],setup(t,{emit:n}){const o=t,r=(oe,ie)=>{const ye=[];for(let Ne=oe;Ne<=ie;Ne++)ye.push(Ne);return ye},{t:l,lang:a}=Ke(),s=Q("time"),i=Q("picker"),c=e.inject("EP_PICKER_BASE"),{arrowControl:f,disabledHours:u,disabledMinutes:d,disabledSeconds:p,defaultValue:h}=c.props,g=e.computed(()=>[s.be("range-picker","body"),s.be("panel","content"),s.is("arrow",f),w.value?"has-seconds":""]),m=e.computed(()=>[s.be("range-picker","body"),s.be("panel","content"),s.is("arrow",f),w.value?"has-seconds":""]),b=e.computed(()=>o.parsedValue[0]),y=e.computed(()=>o.parsedValue[1]),C=Tw(o),k=()=>{n("pick",C.value,!1)},w=e.computed(()=>o.format.includes("ss")),E=e.computed(()=>o.format.includes("A")?"A":o.format.includes("a")?"a":""),S=(oe=!1)=>{n("pick",[b.value,y.value],oe)},_=oe=>{P(oe.millisecond(0),y.value)},B=oe=>{P(b.value,oe.millisecond(0))},M=oe=>{const ie=oe.map(Ne=>ve(Ne).locale(a.value)),ye=x(ie);return ie[0].isSame(ye[0])&&ie[1].isSame(ye[1])},P=(oe,ie)=>{n("pick",[oe,ie],!0)},T=e.computed(()=>b.value>y.value),I=e.ref([0,2]),v=(oe,ie)=>{n("select-range",oe,ie,"min"),I.value=[oe,ie]},O=e.computed(()=>w.value?11:8),D=(oe,ie)=>{n("select-range",oe,ie,"max");const ye=e.unref(O);I.value=[oe+ye,ie+ye]},z=oe=>{const ie=w.value?[0,3,6,11,14,17]:[0,3,8,11],ye=["hours","minutes"].concat(w.value?["seconds"]:[]),Te=(ie.indexOf(I.value[0])+oe+ie.length)%ie.length,Pe=ie.length/2;Te{const ie=oe.code,{left:ye,right:Ne,up:Te,down:Pe}=pe;if([ye,Ne].includes(ie)){z(ie===ye?-1:1),oe.preventDefault();return}if([Te,Pe].includes(ie)){const he=ie===Te?-1:1,Ce=I.value[0]{const ye=u?u(oe):[],Ne=oe==="start",Pe=(ie||(Ne?y.value:b.value)).hour(),he=Ne?r(Pe+1,23):r(0,Pe-1);return _s(ye,he)},N=(oe,ie,ye)=>{const Ne=d?d(oe,ie):[],Te=ie==="start",Pe=ye||(Te?y.value:b.value),he=Pe.hour();if(oe!==he)return Ne;const Ce=Pe.minute(),ge=Te?r(Ce+1,59):r(0,Ce-1);return _s(Ne,ge)},A=(oe,ie,ye,Ne)=>{const Te=p?p(oe,ie,ye):[],Pe=ye==="start",he=Ne||(Pe?y.value:b.value),Ce=he.hour(),ge=he.minute();if(oe!==Ce||ie!==ge)return Te;const me=he.second(),_e=Pe?r(me+1,59):r(0,me-1);return _s(Te,_e)},x=([oe,ie])=>[Y(oe,"start",!0,ie),Y(ie,"end",!1,oe)],{getAvailableHours:H,getAvailableMinutes:K,getAvailableSeconds:q}=$w(R,N,A),{timePickerOptions:ne,getAvailableTime:Y,onSetOption:Z}=_w({getAvailableHours:H,getAvailableMinutes:K,getAvailableSeconds:q}),U=oe=>oe?Re(oe)?oe.map(ie=>ve(ie,o.format).locale(a.value)):ve(oe,o.format).locale(a.value):null,re=oe=>oe?Re(oe)?oe.map(ie=>ie.format(o.format)):oe.format(o.format):null,te=()=>{if(Re(h))return h.map(ie=>ve(ie).locale(a.value));const oe=ve(h).locale(a.value);return[oe,oe.add(60,"m")]};return n("set-picker-option",["formatToString",re]),n("set-picker-option",["parseUserInput",U]),n("set-picker-option",["isValidValue",M]),n("set-picker-option",["handleKeydownInput",$]),n("set-picker-option",["getDefaultValue",te]),n("set-picker-option",["getRangeAvailableTime",x]),(oe,ie)=>oe.actualVisible?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(s).b("range-picker"),e.unref(i).b("panel")])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).be("range-picker","content"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).be("range-picker","cell"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).be("range-picker","header"))},e.toDisplayString(e.unref(l)("el.datepicker.startTime")),3),e.createElementVNode("div",{class:e.normalizeClass(e.unref(g))},[e.createVNode(bu,{ref:"minSpinner",role:"start","show-seconds":e.unref(w),"am-pm-mode":e.unref(E),"arrow-control":e.unref(f),"spinner-date":e.unref(b),"disabled-hours":R,"disabled-minutes":N,"disabled-seconds":A,onChange:_,onSetOption:e.unref(Z),onSelectRange:v},null,8,["show-seconds","am-pm-mode","arrow-control","spinner-date","onSetOption"])],2)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).be("range-picker","cell"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).be("range-picker","header"))},e.toDisplayString(e.unref(l)("el.datepicker.endTime")),3),e.createElementVNode("div",{class:e.normalizeClass(e.unref(m))},[e.createVNode(bu,{ref:"maxSpinner",role:"end","show-seconds":e.unref(w),"am-pm-mode":e.unref(E),"arrow-control":e.unref(f),"spinner-date":e.unref(y),"disabled-hours":R,"disabled-minutes":N,"disabled-seconds":A,onChange:B,onSetOption:e.unref(Z),onSelectRange:D},null,8,["show-seconds","am-pm-mode","arrow-control","spinner-date","onSetOption"])],2)],2)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).be("panel","footer"))},[e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(s).be("panel","btn"),"cancel"]),onClick:ie[0]||(ie[0]=ye=>k())},e.toDisplayString(e.unref(l)("el.datepicker.cancel")),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(s).be("panel","btn"),"confirm"]),disabled:e.unref(T),onClick:ie[1]||(ie[1]=ye=>S())},e.toDisplayString(e.unref(l)("el.datepicker.confirm")),11,D5)],2)],2)):e.createCommentVNode("v-if",!0)}}),[["__file","panel-time-range.vue"]]);ve.extend(Qf);var x5=e.defineComponent({name:"ElTimePicker",install:null,props:{...bi,isRange:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,n){const o=e.ref(),[r,l]=t.isRange?["timerange",L5]:["time",Ea],a=s=>n.emit("update:modelValue",s);return e.provide("ElPopperOptions",t.popperOptions),n.expose({focus:s=>{var i;(i=o.value)==null||i.handleFocusInput(s)},blur:s=>{var i;(i=o.value)==null||i.handleBlurInput(s)},handleOpen:()=>{var s;(s=o.value)==null||s.handleOpen()},handleClose:()=>{var s;(s=o.value)==null||s.handleClose()}}),()=>{var s;const i=(s=t.format)!=null?s:hi;return e.createVNode(su,e.mergeProps(t,{ref:o,type:r,format:i,"onUpdate:modelValue":a}),{default:c=>e.createVNode(l,c,null)})}}});const Ei=x5;Ei.install=t=>{t.component(Ei.name,Ei)};const jw=Ei,F5=(t,n)=>{const o=t.subtract(1,"month").endOf("month").date();return Io(n).map((r,l)=>o-(n-l-1))},H5=t=>{const n=t.daysInMonth();return Io(n).map((o,r)=>r+1)},K5=t=>Io(t.length/7).map(n=>{const o=n*7;return t.slice(o,o+7)}),W5=le({selectedDay:{type:W(Object)},range:{type:W(Array)},date:{type:W(Object),required:!0},hideHeader:{type:Boolean}}),j5={pick:t=>nt(t)};var Uw={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){return function(o,r,l){var a=r.prototype,s=function(d){return d&&(d.indexOf?d:d.s)},i=function(d,p,h,g,m){var b=d.name?d:d.$locale(),y=s(b[p]),C=s(b[h]),k=y||C.map(function(E){return E.slice(0,g)});if(!m)return k;var w=b.weekStart;return k.map(function(E,S){return k[(S+(w||0))%7]})},c=function(){return l.Ls[l.locale()]},f=function(d,p){return d.formats[p]||function(h){return h.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(g,m,b){return m||b.slice(1)})}(d.formats[p.toUpperCase()])},u=function(){var d=this;return{months:function(p){return p?p.format("MMMM"):i(d,"months")},monthsShort:function(p){return p?p.format("MMM"):i(d,"monthsShort","months",3)},firstDayOfWeek:function(){return d.$locale().weekStart||0},weekdays:function(p){return p?p.format("dddd"):i(d,"weekdays")},weekdaysMin:function(p){return p?p.format("dd"):i(d,"weekdaysMin","weekdays",2)},weekdaysShort:function(p){return p?p.format("ddd"):i(d,"weekdaysShort","weekdays",3)},longDateFormat:function(p){return f(d.$locale(),p)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};a.localeData=function(){return u.bind(this)()},l.localeData=function(){var d=c();return{firstDayOfWeek:function(){return d.weekStart||0},weekdays:function(){return l.weekdays()},weekdaysShort:function(){return l.weekdaysShort()},weekdaysMin:function(){return l.weekdaysMin()},months:function(){return l.months()},monthsShort:function(){return l.monthsShort()},longDateFormat:function(p){return f(d,p)},meridiem:d.meridiem,ordinal:d.ordinal}},l.months=function(){return i(c(),"months")},l.monthsShort=function(){return i(c(),"monthsShort","months",3)},l.weekdays=function(d){return i(c(),"weekdays",null,null,d)},l.weekdaysShort=function(d){return i(c(),"weekdaysShort","weekdays",3,d)},l.weekdaysMin=function(d){return i(c(),"weekdaysMin","weekdays",2,d)}}})})(Uw);var Gw=Uw.exports;const U5=(t,n)=>{ve.extend(Gw);const o=ve.localeData().firstDayOfWeek(),{t:r,lang:l}=Ke(),a=ve().locale(l.value),s=e.computed(()=>!!t.range&&!!t.range.length),i=e.computed(()=>{let p=[];if(s.value){const[h,g]=t.range,m=Io(g.date()-h.date()+1).map(C=>({text:h.date()+C,type:"current"}));let b=m.length%7;b=b===0?0:7-b;const y=Io(b).map((C,k)=>({text:k+1,type:"next"}));p=m.concat(y)}else{const h=t.date.startOf("month").day(),g=F5(t.date,(h-o+7)%7).map(C=>({text:C,type:"prev"})),m=H5(t.date).map(C=>({text:C,type:"current"}));p=[...g,...m];const b=7-(p.length%7||7),y=Io(b).map((C,k)=>({text:k+1,type:"next"}));p=p.concat(y)}return K5(p)}),c=e.computed(()=>{const p=o;return p===0?Is.map(h=>r(`el.datepicker.weeks.${h}`)):Is.slice(p).concat(Is.slice(0,p)).map(h=>r(`el.datepicker.weeks.${h}`))}),f=(p,h)=>{switch(h){case"prev":return t.date.startOf("month").subtract(1,"month").date(p);case"next":return t.date.startOf("month").add(1,"month").date(p);case"current":return t.date.date(p)}};return{now:a,isInRange:s,rows:i,weekDays:c,getFormattedDate:f,handlePickDay:({text:p,type:h})=>{const g=f(p,h);n("pick",g)},getSlotData:({text:p,type:h})=>{const g=f(p,h);return{isSelected:g.isSame(t.selectedDay),type:`${h}-month`,day:g.format("YYYY-MM-DD"),date:g.toDate()}}}},G5={key:0},q5=["onClick"],Y5=e.defineComponent({name:"DateTable"}),X5=e.defineComponent({...Y5,props:W5,emits:j5,setup(t,{expose:n,emit:o}){const r=t,{isInRange:l,now:a,rows:s,weekDays:i,getFormattedDate:c,handlePickDay:f,getSlotData:u}=U5(r,o),d=Q("calendar-table"),p=Q("calendar-day"),h=({text:g,type:m})=>{const b=[m];if(m==="current"){const y=c(g,m);y.isSame(r.selectedDay,"day")&&b.push(p.is("selected")),y.isSame(a,"day")&&b.push(p.is("today"))}return b};return n({getFormattedDate:c}),(g,m)=>(e.openBlock(),e.createElementBlock("table",{class:e.normalizeClass([e.unref(d).b(),e.unref(d).is("range",e.unref(l))]),cellspacing:"0",cellpadding:"0"},[g.hideHeader?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("thead",G5,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),b=>(e.openBlock(),e.createElementBlock("th",{key:b},e.toDisplayString(b),1))),128))])),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),(b,y)=>(e.openBlock(),e.createElementBlock("tr",{key:y,class:e.normalizeClass({[e.unref(d).e("row")]:!0,[e.unref(d).em("row","hide-border")]:y===0&&g.hideHeader})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b,(C,k)=>(e.openBlock(),e.createElementBlock("td",{key:k,class:e.normalizeClass(h(C)),onClick:w=>e.unref(f)(C)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(p).b())},[e.renderSlot(g.$slots,"date-cell",{data:e.unref(u)(C)},()=>[e.createElementVNode("span",null,e.toDisplayString(C.text),1)])],2)],10,q5))),128))],2))),128))])],2))}});var qw=se(X5,[["__file","date-table.vue"]]);const Z5=(t,n)=>{const o=t.endOf("month"),r=n.startOf("month"),a=o.isSame(r,"week")?r.add(1,"week"):r;return[[t,o],[a.startOf("week"),n]]},J5=(t,n)=>{const o=t.endOf("month"),r=t.add(1,"month").startOf("month"),l=o.isSame(r,"week")?r.add(1,"week"):r,a=l.endOf("month"),s=n.startOf("month"),i=a.isSame(s,"week")?s.add(1,"week"):s;return[[t,o],[l.startOf("week"),a],[i.startOf("week"),n]]},Q5=(t,n,o)=>{const r=e.useSlots(),{lang:l}=Ke(),a=e.ref(),s=ve().locale(l.value),i=e.computed({get(){return t.modelValue?f.value:a.value},set(y){if(!y)return;a.value=y;const C=y.toDate();n(qt,C),n(Ie,C)}}),c=e.computed(()=>{if(!t.range)return[];const y=t.range.map(w=>ve(w).locale(l.value)),[C,k]=y;return C.isAfter(k)?[]:C.isSame(k,"month")?g(C,k):C.add(1,"month").month()!==k.month()?[]:g(C,k)}),f=e.computed(()=>t.modelValue?ve(t.modelValue).locale(l.value):i.value||(c.value.length?c.value[0][0]:s)),u=e.computed(()=>f.value.subtract(1,"month").date(1)),d=e.computed(()=>f.value.add(1,"month").date(1)),p=e.computed(()=>f.value.subtract(1,"year").date(1)),h=e.computed(()=>f.value.add(1,"year").date(1)),g=(y,C)=>{const k=y.startOf("week"),w=C.endOf("week"),E=k.get("month"),S=w.get("month");return E===S?[[k,w]]:(E+1)%12===S?Z5(k,w):E+2===S||(E+1)%11===S?J5(k,w):[]},m=y=>{i.value=y},b=y=>{const k={"prev-month":u.value,"next-month":d.value,"prev-year":p.value,"next-year":h.value,today:s}[y];k.isSame(f.value,"day")||m(k)};return jn({from:'"dateCell"',replacement:'"date-cell"',scope:"ElCalendar",version:"2.3.0",ref:"https://element-plus.org/en-US/component/calendar.html#slots",type:"Slot"},e.computed(()=>!!r.dateCell)),{calculateValidatedDateRange:g,date:f,realSelectedDay:i,pickDay:m,selectDate:b,validatedRange:c}},eH=t=>Re(t)&&t.length===2&&t.every(n=>zl(n)),Yw=le({modelValue:{type:Date},range:{type:W(Array),validator:eH}}),Xw={[Ie]:t=>zl(t),[qt]:t=>zl(t)},tH="ElCalendar",nH=e.defineComponent({name:tH}),oH=e.defineComponent({...nH,props:Yw,emits:Xw,setup(t,{expose:n,emit:o}){const r=t,l=Q("calendar"),{calculateValidatedDateRange:a,date:s,pickDay:i,realSelectedDay:c,selectDate:f,validatedRange:u}=Q5(r,o),{t:d}=Ke(),p=e.computed(()=>{const h=`el.datepicker.month${s.value.format("M")}`;return`${s.value.year()} ${d("el.datepicker.year")} ${d(h)}`});return n({selectedDay:c,pickDay:i,selectDate:f,calculateValidatedDateRange:a}),(h,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(l).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("header"))},[e.renderSlot(h.$slots,"header",{date:e.unref(p)},()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("title"))},e.toDisplayString(e.unref(p)),3),e.unref(u).length===0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("button-group"))},[e.createVNode(e.unref(Jf),null,{default:e.withCtx(()=>[e.createVNode(e.unref(At),{size:"small",onClick:g[0]||(g[0]=m=>e.unref(f)("prev-month"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(d)("el.datepicker.prevMonth")),1)]),_:1}),e.createVNode(e.unref(At),{size:"small",onClick:g[1]||(g[1]=m=>e.unref(f)("today"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(d)("el.datepicker.today")),1)]),_:1}),e.createVNode(e.unref(At),{size:"small",onClick:g[2]||(g[2]=m=>e.unref(f)("next-month"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(d)("el.datepicker.nextMonth")),1)]),_:1})]),_:1})],2)):e.createCommentVNode("v-if",!0)])],2),e.unref(u).length===0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("body"))},[e.createVNode(qw,{date:e.unref(s),"selected-day":e.unref(c),onPick:e.unref(i)},e.createSlots({_:2},[h.$slots["date-cell"]||h.$slots.dateCell?{name:"date-cell",fn:e.withCtx(m=>[h.$slots["date-cell"]?e.renderSlot(h.$slots,"date-cell",e.normalizeProps(e.mergeProps({key:0},m))):e.renderSlot(h.$slots,"dateCell",e.normalizeProps(e.mergeProps({key:1},m)))])}:void 0]),1032,["date","selected-day","onPick"])],2)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).e("body"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(u),(m,b)=>(e.openBlock(),e.createBlock(qw,{key:b,date:m[0],"selected-day":e.unref(c),range:m,"hide-header":b!==0,onPick:e.unref(i)},e.createSlots({_:2},[h.$slots["date-cell"]||h.$slots.dateCell?{name:"date-cell",fn:e.withCtx(y=>[h.$slots["date-cell"]?e.renderSlot(h.$slots,"date-cell",e.normalizeProps(e.mergeProps({key:0},y))):e.renderSlot(h.$slots,"dateCell",e.normalizeProps(e.mergeProps({key:1},y)))])}:void 0]),1032,["date","selected-day","range","hide-header","onPick"]))),128))],2))],2))}});var rH=se(oH,[["__file","calendar.vue"]]);const Zw=Me(rH),Jw=le({header:{type:String,default:""},footer:{type:String,default:""},bodyStyle:{type:W([String,Object,Array]),default:""},bodyClass:String,shadow:{type:String,values:["always","hover","never"],default:"always"}}),lH=e.defineComponent({name:"ElCard"}),aH=e.defineComponent({...lH,props:Jw,setup(t){const n=Q("card");return(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(n).b(),e.unref(n).is(`${o.shadow}-shadow`)])},[o.$slots.header||o.header?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).e("header"))},[e.renderSlot(o.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(o.header),1)])],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass([e.unref(n).e("body"),o.bodyClass]),style:e.normalizeStyle(o.bodyStyle)},[e.renderSlot(o.$slots,"default")],6),o.$slots.footer||o.footer?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(n).e("footer"))},[e.renderSlot(o.$slots,"footer",{},()=>[e.createTextVNode(e.toDisplayString(o.footer),1)])],2)):e.createCommentVNode("v-if",!0)],2))}});var sH=se(aH,[["__file","card.vue"]]);const Qw=Me(sH),e1=le({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:""},loop:{type:Boolean,default:!0},direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},pauseOnHover:{type:Boolean,default:!0}}),t1={change:(t,n)=>[t,n].every(be)},Cu=Symbol("carouselContextKey"),n1=300,iH=(t,n,o)=>{const{children:r,addChild:l,removeChild:a}=qs(e.getCurrentInstance(),"ElCarouselItem"),s=e.useSlots(),i=e.ref(-1),c=e.ref(null),f=e.ref(!1),u=e.ref(),d=e.ref(0),p=e.ref(!0),h=e.computed(()=>t.arrow!=="never"&&!e.unref(b)),g=e.computed(()=>r.value.some(K=>K.props.label.toString().length>0)),m=e.computed(()=>t.type==="card"),b=e.computed(()=>t.direction==="vertical"),y=e.computed(()=>t.height!=="auto"?{height:t.height}:{height:`${d.value}px`,overflow:"hidden"}),C=jo(K=>{B(K)},n1,{trailing:!0}),k=jo(K=>{z(K)},n1),w=K=>p.value?i.value<=1?K<=1:K>1:!0;function E(){c.value&&(clearInterval(c.value),c.value=null)}function S(){t.interval<=0||!t.autoplay||c.value||(c.value=setInterval(()=>_(),t.interval))}const _=()=>{i.valueZ.props.name===K);Y.length>0&&(K=r.value.indexOf(Y[0]))}if(K=Number(K),Number.isNaN(K)||K!==Math.floor(K))return;const q=r.value.length,ne=i.value;K<0?i.value=t.loop?q-1:0:K>=q?i.value=t.loop?0:q-1:i.value=K,ne===i.value&&M(ne),N()}function M(K){r.value.forEach((q,ne)=>{q.translateItem(ne,i.value,K)})}function P(K,q){var ne,Y,Z,U;const re=e.unref(r),te=re.length;if(te===0||!K.states.inStage)return!1;const oe=q+1,ie=q-1,ye=te-1,Ne=re[ye].states.active,Te=re[0].states.active,Pe=(Y=(ne=re[oe])==null?void 0:ne.states)==null?void 0:Y.active,he=(U=(Z=re[ie])==null?void 0:Z.states)==null?void 0:U.active;return q===ye&&Te||Pe?"left":q===0&&Ne||he?"right":!1}function T(){f.value=!0,t.pauseOnHover&&E()}function I(){f.value=!1,S()}function v(K){e.unref(b)||r.value.forEach((q,ne)=>{K===P(q,ne)&&(q.states.hover=!0)})}function O(){e.unref(b)||r.value.forEach(K=>{K.states.hover=!1})}function D(K){i.value=K}function z(K){t.trigger==="hover"&&K!==i.value&&(i.value=K)}function $(){B(i.value-1)}function R(){B(i.value+1)}function N(){E(),t.pauseOnHover||S()}function A(K){t.height==="auto"&&(d.value=K)}function x(){var K;const q=(K=s.default)==null?void 0:K.call(s);if(!q)return null;const ne=Er(q),Y="ElCarouselItem",Z=ne.filter(U=>e.isVNode(U)&&U.type.name===Y);return(Z==null?void 0:Z.length)===2&&t.loop&&!m.value?(p.value=!0,Z):(p.value=!1,null)}e.watch(()=>i.value,(K,q)=>{M(q),p.value&&(K=K%2,q=q%2),q>-1&&n("change",K,q)}),e.watch(()=>t.autoplay,K=>{K?S():E()}),e.watch(()=>t.loop,()=>{B(i.value)}),e.watch(()=>t.interval,()=>{N()});const H=e.shallowRef();return e.onMounted(()=>{e.watch(()=>r.value,()=>{r.value.length>0&&B(t.initialIndex)},{immediate:!0}),H.value=jt(u.value,()=>{M()}),S()}),e.onBeforeUnmount(()=>{E(),u.value&&H.value&&H.value.stop()}),e.provide(Cu,{root:u,isCardType:m,isVertical:b,items:r,loop:t.loop,addItem:l,removeItem:a,setActiveItem:B,setContainerHeight:A}),{root:u,activeIndex:i,arrowDisplay:h,hasLabel:g,hover:f,isCardType:m,items:r,isVertical:b,containerStyle:y,isItemsTwoLength:p,handleButtonEnter:v,handleButtonLeave:O,handleIndicatorClick:D,handleMouseEnter:T,handleMouseLeave:I,setActiveItem:B,prev:$,next:R,PlaceholderItem:x,isTwoLengthShow:w,throttledArrowClick:C,throttledIndicatorHover:k}},cH=["onMouseenter","onClick"],dH={key:0},fH="ElCarousel",uH=e.defineComponent({name:fH}),pH=e.defineComponent({...uH,props:e1,emits:t1,setup(t,{expose:n,emit:o}){const r=t,{root:l,activeIndex:a,arrowDisplay:s,hasLabel:i,hover:c,isCardType:f,items:u,isVertical:d,containerStyle:p,handleButtonEnter:h,handleButtonLeave:g,handleIndicatorClick:m,handleMouseEnter:b,handleMouseLeave:y,setActiveItem:C,prev:k,next:w,PlaceholderItem:E,isTwoLengthShow:S,throttledArrowClick:_,throttledIndicatorHover:B}=iH(r,o),M=Q("carousel"),P=e.computed(()=>{const I=[M.b(),M.m(r.direction)];return e.unref(f)&&I.push(M.m("card")),I}),T=e.computed(()=>{const I=[M.e("indicators"),M.em("indicators",r.direction)];return e.unref(i)&&I.push(M.em("indicators","labels")),r.indicatorPosition==="outside"&&I.push(M.em("indicators","outside")),e.unref(d)&&I.push(M.em("indicators","right")),I});return n({setActiveItem:C,prev:k,next:w}),(I,v)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:l,class:e.normalizeClass(e.unref(P)),onMouseenter:v[6]||(v[6]=e.withModifiers((...O)=>e.unref(b)&&e.unref(b)(...O),["stop"])),onMouseleave:v[7]||(v[7]=e.withModifiers((...O)=>e.unref(y)&&e.unref(y)(...O),["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(M).e("container")),style:e.normalizeStyle(e.unref(p))},[e.unref(s)?(e.openBlock(),e.createBlock(e.Transition,{key:0,name:"carousel-arrow-left",persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(M).e("arrow"),e.unref(M).em("arrow","left")]),onMouseenter:v[0]||(v[0]=O=>e.unref(h)("left")),onMouseleave:v[1]||(v[1]=(...O)=>e.unref(g)&&e.unref(g)(...O)),onClick:v[2]||(v[2]=e.withModifiers(O=>e.unref(_)(e.unref(a)-1),["stop"]))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Yo))]),_:1})],34),[[e.vShow,(I.arrow==="always"||e.unref(c))&&(r.loop||e.unref(a)>0)]])]),_:1})):e.createCommentVNode("v-if",!0),e.unref(s)?(e.openBlock(),e.createBlock(e.Transition,{key:1,name:"carousel-arrow-right",persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(M).e("arrow"),e.unref(M).em("arrow","right")]),onMouseenter:v[3]||(v[3]=O=>e.unref(h)("right")),onMouseleave:v[4]||(v[4]=(...O)=>e.unref(g)&&e.unref(g)(...O)),onClick:v[5]||(v[5]=e.withModifiers(O=>e.unref(_)(e.unref(a)+1),["stop"]))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})],34),[[e.vShow,(I.arrow==="always"||e.unref(c))&&(r.loop||e.unref(a)e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:D,class:e.normalizeClass([e.unref(M).e("indicator"),e.unref(M).em("indicator",I.direction),e.unref(M).is("active",D===e.unref(a))]),onMouseenter:z=>e.unref(B)(D),onClick:e.withModifiers(z=>e.unref(m)(D),["stop"])},[e.createElementVNode("button",{class:e.normalizeClass(e.unref(M).e("button"))},[e.unref(i)?(e.openBlock(),e.createElementBlock("span",dH,e.toDisplayString(O.props.label),1)):e.createCommentVNode("v-if",!0)],2)],42,cH)),[[e.vShow,e.unref(S)(D)]])),128))],2)):e.createCommentVNode("v-if",!0)],34))}});var mH=se(pH,[["__file","carousel.vue"]]);const o1=le({name:{type:String,default:""},label:{type:[String,Number],default:""}}),hH=(t,n)=>{const o=e.inject(Cu),r=e.getCurrentInstance(),l=.83,a=e.ref(),s=e.ref(!1),i=e.ref(0),c=e.ref(1),f=e.ref(!1),u=e.ref(!1),d=e.ref(!1),p=e.ref(!1),{isCardType:h,isVertical:g}=o;function m(w,E,S){const _=S-1,B=E-1,M=E+1,P=S/2;return E===0&&w===_?-1:E===_&&w===0?S:w=P?S+1:w>M&&w-E>=P?-2:w}function b(w,E){var S,_;const B=e.unref(g)?((S=o.root.value)==null?void 0:S.offsetHeight)||0:((_=o.root.value)==null?void 0:_.offsetWidth)||0;return d.value?B*((2-l)*(w-E)+1)/4:w{var _;const B=e.unref(h),M=(_=o.items.value.length)!=null?_:Number.NaN,P=w===E;!B&&!$t(S)&&(p.value=P||w===S),!P&&M>2&&o.loop&&(w=m(w,E,M));const T=e.unref(g);f.value=P,B?(d.value=Math.round(Math.abs(w-E))<=1,i.value=b(w,E),c.value=e.unref(f)?1:l):i.value=y(w,E,T),u.value=!0,P&&a.value&&o.setContainerHeight(a.value.offsetHeight)};function k(){if(o&&e.unref(h)){const w=o.items.value.findIndex(({uid:E})=>E===r.uid);o.setActiveItem(w)}}return e.onMounted(()=>{o.addItem({props:t,states:e.reactive({hover:s,translate:i,scale:c,active:f,ready:u,inStage:d,animating:p}),uid:r.uid,translateItem:C})}),e.onUnmounted(()=>{o.removeItem(r.uid)}),{carouselItemRef:a,active:f,animating:p,hover:s,inStage:d,isVertical:g,translate:i,isCardType:h,scale:c,ready:u,handleItemClick:k}},gH=e.defineComponent({name:"ElCarouselItem"}),yH=e.defineComponent({...gH,props:o1,setup(t){const n=t,o=Q("carousel"),{carouselItemRef:r,active:l,animating:a,hover:s,inStage:i,isVertical:c,translate:f,isCardType:u,scale:d,ready:p,handleItemClick:h}=hH(n),g=e.computed(()=>{const b=`${`translate${e.unref(c)?"Y":"X"}`}(${e.unref(f)}px)`,y=`scale(${e.unref(d)})`;return{transform:[b,y].join(" ")}});return(m,b)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{ref_key:"carouselItemRef",ref:r,class:e.normalizeClass([e.unref(o).e("item"),e.unref(o).is("active",e.unref(l)),e.unref(o).is("in-stage",e.unref(i)),e.unref(o).is("hover",e.unref(s)),e.unref(o).is("animating",e.unref(a)),{[e.unref(o).em("item","card")]:e.unref(u),[e.unref(o).em("item","card-vertical")]:e.unref(u)&&e.unref(c)}]),style:e.normalizeStyle(e.unref(g)),onClick:b[0]||(b[0]=(...y)=>e.unref(h)&&e.unref(h)(...y))},[e.unref(u)?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).e("mask"))},null,2)),[[e.vShow,!e.unref(l)]]):e.createCommentVNode("v-if",!0),e.renderSlot(m.$slots,"default")],6)),[[e.vShow,e.unref(p)]])}});var r1=se(yH,[["__file","carousel-item.vue"]]);const l1=Me(mH,{CarouselItem:r1}),a1=ht(r1),wu={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Vt,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},ku={[Ie]:t=>De(t)||be(t)||Tt(t),change:t=>De(t)||be(t)||Tt(t)},Or=Symbol("checkboxGroupContextKey"),bH=({model:t,isChecked:n})=>{const o=e.inject(Or,void 0),r=e.computed(()=>{var a,s;const i=(a=o==null?void 0:o.max)==null?void 0:a.value,c=(s=o==null?void 0:o.min)==null?void 0:s.value;return!$t(i)&&t.value.length>=i&&!n.value||!$t(c)&&t.value.length<=c&&n.value});return{isDisabled:Yt(e.computed(()=>(o==null?void 0:o.disabled.value)||r.value)),isLimitDisabled:r}},CH=(t,{model:n,isLimitExceeded:o,hasOwnLabel:r,isDisabled:l,isLabeledByFormItem:a})=>{const s=e.inject(Or,void 0),{formItem:i}=Xt(),{emit:c}=e.getCurrentInstance();function f(g){var m,b;return g===t.trueLabel||g===!0?(m=t.trueLabel)!=null?m:!0:(b=t.falseLabel)!=null?b:!1}function u(g,m){c("change",f(g),m)}function d(g){if(o.value)return;const m=g.target;c("change",f(m.checked),g)}async function p(g){o.value||!r.value&&!l.value&&a.value&&(g.composedPath().some(y=>y.tagName==="LABEL")||(n.value=f([!1,t.falseLabel].includes(n.value)),await e.nextTick(),u(n.value,g)))}const h=e.computed(()=>(s==null?void 0:s.validateEvent)||t.validateEvent);return e.watch(()=>t.modelValue,()=>{h.value&&(i==null||i.validate("change").catch(g=>void 0))}),{handleChange:d,onClickRoot:p}},wH=t=>{const n=e.ref(!1),{emit:o}=e.getCurrentInstance(),r=e.inject(Or,void 0),l=e.computed(()=>$t(r)===!1),a=e.ref(!1);return{model:e.computed({get(){var i,c;return l.value?(i=r==null?void 0:r.modelValue)==null?void 0:i.value:(c=t.modelValue)!=null?c:n.value},set(i){var c,f;l.value&&Re(i)?(a.value=((c=r==null?void 0:r.max)==null?void 0:c.value)!==void 0&&i.length>(r==null?void 0:r.max.value),a.value===!1&&((f=r==null?void 0:r.changeEvent)==null||f.call(r,i))):(o(Ie,i),n.value=i)}}),isGroup:l,isLimitExceeded:a}},kH=(t,n,{model:o})=>{const r=e.inject(Or,void 0),l=e.ref(!1),a=e.computed(()=>{const f=o.value;return Tt(f)?f:Re(f)?nt(t.label)?f.map(e.toRaw).some(u=>tn(u,t.label)):f.map(e.toRaw).includes(t.label):f!=null?f===t.trueLabel:!!f}),s=St(e.computed(()=>{var f;return(f=r==null?void 0:r.size)==null?void 0:f.value}),{prop:!0}),i=St(e.computed(()=>{var f;return(f=r==null?void 0:r.size)==null?void 0:f.value})),c=e.computed(()=>!!n.default||!wt(t.label));return{checkboxButtonSize:s,isChecked:a,isFocused:l,checkboxSize:i,hasOwnLabel:c}},SH=(t,{model:n})=>{function o(){Re(n.value)&&!n.value.includes(t.label)?n.value.push(t.label):n.value=t.trueLabel||!0}t.checked&&o()},s1=(t,n)=>{const{formItem:o}=Xt(),{model:r,isGroup:l,isLimitExceeded:a}=wH(t),{isFocused:s,isChecked:i,checkboxButtonSize:c,checkboxSize:f,hasOwnLabel:u}=kH(t,n,{model:r}),{isDisabled:d}=bH({model:r,isChecked:i}),{inputId:p,isLabeledByFormItem:h}=vo(t,{formItemContext:o,disableIdGeneration:u,disableIdManagement:l}),{handleChange:g,onClickRoot:m}=CH(t,{model:r,isLimitExceeded:a,hasOwnLabel:u,isDisabled:d,isLabeledByFormItem:h});return SH(t,{model:r}),{inputId:p,isLabeledByFormItem:h,isChecked:i,isDisabled:d,isFocused:s,checkboxButtonSize:c,checkboxSize:f,hasOwnLabel:u,model:r,handleChange:g,onClickRoot:m}},EH=["id","indeterminate","name","tabindex","disabled","true-value","false-value"],NH=["id","indeterminate","disabled","value","name","tabindex"],_H=e.defineComponent({name:"ElCheckbox"}),BH=e.defineComponent({..._H,props:wu,emits:ku,setup(t){const n=t,o=e.useSlots(),{inputId:r,isLabeledByFormItem:l,isChecked:a,isDisabled:s,isFocused:i,checkboxSize:c,hasOwnLabel:f,model:u,handleChange:d,onClickRoot:p}=s1(n,o),h=Q("checkbox"),g=e.computed(()=>[h.b(),h.m(c.value),h.is("disabled",s.value),h.is("bordered",n.border),h.is("checked",a.value)]),m=e.computed(()=>[h.e("input"),h.is("disabled",s.value),h.is("checked",a.value),h.is("indeterminate",n.indeterminate),h.is("focus",i.value)]);return(b,y)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(!e.unref(f)&&e.unref(l)?"span":"label"),{class:e.normalizeClass(e.unref(g)),"aria-controls":b.indeterminate?b.controls:null,onClick:e.unref(p)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(e.unref(m))},[b.trueLabel||b.falseLabel?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,id:e.unref(r),"onUpdate:modelValue":y[0]||(y[0]=C=>e.isRef(u)?u.value=C:null),class:e.normalizeClass(e.unref(h).e("original")),type:"checkbox",indeterminate:b.indeterminate,name:b.name,tabindex:b.tabindex,disabled:e.unref(s),"true-value":b.trueLabel,"false-value":b.falseLabel,onChange:y[1]||(y[1]=(...C)=>e.unref(d)&&e.unref(d)(...C)),onFocus:y[2]||(y[2]=C=>i.value=!0),onBlur:y[3]||(y[3]=C=>i.value=!1),onClick:y[4]||(y[4]=e.withModifiers(()=>{},["stop"]))},null,42,EH)),[[e.vModelCheckbox,e.unref(u)]]):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,id:e.unref(r),"onUpdate:modelValue":y[5]||(y[5]=C=>e.isRef(u)?u.value=C:null),class:e.normalizeClass(e.unref(h).e("original")),type:"checkbox",indeterminate:b.indeterminate,disabled:e.unref(s),value:b.label,name:b.name,tabindex:b.tabindex,onChange:y[6]||(y[6]=(...C)=>e.unref(d)&&e.unref(d)(...C)),onFocus:y[7]||(y[7]=C=>i.value=!0),onBlur:y[8]||(y[8]=C=>i.value=!1),onClick:y[9]||(y[9]=e.withModifiers(()=>{},["stop"]))},null,42,NH)),[[e.vModelCheckbox,e.unref(u)]]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(h).e("inner"))},null,2)],2),e.unref(f)?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(h).e("label"))},[e.renderSlot(b.$slots,"default"),b.$slots.default?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(b.label),1)],64))],2)):e.createCommentVNode("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var $H=se(BH,[["__file","checkbox.vue"]]);const TH=["name","tabindex","disabled","true-value","false-value"],vH=["name","tabindex","disabled","value"],VH=e.defineComponent({name:"ElCheckboxButton"}),MH=e.defineComponent({...VH,props:wu,emits:ku,setup(t){const n=t,o=e.useSlots(),{isFocused:r,isChecked:l,isDisabled:a,checkboxButtonSize:s,model:i,handleChange:c}=s1(n,o),f=e.inject(Or,void 0),u=Q("checkbox"),d=e.computed(()=>{var h,g,m,b;const y=(g=(h=f==null?void 0:f.fill)==null?void 0:h.value)!=null?g:"";return{backgroundColor:y,borderColor:y,color:(b=(m=f==null?void 0:f.textColor)==null?void 0:m.value)!=null?b:"",boxShadow:y?`-1px 0 0 0 ${y}`:void 0}}),p=e.computed(()=>[u.b("button"),u.bm("button",s.value),u.is("disabled",a.value),u.is("checked",l.value),u.is("focus",r.value)]);return(h,g)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(e.unref(p))},[h.trueLabel||h.falseLabel?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,"onUpdate:modelValue":g[0]||(g[0]=m=>e.isRef(i)?i.value=m:null),class:e.normalizeClass(e.unref(u).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:e.unref(a),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:g[1]||(g[1]=(...m)=>e.unref(c)&&e.unref(c)(...m)),onFocus:g[2]||(g[2]=m=>r.value=!0),onBlur:g[3]||(g[3]=m=>r.value=!1),onClick:g[4]||(g[4]=e.withModifiers(()=>{},["stop"]))},null,42,TH)),[[e.vModelCheckbox,e.unref(i)]]):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":g[5]||(g[5]=m=>e.isRef(i)?i.value=m:null),class:e.normalizeClass(e.unref(u).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:e.unref(a),value:h.label,onChange:g[6]||(g[6]=(...m)=>e.unref(c)&&e.unref(c)(...m)),onFocus:g[7]||(g[7]=m=>r.value=!0),onBlur:g[8]||(g[8]=m=>r.value=!1),onClick:g[9]||(g[9]=e.withModifiers(()=>{},["stop"]))},null,42,vH)),[[e.vModelCheckbox,e.unref(i)]]),h.$slots.default||h.label?(e.openBlock(),e.createElementBlock("span",{key:2,class:e.normalizeClass(e.unref(u).be("button","inner")),style:e.normalizeStyle(e.unref(l)?e.unref(d):void 0)},[e.renderSlot(h.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(h.label),1)])],6)):e.createCommentVNode("v-if",!0)],2))}});var i1=se(MH,[["__file","checkbox-button.vue"]]);const c1=le({modelValue:{type:W(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Vt,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),d1={[Ie]:t=>Re(t),change:t=>Re(t)},IH=e.defineComponent({name:"ElCheckboxGroup"}),PH=e.defineComponent({...IH,props:c1,emits:d1,setup(t,{emit:n}){const o=t,r=Q("checkbox"),{formItem:l}=Xt(),{inputId:a,isLabeledByFormItem:s}=vo(o,{formItemContext:l}),i=async f=>{n(Ie,f),await e.nextTick(),n("change",f)},c=e.computed({get(){return o.modelValue},set(f){i(f)}});return e.provide(Or,{...ro(e.toRefs(o),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:c,changeEvent:i}),e.watch(()=>o.modelValue,()=>{o.validateEvent&&(l==null||l.validate("change").catch(f=>void 0))}),(f,u)=>{var d;return e.openBlock(),e.createBlock(e.resolveDynamicComponent(f.tag),{id:e.unref(a),class:e.normalizeClass(e.unref(r).b("group")),role:"group","aria-label":e.unref(s)?void 0:f.label||"checkbox-group","aria-labelledby":e.unref(s)?(d=e.unref(l))==null?void 0:d.labelId:void 0},{default:e.withCtx(()=>[e.renderSlot(f.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var f1=se(PH,[["__file","checkbox-group.vue"]]);const En=Me($H,{CheckboxButton:i1,CheckboxGroup:f1}),u1=ht(i1),Su=ht(f1),Eu=le({size:Vt,disabled:Boolean,label:{type:[String,Number,Boolean],default:""}}),p1=le({...Eu,modelValue:{type:[String,Number,Boolean],default:""},name:{type:String,default:""},border:Boolean}),Nu={[Ie]:t=>De(t)||be(t)||Tt(t),[at]:t=>De(t)||be(t)||Tt(t)},_u=Symbol("radioGroupKey"),m1=(t,n)=>{const o=e.ref(),r=e.inject(_u,void 0),l=e.computed(()=>!!r),a=e.computed({get(){return l.value?r.modelValue:t.modelValue},set(u){l.value?r.changeEvent(u):n&&n(Ie,u),o.value.checked=t.modelValue===t.label}}),s=St(e.computed(()=>r==null?void 0:r.size)),i=Yt(e.computed(()=>r==null?void 0:r.disabled)),c=e.ref(!1),f=e.computed(()=>i.value||l.value&&a.value!==t.label?-1:0);return{radioRef:o,isGroup:l,radioGroup:r,focus:c,size:s,disabled:i,tabIndex:f,modelValue:a}},RH=["value","name","disabled"],OH=e.defineComponent({name:"ElRadio"}),AH=e.defineComponent({...OH,props:p1,emits:Nu,setup(t,{emit:n}){const o=t,r=Q("radio"),{radioRef:l,radioGroup:a,focus:s,size:i,disabled:c,modelValue:f}=m1(o,n);function u(){e.nextTick(()=>n("change",f.value))}return(d,p)=>{var h;return e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass([e.unref(r).b(),e.unref(r).is("disabled",e.unref(c)),e.unref(r).is("focus",e.unref(s)),e.unref(r).is("bordered",d.border),e.unref(r).is("checked",e.unref(f)===d.label),e.unref(r).m(e.unref(i))])},[e.createElementVNode("span",{class:e.normalizeClass([e.unref(r).e("input"),e.unref(r).is("disabled",e.unref(c)),e.unref(r).is("checked",e.unref(f)===d.label)])},[e.withDirectives(e.createElementVNode("input",{ref_key:"radioRef",ref:l,"onUpdate:modelValue":p[0]||(p[0]=g=>e.isRef(f)?f.value=g:null),class:e.normalizeClass(e.unref(r).e("original")),value:d.label,name:d.name||((h=e.unref(a))==null?void 0:h.name),disabled:e.unref(c),type:"radio",onFocus:p[1]||(p[1]=g=>s.value=!0),onBlur:p[2]||(p[2]=g=>s.value=!1),onChange:u,onClick:p[3]||(p[3]=e.withModifiers(()=>{},["stop"]))},null,42,RH),[[e.vModelRadio,e.unref(f)]]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(r).e("inner"))},null,2)],2),e.createElementVNode("span",{class:e.normalizeClass(e.unref(r).e("label")),onKeydown:p[4]||(p[4]=e.withModifiers(()=>{},["stop"]))},[e.renderSlot(d.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(d.label),1)])],34)],2)}}});var zH=se(AH,[["__file","radio.vue"]]);const h1=le({...Eu,name:{type:String,default:""}}),DH=["value","name","disabled"],LH=e.defineComponent({name:"ElRadioButton"}),xH=e.defineComponent({...LH,props:h1,setup(t){const n=t,o=Q("radio"),{radioRef:r,focus:l,size:a,disabled:s,modelValue:i,radioGroup:c}=m1(n),f=e.computed(()=>({backgroundColor:(c==null?void 0:c.fill)||"",borderColor:(c==null?void 0:c.fill)||"",boxShadow:c!=null&&c.fill?`-1px 0 0 0 ${c.fill}`:"",color:(c==null?void 0:c.textColor)||""}));return(u,d)=>{var p;return e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass([e.unref(o).b("button"),e.unref(o).is("active",e.unref(i)===u.label),e.unref(o).is("disabled",e.unref(s)),e.unref(o).is("focus",e.unref(l)),e.unref(o).bm("button",e.unref(a))])},[e.withDirectives(e.createElementVNode("input",{ref_key:"radioRef",ref:r,"onUpdate:modelValue":d[0]||(d[0]=h=>e.isRef(i)?i.value=h:null),class:e.normalizeClass(e.unref(o).be("button","original-radio")),value:u.label,type:"radio",name:u.name||((p=e.unref(c))==null?void 0:p.name),disabled:e.unref(s),onFocus:d[1]||(d[1]=h=>l.value=!0),onBlur:d[2]||(d[2]=h=>l.value=!1),onClick:d[3]||(d[3]=e.withModifiers(()=>{},["stop"]))},null,42,DH),[[e.vModelRadio,e.unref(i)]]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).be("button","inner")),style:e.normalizeStyle(e.unref(i)===u.label?e.unref(f):{}),onKeydown:d[4]||(d[4]=e.withModifiers(()=>{},["stop"]))},[e.renderSlot(u.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(u.label),1)])],38)],2)}}});var g1=se(xH,[["__file","radio-button.vue"]]);const y1=le({id:{type:String,default:void 0},size:Vt,disabled:Boolean,modelValue:{type:[String,Number,Boolean],default:""},fill:{type:String,default:""},label:{type:String,default:void 0},textColor:{type:String,default:""},name:{type:String,default:void 0},validateEvent:{type:Boolean,default:!0}}),b1=Nu,FH=["id","aria-label","aria-labelledby"],HH=e.defineComponent({name:"ElRadioGroup"}),KH=e.defineComponent({...HH,props:y1,emits:b1,setup(t,{emit:n}){const o=t,r=Q("radio"),l=rn(),a=e.ref(),{formItem:s}=Xt(),{inputId:i,isLabeledByFormItem:c}=vo(o,{formItemContext:s}),f=d=>{n(Ie,d),e.nextTick(()=>n("change",d))};e.onMounted(()=>{const d=a.value.querySelectorAll("[type=radio]"),p=d[0];!Array.from(d).some(h=>h.checked)&&p&&(p.tabIndex=0)});const u=e.computed(()=>o.name||l.value);return e.provide(_u,e.reactive({...e.toRefs(o),changeEvent:f,name:u})),e.watch(()=>o.modelValue,()=>{o.validateEvent&&(s==null||s.validate("change").catch(d=>void 0))}),(d,p)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(i),ref_key:"radioGroupRef",ref:a,class:e.normalizeClass(e.unref(r).b("group")),role:"radiogroup","aria-label":e.unref(c)?void 0:d.label||"radio-group","aria-labelledby":e.unref(c)?e.unref(s).labelId:void 0},[e.renderSlot(d.$slots,"default")],10,FH))}});var C1=se(KH,[["__file","radio-group.vue"]]);const Bu=Me(zH,{RadioButton:g1,RadioGroup:C1}),w1=ht(C1),k1=ht(g1);var WH=e.defineComponent({name:"NodeContent",setup(){return{ns:Q("cascader-node")}},render(){const{ns:t}=this,{node:n,panel:o}=this.$parent,{data:r,label:l}=n,{renderLabelFn:a}=o;return e.h("span",{class:t.e("label")},a?a({node:n,data:r}):l)}});const Ni=Symbol(),jH=e.defineComponent({name:"ElCascaderNode",components:{ElCheckbox:En,ElRadio:Bu,NodeContent:WH,ElIcon:fe,Check:la,Loading:Zo,ArrowRight:on},props:{node:{type:Object,required:!0},menuId:String},emits:["expand"],setup(t,{emit:n}){const o=e.inject(Ni),r=Q("cascader-node"),l=e.computed(()=>o.isHoverMenu),a=e.computed(()=>o.config.multiple),s=e.computed(()=>o.config.checkStrictly),i=e.computed(()=>{var S;return(S=o.checkedNodes[0])==null?void 0:S.uid}),c=e.computed(()=>t.node.isDisabled),f=e.computed(()=>t.node.isLeaf),u=e.computed(()=>s.value&&!f.value||!c.value),d=e.computed(()=>h(o.expandingNode)),p=e.computed(()=>s.value&&o.checkedNodes.some(h)),h=S=>{var _;const{level:B,uid:M}=t.node;return((_=S==null?void 0:S.pathNodes[B-1])==null?void 0:_.uid)===M},g=()=>{d.value||o.expandNode(t.node)},m=S=>{const{node:_}=t;S!==_.checked&&o.handleCheckChange(_,S)},b=()=>{o.lazyLoad(t.node,()=>{f.value||g()})},y=S=>{!l.value||(C(),!f.value&&n("expand",S))},C=()=>{const{node:S}=t;!u.value||S.loading||(S.loaded?g():b())},k=()=>{l.value&&!f.value||(f.value&&!c.value&&!s.value&&!a.value?E(!0):C())},w=S=>{s.value?(m(S),t.node.loaded&&g()):E(S)},E=S=>{t.node.loaded?(m(S),!s.value&&g()):b()};return{panel:o,isHoverMenu:l,multiple:a,checkStrictly:s,checkedNodeId:i,isDisabled:c,isLeaf:f,expandable:u,inExpandingPath:d,inCheckedPath:p,ns:r,handleHoverExpand:y,handleExpand:C,handleClick:k,handleCheck:E,handleSelectCheck:w}}}),UH=["id","aria-haspopup","aria-owns","aria-expanded","tabindex"],GH=e.createElementVNode("span",null,null,-1);function qH(t,n,o,r,l,a){const s=e.resolveComponent("el-checkbox"),i=e.resolveComponent("el-radio"),c=e.resolveComponent("check"),f=e.resolveComponent("el-icon"),u=e.resolveComponent("node-content"),d=e.resolveComponent("loading"),p=e.resolveComponent("arrow-right");return e.openBlock(),e.createElementBlock("li",{id:`${t.menuId}-${t.node.uid}`,role:"menuitem","aria-haspopup":!t.isLeaf,"aria-owns":t.isLeaf?null:t.menuId,"aria-expanded":t.inExpandingPath,tabindex:t.expandable?-1:void 0,class:e.normalizeClass([t.ns.b(),t.ns.is("selectable",t.checkStrictly),t.ns.is("active",t.node.checked),t.ns.is("disabled",!t.expandable),t.inExpandingPath&&"in-active-path",t.inCheckedPath&&"in-checked-path"]),onMouseenter:n[2]||(n[2]=(...h)=>t.handleHoverExpand&&t.handleHoverExpand(...h)),onFocus:n[3]||(n[3]=(...h)=>t.handleHoverExpand&&t.handleHoverExpand(...h)),onClick:n[4]||(n[4]=(...h)=>t.handleClick&&t.handleClick(...h))},[e.createCommentVNode(" prefix "),t.multiple?(e.openBlock(),e.createBlock(s,{key:0,"model-value":t.node.checked,indeterminate:t.node.indeterminate,disabled:t.isDisabled,onClick:n[0]||(n[0]=e.withModifiers(()=>{},["stop"])),"onUpdate:modelValue":t.handleSelectCheck},null,8,["model-value","indeterminate","disabled","onUpdate:modelValue"])):t.checkStrictly?(e.openBlock(),e.createBlock(i,{key:1,"model-value":t.checkedNodeId,label:t.node.uid,disabled:t.isDisabled,"onUpdate:modelValue":t.handleSelectCheck,onClick:n[1]||(n[1]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createCommentVNode(` + Add an empty element to avoid render label, + do not use empty fragment here for https://github.com/vuejs/vue-next/pull/2485 + `),GH]),_:1},8,["model-value","label","disabled","onUpdate:modelValue"])):t.isLeaf&&t.node.checked?(e.openBlock(),e.createBlock(f,{key:2,class:e.normalizeClass(t.ns.e("prefix"))},{default:e.withCtx(()=>[e.createVNode(c)]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" content "),e.createVNode(u),e.createCommentVNode(" postfix "),t.isLeaf?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[t.node.loading?(e.openBlock(),e.createBlock(f,{key:0,class:e.normalizeClass([t.ns.is("loading"),t.ns.e("postfix")])},{default:e.withCtx(()=>[e.createVNode(d)]),_:1},8,["class"])):(e.openBlock(),e.createBlock(f,{key:1,class:e.normalizeClass(["arrow-right",t.ns.e("postfix")])},{default:e.withCtx(()=>[e.createVNode(p)]),_:1},8,["class"]))],64))],42,UH)}var YH=se(jH,[["render",qH],["__file","node.vue"]]);const XH=e.defineComponent({name:"ElCascaderMenu",components:{Loading:Zo,ElIcon:fe,ElScrollbar:mo,ElCascaderNode:YH},props:{nodes:{type:Array,required:!0},index:{type:Number,required:!0}},setup(t){const n=e.getCurrentInstance(),o=Q("cascader-menu"),{t:r}=Ke(),l=Os();let a=null,s=null;const i=e.inject(Ni),c=e.ref(null),f=e.computed(()=>!t.nodes.length),u=e.computed(()=>!i.initialLoaded),d=e.computed(()=>`cascader-menu-${l}-${t.index}`),p=b=>{a=b.target},h=b=>{if(!(!i.isHoverMenu||!a||!c.value))if(a.contains(b.target)){g();const y=n.vnode.el,{left:C}=y.getBoundingClientRect(),{offsetWidth:k,offsetHeight:w}=y,E=b.clientX-C,S=a.offsetTop,_=S+a.offsetHeight;c.value.innerHTML=` + + + `}else s||(s=window.setTimeout(m,i.config.hoverThreshold))},g=()=>{!s||(clearTimeout(s),s=null)},m=()=>{!c.value||(c.value.innerHTML="",g())};return{ns:o,panel:i,hoverZone:c,isEmpty:f,isLoading:u,menuId:d,t:r,handleExpand:p,handleMouseMove:h,clearHoverZone:m}}});function ZH(t,n,o,r,l,a){const s=e.resolveComponent("el-cascader-node"),i=e.resolveComponent("loading"),c=e.resolveComponent("el-icon"),f=e.resolveComponent("el-scrollbar");return e.openBlock(),e.createBlock(f,{key:t.menuId,tag:"ul",role:"menu",class:e.normalizeClass(t.ns.b()),"wrap-class":t.ns.e("wrap"),"view-class":[t.ns.e("list"),t.ns.is("empty",t.isEmpty)],onMousemove:t.handleMouseMove,onMouseleave:t.clearHoverZone},{default:e.withCtx(()=>{var u;return[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.nodes,d=>(e.openBlock(),e.createBlock(s,{key:d.uid,node:d,"menu-id":t.menuId,onExpand:t.handleExpand},null,8,["node","menu-id","onExpand"]))),128)),t.isLoading?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(t.ns.e("empty-text"))},[e.createVNode(c,{size:"14",class:e.normalizeClass(t.ns.is("loading"))},{default:e.withCtx(()=>[e.createVNode(i)]),_:1},8,["class"]),e.createTextVNode(" "+e.toDisplayString(t.t("el.cascader.loading")),1)],2)):t.isEmpty?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(t.ns.e("empty-text"))},e.toDisplayString(t.t("el.cascader.noData")),3)):(u=t.panel)!=null&&u.isHoverMenu?(e.openBlock(),e.createElementBlock("svg",{key:2,ref:"hoverZone",class:e.normalizeClass(t.ns.e("hover-zone"))},null,2)):e.createCommentVNode("v-if",!0)]}),_:1},8,["class","wrap-class","view-class","onMousemove","onMouseleave"])}var JH=se(XH,[["render",ZH],["__file","menu.vue"]]);let QH=0;const eK=t=>{const n=[t];let{parent:o}=t;for(;o;)n.unshift(o),o=o.parent;return n};class _i{constructor(n,o,r,l=!1){this.data=n,this.config=o,this.parent=r,this.root=l,this.uid=QH++,this.checked=!1,this.indeterminate=!1,this.loading=!1;const{value:a,label:s,children:i}=o,c=n[i],f=eK(this);this.level=l?0:r?r.level+1:1,this.value=n[a],this.label=n[s],this.pathNodes=f,this.pathValues=f.map(u=>u.value),this.pathLabels=f.map(u=>u.label),this.childrenData=c,this.children=(c||[]).map(u=>new _i(u,o,this)),this.loaded=!o.lazy||this.isLeaf||!Vn(c)}get isDisabled(){const{data:n,parent:o,config:r}=this,{disabled:l,checkStrictly:a}=r;return(qe(l)?l(n,this):!!n[l])||!a&&(o==null?void 0:o.isDisabled)}get isLeaf(){const{data:n,config:o,childrenData:r,loaded:l}=this,{lazy:a,leaf:s}=o,i=qe(s)?s(n,this):n[s];return $t(i)?a&&!l?!1:!(Array.isArray(r)&&r.length):!!i}get valueByOption(){return this.config.emitPath?this.pathValues:this.value}appendChild(n){const{childrenData:o,children:r}=this,l=new _i(n,this.config,this);return Array.isArray(o)?o.push(n):this.childrenData=[n],r.push(l),l}calcText(n,o){const r=n?this.pathLabels.join(o):this.label;return this.text=r,r}broadcast(n,...o){const r=`onParent${ao(n)}`;this.children.forEach(l=>{l&&(l.broadcast(n,...o),l[r]&&l[r](...o))})}emit(n,...o){const{parent:r}=this,l=`onChild${ao(n)}`;r&&(r[l]&&r[l](...o),r.emit(n,...o))}onParentCheck(n){this.isDisabled||this.setCheckState(n)}onChildCheck(){const{children:n}=this,o=n.filter(l=>!l.isDisabled),r=o.length?o.every(l=>l.checked):!1;this.setCheckState(r)}setCheckState(n){const o=this.children.length,r=this.children.reduce((l,a)=>{const s=a.checked?1:a.indeterminate?.5:0;return l+s},0);this.checked=this.loaded&&this.children.filter(l=>!l.isDisabled).every(l=>l.loaded&&l.checked)&&n,this.indeterminate=this.loaded&&r!==o&&r>0}doCheck(n){if(this.checked===n)return;const{checkStrictly:o,multiple:r}=this.config;o||!r?this.checked=n:(this.broadcast("check",n),this.setCheckState(n),this.emit("check"))}}var $u=_i;const Tu=(t,n)=>t.reduce((o,r)=>(r.isLeaf?o.push(r):(!n&&o.push(r),o=o.concat(Tu(r.children,n))),o),[]);class S1{constructor(n,o){this.config=o;const r=(n||[]).map(l=>new $u(l,this.config));this.nodes=r,this.allNodes=Tu(r,!1),this.leafNodes=Tu(r,!0)}getNodes(){return this.nodes}getFlattedNodes(n){return n?this.leafNodes:this.allNodes}appendNode(n,o){const r=o?o.appendChild(n):new $u(n,this.config);o||this.nodes.push(r),this.allNodes.push(r),r.isLeaf&&this.leafNodes.push(r)}appendNodes(n,o){n.forEach(r=>this.appendNode(r,o))}getNodeByValue(n,o=!1){return!n&&n!==0?null:this.getFlattedNodes(o).find(l=>tn(l.value,n)||tn(l.pathValues,n))||null}getSameNode(n){return n&&this.getFlattedNodes(!1).find(({value:r,level:l})=>tn(n.value,r)&&n.level===l)||null}}const vu=le({modelValue:{type:W([Number,String,Array])},options:{type:W(Array),default:()=>[]},props:{type:W(Object),default:()=>({})}}),E1={expandTrigger:"click",multiple:!1,checkStrictly:!1,emitPath:!0,lazy:!1,lazyLoad:st,value:"value",label:"label",children:"children",leaf:"leaf",disabled:"disabled",hoverThreshold:500},N1=t=>e.computed(()=>({...E1,...t.props})),_1=t=>{if(!t)return 0;const n=t.id.split("-");return Number(n[n.length-2])},tK=t=>{if(!t)return;const n=t.querySelector("input");n?n.click():Em(t)&&t.click()},nK=(t,n)=>{const o=n.slice(0),r=o.map(a=>a.uid),l=t.reduce((a,s)=>{const i=r.indexOf(s.uid);return i>-1&&(a.push(s),o.splice(i,1),r.splice(i,1)),a},[]);return l.push(...o),l},oK=e.defineComponent({name:"ElCascaderPanel",components:{ElCascaderMenu:JH},props:{...vu,border:{type:Boolean,default:!0},renderLabel:Function},emits:[Ie,at,"close","expand-change"],setup(t,{emit:n,slots:o}){let r=!1;const l=Q("cascader"),a=N1(t);let s=null;const i=e.ref(!0),c=e.ref([]),f=e.ref(null),u=e.ref([]),d=e.ref(null),p=e.ref([]),h=e.computed(()=>a.value.expandTrigger==="hover"),g=e.computed(()=>t.renderLabel||o.default),m=()=>{const{options:I}=t,v=a.value;r=!1,s=new S1(I,v),u.value=[s.getNodes()],v.lazy&&Vn(t.options)?(i.value=!1,b(void 0,O=>{O&&(s=new S1(O,v),u.value=[s.getNodes()]),i.value=!0,B(!1,!0)})):B(!1,!0)},b=(I,v)=>{const O=a.value;I=I||new $u({},O,void 0,!0),I.loading=!0;const D=z=>{const $=I,R=$.root?null:$;z&&(s==null||s.appendNodes(z,R)),$.loading=!1,$.loaded=!0,$.childrenData=$.childrenData||[],v&&v(z)};O.lazyLoad(I,D)},y=(I,v)=>{var O;const{level:D}=I,z=u.value.slice(0,D);let $;I.isLeaf?$=I.pathNodes[D-2]:($=I,z.push(I.children)),((O=d.value)==null?void 0:O.uid)!==($==null?void 0:$.uid)&&(d.value=I,u.value=z,!v&&n("expand-change",(I==null?void 0:I.pathValues)||[]))},C=(I,v,O=!0)=>{const{checkStrictly:D,multiple:z}=a.value,$=p.value[0];r=!0,!z&&($==null||$.doCheck(!1)),I.doCheck(v),_(),O&&!z&&!D&&n("close"),!O&&!z&&!D&&k(I)},k=I=>{!I||(I=I.parent,k(I),I&&y(I))},w=I=>s==null?void 0:s.getFlattedNodes(I),E=I=>{var v;return(v=w(I))==null?void 0:v.filter(O=>O.checked!==!1)},S=()=>{p.value.forEach(I=>I.doCheck(!1)),_(),u.value=u.value.slice(0,1),d.value=null,n("expand-change",[])},_=()=>{var I;const{checkStrictly:v,multiple:O}=a.value,D=p.value,z=E(!v),$=nK(D,z),R=$.map(N=>N.valueByOption);p.value=$,f.value=O?R:(I=R[0])!=null?I:null},B=(I=!1,v=!1)=>{const{modelValue:O}=t,{lazy:D,multiple:z,checkStrictly:$}=a.value,R=!$;if(!(!i.value||r||!v&&tn(O,f.value)))if(D&&!I){const A=Iy(k0(_o(O))).map(x=>s==null?void 0:s.getNodeByValue(x)).filter(x=>!!x&&!x.loaded&&!x.loading);A.length?A.forEach(x=>{b(x,()=>B(!1,v))}):B(!0,v)}else{const N=z?_o(O):[O],A=Iy(N.map(x=>s==null?void 0:s.getNodeByValue(x,R)));M(A,v),f.value=Yl(O)}},M=(I,v=!0)=>{const{checkStrictly:O}=a.value,D=p.value,z=I.filter(N=>!!N&&(O||N.isLeaf)),$=s==null?void 0:s.getSameNode(d.value),R=v&&$||z[0];R?R.pathNodes.forEach(N=>y(N,!0)):d.value=null,D.forEach(N=>N.doCheck(!1)),t.props.multiple?e.reactive(z).forEach(N=>N.doCheck(!0)):z.forEach(N=>N.doCheck(!0)),p.value=z,e.nextTick(P)},P=()=>{!He||c.value.forEach(I=>{const v=I==null?void 0:I.$el;if(v){const O=v.querySelector(`.${l.namespace.value}-scrollbar__wrap`),D=v.querySelector(`.${l.b("node")}.${l.is("active")}`)||v.querySelector(`.${l.b("node")}.in-active-path`);wy(O,D)}})},T=I=>{const v=I.target,{code:O}=I;switch(O){case pe.up:case pe.down:{I.preventDefault();const D=O===pe.up?-1:1;Ua(Nm(v,D,`.${l.b("node")}[tabindex="-1"]`));break}case pe.left:{I.preventDefault();const D=c.value[_1(v)-1],z=D==null?void 0:D.$el.querySelector(`.${l.b("node")}[aria-expanded="true"]`);Ua(z);break}case pe.right:{I.preventDefault();const D=c.value[_1(v)+1],z=D==null?void 0:D.$el.querySelector(`.${l.b("node")}[tabindex="-1"]`);Ua(z);break}case pe.enter:tK(v);break}};return e.provide(Ni,e.reactive({config:a,expandingNode:d,checkedNodes:p,isHoverMenu:h,initialLoaded:i,renderLabelFn:g,lazyLoad:b,expandNode:y,handleCheckChange:C})),e.watch([a,()=>t.options],m,{deep:!0,immediate:!0}),e.watch(()=>t.modelValue,()=>{r=!1,B()},{deep:!0}),e.watch(()=>f.value,I=>{tn(I,t.modelValue)||(n(Ie,I),n(at,I))}),e.onBeforeUpdate(()=>c.value=[]),e.onMounted(()=>!Vn(t.modelValue)&&B()),{ns:l,menuList:c,menus:u,checkedNodes:p,handleKeyDown:T,handleCheckChange:C,getFlattedNodes:w,getCheckedNodes:E,clearCheckedNodes:S,calculateCheckedValue:_,scrollToExpandingNode:P}}});function rK(t,n,o,r,l,a){const s=e.resolveComponent("el-cascader-menu");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.ns.b("panel"),t.ns.is("bordered",t.border)]),onKeydown:n[0]||(n[0]=(...i)=>t.handleKeyDown&&t.handleKeyDown(...i))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menus,(i,c)=>(e.openBlock(),e.createBlock(s,{key:c,ref_for:!0,ref:f=>t.menuList[c]=f,index:c,nodes:[...i]},null,8,["index","nodes"]))),128))],34)}var Bi=se(oK,[["render",rK],["__file","index.vue"]]);Bi.install=t=>{t.component(Bi.name,Bi)};const B1=Bi,$1=B1,$i=le({type:{type:String,values:["success","info","warning","danger",""],default:""},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:{type:String,default:""},size:{type:String,values:Wn,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),T1={close:t=>t instanceof MouseEvent,click:t=>t instanceof MouseEvent},lK=e.defineComponent({name:"ElTag"}),aK=e.defineComponent({...lK,props:$i,emits:T1,setup(t,{emit:n}){const o=t,r=St(),l=Q("tag"),a=e.computed(()=>{const{type:c,hit:f,effect:u,closable:d,round:p}=o;return[l.b(),l.is("closable",d),l.m(c),l.m(r.value),l.m(u),l.is("hit",f),l.is("round",p)]}),s=c=>{n("close",c)},i=c=>{n("click",c)};return(c,f)=>c.disableTransitions?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(a)),style:e.normalizeStyle({backgroundColor:c.color}),onClick:i},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).e("content"))},[e.renderSlot(c.$slots,"default")],2),c.closable?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(l).e("close")),onClick:e.withModifiers(s,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(Hn))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0)],6)):(e.openBlock(),e.createBlock(e.Transition,{key:1,name:`${e.unref(l).namespace.value}-zoom-in-center`,appear:""},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(e.unref(a)),style:e.normalizeStyle({backgroundColor:c.color}),onClick:i},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).e("content"))},[e.renderSlot(c.$slots,"default")],2),c.closable?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(l).e("close")),onClick:e.withModifiers(s,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(Hn))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0)],6)]),_:3},8,["name"]))}});var sK=se(aK,[["__file","tag.vue"]]);const bl=Me(sK),v1=le({...vu,size:Vt,placeholder:String,disabled:Boolean,clearable:Boolean,filterable:Boolean,filterMethod:{type:W(Function),default:(t,n)=>t.text.includes(n)},separator:{type:String,default:" / "},showAllLevels:{type:Boolean,default:!0},collapseTags:Boolean,maxCollapseTags:{type:Number,default:1},collapseTagsTooltip:{type:Boolean,default:!1},debounce:{type:Number,default:300},beforeFilter:{type:W(Function),default:()=>!0},popperClass:{type:String,default:""},teleported:Pt.teleported,tagType:{...$i.type,default:"info"},validateEvent:{type:Boolean,default:!0}}),V1={[Ie]:t=>!!t||t===null,[at]:t=>!!t||t===null,focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,visibleChange:t=>Tt(t),expandChange:t=>!!t,removeTag:t=>!!t},iK={key:0},cK=["placeholder","onKeydown"],dK=["onClick"],fK="ElCascader",uK=e.defineComponent({name:fK}),pK=e.defineComponent({...uK,props:v1,emits:V1,setup(t,{expose:n,emit:o}){const r=t,l={modifiers:[{name:"arrowPosition",enabled:!0,phase:"main",fn:({state:G})=>{const{modifiersData:j,placement:ee}=G;["right","left","bottom","top"].includes(ee)||(j.arrow.x=35)},requires:["arrow"]}]},a=e.useAttrs();let s=0,i=0;const c=Q("cascader"),f=Q("input"),{t:u}=Ke(),{form:d,formItem:p}=Xt(),h=e.ref(null),g=e.ref(null),m=e.ref(null),b=e.ref(null),y=e.ref(null),C=e.ref(!1),k=e.ref(!1),w=e.ref(!1),E=e.ref(!1),S=e.ref(""),_=e.ref(""),B=e.ref([]),M=e.ref([]),P=e.ref([]),T=e.ref(!1),I=e.computed(()=>a.style),v=e.computed(()=>r.disabled||(d==null?void 0:d.disabled)),O=e.computed(()=>r.placeholder||u("el.cascader.placeholder")),D=e.computed(()=>_.value||B.value.length>0||T.value?"":O.value),z=St(),$=e.computed(()=>["small"].includes(z.value)?"small":"default"),R=e.computed(()=>!!r.props.multiple),N=e.computed(()=>!r.filterable||R.value),A=e.computed(()=>R.value?_.value:S.value),x=e.computed(()=>{var G;return((G=b.value)==null?void 0:G.checkedNodes)||[]}),H=e.computed(()=>!r.clearable||v.value||w.value||!k.value?!1:!!x.value.length),K=e.computed(()=>{const{showAllLevels:G,separator:j}=r,ee=x.value;return ee.length?R.value?"":ee[0].calcText(G,j):""}),q=e.computed({get(){return Yl(r.modelValue)},set(G){o(Ie,G),o(at,G),r.validateEvent&&(p==null||p.validate("change").catch(j=>void 0))}}),ne=e.computed(()=>[c.b(),c.m(z.value),c.is("disabled",v.value),a.class]),Y=e.computed(()=>[f.e("icon"),"icon-arrow-down",c.is("reverse",C.value)]),Z=e.computed(()=>c.is("focus",C.value||E.value)),U=e.computed(()=>{var G,j;return(j=(G=h.value)==null?void 0:G.popperRef)==null?void 0:j.contentRef}),re=G=>{var j,ee,F;v.value||(G=G!=null?G:!C.value,G!==C.value&&(C.value=G,(ee=(j=g.value)==null?void 0:j.input)==null||ee.setAttribute("aria-expanded",`${G}`),G?(te(),e.nextTick((F=b.value)==null?void 0:F.scrollToExpandingNode)):r.filterable&&Ae(),o("visibleChange",G)))},te=()=>{e.nextTick(()=>{var G;(G=h.value)==null||G.updatePopper()})},oe=()=>{w.value=!1},ie=G=>{const{showAllLevels:j,separator:ee}=r;return{node:G,key:G.uid,text:G.calcText(j,ee),hitState:!1,closable:!v.value&&!G.isDisabled,isCollapseTag:!1}},ye=G=>{var j;const ee=G.node;ee.doCheck(!1),(j=b.value)==null||j.calculateCheckedValue(),o("removeTag",ee.valueByOption)},Ne=()=>{if(!R.value)return;const G=x.value,j=[],ee=[];if(G.forEach(F=>ee.push(ie(F))),M.value=ee,G.length){G.slice(0,r.maxCollapseTags).forEach(Be=>j.push(ie(Be)));const F=G.slice(r.maxCollapseTags),ue=F.length;ue&&(r.collapseTags?j.push({key:-1,text:`+ ${ue}`,closable:!1,isCollapseTag:!0}):F.forEach(Be=>j.push(ie(Be))))}B.value=j},Te=()=>{var G,j;const{filterMethod:ee,showAllLevels:F,separator:ue}=r,Be=(j=(G=b.value)==null?void 0:G.getFlattedNodes(!r.props.checkStrictly))==null?void 0:j.filter(xe=>xe.isDisabled?!1:(xe.calcText(F,ue),ee(xe,A.value)));R.value&&(B.value.forEach(xe=>{xe.hitState=!1}),M.value.forEach(xe=>{xe.hitState=!1})),w.value=!0,P.value=Be,te()},Pe=()=>{var G;let j;w.value&&y.value?j=y.value.$el.querySelector(`.${c.e("suggestion-item")}`):j=(G=b.value)==null?void 0:G.$el.querySelector(`.${c.b("node")}[tabindex="-1"]`),j&&(j.focus(),!w.value&&j.click())},he=()=>{var G,j;const ee=(G=g.value)==null?void 0:G.input,F=m.value,ue=(j=y.value)==null?void 0:j.$el;if(!(!He||!ee)){if(ue){const Be=ue.querySelector(`.${c.e("suggestion-list")}`);Be.style.minWidth=`${ee.offsetWidth}px`}if(F){const{offsetHeight:Be}=F,xe=B.value.length>0?`${Math.max(Be+6,s)}px`:`${s}px`;ee.style.height=xe,te()}}},Ce=G=>{var j;return(j=b.value)==null?void 0:j.getCheckedNodes(G)},ge=G=>{te(),o("expandChange",G)},me=G=>{var j;const ee=(j=G.target)==null?void 0:j.value;if(G.type==="compositionend")T.value=!1,e.nextTick(()=>ke(ee));else{const F=ee[ee.length-1]||"";T.value=!Ps(F)}},_e=G=>{if(!T.value)switch(G.code){case pe.enter:re();break;case pe.down:re(!0),e.nextTick(Pe),G.preventDefault();break;case pe.esc:C.value===!0&&(G.preventDefault(),G.stopPropagation(),re(!1));break;case pe.tab:re(!1);break}},$e=()=>{var G;(G=b.value)==null||G.clearCheckedNodes(),!C.value&&r.filterable&&Ae(),re(!1)},Ae=()=>{const{value:G}=K;S.value=G,_.value=G},Oe=G=>{var j,ee;const{checked:F}=G;R.value?(j=b.value)==null||j.handleCheckChange(G,!F,!1):(!F&&((ee=b.value)==null||ee.handleCheckChange(G,!0,!1)),re(!1))},ce=G=>{const j=G.target,{code:ee}=G;switch(ee){case pe.up:case pe.down:{const F=ee===pe.up?-1:1;Ua(Nm(j,F,`.${c.e("suggestion-item")}[tabindex="-1"]`));break}case pe.enter:j.click();break}},Ee=()=>{const G=B.value,j=G[G.length-1];i=_.value?0:i+1,!(!j||!i||r.collapseTags&&G.length>1)&&(j.hitState?ye(j):j.hitState=!0)},Le=G=>{const j=G.target,ee=c.e("search-input");j.className===ee&&(E.value=!0),o("focus",G)},Xe=G=>{E.value=!1,o("blur",G)},Qe=Gt(()=>{const{value:G}=A;if(!G)return;const j=r.beforeFilter(G);bc(j)?j.then(Te).catch(()=>{}):j!==!1?Te():oe()},r.debounce),ke=(G,j)=>{!C.value&&re(!0),!(j!=null&&j.isComposing)&&(G?Qe():oe())},J=G=>Number.parseFloat(l_(f.cssVarName("input-height"),G).value)-2;return e.watch(w,te),e.watch([x,v],Ne),e.watch(B,()=>{e.nextTick(()=>he())}),e.watch(z,async()=>{await e.nextTick();const G=g.value.input;s=J(G)||s,he()}),e.watch(K,Ae,{immediate:!0}),e.onMounted(()=>{const G=g.value.input,j=J(G);s=G.offsetHeight||j,jt(G,he)}),n({getCheckedNodes:Ce,cascaderPanelRef:b,togglePopperVisible:re,contentRef:U}),(G,j)=>(e.openBlock(),e.createBlock(e.unref(Zt),{ref_key:"tooltipRef",ref:h,visible:C.value,teleported:G.teleported,"popper-class":[e.unref(c).e("dropdown"),G.popperClass],"popper-options":l,"fallback-placements":["bottom-start","bottom","top-start","top","right","left"],"stop-popper-mouse-event":!1,"gpu-acceleration":!1,placement:"bottom-start",transition:`${e.unref(c).namespace.value}-zoom-in-top`,effect:"light",pure:"",persistent:"",onHide:oe},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(ne)),style:e.normalizeStyle(e.unref(I)),onClick:j[5]||(j[5]=()=>re(e.unref(N)?void 0:!0)),onKeydown:_e,onMouseenter:j[6]||(j[6]=ee=>k.value=!0),onMouseleave:j[7]||(j[7]=ee=>k.value=!1)},[e.createVNode(e.unref(Ft),{ref_key:"input",ref:g,modelValue:S.value,"onUpdate:modelValue":j[1]||(j[1]=ee=>S.value=ee),placeholder:e.unref(D),readonly:e.unref(N),disabled:e.unref(v),"validate-event":!1,size:e.unref(z),class:e.normalizeClass(e.unref(Z)),tabindex:e.unref(R)&&G.filterable&&!e.unref(v)?-1:void 0,onCompositionstart:me,onCompositionupdate:me,onCompositionend:me,onFocus:Le,onBlur:Xe,onInput:ke},{suffix:e.withCtx(()=>[e.unref(H)?(e.openBlock(),e.createBlock(e.unref(fe),{key:"clear",class:e.normalizeClass([e.unref(f).e("icon"),"icon-circle-close"]),onClick:e.withModifiers($e,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(Xo))]),_:1},8,["class","onClick"])):(e.openBlock(),e.createBlock(e.unref(fe),{key:"arrow-down",class:e.normalizeClass(e.unref(Y)),onClick:j[0]||(j[0]=e.withModifiers(ee=>re(),["stop"]))},{default:e.withCtx(()=>[e.createVNode(e.unref(qo))]),_:1},8,["class"]))]),_:1},8,["modelValue","placeholder","readonly","disabled","size","class","tabindex"]),e.unref(R)?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"tagWrapper",ref:m,class:e.normalizeClass(e.unref(c).e("tags"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,ee=>(e.openBlock(),e.createBlock(e.unref(bl),{key:ee.key,type:G.tagType,size:e.unref($),hit:ee.hitState,closable:ee.closable,"disable-transitions":"",onClose:F=>ye(ee)},{default:e.withCtx(()=>[ee.isCollapseTag===!1?(e.openBlock(),e.createElementBlock("span",iK,e.toDisplayString(ee.text),1)):(e.openBlock(),e.createBlock(e.unref(Zt),{key:1,disabled:C.value||!G.collapseTagsTooltip,"fallback-placements":["bottom","top","right","left"],placement:"bottom",effect:"light"},{default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(ee.text),1)]),content:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(c).e("collapse-tags"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.value.slice(G.maxCollapseTags),(F,ue)=>(e.openBlock(),e.createElementBlock("div",{key:ue,class:e.normalizeClass(e.unref(c).e("collapse-tag"))},[(e.openBlock(),e.createBlock(e.unref(bl),{key:F.key,class:"in-tooltip",type:G.tagType,size:e.unref($),hit:F.hitState,closable:F.closable,"disable-transitions":"",onClose:Be=>ye(F)},{default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(F.text),1)]),_:2},1032,["type","size","hit","closable","onClose"]))],2))),128))],2)]),_:2},1032,["disabled"]))]),_:2},1032,["type","size","hit","closable","onClose"]))),128)),G.filterable&&!e.unref(v)?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,"onUpdate:modelValue":j[2]||(j[2]=ee=>_.value=ee),type:"text",class:e.normalizeClass(e.unref(c).e("search-input")),placeholder:e.unref(K)?"":e.unref(O),onInput:j[3]||(j[3]=ee=>ke(_.value,ee)),onClick:j[4]||(j[4]=e.withModifiers(ee=>re(!0),["stop"])),onKeydown:e.withKeys(Ee,["delete"]),onCompositionstart:me,onCompositionupdate:me,onCompositionend:me,onFocus:Le,onBlur:Xe},null,42,cK)),[[e.vModelText,_.value]]):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0)],38)),[[e.unref(Po),()=>re(!1),e.unref(U)]])]),content:e.withCtx(()=>[e.withDirectives(e.createVNode(e.unref(B1),{ref_key:"cascaderPanelRef",ref:b,modelValue:e.unref(q),"onUpdate:modelValue":j[8]||(j[8]=ee=>e.isRef(q)?q.value=ee:null),options:G.options,props:r.props,border:!1,"render-label":G.$slots.default,onExpandChange:ge,onClose:j[9]||(j[9]=ee=>G.$nextTick(()=>re(!1)))},null,8,["modelValue","options","props","render-label"]),[[e.vShow,!w.value]]),G.filterable?e.withDirectives((e.openBlock(),e.createBlock(e.unref(mo),{key:0,ref_key:"suggestionPanel",ref:y,tag:"ul",class:e.normalizeClass(e.unref(c).e("suggestion-panel")),"view-class":e.unref(c).e("suggestion-list"),onKeydown:ce},{default:e.withCtx(()=>[P.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(P.value,ee=>(e.openBlock(),e.createElementBlock("li",{key:ee.uid,class:e.normalizeClass([e.unref(c).e("suggestion-item"),e.unref(c).is("checked",ee.checked)]),tabindex:-1,onClick:F=>Oe(ee)},[e.createElementVNode("span",null,e.toDisplayString(ee.text),1),ee.checked?(e.openBlock(),e.createBlock(e.unref(fe),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(la))]),_:1})):e.createCommentVNode("v-if",!0)],10,dK))),128)):e.renderSlot(G.$slots,"empty",{key:1},()=>[e.createElementVNode("li",{class:e.normalizeClass(e.unref(c).e("empty-text"))},e.toDisplayString(e.unref(u)("el.cascader.noMatch")),3)])]),_:3},8,["class","view-class"])),[[e.vShow,w.value]]):e.createCommentVNode("v-if",!0)]),_:3},8,["visible","teleported","popper-class","transition"]))}});var Ti=se(pK,[["__file","cascader.vue"]]);Ti.install=t=>{t.component(Ti.name,Ti)};const M1=Ti,I1=le({checked:{type:Boolean,default:!1}}),P1={"update:checked":t=>Tt(t),[at]:t=>Tt(t)},mK=e.defineComponent({name:"ElCheckTag"}),hK=e.defineComponent({...mK,props:I1,emits:P1,setup(t,{emit:n}){const o=t,r=Q("check-tag"),l=e.computed(()=>[r.b(),r.is("checked",o.checked)]),a=()=>{const s=!o.checked;n(at,s),n("update:checked",s)};return(s,i)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(l)),onClick:a},[e.renderSlot(s.$slots,"default")],2))}});var gK=se(hK,[["__file","check-tag.vue"]]);const R1=Me(gK),Vu=Symbol("rowContextKey"),O1=["start","center","end","space-around","space-between","space-evenly"],A1=["top","middle","bottom"],z1=le({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:O1,default:"start"},align:{type:String,values:A1}}),yK=e.defineComponent({name:"ElRow"}),bK=e.defineComponent({...yK,props:z1,setup(t){const n=t,o=Q("row"),r=e.computed(()=>n.gutter);e.provide(Vu,{gutter:r});const l=e.computed(()=>{const s={};return n.gutter&&(s.marginRight=s.marginLeft=`-${n.gutter/2}px`),s}),a=e.computed(()=>[o.b(),o.is(`justify-${n.justify}`,n.justify!=="start"),o.is(`align-${n.align}`,!!n.align)]);return(s,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.tag),{class:e.normalizeClass(e.unref(a)),style:e.normalizeStyle(e.unref(l))},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},8,["class","style"]))}});var CK=se(bK,[["__file","row.vue"]]);const D1=Me(CK),L1=le({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:W([Number,Object]),default:()=>ut({})},sm:{type:W([Number,Object]),default:()=>ut({})},md:{type:W([Number,Object]),default:()=>ut({})},lg:{type:W([Number,Object]),default:()=>ut({})},xl:{type:W([Number,Object]),default:()=>ut({})}}),wK=e.defineComponent({name:"ElCol"}),kK=e.defineComponent({...wK,props:L1,setup(t){const n=t,{gutter:o}=e.inject(Vu,{gutter:e.computed(()=>0)}),r=Q("col"),l=e.computed(()=>{const s={};return o.value&&(s.paddingLeft=s.paddingRight=`${o.value/2}px`),s}),a=e.computed(()=>{const s=[];return["span","offset","pull","push"].forEach(f=>{const u=n[f];be(u)&&(f==="span"?s.push(r.b(`${n[f]}`)):u>0&&s.push(r.b(`${f}-${n[f]}`)))}),["xs","sm","md","lg","xl"].forEach(f=>{be(n[f])?s.push(r.b(`${f}-${n[f]}`)):nt(n[f])&&Object.entries(n[f]).forEach(([u,d])=>{s.push(u!=="span"?r.b(`${f}-${u}-${d}`):r.b(`${f}-${d}`))})}),o.value&&s.push(r.is("guttered")),[r.b(),s]});return(s,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.tag),{class:e.normalizeClass(e.unref(a)),style:e.normalizeStyle(e.unref(l))},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},8,["class","style"]))}});var SK=se(kK,[["__file","col.vue"]]);const x1=Me(SK),Mu=t=>typeof be(t),F1=le({accordion:Boolean,modelValue:{type:W([Array,String,Number]),default:()=>ut([])}}),H1={[Ie]:Mu,[at]:Mu},Iu=Symbol("collapseContextKey"),EK=(t,n)=>{const o=e.ref(Ho(t.modelValue)),r=a=>{o.value=a;const s=t.accordion?o.value[0]:o.value;n(Ie,s),n(at,s)},l=a=>{if(t.accordion)r([o.value[0]===a?"":a]);else{const s=[...o.value],i=s.indexOf(a);i>-1?s.splice(i,1):s.push(a),r(s)}};return e.watch(()=>t.modelValue,()=>o.value=Ho(t.modelValue),{deep:!0}),e.provide(Iu,{activeNames:o,handleItemClick:l}),{activeNames:o,setActiveNames:r}},NK=()=>{const t=Q("collapse");return{rootKls:e.computed(()=>t.b())}},_K=e.defineComponent({name:"ElCollapse"}),BK=e.defineComponent({..._K,props:F1,emits:H1,setup(t,{expose:n,emit:o}){const r=t,{activeNames:l,setActiveNames:a}=EK(r,o),{rootKls:s}=NK();return n({activeNames:l,setActiveNames:a}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(s))},[e.renderSlot(i.$slots,"default")],2))}});var $K=se(BK,[["__file","collapse.vue"]]);const TK=e.defineComponent({name:"ElCollapseTransition"}),vK=e.defineComponent({...TK,setup(t){const n=Q("collapse-transition"),o=l=>{l.style.maxHeight="",l.style.overflow=l.dataset.oldOverflow,l.style.paddingTop=l.dataset.oldPaddingTop,l.style.paddingBottom=l.dataset.oldPaddingBottom},r={beforeEnter(l){l.dataset||(l.dataset={}),l.dataset.oldPaddingTop=l.style.paddingTop,l.dataset.oldPaddingBottom=l.style.paddingBottom,l.style.maxHeight=0,l.style.paddingTop=0,l.style.paddingBottom=0},enter(l){l.dataset.oldOverflow=l.style.overflow,l.scrollHeight!==0?l.style.maxHeight=`${l.scrollHeight}px`:l.style.maxHeight=0,l.style.paddingTop=l.dataset.oldPaddingTop,l.style.paddingBottom=l.dataset.oldPaddingBottom,l.style.overflow="hidden"},afterEnter(l){l.style.maxHeight="",l.style.overflow=l.dataset.oldOverflow},enterCancelled(l){o(l)},beforeLeave(l){l.dataset||(l.dataset={}),l.dataset.oldPaddingTop=l.style.paddingTop,l.dataset.oldPaddingBottom=l.style.paddingBottom,l.dataset.oldOverflow=l.style.overflow,l.style.maxHeight=`${l.scrollHeight}px`,l.style.overflow="hidden"},leave(l){l.scrollHeight!==0&&(l.style.maxHeight=0,l.style.paddingTop=0,l.style.paddingBottom=0)},afterLeave(l){o(l)},leaveCancelled(l){o(l)}};return(l,a)=>(e.openBlock(),e.createBlock(e.Transition,e.mergeProps({name:e.unref(n).b()},e.toHandlers(r)),{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},16,["name"]))}});var vi=se(vK,[["__file","collapse-transition.vue"]]);vi.install=t=>{t.component(vi.name,vi)};const Vi=vi,K1=Vi,W1=le({title:{type:String,default:""},name:{type:W([String,Number]),default:()=>Os()},disabled:Boolean}),VK=t=>{const n=e.inject(Iu),o=e.ref(!1),r=e.ref(!1),l=e.ref(Os()),a=e.computed(()=>n==null?void 0:n.activeNames.value.includes(t.name));return{focusing:o,id:l,isActive:a,handleFocus:()=>{setTimeout(()=>{r.value?r.value=!1:o.value=!0},50)},handleHeaderClick:()=>{t.disabled||(n==null||n.handleItemClick(t.name),o.value=!1,r.value=!0)},handleEnterClick:()=>{n==null||n.handleItemClick(t.name)}}},MK=(t,{focusing:n,isActive:o,id:r})=>{const l=Q("collapse"),a=e.computed(()=>[l.b("item"),l.is("active",e.unref(o)),l.is("disabled",t.disabled)]),s=e.computed(()=>[l.be("item","header"),l.is("active",e.unref(o)),{focusing:e.unref(n)&&!t.disabled}]),i=e.computed(()=>[l.be("item","arrow"),l.is("active",e.unref(o))]),c=e.computed(()=>l.be("item","wrap")),f=e.computed(()=>l.be("item","content")),u=e.computed(()=>l.b(`content-${e.unref(r)}`)),d=e.computed(()=>l.b(`head-${e.unref(r)}`));return{arrowKls:i,headKls:s,rootKls:a,itemWrapperKls:c,itemContentKls:f,scopedContentId:u,scopedHeadId:d}},IK=["id","aria-expanded","aria-controls","aria-describedby","tabindex"],PK=["id","aria-hidden","aria-labelledby"],RK=e.defineComponent({name:"ElCollapseItem"}),OK=e.defineComponent({...RK,props:W1,setup(t,{expose:n}){const o=t,{focusing:r,id:l,isActive:a,handleFocus:s,handleHeaderClick:i,handleEnterClick:c}=VK(o),{arrowKls:f,headKls:u,rootKls:d,itemWrapperKls:p,itemContentKls:h,scopedContentId:g,scopedHeadId:m}=MK(o,{focusing:r,isActive:a,id:l});return n({isActive:a}),(b,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(d))},[e.createElementVNode("button",{id:e.unref(m),class:e.normalizeClass(e.unref(u)),"aria-expanded":e.unref(a),"aria-controls":e.unref(g),"aria-describedby":e.unref(g),tabindex:b.disabled?-1:0,type:"button",onClick:y[0]||(y[0]=(...C)=>e.unref(i)&&e.unref(i)(...C)),onKeydown:y[1]||(y[1]=e.withKeys(e.withModifiers((...C)=>e.unref(c)&&e.unref(c)(...C),["stop","prevent"]),["space","enter"])),onFocus:y[2]||(y[2]=(...C)=>e.unref(s)&&e.unref(s)(...C)),onBlur:y[3]||(y[3]=C=>r.value=!1)},[e.renderSlot(b.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(b.title),1)]),e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(f))},{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1},8,["class"])],42,IK),e.createVNode(e.unref(Vi),null,{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{id:e.unref(g),role:"region",class:e.normalizeClass(e.unref(p)),"aria-hidden":!e.unref(a),"aria-labelledby":e.unref(m)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(h))},[e.renderSlot(b.$slots,"default")],2)],10,PK),[[e.vShow,e.unref(a)]])]),_:3})],2))}});var j1=se(OK,[["__file","collapse-item.vue"]]);const U1=Me($K,{CollapseItem:j1}),G1=ht(j1),AK=le({color:{type:W(Object),required:!0},vertical:{type:Boolean,default:!1}});let Pu=!1;function Na(t,n){if(!He)return;const o=function(a){var s;(s=n.drag)==null||s.call(n,a)},r=function(a){var s;document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",r),document.removeEventListener("touchmove",o),document.removeEventListener("touchend",r),document.onselectstart=null,document.ondragstart=null,Pu=!1,(s=n.end)==null||s.call(n,a)},l=function(a){var s;Pu||(a.preventDefault(),document.onselectstart=()=>!1,document.ondragstart=()=>!1,document.addEventListener("mousemove",o),document.addEventListener("mouseup",r),document.addEventListener("touchmove",o),document.addEventListener("touchend",r),Pu=!0,(s=n.start)==null||s.call(n,a))};t.addEventListener("mousedown",l),t.addEventListener("touchstart",l)}const zK=t=>{const n=e.getCurrentInstance(),o=e.shallowRef(),r=e.shallowRef();function l(s){s.target!==o.value&&a(s)}function a(s){if(!r.value||!o.value)return;const c=n.vnode.el.getBoundingClientRect(),{clientX:f,clientY:u}=yc(s);if(t.vertical){let d=u-c.top;d=Math.max(o.value.offsetHeight/2,d),d=Math.min(d,c.height-o.value.offsetHeight/2),t.color.set("alpha",Math.round((d-o.value.offsetHeight/2)/(c.height-o.value.offsetHeight)*100))}else{let d=f-c.left;d=Math.max(o.value.offsetWidth/2,d),d=Math.min(d,c.width-o.value.offsetWidth/2),t.color.set("alpha",Math.round((d-o.value.offsetWidth/2)/(c.width-o.value.offsetWidth)*100))}}return{thumb:o,bar:r,handleDrag:a,handleClick:l}},DK=(t,{bar:n,thumb:o,handleDrag:r})=>{const l=e.getCurrentInstance(),a=Q("color-alpha-slider"),s=e.ref(0),i=e.ref(0),c=e.ref();function f(){if(!o.value||t.vertical)return 0;const C=l.vnode.el,k=t.color.get("alpha");return C?Math.round(k*(C.offsetWidth-o.value.offsetWidth/2)/100):0}function u(){if(!o.value)return 0;const C=l.vnode.el;if(!t.vertical)return 0;const k=t.color.get("alpha");return C?Math.round(k*(C.offsetHeight-o.value.offsetHeight/2)/100):0}function d(){if(t.color&&t.color.value){const{r:C,g:k,b:w}=t.color.toRgb();return`linear-gradient(to right, rgba(${C}, ${k}, ${w}, 0) 0%, rgba(${C}, ${k}, ${w}, 1) 100%)`}return""}function p(){s.value=f(),i.value=u(),c.value=d()}e.onMounted(()=>{if(!n.value||!o.value)return;const C={drag:k=>{r(k)},end:k=>{r(k)}};Na(n.value,C),Na(o.value,C),p()}),e.watch(()=>t.color.get("alpha"),()=>p()),e.watch(()=>t.color.value,()=>p());const h=e.computed(()=>[a.b(),a.is("vertical",t.vertical)]),g=e.computed(()=>a.e("bar")),m=e.computed(()=>a.e("thumb")),b=e.computed(()=>({background:c.value})),y=e.computed(()=>({left:kt(s.value),top:kt(i.value)}));return{rootKls:h,barKls:g,barStyle:b,thumbKls:m,thumbStyle:y,update:p}},LK="ElColorAlphaSlider",xK=e.defineComponent({name:LK}),FK=e.defineComponent({...xK,props:AK,setup(t,{expose:n}){const o=t,{bar:r,thumb:l,handleDrag:a,handleClick:s}=zK(o),{rootKls:i,barKls:c,barStyle:f,thumbKls:u,thumbStyle:d,update:p}=DK(o,{bar:r,thumb:l,handleDrag:a});return n({update:p,bar:r,thumb:l}),(h,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(i))},[e.createElementVNode("div",{ref_key:"bar",ref:r,class:e.normalizeClass(e.unref(c)),style:e.normalizeStyle(e.unref(f)),onClick:g[0]||(g[0]=(...m)=>e.unref(s)&&e.unref(s)(...m))},null,6),e.createElementVNode("div",{ref_key:"thumb",ref:l,class:e.normalizeClass(e.unref(u)),style:e.normalizeStyle(e.unref(d))},null,6)],2))}});var HK=se(FK,[["__file","alpha-slider.vue"]]);const KK=e.defineComponent({name:"ElColorHueSlider",props:{color:{type:Object,required:!0},vertical:Boolean},setup(t){const n=Q("color-hue-slider"),o=e.getCurrentInstance(),r=e.ref(),l=e.ref(),a=e.ref(0),s=e.ref(0),i=e.computed(()=>t.color.get("hue"));e.watch(()=>i.value,()=>{p()});function c(h){h.target!==r.value&&f(h)}function f(h){if(!l.value||!r.value)return;const m=o.vnode.el.getBoundingClientRect(),{clientX:b,clientY:y}=yc(h);let C;if(t.vertical){let k=y-m.top;k=Math.min(k,m.height-r.value.offsetHeight/2),k=Math.max(r.value.offsetHeight/2,k),C=Math.round((k-r.value.offsetHeight/2)/(m.height-r.value.offsetHeight)*360)}else{let k=b-m.left;k=Math.min(k,m.width-r.value.offsetWidth/2),k=Math.max(r.value.offsetWidth/2,k),C=Math.round((k-r.value.offsetWidth/2)/(m.width-r.value.offsetWidth)*360)}t.color.set("hue",C)}function u(){if(!r.value)return 0;const h=o.vnode.el;if(t.vertical)return 0;const g=t.color.get("hue");return h?Math.round(g*(h.offsetWidth-r.value.offsetWidth/2)/360):0}function d(){if(!r.value)return 0;const h=o.vnode.el;if(!t.vertical)return 0;const g=t.color.get("hue");return h?Math.round(g*(h.offsetHeight-r.value.offsetHeight/2)/360):0}function p(){a.value=u(),s.value=d()}return e.onMounted(()=>{if(!l.value||!r.value)return;const h={drag:g=>{f(g)},end:g=>{f(g)}};Na(l.value,h),Na(r.value,h),p()}),{bar:l,thumb:r,thumbLeft:a,thumbTop:s,hueValue:i,handleClick:c,update:p,ns:n}}});function WK(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.ns.b(),t.ns.is("vertical",t.vertical)])},[e.createElementVNode("div",{ref:"bar",class:e.normalizeClass(t.ns.e("bar")),onClick:n[0]||(n[0]=(...s)=>t.handleClick&&t.handleClick(...s))},null,2),e.createElementVNode("div",{ref:"thumb",class:e.normalizeClass(t.ns.e("thumb")),style:e.normalizeStyle({left:t.thumbLeft+"px",top:t.thumbTop+"px"})},null,6)],2)}var jK=se(KK,[["render",WK],["__file","hue-slider.vue"]]);const q1=le({modelValue:String,id:String,showAlpha:Boolean,colorFormat:String,disabled:Boolean,size:Vt,popperClass:{type:String,default:""},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},predefine:{type:W(Array)},validateEvent:{type:Boolean,default:!0}}),Y1={[Ie]:t=>De(t)||wt(t),[at]:t=>De(t)||wt(t),activeChange:t=>De(t)||wt(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent},Ru=Symbol("colorPickerContextKey"),X1=function(t,n,o){return[t,n*o/((t=(2-n)*o)<1?t:2-t)||0,t/2]},UK=function(t){return typeof t=="string"&&t.includes(".")&&Number.parseFloat(t)===1},GK=function(t){return typeof t=="string"&&t.includes("%")},Cl=function(t,n){UK(t)&&(t="100%");const o=GK(t);return t=Math.min(n,Math.max(0,Number.parseFloat(`${t}`))),o&&(t=Number.parseInt(`${t*n}`,10)/100),Math.abs(t-n)<1e-6?1:t%n/Number.parseFloat(n)},Z1={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"},Mi=t=>{t=Math.min(Math.round(t),255);const n=Math.floor(t/16),o=t%16;return`${Z1[n]||n}${Z1[o]||o}`},J1=function({r:t,g:n,b:o}){return Number.isNaN(+t)||Number.isNaN(+n)||Number.isNaN(+o)?"":`#${Mi(t)}${Mi(n)}${Mi(o)}`},Ou={A:10,B:11,C:12,D:13,E:14,F:15},Ar=function(t){return t.length===2?(Ou[t[0].toUpperCase()]||+t[0])*16+(Ou[t[1].toUpperCase()]||+t[1]):Ou[t[1].toUpperCase()]||+t[1]},qK=function(t,n,o){n=n/100,o=o/100;let r=n;const l=Math.max(o,.01);o*=2,n*=o<=1?o:2-o,r*=l<=1?l:2-l;const a=(o+n)/2,s=o===0?2*r/(l+r):2*n/(o+n);return{h:t,s:s*100,v:a*100}},Q1=(t,n,o)=>{t=Cl(t,255),n=Cl(n,255),o=Cl(o,255);const r=Math.max(t,n,o),l=Math.min(t,n,o);let a;const s=r,i=r-l,c=r===0?0:i/r;if(r===l)a=0;else{switch(r){case t:{a=(n-o)/i+(n{this._hue=Math.max(0,Math.min(360,r)),this._saturation=Math.max(0,Math.min(100,l)),this._value=Math.max(0,Math.min(100,a)),this.doOnChange()};if(n.includes("hsl")){const r=n.replace(/hsla|hsl|\(|\)/gm,"").split(/\s|,/g).filter(l=>l!=="").map((l,a)=>a>2?Number.parseFloat(l):Number.parseInt(l,10));if(r.length===4?this._alpha=Number.parseFloat(r[3])*100:r.length===3&&(this._alpha=100),r.length>=3){const{h:l,s:a,v:s}=qK(r[0],r[1],r[2]);o(l,a,s)}}else if(n.includes("hsv")){const r=n.replace(/hsva|hsv|\(|\)/gm,"").split(/\s|,/g).filter(l=>l!=="").map((l,a)=>a>2?Number.parseFloat(l):Number.parseInt(l,10));r.length===4?this._alpha=Number.parseFloat(r[3])*100:r.length===3&&(this._alpha=100),r.length>=3&&o(r[0],r[1],r[2])}else if(n.includes("rgb")){const r=n.replace(/rgba|rgb|\(|\)/gm,"").split(/\s|,/g).filter(l=>l!=="").map((l,a)=>a>2?Number.parseFloat(l):Number.parseInt(l,10));if(r.length===4?this._alpha=Number.parseFloat(r[3])*100:r.length===3&&(this._alpha=100),r.length>=3){const{h:l,s:a,v:s}=Q1(r[0],r[1],r[2]);o(l,a,s)}}else if(n.includes("#")){const r=n.replace("#","").trim();if(!/^[0-9a-fA-F]{3}$|^[0-9a-fA-F]{6}$|^[0-9a-fA-F]{8}$/.test(r))return;let l,a,s;r.length===3?(l=Ar(r[0]+r[0]),a=Ar(r[1]+r[1]),s=Ar(r[2]+r[2])):(r.length===6||r.length===8)&&(l=Ar(r.slice(0,2)),a=Ar(r.slice(2,4)),s=Ar(r.slice(4,6))),r.length===8?this._alpha=Ar(r.slice(6))/255*100:(r.length===3||r.length===6)&&(this._alpha=100);const{h:i,s:c,v:f}=Q1(l,a,s);o(i,c,f)}}compare(n){return Math.abs(n._hue-this._hue)<2&&Math.abs(n._saturation-this._saturation)<1&&Math.abs(n._value-this._value)<1&&Math.abs(n._alpha-this._alpha)<1}doOnChange(){const{_hue:n,_saturation:o,_value:r,_alpha:l,format:a}=this;if(this.enableAlpha)switch(a){case"hsl":{const s=X1(n,o/100,r/100);this.value=`hsla(${n}, ${Math.round(s[1]*100)}%, ${Math.round(s[2]*100)}%, ${this.get("alpha")/100})`;break}case"hsv":{this.value=`hsva(${n}, ${Math.round(o)}%, ${Math.round(r)}%, ${this.get("alpha")/100})`;break}case"hex":{this.value=`${J1(_a(n,o,r))}${Mi(l*255/100)}`;break}default:{const{r:s,g:i,b:c}=_a(n,o,r);this.value=`rgba(${s}, ${i}, ${c}, ${this.get("alpha")/100})`}}else switch(a){case"hsl":{const s=X1(n,o/100,r/100);this.value=`hsl(${n}, ${Math.round(s[1]*100)}%, ${Math.round(s[2]*100)}%)`;break}case"hsv":{this.value=`hsv(${n}, ${Math.round(o)}%, ${Math.round(r)}%)`;break}case"rgb":{const{r:s,g:i,b:c}=_a(n,o,r);this.value=`rgb(${s}, ${i}, ${c})`;break}default:this.value=J1(_a(n,o,r))}}}const YK=e.defineComponent({props:{colors:{type:Array,required:!0},color:{type:Object,required:!0}},setup(t){const n=Q("color-predefine"),{currentColor:o}=e.inject(Ru),r=e.ref(a(t.colors,t.color));e.watch(()=>o.value,s=>{const i=new Ba;i.fromString(s),r.value.forEach(c=>{c.selected=i.compare(c)})}),e.watchEffect(()=>{r.value=a(t.colors,t.color)});function l(s){t.color.fromString(t.colors[s])}function a(s,i){return s.map(c=>{const f=new Ba;return f.enableAlpha=!0,f.format="rgba",f.fromString(c),f.selected=f.value===i.value,f})}return{rgbaColors:r,handleSelect:l,ns:n}}}),XK=["onClick"];function ZK(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.ns.b())},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("colors"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.rgbaColors,(s,i)=>(e.openBlock(),e.createElementBlock("div",{key:t.colors[i],class:e.normalizeClass([t.ns.e("color-selector"),t.ns.is("alpha",s._alpha<100),{selected:s.selected}]),onClick:c=>t.handleSelect(i)},[e.createElementVNode("div",{style:e.normalizeStyle({backgroundColor:s.value})},null,4)],10,XK))),128))],2)],2)}var JK=se(YK,[["render",ZK],["__file","predefine.vue"]]);const QK=e.defineComponent({name:"ElSlPanel",props:{color:{type:Object,required:!0}},setup(t){const n=Q("color-svpanel"),o=e.getCurrentInstance(),r=e.ref(0),l=e.ref(0),a=e.ref("hsl(0, 100%, 50%)"),s=e.computed(()=>{const f=t.color.get("hue"),u=t.color.get("value");return{hue:f,value:u}});function i(){const f=t.color.get("saturation"),u=t.color.get("value"),d=o.vnode.el,{clientWidth:p,clientHeight:h}=d;l.value=f*p/100,r.value=(100-u)*h/100,a.value=`hsl(${t.color.get("hue")}, 100%, 50%)`}function c(f){const d=o.vnode.el.getBoundingClientRect(),{clientX:p,clientY:h}=yc(f);let g=p-d.left,m=h-d.top;g=Math.max(0,g),g=Math.min(g,d.width),m=Math.max(0,m),m=Math.min(m,d.height),l.value=g,r.value=m,t.color.set({saturation:g/d.width*100,value:100-m/d.height*100})}return e.watch(()=>s.value,()=>{i()}),e.onMounted(()=>{Na(o.vnode.el,{drag:f=>{c(f)},end:f=>{c(f)}}),i()}),{cursorTop:r,cursorLeft:l,background:a,colorValue:s,handleDrag:c,update:i,ns:n}}}),eW=[e.createElementVNode("div",null,null,-1)];function tW(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.ns.b()),style:e.normalizeStyle({backgroundColor:t.background})},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("white"))},null,2),e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("black"))},null,2),e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("cursor")),style:e.normalizeStyle({top:t.cursorTop+"px",left:t.cursorLeft+"px"})},eW,6)],6)}var nW=se(QK,[["render",tW],["__file","sv-panel.vue"]]);const oW=["onKeydown"],rW=["id","aria-label","aria-labelledby","aria-description","aria-disabled","tabindex"],lW=e.defineComponent({name:"ElColorPicker"}),aW=e.defineComponent({...lW,props:q1,emits:Y1,setup(t,{expose:n,emit:o}){const r=t,{t:l}=Ke(),a=Q("color"),{formItem:s}=Xt(),i=St(),c=Yt(),{inputId:f,isLabeledByFormItem:u}=vo(r,{formItemContext:s}),d=e.ref(),p=e.ref(),h=e.ref(),g=e.ref(),m=e.ref(),b=e.ref(),{isFocused:y,handleFocus:C,handleBlur:k}=Bf(m,{beforeBlur(te){var oe;return(oe=g.value)==null?void 0:oe.isFocusInsideContent(te)},afterBlur(){z(!1),A()}}),w=te=>{if(c.value)return re();C(te)};let E=!0;const S=e.reactive(new Ba({enableAlpha:r.showAlpha,format:r.colorFormat||"",value:r.modelValue})),_=e.ref(!1),B=e.ref(!1),M=e.ref(""),P=e.computed(()=>!r.modelValue&&!B.value?"transparent":D(S,r.showAlpha)),T=e.computed(()=>!r.modelValue&&!B.value?"":S.value),I=e.computed(()=>u.value?void 0:r.label||l("el.colorpicker.defaultLabel")),v=e.computed(()=>u.value?s==null?void 0:s.labelId:void 0),O=e.computed(()=>[a.b("picker"),a.is("disabled",c.value),a.bm("picker",i.value),a.is("focused",y.value)]);function D(te,oe){if(!(te instanceof Ba))throw new TypeError("color should be instance of _color Class");const{r:ie,g:ye,b:Ne}=te.toRgb();return oe?`rgba(${ie}, ${ye}, ${Ne}, ${te.get("alpha")/100})`:`rgb(${ie}, ${ye}, ${Ne})`}function z(te){_.value=te}const $=Gt(z,100,{leading:!0});function R(){c.value||z(!0)}function N(){$(!1),A()}function A(){e.nextTick(()=>{r.modelValue?S.fromString(r.modelValue):(S.value="",e.nextTick(()=>{B.value=!1}))})}function x(){c.value||$(!_.value)}function H(){S.fromString(M.value)}function K(){const te=S.value;o(Ie,te),o("change",te),r.validateEvent&&(s==null||s.validate("change").catch(oe=>void 0)),$(!1),e.nextTick(()=>{const oe=new Ba({enableAlpha:r.showAlpha,format:r.colorFormat||"",value:r.modelValue});S.compare(oe)||A()})}function q(){$(!1),o(Ie,null),o("change",null),r.modelValue!==null&&r.validateEvent&&(s==null||s.validate("change").catch(te=>void 0)),A()}function ne(te){if(!!_.value&&(N(),y.value)){const oe=new FocusEvent("focus",te);k(oe)}}function Y(te){te.preventDefault(),te.stopPropagation(),z(!1),A()}function Z(te){switch(te.code){case pe.enter:case pe.space:te.preventDefault(),te.stopPropagation(),R(),b.value.focus();break;case pe.esc:Y(te);break}}function U(){m.value.focus()}function re(){m.value.blur()}return e.onMounted(()=>{r.modelValue&&(M.value=T.value)}),e.watch(()=>r.modelValue,te=>{te?te&&te!==S.value&&(E=!1,S.fromString(te)):B.value=!1}),e.watch(()=>T.value,te=>{M.value=te,E&&o("activeChange",te),E=!0}),e.watch(()=>S.value,()=>{!r.modelValue&&!B.value&&(B.value=!0)}),e.watch(()=>_.value,()=>{e.nextTick(()=>{var te,oe,ie;(te=d.value)==null||te.update(),(oe=p.value)==null||oe.update(),(ie=h.value)==null||ie.update()})}),e.provide(Ru,{currentColor:T}),n({color:S,show:R,hide:N,focus:U,blur:re}),(te,oe)=>(e.openBlock(),e.createBlock(e.unref(Zt),{ref_key:"popper",ref:g,visible:_.value,"show-arrow":!1,"fallback-placements":["bottom","top","right","left"],offset:0,"gpu-acceleration":!1,"popper-class":[e.unref(a).be("picker","panel"),e.unref(a).b("dropdown"),te.popperClass],"stop-popper-mouse-event":!1,effect:"light",trigger:"click",transition:`${e.unref(a).namespace.value}-zoom-in-top`,persistent:"",onHide:oe[2]||(oe[2]=ie=>z(!1))},{content:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createElementBlock("div",{onKeydown:e.withKeys(Y,["esc"])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).be("dropdown","main-wrapper"))},[e.createVNode(jK,{ref_key:"hue",ref:d,class:"hue-slider",color:e.unref(S),vertical:""},null,8,["color"]),e.createVNode(nW,{ref_key:"sv",ref:p,color:e.unref(S)},null,8,["color"])],2),te.showAlpha?(e.openBlock(),e.createBlock(HK,{key:0,ref_key:"alpha",ref:h,color:e.unref(S)},null,8,["color"])):e.createCommentVNode("v-if",!0),te.predefine?(e.openBlock(),e.createBlock(JK,{key:1,ref:"predefine",color:e.unref(S),colors:te.predefine},null,8,["color","colors"])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).be("dropdown","btns"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).be("dropdown","value"))},[e.createVNode(e.unref(Ft),{ref_key:"inputRef",ref:b,modelValue:M.value,"onUpdate:modelValue":oe[0]||(oe[0]=ie=>M.value=ie),"validate-event":!1,size:"small",onKeyup:e.withKeys(H,["enter"]),onBlur:H},null,8,["modelValue","onKeyup"])],2),e.createVNode(e.unref(At),{class:e.normalizeClass(e.unref(a).be("dropdown","link-btn")),text:"",size:"small",onClick:q},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(l)("el.colorpicker.clear")),1)]),_:1},8,["class"]),e.createVNode(e.unref(At),{plain:"",size:"small",class:e.normalizeClass(e.unref(a).be("dropdown","btn")),onClick:K},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(l)("el.colorpicker.confirm")),1)]),_:1},8,["class"])],2)],40,oW)),[[e.unref(Po),ne]])]),default:e.withCtx(()=>[e.createElementVNode("div",{id:e.unref(f),ref_key:"triggerRef",ref:m,class:e.normalizeClass(e.unref(O)),role:"button","aria-label":e.unref(I),"aria-labelledby":e.unref(v),"aria-description":e.unref(l)("el.colorpicker.description",{color:te.modelValue||""}),"aria-disabled":e.unref(c),tabindex:e.unref(c)?-1:te.tabindex,onKeydown:Z,onFocus:w,onBlur:oe[1]||(oe[1]=(...ie)=>e.unref(k)&&e.unref(k)(...ie))},[e.unref(c)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(a).be("picker","mask"))},null,2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).be("picker","trigger")),onClick:x},[e.createElementVNode("span",{class:e.normalizeClass([e.unref(a).be("picker","color"),e.unref(a).is("alpha",te.showAlpha)])},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).be("picker","color-inner")),style:e.normalizeStyle({backgroundColor:e.unref(P)})},[e.withDirectives(e.createVNode(e.unref(fe),{class:e.normalizeClass([e.unref(a).be("picker","icon"),e.unref(a).is("icon-arrow-down")])},{default:e.withCtx(()=>[e.createVNode(e.unref(qo))]),_:1},8,["class"]),[[e.vShow,te.modelValue||B.value]]),e.withDirectives(e.createVNode(e.unref(fe),{class:e.normalizeClass([e.unref(a).be("picker","empty"),e.unref(a).is("icon-close")])},{default:e.withCtx(()=>[e.createVNode(e.unref(Hn))]),_:1},8,["class"]),[[e.vShow,!te.modelValue&&!B.value]])],6)],2)],2)],42,rW)]),_:1},8,["visible","popper-class","transition"]))}});var sW=se(aW,[["__file","color-picker.vue"]]);const ek=Me(sW),iW=e.defineComponent({name:"ElContainer"}),cW=e.defineComponent({...iW,props:{direction:{type:String}},setup(t){const n=t,o=e.useSlots(),r=Q("container"),l=e.computed(()=>n.direction==="vertical"?!0:n.direction==="horizontal"?!1:o&&o.default?o.default().some(s=>{const i=s.type.name;return i==="ElHeader"||i==="ElFooter"}):!1);return(a,s)=>(e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass([e.unref(r).b(),e.unref(r).is("vertical",e.unref(l))])},[e.renderSlot(a.$slots,"default")],2))}});var dW=se(cW,[["__file","container.vue"]]);const fW=e.defineComponent({name:"ElAside"}),uW=e.defineComponent({...fW,props:{width:{type:String,default:null}},setup(t){const n=t,o=Q("aside"),r=e.computed(()=>n.width?o.cssVarBlock({width:n.width}):{});return(l,a)=>(e.openBlock(),e.createElementBlock("aside",{class:e.normalizeClass(e.unref(o).b()),style:e.normalizeStyle(e.unref(r))},[e.renderSlot(l.$slots,"default")],6))}});var tk=se(uW,[["__file","aside.vue"]]);const pW=e.defineComponent({name:"ElFooter"}),mW=e.defineComponent({...pW,props:{height:{type:String,default:null}},setup(t){const n=t,o=Q("footer"),r=e.computed(()=>n.height?o.cssVarBlock({height:n.height}):{});return(l,a)=>(e.openBlock(),e.createElementBlock("footer",{class:e.normalizeClass(e.unref(o).b()),style:e.normalizeStyle(e.unref(r))},[e.renderSlot(l.$slots,"default")],6))}});var nk=se(mW,[["__file","footer.vue"]]);const hW=e.defineComponent({name:"ElHeader"}),gW=e.defineComponent({...hW,props:{height:{type:String,default:null}},setup(t){const n=t,o=Q("header"),r=e.computed(()=>n.height?o.cssVarBlock({height:n.height}):{});return(l,a)=>(e.openBlock(),e.createElementBlock("header",{class:e.normalizeClass(e.unref(o).b()),style:e.normalizeStyle(e.unref(r))},[e.renderSlot(l.$slots,"default")],6))}});var ok=se(gW,[["__file","header.vue"]]);const yW=e.defineComponent({name:"ElMain"}),bW=e.defineComponent({...yW,setup(t){const n=Q("main");return(o,r)=>(e.openBlock(),e.createElementBlock("main",{class:e.normalizeClass(e.unref(n).b())},[e.renderSlot(o.$slots,"default")],2))}});var rk=se(bW,[["__file","main.vue"]]);const lk=Me(dW,{Aside:tk,Footer:nk,Header:ok,Main:rk}),ak=ht(tk),sk=ht(nk),ik=ht(ok),ck=ht(rk);var dk={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){return function(o,r,l){var a=r.prototype,s=a.format;l.en.ordinal=function(i){var c=["th","st","nd","rd"],f=i%100;return"["+i+(c[(f-20)%10]||c[f]||c[0])+"]"},a.format=function(i){var c=this,f=this.$locale();if(!this.isValid())return s.bind(this)(i);var u=this.$utils(),d=(i||"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(p){switch(p){case"Q":return Math.ceil((c.$M+1)/3);case"Do":return f.ordinal(c.$D);case"gggg":return c.weekYear();case"GGGG":return c.isoWeekYear();case"wo":return f.ordinal(c.week(),"W");case"w":case"ww":return u.s(c.week(),p==="w"?1:2,"0");case"W":case"WW":return u.s(c.isoWeek(),p==="W"?1:2,"0");case"k":case"kk":return u.s(String(c.$H===0?24:c.$H),p==="k"?1:2,"0");case"X":return Math.floor(c.$d.getTime()/1e3);case"x":return c.$d.getTime();case"z":return"["+c.offsetName()+"]";case"zzz":return"["+c.offsetName("long")+"]";default:return p}});return s.bind(this)(d)}}})})(dk);var CW=dk.exports,fk={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){var o="week",r="year";return function(l,a,s){var i=a.prototype;i.week=function(c){if(c===void 0&&(c=null),c!==null)return this.add(7*(c-this.week()),"day");var f=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var u=s(this).startOf(r).add(1,r).date(f),d=s(this).endOf(o);if(u.isBefore(d))return 1}var p=s(this).startOf(r).date(f).startOf(o).subtract(1,"millisecond"),h=this.diff(p,o,!0);return h<0?s(this).startOf("week").week():Math.ceil(h)},i.weeks=function(c){return c===void 0&&(c=null),this.week(c)}}})})(fk);var wW=fk.exports,uk={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){return function(o,r){r.prototype.weekYear=function(){var l=this.month(),a=this.week(),s=this.year();return a===1&&l===11?s+1:l===0&&a>=52?s-1:s}}})})(uk);var kW=uk.exports,pk={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){return function(o,r,l){r.prototype.dayOfYear=function(a){var s=Math.round((l(this).startOf("day")-l(this).startOf("year"))/864e5)+1;return a==null?s:this.add(a-s,"day")}}})})(pk);var SW=pk.exports,mk={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){return function(o,r){r.prototype.isSameOrAfter=function(l,a){return this.isSame(l,a)||this.isAfter(l,a)}}})})(mk);var EW=mk.exports,hk={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){return function(o,r){r.prototype.isSameOrBefore=function(l,a){return this.isSame(l,a)||this.isBefore(l,a)}}})})(hk);var NW=hk.exports;const Ii=Symbol(),gk=le({...bi,type:{type:W(String),default:"date"}}),_W=["date","dates","year","month","week","range"],Au=le({disabledDate:{type:W(Function)},date:{type:W(Object),required:!0},minDate:{type:W(Object)},maxDate:{type:W(Object)},parsedValue:{type:W([Object,Array])},rangeState:{type:W(Object),default:()=>({endDate:null,selecting:!1})}}),yk=le({type:{type:W(String),required:!0,values:Vy},dateFormat:String,timeFormat:String}),bk=le({unlinkPanels:Boolean,parsedValue:{type:W(Array)}}),Ck=t=>({type:String,values:_W,default:t}),BW=le({...yk,parsedValue:{type:W([Object,Array])},visible:{type:Boolean},format:{type:String,default:""}}),$W=le({...Au,cellClassName:{type:W(Function)},showWeekNumber:Boolean,selectionMode:Ck("date")}),TW=["changerange","pick","select"],zu=t=>{if(!Re(t))return!1;const[n,o]=t;return ve.isDayjs(n)&&ve.isDayjs(o)&&n.isSameOrBefore(o)},wk=(t,{lang:n,unit:o,unlinkPanels:r})=>{let l;if(Re(t)){let[a,s]=t.map(i=>ve(i).locale(n));return r||(s=a.add(1,o)),[a,s]}else t?l=ve(t):l=ve();return l=l.locale(n),[l,l.add(1,o)]},vW=(t,n,{columnIndexOffset:o,startDate:r,nextEndDate:l,now:a,unit:s,relativeDateGetter:i,setCellMetadata:c,setRowMetadata:f})=>{for(let u=0;u["normal","today"].includes(t),VW=(t,n)=>{const{lang:o}=Ke(),r=e.ref(),l=e.ref(),a=e.ref(),s=e.ref(),i=e.ref([[],[],[],[],[],[]]);let c=!1;const f=t.date.$locale().weekStart||7,u=t.date.locale("en").localeData().weekdaysShort().map(N=>N.toLowerCase()),d=e.computed(()=>f>3?7-f:-f),p=e.computed(()=>{const N=t.date.startOf("month");return N.subtract(N.day()||7,"day")}),h=e.computed(()=>u.concat(u).slice(f,f+7)),g=e.computed(()=>zc(e.unref(w)).some(N=>N.isCurrent)),m=e.computed(()=>{const N=t.date.startOf("month"),A=N.day()||7,x=N.daysInMonth(),H=N.subtract(1,"month").daysInMonth();return{startOfMonthDay:A,dateCountOfMonth:x,dateCountOfLastMonth:H}}),b=e.computed(()=>t.selectionMode==="dates"?_o(t.parsedValue):[]),y=(N,{count:A,rowIndex:x,columnIndex:H})=>{const{startOfMonthDay:K,dateCountOfMonth:q,dateCountOfLastMonth:ne}=e.unref(m),Y=e.unref(d);if(x>=0&&x<=1){const Z=K+Y<0?7+K+Y:K+Y;if(H+x*7>=Z)return N.text=A,!0;N.text=ne-(Z-H%7)+1+x*7,N.type="prev-month"}else return A<=q?N.text=A:(N.text=A-q,N.type="next-month"),!0;return!1},C=(N,{columnIndex:A,rowIndex:x},H)=>{const{disabledDate:K,cellClassName:q}=t,ne=e.unref(b),Y=y(N,{count:H,rowIndex:x,columnIndex:A}),Z=N.dayjs.toDate();return N.selected=ne.find(U=>U.valueOf()===N.dayjs.valueOf()),N.isSelected=!!N.selected,N.isCurrent=S(N),N.disabled=K==null?void 0:K(Z),N.customClass=q==null?void 0:q(Z),Y},k=N=>{if(t.selectionMode==="week"){const[A,x]=t.showWeekNumber?[1,7]:[0,6],H=R(N[A+1]);N[A].inRange=H,N[A].start=H,N[x].inRange=H,N[x].end=H}},w=e.computed(()=>{const{minDate:N,maxDate:A,rangeState:x,showWeekNumber:H}=t,K=e.unref(d),q=e.unref(i),ne="day";let Y=1;if(H)for(let Z=0;Z<6;Z++)q[Z][0]||(q[Z][0]={type:"week",text:e.unref(p).add(Z*7+1,ne).week()});return vW({row:6,column:7},q,{startDate:N,columnIndexOffset:H?1:0,nextEndDate:x.endDate||A||x.selecting&&N||null,now:ve().locale(e.unref(o)).startOf(ne),unit:ne,relativeDateGetter:Z=>e.unref(p).add(Z-K,ne),setCellMetadata:(...Z)=>{C(...Z,Y)&&(Y+=1)},setRowMetadata:k}),q});e.watch(()=>t.date,async()=>{var N;(N=e.unref(r))!=null&&N.contains(document.activeElement)&&(await e.nextTick(),await E())});const E=async()=>{var N;return(N=e.unref(l))==null?void 0:N.focus()},S=N=>t.selectionMode==="date"&&Du(N.type)&&_(N,t.parsedValue),_=(N,A)=>A?ve(A).locale(e.unref(o)).isSame(t.date.date(Number(N.text)),"day"):!1,B=(N,A)=>{const x=N*7+(A-(t.showWeekNumber?1:0))-e.unref(d);return e.unref(p).add(x,"day")},M=N=>{var A;if(!t.rangeState.selecting)return;let x=N.target;if(x.tagName==="SPAN"&&(x=(A=x.parentNode)==null?void 0:A.parentNode),x.tagName==="DIV"&&(x=x.parentNode),x.tagName!=="TD")return;const H=x.parentNode.rowIndex-1,K=x.cellIndex;e.unref(w)[H][K].disabled||(H!==e.unref(a)||K!==e.unref(s))&&(a.value=H,s.value=K,n("changerange",{selecting:!0,endDate:B(H,K)}))},P=N=>!e.unref(g)&&(N==null?void 0:N.text)===1&&N.type==="normal"||N.isCurrent,T=N=>{c||e.unref(g)||t.selectionMode!=="date"||$(N,!0)},I=N=>{!N.target.closest("td")||(c=!0)},v=N=>{!N.target.closest("td")||(c=!1)},O=N=>{!t.rangeState.selecting||!t.minDate?(n("pick",{minDate:N,maxDate:null}),n("select",!0)):(N>=t.minDate?n("pick",{minDate:t.minDate,maxDate:N}):n("pick",{minDate:N,maxDate:t.minDate}),n("select",!1))},D=N=>{const A=N.week(),x=`${N.year()}w${A}`;n("pick",{year:N.year(),week:A,value:x,date:N.startOf("week")})},z=(N,A)=>{const x=A?_o(t.parsedValue).filter(H=>(H==null?void 0:H.valueOf())!==N.valueOf()):_o(t.parsedValue).concat([N]);n("pick",x)},$=(N,A=!1)=>{const x=N.target.closest("td");if(!x)return;const H=x.parentNode.rowIndex-1,K=x.cellIndex,q=e.unref(w)[H][K];if(q.disabled||q.type==="week")return;const ne=B(H,K);switch(t.selectionMode){case"range":{O(ne);break}case"date":{n("pick",ne,A);break}case"week":{D(ne);break}case"dates":{z(ne,!!q.selected);break}}},R=N=>{if(t.selectionMode!=="week")return!1;let A=t.date.startOf("day");if(N.type==="prev-month"&&(A=A.subtract(1,"month")),N.type==="next-month"&&(A=A.add(1,"month")),A=A.date(Number.parseInt(N.text,10)),t.parsedValue&&!Array.isArray(t.parsedValue)){const x=(t.parsedValue.day()-f+7)%7-1;return t.parsedValue.subtract(x,"day").isSame(A,"day")}return!1};return{WEEKS:h,rows:w,tbodyRef:r,currentCellRef:l,focus:E,isCurrent:S,isWeekActive:R,isSelectedCell:P,handlePickDate:$,handleMouseUp:v,handleMouseDown:I,handleMouseMove:M,handleFocus:T}},MW=(t,{isCurrent:n,isWeekActive:o})=>{const r=Q("date-table"),{t:l}=Ke(),a=e.computed(()=>[r.b(),{"is-week-mode":t.selectionMode==="week"}]),s=e.computed(()=>l("el.datepicker.dateTablePrompt")),i=e.computed(()=>l("el.datepicker.week"));return{tableKls:a,tableLabel:s,weekLabel:i,getCellClasses:u=>{const d=[];return Du(u.type)&&!u.disabled?(d.push("available"),u.type==="today"&&d.push("today")):d.push(u.type),n(u)&&d.push("current"),u.inRange&&(Du(u.type)||t.selectionMode==="week")&&(d.push("in-range"),u.start&&d.push("start-date"),u.end&&d.push("end-date")),u.disabled&&d.push("disabled"),u.selected&&d.push("selected"),u.customClass&&d.push(u.customClass),d.join(" ")},getRowKls:u=>[r.e("row"),{current:o(u)}],t:l}},IW=le({cell:{type:W(Object)}});var PW=e.defineComponent({name:"ElDatePickerCell",props:IW,setup(t){const n=Q("date-table-cell"),{slots:o}=e.inject(Ii);return()=>{const{cell:r}=t;if(o.default){const l=o.default(r).filter(a=>a.patchFlag!==-2&&a.type.toString()!=="Symbol(Comment)"&&a.type.toString()!=="Symbol(v-cmt)");if(l.length)return l}return e.createVNode("div",{class:n.b()},[e.createVNode("span",{class:n.e("text")},[r==null?void 0:r.text])])}}});const RW=["aria-label"],OW={key:0,scope:"col"},AW=["aria-label"],zW=["aria-current","aria-selected","tabindex"];var Lu=se(e.defineComponent({__name:"basic-date-table",props:$W,emits:TW,setup(t,{expose:n,emit:o}){const r=t,{WEEKS:l,rows:a,tbodyRef:s,currentCellRef:i,focus:c,isCurrent:f,isWeekActive:u,isSelectedCell:d,handlePickDate:p,handleMouseUp:h,handleMouseDown:g,handleMouseMove:m,handleFocus:b}=VW(r,o),{tableLabel:y,tableKls:C,weekLabel:k,getCellClasses:w,getRowKls:E,t:S}=MW(r,{isCurrent:f,isWeekActive:u});return n({focus:c}),(_,B)=>(e.openBlock(),e.createElementBlock("table",{"aria-label":e.unref(y),class:e.normalizeClass(e.unref(C)),cellspacing:"0",cellpadding:"0",role:"grid",onClick:B[1]||(B[1]=(...M)=>e.unref(p)&&e.unref(p)(...M)),onMousemove:B[2]||(B[2]=(...M)=>e.unref(m)&&e.unref(m)(...M)),onMousedown:B[3]||(B[3]=e.withModifiers((...M)=>e.unref(g)&&e.unref(g)(...M),["prevent"])),onMouseup:B[4]||(B[4]=(...M)=>e.unref(h)&&e.unref(h)(...M))},[e.createElementVNode("tbody",{ref_key:"tbodyRef",ref:s},[e.createElementVNode("tr",null,[_.showWeekNumber?(e.openBlock(),e.createElementBlock("th",OW,e.toDisplayString(e.unref(k)),1)):e.createCommentVNode("v-if",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),(M,P)=>(e.openBlock(),e.createElementBlock("th",{key:P,"aria-label":e.unref(S)("el.datepicker.weeksFull."+M),scope:"col"},e.toDisplayString(e.unref(S)("el.datepicker.weeks."+M)),9,AW))),128))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),(M,P)=>(e.openBlock(),e.createElementBlock("tr",{key:P,class:e.normalizeClass(e.unref(E)(M[1]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M,(T,I)=>(e.openBlock(),e.createElementBlock("td",{key:`${P}.${I}`,ref_for:!0,ref:v=>e.unref(d)(T)&&(i.value=v),class:e.normalizeClass(e.unref(w)(T)),"aria-current":T.isCurrent?"date":void 0,"aria-selected":T.isCurrent,tabindex:e.unref(d)(T)?0:-1,onFocus:B[0]||(B[0]=(...v)=>e.unref(b)&&e.unref(b)(...v))},[e.createVNode(e.unref(PW),{cell:T},null,8,["cell"])],42,zW))),128))],2))),128))],512)],42,RW))}}),[["__file","basic-date-table.vue"]]);const DW=le({...Au,selectionMode:Ck("month")}),LW=["aria-label"],xW=["aria-selected","aria-label","tabindex","onKeydown"],FW={class:"cell"};var xu=se(e.defineComponent({__name:"basic-month-table",props:DW,emits:["changerange","pick","select"],setup(t,{expose:n,emit:o}){const r=t,l=(w,E,S)=>{const _=ve().locale(S).startOf("month").month(E).year(w),B=_.daysInMonth();return Io(B).map(M=>_.add(M,"day").toDate())},a=Q("month-table"),{t:s,lang:i}=Ke(),c=e.ref(),f=e.ref(),u=e.ref(r.date.locale("en").localeData().monthsShort().map(w=>w.toLowerCase())),d=e.ref([[],[],[]]),p=e.ref(),h=e.ref(),g=e.computed(()=>{var w,E;const S=d.value,_=ve().locale(i.value).startOf("month");for(let B=0;B<3;B++){const M=S[B];for(let P=0;P<4;P++){const T=M[P]||(M[P]={row:B,column:P,type:"normal",inRange:!1,start:!1,end:!1,text:-1,disabled:!1});T.type="normal";const I=B*4+P,v=r.date.startOf("year").month(I),O=r.rangeState.endDate||r.maxDate||r.rangeState.selecting&&r.minDate||null;T.inRange=!!(r.minDate&&v.isSameOrAfter(r.minDate,"month")&&O&&v.isSameOrBefore(O,"month"))||!!(r.minDate&&v.isSameOrBefore(r.minDate,"month")&&O&&v.isSameOrAfter(O,"month")),(w=r.minDate)!=null&&w.isSameOrAfter(O)?(T.start=!!(O&&v.isSame(O,"month")),T.end=r.minDate&&v.isSame(r.minDate,"month")):(T.start=!!(r.minDate&&v.isSame(r.minDate,"month")),T.end=!!(O&&v.isSame(O,"month"))),_.isSame(v)&&(T.type="today"),T.text=I,T.disabled=((E=r.disabledDate)==null?void 0:E.call(r,v.toDate()))||!1}}return S}),m=()=>{var w;(w=f.value)==null||w.focus()},b=w=>{const E={},S=r.date.year(),_=new Date,B=w.text;return E.disabled=r.disabledDate?l(S,B,i.value).every(r.disabledDate):!1,E.current=_o(r.parsedValue).findIndex(M=>ve.isDayjs(M)&&M.year()===S&&M.month()===B)>=0,E.today=_.getFullYear()===S&&_.getMonth()===B,w.inRange&&(E["in-range"]=!0,w.start&&(E["start-date"]=!0),w.end&&(E["end-date"]=!0)),E},y=w=>{const E=r.date.year(),S=w.text;return _o(r.date).findIndex(_=>_.year()===E&&_.month()===S)>=0},C=w=>{var E;if(!r.rangeState.selecting)return;let S=w.target;if(S.tagName==="A"&&(S=(E=S.parentNode)==null?void 0:E.parentNode),S.tagName==="DIV"&&(S=S.parentNode),S.tagName!=="TD")return;const _=S.parentNode.rowIndex,B=S.cellIndex;g.value[_][B].disabled||(_!==p.value||B!==h.value)&&(p.value=_,h.value=B,o("changerange",{selecting:!0,endDate:r.date.startOf("year").month(_*4+B)}))},k=w=>{var E;const S=(E=w.target)==null?void 0:E.closest("td");if((S==null?void 0:S.tagName)!=="TD"||Fn(S,"disabled"))return;const _=S.cellIndex,M=S.parentNode.rowIndex*4+_,P=r.date.startOf("year").month(M);r.selectionMode==="range"?r.rangeState.selecting?(r.minDate&&P>=r.minDate?o("pick",{minDate:r.minDate,maxDate:P}):o("pick",{minDate:P,maxDate:r.minDate}),o("select",!1)):(o("pick",{minDate:P,maxDate:null}),o("select",!0)):o("pick",M)};return e.watch(()=>r.date,async()=>{var w,E;(w=c.value)!=null&&w.contains(document.activeElement)&&(await e.nextTick(),(E=f.value)==null||E.focus())}),n({focus:m}),(w,E)=>(e.openBlock(),e.createElementBlock("table",{role:"grid","aria-label":e.unref(s)("el.datepicker.monthTablePrompt"),class:e.normalizeClass(e.unref(a).b()),onClick:k,onMousemove:C},[e.createElementVNode("tbody",{ref_key:"tbodyRef",ref:c},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),(S,_)=>(e.openBlock(),e.createElementBlock("tr",{key:_},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S,(B,M)=>(e.openBlock(),e.createElementBlock("td",{key:M,ref_for:!0,ref:P=>y(B)&&(f.value=P),class:e.normalizeClass(b(B)),"aria-selected":`${y(B)}`,"aria-label":e.unref(s)(`el.datepicker.month${+B.text+1}`),tabindex:y(B)?0:-1,onKeydown:[e.withKeys(e.withModifiers(k,["prevent","stop"]),["space"]),e.withKeys(e.withModifiers(k,["prevent","stop"]),["enter"])]},[e.createElementVNode("div",null,[e.createElementVNode("span",FW,e.toDisplayString(e.unref(s)("el.datepicker.months."+u.value[B.text])),1)])],42,xW))),128))]))),128))],512)],42,LW))}}),[["__file","basic-month-table.vue"]]);const{date:HW,disabledDate:KW,parsedValue:WW}=Au,jW=le({date:HW,disabledDate:KW,parsedValue:WW}),UW=["aria-label"],GW=["aria-selected","tabindex","onKeydown"],qW={class:"cell"},YW={key:1};var XW=se(e.defineComponent({__name:"basic-year-table",props:jW,emits:["pick"],setup(t,{expose:n,emit:o}){const r=t,l=(m,b)=>{const y=ve(String(m)).locale(b).startOf("year"),k=y.endOf("year").dayOfYear();return Io(k).map(w=>y.add(w,"day").toDate())},a=Q("year-table"),{t:s,lang:i}=Ke(),c=e.ref(),f=e.ref(),u=e.computed(()=>Math.floor(r.date.year()/10)*10),d=()=>{var m;(m=f.value)==null||m.focus()},p=m=>{const b={},y=ve().locale(i.value);return b.disabled=r.disabledDate?l(m,i.value).every(r.disabledDate):!1,b.current=_o(r.parsedValue).findIndex(C=>C.year()===m)>=0,b.today=y.year()===m,b},h=m=>m===u.value&&r.date.year()u.value+9||_o(r.date).findIndex(b=>b.year()===m)>=0,g=m=>{const y=m.target.closest("td");if(y&&y.textContent){if(Fn(y,"disabled"))return;const C=y.textContent||y.innerText;o("pick",Number(C))}};return e.watch(()=>r.date,async()=>{var m,b;(m=c.value)!=null&&m.contains(document.activeElement)&&(await e.nextTick(),(b=f.value)==null||b.focus())}),n({focus:d}),(m,b)=>(e.openBlock(),e.createElementBlock("table",{role:"grid","aria-label":e.unref(s)("el.datepicker.yearTablePrompt"),class:e.normalizeClass(e.unref(a).b()),onClick:g},[e.createElementVNode("tbody",{ref_key:"tbodyRef",ref:c},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(3,(y,C)=>e.createElementVNode("tr",{key:C},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(4,(k,w)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:C+"_"+w},[C*4+w<10?(e.openBlock(),e.createElementBlock("td",{key:0,ref_for:!0,ref:E=>h(e.unref(u)+C*4+w)&&(f.value=E),class:e.normalizeClass(["available",p(e.unref(u)+C*4+w)]),"aria-selected":`${h(e.unref(u)+C*4+w)}`,tabindex:h(e.unref(u)+C*4+w)?0:-1,onKeydown:[e.withKeys(e.withModifiers(g,["prevent","stop"]),["space"]),e.withKeys(e.withModifiers(g,["prevent","stop"]),["enter"])]},[e.createElementVNode("span",qW,e.toDisplayString(e.unref(u)+C*4+w),1)],42,GW)):(e.openBlock(),e.createElementBlock("td",YW))],64))),64))])),64))],512)],10,UW))}}),[["__file","basic-year-table.vue"]]);const ZW=["onClick"],JW=["aria-label"],QW=["aria-label"],e9=["aria-label"],t9=["aria-label"];var n9=se(e.defineComponent({__name:"panel-date-pick",props:BW,emits:["pick","set-picker-option","panel-change"],setup(t,{emit:n}){const o=t,r=(J,G,j)=>!0,l=Q("picker-panel"),a=Q("date-picker"),s=e.useAttrs(),i=e.useSlots(),{t:c,lang:f}=Ke(),u=e.inject("EP_PICKER_BASE"),d=e.inject(ka),{shortcuts:p,disabledDate:h,cellClassName:g,defaultTime:m}=u.props,b=e.toRef(u.props,"defaultValue"),y=e.ref(),C=e.ref(ve().locale(f.value)),k=e.ref(!1);let w=!1;const E=e.computed(()=>ve(m).locale(f.value)),S=e.computed(()=>C.value.month()),_=e.computed(()=>C.value.year()),B=e.ref([]),M=e.ref(null),P=e.ref(null),T=J=>B.value.length>0?r(J,B.value,o.format||"HH:mm:ss"):!0,I=J=>m&&!Ne.value&&!k.value&&!w?E.value.year(J.year()).month(J.month()).date(J.date()):Y.value?J.millisecond(0):J.startOf("day"),v=(J,...G)=>{if(!J)n("pick",J,...G);else if(Re(J)){const j=J.map(I);n("pick",j,...G)}else n("pick",I(J),...G);M.value=null,P.value=null,k.value=!1,w=!1},O=(J,G)=>{if(A.value==="date"){J=J;let j=o.parsedValue?o.parsedValue.year(J.year()).month(J.month()).date(J.date()):J;T(j)||(j=B.value[0][0].year(J.year()).month(J.month()).date(J.date())),C.value=j,v(j,Y.value||G)}else A.value==="week"?v(J.date):A.value==="dates"&&v(J,!0)},D=J=>{const G=J?"add":"subtract";C.value=C.value[G](1,"month"),ke("month")},z=J=>{const G=C.value,j=J?"add":"subtract";C.value=$.value==="year"?G[j](10,"year"):G[j](1,"year"),ke("year")},$=e.ref("date"),R=e.computed(()=>{const J=c("el.datepicker.year");if($.value==="year"){const G=Math.floor(_.value/10)*10;return J?`${G} ${J} - ${G+9} ${J}`:`${G} - ${G+9}`}return`${_.value} ${J}`}),N=J=>{const G=qe(J.value)?J.value():J.value;if(G){w=!0,v(ve(G).locale(f.value));return}J.onClick&&J.onClick({attrs:s,slots:i,emit:n})},A=e.computed(()=>{const{type:J}=o;return["week","month","year","dates"].includes(J)?J:"date"}),x=e.computed(()=>A.value==="date"?$.value:A.value),H=e.computed(()=>!!p.length),K=async J=>{C.value=C.value.startOf("month").month(J),A.value==="month"?v(C.value,!1):($.value="date",["month","year","date","week"].includes(A.value)&&(v(C.value,!0),await e.nextTick(),Le())),ke("month")},q=async J=>{A.value==="year"?(C.value=C.value.startOf("year").year(J),v(C.value,!1)):(C.value=C.value.year(J),$.value="month",["month","year","date","week"].includes(A.value)&&(v(C.value,!0),await e.nextTick(),Le())),ke("year")},ne=async J=>{$.value=J,await e.nextTick(),Le()},Y=e.computed(()=>o.type==="datetime"||o.type==="datetimerange"),Z=e.computed(()=>Y.value||A.value==="dates"),U=e.computed(()=>h?o.parsedValue?Re(o.parsedValue)?h(o.parsedValue[0].toDate()):h(o.parsedValue.toDate()):!0:!1),re=()=>{if(A.value==="dates")v(o.parsedValue);else{let J=o.parsedValue;if(!J){const G=ve(m).locale(f.value),j=Ee();J=G.year(j.year()).month(j.month()).date(j.date())}C.value=J,v(J)}},te=e.computed(()=>h?h(ve().locale(f.value).toDate()):!1),oe=()=>{const G=ve().locale(f.value).toDate();k.value=!0,(!h||!h(G))&&T(G)&&(C.value=ve().locale(f.value),v(C.value))},ie=e.computed(()=>o.timeFormat||nu(o.format)),ye=e.computed(()=>o.dateFormat||tu(o.format)),Ne=e.computed(()=>{if(P.value)return P.value;if(!(!o.parsedValue&&!b.value))return(o.parsedValue||C.value).format(ie.value)}),Te=e.computed(()=>{if(M.value)return M.value;if(!(!o.parsedValue&&!b.value))return(o.parsedValue||C.value).format(ye.value)}),Pe=e.ref(!1),he=()=>{Pe.value=!0},Ce=()=>{Pe.value=!1},ge=J=>({hour:J.hour(),minute:J.minute(),second:J.second(),year:J.year(),month:J.month(),date:J.date()}),me=(J,G,j)=>{const{hour:ee,minute:F,second:ue}=ge(J),Be=o.parsedValue?o.parsedValue.hour(ee).minute(F).second(ue):J;C.value=Be,v(C.value,!0),j||(Pe.value=G)},_e=J=>{const G=ve(J,ie.value).locale(f.value);if(G.isValid()&&T(G)){const{year:j,month:ee,date:F}=ge(C.value);C.value=G.year(j).month(ee).date(F),P.value=null,Pe.value=!1,v(C.value,!0)}},$e=J=>{const G=ve(J,ye.value).locale(f.value);if(G.isValid()){if(h&&h(G.toDate()))return;const{hour:j,minute:ee,second:F}=ge(C.value);C.value=G.hour(j).minute(ee).second(F),M.value=null,v(C.value,!0)}},Ae=J=>ve.isDayjs(J)&&J.isValid()&&(h?!h(J.toDate()):!0),Oe=J=>A.value==="dates"?J.map(G=>G.format(o.format)):J.format(o.format),ce=J=>ve(J,o.format).locale(f.value),Ee=()=>{const J=ve(b.value).locale(f.value);if(!b.value){const G=E.value;return ve().hour(G.hour()).minute(G.minute()).second(G.second()).locale(f.value)}return J},Le=async()=>{var J;["week","month","year","date"].includes(A.value)&&((J=y.value)==null||J.focus(),A.value==="week"&&Qe(pe.down))},Xe=J=>{const{code:G}=J;[pe.up,pe.down,pe.left,pe.right,pe.home,pe.end,pe.pageUp,pe.pageDown].includes(G)&&(Qe(G),J.stopPropagation(),J.preventDefault()),[pe.enter,pe.space,pe.numpadEnter].includes(G)&&M.value===null&&P.value===null&&(J.preventDefault(),v(C.value,!1))},Qe=J=>{var G;const{up:j,down:ee,left:F,right:ue,home:Be,end:xe,pageUp:_t,pageDown:gt}=pe,zn={year:{[j]:-4,[ee]:4,[F]:-1,[ue]:1,offset:(X,de)=>X.setFullYear(X.getFullYear()+de)},month:{[j]:-4,[ee]:4,[F]:-1,[ue]:1,offset:(X,de)=>X.setMonth(X.getMonth()+de)},week:{[j]:-1,[ee]:1,[F]:-1,[ue]:1,offset:(X,de)=>X.setDate(X.getDate()+de*7)},date:{[j]:-7,[ee]:7,[F]:-1,[ue]:1,[Be]:X=>-X.getDay(),[xe]:X=>-X.getDay()+6,[_t]:X=>-new Date(X.getFullYear(),X.getMonth(),0).getDate(),[gt]:X=>new Date(X.getFullYear(),X.getMonth()+1,0).getDate(),offset:(X,de)=>X.setDate(X.getDate()+de)}},Wt=C.value.toDate();for(;Math.abs(C.value.diff(Wt,"year",!0))<1;){const X=zn[x.value];if(!X)return;if(X.offset(Wt,qe(X[J])?X[J](Wt):(G=X[J])!=null?G:0),h&&h(Wt))break;const de=ve(Wt).locale(f.value);C.value=de,n("pick",de,!0);break}},ke=J=>{n("panel-change",C.value.toDate(),J,$.value)};return e.watch(()=>A.value,J=>{if(["month","year"].includes(J)){$.value=J;return}$.value="date"},{immediate:!0}),e.watch(()=>$.value,()=>{d==null||d.updatePopper()}),e.watch(()=>b.value,J=>{J&&(C.value=Ee())},{immediate:!0}),e.watch(()=>o.parsedValue,J=>{if(J){if(A.value==="dates"||Array.isArray(J))return;C.value=J}else C.value=Ee()},{immediate:!0}),n("set-picker-option",["isValidValue",Ae]),n("set-picker-option",["formatToString",Oe]),n("set-picker-option",["parseUserInput",ce]),n("set-picker-option",["handleFocusPicker",Le]),(J,G)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(l).b(),e.unref(a).b(),{"has-sidebar":J.$slots.sidebar||e.unref(H),"has-time":e.unref(Y)}])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("body-wrapper"))},[e.renderSlot(J.$slots,"sidebar",{class:e.normalizeClass(e.unref(l).e("sidebar"))}),e.unref(H)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("sidebar"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),(j,ee)=>(e.openBlock(),e.createElementBlock("button",{key:ee,type:"button",class:e.normalizeClass(e.unref(l).e("shortcut")),onClick:F=>N(j)},e.toDisplayString(j.text),11,ZW))),128))],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("body"))},[e.unref(Y)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(a).e("time-header"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).e("editor-wrap"))},[e.createVNode(e.unref(Ft),{placeholder:e.unref(c)("el.datepicker.selectDate"),"model-value":e.unref(Te),size:"small","validate-event":!1,onInput:G[0]||(G[0]=j=>M.value=j),onChange:$e},null,8,["placeholder","model-value"])],2),e.withDirectives((e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(a).e("editor-wrap"))},[e.createVNode(e.unref(Ft),{placeholder:e.unref(c)("el.datepicker.selectTime"),"model-value":e.unref(Ne),size:"small","validate-event":!1,onFocus:he,onInput:G[1]||(G[1]=j=>P.value=j),onChange:_e},null,8,["placeholder","model-value"]),e.createVNode(e.unref(Ea),{visible:Pe.value,format:e.unref(ie),"parsed-value":C.value,onPick:me},null,8,["visible","format","parsed-value"])],2)),[[e.unref(Po),Ce]])],2)):e.createCommentVNode("v-if",!0),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass([e.unref(a).e("header"),($.value==="year"||$.value==="month")&&e.unref(a).e("header--bordered")])},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).e("prev-btn"))},[e.createElementVNode("button",{type:"button","aria-label":e.unref(c)("el.datepicker.prevYear"),class:e.normalizeClass(["d-arrow-left",e.unref(l).e("icon-btn")]),onClick:G[2]||(G[2]=j=>z(!1))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(nl))]),_:1})],10,JW),e.withDirectives(e.createElementVNode("button",{type:"button","aria-label":e.unref(c)("el.datepicker.prevMonth"),class:e.normalizeClass([e.unref(l).e("icon-btn"),"arrow-left"]),onClick:G[3]||(G[3]=j=>D(!1))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Yo))]),_:1})],10,QW),[[e.vShow,$.value==="date"]])],2),e.createElementVNode("span",{role:"button",class:e.normalizeClass(e.unref(a).e("header-label")),"aria-live":"polite",tabindex:"0",onKeydown:G[4]||(G[4]=e.withKeys(j=>ne("year"),["enter"])),onClick:G[5]||(G[5]=j=>ne("year"))},e.toDisplayString(e.unref(R)),35),e.withDirectives(e.createElementVNode("span",{role:"button","aria-live":"polite",tabindex:"0",class:e.normalizeClass([e.unref(a).e("header-label"),{active:$.value==="month"}]),onKeydown:G[6]||(G[6]=e.withKeys(j=>ne("month"),["enter"])),onClick:G[7]||(G[7]=j=>ne("month"))},e.toDisplayString(e.unref(c)(`el.datepicker.month${e.unref(S)+1}`)),35),[[e.vShow,$.value==="date"]]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).e("next-btn"))},[e.withDirectives(e.createElementVNode("button",{type:"button","aria-label":e.unref(c)("el.datepicker.nextMonth"),class:e.normalizeClass([e.unref(l).e("icon-btn"),"arrow-right"]),onClick:G[8]||(G[8]=j=>D(!0))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})],10,e9),[[e.vShow,$.value==="date"]]),e.createElementVNode("button",{type:"button","aria-label":e.unref(c)("el.datepicker.nextYear"),class:e.normalizeClass([e.unref(l).e("icon-btn"),"d-arrow-right"]),onClick:G[9]||(G[9]=j=>z(!0))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(ol))]),_:1})],10,t9)],2)],2),[[e.vShow,$.value!=="time"]]),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("content")),onKeydown:Xe},[$.value==="date"?(e.openBlock(),e.createBlock(Lu,{key:0,ref_key:"currentViewRef",ref:y,"selection-mode":e.unref(A),date:C.value,"parsed-value":J.parsedValue,"disabled-date":e.unref(h),"cell-class-name":e.unref(g),onPick:O},null,8,["selection-mode","date","parsed-value","disabled-date","cell-class-name"])):e.createCommentVNode("v-if",!0),$.value==="year"?(e.openBlock(),e.createBlock(XW,{key:1,ref_key:"currentViewRef",ref:y,date:C.value,"disabled-date":e.unref(h),"parsed-value":J.parsedValue,onPick:q},null,8,["date","disabled-date","parsed-value"])):e.createCommentVNode("v-if",!0),$.value==="month"?(e.openBlock(),e.createBlock(xu,{key:2,ref_key:"currentViewRef",ref:y,date:C.value,"parsed-value":J.parsedValue,"disabled-date":e.unref(h),onPick:K},null,8,["date","parsed-value","disabled-date"])):e.createCommentVNode("v-if",!0)],34)],2)],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("footer"))},[e.withDirectives(e.createVNode(e.unref(At),{text:"",size:"small",class:e.normalizeClass(e.unref(l).e("link-btn")),disabled:e.unref(te),onClick:oe},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(c)("el.datepicker.now")),1)]),_:1},8,["class","disabled"]),[[e.vShow,e.unref(A)!=="dates"]]),e.createVNode(e.unref(At),{plain:"",size:"small",class:e.normalizeClass(e.unref(l).e("link-btn")),disabled:e.unref(U),onClick:re},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(c)("el.datepicker.confirm")),1)]),_:1},8,["class","disabled"])],2),[[e.vShow,e.unref(Z)&&$.value==="date"]])],2))}}),[["__file","panel-date-pick.vue"]]);const o9=le({...yk,...bk}),r9=t=>{const{emit:n}=e.getCurrentInstance(),o=e.useAttrs(),r=e.useSlots();return a=>{const s=qe(a.value)?a.value():a.value;if(s){n("pick",[ve(s[0]).locale(t.value),ve(s[1]).locale(t.value)]);return}a.onClick&&a.onClick({attrs:o,slots:r,emit:n})}},kk=(t,{defaultValue:n,leftDate:o,rightDate:r,unit:l,onParsedValueChanged:a})=>{const{emit:s}=e.getCurrentInstance(),{pickerNs:i}=e.inject(Ii),c=Q("date-range-picker"),{t:f,lang:u}=Ke(),d=r9(u),p=e.ref(),h=e.ref(),g=e.ref({endDate:null,selecting:!1}),m=k=>{g.value=k},b=(k=!1)=>{const w=e.unref(p),E=e.unref(h);zu([w,E])&&s("pick",[w,E],k)},y=k=>{g.value.selecting=k,k||(g.value.endDate=null)},C=()=>{const[k,w]=wk(e.unref(n),{lang:e.unref(u),unit:l,unlinkPanels:t.unlinkPanels});p.value=void 0,h.value=void 0,o.value=k,r.value=w};return e.watch(n,k=>{k&&C()},{immediate:!0}),e.watch(()=>t.parsedValue,k=>{if(Re(k)&&k.length===2){const[w,E]=k;p.value=w,o.value=w,h.value=E,a(e.unref(p),e.unref(h))}else C()},{immediate:!0}),{minDate:p,maxDate:h,rangeState:g,lang:u,ppNs:i,drpNs:c,handleChangeRange:m,handleRangeConfirm:b,handleShortcutClick:d,onSelect:y,t:f}},l9=["onClick"],a9=["aria-label"],s9=["aria-label"],i9=["disabled","aria-label"],c9=["disabled","aria-label"],d9=["disabled","aria-label"],f9=["disabled","aria-label"],u9=["aria-label"],p9=["aria-label"],Pi="month";var m9=se(e.defineComponent({__name:"panel-date-range",props:o9,emits:["pick","set-picker-option","calendar-change","panel-change"],setup(t,{emit:n}){const o=t,r=e.inject("EP_PICKER_BASE"),{disabledDate:l,cellClassName:a,format:s,defaultTime:i,clearable:c}=r.props,f=e.toRef(r.props,"shortcuts"),u=e.toRef(r.props,"defaultValue"),{lang:d}=Ke(),p=e.ref(ve().locale(d.value)),h=e.ref(ve().locale(d.value).add(1,Pi)),{minDate:g,maxDate:m,rangeState:b,ppNs:y,drpNs:C,handleChangeRange:k,handleRangeConfirm:w,handleShortcutClick:E,onSelect:S,t:_}=kk(o,{defaultValue:u,leftDate:p,rightDate:h,unit:Pi,onParsedValueChanged:G}),B=e.ref({min:null,max:null}),M=e.ref({min:null,max:null}),P=e.computed(()=>`${p.value.year()} ${_("el.datepicker.year")} ${_(`el.datepicker.month${p.value.month()+1}`)}`),T=e.computed(()=>`${h.value.year()} ${_("el.datepicker.year")} ${_(`el.datepicker.month${h.value.month()+1}`)}`),I=e.computed(()=>p.value.year()),v=e.computed(()=>p.value.month()),O=e.computed(()=>h.value.year()),D=e.computed(()=>h.value.month()),z=e.computed(()=>!!f.value.length),$=e.computed(()=>B.value.min!==null?B.value.min:g.value?g.value.format(H.value):""),R=e.computed(()=>B.value.max!==null?B.value.max:m.value||g.value?(m.value||g.value).format(H.value):""),N=e.computed(()=>M.value.min!==null?M.value.min:g.value?g.value.format(x.value):""),A=e.computed(()=>M.value.max!==null?M.value.max:m.value||g.value?(m.value||g.value).format(x.value):""),x=e.computed(()=>o.timeFormat||nu(s)),H=e.computed(()=>o.dateFormat||tu(s)),K=j=>zu(j)&&(l?!l(j[0].toDate())&&!l(j[1].toDate()):!0),q=()=>{p.value=p.value.subtract(1,"year"),o.unlinkPanels||(h.value=p.value.add(1,"month")),ie("year")},ne=()=>{p.value=p.value.subtract(1,"month"),o.unlinkPanels||(h.value=p.value.add(1,"month")),ie("month")},Y=()=>{o.unlinkPanels?h.value=h.value.add(1,"year"):(p.value=p.value.add(1,"year"),h.value=p.value.add(1,"month")),ie("year")},Z=()=>{o.unlinkPanels?h.value=h.value.add(1,"month"):(p.value=p.value.add(1,"month"),h.value=p.value.add(1,"month")),ie("month")},U=()=>{p.value=p.value.add(1,"year"),ie("year")},re=()=>{p.value=p.value.add(1,"month"),ie("month")},te=()=>{h.value=h.value.subtract(1,"year"),ie("year")},oe=()=>{h.value=h.value.subtract(1,"month"),ie("month")},ie=j=>{n("panel-change",[p.value.toDate(),h.value.toDate()],j)},ye=e.computed(()=>{const j=(v.value+1)%12,ee=v.value+1>=12?1:0;return o.unlinkPanels&&new Date(I.value+ee,j)o.unlinkPanels&&O.value*12+D.value-(I.value*12+v.value+1)>=12),Te=e.computed(()=>!(g.value&&m.value&&!b.value.selecting&&zu([g.value,m.value]))),Pe=e.computed(()=>o.type==="datetime"||o.type==="datetimerange"),he=(j,ee)=>{if(!!j)return i?ve(i[ee]||i).locale(d.value).year(j.year()).month(j.month()).date(j.date()):j},Ce=(j,ee=!0)=>{const F=j.minDate,ue=j.maxDate,Be=he(F,0),xe=he(ue,1);m.value===xe&&g.value===Be||(n("calendar-change",[F.toDate(),ue&&ue.toDate()]),m.value=xe,g.value=Be,!(!ee||Pe.value)&&w())},ge=e.ref(!1),me=e.ref(!1),_e=()=>{ge.value=!1},$e=()=>{me.value=!1},Ae=(j,ee)=>{B.value[ee]=j;const F=ve(j,H.value).locale(d.value);if(F.isValid()){if(l&&l(F.toDate()))return;ee==="min"?(p.value=F,g.value=(g.value||p.value).year(F.year()).month(F.month()).date(F.date()),!o.unlinkPanels&&(!m.value||m.value.isBefore(g.value))&&(h.value=F.add(1,"month"),m.value=g.value.add(1,"month"))):(h.value=F,m.value=(m.value||h.value).year(F.year()).month(F.month()).date(F.date()),!o.unlinkPanels&&(!g.value||g.value.isAfter(m.value))&&(p.value=F.subtract(1,"month"),g.value=m.value.subtract(1,"month")))}},Oe=(j,ee)=>{B.value[ee]=null},ce=(j,ee)=>{M.value[ee]=j;const F=ve(j,x.value).locale(d.value);F.isValid()&&(ee==="min"?(ge.value=!0,g.value=(g.value||p.value).hour(F.hour()).minute(F.minute()).second(F.second()),(!m.value||m.value.isBefore(g.value))&&(m.value=g.value)):(me.value=!0,m.value=(m.value||h.value).hour(F.hour()).minute(F.minute()).second(F.second()),h.value=m.value,m.value&&m.value.isBefore(g.value)&&(g.value=m.value)))},Ee=(j,ee)=>{M.value[ee]=null,ee==="min"?(p.value=g.value,ge.value=!1):(h.value=m.value,me.value=!1)},Le=(j,ee,F)=>{M.value.min||(j&&(p.value=j,g.value=(g.value||p.value).hour(j.hour()).minute(j.minute()).second(j.second())),F||(ge.value=ee),(!m.value||m.value.isBefore(g.value))&&(m.value=g.value,h.value=j))},Xe=(j,ee,F)=>{M.value.max||(j&&(h.value=j,m.value=(m.value||h.value).hour(j.hour()).minute(j.minute()).second(j.second())),F||(me.value=ee),m.value&&m.value.isBefore(g.value)&&(g.value=m.value))},Qe=()=>{p.value=wk(e.unref(u),{lang:e.unref(d),unit:"month",unlinkPanels:o.unlinkPanels})[0],h.value=p.value.add(1,"month"),n("pick",null)},ke=j=>Re(j)?j.map(ee=>ee.format(s)):j.format(s),J=j=>Re(j)?j.map(ee=>ve(ee,s).locale(d.value)):ve(j,s).locale(d.value);function G(j,ee){if(o.unlinkPanels&&ee){const F=(j==null?void 0:j.year())||0,ue=(j==null?void 0:j.month())||0,Be=ee.year(),xe=ee.month();h.value=F===Be&&ue===xe?ee.add(1,Pi):ee}else h.value=p.value.add(1,Pi),ee&&(h.value=h.value.hour(ee.hour()).minute(ee.minute()).second(ee.second()))}return n("set-picker-option",["isValidValue",K]),n("set-picker-option",["parseUserInput",J]),n("set-picker-option",["formatToString",ke]),n("set-picker-option",["handleClear",Qe]),(j,ee)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(y).b(),e.unref(C).b(),{"has-sidebar":j.$slots.sidebar||e.unref(z),"has-time":e.unref(Pe)}])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(y).e("body-wrapper"))},[e.renderSlot(j.$slots,"sidebar",{class:e.normalizeClass(e.unref(y).e("sidebar"))}),e.unref(z)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(y).e("sidebar"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),(F,ue)=>(e.openBlock(),e.createElementBlock("button",{key:ue,type:"button",class:e.normalizeClass(e.unref(y).e("shortcut")),onClick:Be=>e.unref(E)(F)},e.toDisplayString(F.text),11,l9))),128))],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(y).e("body"))},[e.unref(Pe)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(C).e("time-header"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(C).e("editors-wrap"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(C).e("time-picker-wrap"))},[e.createVNode(e.unref(Ft),{size:"small",disabled:e.unref(b).selecting,placeholder:e.unref(_)("el.datepicker.startDate"),class:e.normalizeClass(e.unref(C).e("editor")),"model-value":e.unref($),"validate-event":!1,onInput:ee[0]||(ee[0]=F=>Ae(F,"min")),onChange:ee[1]||(ee[1]=F=>Oe(F,"min"))},null,8,["disabled","placeholder","class","model-value"])],2),e.withDirectives((e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(C).e("time-picker-wrap"))},[e.createVNode(e.unref(Ft),{size:"small",class:e.normalizeClass(e.unref(C).e("editor")),disabled:e.unref(b).selecting,placeholder:e.unref(_)("el.datepicker.startTime"),"model-value":e.unref(N),"validate-event":!1,onFocus:ee[2]||(ee[2]=F=>ge.value=!0),onInput:ee[3]||(ee[3]=F=>ce(F,"min")),onChange:ee[4]||(ee[4]=F=>Ee(F,"min"))},null,8,["class","disabled","placeholder","model-value"]),e.createVNode(e.unref(Ea),{visible:ge.value,format:e.unref(x),"datetime-role":"start","parsed-value":p.value,onPick:Le},null,8,["visible","format","parsed-value"])],2)),[[e.unref(Po),_e]])],2),e.createElementVNode("span",null,[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})]),e.createElementVNode("span",{class:e.normalizeClass([e.unref(C).e("editors-wrap"),"is-right"])},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(C).e("time-picker-wrap"))},[e.createVNode(e.unref(Ft),{size:"small",class:e.normalizeClass(e.unref(C).e("editor")),disabled:e.unref(b).selecting,placeholder:e.unref(_)("el.datepicker.endDate"),"model-value":e.unref(R),readonly:!e.unref(g),"validate-event":!1,onInput:ee[5]||(ee[5]=F=>Ae(F,"max")),onChange:ee[6]||(ee[6]=F=>Oe(F,"max"))},null,8,["class","disabled","placeholder","model-value","readonly"])],2),e.withDirectives((e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(C).e("time-picker-wrap"))},[e.createVNode(e.unref(Ft),{size:"small",class:e.normalizeClass(e.unref(C).e("editor")),disabled:e.unref(b).selecting,placeholder:e.unref(_)("el.datepicker.endTime"),"model-value":e.unref(A),readonly:!e.unref(g),"validate-event":!1,onFocus:ee[7]||(ee[7]=F=>e.unref(g)&&(me.value=!0)),onInput:ee[8]||(ee[8]=F=>ce(F,"max")),onChange:ee[9]||(ee[9]=F=>Ee(F,"max"))},null,8,["class","disabled","placeholder","model-value","readonly"]),e.createVNode(e.unref(Ea),{"datetime-role":"end",visible:me.value,format:e.unref(x),"parsed-value":h.value,onPick:Xe},null,8,["visible","format","parsed-value"])],2)),[[e.unref(Po),$e]])],2)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass([[e.unref(y).e("content"),e.unref(C).e("content")],"is-left"])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(C).e("header"))},[e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(y).e("icon-btn"),"d-arrow-left"]),"aria-label":e.unref(_)("el.datepicker.prevYear"),onClick:q},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(nl))]),_:1})],10,a9),e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(y).e("icon-btn"),"arrow-left"]),"aria-label":e.unref(_)("el.datepicker.prevMonth"),onClick:ne},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Yo))]),_:1})],10,s9),j.unlinkPanels?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:!e.unref(Ne),class:e.normalizeClass([[e.unref(y).e("icon-btn"),{"is-disabled":!e.unref(Ne)}],"d-arrow-right"]),"aria-label":e.unref(_)("el.datepicker.nextYear"),onClick:U},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(ol))]),_:1})],10,i9)):e.createCommentVNode("v-if",!0),j.unlinkPanels?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:!e.unref(ye),class:e.normalizeClass([[e.unref(y).e("icon-btn"),{"is-disabled":!e.unref(ye)}],"arrow-right"]),"aria-label":e.unref(_)("el.datepicker.nextMonth"),onClick:re},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})],10,c9)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",null,e.toDisplayString(e.unref(P)),1)],2),e.createVNode(Lu,{"selection-mode":"range",date:p.value,"min-date":e.unref(g),"max-date":e.unref(m),"range-state":e.unref(b),"disabled-date":e.unref(l),"cell-class-name":e.unref(a),onChangerange:e.unref(k),onPick:Ce,onSelect:e.unref(S)},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onSelect"])],2),e.createElementVNode("div",{class:e.normalizeClass([[e.unref(y).e("content"),e.unref(C).e("content")],"is-right"])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(C).e("header"))},[j.unlinkPanels?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:!e.unref(Ne),class:e.normalizeClass([[e.unref(y).e("icon-btn"),{"is-disabled":!e.unref(Ne)}],"d-arrow-left"]),"aria-label":e.unref(_)("el.datepicker.prevYear"),onClick:te},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(nl))]),_:1})],10,d9)):e.createCommentVNode("v-if",!0),j.unlinkPanels?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:!e.unref(ye),class:e.normalizeClass([[e.unref(y).e("icon-btn"),{"is-disabled":!e.unref(ye)}],"arrow-left"]),"aria-label":e.unref(_)("el.datepicker.prevMonth"),onClick:oe},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Yo))]),_:1})],10,f9)):e.createCommentVNode("v-if",!0),e.createElementVNode("button",{type:"button","aria-label":e.unref(_)("el.datepicker.nextYear"),class:e.normalizeClass([e.unref(y).e("icon-btn"),"d-arrow-right"]),onClick:Y},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(ol))]),_:1})],10,u9),e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(y).e("icon-btn"),"arrow-right"]),"aria-label":e.unref(_)("el.datepicker.nextMonth"),onClick:Z},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})],10,p9),e.createElementVNode("div",null,e.toDisplayString(e.unref(T)),1)],2),e.createVNode(Lu,{"selection-mode":"range",date:h.value,"min-date":e.unref(g),"max-date":e.unref(m),"range-state":e.unref(b),"disabled-date":e.unref(l),"cell-class-name":e.unref(a),onChangerange:e.unref(k),onPick:Ce,onSelect:e.unref(S)},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onSelect"])],2)],2)],2),e.unref(Pe)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(y).e("footer"))},[e.unref(c)?(e.openBlock(),e.createBlock(e.unref(At),{key:0,text:"",size:"small",class:e.normalizeClass(e.unref(y).e("link-btn")),onClick:Qe},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(_)("el.datepicker.clear")),1)]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.createVNode(e.unref(At),{plain:"",size:"small",class:e.normalizeClass(e.unref(y).e("link-btn")),disabled:e.unref(Te),onClick:ee[10]||(ee[10]=F=>e.unref(w)(!1))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(_)("el.datepicker.confirm")),1)]),_:1},8,["class","disabled"])],2)):e.createCommentVNode("v-if",!0)],2))}}),[["__file","panel-date-range.vue"]]);const h9=le({...bk}),g9=["pick","set-picker-option","calendar-change"],y9=({unlinkPanels:t,leftDate:n,rightDate:o})=>{const{t:r}=Ke(),l=()=>{n.value=n.value.subtract(1,"year"),t.value||(o.value=o.value.subtract(1,"year"))},a=()=>{t.value||(n.value=n.value.add(1,"year")),o.value=o.value.add(1,"year")},s=()=>{n.value=n.value.add(1,"year")},i=()=>{o.value=o.value.subtract(1,"year")},c=e.computed(()=>`${n.value.year()} ${r("el.datepicker.year")}`),f=e.computed(()=>`${o.value.year()} ${r("el.datepicker.year")}`),u=e.computed(()=>n.value.year()),d=e.computed(()=>o.value.year()===n.value.year()?n.value.year()+1:o.value.year());return{leftPrevYear:l,rightNextYear:a,leftNextYear:s,rightPrevYear:i,leftLabel:c,rightLabel:f,leftYear:u,rightYear:d}},b9=["onClick"],C9=["disabled"],w9=["disabled"],Ri="year",k9=e.defineComponent({name:"DatePickerMonthRange"}),S9=e.defineComponent({...k9,props:h9,emits:g9,setup(t,{emit:n}){const o=t,{lang:r}=Ke(),l=e.inject("EP_PICKER_BASE"),{shortcuts:a,disabledDate:s,format:i}=l.props,c=e.toRef(l.props,"defaultValue"),f=e.ref(ve().locale(r.value)),u=e.ref(ve().locale(r.value).add(1,Ri)),{minDate:d,maxDate:p,rangeState:h,ppNs:g,drpNs:m,handleChangeRange:b,handleRangeConfirm:y,handleShortcutClick:C,onSelect:k}=kk(o,{defaultValue:c,leftDate:f,rightDate:u,unit:Ri,onParsedValueChanged:z}),w=e.computed(()=>!!a.length),{leftPrevYear:E,rightNextYear:S,leftNextYear:_,rightPrevYear:B,leftLabel:M,rightLabel:P,leftYear:T,rightYear:I}=y9({unlinkPanels:e.toRef(o,"unlinkPanels"),leftDate:f,rightDate:u}),v=e.computed(()=>o.unlinkPanels&&I.value>T.value+1),O=($,R=!0)=>{const N=$.minDate,A=$.maxDate;p.value===A&&d.value===N||(n("calendar-change",[N.toDate(),A&&A.toDate()]),p.value=A,d.value=N,R&&y())},D=$=>$.map(R=>R.format(i));function z($,R){if(o.unlinkPanels&&R){const N=($==null?void 0:$.year())||0,A=R.year();u.value=N===A?R.add(1,Ri):R}else u.value=f.value.add(1,Ri)}return n("set-picker-option",["formatToString",D]),($,R)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(g).b(),e.unref(m).b(),{"has-sidebar":Boolean($.$slots.sidebar)||e.unref(w)}])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(g).e("body-wrapper"))},[e.renderSlot($.$slots,"sidebar",{class:e.normalizeClass(e.unref(g).e("sidebar"))}),e.unref(w)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(g).e("sidebar"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),(N,A)=>(e.openBlock(),e.createElementBlock("button",{key:A,type:"button",class:e.normalizeClass(e.unref(g).e("shortcut")),onClick:x=>e.unref(C)(N)},e.toDisplayString(N.text),11,b9))),128))],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(g).e("body"))},[e.createElementVNode("div",{class:e.normalizeClass([[e.unref(g).e("content"),e.unref(m).e("content")],"is-left"])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(m).e("header"))},[e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(g).e("icon-btn"),"d-arrow-left"]),onClick:R[0]||(R[0]=(...N)=>e.unref(E)&&e.unref(E)(...N))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(nl))]),_:1})],2),$.unlinkPanels?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:!e.unref(v),class:e.normalizeClass([[e.unref(g).e("icon-btn"),{[e.unref(g).is("disabled")]:!e.unref(v)}],"d-arrow-right"]),onClick:R[1]||(R[1]=(...N)=>e.unref(_)&&e.unref(_)(...N))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(ol))]),_:1})],10,C9)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",null,e.toDisplayString(e.unref(M)),1)],2),e.createVNode(xu,{"selection-mode":"range",date:f.value,"min-date":e.unref(d),"max-date":e.unref(p),"range-state":e.unref(h),"disabled-date":e.unref(s),onChangerange:e.unref(b),onPick:O,onSelect:e.unref(k)},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onSelect"])],2),e.createElementVNode("div",{class:e.normalizeClass([[e.unref(g).e("content"),e.unref(m).e("content")],"is-right"])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(m).e("header"))},[$.unlinkPanels?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:!e.unref(v),class:e.normalizeClass([[e.unref(g).e("icon-btn"),{"is-disabled":!e.unref(v)}],"d-arrow-left"]),onClick:R[2]||(R[2]=(...N)=>e.unref(B)&&e.unref(B)(...N))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(nl))]),_:1})],10,w9)):e.createCommentVNode("v-if",!0),e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(g).e("icon-btn"),"d-arrow-right"]),onClick:R[3]||(R[3]=(...N)=>e.unref(S)&&e.unref(S)(...N))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(ol))]),_:1})],2),e.createElementVNode("div",null,e.toDisplayString(e.unref(P)),1)],2),e.createVNode(xu,{"selection-mode":"range",date:u.value,"min-date":e.unref(d),"max-date":e.unref(p),"range-state":e.unref(h),"disabled-date":e.unref(s),onChangerange:e.unref(b),onPick:O,onSelect:e.unref(k)},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onSelect"])],2)],2)],2)],2))}});var E9=se(S9,[["__file","panel-month-range.vue"]]);const N9=function(t){switch(t){case"daterange":case"datetimerange":return m9;case"monthrange":return E9;default:return n9}};ve.extend(Gw),ve.extend(CW),ve.extend(Qf),ve.extend(wW),ve.extend(kW),ve.extend(SW),ve.extend(EW),ve.extend(NW);var _9=e.defineComponent({name:"ElDatePicker",install:null,props:gk,emits:["update:modelValue"],setup(t,{expose:n,emit:o,slots:r}){const l=Q("picker-panel");e.provide("ElPopperOptions",e.reactive(e.toRef(t,"popperOptions"))),e.provide(Ii,{slots:r,pickerNs:l});const a=e.ref();n({focus:(c=!0)=>{var f;(f=a.value)==null||f.focus(c)},handleOpen:()=>{var c;(c=a.value)==null||c.handleOpen()},handleClose:()=>{var c;(c=a.value)==null||c.handleClose()}});const i=c=>{o("update:modelValue",c)};return()=>{var c;const f=(c=t.format)!=null?c:Sw[t.type]||Ir,u=N9(t.type);return e.createVNode(su,e.mergeProps(t,{format:f,type:t.type,ref:a,"onUpdate:modelValue":i}),{default:d=>e.createVNode(u,d,null),"range-separator":r["range-separator"]})}}});const Oi=_9;Oi.install=t=>{t.component(Oi.name,Oi)};const Sk=Oi,Fu=Symbol("elDescriptions");var $a=e.defineComponent({name:"ElDescriptionsCell",props:{cell:{type:Object},tag:{type:String,default:"td"},type:{type:String}},setup(){return{descriptions:e.inject(Fu,{})}},render(){var t,n,o,r,l,a,s;const i=cL(this.cell),c=(((t=this.cell)==null?void 0:t.dirs)||[]).map(E=>{const{dir:S,arg:_,modifiers:B,value:M}=E;return[S,M,_,B]}),{border:f,direction:u}=this.descriptions,d=u==="vertical",p=((r=(o=(n=this.cell)==null?void 0:n.children)==null?void 0:o.label)==null?void 0:r.call(o))||i.label,h=(s=(a=(l=this.cell)==null?void 0:l.children)==null?void 0:a.default)==null?void 0:s.call(a),g=i.span,m=i.align?`is-${i.align}`:"",b=i.labelAlign?`is-${i.labelAlign}`:m,y=i.className,C=i.labelClassName,k={width:kt(i.width),minWidth:kt(i.minWidth)},w=Q("descriptions");switch(this.type){case"label":return e.withDirectives(e.h(this.tag,{style:k,class:[w.e("cell"),w.e("label"),w.is("bordered-label",f),w.is("vertical-label",d),b,C],colSpan:d?g:1},p),c);case"content":return e.withDirectives(e.h(this.tag,{style:k,class:[w.e("cell"),w.e("content"),w.is("bordered-content",f),w.is("vertical-content",d),m,y],colSpan:d?g:g*2-1},h),c);default:return e.withDirectives(e.h("td",{style:k,class:[w.e("cell"),m],colSpan:g},[wt(p)?void 0:e.h("span",{class:[w.e("label"),C]},p),e.h("span",{class:[w.e("content"),y]},h)]),c)}}});const B9=le({row:{type:W(Array),default:()=>[]}}),$9={key:1},T9=e.defineComponent({name:"ElDescriptionsRow"}),v9=e.defineComponent({...T9,props:B9,setup(t){const n=e.inject(Fu,{});return(o,r)=>e.unref(n).direction==="vertical"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.row,(l,a)=>(e.openBlock(),e.createBlock(e.unref($a),{key:`tr1-${a}`,cell:l,tag:"th",type:"label"},null,8,["cell"]))),128))]),e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.row,(l,a)=>(e.openBlock(),e.createBlock(e.unref($a),{key:`tr2-${a}`,cell:l,tag:"td",type:"content"},null,8,["cell"]))),128))])],64)):(e.openBlock(),e.createElementBlock("tr",$9,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.row,(l,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:`tr3-${a}`},[e.unref(n).border?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(e.unref($a),{cell:l,tag:"td",type:"label"},null,8,["cell"]),e.createVNode(e.unref($a),{cell:l,tag:"td",type:"content"},null,8,["cell"])],64)):(e.openBlock(),e.createBlock(e.unref($a),{key:1,cell:l,tag:"td",type:"both"},null,8,["cell"]))],64))),128))]))}});var V9=se(v9,[["__file","descriptions-row.vue"]]);const Ek=le({border:{type:Boolean,default:!1},column:{type:Number,default:3},direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},size:Vt,title:{type:String,default:""},extra:{type:String,default:""}}),M9=e.defineComponent({name:"ElDescriptions"}),I9=e.defineComponent({...M9,props:Ek,setup(t){const n=t,o=Q("descriptions"),r=St(),l=e.useSlots();e.provide(Fu,n);const a=e.computed(()=>[o.b(),o.m(r.value)]),s=(c,f,u,d=!1)=>(c.props||(c.props={}),f>u&&(c.props.span=u),d&&(c.props.span=f),c),i=()=>{if(!l.default)return[];const c=Er(l.default()).filter(h=>{var g;return((g=h==null?void 0:h.type)==null?void 0:g.name)==="ElDescriptionsItem"}),f=[];let u=[],d=n.column,p=0;return c.forEach((h,g)=>{var m;const b=((m=h.props)==null?void 0:m.span)||1;if(gd?d:b),g===c.length-1){const y=n.column-p%n.column;u.push(s(h,y,d,!0)),f.push(u);return}b(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(a))},[c.title||c.extra||c.$slots.title||c.$slots.extra?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).e("header"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("title"))},[e.renderSlot(c.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(c.title),1)])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("extra"))},[e.renderSlot(c.$slots,"extra",{},()=>[e.createTextVNode(e.toDisplayString(c.extra),1)])],2)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("body"))},[e.createElementVNode("table",{class:e.normalizeClass([e.unref(o).e("table"),e.unref(o).is("bordered",c.border)])},[e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i(),(u,d)=>(e.openBlock(),e.createBlock(V9,{key:d,row:u},null,8,["row"]))),128))])],2)],2)],2))}});var P9=se(I9,[["__file","description.vue"]]);const R9=le({label:{type:String,default:""},span:{type:Number,default:1},width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},align:{type:String,default:"left"},labelAlign:{type:String,default:""},className:{type:String,default:""},labelClassName:{type:String,default:""}});var Nk=e.defineComponent({name:"ElDescriptionsItem",props:R9});const _k=Me(P9,{DescriptionsItem:Nk}),Bk=ht(Nk),$k=le({mask:{type:Boolean,default:!0},customMaskEvent:{type:Boolean,default:!1},overlayClass:{type:W([String,Array,Object])},zIndex:{type:W([String,Number])}}),Tk={click:t=>t instanceof MouseEvent},O9="overlay";var A9=e.defineComponent({name:"ElOverlay",props:$k,emits:Tk,setup(t,{slots:n,emit:o}){const r=Q(O9),l=c=>{o("click",c)},{onClick:a,onMousedown:s,onMouseup:i}=Ws(t.customMaskEvent?void 0:l);return()=>t.mask?e.createVNode("div",{class:[r.b(),t.overlayClass],style:{zIndex:t.zIndex},onClick:a,onMousedown:s,onMouseup:i},[e.renderSlot(n,"default")],In.STYLE|In.CLASS|In.PROPS,["onClick","onMouseup","onMousedown"]):e.h("div",{class:t.overlayClass,style:{zIndex:t.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[e.renderSlot(n,"default")])}});const Ai=A9,Hu=Symbol("dialogInjectionKey"),vk=le({center:Boolean,alignCenter:Boolean,closeIcon:{type:ot},customClass:{type:String,default:""},draggable:Boolean,fullscreen:Boolean,showClose:{type:Boolean,default:!0},title:{type:String,default:""},ariaLevel:{type:String,default:"2"}}),z9={close:()=>!0},D9=["aria-level"],L9=["aria-label"],x9=["id"],F9=e.defineComponent({name:"ElDialogContent"}),H9=e.defineComponent({...F9,props:vk,emits:z9,setup(t){const n=t,{t:o}=Ke(),{Close:r}=Ty,{dialogRef:l,headerRef:a,bodyId:s,ns:i,style:c}=e.inject(Hu),{focusTrapRef:f}=e.inject(Lf),u=e.computed(()=>[i.b(),i.is("fullscreen",n.fullscreen),i.is("draggable",n.draggable),i.is("align-center",n.alignCenter),{[i.m("center")]:n.center},n.customClass]),d=Ms(f,l),p=e.computed(()=>n.draggable);return Zd(l,a,p),(h,g)=>(e.openBlock(),e.createElementBlock("div",{ref:e.unref(d),class:e.normalizeClass(e.unref(u)),style:e.normalizeStyle(e.unref(c)),tabindex:"-1"},[e.createElementVNode("header",{ref_key:"headerRef",ref:a,class:e.normalizeClass(e.unref(i).e("header"))},[e.renderSlot(h.$slots,"header",{},()=>[e.createElementVNode("span",{role:"heading","aria-level":h.ariaLevel,class:e.normalizeClass(e.unref(i).e("title"))},e.toDisplayString(h.title),11,D9)]),h.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,"aria-label":e.unref(o)("el.dialog.close"),class:e.normalizeClass(e.unref(i).e("headerbtn")),type:"button",onClick:g[0]||(g[0]=m=>h.$emit("close"))},[e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(i).e("close"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.closeIcon||e.unref(r))))]),_:1},8,["class"])],10,L9)):e.createCommentVNode("v-if",!0)],2),e.createElementVNode("div",{id:e.unref(s),class:e.normalizeClass(e.unref(i).e("body"))},[e.renderSlot(h.$slots,"default")],10,x9),h.$slots.footer?(e.openBlock(),e.createElementBlock("footer",{key:0,class:e.normalizeClass(e.unref(i).e("footer"))},[e.renderSlot(h.$slots,"footer")],2)):e.createCommentVNode("v-if",!0)],6))}});var K9=se(H9,[["__file","dialog-content.vue"]]);const Ku=le({...vk,appendToBody:Boolean,appendTo:{type:W(String),default:"body"},beforeClose:{type:W(Function)},destroyOnClose:Boolean,closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:Boolean,modalClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:{type:Boolean,default:!1},headerAriaLevel:{type:String,default:"2"}}),Wu={open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[Ie]:t=>Tt(t),openAutoFocus:()=>!0,closeAutoFocus:()=>!0},ju=(t,n)=>{var o;const l=e.getCurrentInstance().emit,{nextZIndex:a}=$r();let s="";const i=rn(),c=rn(),f=e.ref(!1),u=e.ref(!1),d=e.ref(!1),p=e.ref((o=t.zIndex)!=null?o:a());let h,g;const m=ha("namespace",ll),b=e.computed(()=>{const D={},z=`--${m.value}-dialog`;return t.fullscreen||(t.top&&(D[`${z}-margin-top`]=t.top),t.width&&(D[`${z}-width`]=kt(t.width))),D}),y=e.computed(()=>t.alignCenter?{display:"flex"}:{});function C(){l("opened")}function k(){l("closed"),l(Ie,!1),t.destroyOnClose&&(d.value=!1)}function w(){l("close")}function E(){g==null||g(),h==null||h(),t.openDelay&&t.openDelay>0?{stop:h}=pr(()=>M(),t.openDelay):M()}function S(){h==null||h(),g==null||g(),t.closeDelay&&t.closeDelay>0?{stop:g}=pr(()=>P(),t.closeDelay):P()}function _(){function D(z){z||(u.value=!0,f.value=!1)}t.beforeClose?t.beforeClose(D):S()}function B(){t.closeOnClickModal&&_()}function M(){!He||(f.value=!0)}function P(){f.value=!1}function T(){l("openAutoFocus")}function I(){l("closeAutoFocus")}function v(D){var z;((z=D.detail)==null?void 0:z.focusReason)==="pointer"&&D.preventDefault()}t.lockScroll&&tf(f);function O(){t.closeOnPressEscape&&_()}return e.watch(()=>t.modelValue,D=>{D?(u.value=!1,E(),d.value=!0,p.value=wd(t.zIndex)?a():p.value++,e.nextTick(()=>{l("open"),n.value&&(n.value.scrollTop=0)})):f.value&&S()}),e.watch(()=>t.fullscreen,D=>{!n.value||(D?(s=n.value.style.transform,n.value.style.transform=""):n.value.style.transform=s)}),e.onMounted(()=>{t.modelValue&&(f.value=!0,d.value=!0,E())}),{afterEnter:C,afterLeave:k,beforeLeave:w,handleClose:_,onModalClick:B,close:S,doClose:P,onOpenAutoFocus:T,onCloseAutoFocus:I,onCloseRequested:O,onFocusoutPrevented:v,titleId:i,bodyId:c,closed:u,style:b,overlayDialogStyle:y,rendered:d,visible:f,zIndex:p}},W9=["aria-label","aria-labelledby","aria-describedby"],j9=e.defineComponent({name:"ElDialog",inheritAttrs:!1}),U9=e.defineComponent({...j9,props:Ku,emits:Wu,setup(t,{expose:n}){const o=t,r=e.useSlots();jn({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"},e.computed(()=>!!r.title)),jn({scope:"el-dialog",from:"custom-class",replacement:"class",version:"2.3.0",ref:"https://element-plus.org/en-US/component/dialog.html#attributes",type:"Attribute"},e.computed(()=>!!o.customClass));const l=Q("dialog"),a=e.ref(),s=e.ref(),i=e.ref(),{visible:c,titleId:f,bodyId:u,style:d,overlayDialogStyle:p,rendered:h,zIndex:g,afterEnter:m,afterLeave:b,beforeLeave:y,handleClose:C,onModalClick:k,onOpenAutoFocus:w,onCloseAutoFocus:E,onCloseRequested:S,onFocusoutPrevented:_}=ju(o,a);e.provide(Hu,{dialogRef:a,headerRef:s,bodyId:u,ns:l,rendered:h,style:d});const B=Ws(k),M=e.computed(()=>o.draggable&&!o.fullscreen);return n({visible:c,dialogContentRef:i}),(P,T)=>(e.openBlock(),e.createBlock(e.Teleport,{to:P.appendTo,disabled:P.appendTo!=="body"?!1:!P.appendToBody},[e.createVNode(e.Transition,{name:"dialog-fade",onAfterEnter:e.unref(m),onAfterLeave:e.unref(b),onBeforeLeave:e.unref(y),persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(e.unref(Ai),{"custom-mask-event":"",mask:P.modal,"overlay-class":P.modalClass,"z-index":e.unref(g)},{default:e.withCtx(()=>[e.createElementVNode("div",{role:"dialog","aria-modal":"true","aria-label":P.title||void 0,"aria-labelledby":P.title?void 0:e.unref(f),"aria-describedby":e.unref(u),class:e.normalizeClass(`${e.unref(l).namespace.value}-overlay-dialog`),style:e.normalizeStyle(e.unref(p)),onClick:T[0]||(T[0]=(...I)=>e.unref(B).onClick&&e.unref(B).onClick(...I)),onMousedown:T[1]||(T[1]=(...I)=>e.unref(B).onMousedown&&e.unref(B).onMousedown(...I)),onMouseup:T[2]||(T[2]=(...I)=>e.unref(B).onMouseup&&e.unref(B).onMouseup(...I))},[e.createVNode(e.unref(ci),{loop:"",trapped:e.unref(c),"focus-start-el":"container",onFocusAfterTrapped:e.unref(w),onFocusAfterReleased:e.unref(E),onFocusoutPrevented:e.unref(_),onReleaseRequested:e.unref(S)},{default:e.withCtx(()=>[e.unref(h)?(e.openBlock(),e.createBlock(K9,e.mergeProps({key:0,ref_key:"dialogContentRef",ref:i},P.$attrs,{"custom-class":P.customClass,center:P.center,"align-center":P.alignCenter,"close-icon":P.closeIcon,draggable:e.unref(M),fullscreen:P.fullscreen,"show-close":P.showClose,title:P.title,"aria-level":P.headerAriaLevel,onClose:e.unref(C)}),e.createSlots({header:e.withCtx(()=>[P.$slots.title?e.renderSlot(P.$slots,"title",{key:1}):e.renderSlot(P.$slots,"header",{key:0,close:e.unref(C),titleId:e.unref(f),titleClass:e.unref(l).e("title")})]),default:e.withCtx(()=>[e.renderSlot(P.$slots,"default")]),_:2},[P.$slots.footer?{name:"footer",fn:e.withCtx(()=>[e.renderSlot(P.$slots,"footer")])}:void 0]),1040,["custom-class","center","align-center","close-icon","draggable","fullscreen","show-close","title","aria-level","onClose"])):e.createCommentVNode("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onFocusoutPrevented","onReleaseRequested"])],46,W9)]),_:3},8,["mask","overlay-class","z-index"]),[[e.vShow,e.unref(c)]])]),_:3},8,["onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["to","disabled"]))}});var G9=se(U9,[["__file","dialog.vue"]]);const Vk=Me(G9),Mk=le({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},contentPosition:{type:String,values:["left","center","right"],default:"center"},borderStyle:{type:W(String),default:"solid"}}),q9=e.defineComponent({name:"ElDivider"}),Y9=e.defineComponent({...q9,props:Mk,setup(t){const n=t,o=Q("divider"),r=e.computed(()=>o.cssVar({"border-style":n.borderStyle}));return(l,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(o).b(),e.unref(o).m(l.direction)]),style:e.normalizeStyle(e.unref(r)),role:"separator"},[l.$slots.default&&l.direction!=="vertical"?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(o).e("text"),e.unref(o).is(l.contentPosition)])},[e.renderSlot(l.$slots,"default")],2)):e.createCommentVNode("v-if",!0)],6))}});var X9=se(Y9,[["__file","divider.vue"]]);const Uu=Me(X9),Ik=le({...Ku,direction:{type:String,default:"rtl",values:["ltr","rtl","ttb","btt"]},size:{type:[String,Number],default:"30%"},withHeader:{type:Boolean,default:!0},modalFade:{type:Boolean,default:!0},headerAriaLevel:{type:String,default:"2"}}),Pk=Wu,Z9=e.defineComponent({name:"ElDrawer",components:{ElOverlay:Ai,ElFocusTrap:ci,ElIcon:fe,Close:Hn},inheritAttrs:!1,props:Ik,emits:Pk,setup(t,{slots:n}){jn({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"},e.computed(()=>!!n.title)),jn({scope:"el-drawer",from:"custom-class",replacement:"class",version:"2.3.0",ref:"https://element-plus.org/en-US/component/drawer.html#attributes",type:"Attribute"},e.computed(()=>!!t.customClass));const o=e.ref(),r=e.ref(),l=Q("drawer"),{t:a}=Ke(),s=e.computed(()=>t.direction==="rtl"||t.direction==="ltr"),i=e.computed(()=>kt(t.size));return{...ju(t,o),drawerRef:o,focusStartRef:r,isHorizontal:s,drawerSize:i,ns:l,t:a}}}),J9=["aria-label","aria-labelledby","aria-describedby"],Q9=["id","aria-level"],e7=["aria-label"],t7=["id"];function n7(t,n,o,r,l,a){const s=e.resolveComponent("close"),i=e.resolveComponent("el-icon"),c=e.resolveComponent("el-focus-trap"),f=e.resolveComponent("el-overlay");return e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!t.appendToBody},[e.createVNode(e.Transition,{name:t.ns.b("fade"),onAfterEnter:t.afterEnter,onAfterLeave:t.afterLeave,onBeforeLeave:t.beforeLeave,persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(f,{mask:t.modal,"overlay-class":t.modalClass,"z-index":t.zIndex,onClick:t.onModalClick},{default:e.withCtx(()=>[e.createVNode(c,{loop:"",trapped:t.visible,"focus-trap-el":t.drawerRef,"focus-start-el":t.focusStartRef,onReleaseRequested:t.onCloseRequested},{default:e.withCtx(()=>[e.createElementVNode("div",e.mergeProps({ref:"drawerRef","aria-modal":"true","aria-label":t.title||void 0,"aria-labelledby":t.title?void 0:t.titleId,"aria-describedby":t.bodyId},t.$attrs,{class:[t.ns.b(),t.direction,t.visible&&"open",t.customClass],style:t.isHorizontal?"width: "+t.drawerSize:"height: "+t.drawerSize,role:"dialog",onClick:n[1]||(n[1]=e.withModifiers(()=>{},["stop"]))}),[e.createElementVNode("span",{ref:"focusStartRef",class:e.normalizeClass(t.ns.e("sr-focus")),tabindex:"-1"},null,2),t.withHeader?(e.openBlock(),e.createElementBlock("header",{key:0,class:e.normalizeClass(t.ns.e("header"))},[t.$slots.title?e.renderSlot(t.$slots,"title",{key:1},()=>[e.createCommentVNode(" DEPRECATED SLOT ")]):e.renderSlot(t.$slots,"header",{key:0,close:t.handleClose,titleId:t.titleId,titleClass:t.ns.e("title")},()=>[t.$slots.title?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("span",{key:0,id:t.titleId,role:"heading","aria-level":t.headerAriaLevel,class:e.normalizeClass(t.ns.e("title"))},e.toDisplayString(t.title),11,Q9))]),t.showClose?(e.openBlock(),e.createElementBlock("button",{key:2,"aria-label":t.t("el.drawer.close"),class:e.normalizeClass(t.ns.e("close-btn")),type:"button",onClick:n[0]||(n[0]=(...u)=>t.handleClose&&t.handleClose(...u))},[e.createVNode(i,{class:e.normalizeClass(t.ns.e("close"))},{default:e.withCtx(()=>[e.createVNode(s)]),_:1},8,["class"])],10,e7)):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0),t.rendered?(e.openBlock(),e.createElementBlock("div",{key:1,id:t.bodyId,class:e.normalizeClass(t.ns.e("body"))},[e.renderSlot(t.$slots,"default")],10,t7)):e.createCommentVNode("v-if",!0),t.$slots.footer?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(t.ns.e("footer"))},[e.renderSlot(t.$slots,"footer")],2)):e.createCommentVNode("v-if",!0)],16,J9)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])]),_:3},8,["mask","overlay-class","z-index","onClick"]),[[e.vShow,t.visible]])]),_:3},8,["name","onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["disabled"])}var o7=se(Z9,[["render",n7],["__file","drawer.vue"]]);const Rk=Me(o7),r7=e.defineComponent({inheritAttrs:!1});function l7(t,n,o,r,l,a){return e.renderSlot(t.$slots,"default")}var a7=se(r7,[["render",l7],["__file","collection.vue"]]);const s7=e.defineComponent({name:"ElCollectionItem",inheritAttrs:!1});function i7(t,n,o,r,l,a){return e.renderSlot(t.$slots,"default")}var c7=se(s7,[["render",i7],["__file","collection-item.vue"]]);const Ok="data-el-collection-item",Ak=t=>{const n=`El${t}Collection`,o=`${n}Item`,r=Symbol(n),l=Symbol(o),a={...a7,name:n,setup(){const i=e.ref(null),c=new Map,f=()=>{const u=e.unref(i);if(!u)return[];const d=Array.from(u.querySelectorAll(`[${Ok}]`));return[...c.values()].sort((h,g)=>d.indexOf(h.ref)-d.indexOf(g.ref))};e.provide(r,{itemMap:c,getItems:f,collectionRef:i})}},s={...c7,name:o,setup(i,{attrs:c}){const f=e.ref(null),u=e.inject(r,void 0);e.provide(l,{collectionItemRef:f}),e.onMounted(()=>{const d=e.unref(f);d&&u.itemMap.set(d,{ref:d,...c})}),e.onBeforeUnmount(()=>{const d=e.unref(f);u.itemMap.delete(d)})}};return{COLLECTION_INJECTION_KEY:r,COLLECTION_ITEM_INJECTION_KEY:l,ElCollection:a,ElCollectionItem:s}},d7=le({style:{type:W([String,Array,Object])},currentTabId:{type:W(String)},defaultCurrentTabId:String,loop:Boolean,dir:{type:String,values:["ltr","rtl"],default:"ltr"},orientation:{type:W(String)},onBlur:Function,onFocus:Function,onMousedown:Function}),{ElCollection:f7,ElCollectionItem:u7,COLLECTION_INJECTION_KEY:Gu,COLLECTION_ITEM_INJECTION_KEY:p7}=Ak("RovingFocusGroup"),qu=Symbol("elRovingFocusGroup"),zk=Symbol("elRovingFocusGroupItem"),m7={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"},h7=(t,n)=>{if(n!=="rtl")return t;switch(t){case pe.right:return pe.left;case pe.left:return pe.right;default:return t}},g7=(t,n,o)=>{const r=h7(t.key,o);if(!(n==="vertical"&&[pe.left,pe.right].includes(r))&&!(n==="horizontal"&&[pe.up,pe.down].includes(r)))return m7[r]},y7=(t,n)=>t.map((o,r)=>t[(r+n)%t.length]),Yu=t=>{const{activeElement:n}=document;for(const o of t)if(o===n||(o.focus(),n!==document.activeElement))return},Dk="currentTabIdChange",Lk="rovingFocusGroup.entryFocus",b7={bubbles:!1,cancelable:!0},C7=e.defineComponent({name:"ElRovingFocusGroupImpl",inheritAttrs:!1,props:d7,emits:[Dk,"entryFocus"],setup(t,{emit:n}){var o;const r=e.ref((o=t.currentTabId||t.defaultCurrentTabId)!=null?o:null),l=e.ref(!1),a=e.ref(!1),s=e.ref(null),{getItems:i}=e.inject(Gu,void 0),c=e.computed(()=>[{outline:"none"},t.style]),f=m=>{n(Dk,m)},u=()=>{l.value=!0},d=pt(m=>{var b;(b=t.onMousedown)==null||b.call(t,m)},()=>{a.value=!0}),p=pt(m=>{var b;(b=t.onFocus)==null||b.call(t,m)},m=>{const b=!e.unref(a),{target:y,currentTarget:C}=m;if(y===C&&b&&!e.unref(l)){const k=new Event(Lk,b7);if(C==null||C.dispatchEvent(k),!k.defaultPrevented){const w=i().filter(M=>M.focusable),E=w.find(M=>M.active),S=w.find(M=>M.id===e.unref(r)),B=[E,S,...w].filter(Boolean).map(M=>M.ref);Yu(B)}}a.value=!1}),h=pt(m=>{var b;(b=t.onBlur)==null||b.call(t,m)},()=>{l.value=!1}),g=(...m)=>{n("entryFocus",...m)};e.provide(qu,{currentTabbedId:e.readonly(r),loop:e.toRef(t,"loop"),tabIndex:e.computed(()=>e.unref(l)?-1:0),rovingFocusGroupRef:s,rovingFocusGroupRootStyle:c,orientation:e.toRef(t,"orientation"),dir:e.toRef(t,"dir"),onItemFocus:f,onItemShiftTab:u,onBlur:h,onFocus:p,onMousedown:d}),e.watch(()=>t.currentTabId,m=>{r.value=m!=null?m:null}),rt(s,Lk,g)}});function w7(t,n,o,r,l,a){return e.renderSlot(t.$slots,"default")}var k7=se(C7,[["render",w7],["__file","roving-focus-group-impl.vue"]]);const S7=e.defineComponent({name:"ElRovingFocusGroup",components:{ElFocusGroupCollection:f7,ElRovingFocusGroupImpl:k7}});function E7(t,n,o,r,l,a){const s=e.resolveComponent("el-roving-focus-group-impl"),i=e.resolveComponent("el-focus-group-collection");return e.openBlock(),e.createBlock(i,null,{default:e.withCtx(()=>[e.createVNode(s,e.normalizeProps(e.guardReactiveProps(t.$attrs)),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},16)]),_:3})}var N7=se(S7,[["render",E7],["__file","roving-focus-group.vue"]]);const _7=e.defineComponent({components:{ElRovingFocusCollectionItem:u7},props:{focusable:{type:Boolean,default:!0},active:{type:Boolean,default:!1}},emits:["mousedown","focus","keydown"],setup(t,{emit:n}){const{currentTabbedId:o,loop:r,onItemFocus:l,onItemShiftTab:a}=e.inject(qu,void 0),{getItems:s}=e.inject(Gu,void 0),i=rn(),c=e.ref(null),f=pt(h=>{n("mousedown",h)},h=>{t.focusable?l(e.unref(i)):h.preventDefault()}),u=pt(h=>{n("focus",h)},()=>{l(e.unref(i))}),d=pt(h=>{n("keydown",h)},h=>{const{key:g,shiftKey:m,target:b,currentTarget:y}=h;if(g===pe.tab&&m){a();return}if(b!==y)return;const C=g7(h);if(C){h.preventDefault();let w=s().filter(E=>E.focusable).map(E=>E.ref);switch(C){case"last":{w.reverse();break}case"prev":case"next":{C==="prev"&&w.reverse();const E=w.indexOf(y);w=r.value?y7(w,E+1):w.slice(E+1);break}}e.nextTick(()=>{Yu(w)})}}),p=e.computed(()=>o.value===e.unref(i));return e.provide(zk,{rovingFocusGroupItemRef:c,tabIndex:e.computed(()=>e.unref(p)?0:-1),handleMousedown:f,handleFocus:u,handleKeydown:d}),{id:i,handleKeydown:d,handleFocus:u,handleMousedown:f}}});function B7(t,n,o,r,l,a){const s=e.resolveComponent("el-roving-focus-collection-item");return e.openBlock(),e.createBlock(s,{id:t.id,focusable:t.focusable,active:t.active},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["id","focusable","active"])}var $7=se(_7,[["render",B7],["__file","roving-focus-item.vue"]]);const Ta=le({trigger:gl.trigger,effect:{...Pt.effect,default:"light"},type:{type:W(String)},placement:{type:W(String),default:"bottom"},popperOptions:{type:W(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:W([Number,String]),default:0},maxHeight:{type:W([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:W(Object)},teleported:Pt.teleported}),Xu=le({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:ot}}),xk=le({onKeydown:{type:W(Function)}}),Fk=[pe.down,pe.pageDown,pe.home],Zu=[pe.up,pe.pageUp,pe.end],Hk=[...Fk,...Zu],{ElCollection:Kk,ElCollectionItem:Wk,COLLECTION_INJECTION_KEY:jk,COLLECTION_ITEM_INJECTION_KEY:Uk}=Ak("Dropdown"),va=Symbol("elDropdown"),{ButtonGroup:T7}=At,v7=e.defineComponent({name:"ElDropdown",components:{ElButton:At,ElButtonGroup:T7,ElScrollbar:mo,ElDropdownCollection:Kk,ElTooltip:Zt,ElRovingFocusGroup:N7,ElOnlyChild:VC,ElIcon:fe,ArrowDown:qo},props:Ta,emits:["visible-change","click","command"],setup(t,{emit:n}){const o=e.getCurrentInstance(),r=Q("dropdown"),{t:l}=Ke(),a=e.ref(),s=e.ref(),i=e.ref(null),c=e.ref(null),f=e.ref(null),u=e.ref(null),d=e.ref(!1),p=[pe.enter,pe.space,pe.down],h=e.computed(()=>({maxHeight:kt(t.maxHeight)})),g=e.computed(()=>[r.m(E.value)]),m=e.computed(()=>Ho(t.trigger)),b=rn().value,y=e.computed(()=>t.id||b);e.watch([a,m],([$,R],[N])=>{var A,x,H;(A=N==null?void 0:N.$el)!=null&&A.removeEventListener&&N.$el.removeEventListener("pointerenter",_),(x=$==null?void 0:$.$el)!=null&&x.removeEventListener&&$.$el.removeEventListener("pointerenter",_),((H=$==null?void 0:$.$el)==null?void 0:H.addEventListener)&&R.includes("hover")&&$.$el.addEventListener("pointerenter",_)},{immediate:!0}),e.onBeforeUnmount(()=>{var $,R;(R=($=a.value)==null?void 0:$.$el)!=null&&R.removeEventListener&&a.value.$el.removeEventListener("pointerenter",_)});function C(){k()}function k(){var $;($=i.value)==null||$.onClose()}function w(){var $;($=i.value)==null||$.onOpen()}const E=St();function S(...$){n("command",...$)}function _(){var $,R;(R=($=a.value)==null?void 0:$.$el)==null||R.focus()}function B(){}function M(){const $=e.unref(c);m.value.includes("hover")&&($==null||$.focus()),u.value=null}function P($){u.value=$}function T($){d.value||($.preventDefault(),$.stopImmediatePropagation())}function I(){n("visible-change",!0)}function v($){($==null?void 0:$.type)==="keydown"&&c.value.focus()}function O(){n("visible-change",!1)}return e.provide(va,{contentRef:c,role:e.computed(()=>t.role),triggerId:y,isUsingKeyboard:d,onItemEnter:B,onItemLeave:M}),e.provide("elDropdown",{instance:o,dropdownSize:E,handleClick:C,commandHandler:S,trigger:e.toRef(t,"trigger"),hideOnClick:e.toRef(t,"hideOnClick")}),{t:l,ns:r,scrollbar:f,wrapStyle:h,dropdownTriggerKls:g,dropdownSize:E,triggerId:y,triggerKeys:p,currentTabId:u,handleCurrentTabIdChange:P,handlerMainButtonClick:$=>{n("click",$)},handleEntryFocus:T,handleClose:k,handleOpen:w,handleBeforeShowTooltip:I,handleShowTooltip:v,handleBeforeHideTooltip:O,onFocusAfterTrapped:$=>{var R,N;$.preventDefault(),(N=(R=c.value)==null?void 0:R.focus)==null||N.call(R,{preventScroll:!0})},popperRef:i,contentRef:c,triggeringElementRef:a,referenceElementRef:s}}});function V7(t,n,o,r,l,a){var s;const i=e.resolveComponent("el-dropdown-collection"),c=e.resolveComponent("el-roving-focus-group"),f=e.resolveComponent("el-scrollbar"),u=e.resolveComponent("el-only-child"),d=e.resolveComponent("el-tooltip"),p=e.resolveComponent("el-button"),h=e.resolveComponent("arrow-down"),g=e.resolveComponent("el-icon"),m=e.resolveComponent("el-button-group");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.ns.b(),t.ns.is("disabled",t.disabled)])},[e.createVNode(d,{ref:"popperRef",role:t.role,effect:t.effect,"fallback-placements":["bottom","top"],"popper-options":t.popperOptions,"gpu-acceleration":!1,"hide-after":t.trigger==="hover"?t.hideTimeout:0,"manual-mode":!0,placement:t.placement,"popper-class":[t.ns.e("popper"),t.popperClass],"reference-element":(s=t.referenceElementRef)==null?void 0:s.$el,trigger:t.trigger,"trigger-keys":t.triggerKeys,"trigger-target-el":t.contentRef,"show-after":t.trigger==="hover"?t.showTimeout:0,"stop-popper-mouse-event":!1,"virtual-ref":t.triggeringElementRef,"virtual-triggering":t.splitButton,disabled:t.disabled,transition:`${t.ns.namespace.value}-zoom-in-top`,teleported:t.teleported,pure:"",persistent:"",onBeforeShow:t.handleBeforeShowTooltip,onShow:t.handleShowTooltip,onBeforeHide:t.handleBeforeHideTooltip},e.createSlots({content:e.withCtx(()=>[e.createVNode(f,{ref:"scrollbar","wrap-style":t.wrapStyle,tag:"div","view-class":t.ns.e("list")},{default:e.withCtx(()=>[e.createVNode(c,{loop:t.loop,"current-tab-id":t.currentTabId,orientation:"horizontal",onCurrentTabIdChange:t.handleCurrentTabIdChange,onEntryFocus:t.handleEntryFocus},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.renderSlot(t.$slots,"dropdown")]),_:3})]),_:3},8,["loop","current-tab-id","onCurrentTabIdChange","onEntryFocus"])]),_:3},8,["wrap-style","view-class"])]),_:2},[t.splitButton?void 0:{name:"default",fn:e.withCtx(()=>[e.createVNode(u,{id:t.triggerId,ref:"triggeringElementRef",role:"button",tabindex:t.tabindex},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["id","tabindex"])])}]),1032,["role","effect","popper-options","hide-after","placement","popper-class","reference-element","trigger","trigger-keys","trigger-target-el","show-after","virtual-ref","virtual-triggering","disabled","transition","teleported","onBeforeShow","onShow","onBeforeHide"]),t.splitButton?(e.openBlock(),e.createBlock(m,{key:0},{default:e.withCtx(()=>[e.createVNode(p,e.mergeProps({ref:"referenceElementRef"},t.buttonProps,{size:t.dropdownSize,type:t.type,disabled:t.disabled,tabindex:t.tabindex,onClick:t.handlerMainButtonClick}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},16,["size","type","disabled","tabindex","onClick"]),e.createVNode(p,e.mergeProps({id:t.triggerId,ref:"triggeringElementRef"},t.buttonProps,{role:"button",size:t.dropdownSize,type:t.type,class:t.ns.e("caret-button"),disabled:t.disabled,tabindex:t.tabindex,"aria-label":t.t("el.dropdown.toggleDropdown")}),{default:e.withCtx(()=>[e.createVNode(g,{class:e.normalizeClass(t.ns.e("icon"))},{default:e.withCtx(()=>[e.createVNode(h)]),_:1},8,["class"])]),_:1},16,["id","size","type","class","disabled","tabindex","aria-label"])]),_:3})):e.createCommentVNode("v-if",!0)],2)}var M7=se(v7,[["render",V7],["__file","dropdown.vue"]]);const I7=e.defineComponent({name:"DropdownItemImpl",components:{ElIcon:fe},props:Xu,emits:["pointermove","pointerleave","click","clickimpl"],setup(t,{emit:n}){const o=Q("dropdown"),{role:r}=e.inject(va,void 0),{collectionItemRef:l}=e.inject(Uk,void 0),{collectionItemRef:a}=e.inject(p7,void 0),{rovingFocusGroupItemRef:s,tabIndex:i,handleFocus:c,handleKeydown:f,handleMousedown:u}=e.inject(zk,void 0),d=Ms(l,a,s),p=e.computed(()=>r.value==="menu"?"menuitem":r.value==="navigation"?"link":"button"),h=pt(g=>{const{code:m}=g;if(m===pe.enter||m===pe.space)return g.preventDefault(),g.stopImmediatePropagation(),n("clickimpl",g),!0},f);return{ns:o,itemRef:d,dataset:{[Ok]:""},role:p,tabIndex:i,handleFocus:c,handleKeydown:h,handleMousedown:u}}}),P7=["aria-disabled","tabindex","role"];function R7(t,n,o,r,l,a){const s=e.resolveComponent("el-icon");return e.openBlock(),e.createElementBlock(e.Fragment,null,[t.divided?(e.openBlock(),e.createElementBlock("li",e.mergeProps({key:0,role:"separator",class:t.ns.bem("menu","item","divided")},t.$attrs),null,16)):e.createCommentVNode("v-if",!0),e.createElementVNode("li",e.mergeProps({ref:t.itemRef},{...t.dataset,...t.$attrs},{"aria-disabled":t.disabled,class:[t.ns.be("menu","item"),t.ns.is("disabled",t.disabled)],tabindex:t.tabIndex,role:t.role,onClick:n[0]||(n[0]=i=>t.$emit("clickimpl",i)),onFocus:n[1]||(n[1]=(...i)=>t.handleFocus&&t.handleFocus(...i)),onKeydown:n[2]||(n[2]=e.withModifiers((...i)=>t.handleKeydown&&t.handleKeydown(...i),["self"])),onMousedown:n[3]||(n[3]=(...i)=>t.handleMousedown&&t.handleMousedown(...i)),onPointermove:n[4]||(n[4]=i=>t.$emit("pointermove",i)),onPointerleave:n[5]||(n[5]=i=>t.$emit("pointerleave",i))}),[t.icon?(e.openBlock(),e.createBlock(s,{key:0},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon)))]),_:1})):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"default")],16,P7)],64)}var O7=se(I7,[["render",R7],["__file","dropdown-item-impl.vue"]]);const Gk=()=>{const t=e.inject("elDropdown",{}),n=e.computed(()=>t==null?void 0:t.dropdownSize);return{elDropdown:t,_elDropdownSize:n}},A7=e.defineComponent({name:"ElDropdownItem",components:{ElDropdownCollectionItem:Wk,ElRovingFocusItem:$7,ElDropdownItemImpl:O7},inheritAttrs:!1,props:Xu,emits:["pointermove","pointerleave","click"],setup(t,{emit:n,attrs:o}){const{elDropdown:r}=Gk(),l=e.getCurrentInstance(),a=e.ref(null),s=e.computed(()=>{var h,g;return(g=(h=e.unref(a))==null?void 0:h.textContent)!=null?g:""}),{onItemEnter:i,onItemLeave:c}=e.inject(va,void 0),f=pt(h=>(n("pointermove",h),h.defaultPrevented),_m(h=>{if(t.disabled){c(h);return}const g=h.currentTarget;g===document.activeElement||g.contains(document.activeElement)||(i(h),h.defaultPrevented||g==null||g.focus())})),u=pt(h=>(n("pointerleave",h),h.defaultPrevented),_m(h=>{c(h)})),d=pt(h=>{if(!t.disabled)return n("click",h),h.type!=="keydown"&&h.defaultPrevented},h=>{var g,m,b;if(t.disabled){h.stopImmediatePropagation();return}(g=r==null?void 0:r.hideOnClick)!=null&&g.value&&((m=r.handleClick)==null||m.call(r)),(b=r.commandHandler)==null||b.call(r,t.command,l,h)}),p=e.computed(()=>({...t,...o}));return{handleClick:d,handlePointerMove:f,handlePointerLeave:u,textContent:s,propsAndAttrs:p}}});function z7(t,n,o,r,l,a){var s;const i=e.resolveComponent("el-dropdown-item-impl"),c=e.resolveComponent("el-roving-focus-item"),f=e.resolveComponent("el-dropdown-collection-item");return e.openBlock(),e.createBlock(f,{disabled:t.disabled,"text-value":(s=t.textValue)!=null?s:t.textContent},{default:e.withCtx(()=>[e.createVNode(c,{focusable:!t.disabled},{default:e.withCtx(()=>[e.createVNode(i,e.mergeProps(t.propsAndAttrs,{onPointerleave:t.handlePointerLeave,onPointermove:t.handlePointerMove,onClickimpl:t.handleClick}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},16,["onPointerleave","onPointermove","onClickimpl"])]),_:3},8,["focusable"])]),_:3},8,["disabled","text-value"])}var qk=se(A7,[["render",z7],["__file","dropdown-item.vue"]]);const D7=e.defineComponent({name:"ElDropdownMenu",props:xk,setup(t){const n=Q("dropdown"),{_elDropdownSize:o}=Gk(),r=o.value,{focusTrapRef:l,onKeydown:a}=e.inject(Lf,void 0),{contentRef:s,role:i,triggerId:c}=e.inject(va,void 0),{collectionRef:f,getItems:u}=e.inject(jk,void 0),{rovingFocusGroupRef:d,rovingFocusGroupRootStyle:p,tabIndex:h,onBlur:g,onFocus:m,onMousedown:b}=e.inject(qu,void 0),{collectionRef:y}=e.inject(Gu,void 0),C=e.computed(()=>[n.b("menu"),n.bm("menu",r==null?void 0:r.value)]),k=Ms(s,f,l,d,y),w=pt(S=>{var _;(_=t.onKeydown)==null||_.call(t,S)},S=>{const{currentTarget:_,code:B,target:M}=S;if(_.contains(M),pe.tab===B&&S.stopImmediatePropagation(),S.preventDefault(),M!==e.unref(s)||!Hk.includes(B))return;const T=u().filter(I=>!I.disabled).map(I=>I.ref);Zu.includes(B)&&T.reverse(),Yu(T)});return{size:r,rovingFocusGroupRootStyle:p,tabIndex:h,dropdownKls:C,role:i,triggerId:c,dropdownListWrapperRef:k,handleKeydown:S=>{w(S),a(S)},onBlur:g,onFocus:m,onMousedown:b}}}),L7=["role","aria-labelledby"];function x7(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("ul",{ref:t.dropdownListWrapperRef,class:e.normalizeClass(t.dropdownKls),style:e.normalizeStyle(t.rovingFocusGroupRootStyle),tabindex:-1,role:t.role,"aria-labelledby":t.triggerId,onBlur:n[0]||(n[0]=(...s)=>t.onBlur&&t.onBlur(...s)),onFocus:n[1]||(n[1]=(...s)=>t.onFocus&&t.onFocus(...s)),onKeydown:n[2]||(n[2]=e.withModifiers((...s)=>t.handleKeydown&&t.handleKeydown(...s),["self"])),onMousedown:n[3]||(n[3]=e.withModifiers((...s)=>t.onMousedown&&t.onMousedown(...s),["self"]))},[e.renderSlot(t.$slots,"default")],46,L7)}var Yk=se(D7,[["render",x7],["__file","dropdown-menu.vue"]]);const Xk=Me(M7,{DropdownItem:qk,DropdownMenu:Yk}),Zk=ht(qk),Jk=ht(Yk),F7={viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},H7=["id"],K7=["stop-color"],W7=["stop-color"],j7=["id"],U7=["stop-color"],G7=["stop-color"],q7=["id"],Y7={id:"Illustrations",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},X7={id:"B-type",transform:"translate(-1268.000000, -535.000000)"},Z7={id:"Group-2",transform:"translate(1268.000000, 535.000000)"},J7=["fill"],Q7=["fill"],ej={id:"Group-Copy",transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"},tj=["fill"],nj=["fill"],oj=["fill"],rj=["fill"],lj=["fill"],aj={id:"Rectangle-Copy-17",transform:"translate(53.000000, 45.000000)"},sj=["fill","xlink:href"],ij=["fill","mask"],cj=["fill"],dj=e.defineComponent({name:"ImgEmpty"}),fj=e.defineComponent({...dj,setup(t){const n=Q("empty"),o=rn();return(r,l)=>(e.openBlock(),e.createElementBlock("svg",F7,[e.createElementVNode("defs",null,[e.createElementVNode("linearGradient",{id:`linearGradient-1-${e.unref(o)}`,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"},[e.createElementVNode("stop",{"stop-color":`var(${e.unref(n).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,K7),e.createElementVNode("stop",{"stop-color":`var(${e.unref(n).cssVarBlockName("fill-color-4")})`,offset:"100%"},null,8,W7)],8,H7),e.createElementVNode("linearGradient",{id:`linearGradient-2-${e.unref(o)}`,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"},[e.createElementVNode("stop",{"stop-color":`var(${e.unref(n).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,U7),e.createElementVNode("stop",{"stop-color":`var(${e.unref(n).cssVarBlockName("fill-color-6")})`,offset:"100%"},null,8,G7)],8,j7),e.createElementVNode("rect",{id:`path-3-${e.unref(o)}`,x:"0",y:"0",width:"17",height:"36"},null,8,q7)]),e.createElementVNode("g",Y7,[e.createElementVNode("g",X7,[e.createElementVNode("g",Z7,[e.createElementVNode("path",{id:"Oval-Copy-2",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(${e.unref(n).cssVarBlockName("fill-color-3")})`},null,8,J7),e.createElementVNode("polygon",{id:"Rectangle-Copy-14",fill:`var(${e.unref(n).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,Q7),e.createElementVNode("g",ej,[e.createElementVNode("polygon",{id:"Rectangle-Copy-10",fill:`var(${e.unref(n).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,tj),e.createElementVNode("polygon",{id:"Rectangle-Copy-11",fill:`var(${e.unref(n).cssVarBlockName("fill-color-5")})`,points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"},null,8,nj),e.createElementVNode("rect",{id:"Rectangle-Copy-12",fill:`url(#linearGradient-1-${e.unref(o)})`,transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"},null,8,oj),e.createElementVNode("polygon",{id:"Rectangle-Copy-13",fill:`var(${e.unref(n).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,rj)]),e.createElementVNode("rect",{id:"Rectangle-Copy-15",fill:`url(#linearGradient-2-${e.unref(o)})`,x:"13",y:"45",width:"40",height:"36"},null,8,lj),e.createElementVNode("g",aj,[e.createElementVNode("use",{id:"Mask",fill:`var(${e.unref(n).cssVarBlockName("fill-color-8")})`,transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":`#path-3-${e.unref(o)}`},null,8,sj),e.createElementVNode("polygon",{id:"Rectangle-Copy",fill:`var(${e.unref(n).cssVarBlockName("fill-color-9")})`,mask:`url(#mask-4-${e.unref(o)})`,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,ij)]),e.createElementVNode("polygon",{id:"Rectangle-Copy-18",fill:`var(${e.unref(n).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,cj)])])])]))}});var uj=se(fj,[["__file","img-empty.vue"]]);const Qk=le({image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}}),pj=["src"],mj={key:1},hj=e.defineComponent({name:"ElEmpty"}),gj=e.defineComponent({...hj,props:Qk,setup(t){const n=t,{t:o}=Ke(),r=Q("empty"),l=e.computed(()=>n.description||o("el.table.emptyText")),a=e.computed(()=>({width:kt(n.imageSize)}));return(s,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(r).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).e("image")),style:e.normalizeStyle(e.unref(a))},[s.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:s.image,ondragstart:"return false"},null,8,pj)):e.renderSlot(s.$slots,"image",{key:1},()=>[e.createVNode(uj)])],6),e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).e("description"))},[s.$slots.description?e.renderSlot(s.$slots,"description",{key:0}):(e.openBlock(),e.createElementBlock("p",mj,e.toDisplayString(e.unref(l)),1))],2),s.$slots.default?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).e("bottom"))},[e.renderSlot(s.$slots,"default")],2)):e.createCommentVNode("v-if",!0)],2))}});var yj=se(gj,[["__file","empty.vue"]]);const Ju=Me(yj),eS=le({urlList:{type:W(Array),default:()=>ut([])},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},minScale:{type:Number,default:.2},maxScale:{type:Number,default:7}}),tS={close:()=>!0,switch:t=>be(t),rotate:t=>be(t)},bj=["src"],Cj=e.defineComponent({name:"ElImageViewer"}),wj=e.defineComponent({...Cj,props:eS,emits:tS,setup(t,{expose:n,emit:o}){const r=t,l={CONTAIN:{name:"contain",icon:e.markRaw(kD)},ORIGINAL:{name:"original",icon:e.markRaw(FD)}},{t:a}=Ke(),s=Q("image-viewer"),{nextZIndex:i}=$r(),c=e.ref(),f=e.ref([]),u=e.effectScope(),d=e.ref(!0),p=e.ref(r.initialIndex),h=e.shallowRef(l.CONTAIN),g=e.ref({scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}),m=e.computed(()=>{const{urlList:N}=r;return N.length<=1}),b=e.computed(()=>p.value===0),y=e.computed(()=>p.value===r.urlList.length-1),C=e.computed(()=>r.urlList[p.value]),k=e.computed(()=>[s.e("btn"),s.e("prev"),s.is("disabled",!r.infinite&&b.value)]),w=e.computed(()=>[s.e("btn"),s.e("next"),s.is("disabled",!r.infinite&&y.value)]),E=e.computed(()=>{const{scale:N,deg:A,offsetX:x,offsetY:H,enableTransition:K}=g.value;let q=x/N,ne=H/N;switch(A%360){case 90:case-270:[q,ne]=[ne,-q];break;case 180:case-180:[q,ne]=[-q,-ne];break;case 270:case-90:[q,ne]=[-ne,q];break}const Y={transform:`scale(${N}) rotate(${A}deg) translate(${q}px, ${ne}px)`,transition:K?"transform .3s":""};return h.value.name===l.CONTAIN.name&&(Y.maxWidth=Y.maxHeight="100%"),Y}),S=e.computed(()=>be(r.zIndex)?r.zIndex:i());function _(){M(),o("close")}function B(){const N=jo(x=>{switch(x.code){case pe.esc:r.closeOnPressEscape&&_();break;case pe.space:O();break;case pe.left:z();break;case pe.up:R("zoomIn");break;case pe.right:$();break;case pe.down:R("zoomOut");break}}),A=jo(x=>{const H=x.deltaY||x.deltaX;R(H<0?"zoomIn":"zoomOut",{zoomRate:r.zoomRate,enableTransition:!1})});u.run(()=>{rt(document,"keydown",N),rt(document,"wheel",A)})}function M(){u.stop()}function P(){d.value=!1}function T(N){d.value=!1,N.target.alt=a("el.image.error")}function I(N){if(d.value||N.button!==0||!c.value)return;g.value.enableTransition=!1;const{offsetX:A,offsetY:x}=g.value,H=N.pageX,K=N.pageY,q=jo(Y=>{g.value={...g.value,offsetX:A+Y.pageX-H,offsetY:x+Y.pageY-K}}),ne=rt(document,"mousemove",q);rt(document,"mouseup",()=>{ne()}),N.preventDefault()}function v(){g.value={scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}function O(){if(d.value)return;const N=ra(l),A=Object.values(l),x=h.value.name,K=(A.findIndex(q=>q.name===x)+1)%N.length;h.value=l[N[K]],v()}function D(N){const A=r.urlList.length;p.value=(N+A)%A}function z(){b.value&&!r.infinite||D(p.value-1)}function $(){y.value&&!r.infinite||D(p.value+1)}function R(N,A={}){if(d.value)return;const{minScale:x,maxScale:H}=r,{zoomRate:K,rotateDeg:q,enableTransition:ne}={zoomRate:r.zoomRate,rotateDeg:90,enableTransition:!0,...A};switch(N){case"zoomOut":g.value.scale>x&&(g.value.scale=Number.parseFloat((g.value.scale/K).toFixed(3)));break;case"zoomIn":g.value.scale{e.nextTick(()=>{const N=f.value[0];N!=null&&N.complete||(d.value=!0)})}),e.watch(p,N=>{v(),o("switch",N)}),e.onMounted(()=>{var N,A;B(),(A=(N=c.value)==null?void 0:N.focus)==null||A.call(N)}),n({setActiveItem:D}),(N,A)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!N.teleported},[e.createVNode(e.Transition,{name:"viewer-fade",appear:""},{default:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"wrapper",ref:c,tabindex:-1,class:e.normalizeClass(e.unref(s).e("wrapper")),style:e.normalizeStyle({zIndex:e.unref(S)})},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).e("mask")),onClick:A[0]||(A[0]=e.withModifiers(x=>N.hideOnClickModal&&_(),["self"]))},null,2),e.createCommentVNode(" CLOSE "),e.createElementVNode("span",{class:e.normalizeClass([e.unref(s).e("btn"),e.unref(s).e("close")]),onClick:_},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Hn))]),_:1})],2),e.createCommentVNode(" ARROW "),e.unref(m)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(k)),onClick:z},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Yo))]),_:1})],2),e.createElementVNode("span",{class:e.normalizeClass(e.unref(w)),onClick:$},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})],2)],64)),e.createCommentVNode(" ACTIONS "),e.createElementVNode("div",{class:e.normalizeClass([e.unref(s).e("btn"),e.unref(s).e("actions")])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).e("actions__inner"))},[e.createVNode(e.unref(fe),{onClick:A[1]||(A[1]=x=>R("zoomOut"))},{default:e.withCtx(()=>[e.createVNode(e.unref(oL))]),_:1}),e.createVNode(e.unref(fe),{onClick:A[2]||(A[2]=x=>R("zoomIn"))},{default:e.withCtx(()=>[e.createVNode(e.unref(By))]),_:1}),e.createElementVNode("i",{class:e.normalizeClass(e.unref(s).e("actions__divider"))},null,2),e.createVNode(e.unref(fe),{onClick:O},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(h).icon)))]),_:1}),e.createElementVNode("i",{class:e.normalizeClass(e.unref(s).e("actions__divider"))},null,2),e.createVNode(e.unref(fe),{onClick:A[3]||(A[3]=x=>R("anticlockwise"))},{default:e.withCtx(()=>[e.createVNode(e.unref(zD))]),_:1}),e.createVNode(e.unref(fe),{onClick:A[4]||(A[4]=x=>R("clockwise"))},{default:e.withCtx(()=>[e.createVNode(e.unref(LD))]),_:1})],2)],2),e.createCommentVNode(" CANVAS "),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).e("canvas"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.urlList,(x,H)=>e.withDirectives((e.openBlock(),e.createElementBlock("img",{ref_for:!0,ref:K=>f.value[H]=K,key:x,src:x,style:e.normalizeStyle(e.unref(E)),class:e.normalizeClass(e.unref(s).e("img")),onLoad:P,onError:T,onMousedown:I},null,46,bj)),[[e.vShow,H===p.value]])),128))],2),e.renderSlot(N.$slots,"default")],6)]),_:3})],8,["disabled"]))}});var kj=se(wj,[["__file","image-viewer.vue"]]);const Qu=Me(kj),nS=le({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:W([String,Object])},previewSrcList:{type:W(Array),default:()=>ut([])},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},minScale:{type:Number,default:.2},maxScale:{type:Number,default:7}}),oS={load:t=>t instanceof Event,error:t=>t instanceof Event,switch:t=>be(t),close:()=>!0,show:()=>!0},Sj=["src","loading"],Ej={key:0},Nj=e.defineComponent({name:"ElImage",inheritAttrs:!1}),_j=e.defineComponent({...Nj,props:nS,emits:oS,setup(t,{emit:n}){const o=t;let r="";const{t:l}=Ke(),a=Q("image"),s=e.useAttrs(),i=As(),c=e.ref(),f=e.ref(!1),u=e.ref(!0),d=e.ref(!1),p=e.ref(),h=e.ref(),g=He&&"loading"in HTMLImageElement.prototype;let m,b;const y=e.computed(()=>[a.e("inner"),w.value&&a.e("preview"),u.value&&a.is("loading")]),C=e.computed(()=>s.style),k=e.computed(()=>{const{fit:R}=o;return He&&R?{objectFit:R}:{}}),w=e.computed(()=>{const{previewSrcList:R}=o;return Array.isArray(R)&&R.length>0}),E=e.computed(()=>{const{previewSrcList:R,initialIndex:N}=o;let A=N;return N>R.length-1&&(A=0),A}),S=e.computed(()=>o.loading==="eager"?!1:!g&&o.loading==="lazy"||o.lazy),_=()=>{!He||(u.value=!0,f.value=!1,c.value=o.src)};function B(R){u.value=!1,f.value=!1,n("load",R)}function M(R){u.value=!1,f.value=!0,n("error",R)}function P(){k_(p.value,h.value)&&(_(),v())}const T=Mm(P,200,!0);async function I(){var R;if(!He)return;await e.nextTick();const{scrollContainer:N}=o;Mn(N)?h.value=N:De(N)&&N!==""?h.value=(R=document.querySelector(N))!=null?R:void 0:p.value&&(h.value=Hd(p.value)),h.value&&(m=rt(h,"scroll",T),setTimeout(()=>P(),100))}function v(){!He||!h.value||!T||(m==null||m(),h.value=void 0)}function O(R){if(!!R.ctrlKey){if(R.deltaY<0)return R.preventDefault(),!1;if(R.deltaY>0)return R.preventDefault(),!1}}function D(){!w.value||(b=rt("wheel",O,{passive:!1}),r=document.body.style.overflow,document.body.style.overflow="hidden",d.value=!0,n("show"))}function z(){b==null||b(),document.body.style.overflow=r,d.value=!1,n("close")}function $(R){n("switch",R)}return e.watch(()=>o.src,()=>{S.value?(u.value=!0,f.value=!1,v(),I()):_()}),e.onMounted(()=>{S.value?I():_()}),(R,N)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:p,class:e.normalizeClass([e.unref(a).b(),R.$attrs.class]),style:e.normalizeStyle(e.unref(C))},[f.value?e.renderSlot(R.$slots,"error",{key:0},()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("error"))},e.toDisplayString(e.unref(l)("el.image.error")),3)]):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[c.value!==void 0?(e.openBlock(),e.createElementBlock("img",e.mergeProps({key:0},e.unref(i),{src:c.value,loading:R.loading,style:e.unref(k),class:e.unref(y),onClick:D,onLoad:B,onError:M}),null,16,Sj)):e.createCommentVNode("v-if",!0),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(a).e("wrapper"))},[e.renderSlot(R.$slots,"placeholder",{},()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("placeholder"))},null,2)])],2)):e.createCommentVNode("v-if",!0)],64)),e.unref(w)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[d.value?(e.openBlock(),e.createBlock(e.unref(Qu),{key:0,"z-index":R.zIndex,"initial-index":e.unref(E),infinite:R.infinite,"zoom-rate":R.zoomRate,"min-scale":R.minScale,"max-scale":R.maxScale,"url-list":R.previewSrcList,"hide-on-click-modal":R.hideOnClickModal,teleported:R.previewTeleported,"close-on-press-escape":R.closeOnPressEscape,onClose:z,onSwitch:$},{default:e.withCtx(()=>[R.$slots.viewer?(e.openBlock(),e.createElementBlock("div",Ej,[e.renderSlot(R.$slots,"viewer")])):e.createCommentVNode("v-if",!0)]),_:3},8,["z-index","initial-index","infinite","zoom-rate","min-scale","max-scale","url-list","hide-on-click-modal","teleported","close-on-press-escape"])):e.createCommentVNode("v-if",!0)],64)):e.createCommentVNode("v-if",!0)],6))}});var Bj=se(_j,[["__file","image.vue"]]);const rS=Me(Bj),lS=le({id:{type:String,default:void 0},step:{type:Number,default:1},stepStrictly:Boolean,max:{type:Number,default:Number.POSITIVE_INFINITY},min:{type:Number,default:Number.NEGATIVE_INFINITY},modelValue:Number,readonly:Boolean,disabled:Boolean,size:Vt,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:"",values:["","right"]},valueOnClear:{type:[String,Number,null],validator:t=>t===null||be(t)||["min","max"].includes(t),default:null},name:String,label:String,placeholder:String,precision:{type:Number,validator:t=>t>=0&&t===Number.parseInt(`${t}`,10)},validateEvent:{type:Boolean,default:!0}}),aS={[at]:(t,n)=>n!==t,blur:t=>t instanceof FocusEvent,focus:t=>t instanceof FocusEvent,[qt]:t=>be(t)||wt(t),[Ie]:t=>be(t)||wt(t)},$j=["aria-label","onKeydown"],Tj=["aria-label","onKeydown"],vj=e.defineComponent({name:"ElInputNumber"}),Vj=e.defineComponent({...vj,props:lS,emits:aS,setup(t,{expose:n,emit:o}){const r=t,{t:l}=Ke(),a=Q("input-number"),s=e.ref(),i=e.reactive({currentValue:r.modelValue,userInput:null}),{formItem:c}=Xt(),f=e.computed(()=>be(r.modelValue)&&r.modelValue<=r.min),u=e.computed(()=>be(r.modelValue)&&r.modelValue>=r.max),d=e.computed(()=>{const v=y(r.step);return $t(r.precision)?Math.max(y(r.modelValue),v):(v>r.precision,r.precision)}),p=e.computed(()=>r.controls&&r.controlsPosition==="right"),h=St(),g=Yt(),m=e.computed(()=>{if(i.userInput!==null)return i.userInput;let v=i.currentValue;if(wt(v))return"";if(be(v)){if(Number.isNaN(v))return"";$t(r.precision)||(v=v.toFixed(r.precision))}return v}),b=(v,O)=>{if($t(O)&&(O=d.value),O===0)return Math.round(v);let D=String(v);const z=D.indexOf(".");if(z===-1||!D.replace(".","").split("")[z+O])return v;const N=D.length;return D.charAt(N-1)==="5"&&(D=`${D.slice(0,Math.max(0,N-1))}6`),Number.parseFloat(Number(D).toFixed(O))},y=v=>{if(wt(v))return 0;const O=v.toString(),D=O.indexOf(".");let z=0;return D!==-1&&(z=O.length-D-1),z},C=(v,O=1)=>be(v)?b(v+r.step*O):i.currentValue,k=()=>{if(r.readonly||g.value||u.value)return;const v=Number(m.value)||0,O=C(v);S(O),o(qt,i.currentValue)},w=()=>{if(r.readonly||g.value||f.value)return;const v=Number(m.value)||0,O=C(v,-1);S(O),o(qt,i.currentValue)},E=(v,O)=>{const{max:D,min:z,step:$,precision:R,stepStrictly:N,valueOnClear:A}=r;DD||xD?D:z,O&&o(Ie,x)),x},S=(v,O=!0)=>{var D;const z=i.currentValue,$=E(v);if(!O){o(Ie,$);return}z!==$&&(i.userInput=null,o(Ie,$),o(at,$,z),r.validateEvent&&((D=c==null?void 0:c.validate)==null||D.call(c,"change").catch(R=>void 0)),i.currentValue=$)},_=v=>{i.userInput=v;const O=v===""?null:Number(v);o(qt,O),S(O,!1)},B=v=>{const O=v!==""?Number(v):"";(be(O)&&!Number.isNaN(O)||v==="")&&S(O),i.userInput=null},M=()=>{var v,O;(O=(v=s.value)==null?void 0:v.focus)==null||O.call(v)},P=()=>{var v,O;(O=(v=s.value)==null?void 0:v.blur)==null||O.call(v)},T=v=>{o("focus",v)},I=v=>{var O;o("blur",v),r.validateEvent&&((O=c==null?void 0:c.validate)==null||O.call(c,"blur").catch(D=>void 0))};return e.watch(()=>r.modelValue,v=>{const O=E(i.userInput),D=E(v,!0);!be(O)&&(!O||O!==D)&&(i.currentValue=D,i.userInput=null)},{immediate:!0}),e.onMounted(()=>{var v;const{min:O,max:D,modelValue:z}=r,$=(v=s.value)==null?void 0:v.input;if($.setAttribute("role","spinbutton"),Number.isFinite(D)?$.setAttribute("aria-valuemax",String(D)):$.removeAttribute("aria-valuemax"),Number.isFinite(O)?$.setAttribute("aria-valuemin",String(O)):$.removeAttribute("aria-valuemin"),$.setAttribute("aria-valuenow",i.currentValue||i.currentValue===0?String(i.currentValue):""),$.setAttribute("aria-disabled",String(g.value)),!be(z)&&z!=null){let R=Number(z);Number.isNaN(R)&&(R=null),o(Ie,R)}}),e.onUpdated(()=>{var v,O;const D=(v=s.value)==null?void 0:v.input;D==null||D.setAttribute("aria-valuenow",`${(O=i.currentValue)!=null?O:""}`)}),n({focus:M,blur:P}),(v,O)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(a).b(),e.unref(a).m(e.unref(h)),e.unref(a).is("disabled",e.unref(g)),e.unref(a).is("without-controls",!v.controls),e.unref(a).is("controls-right",e.unref(p))]),onDragstart:O[1]||(O[1]=e.withModifiers(()=>{},["prevent"]))},[v.controls?e.withDirectives((e.openBlock(),e.createElementBlock("span",{key:0,role:"button","aria-label":e.unref(l)("el.inputNumber.decrease"),class:e.normalizeClass([e.unref(a).e("decrease"),e.unref(a).is("disabled",e.unref(f))]),onKeydown:e.withKeys(w,["enter"])},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.unref(p)?(e.openBlock(),e.createBlock(e.unref(qo),{key:0})):(e.openBlock(),e.createBlock(e.unref($D),{key:1}))]),_:1})],42,$j)),[[e.unref(Sa),w]]):e.createCommentVNode("v-if",!0),v.controls?e.withDirectives((e.openBlock(),e.createElementBlock("span",{key:1,role:"button","aria-label":e.unref(l)("el.inputNumber.increase"),class:e.normalizeClass([e.unref(a).e("increase"),e.unref(a).is("disabled",e.unref(u))]),onKeydown:e.withKeys(k,["enter"])},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.unref(p)?(e.openBlock(),e.createBlock(e.unref(Ts),{key:0})):(e.openBlock(),e.createBlock(e.unref(Ny),{key:1}))]),_:1})],42,Tj)),[[e.unref(Sa),k]]):e.createCommentVNode("v-if",!0),e.createVNode(e.unref(Ft),{id:v.id,ref_key:"input",ref:s,type:"number",step:v.step,"model-value":e.unref(m),placeholder:v.placeholder,readonly:v.readonly,disabled:e.unref(g),size:e.unref(h),max:v.max,min:v.min,name:v.name,label:v.label,"validate-event":!1,onWheel:O[0]||(O[0]=e.withModifiers(()=>{},["prevent"])),onKeydown:[e.withKeys(e.withModifiers(k,["prevent"]),["up"]),e.withKeys(e.withModifiers(w,["prevent"]),["down"])],onBlur:I,onFocus:T,onInput:_,onChange:B},null,8,["id","step","model-value","placeholder","readonly","disabled","size","max","min","name","label","onKeydown"])],34))}});var Mj=se(Vj,[["__file","input-number.vue"]]);const ep=Me(Mj),sS=le({type:{type:String,values:["primary","success","warning","info","danger","default"],default:"default"},underline:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},href:{type:String,default:""},icon:{type:ot}}),iS={click:t=>t instanceof MouseEvent},Ij=["href"],Pj=e.defineComponent({name:"ElLink"}),Rj=e.defineComponent({...Pj,props:sS,emits:iS,setup(t,{emit:n}){const o=t,r=Q("link"),l=e.computed(()=>[r.b(),r.m(o.type),r.is("disabled",o.disabled),r.is("underline",o.underline&&!o.disabled)]);function a(s){o.disabled||n("click",s)}return(s,i)=>(e.openBlock(),e.createElementBlock("a",{class:e.normalizeClass(e.unref(l)),href:s.disabled||!s.href?void 0:s.href,onClick:a},[s.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.icon)))]),_:1})):e.createCommentVNode("v-if",!0),s.$slots.default?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(r).e("inner"))},[e.renderSlot(s.$slots,"default")],2)):e.createCommentVNode("v-if",!0),s.$slots.icon?e.renderSlot(s.$slots,"icon",{key:2}):e.createCommentVNode("v-if",!0)],10,Ij))}});var Oj=se(Rj,[["__file","link.vue"]]);const cS=Me(Oj);class Aj{constructor(n,o){this.parent=n,this.domNode=o,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(n){n===this.subMenuItems.length?n=0:n<0&&(n=this.subMenuItems.length-1),this.subMenuItems[n].focus(),this.subIndex=n}addListeners(){const n=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,o=>{o.addEventListener("keydown",r=>{let l=!1;switch(r.code){case pe.down:{this.gotoSubIndex(this.subIndex+1),l=!0;break}case pe.up:{this.gotoSubIndex(this.subIndex-1),l=!0;break}case pe.tab:{ja(n,"mouseleave");break}case pe.enter:case pe.space:{l=!0,r.currentTarget.click();break}}return l&&(r.preventDefault(),r.stopPropagation()),!1})})}}var zj=Aj;class Dj{constructor(n,o){this.domNode=n,this.submenu=null,this.submenu=null,this.init(o)}init(n){this.domNode.setAttribute("tabindex","0");const o=this.domNode.querySelector(`.${n}-menu`);o&&(this.submenu=new zj(this,o)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",n=>{let o=!1;switch(n.code){case pe.down:{ja(n.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),o=!0;break}case pe.up:{ja(n.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),o=!0;break}case pe.tab:{ja(n.currentTarget,"mouseleave");break}case pe.enter:case pe.space:{o=!0,n.currentTarget.click();break}}o&&n.preventDefault()})}}var Lj=Dj;class xj{constructor(n,o){this.domNode=n,this.init(o)}init(n){const o=this.domNode.childNodes;Array.from(o).forEach(r=>{r.nodeType===1&&new Lj(r,n)})}}var Fj=xj;const Hj=e.defineComponent({name:"ElMenuCollapseTransition",setup(){const t=Q("menu");return{listeners:{onBeforeEnter:o=>o.style.opacity="0.2",onEnter(o,r){so(o,`${t.namespace.value}-opacity-transition`),o.style.opacity="1",r()},onAfterEnter(o){un(o,`${t.namespace.value}-opacity-transition`),o.style.opacity=""},onBeforeLeave(o){o.dataset||(o.dataset={}),Fn(o,t.m("collapse"))?(un(o,t.m("collapse")),o.dataset.oldOverflow=o.style.overflow,o.dataset.scrollWidth=o.clientWidth.toString(),so(o,t.m("collapse"))):(so(o,t.m("collapse")),o.dataset.oldOverflow=o.style.overflow,o.dataset.scrollWidth=o.clientWidth.toString(),un(o,t.m("collapse"))),o.style.width=`${o.scrollWidth}px`,o.style.overflow="hidden"},onLeave(o){so(o,"horizontal-collapse-transition"),o.style.width=`${o.dataset.scrollWidth}px`}}}}});function Kj(t,n,o,r,l,a){return e.openBlock(),e.createBlock(e.Transition,e.mergeProps({mode:"out-in"},t.listeners),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},16)}var Wj=se(Hj,[["render",Kj],["__file","menu-collapse-transition.vue"]]);function dS(t,n){const o=e.computed(()=>{let l=t.parent;const a=[n.value];for(;l.type.name!=="ElMenu";)l.props.index&&a.unshift(l.props.index),l=l.parent;return a});return{parentMenu:e.computed(()=>{let l=t.parent;for(;l&&!["ElMenu","ElSubMenu"].includes(l.type.name);)l=l.parent;return l}),indexPath:o}}function jj(t){return e.computed(()=>{const o=t.backgroundColor;return o?new bw(o).shade(20).toString():""})}const fS=(t,n)=>{const o=Q("menu");return e.computed(()=>o.cssVarBlock({"text-color":t.textColor||"","hover-text-color":t.textColor||"","bg-color":t.backgroundColor||"","hover-bg-color":jj(t).value||"","active-color":t.activeTextColor||"",level:`${n}`}))},uS=le({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:ot},expandOpenIcon:{type:ot},collapseCloseIcon:{type:ot},collapseOpenIcon:{type:ot}}),zi="ElSubMenu";var tp=e.defineComponent({name:zi,props:uS,setup(t,{slots:n,expose:o}){jn({from:"popper-append-to-body",replacement:"teleported",scope:zi,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},e.computed(()=>t.popperAppendToBody!==void 0));const r=e.getCurrentInstance(),{indexPath:l,parentMenu:a}=dS(r,e.computed(()=>t.index)),s=Q("menu"),i=Q("sub-menu"),c=e.inject("rootMenu");c||vt(zi,"can not inject root menu");const f=e.inject(`subMenu:${a.value.uid}`);f||vt(zi,"can not inject sub menu");const u=e.ref({}),d=e.ref({});let p;const h=e.ref(!1),g=e.ref(),m=e.ref(null),b=e.computed(()=>B.value==="horizontal"&&C.value?"bottom-start":"right-start"),y=e.computed(()=>B.value==="horizontal"&&C.value||B.value==="vertical"&&!c.props.collapse?t.expandCloseIcon&&t.expandOpenIcon?S.value?t.expandOpenIcon:t.expandCloseIcon:qo:t.collapseCloseIcon&&t.collapseOpenIcon?S.value?t.collapseOpenIcon:t.collapseCloseIcon:on),C=e.computed(()=>f.level===0),k=e.computed(()=>{var z;const $=(z=t.teleported)!=null?z:t.popperAppendToBody;return $===void 0?C.value:$}),w=e.computed(()=>c.props.collapse?`${s.namespace.value}-zoom-in-left`:`${s.namespace.value}-zoom-in-top`),E=e.computed(()=>B.value==="horizontal"&&C.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"]),S=e.computed(()=>c.openedMenus.includes(t.index)),_=e.computed(()=>{let z=!1;return Object.values(u.value).forEach($=>{$.active&&(z=!0)}),Object.values(d.value).forEach($=>{$.active&&(z=!0)}),z}),B=e.computed(()=>c.props.mode),M=e.reactive({index:t.index,indexPath:l,active:_}),P=fS(c.props,f.level+1),T=()=>{var z,$,R;return(R=($=(z=m.value)==null?void 0:z.popperRef)==null?void 0:$.popperInstanceRef)==null?void 0:R.destroy()},I=z=>{z||T()},v=()=>{c.props.menuTrigger==="hover"&&c.props.mode==="horizontal"||c.props.collapse&&c.props.mode==="vertical"||t.disabled||c.handleSubMenuClick({index:t.index,indexPath:l.value,active:_.value})},O=(z,$=t.showTimeout)=>{var R;z.type!=="focus"&&(c.props.menuTrigger==="click"&&c.props.mode==="horizontal"||!c.props.collapse&&c.props.mode==="vertical"||t.disabled||(f.mouseInChild.value=!0,p==null||p(),{stop:p}=pr(()=>{c.openMenu(t.index,l.value)},$),k.value&&((R=a.value.vnode.el)==null||R.dispatchEvent(new MouseEvent("mouseenter")))))},D=(z=!1)=>{var $,R;c.props.menuTrigger==="click"&&c.props.mode==="horizontal"||!c.props.collapse&&c.props.mode==="vertical"||(p==null||p(),f.mouseInChild.value=!1,{stop:p}=pr(()=>!h.value&&c.closeMenu(t.index,l.value),t.hideTimeout),k.value&&z&&(($=r.parent)==null?void 0:$.type.name)==="ElSubMenu"&&((R=f.handleMouseleave)==null||R.call(f,!0)))};e.watch(()=>c.props.collapse,z=>I(Boolean(z)));{const z=R=>{d.value[R.index]=R},$=R=>{delete d.value[R.index]};e.provide(`subMenu:${r.uid}`,{addSubMenu:z,removeSubMenu:$,handleMouseleave:D,mouseInChild:h,level:f.level+1})}return o({opened:S}),e.onMounted(()=>{c.addSubMenu(M),f.addSubMenu(M)}),e.onBeforeUnmount(()=>{f.removeSubMenu(M),c.removeSubMenu(M)}),()=>{var z;const $=[(z=n.title)==null?void 0:z.call(n),e.h(fe,{class:i.e("icon-arrow"),style:{transform:S.value?t.expandCloseIcon&&t.expandOpenIcon||t.collapseCloseIcon&&t.collapseOpenIcon&&c.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>De(y.value)?e.h(r.appContext.components[y.value]):e.h(y.value)})],R=c.isMenuPopup?e.h(Zt,{ref:m,visible:S.value,effect:"light",pure:!0,offset:t.popperOffset,showArrow:!1,persistent:!0,popperClass:t.popperClass,placement:b.value,teleported:k.value,fallbackPlacements:E.value,transition:w.value,gpuAcceleration:!1},{content:()=>{var N;return e.h("div",{class:[s.m(B.value),s.m("popup-container"),t.popperClass],onMouseenter:A=>O(A,100),onMouseleave:()=>D(!0),onFocus:A=>O(A,100)},[e.h("ul",{class:[s.b(),s.m("popup"),s.m(`popup-${b.value}`)],style:P.value},[(N=n.default)==null?void 0:N.call(n)])])},default:()=>e.h("div",{class:i.e("title"),onClick:v},$)}):e.h(e.Fragment,{},[e.h("div",{class:i.e("title"),ref:g,onClick:v},$),e.h(Vi,{},{default:()=>{var N;return e.withDirectives(e.h("ul",{role:"menu",class:[s.b(),s.m("inline")],style:P.value},[(N=n.default)==null?void 0:N.call(n)]),[[e.vShow,S.value]])}})]);return e.h("li",{class:[i.b(),i.is("active",_.value),i.is("opened",S.value),i.is("disabled",t.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:S.value,onMouseenter:O,onMouseleave:()=>D(!0),onFocus:O},[R])}}});const pS=le({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:W(Array),default:()=>ut([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),np=t=>Array.isArray(t)&&t.every(n=>De(n)),mS={close:(t,n)=>De(t)&&np(n),open:(t,n)=>De(t)&&np(n),select:(t,n,o,r)=>De(t)&&np(n)&&nt(o)&&(r===void 0||r instanceof Promise)};var Uj=e.defineComponent({name:"ElMenu",props:pS,emits:mS,setup(t,{emit:n,slots:o,expose:r}){const l=e.getCurrentInstance(),a=l.appContext.config.globalProperties.$router,s=e.ref(),i=Q("menu"),c=Q("sub-menu"),f=e.ref(-1),u=e.ref(t.defaultOpeneds&&!t.collapse?t.defaultOpeneds.slice(0):[]),d=e.ref(t.defaultActive),p=e.ref({}),h=e.ref({}),g=e.computed(()=>t.mode==="horizontal"||t.mode==="vertical"&&t.collapse),m=()=>{const T=d.value&&p.value[d.value];if(!T||t.mode==="horizontal"||t.collapse)return;T.indexPath.forEach(v=>{const O=h.value[v];O&&b(v,O.indexPath)})},b=(T,I)=>{u.value.includes(T)||(t.uniqueOpened&&(u.value=u.value.filter(v=>I.includes(v))),u.value.push(T),n("open",T,I))},y=T=>{const I=u.value.indexOf(T);I!==-1&&u.value.splice(I,1)},C=(T,I)=>{y(T),n("close",T,I)},k=({index:T,indexPath:I})=>{u.value.includes(T)?C(T,I):b(T,I)},w=T=>{(t.mode==="horizontal"||t.collapse)&&(u.value=[]);const{index:I,indexPath:v}=T;if(!(wt(I)||wt(v)))if(t.router&&a){const O=T.route||I,D=a.push(O).then(z=>(z||(d.value=I),z));n("select",I,v,{index:I,indexPath:v,route:O},D)}else d.value=I,n("select",I,v,{index:I,indexPath:v})},E=T=>{const I=p.value,v=I[T]||d.value&&I[d.value]||I[t.defaultActive];v?d.value=v.index:d.value=T},S=()=>{var T,I;if(!s.value)return-1;const v=Array.from((I=(T=s.value)==null?void 0:T.childNodes)!=null?I:[]).filter(A=>A.nodeName!=="#comment"&&(A.nodeName!=="#text"||A.nodeValue)),O=64,D=Number.parseInt(getComputedStyle(s.value).paddingLeft,10),z=Number.parseInt(getComputedStyle(s.value).paddingRight,10),$=s.value.clientWidth-D-z;let R=0,N=0;return v.forEach((A,x)=>{R+=A.offsetWidth||0,R<=$-O&&(N=x+1)}),N===v.length?-1:N},_=(T,I=33.34)=>{let v;return()=>{v&&clearTimeout(v),v=setTimeout(()=>{T()},I)}};let B=!0;const M=()=>{const T=()=>{f.value=-1,e.nextTick(()=>{f.value=S()})};B?T():_(T)(),B=!1};e.watch(()=>t.defaultActive,T=>{p.value[T]||(d.value=""),E(T)}),e.watch(()=>t.collapse,T=>{T&&(u.value=[])}),e.watch(p.value,m);let P;e.watchEffect(()=>{t.mode==="horizontal"&&t.ellipsis?P=jt(s,M).stop:P==null||P()});{const T=D=>{h.value[D.index]=D},I=D=>{delete h.value[D.index]},v=D=>{p.value[D.index]=D},O=D=>{delete p.value[D.index]};e.provide("rootMenu",e.reactive({props:t,openedMenus:u,items:p,subMenus:h,activeIndex:d,isMenuPopup:g,addMenuItem:v,removeMenuItem:O,addSubMenu:T,removeSubMenu:I,openMenu:b,closeMenu:C,handleMenuItemClick:w,handleSubMenuClick:k})),e.provide(`subMenu:${l.uid}`,{addSubMenu:T,removeSubMenu:I,mouseInChild:e.ref(!1),level:0})}return e.onMounted(()=>{t.mode==="horizontal"&&new Fj(l.vnode.el,i.namespace.value)}),r({open:I=>{const{indexPath:v}=h.value[I];v.forEach(O=>b(O,v))},close:y,handleResize:M}),()=>{var T,I;let v=(I=(T=o.default)==null?void 0:T.call(o))!=null?I:[];const O=[];if(t.mode==="horizontal"&&s.value){const $=Er(v),R=f.value===-1?$:$.slice(0,f.value),N=f.value===-1?[]:$.slice(f.value);(N==null?void 0:N.length)&&t.ellipsis&&(v=R,O.push(e.h(tp,{index:"sub-menu-more",class:c.e("hide-arrow")},{title:()=>e.h(fe,{class:c.e("icon-more")},{default:()=>e.h(VD)}),default:()=>N})))}const D=fS(t,0),z=e.h("ul",{key:String(t.collapse),role:"menubar",ref:s,style:D.value,class:{[i.b()]:!0,[i.m(t.mode)]:!0,[i.m("collapse")]:t.collapse}},[...v,...O]);return t.collapseTransition&&t.mode==="vertical"?e.h(Wj,()=>z):z}}});const hS=le({index:{type:W([String,null]),default:null},route:{type:W([String,Object])},disabled:Boolean}),gS={click:t=>De(t.index)&&Array.isArray(t.indexPath)},op="ElMenuItem",Gj=e.defineComponent({name:op,components:{ElTooltip:Zt},props:hS,emits:gS,setup(t,{emit:n}){const o=e.getCurrentInstance(),r=e.inject("rootMenu"),l=Q("menu"),a=Q("menu-item");r||vt(op,"can not inject root menu");const{parentMenu:s,indexPath:i}=dS(o,e.toRef(t,"index")),c=e.inject(`subMenu:${s.value.uid}`);c||vt(op,"can not inject sub menu");const f=e.computed(()=>t.index===r.activeIndex),u=e.reactive({index:t.index,indexPath:i,active:f}),d=()=>{t.disabled||(r.handleMenuItemClick({index:t.index,indexPath:i.value,route:t.route}),n("click",u))};return e.onMounted(()=>{c.addSubMenu(u),r.addMenuItem(u)}),e.onBeforeUnmount(()=>{c.removeSubMenu(u),r.removeMenuItem(u)}),{parentMenu:s,rootMenu:r,active:f,nsMenu:l,nsMenuItem:a,handleClick:d}}});function qj(t,n,o,r,l,a){const s=e.resolveComponent("el-tooltip");return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass([t.nsMenuItem.b(),t.nsMenuItem.is("active",t.active),t.nsMenuItem.is("disabled",t.disabled)]),role:"menuitem",tabindex:"-1",onClick:n[0]||(n[0]=(...i)=>t.handleClick&&t.handleClick(...i))},[t.parentMenu.type.name==="ElMenu"&&t.rootMenu.props.collapse&&t.$slots.title?(e.openBlock(),e.createBlock(s,{key:0,effect:t.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:e.withCtx(()=>[e.renderSlot(t.$slots,"title")]),default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(t.nsMenu.be("tooltip","trigger"))},[e.renderSlot(t.$slots,"default")],2)]),_:3},8,["effect"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.renderSlot(t.$slots,"default"),e.renderSlot(t.$slots,"title")],64))],2)}var yS=se(Gj,[["render",qj],["__file","menu-item.vue"]]);const bS={title:String},Yj="ElMenuItemGroup",Xj=e.defineComponent({name:Yj,props:bS,setup(){return{ns:Q("menu-item-group")}}});function Zj(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(t.ns.b())},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("title"))},[t.$slots.title?e.renderSlot(t.$slots,"title",{key:1}):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.title),1)],64))],2),e.createElementVNode("ul",null,[e.renderSlot(t.$slots,"default")])],2)}var CS=se(Xj,[["render",Zj],["__file","menu-item-group.vue"]]);const wS=Me(Uj,{MenuItem:yS,MenuItemGroup:CS,SubMenu:tp}),kS=ht(yS),SS=ht(CS),ES=ht(tp),NS=le({icon:{type:ot,default:()=>eD},title:String,content:{type:String,default:""}}),_S={back:()=>!0},Jj=["aria-label"],Qj=e.defineComponent({name:"ElPageHeader"}),eU=e.defineComponent({...Qj,props:NS,emits:_S,setup(t,{emit:n}){const o=e.useSlots(),{t:r}=Ke(),l=Q("page-header"),a=e.computed(()=>[l.b(),{[l.m("has-breadcrumb")]:!!o.breadcrumb,[l.m("has-extra")]:!!o.extra,[l.is("contentful")]:!!o.default}]);function s(){n("back")}return(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(a))},[i.$slots.breadcrumb?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("breadcrumb"))},[e.renderSlot(i.$slots,"breadcrumb")],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("header"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("left"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("back")),role:"button",tabindex:"0",onClick:s},[i.icon||i.$slots.icon?(e.openBlock(),e.createElementBlock("div",{key:0,"aria-label":i.title||e.unref(r)("el.pageHeader.title"),class:e.normalizeClass(e.unref(l).e("icon"))},[e.renderSlot(i.$slots,"icon",{},()=>[i.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.icon)))]),_:1})):e.createCommentVNode("v-if",!0)])],10,Jj)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("title"))},[e.renderSlot(i.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(i.title||e.unref(r)("el.pageHeader.title")),1)])],2)],2),e.createVNode(e.unref(Uu),{direction:"vertical"}),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("content"))},[e.renderSlot(i.$slots,"content",{},()=>[e.createTextVNode(e.toDisplayString(i.content),1)])],2)],2),i.$slots.extra?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("extra"))},[e.renderSlot(i.$slots,"extra")],2)):e.createCommentVNode("v-if",!0)],2),i.$slots.default?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).e("main"))},[e.renderSlot(i.$slots,"default")],2)):e.createCommentVNode("v-if",!0)],2))}});var tU=se(eU,[["__file","page-header.vue"]]);const BS=Me(tU),rp=Symbol("elPaginationKey"),nU=le({disabled:Boolean,currentPage:{type:Number,default:1},prevText:{type:String},prevIcon:{type:ot}}),oU={click:t=>t instanceof MouseEvent},rU=["disabled","aria-label","aria-disabled"],lU={key:0},aU=e.defineComponent({name:"ElPaginationPrev"}),sU=e.defineComponent({...aU,props:nU,emits:oU,setup(t){const n=t,{t:o}=Ke(),r=e.computed(()=>n.disabled||n.currentPage<=1);return(l,a)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:"btn-prev",disabled:e.unref(r),"aria-label":l.prevText||e.unref(o)("el.pagination.prev"),"aria-disabled":e.unref(r),onClick:a[0]||(a[0]=s=>l.$emit("click",s))},[l.prevText?(e.openBlock(),e.createElementBlock("span",lU,e.toDisplayString(l.prevText),1)):(e.openBlock(),e.createBlock(e.unref(fe),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.prevIcon)))]),_:1}))],8,rU))}});var iU=se(sU,[["__file","prev.vue"]]);const cU=le({disabled:Boolean,currentPage:{type:Number,default:1},pageCount:{type:Number,default:50},nextText:{type:String},nextIcon:{type:ot}}),dU=["disabled","aria-label","aria-disabled"],fU={key:0},uU=e.defineComponent({name:"ElPaginationNext"}),pU=e.defineComponent({...uU,props:cU,emits:["click"],setup(t){const n=t,{t:o}=Ke(),r=e.computed(()=>n.disabled||n.currentPage===n.pageCount||n.pageCount===0);return(l,a)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:"btn-next",disabled:e.unref(r),"aria-label":l.nextText||e.unref(o)("el.pagination.next"),"aria-disabled":e.unref(r),onClick:a[0]||(a[0]=s=>l.$emit("click",s))},[l.nextText?(e.openBlock(),e.createElementBlock("span",fU,e.toDisplayString(l.nextText),1)):(e.openBlock(),e.createBlock(e.unref(fe),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.nextIcon)))]),_:1}))],8,dU))}});var mU=se(pU,[["__file","next.vue"]]);const lp=Symbol("ElSelectGroup"),wl=Symbol("ElSelect");function hU(t,n){const o=e.inject(wl),r=e.inject(lp,{disabled:!1}),l=e.computed(()=>nt(t.value)),a=e.computed(()=>o.props.multiple?d(o.props.modelValue,t.value):p(t.value,o.props.modelValue)),s=e.computed(()=>{if(o.props.multiple){const m=o.props.modelValue||[];return!a.value&&m.length>=o.props.multipleLimit&&o.props.multipleLimit>0}else return!1}),i=e.computed(()=>t.label||(l.value?"":t.value)),c=e.computed(()=>t.value||t.label||""),f=e.computed(()=>t.disabled||n.groupDisabled||s.value),u=e.getCurrentInstance(),d=(m=[],b)=>{if(l.value){const y=o.props.valueKey;return m&&m.some(C=>e.toRaw(ct(C,y))===ct(b,y))}else return m&&m.includes(b)},p=(m,b)=>{if(l.value){const{valueKey:y}=o.props;return ct(m,y)===ct(b,y)}else return m===b},h=()=>{!t.disabled&&!r.disabled&&(o.hoverIndex=o.optionsArray.indexOf(u.proxy))};e.watch(()=>i.value,()=>{!t.created&&!o.props.remote&&o.setSelected()}),e.watch(()=>t.value,(m,b)=>{const{remote:y,valueKey:C}=o.props;if(Object.is(m,b)||(o.onOptionDestroy(b,u.proxy),o.onOptionCreate(u.proxy)),!t.created&&!y){if(C&&nt(m)&&nt(b)&&m[C]===b[C])return;o.setSelected()}}),e.watch(()=>r.disabled,()=>{n.groupDisabled=r.disabled},{immediate:!0});const{queryChange:g}=e.toRaw(o);return e.watch(g,m=>{const{query:b}=e.unref(m),y=new RegExp(yy(b),"i");n.visible=y.test(i.value)||t.created,n.visible||o.filteredOptionsCount--},{immediate:!0}),{select:o,currentLabel:i,currentValue:c,itemSelected:a,isDisabled:f,hoverItem:h}}const gU=e.defineComponent({name:"ElOption",componentName:"ElOption",props:{value:{required:!0,type:[String,Number,Boolean,Object]},label:[String,Number],created:Boolean,disabled:Boolean},setup(t){const n=Q("select"),o=rn(),r=e.computed(()=>[n.be("dropdown","item"),n.is("disabled",e.unref(i)),{selected:e.unref(s),hover:e.unref(d)}]),l=e.reactive({index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}),{currentLabel:a,itemSelected:s,isDisabled:i,select:c,hoverItem:f}=hU(t,l),{visible:u,hover:d}=e.toRefs(l),p=e.getCurrentInstance().proxy;c.onOptionCreate(p),e.onBeforeUnmount(()=>{const g=p.value,{selected:m}=c,y=(c.props.multiple?m:[m]).some(C=>C.value===p.value);e.nextTick(()=>{c.cachedOptions.get(g)===p&&!y&&c.cachedOptions.delete(g)}),c.onOptionDestroy(g,p)});function h(){t.disabled!==!0&&l.groupDisabled!==!0&&c.handleOptionSelect(p)}return{ns:n,id:o,containerKls:r,currentLabel:a,itemSelected:s,isDisabled:i,select:c,hoverItem:f,visible:u,hover:d,selectOptionClick:h,states:l}}}),yU=["id","aria-disabled","aria-selected"];function bU(t,n,o,r,l,a){return e.withDirectives((e.openBlock(),e.createElementBlock("li",{id:t.id,class:e.normalizeClass(t.containerKls),role:"option","aria-disabled":t.isDisabled||void 0,"aria-selected":t.itemSelected,onMouseenter:n[0]||(n[0]=(...s)=>t.hoverItem&&t.hoverItem(...s)),onClick:n[1]||(n[1]=e.withModifiers((...s)=>t.selectOptionClick&&t.selectOptionClick(...s),["stop"]))},[e.renderSlot(t.$slots,"default",{},()=>[e.createElementVNode("span",null,e.toDisplayString(t.currentLabel),1)])],42,yU)),[[e.vShow,t.visible]])}var ap=se(gU,[["render",bU],["__file","option.vue"]]);const CU=e.defineComponent({name:"ElSelectDropdown",componentName:"ElSelectDropdown",setup(){const t=e.inject(wl),n=Q("select"),o=e.computed(()=>t.props.popperClass),r=e.computed(()=>t.props.multiple),l=e.computed(()=>t.props.fitInputWidth),a=e.ref("");function s(){var i;a.value=`${(i=t.selectWrapper)==null?void 0:i.offsetWidth}px`}return e.onMounted(()=>{s(),jt(t.selectWrapper,s)}),{ns:n,minWidth:a,popperClass:o,isMultiple:r,isFitInputWidth:l}}});function wU(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.ns.b("dropdown"),t.ns.is("multiple",t.isMultiple),t.popperClass]),style:e.normalizeStyle({[t.isFitInputWidth?"width":"minWidth"]:t.minWidth})},[t.$slots.header?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(t.ns.be("dropdown","header"))},[e.renderSlot(t.$slots,"header")],2)):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"default"),t.$slots.footer?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(t.ns.be("dropdown","footer"))},[e.renderSlot(t.$slots,"footer")],2)):e.createCommentVNode("v-if",!0)],6)}var kU=se(CU,[["render",wU],["__file","select-dropdown.vue"]]);function SU(t){const{t:n}=Ke();return e.reactive({options:new Map,cachedOptions:new Map,disabledOptions:new Map,createdLabel:null,createdSelected:!1,selected:t.multiple?[]:{},inputLength:20,inputWidth:0,optionsCount:0,filteredOptionsCount:0,visible:!1,selectedLabel:"",hoverIndex:-1,query:"",previousQuery:null,inputHovering:!1,cachedPlaceHolder:"",currentPlaceholder:n("el.select.placeholder"),menuVisibleOnFocus:!1,isOnComposition:!1,prefixWidth:11,mouseEnter:!1,focused:!1})}const EU=(t,n,o)=>{const{t:r}=Ke(),l=Q("select");jn({from:"suffixTransition",replacement:"override style scheme",version:"2.3.0",scope:"props",ref:"https://element-plus.org/en-US/component/select.html#select-attributes"},e.computed(()=>t.suffixTransition===!1));const a=e.ref(null),s=e.ref(null),i=e.ref(null),c=e.ref(null),f=e.ref(null),u=e.ref(null),d=e.ref(null),p=e.ref(null),h=e.ref(),g=e.shallowRef({query:""}),m=e.shallowRef(""),b=e.ref([]);let y=0;const{form:C,formItem:k}=Xt(),w=e.computed(()=>!t.filterable||t.multiple||!n.visible),E=e.computed(()=>t.disabled||(C==null?void 0:C.disabled)),S=e.computed(()=>{const X=t.multiple?Array.isArray(t.modelValue)&&t.modelValue.length>0:t.modelValue!==void 0&&t.modelValue!==null&&t.modelValue!=="";return t.clearable&&!E.value&&n.inputHovering&&X}),_=e.computed(()=>t.remote&&t.filterable&&!t.remoteShowSuffix?"":t.suffixIcon),B=e.computed(()=>l.is("reverse",_.value&&n.visible&&t.suffixTransition)),M=e.computed(()=>(C==null?void 0:C.statusIcon)&&(k==null?void 0:k.validateState)&&Gd[k==null?void 0:k.validateState]),P=e.computed(()=>t.remote?300:0),T=e.computed(()=>t.loading?t.loadingText||r("el.select.loading"):t.remote&&n.query===""&&n.options.size===0?!1:t.filterable&&n.query&&n.options.size>0&&n.filteredOptionsCount===0?t.noMatchText||r("el.select.noMatch"):n.options.size===0?t.noDataText||r("el.select.noData"):null),I=e.computed(()=>{const X=Array.from(n.options.values()),de=[];return b.value.forEach(Se=>{const We=X.findIndex(Rt=>Rt.currentLabel===Se);We>-1&&de.push(X[We])}),de.length>=X.length?de:X}),v=e.computed(()=>Array.from(n.cachedOptions.values())),O=e.computed(()=>{const X=I.value.filter(de=>!de.created).some(de=>de.currentLabel===n.query);return t.filterable&&t.allowCreate&&n.query!==""&&!X}),D=St(),z=e.computed(()=>["small"].includes(D.value)?"small":"default"),$=e.computed({get(){return n.visible&&T.value!==!1},set(X){n.visible=X}});e.watch([()=>E.value,()=>D.value,()=>C==null?void 0:C.size],()=>{e.nextTick(()=>{R()})}),e.watch(()=>t.placeholder,X=>{n.cachedPlaceHolder=n.currentPlaceholder=X,t.multiple&&Array.isArray(t.modelValue)&&t.modelValue.length>0&&(n.currentPlaceholder="")}),e.watch(()=>t.modelValue,(X,de)=>{t.multiple&&(R(),X&&X.length>0||s.value&&n.query!==""?n.currentPlaceholder="":n.currentPlaceholder=n.cachedPlaceHolder,t.filterable&&!t.reserveKeyword&&(n.query="",N(n.query))),H(),t.filterable&&!t.multiple&&(n.inputLength=20),!tn(X,de)&&t.validateEvent&&(k==null||k.validate("change").catch(Se=>void 0))},{flush:"post",deep:!0}),e.watch(()=>n.visible,X=>{var de,Se,We,Rt,ae;X?((Se=(de=c.value)==null?void 0:de.updatePopper)==null||Se.call(de),t.filterable&&(n.filteredOptionsCount=n.optionsCount,n.query=t.remote?"":n.selectedLabel,(Rt=(We=i.value)==null?void 0:We.focus)==null||Rt.call(We),t.multiple?(ae=s.value)==null||ae.focus():n.selectedLabel&&(n.currentPlaceholder=`${n.selectedLabel}`,n.selectedLabel=""),N(n.query),!t.multiple&&!t.remote&&(g.value.query="",e.triggerRef(g),e.triggerRef(m)))):(t.filterable&&(qe(t.filterMethod)&&t.filterMethod(""),qe(t.remoteMethod)&&t.remoteMethod("")),n.query="",n.previousQuery=null,n.selectedLabel="",n.inputLength=20,n.menuVisibleOnFocus=!1,q(),e.nextTick(()=>{s.value&&s.value.value===""&&n.selected.length===0&&(n.currentPlaceholder=n.cachedPlaceHolder)}),t.multiple||(n.selected&&(t.filterable&&t.allowCreate&&n.createdSelected&&n.createdLabel?n.selectedLabel=n.createdLabel:n.selectedLabel=n.selected.currentLabel,t.filterable&&(n.query=n.selectedLabel)),t.filterable&&(n.currentPlaceholder=n.cachedPlaceHolder))),o.emit("visible-change",X)}),e.watch(()=>n.options.entries(),()=>{var X,de,Se;if(!He)return;(de=(X=c.value)==null?void 0:X.updatePopper)==null||de.call(X),t.multiple&&R();const We=((Se=d.value)==null?void 0:Se.querySelectorAll("input"))||[];(!t.filterable&&!t.defaultFirstOption&&!$t(t.modelValue)||!Array.from(We).includes(document.activeElement))&&H(),t.defaultFirstOption&&(t.filterable||t.remote)&&n.filteredOptionsCount&&x()},{flush:"post"}),e.watch(()=>n.hoverIndex,X=>{be(X)&&X>-1?h.value=I.value[X]||{}:h.value={},I.value.forEach(de=>{de.hover=h.value===de})});const R=()=>{e.nextTick(()=>{var X,de;if(!a.value)return;const Se=a.value.$el.querySelector("input");y=y||(Se.clientHeight>0?Se.clientHeight+2:0);const We=u.value,Rt=getComputedStyle(Se).getPropertyValue(l.cssVarName("input-height")),ae=Number.parseFloat(Rt)||aL(D.value||(C==null?void 0:C.size)),we=D.value||ae===y||y<=0?ae:y;!(Se.offsetParent===null)&&(Se.style.height=`${(n.selected.length===0?we:Math.max(We?We.clientHeight+(We.clientHeight>we?6:0):0,we))-2}px`),n.visible&&T.value!==!1&&((de=(X=c.value)==null?void 0:X.updatePopper)==null||de.call(X))})},N=async X=>{if(!(n.previousQuery===X||n.isOnComposition)){if(n.previousQuery===null&&(qe(t.filterMethod)||qe(t.remoteMethod))){n.previousQuery=X;return}n.previousQuery=X,e.nextTick(()=>{var de,Se;n.visible&&((Se=(de=c.value)==null?void 0:de.updatePopper)==null||Se.call(de))}),n.hoverIndex=-1,t.multiple&&t.filterable&&e.nextTick(()=>{if(!E.value){const de=s.value.value.length*15+20;n.inputLength=t.collapseTags?Math.min(50,de):de,A()}R()}),t.remote&&qe(t.remoteMethod)?(n.hoverIndex=-1,t.remoteMethod(X)):qe(t.filterMethod)?(t.filterMethod(X),e.triggerRef(m)):(n.filteredOptionsCount=n.optionsCount,g.value.query=X,e.triggerRef(g),e.triggerRef(m)),t.defaultFirstOption&&(t.filterable||t.remote)&&n.filteredOptionsCount&&(await e.nextTick(),x())}},A=()=>{n.currentPlaceholder!==""&&(n.currentPlaceholder=s.value.value?"":n.cachedPlaceHolder)},x=()=>{const X=I.value.filter(We=>We.visible&&!We.disabled&&!We.states.groupDisabled),de=X.find(We=>We.created),Se=X[0];n.hoverIndex=Pe(I.value,de||Se)},H=()=>{var X;if(t.multiple)n.selectedLabel="";else{const Se=K(t.modelValue);(X=Se.props)!=null&&X.created?(n.createdLabel=Se.props.value,n.createdSelected=!0):n.createdSelected=!1,n.selectedLabel=Se.currentLabel,n.selected=Se,t.filterable&&(n.query=n.selectedLabel);return}const de=[];Array.isArray(t.modelValue)&&t.modelValue.forEach(Se=>{de.push(K(Se))}),n.selected=de,e.nextTick(()=>{R()})},K=X=>{let de;const Se=wc(X).toLowerCase()==="object",We=wc(X).toLowerCase()==="null",Rt=wc(X).toLowerCase()==="undefined";for(let ze=n.cachedOptions.size-1;ze>=0;ze--){const Ge=v.value[ze];if(Se?ct(Ge.value,t.valueKey)===ct(X,t.valueKey):Ge.value===X){de={value:X,currentLabel:Ge.currentLabel,isDisabled:Ge.isDisabled};break}}if(de)return de;const ae=Se?X.label:!We&&!Rt?X:"",we={value:X,currentLabel:ae};return t.multiple&&(we.hitState=!1),we},q=()=>{setTimeout(()=>{const X=t.valueKey;t.multiple?n.selected.length>0?n.hoverIndex=Math.min.apply(null,n.selected.map(de=>I.value.findIndex(Se=>ct(Se,X)===ct(de,X)))):n.hoverIndex=-1:n.hoverIndex=I.value.findIndex(de=>ee(de)===ee(n.selected))},300)},ne=()=>{var X,de;Y(),(de=(X=c.value)==null?void 0:X.updatePopper)==null||de.call(X),t.multiple&&R()},Y=()=>{var X;n.inputWidth=(X=a.value)==null?void 0:X.$el.offsetWidth},Z=()=>{t.filterable&&n.query!==n.selectedLabel&&(n.query=n.selectedLabel,N(n.query))},U=Gt(()=>{Z()},P.value),re=Gt(X=>{N(X.target.value)},P.value),te=X=>{tn(t.modelValue,X)||o.emit(at,X)},oe=X=>md(X,de=>!n.disabledOptions.has(de)),ie=X=>{if(X.code!==pe.delete){if(X.target.value.length<=0&&!$e()){const de=t.modelValue.slice(),Se=oe(de);if(Se<0)return;de.splice(Se,1),o.emit(Ie,de),te(de)}X.target.value.length===1&&t.modelValue.length===0&&(n.currentPlaceholder=n.cachedPlaceHolder)}},ye=(X,de)=>{const Se=n.selected.indexOf(de);if(Se>-1&&!E.value){const We=t.modelValue.slice();We.splice(Se,1),o.emit(Ie,We),te(We),o.emit("remove-tag",de.value)}X.stopPropagation(),Ee()},Ne=X=>{X.stopPropagation();const de=t.multiple?[]:"";if(!De(de))for(const Se of n.selected)Se.isDisabled&&de.push(Se.value);o.emit(Ie,de),te(de),n.hoverIndex=-1,n.visible=!1,o.emit("clear"),Ee()},Te=X=>{var de;if(t.multiple){const Se=(t.modelValue||[]).slice(),We=Pe(Se,X.value);We>-1?Se.splice(We,1):(t.multipleLimit<=0||Se.length{Ce(X)})},Pe=(X=[],de)=>{if(!nt(de))return X.indexOf(de);const Se=t.valueKey;let We=-1;return X.some((Rt,ae)=>e.toRaw(ct(Rt,Se))===ct(de,Se)?(We=ae,!0):!1),We},he=()=>{const X=s.value||a.value;X&&(X==null||X.focus())},Ce=X=>{var de,Se,We,Rt,ae;const we=Array.isArray(X)?X[0]:X;let ze=null;if(we!=null&&we.value){const Ge=I.value.filter(zt=>zt.value===we.value);Ge.length>0&&(ze=Ge[0].$el)}if(c.value&&ze){const Ge=(Rt=(We=(Se=(de=c.value)==null?void 0:de.popperRef)==null?void 0:Se.contentRef)==null?void 0:We.querySelector)==null?void 0:Rt.call(We,`.${l.be("dropdown","wrap")}`);Ge&&wy(Ge,ze)}(ae=p.value)==null||ae.handleScroll()},ge=X=>{n.optionsCount++,n.filteredOptionsCount++,n.options.set(X.value,X),n.cachedOptions.set(X.value,X),X.disabled&&n.disabledOptions.set(X.value,X)},me=(X,de)=>{n.options.get(X)===de&&(n.optionsCount--,n.filteredOptionsCount--,n.options.delete(X))},_e=X=>{X.code!==pe.backspace&&$e(!1),n.inputLength=s.value.value.length*15+20,R()},$e=X=>{if(!Array.isArray(n.selected))return;const de=oe(n.selected.map(We=>We.value)),Se=n.selected[de];if(!!Se)return X===!0||X===!1?(Se.hitState=X,X):(Se.hitState=!Se.hitState,Se.hitState)},Ae=X=>{const de=X.target.value;if(X.type==="compositionend")n.isOnComposition=!1,e.nextTick(()=>N(de));else{const Se=de[de.length-1]||"";n.isOnComposition=!Ps(Se)}},Oe=()=>{e.nextTick(()=>Ce(n.selected))},ce=X=>{n.focused||((t.automaticDropdown||t.filterable)&&(t.filterable&&!n.visible&&(n.menuVisibleOnFocus=!0),n.visible=!0),n.focused=!0,o.emit("focus",X))},Ee=()=>{var X,de;n.visible?(X=s.value||a.value)==null||X.focus():(de=a.value)==null||de.focus()},Le=()=>{var X,de,Se;n.visible=!1,(X=a.value)==null||X.blur(),(Se=(de=i.value)==null?void 0:de.blur)==null||Se.call(de)},Xe=X=>{var de,Se,We;((de=c.value)==null?void 0:de.isFocusInsideContent(X))||((Se=f.value)==null?void 0:Se.isFocusInsideContent(X))||((We=d.value)==null?void 0:We.contains(X.relatedTarget))||(n.visible&&ke(),n.focused=!1,o.emit("blur",X))},Qe=X=>{Ne(X)},ke=()=>{n.visible=!1},J=X=>{n.visible&&(X.preventDefault(),X.stopPropagation(),n.visible=!1)},G=X=>{X&&!n.mouseEnter||E.value||(n.menuVisibleOnFocus?n.menuVisibleOnFocus=!1:(!c.value||!c.value.isFocusInsideContent())&&(n.visible=!n.visible),Ee())},j=()=>{n.visible?I.value[n.hoverIndex]&&Te(I.value[n.hoverIndex]):G()},ee=X=>nt(X.value)?ct(X.value,t.valueKey):X.value,F=e.computed(()=>I.value.filter(X=>X.visible).every(X=>X.disabled)),ue=e.computed(()=>t.multiple?n.selected.slice(0,t.maxCollapseTags):[]),Be=e.computed(()=>t.multiple?n.selected.slice(t.maxCollapseTags):[]),xe=X=>{if(!n.visible){n.visible=!0;return}if(!(n.options.size===0||n.filteredOptionsCount===0)&&!n.isOnComposition&&!F.value){X==="next"?(n.hoverIndex++,n.hoverIndex===n.options.size&&(n.hoverIndex=0)):X==="prev"&&(n.hoverIndex--,n.hoverIndex<0&&(n.hoverIndex=n.options.size-1));const de=I.value[n.hoverIndex];(de.disabled===!0||de.states.groupDisabled===!0||!de.visible)&&xe(X),e.nextTick(()=>Ce(h.value))}},_t=()=>{n.mouseEnter=!0},gt=()=>{n.mouseEnter=!1},zn=(X,de)=>{var Se,We;ye(X,de),(We=(Se=f.value)==null?void 0:Se.updatePopper)==null||We.call(Se)},Wt=e.computed(()=>({maxWidth:`${e.unref(n.inputWidth)-32-(M.value?22:0)}px`,width:"100%"}));return{optionList:b,optionsArray:I,hoverOption:h,selectSize:D,handleResize:ne,debouncedOnInputChange:U,debouncedQueryChange:re,deletePrevTag:ie,deleteTag:ye,deleteSelected:Ne,handleOptionSelect:Te,scrollToOption:Ce,readonly:w,resetInputHeight:R,showClose:S,iconComponent:_,iconReverse:B,showNewOption:O,collapseTagSize:z,setSelected:H,managePlaceholder:A,selectDisabled:E,emptyText:T,toggleLastOptionHitState:$e,resetInputState:_e,handleComposition:Ae,onOptionCreate:ge,onOptionDestroy:me,handleMenuEnter:Oe,handleFocus:ce,focus:Ee,blur:Le,handleBlur:Xe,handleClearClick:Qe,handleClose:ke,handleKeydownEscape:J,toggleMenu:G,selectOption:j,getValueKey:ee,navigateOptions:xe,handleDeleteTooltipTag:zn,dropMenuVisible:$,queryChange:g,groupQueryChange:m,showTagList:ue,collapseTagList:Be,selectTagsStyle:Wt,reference:a,input:s,iOSInput:i,tooltipRef:c,tagTooltipRef:f,tags:u,selectWrapper:d,scrollbar:p,handleMouseEnter:_t,handleMouseLeave:gt}};var NU=e.defineComponent({name:"ElOptions",emits:["update-options"],setup(t,{slots:n,emit:o}){let r=[];function l(a,s){if(a.length!==s.length)return!1;for(const[i]of a.entries())if(a[i]!=s[i])return!1;return!0}return()=>{var a,s;const i=(a=n.default)==null?void 0:a.call(n),c=[];function f(u){!Array.isArray(u)||u.forEach(d=>{var p,h,g,m;const b=(p=(d==null?void 0:d.type)||{})==null?void 0:p.name;b==="ElOptionGroup"?f(!De(d.children)&&!Array.isArray(d.children)&&qe((h=d.children)==null?void 0:h.default)?(g=d.children)==null?void 0:g.default():d.children):b==="ElOption"?c.push((m=d.props)==null?void 0:m.label):Array.isArray(d.children)&&f(d.children)})}return i.length&&f((s=i[0])==null?void 0:s.children),l(c,r)||(r=c,o("update-options",c)),i}}});const $S="ElSelect",_U=e.defineComponent({name:$S,componentName:$S,components:{ElInput:Ft,ElSelectMenu:kU,ElOption:ap,ElOptions:NU,ElTag:bl,ElScrollbar:mo,ElTooltip:Zt,ElIcon:fe},directives:{ClickOutside:Po},props:{name:String,id:String,modelValue:{type:[Array,String,Number,Boolean,Object],default:void 0},autocomplete:{type:String,default:"off"},automaticDropdown:Boolean,size:{type:String,validator:Yd},effect:{type:String,default:"light"},disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:{type:String,default:""},popperOptions:{type:Object,default:()=>({})},remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod: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,maxCollapseTags:{type:Number,default:1},teleported:Pt.teleported,persistent:{type:Boolean,default:!0},clearIcon:{type:ot,default:Xo},fitInputWidth:Boolean,suffixIcon:{type:ot,default:qo},tagType:{...$i.type,default:"info"},validateEvent:{type:Boolean,default:!0},remoteShowSuffix:Boolean,suffixTransition:{type:Boolean,default:!0},placement:{type:String,values:_r,default:"bottom-start"},ariaLabel:{type:String,default:void 0}},emits:[Ie,at,"remove-tag","clear","visible-change","focus","blur"],setup(t,n){const o=Q("select"),r=Q("input"),{t:l}=Ke(),a=rn(),s=SU(t),{optionList:i,optionsArray:c,hoverOption:f,selectSize:u,readonly:d,handleResize:p,collapseTagSize:h,debouncedOnInputChange:g,debouncedQueryChange:m,deletePrevTag:b,deleteTag:y,deleteSelected:C,handleOptionSelect:k,scrollToOption:w,setSelected:E,resetInputHeight:S,managePlaceholder:_,showClose:B,selectDisabled:M,iconComponent:P,iconReverse:T,showNewOption:I,emptyText:v,toggleLastOptionHitState:O,resetInputState:D,handleComposition:z,onOptionCreate:$,onOptionDestroy:R,handleMenuEnter:N,handleFocus:A,focus:x,blur:H,handleBlur:K,handleClearClick:q,handleClose:ne,handleKeydownEscape:Y,toggleMenu:Z,selectOption:U,getValueKey:re,navigateOptions:te,handleDeleteTooltipTag:oe,dropMenuVisible:ie,reference:ye,input:Ne,iOSInput:Te,tooltipRef:Pe,tagTooltipRef:he,tags:Ce,selectWrapper:ge,scrollbar:me,queryChange:_e,groupQueryChange:$e,handleMouseEnter:Ae,handleMouseLeave:Oe,showTagList:ce,collapseTagList:Ee,selectTagsStyle:Le}=EU(t,s,n),{inputWidth:Xe,selected:Qe,inputLength:ke,filteredOptionsCount:J,visible:G,selectedLabel:j,hoverIndex:ee,query:F,inputHovering:ue,currentPlaceholder:Be,menuVisibleOnFocus:xe,isOnComposition:_t,options:gt,cachedOptions:zn,optionsCount:Wt,prefixWidth:X}=e.toRefs(s),de=e.computed(()=>{const Dt=[o.b()],Kr=e.unref(u);return Kr&&Dt.push(o.m(Kr)),t.disabled&&Dt.push(o.m("disabled")),Dt}),Se=e.computed(()=>[o.e("tags"),o.is("disabled",e.unref(M))]),We=e.computed(()=>[o.b("tags-wrapper"),{"has-prefix":e.unref(X)&&e.unref(Qe).length}]),Rt=e.computed(()=>[o.e("input"),o.is(e.unref(u)),o.is("disabled",e.unref(M))]),ae=e.computed(()=>[o.e("input"),o.is(e.unref(u)),o.em("input","iOS")]),we=e.computed(()=>[o.is("empty",!t.allowCreate&&Boolean(e.unref(F))&&e.unref(J)===0)]),ze=e.computed(()=>({maxWidth:`${e.unref(Xe)>123&&e.unref(Qe).length>t.maxCollapseTags?e.unref(Xe)-123:e.unref(Xe)-75}px`})),Ge=e.computed(()=>({marginLeft:`${e.unref(X)}px`,flexGrow:1,width:`${e.unref(ke)/(e.unref(Xe)-32)}%`,maxWidth:`${e.unref(Xe)-42}px`}));e.provide(wl,e.reactive({props:t,options:gt,optionsArray:c,cachedOptions:zn,optionsCount:Wt,filteredOptionsCount:J,hoverIndex:ee,handleOptionSelect:k,onOptionCreate:$,onOptionDestroy:R,selectWrapper:ge,selected:Qe,setSelected:E,queryChange:_e,groupQueryChange:$e})),e.onMounted(()=>{s.cachedPlaceHolder=Be.value=t.placeholder||(()=>l("el.select.placeholder")),t.multiple&&Array.isArray(t.modelValue)&&t.modelValue.length>0&&(Be.value=""),jt(ge,p),t.remote&&t.multiple&&S(),e.nextTick(()=>{const Dt=ye.value&&ye.value.$el;if(!!Dt&&(Xe.value=Dt.getBoundingClientRect().width,n.slots.prefix)){const Kr=Dt.querySelector(`.${r.e("prefix")}`);X.value=Math.max(Kr.getBoundingClientRect().width+11,30)}}),E()}),t.multiple&&!Array.isArray(t.modelValue)&&n.emit(Ie,[]),!t.multiple&&Array.isArray(t.modelValue)&&n.emit(Ie,"");const zt=e.computed(()=>{var Dt,Kr;return(Kr=(Dt=Pe.value)==null?void 0:Dt.popperRef)==null?void 0:Kr.contentRef});return{isIOS:JN,onOptionsRendered:Dt=>{i.value=Dt},prefixWidth:X,selectSize:u,readonly:d,handleResize:p,collapseTagSize:h,debouncedOnInputChange:g,debouncedQueryChange:m,deletePrevTag:b,deleteTag:y,handleDeleteTooltipTag:oe,deleteSelected:C,handleOptionSelect:k,scrollToOption:w,inputWidth:Xe,selected:Qe,inputLength:ke,filteredOptionsCount:J,visible:G,selectedLabel:j,hoverIndex:ee,query:F,inputHovering:ue,currentPlaceholder:Be,menuVisibleOnFocus:xe,isOnComposition:_t,options:gt,resetInputHeight:S,managePlaceholder:_,showClose:B,selectDisabled:M,iconComponent:P,iconReverse:T,showNewOption:I,emptyText:v,toggleLastOptionHitState:O,resetInputState:D,handleComposition:z,handleMenuEnter:N,handleFocus:A,focus:x,blur:H,handleBlur:K,handleClearClick:q,handleClose:ne,handleKeydownEscape:Y,toggleMenu:Z,selectOption:U,getValueKey:re,navigateOptions:te,dropMenuVisible:ie,reference:ye,input:Ne,iOSInput:Te,tooltipRef:Pe,popperPaneRef:zt,tags:Ce,selectWrapper:ge,scrollbar:me,wrapperKls:de,tagsKls:Se,tagWrapperKls:We,inputKls:Rt,iOSInputKls:ae,scrollbarKls:we,selectTagsStyle:Le,nsSelect:o,tagTextStyle:ze,inputStyle:Ge,handleMouseEnter:Ae,handleMouseLeave:Oe,showTagList:ce,collapseTagList:Ee,tagTooltipRef:he,contentId:a,hoverOption:f}}}),BU=["disabled","autocomplete","aria-activedescendant","aria-controls","aria-expanded","aria-label"],$U=["disabled"],TU={style:{height:"100%",display:"flex","justify-content":"center","align-items":"center"}};function vU(t,n,o,r,l,a){const s=e.resolveComponent("el-tag"),i=e.resolveComponent("el-tooltip"),c=e.resolveComponent("el-icon"),f=e.resolveComponent("el-input"),u=e.resolveComponent("el-option"),d=e.resolveComponent("el-options"),p=e.resolveComponent("el-scrollbar"),h=e.resolveComponent("el-select-menu"),g=e.resolveDirective("click-outside");return e.withDirectives((e.openBlock(),e.createElementBlock("div",{ref:"selectWrapper",class:e.normalizeClass(t.wrapperKls),onMouseenter:n[22]||(n[22]=(...m)=>t.handleMouseEnter&&t.handleMouseEnter(...m)),onMouseleave:n[23]||(n[23]=(...m)=>t.handleMouseLeave&&t.handleMouseLeave(...m)),onClick:n[24]||(n[24]=e.withModifiers((...m)=>t.toggleMenu&&t.toggleMenu(...m),["stop"]))},[e.createVNode(i,{ref:"tooltipRef",visible:t.dropMenuVisible,placement:t.placement,teleported:t.teleported,"popper-class":[t.nsSelect.e("popper"),t.popperClass],"popper-options":t.popperOptions,"fallback-placements":["bottom-start","top-start","right","left"],effect:t.effect,pure:"",trigger:"click",transition:`${t.nsSelect.namespace.value}-zoom-in-top`,"stop-popper-mouse-event":!1,"gpu-acceleration":!1,persistent:t.persistent,onShow:t.handleMenuEnter},{default:e.withCtx(()=>{var m,b;return[e.createElementVNode("div",{class:"select-trigger",onMouseenter:n[20]||(n[20]=y=>t.inputHovering=!0),onMouseleave:n[21]||(n[21]=y=>t.inputHovering=!1)},[t.multiple?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"tags",tabindex:"-1",class:e.normalizeClass(t.tagsKls),style:e.normalizeStyle(t.selectTagsStyle),onClick:n[15]||(n[15]=(...y)=>t.focus&&t.focus(...y))},[t.collapseTags&&t.selected.length?(e.openBlock(),e.createBlock(e.Transition,{key:0,onAfterLeave:t.resetInputHeight},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.tagWrapperKls)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.showTagList,y=>(e.openBlock(),e.createBlock(s,{key:t.getValueKey(y),closable:!t.selectDisabled&&!y.isDisabled,size:t.collapseTagSize,hit:y.hitState,type:t.tagType,"disable-transitions":"",onClose:C=>t.deleteTag(C,y)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelect.e("tags-text")),style:e.normalizeStyle(t.tagTextStyle)},e.toDisplayString(y.currentLabel),7)]),_:2},1032,["closable","size","hit","type","onClose"]))),128)),t.selected.length>t.maxCollapseTags?(e.openBlock(),e.createBlock(s,{key:0,closable:!1,size:t.collapseTagSize,type:t.tagType,"disable-transitions":""},{default:e.withCtx(()=>[t.collapseTagsTooltip?(e.openBlock(),e.createBlock(i,{key:0,ref:"tagTooltipRef",disabled:t.dropMenuVisible,"fallback-placements":["bottom","top","right","left"],effect:t.effect,placement:"bottom",teleported:t.teleported},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelect.e("tags-text"))},"+ "+e.toDisplayString(t.selected.length-t.maxCollapseTags),3)]),content:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(t.nsSelect.e("collapse-tags"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.collapseTagList,y=>(e.openBlock(),e.createElementBlock("div",{key:t.getValueKey(y),class:e.normalizeClass(t.nsSelect.e("collapse-tag"))},[e.createVNode(s,{class:"in-tooltip",closable:!t.selectDisabled&&!y.isDisabled,size:t.collapseTagSize,hit:y.hitState,type:t.tagType,"disable-transitions":"",style:{margin:"2px"},onClose:C=>t.handleDeleteTooltipTag(C,y)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelect.e("tags-text")),style:e.normalizeStyle({maxWidth:t.inputWidth-75+"px"})},e.toDisplayString(y.currentLabel),7)]),_:2},1032,["closable","size","hit","type","onClose"])],2))),128))],2)]),_:1},8,["disabled","effect","teleported"])):(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(t.nsSelect.e("tags-text"))},"+ "+e.toDisplayString(t.selected.length-t.maxCollapseTags),3))]),_:1},8,["size","type"])):e.createCommentVNode("v-if",!0)],2)]),_:1},8,["onAfterLeave"])):e.createCommentVNode("v-if",!0),t.collapseTags?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(e.Transition,{key:1,onAfterLeave:t.resetInputHeight},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.tagWrapperKls),style:e.normalizeStyle(t.prefixWidth&&t.selected.length?{marginLeft:`${t.prefixWidth}px`}:"")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.selected,y=>(e.openBlock(),e.createBlock(s,{key:t.getValueKey(y),closable:!t.selectDisabled&&!y.isDisabled,size:t.collapseTagSize,hit:y.hitState,type:t.tagType,"disable-transitions":"",onClose:C=>t.deleteTag(C,y)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelect.e("tags-text")),style:e.normalizeStyle({maxWidth:t.inputWidth-75+"px"})},e.toDisplayString(y.currentLabel),7)]),_:2},1032,["closable","size","hit","type","onClose"]))),128))],6)]),_:1},8,["onAfterLeave"])),t.filterable&&!t.selectDisabled?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:2,ref:"input","onUpdate:modelValue":n[0]||(n[0]=y=>t.query=y),type:"text",class:e.normalizeClass(t.inputKls),disabled:t.selectDisabled,autocomplete:t.autocomplete,style:e.normalizeStyle(t.inputStyle),role:"combobox","aria-activedescendant":((m=t.hoverOption)==null?void 0:m.id)||"","aria-controls":t.contentId,"aria-expanded":t.dropMenuVisible,"aria-label":t.ariaLabel,"aria-autocomplete":"none","aria-haspopup":"listbox",onFocus:n[1]||(n[1]=(...y)=>t.handleFocus&&t.handleFocus(...y)),onBlur:n[2]||(n[2]=(...y)=>t.handleBlur&&t.handleBlur(...y)),onKeyup:n[3]||(n[3]=(...y)=>t.managePlaceholder&&t.managePlaceholder(...y)),onKeydown:[n[4]||(n[4]=(...y)=>t.resetInputState&&t.resetInputState(...y)),n[5]||(n[5]=e.withKeys(e.withModifiers(y=>t.navigateOptions("next"),["prevent"]),["down"])),n[6]||(n[6]=e.withKeys(e.withModifiers(y=>t.navigateOptions("prev"),["prevent"]),["up"])),n[7]||(n[7]=e.withKeys((...y)=>t.handleKeydownEscape&&t.handleKeydownEscape(...y),["esc"])),n[8]||(n[8]=e.withKeys(e.withModifiers((...y)=>t.selectOption&&t.selectOption(...y),["stop","prevent"]),["enter"])),n[9]||(n[9]=e.withKeys((...y)=>t.deletePrevTag&&t.deletePrevTag(...y),["delete"])),n[10]||(n[10]=e.withKeys(y=>t.visible=!1,["tab"]))],onCompositionstart:n[11]||(n[11]=(...y)=>t.handleComposition&&t.handleComposition(...y)),onCompositionupdate:n[12]||(n[12]=(...y)=>t.handleComposition&&t.handleComposition(...y)),onCompositionend:n[13]||(n[13]=(...y)=>t.handleComposition&&t.handleComposition(...y)),onInput:n[14]||(n[14]=(...y)=>t.debouncedQueryChange&&t.debouncedQueryChange(...y))},null,46,BU)),[[e.vModelText,t.query]]):e.createCommentVNode("v-if",!0)],6)):e.createCommentVNode("v-if",!0),t.isIOS&&!t.multiple&&t.filterable&&t.readonly?(e.openBlock(),e.createElementBlock("input",{key:1,ref:"iOSInput",class:e.normalizeClass(t.iOSInputKls),disabled:t.selectDisabled,type:"text"},null,10,$U)):e.createCommentVNode("v-if",!0),e.createVNode(f,{id:t.id,ref:"reference",modelValue:t.selectedLabel,"onUpdate:modelValue":n[16]||(n[16]=y=>t.selectedLabel=y),type:"text",placeholder:typeof t.currentPlaceholder=="function"?t.currentPlaceholder():t.currentPlaceholder,name:t.name,autocomplete:t.autocomplete,size:t.selectSize,disabled:t.selectDisabled,readonly:t.readonly,"validate-event":!1,class:e.normalizeClass([t.nsSelect.is("focus",t.visible)]),tabindex:t.multiple&&t.filterable?-1:void 0,role:"combobox","aria-activedescendant":((b=t.hoverOption)==null?void 0:b.id)||"","aria-controls":t.contentId,"aria-expanded":t.dropMenuVisible,label:t.ariaLabel,"aria-autocomplete":"none","aria-haspopup":"listbox",onFocus:t.handleFocus,onBlur:t.handleBlur,onInput:t.debouncedOnInputChange,onPaste:t.debouncedOnInputChange,onCompositionstart:t.handleComposition,onCompositionupdate:t.handleComposition,onCompositionend:t.handleComposition,onKeydown:[n[17]||(n[17]=e.withKeys(e.withModifiers(y=>t.navigateOptions("next"),["stop","prevent"]),["down"])),n[18]||(n[18]=e.withKeys(e.withModifiers(y=>t.navigateOptions("prev"),["stop","prevent"]),["up"])),e.withKeys(e.withModifiers(t.selectOption,["stop","prevent"]),["enter"]),e.withKeys(t.handleKeydownEscape,["esc"]),n[19]||(n[19]=e.withKeys(y=>t.visible=!1,["tab"]))]},e.createSlots({suffix:e.withCtx(()=>[t.iconComponent&&!t.showClose?(e.openBlock(),e.createBlock(c,{key:0,class:e.normalizeClass([t.nsSelect.e("caret"),t.nsSelect.e("icon"),t.iconReverse])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconComponent)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),t.showClose&&t.clearIcon?(e.openBlock(),e.createBlock(c,{key:1,class:e.normalizeClass([t.nsSelect.e("caret"),t.nsSelect.e("icon")]),onClick:t.handleClearClick},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.clearIcon)))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0)]),_:2},[t.$slots.prefix?{name:"prefix",fn:e.withCtx(()=>[e.createElementVNode("div",TU,[e.renderSlot(t.$slots,"prefix")])])}:void 0]),1032,["id","modelValue","placeholder","name","autocomplete","size","disabled","readonly","class","tabindex","aria-activedescendant","aria-controls","aria-expanded","label","onFocus","onBlur","onInput","onPaste","onCompositionstart","onCompositionupdate","onCompositionend","onKeydown"])],32)]}),content:e.withCtx(()=>[e.createVNode(h,null,e.createSlots({default:e.withCtx(()=>[e.withDirectives(e.createVNode(p,{id:t.contentId,ref:"scrollbar",tag:"ul","wrap-class":t.nsSelect.be("dropdown","wrap"),"view-class":t.nsSelect.be("dropdown","list"),class:e.normalizeClass(t.scrollbarKls),role:"listbox","aria-label":t.ariaLabel,"aria-orientation":"vertical"},{default:e.withCtx(()=>[t.showNewOption?(e.openBlock(),e.createBlock(u,{key:0,value:t.query,created:!0},null,8,["value"])):e.createCommentVNode("v-if",!0),e.createVNode(d,{onUpdateOptions:t.onOptionsRendered},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["onUpdateOptions"])]),_:3},8,["id","wrap-class","view-class","class","aria-label"]),[[e.vShow,t.options.size>0&&!t.loading]]),t.emptyText&&(!t.allowCreate||t.loading||t.allowCreate&&t.options.size===0)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.$slots.empty?e.renderSlot(t.$slots,"empty",{key:0}):(e.openBlock(),e.createElementBlock("p",{key:1,class:e.normalizeClass(t.nsSelect.be("dropdown","empty"))},e.toDisplayString(t.emptyText),3))],64)):e.createCommentVNode("v-if",!0)]),_:2},[t.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"header")])}:void 0,t.$slots.footer?{name:"footer",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"footer")])}:void 0]),1024)]),_:3},8,["visible","placement","teleported","popper-class","popper-options","effect","transition","persistent","onShow"])],34)),[[g,t.handleClose,t.popperPaneRef]])}var VU=se(_U,[["render",vU],["__file","select.vue"]]);const MU=e.defineComponent({name:"ElOptionGroup",componentName:"ElOptionGroup",props:{label:String,disabled:Boolean},setup(t){const n=Q("select"),o=e.ref(!0),r=e.getCurrentInstance(),l=e.ref([]);e.provide(lp,e.reactive({...e.toRefs(t)}));const a=e.inject(wl);e.onMounted(()=>{l.value=s(r.subTree)});const s=c=>{const f=[];return Array.isArray(c.children)&&c.children.forEach(u=>{var d;u.type&&u.type.name==="ElOption"&&u.component&&u.component.proxy?f.push(u.component.proxy):(d=u.children)!=null&&d.length&&f.push(...s(u))}),f},{groupQueryChange:i}=e.toRaw(a);return e.watch(i,()=>{o.value=l.value.some(c=>c.visible===!0)},{flush:"post"}),{visible:o,ns:n}}});function IU(t,n,o,r,l,a){return e.withDirectives((e.openBlock(),e.createElementBlock("ul",{class:e.normalizeClass(t.ns.be("group","wrap"))},[e.createElementVNode("li",{class:e.normalizeClass(t.ns.be("group","title"))},e.toDisplayString(t.label),3),e.createElementVNode("li",null,[e.createElementVNode("ul",{class:e.normalizeClass(t.ns.b("group"))},[e.renderSlot(t.$slots,"default")],2)])],2)),[[e.vShow,t.visible]])}var TS=se(MU,[["render",IU],["__file","option-group.vue"]]);const sr=Me(VU,{Option:ap,OptionGroup:TS}),Va=ht(ap),vS=ht(TS),sp=()=>e.inject(rp,{}),PU=le({pageSize:{type:Number,required:!0},pageSizes:{type:W(Array),default:()=>ut([10,20,30,40,50,100])},popperClass:{type:String},disabled:Boolean,teleported:Boolean,size:{type:String,values:Wn}}),RU=e.defineComponent({name:"ElPaginationSizes"}),OU=e.defineComponent({...RU,props:PU,emits:["page-size-change"],setup(t,{emit:n}){const o=t,{t:r}=Ke(),l=Q("pagination"),a=sp(),s=e.ref(o.pageSize);e.watch(()=>o.pageSizes,(f,u)=>{if(!tn(f,u)&&Array.isArray(f)){const d=f.includes(o.pageSize)?o.pageSize:o.pageSizes[0];n("page-size-change",d)}}),e.watch(()=>o.pageSize,f=>{s.value=f});const i=e.computed(()=>o.pageSizes);function c(f){var u;f!==s.value&&(s.value=f,(u=a.handleSizeChange)==null||u.call(a,Number(f)))}return(f,u)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(l).e("sizes"))},[e.createVNode(e.unref(sr),{"model-value":s.value,disabled:f.disabled,"popper-class":f.popperClass,size:f.size,teleported:f.teleported,"validate-event":!1,onChange:c},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),d=>(e.openBlock(),e.createBlock(e.unref(Va),{key:d,value:d,label:d+e.unref(r)("el.pagination.pagesize")},null,8,["value","label"]))),128))]),_:1},8,["model-value","disabled","popper-class","size","teleported"])],2))}});var AU=se(OU,[["__file","sizes.vue"]]);const zU=le({size:{type:String,values:Wn}}),DU=["disabled"],LU=e.defineComponent({name:"ElPaginationJumper"}),xU=e.defineComponent({...LU,props:zU,setup(t){const{t:n}=Ke(),o=Q("pagination"),{pageCount:r,disabled:l,currentPage:a,changeEvent:s}=sp(),i=e.ref(),c=e.computed(()=>{var d;return(d=i.value)!=null?d:a==null?void 0:a.value});function f(d){i.value=d?+d:""}function u(d){d=Math.trunc(+d),s==null||s(d),i.value=void 0}return(d,p)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(o).e("jump")),disabled:e.unref(l)},[e.createElementVNode("span",{class:e.normalizeClass([e.unref(o).e("goto")])},e.toDisplayString(e.unref(n)("el.pagination.goto")),3),e.createVNode(e.unref(Ft),{size:d.size,class:e.normalizeClass([e.unref(o).e("editor"),e.unref(o).is("in-pagination")]),min:1,max:e.unref(r),disabled:e.unref(l),"model-value":e.unref(c),"validate-event":!1,label:e.unref(n)("el.pagination.page"),type:"number","onUpdate:modelValue":f,onChange:u},null,8,["size","class","max","disabled","model-value","label"]),e.createElementVNode("span",{class:e.normalizeClass([e.unref(o).e("classifier")])},e.toDisplayString(e.unref(n)("el.pagination.pageClassifier")),3)],10,DU))}});var FU=se(xU,[["__file","jumper.vue"]]);const HU=le({total:{type:Number,default:1e3}}),KU=["disabled"],WU=e.defineComponent({name:"ElPaginationTotal"}),jU=e.defineComponent({...WU,props:HU,setup(t){const{t:n}=Ke(),o=Q("pagination"),{disabled:r}=sp();return(l,a)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(o).e("total")),disabled:e.unref(r)},e.toDisplayString(e.unref(n)("el.pagination.total",{total:l.total})),11,KU))}});var UU=se(jU,[["__file","total.vue"]]);const GU=le({currentPage:{type:Number,default:1},pageCount:{type:Number,required:!0},pagerCount:{type:Number,default:7},disabled:Boolean}),qU=["onKeyup"],YU=["aria-current","aria-label","tabindex"],XU=["tabindex","aria-label"],ZU=["aria-current","aria-label","tabindex"],JU=["tabindex","aria-label"],QU=["aria-current","aria-label","tabindex"],eG=e.defineComponent({name:"ElPaginationPager"}),tG=e.defineComponent({...eG,props:GU,emits:["change"],setup(t,{emit:n}){const o=t,r=Q("pager"),l=Q("icon"),{t:a}=Ke(),s=e.ref(!1),i=e.ref(!1),c=e.ref(!1),f=e.ref(!1),u=e.ref(!1),d=e.ref(!1),p=e.computed(()=>{const w=o.pagerCount,E=(w-1)/2,S=Number(o.currentPage),_=Number(o.pageCount);let B=!1,M=!1;_>w&&(S>w-E&&(B=!0),S<_-E&&(M=!0));const P=[];if(B&&!M){const T=_-(w-2);for(let I=T;I<_;I++)P.push(I)}else if(!B&&M)for(let T=2;T["more","btn-quickprev",l.b(),r.is("disabled",o.disabled)]),g=e.computed(()=>["more","btn-quicknext",l.b(),r.is("disabled",o.disabled)]),m=e.computed(()=>o.disabled?-1:0);e.watchEffect(()=>{const w=(o.pagerCount-1)/2;s.value=!1,i.value=!1,o.pageCount>o.pagerCount&&(o.currentPage>o.pagerCount-w&&(s.value=!0),o.currentPage_&&(S=_)),S!==B&&n("change",S)}return(w,E)=>(e.openBlock(),e.createElementBlock("ul",{class:e.normalizeClass(e.unref(r).b()),onClick:k,onKeyup:e.withKeys(C,["enter"])},[w.pageCount>0?(e.openBlock(),e.createElementBlock("li",{key:0,class:e.normalizeClass([[e.unref(r).is("active",w.currentPage===1),e.unref(r).is("disabled",w.disabled)],"number"]),"aria-current":w.currentPage===1,"aria-label":e.unref(a)("el.pagination.currentPage",{pager:1}),tabindex:e.unref(m)}," 1 ",10,YU)):e.createCommentVNode("v-if",!0),s.value?(e.openBlock(),e.createElementBlock("li",{key:1,class:e.normalizeClass(e.unref(h)),tabindex:e.unref(m),"aria-label":e.unref(a)("el.pagination.prevPages",{pager:w.pagerCount-2}),onMouseenter:E[0]||(E[0]=S=>b(!0)),onMouseleave:E[1]||(E[1]=S=>c.value=!1),onFocus:E[2]||(E[2]=S=>y(!0)),onBlur:E[3]||(E[3]=S=>u.value=!1)},[(c.value||u.value)&&!w.disabled?(e.openBlock(),e.createBlock(e.unref(nl),{key:0})):(e.openBlock(),e.createBlock(e.unref(Ey),{key:1}))],42,XU)):e.createCommentVNode("v-if",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),S=>(e.openBlock(),e.createElementBlock("li",{key:S,class:e.normalizeClass([[e.unref(r).is("active",w.currentPage===S),e.unref(r).is("disabled",w.disabled)],"number"]),"aria-current":w.currentPage===S,"aria-label":e.unref(a)("el.pagination.currentPage",{pager:S}),tabindex:e.unref(m)},e.toDisplayString(S),11,ZU))),128)),i.value?(e.openBlock(),e.createElementBlock("li",{key:2,class:e.normalizeClass(e.unref(g)),tabindex:e.unref(m),"aria-label":e.unref(a)("el.pagination.nextPages",{pager:w.pagerCount-2}),onMouseenter:E[4]||(E[4]=S=>b()),onMouseleave:E[5]||(E[5]=S=>f.value=!1),onFocus:E[6]||(E[6]=S=>y()),onBlur:E[7]||(E[7]=S=>d.value=!1)},[(f.value||d.value)&&!w.disabled?(e.openBlock(),e.createBlock(e.unref(ol),{key:0})):(e.openBlock(),e.createBlock(e.unref(Ey),{key:1}))],42,JU)):e.createCommentVNode("v-if",!0),w.pageCount>1?(e.openBlock(),e.createElementBlock("li",{key:3,class:e.normalizeClass([[e.unref(r).is("active",w.currentPage===w.pageCount),e.unref(r).is("disabled",w.disabled)],"number"]),"aria-current":w.currentPage===w.pageCount,"aria-label":e.unref(a)("el.pagination.currentPage",{pager:w.pageCount}),tabindex:e.unref(m)},e.toDisplayString(w.pageCount),11,QU)):e.createCommentVNode("v-if",!0)],42,qU))}});var nG=se(tG,[["__file","pager.vue"]]);const ln=t=>typeof t!="number",VS=le({pageSize:Number,defaultPageSize:Number,total:Number,pageCount:Number,pagerCount:{type:Number,validator:t=>be(t)&&Math.trunc(t)===t&&t>4&&t<22&&t%2===1,default:7},currentPage:Number,defaultCurrentPage:Number,layout:{type:String,default:["prev","pager","next","jumper","->","total"].join(", ")},pageSizes:{type:W(Array),default:()=>ut([10,20,30,40,50,100])},popperClass:{type:String,default:""},prevText:{type:String,default:""},prevIcon:{type:ot,default:()=>Yo},nextText:{type:String,default:""},nextIcon:{type:ot,default:()=>on},teleported:{type:Boolean,default:!0},small:Boolean,background:Boolean,disabled:Boolean,hideOnSinglePage:Boolean}),MS={"update:current-page":t=>be(t),"update:page-size":t=>be(t),"size-change":t=>be(t),"current-change":t=>be(t),"prev-click":t=>be(t),"next-click":t=>be(t)},IS="ElPagination";var oG=e.defineComponent({name:IS,props:VS,emits:MS,setup(t,{emit:n,slots:o}){const{t:r}=Ke(),l=Q("pagination"),a=e.getCurrentInstance().vnode.props||{},s="onUpdate:currentPage"in a||"onUpdate:current-page"in a||"onCurrentChange"in a,i="onUpdate:pageSize"in a||"onUpdate:page-size"in a||"onSizeChange"in a,c=e.computed(()=>{if(ln(t.total)&&ln(t.pageCount)||!ln(t.currentPage)&&!s)return!1;if(t.layout.includes("sizes")){if(ln(t.pageCount)){if(!ln(t.total)&&!ln(t.pageSize)&&!i)return!1}else if(!i)return!1}return!0}),f=e.ref(ln(t.defaultPageSize)?10:t.defaultPageSize),u=e.ref(ln(t.defaultCurrentPage)?1:t.defaultCurrentPage),d=e.computed({get(){return ln(t.pageSize)?f.value:t.pageSize},set(k){ln(t.pageSize)&&(f.value=k),i&&(n("update:page-size",k),n("size-change",k))}}),p=e.computed(()=>{let k=0;return ln(t.pageCount)?ln(t.total)||(k=Math.max(1,Math.ceil(t.total/d.value))):k=t.pageCount,k}),h=e.computed({get(){return ln(t.currentPage)?u.value:t.currentPage},set(k){let w=k;k<1?w=1:k>p.value&&(w=p.value),ln(t.currentPage)&&(u.value=w),s&&(n("update:current-page",w),n("current-change",w))}});e.watch(p,k=>{h.value>k&&(h.value=k)});function g(k){h.value=k}function m(k){d.value=k;const w=p.value;h.value>w&&(h.value=w)}function b(){t.disabled||(h.value-=1,n("prev-click",h.value))}function y(){t.disabled||(h.value+=1,n("next-click",h.value))}function C(k,w){k&&(k.props||(k.props={}),k.props.class=[k.props.class,w].join(" "))}return e.provide(rp,{pageCount:p,disabled:e.computed(()=>t.disabled),currentPage:h,changeEvent:g,handleSizeChange:m}),()=>{var k,w;if(!c.value)return r("el.pagination.deprecationWarning"),null;if(!t.layout||t.hideOnSinglePage&&p.value<=1)return null;const E=[],S=[],_=e.h("div",{class:l.e("rightwrapper")},S),B={prev:e.h(iU,{disabled:t.disabled,currentPage:h.value,prevText:t.prevText,prevIcon:t.prevIcon,onClick:b}),jumper:e.h(FU,{size:t.small?"small":"default"}),pager:e.h(nG,{currentPage:h.value,pageCount:p.value,pagerCount:t.pagerCount,onChange:g,disabled:t.disabled}),next:e.h(mU,{disabled:t.disabled,currentPage:h.value,pageCount:p.value,nextText:t.nextText,nextIcon:t.nextIcon,onClick:y}),sizes:e.h(AU,{pageSize:d.value,pageSizes:t.pageSizes,popperClass:t.popperClass,disabled:t.disabled,teleported:t.teleported,size:t.small?"small":"default"}),slot:(w=(k=o==null?void 0:o.default)==null?void 0:k.call(o))!=null?w:null,total:e.h(UU,{total:ln(t.total)?0:t.total})},M=t.layout.split(",").map(T=>T.trim());let P=!1;return M.forEach(T=>{if(T==="->"){P=!0;return}P?S.push(B[T]):E.push(B[T])}),C(E[0],l.is("first")),C(E[E.length-1],l.is("last")),P&&S.length>0&&(C(S[0],l.is("first")),C(S[S.length-1],l.is("last")),E.push(_)),e.h("div",{class:[l.b(),l.is("background",t.background),{[l.m("small")]:t.small}]},E)}}});const PS=Me(oG),RS=le({title:String,confirmButtonText:String,cancelButtonText:String,confirmButtonType:{type:String,values:fi,default:"primary"},cancelButtonType:{type:String,values:fi,default:"text"},icon:{type:ot,default:()=>OD},iconColor:{type:String,default:"#f90"},hideIcon:{type:Boolean,default:!1},hideAfter:{type:Number,default:200},teleported:Pt.teleported,persistent:Pt.persistent,width:{type:[String,Number],default:150}}),OS={confirm:t=>t instanceof MouseEvent,cancel:t=>t instanceof MouseEvent},rG=e.defineComponent({name:"ElPopconfirm"}),lG=e.defineComponent({...rG,props:RS,emits:OS,setup(t,{emit:n}){const o=t,{t:r}=Ke(),l=Q("popconfirm"),a=e.ref(),s=()=>{var p,h;(h=(p=a.value)==null?void 0:p.onClose)==null||h.call(p)},i=e.computed(()=>({width:kt(o.width)})),c=p=>{n("confirm",p),s()},f=p=>{n("cancel",p),s()},u=e.computed(()=>o.confirmButtonText||r("el.popconfirm.confirmButtonText")),d=e.computed(()=>o.cancelButtonText||r("el.popconfirm.cancelButtonText"));return(p,h)=>(e.openBlock(),e.createBlock(e.unref(Zt),e.mergeProps({ref_key:"tooltipRef",ref:a,trigger:"click",effect:"light"},p.$attrs,{"popper-class":`${e.unref(l).namespace.value}-popover`,"popper-style":e.unref(i),teleported:p.teleported,"fallback-placements":["bottom","top","right","left"],"hide-after":p.hideAfter,persistent:p.persistent}),{content:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("main"))},[!p.hideIcon&&p.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(l).e("icon")),style:e.normalizeStyle({color:p.iconColor})},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.icon)))]),_:1},8,["class","style"])):e.createCommentVNode("v-if",!0),e.createTextVNode(" "+e.toDisplayString(p.title),1)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("action"))},[e.createVNode(e.unref(At),{size:"small",type:p.cancelButtonType==="text"?"":p.cancelButtonType,text:p.cancelButtonType==="text",onClick:f},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(d)),1)]),_:1},8,["type","text"]),e.createVNode(e.unref(At),{size:"small",type:p.confirmButtonType==="text"?"":p.confirmButtonType,text:p.confirmButtonType==="text",onClick:c},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(u)),1)]),_:1},8,["type","text"])],2)],2)]),default:e.withCtx(()=>[p.$slots.reference?e.renderSlot(p.$slots,"reference",{key:0}):e.createCommentVNode("v-if",!0)]),_:3},16,["popper-class","popper-style","teleported","hide-after","persistent"]))}});var aG=se(lG,[["__file","popconfirm.vue"]]);const AS=Me(aG),zS=le({trigger:gl.trigger,placement:Ta.placement,disabled:gl.disabled,visible:Pt.visible,transition:Pt.transition,popperOptions:Ta.popperOptions,tabindex:Ta.tabindex,content:Pt.content,popperStyle:Pt.popperStyle,popperClass:Pt.popperClass,enterable:{...Pt.enterable,default:!0},effect:{...Pt.effect,default:"light"},teleported:Pt.teleported,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}}),DS={"update:visible":t=>Tt(t),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},sG="onUpdate:visible",iG=e.defineComponent({name:"ElPopover"}),cG=e.defineComponent({...iG,props:zS,emits:DS,setup(t,{expose:n,emit:o}){const r=t,l=e.computed(()=>r[sG]),a=Q("popover"),s=e.ref(),i=e.computed(()=>{var b;return(b=e.unref(s))==null?void 0:b.popperRef}),c=e.computed(()=>[{width:kt(r.width)},r.popperStyle]),f=e.computed(()=>[a.b(),r.popperClass,{[a.m("plain")]:!!r.content}]),u=e.computed(()=>r.transition===`${a.namespace.value}-fade-in-linear`),d=()=>{var b;(b=s.value)==null||b.hide()},p=()=>{o("before-enter")},h=()=>{o("before-leave")},g=()=>{o("after-enter")},m=()=>{o("update:visible",!1),o("after-leave")};return n({popperRef:i,hide:d}),(b,y)=>(e.openBlock(),e.createBlock(e.unref(Zt),e.mergeProps({ref_key:"tooltipRef",ref:s},b.$attrs,{trigger:b.trigger,placement:b.placement,disabled:b.disabled,visible:b.visible,transition:b.transition,"popper-options":b.popperOptions,tabindex:b.tabindex,content:b.content,offset:b.offset,"show-after":b.showAfter,"hide-after":b.hideAfter,"auto-close":b.autoClose,"show-arrow":b.showArrow,"aria-label":b.title,effect:b.effect,enterable:b.enterable,"popper-class":e.unref(f),"popper-style":e.unref(c),teleported:b.teleported,persistent:b.persistent,"gpu-acceleration":e.unref(u),"onUpdate:visible":e.unref(l),onBeforeShow:p,onBeforeHide:h,onShow:g,onHide:m}),{content:e.withCtx(()=>[b.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(a).e("title")),role:"title"},e.toDisplayString(b.title),3)):e.createCommentVNode("v-if",!0),e.renderSlot(b.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(b.content),1)])]),default:e.withCtx(()=>[b.$slots.reference?e.renderSlot(b.$slots,"reference",{key:0}):e.createCommentVNode("v-if",!0)]),_:3},16,["trigger","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","persistent","gpu-acceleration","onUpdate:visible"]))}});var dG=se(cG,[["__file","popover.vue"]]);const LS=(t,n)=>{const o=n.arg||n.value,r=o==null?void 0:o.popperRef;r&&(r.triggerRef=t)};var fG={mounted(t,n){LS(t,n)},updated(t,n){LS(t,n)}};const ip=lL(fG,"popover"),xS=Me(dG,{directive:ip}),FS=le({type:{type:String,default:"line",values:["line","circle","dashboard"]},percentage:{type:Number,default:0,validator:t=>t>=0&&t<=100},status:{type:String,default:"",values:["","success","exception","warning"]},indeterminate:{type:Boolean,default:!1},duration:{type:Number,default:3},strokeWidth:{type:Number,default:6},strokeLinecap:{type:W(String),default:"round"},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:W([String,Array,Function]),default:""},striped:Boolean,stripedFlow:Boolean,format:{type:W(Function),default:t=>`${t}%`}}),uG=["aria-valuenow"],pG={viewBox:"0 0 100 100"},mG=["d","stroke","stroke-linecap","stroke-width"],hG=["d","stroke","opacity","stroke-linecap","stroke-width"],gG={key:0},yG=e.defineComponent({name:"ElProgress"}),bG=e.defineComponent({...yG,props:FS,setup(t){const n=t,o={success:"#13ce66",exception:"#ff4949",warning:"#e6a23c",default:"#20a0ff"},r=Q("progress"),l=e.computed(()=>({width:`${n.percentage}%`,animationDuration:`${n.duration}s`,backgroundColor:C(n.percentage)})),a=e.computed(()=>(n.strokeWidth/n.width*100).toFixed(1)),s=e.computed(()=>["circle","dashboard"].includes(n.type)?Number.parseInt(`${50-Number.parseFloat(a.value)/2}`,10):0),i=e.computed(()=>{const k=s.value,w=n.type==="dashboard";return` + M 50 50 + m 0 ${w?"":"-"}${k} + a ${k} ${k} 0 1 1 0 ${w?"-":""}${k*2} + a ${k} ${k} 0 1 1 0 ${w?"":"-"}${k*2} + `}),c=e.computed(()=>2*Math.PI*s.value),f=e.computed(()=>n.type==="dashboard"?.75:1),u=e.computed(()=>`${-1*c.value*(1-f.value)/2}px`),d=e.computed(()=>({strokeDasharray:`${c.value*f.value}px, ${c.value}px`,strokeDashoffset:u.value})),p=e.computed(()=>({strokeDasharray:`${c.value*f.value*(n.percentage/100)}px, ${c.value}px`,strokeDashoffset:u.value,transition:"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s"})),h=e.computed(()=>{let k;return n.color?k=C(n.percentage):k=o[n.status]||o.default,k}),g=e.computed(()=>n.status==="warning"?Vs:n.type==="line"?n.status==="success"?Kd:Xo:n.status==="success"?la:Hn),m=e.computed(()=>n.type==="line"?12+n.strokeWidth*.4:n.width*.111111+2),b=e.computed(()=>n.format(n.percentage));function y(k){const w=100/k.length;return k.map((S,_)=>De(S)?{color:S,percentage:(_+1)*w}:S).sort((S,_)=>S.percentage-_.percentage)}const C=k=>{var w;const{color:E}=n;if(qe(E))return E(k);if(De(E))return E;{const S=y(E);for(const _ of S)if(_.percentage>k)return _.color;return(w=S[S.length-1])==null?void 0:w.color}};return(k,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(r).b(),e.unref(r).m(k.type),e.unref(r).is(k.status),{[e.unref(r).m("without-text")]:!k.showText,[e.unref(r).m("text-inside")]:k.textInside}]),role:"progressbar","aria-valuenow":k.percentage,"aria-valuemin":"0","aria-valuemax":"100"},[k.type==="line"?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).b("bar"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).be("bar","outer")),style:e.normalizeStyle({height:`${k.strokeWidth}px`})},[e.createElementVNode("div",{class:e.normalizeClass([e.unref(r).be("bar","inner"),{[e.unref(r).bem("bar","inner","indeterminate")]:k.indeterminate},{[e.unref(r).bem("bar","inner","striped")]:k.striped},{[e.unref(r).bem("bar","inner","striped-flow")]:k.stripedFlow}]),style:e.normalizeStyle(e.unref(l))},[(k.showText||k.$slots.default)&&k.textInside?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).be("bar","innerText"))},[e.renderSlot(k.$slots,"default",{percentage:k.percentage},()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(b)),1)])],2)):e.createCommentVNode("v-if",!0)],6)],6)],2)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(r).b("circle")),style:e.normalizeStyle({height:`${k.width}px`,width:`${k.width}px`})},[(e.openBlock(),e.createElementBlock("svg",pG,[e.createElementVNode("path",{class:e.normalizeClass(e.unref(r).be("circle","track")),d:e.unref(i),stroke:`var(${e.unref(r).cssVarName("fill-color-light")}, #e5e9f2)`,"stroke-linecap":k.strokeLinecap,"stroke-width":e.unref(a),fill:"none",style:e.normalizeStyle(e.unref(d))},null,14,mG),e.createElementVNode("path",{class:e.normalizeClass(e.unref(r).be("circle","path")),d:e.unref(i),stroke:e.unref(h),fill:"none",opacity:k.percentage?1:0,"stroke-linecap":k.strokeLinecap,"stroke-width":e.unref(a),style:e.normalizeStyle(e.unref(p))},null,14,hG)]))],6)),(k.showText||k.$slots.default)&&!k.textInside?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(e.unref(r).e("text")),style:e.normalizeStyle({fontSize:`${e.unref(m)}px`})},[e.renderSlot(k.$slots,"default",{percentage:k.percentage},()=>[k.status?(e.openBlock(),e.createBlock(e.unref(fe),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(g))))]),_:1})):(e.openBlock(),e.createElementBlock("span",gG,e.toDisplayString(e.unref(b)),1))])],6)):e.createCommentVNode("v-if",!0)],10,uG))}});var CG=se(bG,[["__file","progress.vue"]]);const cp=Me(CG),HS=le({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:W([Array,Object]),default:()=>ut(["","",""])},voidColor:{type:String,default:""},disabledVoidColor:{type:String,default:""},icons:{type:W([Array,Object]),default:()=>[vs,vs,vs]},voidIcon:{type:ot,default:()=>XD},disabledVoidIcon:{type:ot,default:()=>vs},disabled:Boolean,allowHalf:Boolean,showText:Boolean,showScore:Boolean,textColor:{type:String,default:""},texts:{type:W(Array),default:()=>ut(["Extremely bad","Disappointed","Fair","Satisfied","Surprise"])},scoreTemplate:{type:String,default:"{value}"},size:Vt,label:{type:String,default:void 0},clearable:{type:Boolean,default:!1}}),KS={[at]:t=>be(t),[Ie]:t=>be(t)},wG=["id","aria-label","aria-labelledby","aria-valuenow","aria-valuetext","aria-valuemax"],kG=["onMousemove","onClick"],SG=e.defineComponent({name:"ElRate"}),EG=e.defineComponent({...SG,props:HS,emits:KS,setup(t,{expose:n,emit:o}){const r=t;function l(z,$){const R=x=>nt(x),N=Object.keys($).map(x=>+x).filter(x=>{const H=$[x];return(R(H)?H.excluded:!1)?zx-H),A=$[N[0]];return R(A)&&A.value||A}const a=e.inject(nr,void 0),s=e.inject(Gn,void 0),i=St(),c=Q("rate"),{inputId:f,isLabeledByFormItem:u}=vo(r,{formItemContext:s}),d=e.ref(r.modelValue),p=e.ref(-1),h=e.ref(!0),g=e.computed(()=>[c.b(),c.m(i.value)]),m=e.computed(()=>r.disabled||(a==null?void 0:a.disabled)),b=e.computed(()=>c.cssVarBlock({"void-color":r.voidColor,"disabled-void-color":r.disabledVoidColor,"fill-color":w.value})),y=e.computed(()=>{let z="";return r.showScore?z=r.scoreTemplate.replace(/\{\s*value\s*\}/,m.value?`${r.modelValue}`:`${d.value}`):r.showText&&(z=r.texts[Math.ceil(d.value)-1]),z}),C=e.computed(()=>r.modelValue*100-Math.floor(r.modelValue)*100),k=e.computed(()=>Re(r.colors)?{[r.lowThreshold]:r.colors[0],[r.highThreshold]:{value:r.colors[1],excluded:!0},[r.max]:r.colors[2]}:r.colors),w=e.computed(()=>{const z=l(d.value,k.value);return nt(z)?"":z}),E=e.computed(()=>{let z="";return m.value?z=`${C.value}%`:r.allowHalf&&(z="50%"),{color:w.value,width:z}}),S=e.computed(()=>{let z=Re(r.icons)?[...r.icons]:{...r.icons};return z=e.markRaw(z),Re(z)?{[r.lowThreshold]:z[0],[r.highThreshold]:{value:z[1],excluded:!0},[r.max]:z[2]}:z}),_=e.computed(()=>l(r.modelValue,S.value)),B=e.computed(()=>m.value?De(r.disabledVoidIcon)?r.disabledVoidIcon:e.markRaw(r.disabledVoidIcon):De(r.voidIcon)?r.voidIcon:e.markRaw(r.voidIcon)),M=e.computed(()=>l(d.value,S.value));function P(z){const $=m.value&&C.value>0&&z-1r.modelValue,R=r.allowHalf&&h.value&&z-.5<=d.value&&z>d.value;return $||R}function T(z){r.clearable&&z===r.modelValue&&(z=0),o(Ie,z),r.modelValue!==z&&o("change",z)}function I(z){m.value||(r.allowHalf&&h.value?T(d.value):T(z))}function v(z){if(m.value)return;let $=d.value;const R=z.code;return R===pe.up||R===pe.right?(r.allowHalf?$+=.5:$+=1,z.stopPropagation(),z.preventDefault()):(R===pe.left||R===pe.down)&&(r.allowHalf?$-=.5:$-=1,z.stopPropagation(),z.preventDefault()),$=$<0?0:$,$=$>r.max?r.max:$,o(Ie,$),o("change",$),$}function O(z,$){if(!m.value){if(r.allowHalf&&$){let R=$.target;Fn(R,c.e("item"))&&(R=R.querySelector(`.${c.e("icon")}`)),(R.clientWidth===0||Fn(R,c.e("decimal")))&&(R=R.parentNode),h.value=$.offsetX*2<=R.clientWidth,d.value=h.value?z-.5:z}else d.value=z;p.value=z}}function D(){m.value||(r.allowHalf&&(h.value=r.modelValue!==Math.floor(r.modelValue)),d.value=r.modelValue,p.value=-1)}return e.watch(()=>r.modelValue,z=>{d.value=z,h.value=r.modelValue!==Math.floor(r.modelValue)}),r.modelValue||o(Ie,0),n({setCurrentValue:O,resetCurrentValue:D}),(z,$)=>{var R;return e.openBlock(),e.createElementBlock("div",{id:e.unref(f),class:e.normalizeClass([e.unref(g),e.unref(c).is("disabled",e.unref(m))]),role:"slider","aria-label":e.unref(u)?void 0:z.label||"rating","aria-labelledby":e.unref(u)?(R=e.unref(s))==null?void 0:R.labelId:void 0,"aria-valuenow":d.value,"aria-valuetext":e.unref(y)||void 0,"aria-valuemin":"0","aria-valuemax":z.max,tabindex:"0",style:e.normalizeStyle(e.unref(b)),onKeydown:v},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(z.max,(N,A)=>(e.openBlock(),e.createElementBlock("span",{key:A,class:e.normalizeClass(e.unref(c).e("item")),onMousemove:x=>O(N,x),onMouseleave:D,onClick:x=>I(N)},[e.createVNode(e.unref(fe),{class:e.normalizeClass([e.unref(c).e("icon"),{hover:p.value===N},e.unref(c).is("active",N<=d.value)])},{default:e.withCtx(()=>[P(N)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(M)),null,null,512)),[[e.vShow,N<=d.value]]),e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(B)),null,null,512)),[[e.vShow,!(N<=d.value)]])],64)),P(N)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(B)),{class:e.normalizeClass([e.unref(c).em("decimal","box")])},null,8,["class"])),e.createVNode(e.unref(fe),{style:e.normalizeStyle(e.unref(E)),class:e.normalizeClass([e.unref(c).e("icon"),e.unref(c).e("decimal")])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(_))))]),_:1},8,["style","class"])],64)):e.createCommentVNode("v-if",!0)]),_:2},1032,["class"])],42,kG))),128)),z.showText||z.showScore?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(c).e("text")),style:e.normalizeStyle({color:z.textColor})},e.toDisplayString(e.unref(y)),7)):e.createCommentVNode("v-if",!0)],46,wG)}}});var NG=se(EG,[["__file","rate.vue"]]);const WS=Me(NG),zr={success:"icon-success",warning:"icon-warning",error:"icon-error",info:"icon-info"},dp={[zr.success]:iD,[zr.warning]:Vs,[zr.error]:Wd,[zr.info]:jd},jS=le({title:{type:String,default:""},subTitle:{type:String,default:""},icon:{type:String,values:["success","warning","info","error"],default:"info"}}),_G=e.defineComponent({name:"ElResult"}),BG=e.defineComponent({..._G,props:jS,setup(t){const n=t,o=Q("result"),r=e.computed(()=>{const l=n.icon,a=l&&zr[l]?zr[l]:"icon-info",s=dp[a]||dp["icon-info"];return{class:a,component:s}});return(l,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(o).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("icon"))},[e.renderSlot(l.$slots,"icon",{},()=>[e.unref(r).component?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(r).component),{key:0,class:e.normalizeClass(e.unref(r).class)},null,8,["class"])):e.createCommentVNode("v-if",!0)])],2),l.title||l.$slots.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).e("title"))},[e.renderSlot(l.$slots,"title",{},()=>[e.createElementVNode("p",null,e.toDisplayString(l.title),1)])],2)):e.createCommentVNode("v-if",!0),l.subTitle||l.$slots["sub-title"]?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(o).e("subtitle"))},[e.renderSlot(l.$slots,"sub-title",{},()=>[e.createElementVNode("p",null,e.toDisplayString(l.subTitle),1)])],2)):e.createCommentVNode("v-if",!0),l.$slots.extra?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(e.unref(o).e("extra"))},[e.renderSlot(l.$slots,"extra")],2)):e.createCommentVNode("v-if",!0)],2))}});var $G=se(BG,[["__file","result.vue"]]);const US=Me($G);var GS=Number.isNaN||function(n){return typeof n=="number"&&n!==n};function TG(t,n){return!!(t===n||GS(t)&&GS(n))}function vG(t,n){if(t.length!==n.length)return!1;for(var o=0;o{const n=e.getCurrentInstance().proxy.$props;return e.computed(()=>{const o=(r,l,a)=>({});return n.perfMode?Gl(o):VG(o)})},fp=50,Di="itemRendered",Li="scroll",kl="forward",xi="backward",An="auto",Fi="smart",Ma="start",ho="center",Ia="end",Sl="horizontal",up="vertical",MG="ltr",El="rtl",Pa="negative",pp="positive-ascending",mp="positive-descending",IG={[Sl]:"left",[up]:"top"},PG=20,RG={[Sl]:"deltaX",[up]:"deltaY"};var OG=({atEndEdge:t,atStartEdge:n,layout:o},r)=>{let l,a=0;const s=c=>c<0&&n.value||c>0&&t.value;return{hasReachedEdge:s,onWheel:c=>{Rs(l);const f=c[RG[o.value]];s(a)&&s(a+f)||(a+=f,Lm()||c.preventDefault(),l=rl(()=>{r(a),a=0}))}}};const hp=Kn({type:W([Number,Function]),required:!0}),gp=Kn({type:Number}),yp=Kn({type:Number,default:2}),AG=Kn({type:String,values:["ltr","rtl"],default:"ltr"}),bp=Kn({type:Number,default:0}),Hi=Kn({type:Number,required:!0}),YS=Kn({type:String,values:["horizontal","vertical"],default:up}),Cp=le({className:{type:String,default:""},containerElement:{type:W([String,Object]),default:"div"},data:{type:W(Array),default:()=>ut([])},direction:AG,height:{type:[String,Number],required:!0},innerElement:{type:[String,Object],default:"div"},style:{type:W([Object,String,Array])},useIsScrolling:{type:Boolean,default:!1},width:{type:[Number,String],required:!1},perfMode:{type:Boolean,default:!0},scrollbarAlwaysOn:{type:Boolean,default:!1}}),wp=le({cache:yp,estimatedItemSize:gp,layout:YS,initScrollOffset:bp,total:Hi,itemSize:hp,...Cp}),kp={type:Number,default:6},XS={type:Number,default:0},ZS={type:Number,default:2},ir=le({columnCache:yp,columnWidth:hp,estimatedColumnWidth:gp,estimatedRowHeight:gp,initScrollLeft:bp,initScrollTop:bp,itemKey:{type:W(Function),default:({columnIndex:t,rowIndex:n})=>`${n}:${t}`},rowCache:yp,rowHeight:hp,totalColumn:Hi,totalRow:Hi,hScrollbarSize:kp,vScrollbarSize:kp,scrollbarStartGap:XS,scrollbarEndGap:ZS,role:String,...Cp}),Sp=le({alwaysOn:Boolean,class:String,layout:YS,total:Hi,ratio:{type:Number,required:!0},clientSize:{type:Number,required:!0},scrollFrom:{type:Number,required:!0},scrollbarSize:kp,startGap:XS,endGap:ZS,visible:Boolean}),Dr=(t,n)=>tt===MG||t===El||t===Sl,JS=t=>t===El;let Nl=null;function Ki(t=!1){if(Nl===null||t){const n=document.createElement("div"),o=n.style;o.width="50px",o.height="50px",o.overflow="scroll",o.direction="rtl";const r=document.createElement("div"),l=r.style;return l.width="100px",l.height="100px",n.appendChild(r),document.body.appendChild(n),n.scrollLeft>0?Nl=mp:(n.scrollLeft=1,n.scrollLeft===0?Nl=Pa:Nl=pp),document.body.removeChild(n),Nl}return Nl}function zG({move:t,size:n,bar:o},r){const l={},a=`translate${o.axis}(${t}px)`;return l[o.size]=n,l.transform=a,l.msTransform=a,l.webkitTransform=a,r==="horizontal"?l.height="100%":l.width="100%",l}var Ep=e.defineComponent({name:"ElVirtualScrollBar",props:Sp,emits:["scroll","start-move","stop-move"],setup(t,{emit:n}){const o=e.computed(()=>t.startGap+t.endGap),r=Q("virtual-scrollbar"),l=Q("scrollbar"),a=e.ref(),s=e.ref();let i=null,c=null;const f=e.reactive({isDragging:!1,traveled:0}),u=e.computed(()=>Rf[t.layout]),d=e.computed(()=>t.clientSize-e.unref(o)),p=e.computed(()=>({position:"absolute",width:`${Sl===t.layout?d.value:t.scrollbarSize}px`,height:`${Sl===t.layout?t.scrollbarSize:d.value}px`,[IG[t.layout]]:"2px",right:"2px",bottom:"2px",borderRadius:"4px"})),h=e.computed(()=>{const S=t.ratio,_=t.clientSize;if(S>=100)return Number.POSITIVE_INFINITY;if(S>=50)return S*_/100;const B=_/3;return Math.floor(Math.min(Math.max(S*_,PG),B))}),g=e.computed(()=>{if(!Number.isFinite(h.value))return{display:"none"};const S=`${h.value}px`;return zG({bar:u.value,size:S,move:f.traveled},t.layout)}),m=e.computed(()=>Math.floor(t.clientSize-h.value-e.unref(o))),b=()=>{window.addEventListener("mousemove",w),window.addEventListener("mouseup",k);const S=e.unref(s);!S||(c=document.onselectstart,document.onselectstart=()=>!1,S.addEventListener("touchmove",w),S.addEventListener("touchend",k))},y=()=>{window.removeEventListener("mousemove",w),window.removeEventListener("mouseup",k),document.onselectstart=c,c=null;const S=e.unref(s);!S||(S.removeEventListener("touchmove",w),S.removeEventListener("touchend",k))},C=S=>{S.stopImmediatePropagation(),!(S.ctrlKey||[1,2].includes(S.button))&&(f.isDragging=!0,f[u.value.axis]=S.currentTarget[u.value.offset]-(S[u.value.client]-S.currentTarget.getBoundingClientRect()[u.value.direction]),n("start-move"),b())},k=()=>{f.isDragging=!1,f[u.value.axis]=0,n("stop-move"),y()},w=S=>{const{isDragging:_}=f;if(!_||!s.value||!a.value)return;const B=f[u.value.axis];if(!B)return;Rs(i);const M=(a.value.getBoundingClientRect()[u.value.direction]-S[u.value.client])*-1,P=s.value[u.value.offset]-B,T=M-P;i=rl(()=>{f.traveled=Math.max(t.startGap,Math.min(T,m.value)),n("scroll",T,m.value)})},E=S=>{const _=Math.abs(S.target.getBoundingClientRect()[u.value.direction]-S[u.value.client]),B=s.value[u.value.offset]/2,M=_-B;f.traveled=Math.max(0,Math.min(M,m.value)),n("scroll",M,m.value)};return e.watch(()=>t.scrollFrom,S=>{f.isDragging||(f.traveled=Math.ceil(S*m.value))}),e.onBeforeUnmount(()=>{y()}),()=>e.h("div",{role:"presentation",ref:a,class:[r.b(),t.class,(t.alwaysOn||f.isDragging)&&"always-on"],style:p.value,onMousedown:e.withModifiers(E,["stop","prevent"]),onTouchstartPrevent:C},e.h("div",{ref:s,class:l.e("thumb"),style:g.value,onMousedown:C},[]))}}),QS=({name:t,getOffset:n,getItemSize:o,getItemOffset:r,getEstimatedTotalSize:l,getStartIndexForOffset:a,getStopIndexForStartIndex:s,initCache:i,clearCache:c,validateProps:f})=>e.defineComponent({name:t!=null?t:"ElVirtualList",props:wp,emits:[Di,Li],setup(u,{emit:d,expose:p}){f(u);const h=e.getCurrentInstance(),g=Q("vl"),m=e.ref(i(u,h)),b=qS(),y=e.ref(),C=e.ref(),k=e.ref(),w=e.ref({isScrolling:!1,scrollDir:"forward",scrollOffset:be(u.initScrollOffset)?u.initScrollOffset:0,updateRequested:!1,isScrollbarDragging:!1,scrollbarAlwaysOn:u.scrollbarAlwaysOn}),E=e.computed(()=>{const{total:K,cache:q}=u,{isScrolling:ne,scrollDir:Y,scrollOffset:Z}=e.unref(w);if(K===0)return[0,0,0,0];const U=a(u,Z,e.unref(m)),re=s(u,U,Z,e.unref(m)),te=!ne||Y===xi?Math.max(1,q):1,oe=!ne||Y===kl?Math.max(1,q):1;return[Math.max(0,U-te),Math.max(0,Math.min(K-1,re+oe)),U,re]}),S=e.computed(()=>l(u,e.unref(m))),_=e.computed(()=>Ra(u.layout)),B=e.computed(()=>[{position:"relative",[`overflow-${_.value?"x":"y"}`]:"scroll",WebkitOverflowScrolling:"touch",willChange:"transform"},{direction:u.direction,height:be(u.height)?`${u.height}px`:u.height,width:be(u.width)?`${u.width}px`:u.width},u.style]),M=e.computed(()=>{const K=e.unref(S),q=e.unref(_);return{height:q?"100%":`${K}px`,pointerEvents:e.unref(w).isScrolling?"none":void 0,width:q?`${K}px`:"100%"}}),P=e.computed(()=>_.value?u.width:u.height),{onWheel:T}=OG({atStartEdge:e.computed(()=>w.value.scrollOffset<=0),atEndEdge:e.computed(()=>w.value.scrollOffset>=S.value),layout:e.computed(()=>u.layout)},K=>{var q,ne;(ne=(q=k.value).onMouseUp)==null||ne.call(q),$(Math.min(w.value.scrollOffset+K,S.value-P.value))}),I=()=>{const{total:K}=u;if(K>0){const[Z,U,re,te]=e.unref(E);d(Di,Z,U,re,te)}const{scrollDir:q,scrollOffset:ne,updateRequested:Y}=e.unref(w);d(Li,q,ne,Y)},v=K=>{const{clientHeight:q,scrollHeight:ne,scrollTop:Y}=K.currentTarget,Z=e.unref(w);if(Z.scrollOffset===Y)return;const U=Math.max(0,Math.min(Y,ne-q));w.value={...Z,isScrolling:!0,scrollDir:Dr(Z.scrollOffset,U),scrollOffset:U,updateRequested:!1},e.nextTick(A)},O=K=>{const{clientWidth:q,scrollLeft:ne,scrollWidth:Y}=K.currentTarget,Z=e.unref(w);if(Z.scrollOffset===ne)return;const{direction:U}=u;let re=ne;if(U===El)switch(Ki()){case Pa:{re=-ne;break}case mp:{re=Y-q-ne;break}}re=Math.max(0,Math.min(re,Y-q)),w.value={...Z,isScrolling:!0,scrollDir:Dr(Z.scrollOffset,re),scrollOffset:re,updateRequested:!1},e.nextTick(A)},D=K=>{e.unref(_)?O(K):v(K),I()},z=(K,q)=>{const ne=(S.value-P.value)/q*K;$(Math.min(S.value-P.value,ne))},$=K=>{K=Math.max(K,0),K!==e.unref(w).scrollOffset&&(w.value={...e.unref(w),scrollOffset:K,scrollDir:Dr(e.unref(w).scrollOffset,K),updateRequested:!0},e.nextTick(A))},R=(K,q=An)=>{const{scrollOffset:ne}=e.unref(w);K=Math.max(0,Math.min(K,u.total-1)),$(n(u,K,q,ne,e.unref(m)))},N=K=>{const{direction:q,itemSize:ne,layout:Y}=u,Z=b.value(c&&ne,c&&Y,c&&q);let U;if(Lt(Z,String(K)))U=Z[K];else{const re=r(u,K,e.unref(m)),te=o(u,K,e.unref(m)),oe=e.unref(_),ie=q===El,ye=oe?re:0;Z[K]=U={position:"absolute",left:ie?void 0:`${ye}px`,right:ie?`${ye}px`:void 0,top:oe?0:`${re}px`,height:oe?"100%":`${te}px`,width:oe?`${te}px`:"100%"}}return U},A=()=>{w.value.isScrolling=!1,e.nextTick(()=>{b.value(-1,null,null)})},x=()=>{const K=y.value;K&&(K.scrollTop=0)};e.onMounted(()=>{if(!He)return;const{initScrollOffset:K}=u,q=e.unref(y);be(K)&&q&&(e.unref(_)?q.scrollLeft=K:q.scrollTop=K),I()}),e.onUpdated(()=>{const{direction:K,layout:q}=u,{scrollOffset:ne,updateRequested:Y}=e.unref(w),Z=e.unref(y);if(Y&&Z)if(q===Sl)if(K===El)switch(Ki()){case Pa:{Z.scrollLeft=-ne;break}case pp:{Z.scrollLeft=ne;break}default:{const{clientWidth:U,scrollWidth:re}=Z;Z.scrollLeft=re-U-ne;break}}else Z.scrollLeft=ne;else Z.scrollTop=ne});const H={ns:g,clientSize:P,estimatedTotalSize:S,windowStyle:B,windowRef:y,innerRef:C,innerStyle:M,itemsToRender:E,scrollbarRef:k,states:w,getItemStyle:N,onScroll:D,onScrollbarScroll:z,onWheel:T,scrollTo:$,scrollToItem:R,resetScrollTop:x};return p({windowRef:y,innerRef:C,getItemStyleCache:b,scrollTo:$,scrollToItem:R,resetScrollTop:x,states:w}),H},render(u){var d;const{$slots:p,className:h,clientSize:g,containerElement:m,data:b,getItemStyle:y,innerElement:C,itemsToRender:k,innerStyle:w,layout:E,total:S,onScroll:_,onScrollbarScroll:B,onWheel:M,states:P,useIsScrolling:T,windowStyle:I,ns:v}=u,[O,D]=k,z=e.resolveDynamicComponent(m),$=e.resolveDynamicComponent(C),R=[];if(S>0)for(let H=O;H<=D;H++)R.push((d=p.default)==null?void 0:d.call(p,{data:b,key:H,index:H,isScrolling:T?P.isScrolling:void 0,style:y(H)}));const N=[e.h($,{style:w,ref:"innerRef"},De($)?R:{default:()=>R})],A=e.h(Ep,{ref:"scrollbarRef",clientSize:g,layout:E,onScroll:B,ratio:g*100/this.estimatedTotalSize,scrollFrom:P.scrollOffset/(this.estimatedTotalSize-g),total:S}),x=e.h(z,{class:[v.e("window"),h],style:I,onScroll:_,onWheel:M,ref:"windowRef",key:0},De(z)?[N]:{default:()=>[N]});return e.h("div",{key:0,class:[v.e("wrapper"),P.scrollbarAlwaysOn?"always-on":""]},[x,A])}}),Np=QS({name:"ElFixedSizeList",getItemOffset:({itemSize:t},n)=>n*t,getItemSize:({itemSize:t})=>t,getEstimatedTotalSize:({total:t,itemSize:n})=>n*t,getOffset:({height:t,total:n,itemSize:o,layout:r,width:l},a,s,i)=>{const c=Ra(r)?l:t,f=Math.max(0,n*o-c),u=Math.min(f,a*o),d=Math.max(0,(a+1)*o-c);switch(s===Fi&&(i>=d-c&&i<=u+c?s=An:s=ho),s){case Ma:return u;case Ia:return d;case ho:{const p=Math.round(d+(u-d)/2);return pf+Math.floor(c/2)?f:p}case An:default:return i>=d&&i<=u?i:iMath.max(0,Math.min(t-1,Math.floor(o/n))),getStopIndexForStartIndex:({height:t,total:n,itemSize:o,layout:r,width:l},a,s)=>{const i=a*o,c=Ra(r)?l:t,f=Math.ceil((c+s-i)/o);return Math.max(0,Math.min(n-1,a+f-1))},initCache(){},clearCache:!0,validateProps(){}});const _l=(t,n,o)=>{const{itemSize:r}=t,{items:l,lastVisitedIndex:a}=o;if(n>a){let s=0;if(a>=0){const i=l[a];s=i.offset+i.size}for(let i=a+1;i<=n;i++){const c=r(i);l[i]={offset:s,size:c},s+=c}o.lastVisitedIndex=n}return l[n]},DG=(t,n,o)=>{const{items:r,lastVisitedIndex:l}=n;return(l>0?r[l].offset:0)>=o?eE(t,n,0,l,o):LG(t,n,Math.max(0,l),o)},eE=(t,n,o,r,l)=>{for(;o<=r;){const a=o+Math.floor((r-o)/2),s=_l(t,a,n).offset;if(s===l)return a;sl&&(r=a-1)}return Math.max(0,o-1)},LG=(t,n,o,r)=>{const{total:l}=t;let a=1;for(;o{let l=0;if(r>=t&&(r=t-1),r>=0){const i=n[r];l=i.offset+i.size}const s=(t-r-1)*o;return l+s};var nE=QS({name:"ElDynamicSizeList",getItemOffset:(t,n,o)=>_l(t,n,o).offset,getItemSize:(t,n,{items:o})=>o[n].size,getEstimatedTotalSize:tE,getOffset:(t,n,o,r,l)=>{const{height:a,layout:s,width:i}=t,c=Ra(s)?i:a,f=_l(t,n,l),u=tE(t,l),d=Math.max(0,Math.min(u-c,f.offset)),p=Math.max(0,f.offset-c+f.size);switch(o===Fi&&(r>=p-c&&r<=d+c?o=An:o=ho),o){case Ma:return d;case Ia:return p;case ho:return Math.round(p+(d-p)/2);case An:default:return r>=p&&r<=d?r:rDG(t,o,n),getStopIndexForStartIndex:(t,n,o,r)=>{const{height:l,total:a,layout:s,width:i}=t,c=Ra(s)?i:l,f=_l(t,n,r),u=o+c;let d=f.offset+f.size,p=n;for(;p{var a,s;o.lastVisitedIndex=Math.min(o.lastVisitedIndex,r-1),(a=n.exposed)==null||a.getItemStyleCache(-1),l&&((s=n.proxy)==null||s.$forceUpdate())},o},clearCache:!1,validateProps:({itemSize:t})=>{}});const xG=({atXEndEdge:t,atXStartEdge:n,atYEndEdge:o,atYStartEdge:r},l)=>{let a=null,s=0,i=0;const c=(u,d)=>{const p=u<=0&&n.value||u>=0&&t.value,h=d<=0&&r.value||d>=0&&o.value;return p&&h};return{hasReachedEdge:c,onWheel:u=>{Rs(a);let d=u.deltaX,p=u.deltaY;Math.abs(d)>Math.abs(p)?p=0:d=0,u.shiftKey&&p!==0&&(d=p,p=0),!(c(s,i)&&c(s+d,i+p))&&(s+=d,i+=p,u.preventDefault(),a=rl(()=>{l(s,i),s=0,i=0}))}}};var oE=({name:t,clearCache:n,getColumnPosition:o,getColumnStartIndexForOffset:r,getColumnStopIndexForStartIndex:l,getEstimatedTotalHeight:a,getEstimatedTotalWidth:s,getColumnOffset:i,getRowOffset:c,getRowPosition:f,getRowStartIndexForOffset:u,getRowStopIndexForStartIndex:d,initCache:p,injectToInstance:h,validateProps:g})=>e.defineComponent({name:t!=null?t:"ElVirtualList",props:ir,emits:[Di,Li],setup(m,{emit:b,expose:y,slots:C}){const k=Q("vl");g(m);const w=e.getCurrentInstance(),E=e.ref(p(m,w));h==null||h(w,E);const S=e.ref(),_=e.ref(),B=e.ref(),M=e.ref(null),P=e.ref({isScrolling:!1,scrollLeft:be(m.initScrollLeft)?m.initScrollLeft:0,scrollTop:be(m.initScrollTop)?m.initScrollTop:0,updateRequested:!1,xAxisScrollDir:kl,yAxisScrollDir:kl}),T=qS(),I=e.computed(()=>Number.parseInt(`${m.height}`,10)),v=e.computed(()=>Number.parseInt(`${m.width}`,10)),O=e.computed(()=>{const{totalColumn:he,totalRow:Ce,columnCache:ge}=m,{isScrolling:me,xAxisScrollDir:_e,scrollLeft:$e}=e.unref(P);if(he===0||Ce===0)return[0,0,0,0];const Ae=r(m,$e,e.unref(E)),Oe=l(m,Ae,$e,e.unref(E)),ce=!me||_e===xi?Math.max(1,ge):1,Ee=!me||_e===kl?Math.max(1,ge):1;return[Math.max(0,Ae-ce),Math.max(0,Math.min(he-1,Oe+Ee)),Ae,Oe]}),D=e.computed(()=>{const{totalColumn:he,totalRow:Ce,rowCache:ge}=m,{isScrolling:me,yAxisScrollDir:_e,scrollTop:$e}=e.unref(P);if(he===0||Ce===0)return[0,0,0,0];const Ae=u(m,$e,e.unref(E)),Oe=d(m,Ae,$e,e.unref(E)),ce=!me||_e===xi?Math.max(1,ge):1,Ee=!me||_e===kl?Math.max(1,ge):1;return[Math.max(0,Ae-ce),Math.max(0,Math.min(Ce-1,Oe+Ee)),Ae,Oe]}),z=e.computed(()=>a(m,e.unref(E))),$=e.computed(()=>s(m,e.unref(E))),R=e.computed(()=>{var he;return[{position:"relative",overflow:"hidden",WebkitOverflowScrolling:"touch",willChange:"transform"},{direction:m.direction,height:be(m.height)?`${m.height}px`:m.height,width:be(m.width)?`${m.width}px`:m.width},(he=m.style)!=null?he:{}]}),N=e.computed(()=>{const he=`${e.unref($)}px`;return{height:`${e.unref(z)}px`,pointerEvents:e.unref(P).isScrolling?"none":void 0,width:he}}),A=()=>{const{totalColumn:he,totalRow:Ce}=m;if(he>0&&Ce>0){const[Oe,ce,Ee,Le]=e.unref(O),[Xe,Qe,ke,J]=e.unref(D);b(Di,{columnCacheStart:Oe,columnCacheEnd:ce,rowCacheStart:Xe,rowCacheEnd:Qe,columnVisibleStart:Ee,columnVisibleEnd:Le,rowVisibleStart:ke,rowVisibleEnd:J})}const{scrollLeft:ge,scrollTop:me,updateRequested:_e,xAxisScrollDir:$e,yAxisScrollDir:Ae}=e.unref(P);b(Li,{xAxisScrollDir:$e,scrollLeft:ge,yAxisScrollDir:Ae,scrollTop:me,updateRequested:_e})},x=he=>{const{clientHeight:Ce,clientWidth:ge,scrollHeight:me,scrollLeft:_e,scrollTop:$e,scrollWidth:Ae}=he.currentTarget,Oe=e.unref(P);if(Oe.scrollTop===$e&&Oe.scrollLeft===_e)return;let ce=_e;if(JS(m.direction))switch(Ki()){case Pa:ce=-_e;break;case mp:ce=Ae-ge-_e;break}P.value={...Oe,isScrolling:!0,scrollLeft:ce,scrollTop:Math.max(0,Math.min($e,me-Ce)),updateRequested:!0,xAxisScrollDir:Dr(Oe.scrollLeft,ce),yAxisScrollDir:Dr(Oe.scrollTop,$e)},e.nextTick(()=>U()),re(),A()},H=(he,Ce)=>{const ge=e.unref(I),me=(z.value-ge)/Ce*he;ne({scrollTop:Math.min(z.value-ge,me)})},K=(he,Ce)=>{const ge=e.unref(v),me=($.value-ge)/Ce*he;ne({scrollLeft:Math.min($.value-ge,me)})},{onWheel:q}=xG({atXStartEdge:e.computed(()=>P.value.scrollLeft<=0),atXEndEdge:e.computed(()=>P.value.scrollLeft>=$.value-e.unref(v)),atYStartEdge:e.computed(()=>P.value.scrollTop<=0),atYEndEdge:e.computed(()=>P.value.scrollTop>=z.value-e.unref(I))},(he,Ce)=>{var ge,me,_e,$e;(me=(ge=_.value)==null?void 0:ge.onMouseUp)==null||me.call(ge),($e=(_e=B.value)==null?void 0:_e.onMouseUp)==null||$e.call(_e);const Ae=e.unref(v),Oe=e.unref(I);ne({scrollLeft:Math.min(P.value.scrollLeft+he,$.value-Ae),scrollTop:Math.min(P.value.scrollTop+Ce,z.value-Oe)})}),ne=({scrollLeft:he=P.value.scrollLeft,scrollTop:Ce=P.value.scrollTop})=>{he=Math.max(he,0),Ce=Math.max(Ce,0);const ge=e.unref(P);Ce===ge.scrollTop&&he===ge.scrollLeft||(P.value={...ge,xAxisScrollDir:Dr(ge.scrollLeft,he),yAxisScrollDir:Dr(ge.scrollTop,Ce),scrollLeft:he,scrollTop:Ce,updateRequested:!0},e.nextTick(()=>U()),re(),A())},Y=(he=0,Ce=0,ge=An)=>{const me=e.unref(P);Ce=Math.max(0,Math.min(Ce,m.totalColumn-1)),he=Math.max(0,Math.min(he,m.totalRow-1));const _e=Cy(k.namespace.value),$e=e.unref(E),Ae=a(m,$e),Oe=s(m,$e);ne({scrollLeft:i(m,Ce,ge,me.scrollLeft,$e,Oe>m.width?_e:0),scrollTop:c(m,he,ge,me.scrollTop,$e,Ae>m.height?_e:0)})},Z=(he,Ce)=>{const{columnWidth:ge,direction:me,rowHeight:_e}=m,$e=T.value(n&&ge,n&&_e,n&&me),Ae=`${he},${Ce}`;if(Lt($e,Ae))return $e[Ae];{const[,Oe]=o(m,Ce,e.unref(E)),ce=e.unref(E),Ee=JS(me),[Le,Xe]=f(m,he,ce),[Qe]=o(m,Ce,ce);return $e[Ae]={position:"absolute",left:Ee?void 0:`${Oe}px`,right:Ee?`${Oe}px`:void 0,top:`${Xe}px`,height:`${Le}px`,width:`${Qe}px`},$e[Ae]}},U=()=>{P.value.isScrolling=!1,e.nextTick(()=>{T.value(-1,null,null)})};e.onMounted(()=>{if(!He)return;const{initScrollLeft:he,initScrollTop:Ce}=m,ge=e.unref(S);ge&&(be(he)&&(ge.scrollLeft=he),be(Ce)&&(ge.scrollTop=Ce)),A()});const re=()=>{const{direction:he}=m,{scrollLeft:Ce,scrollTop:ge,updateRequested:me}=e.unref(P),_e=e.unref(S);if(me&&_e){if(he===El)switch(Ki()){case Pa:{_e.scrollLeft=-Ce;break}case pp:{_e.scrollLeft=Ce;break}default:{const{clientWidth:$e,scrollWidth:Ae}=_e;_e.scrollLeft=Ae-$e-Ce;break}}else _e.scrollLeft=Math.max(0,Ce);_e.scrollTop=Math.max(0,ge)}},{resetAfterColumnIndex:te,resetAfterRowIndex:oe,resetAfter:ie}=w.proxy;y({windowRef:S,innerRef:M,getItemStyleCache:T,scrollTo:ne,scrollToItem:Y,states:P,resetAfterColumnIndex:te,resetAfterRowIndex:oe,resetAfter:ie});const ye=()=>{const{scrollbarAlwaysOn:he,scrollbarStartGap:Ce,scrollbarEndGap:ge,totalColumn:me,totalRow:_e}=m,$e=e.unref(v),Ae=e.unref(I),Oe=e.unref($),ce=e.unref(z),{scrollLeft:Ee,scrollTop:Le}=e.unref(P),Xe=e.h(Ep,{ref:_,alwaysOn:he,startGap:Ce,endGap:ge,class:k.e("horizontal"),clientSize:$e,layout:"horizontal",onScroll:K,ratio:$e*100/Oe,scrollFrom:Ee/(Oe-$e),total:_e,visible:!0}),Qe=e.h(Ep,{ref:B,alwaysOn:he,startGap:Ce,endGap:ge,class:k.e("vertical"),clientSize:Ae,layout:"vertical",onScroll:H,ratio:Ae*100/ce,scrollFrom:Le/(ce-Ae),total:me,visible:!0});return{horizontalScrollbar:Xe,verticalScrollbar:Qe}},Ne=()=>{var he;const[Ce,ge]=e.unref(O),[me,_e]=e.unref(D),{data:$e,totalColumn:Ae,totalRow:Oe,useIsScrolling:ce,itemKey:Ee}=m,Le=[];if(Oe>0&&Ae>0)for(let Xe=me;Xe<=_e;Xe++)for(let Qe=Ce;Qe<=ge;Qe++)Le.push((he=C.default)==null?void 0:he.call(C,{columnIndex:Qe,data:$e,key:Ee({columnIndex:Qe,data:$e,rowIndex:Xe}),isScrolling:ce?e.unref(P).isScrolling:void 0,style:Z(Xe,Qe),rowIndex:Xe}));return Le},Te=()=>{const he=e.resolveDynamicComponent(m.innerElement),Ce=Ne();return[e.h(he,{style:e.unref(N),ref:M},De(he)?Ce:{default:()=>Ce})]};return()=>{const he=e.resolveDynamicComponent(m.containerElement),{horizontalScrollbar:Ce,verticalScrollbar:ge}=ye(),me=Te();return e.h("div",{key:0,class:k.e("wrapper"),role:m.role},[e.h(he,{class:m.className,style:e.unref(R),onScroll:x,onWheel:q,ref:S},De(he)?me:{default:()=>me}),Ce,ge])}}}),rE=oE({name:"ElFixedSizeGrid",getColumnPosition:({columnWidth:t},n)=>[t,n*t],getRowPosition:({rowHeight:t},n)=>[t,n*t],getEstimatedTotalHeight:({totalRow:t,rowHeight:n})=>n*t,getEstimatedTotalWidth:({totalColumn:t,columnWidth:n})=>n*t,getColumnOffset:({totalColumn:t,columnWidth:n,width:o},r,l,a,s,i)=>{o=Number(o);const c=Math.max(0,t*n-o),f=Math.min(c,r*n),u=Math.max(0,r*n-o+i+n);switch(l==="smart"&&(a>=u-o&&a<=f+o?l=An:l=ho),l){case Ma:return f;case Ia:return u;case ho:{const d=Math.round(u+(f-u)/2);return dc+Math.floor(o/2)?c:d}case An:default:return a>=u&&a<=f?a:u>f||a{n=Number(n);const c=Math.max(0,o*t-n),f=Math.min(c,r*t),u=Math.max(0,r*t-n+i+t);switch(l===Fi&&(a>=u-n&&a<=f+n?l=An:l=ho),l){case Ma:return f;case Ia:return u;case ho:{const d=Math.round(u+(f-u)/2);return dc+Math.floor(n/2)?c:d}case An:default:return a>=u&&a<=f?a:u>f||aMath.max(0,Math.min(n-1,Math.floor(o/t))),getColumnStopIndexForStartIndex:({columnWidth:t,totalColumn:n,width:o},r,l)=>{const a=r*t,s=Math.ceil((o+l-a)/t);return Math.max(0,Math.min(n-1,r+s-1))},getRowStartIndexForOffset:({rowHeight:t,totalRow:n},o)=>Math.max(0,Math.min(n-1,Math.floor(o/t))),getRowStopIndexForStartIndex:({rowHeight:t,totalRow:n,height:o},r,l)=>{const a=r*t,s=Math.ceil((o+l-a)/t);return Math.max(0,Math.min(n-1,r+s-1))},initCache:()=>{},clearCache:!0,validateProps:({columnWidth:t,rowHeight:n})=>{}});const{max:Wi,min:lE,floor:aE}=Math,FG={column:"columnWidth",row:"rowHeight"},_p={column:"lastVisitedColumnIndex",row:"lastVisitedRowIndex"},Ro=(t,n,o,r)=>{const[l,a,s]=[o[r],t[FG[r]],o[_p[r]]];if(n>s){let i=0;if(s>=0){const c=l[s];i=c.offset+c.size}for(let c=s+1;c<=n;c++){const f=a(c);l[c]={offset:i,size:f},i+=f}o[_p[r]]=n}return l[n]},sE=(t,n,o,r,l,a)=>{for(;o<=r;){const s=o+aE((r-o)/2),i=Ro(t,s,n,a).offset;if(i===l)return s;i{const a=l==="column"?t.totalColumn:t.totalRow;let s=1;for(;o{const[l,a]=[n[r],n[_p[r]]];return(a>0?l[a].offset:0)>=o?sE(t,n,0,a,o,r):HG(t,n,Wi(0,a),o,r)},cE=({totalRow:t},{estimatedRowHeight:n,lastVisitedRowIndex:o,row:r})=>{let l=0;if(o>=t&&(o=t-1),o>=0){const i=r[o];l=i.offset+i.size}const s=(t-o-1)*n;return l+s},dE=({totalColumn:t},{column:n,estimatedColumnWidth:o,lastVisitedColumnIndex:r})=>{let l=0;if(r>t&&(r=t-1),r>=0){const i=n[r];l=i.offset+i.size}const s=(t-r-1)*o;return l+s},KG={column:dE,row:cE},fE=(t,n,o,r,l,a,s)=>{const[i,c]=[a==="row"?t.height:t.width,KG[a]],f=Ro(t,n,l,a),u=c(t,l),d=Wi(0,lE(u-i,f.offset)),p=Wi(0,f.offset-i+s+f.size);switch(o===Fi&&(r>=p-i&&r<=d+i?o=An:o=ho),o){case Ma:return d;case Ia:return p;case ho:return Math.round(p+(d-p)/2);case An:default:return r>=p&&r<=d?r:p>d||r{const r=Ro(t,n,o,"column");return[r.size,r.offset]},getRowPosition:(t,n,o)=>{const r=Ro(t,n,o,"row");return[r.size,r.offset]},getColumnOffset:(t,n,o,r,l,a)=>fE(t,n,o,r,l,"column",a),getRowOffset:(t,n,o,r,l,a)=>fE(t,n,o,r,l,"row",a),getColumnStartIndexForOffset:(t,n,o)=>iE(t,o,n,"column"),getColumnStopIndexForStartIndex:(t,n,o,r)=>{const l=Ro(t,n,r,"column"),a=o+t.width;let s=l.offset+l.size,i=n;for(;iiE(t,o,n,"row"),getRowStopIndexForStartIndex:(t,n,o,r)=>{const{totalRow:l,height:a}=t,s=Ro(t,n,r,"row"),i=o+a;let c=s.size+s.offset,f=n;for(;f{const o=({columnIndex:a,rowIndex:s},i)=>{var c,f;i=$t(i)?!0:i,be(a)&&(n.value.lastVisitedColumnIndex=Math.min(n.value.lastVisitedColumnIndex,a-1)),be(s)&&(n.value.lastVisitedRowIndex=Math.min(n.value.lastVisitedRowIndex,s-1)),(c=t.exposed)==null||c.getItemStyleCache.value(-1,null,null),i&&((f=t.proxy)==null||f.$forceUpdate())},r=(a,s)=>{o({columnIndex:a},s)},l=(a,s)=>{o({rowIndex:a},s)};Object.assign(t.proxy,{resetAfterColumnIndex:r,resetAfterRowIndex:l,resetAfter:o})},initCache:({estimatedColumnWidth:t=fp,estimatedRowHeight:n=fp})=>({column:{},estimatedColumnWidth:t,estimatedRowHeight:n,lastVisitedColumnIndex:-1,lastVisitedRowIndex:-1,row:{}}),clearCache:!1,validateProps:({columnWidth:t,rowHeight:n})=>{}});const WG=e.defineComponent({props:{item:{type:Object,required:!0},style:Object,height:Number},setup(){return{ns:Q("select")}}});function jG(t,n,o,r,l,a){return t.item.isTitle?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(t.ns.be("group","title")),style:e.normalizeStyle([t.style,{lineHeight:`${t.height}px`}])},e.toDisplayString(t.item.label),7)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(t.ns.be("group","split")),style:e.normalizeStyle(t.style)},[e.createElementVNode("span",{class:e.normalizeClass(t.ns.be("group","split-dash")),style:e.normalizeStyle({top:`${t.height/2}px`})},null,6)],6))}var UG=se(WG,[["render",jG],["__file","group-item.vue"]]);function GG(t,{emit:n}){return{hoverItem:()=>{t.disabled||n("hover",t.index)},selectOptionClick:()=>{t.disabled||n("select",t.item,t.index)}}}const pE={label:"label",value:"value",disabled:"disabled",options:"options"};function ji(t){const n=e.computed(()=>({...pE,...t.props}));return{aliasProps:n,getLabel:s=>ct(s,n.value.label),getValue:s=>ct(s,n.value.value),getDisabled:s=>ct(s,n.value.disabled),getOptions:s=>ct(s,n.value.options)}}const qG=le({allowCreate:Boolean,autocomplete:{type:W(String),default:"none"},automaticDropdown:Boolean,clearable:Boolean,clearIcon:{type:ot,default:Xo},effect:{type:W(String),default:"light"},collapseTags:Boolean,collapseTagsTooltip:{type:Boolean,default:!1},maxCollapseTags:{type:Number,default:1},defaultFirstOption:Boolean,disabled:Boolean,estimatedOptionHeight:{type:Number,default:void 0},filterable:Boolean,filterMethod:Function,height:{type:Number,default:170},itemHeight:{type:Number,default:34},id:String,loading:Boolean,loadingText:String,label:String,modelValue:{type:W([Array,String,Number,Boolean,Object])},multiple:Boolean,multipleLimit:{type:Number,default:0},name:String,noDataText:String,noMatchText:String,remoteMethod:Function,reserveKeyword:{type:Boolean,default:!0},options:{type:W(Array),required:!0},placeholder:{type:String},teleported:Pt.teleported,persistent:{type:Boolean,default:!0},popperClass:{type:String,default:""},popperOptions:{type:W(Object),default:()=>({})},remote:Boolean,size:Vt,props:{type:W(Object),default:()=>pE},valueKey:{type:String,default:"value"},scrollbarAlwaysOn:{type:Boolean,default:!1},validateEvent:{type:Boolean,default:!0},placement:{type:W(String),values:_r,default:"bottom-start"}}),YG=le({data:Array,disabled:Boolean,hovering:Boolean,item:{type:W(Object),required:!0},index:Number,style:Object,selected:Boolean,created:Boolean}),Ui=Symbol("ElSelectV2Injection"),XG=e.defineComponent({props:YG,emits:["select","hover"],setup(t,{emit:n}){const o=e.inject(Ui),r=Q("select"),{hoverItem:l,selectOptionClick:a}=GG(t,{emit:n}),{getLabel:s}=ji(o.props);return{ns:r,hoverItem:l,selectOptionClick:a,getLabel:s}}}),ZG=["aria-selected"];function JG(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("li",{"aria-selected":t.selected,style:e.normalizeStyle(t.style),class:e.normalizeClass([t.ns.be("dropdown","option-item"),t.ns.is("selected",t.selected),t.ns.is("disabled",t.disabled),t.ns.is("created",t.created),{hover:t.hovering}]),onMouseenter:n[0]||(n[0]=(...s)=>t.hoverItem&&t.hoverItem(...s)),onClick:n[1]||(n[1]=e.withModifiers((...s)=>t.selectOptionClick&&t.selectOptionClick(...s),["stop"]))},[e.renderSlot(t.$slots,"default",{item:t.item,index:t.index,disabled:t.disabled},()=>[e.createElementVNode("span",null,e.toDisplayString(t.getLabel(t.item)),1)])],46,ZG)}var QG=se(XG,[["render",JG],["__file","option-item.vue"]]),eq=e.defineComponent({name:"ElSelectDropdown",props:{data:{type:Array,required:!0},hoveringIndex:Number,width:Number},setup(t,{slots:n,expose:o}){const r=e.inject(Ui),l=Q("select"),{getLabel:a,getValue:s,getDisabled:i}=ji(r.props),c=e.ref([]),f=e.ref(),u=e.computed(()=>t.data.length);e.watch(()=>u.value,()=>{var T,I;(I=(T=r.popper.value).updatePopper)==null||I.call(T)});const d=e.computed(()=>$t(r.props.estimatedOptionHeight)),p=e.computed(()=>d.value?{itemSize:r.props.itemHeight}:{estimatedSize:r.props.estimatedOptionHeight,itemSize:T=>c.value[T]}),h=(T=[],I)=>{const{props:{valueKey:v}}=r;return nt(I)?T&&T.some(O=>e.toRaw(ct(O,v))===ct(I,v)):T.includes(I)},g=(T,I)=>{if(nt(I)){const{valueKey:v}=r.props;return ct(T,v)===ct(I,v)}else return T===I},m=(T,I)=>r.props.multiple?h(T,s(I)):g(T,s(I)),b=(T,I)=>{const{disabled:v,multiple:O,multipleLimit:D}=r.props;return v||!I&&(O?D>0&&T.length>=D:!1)},y=T=>t.hoveringIndex===T;o({listRef:f,isSized:d,isItemDisabled:b,isItemHovering:y,isItemSelected:m,scrollToItem:T=>{const I=f.value;I&&I.scrollToItem(T)},resetScrollTop:()=>{const T=f.value;T&&T.resetScrollTop()}});const w=T=>{const{index:I,data:v,style:O}=T,D=e.unref(d),{itemSize:z,estimatedSize:$}=e.unref(p),{modelValue:R}=r.props,{onSelect:N,onHover:A}=r,x=v[I];if(x.type==="Group")return e.createVNode(UG,{item:x,style:O,height:D?z:$},null);const H=m(R,x),K=b(R,H),q=y(I);return e.createVNode(QG,e.mergeProps(T,{selected:H,disabled:i(x)||K,created:!!x.created,hovering:q,item:x,onSelect:N,onHover:A}),{default:ne=>{var Y;return((Y=n.default)==null?void 0:Y.call(n,ne))||e.createVNode("span",null,[a(x)])}})},{onKeyboardNavigate:E,onKeyboardSelect:S}=r,_=()=>{E("forward")},B=()=>{E("backward")},M=()=>{r.expanded=!1},P=T=>{const{code:I}=T,{tab:v,esc:O,down:D,up:z,enter:$}=pe;switch(I!==v&&(T.preventDefault(),T.stopPropagation()),I){case v:case O:{M();break}case D:{_();break}case z:{B();break}case $:{S();break}}};return()=>{var T;const{data:I,width:v}=t,{height:O,multiple:D,scrollbarAlwaysOn:z}=r.props;if(I.length===0)return e.createVNode("div",{class:l.b("dropdown"),style:{width:`${v}px`}},[(T=n.empty)==null?void 0:T.call(n)]);const $=e.unref(d)?Np:nE;return e.createVNode("div",{class:[l.b("dropdown"),l.is("multiple",D)]},[e.createVNode($,e.mergeProps({ref:f},e.unref(p),{className:l.be("dropdown","list"),scrollbarAlwaysOn:z,data:I,height:O,width:v,total:I.length,onKeydown:P}),{default:R=>e.createVNode(w,R,null)})])}}});function tq(t,n){const{aliasProps:o,getLabel:r,getValue:l}=ji(t),a=e.ref(0),s=e.ref(null),i=e.computed(()=>t.allowCreate&&t.filterable);function c(h){const g=m=>l(m)===h;return t.options&&t.options.some(g)||n.createdOptions.some(g)}function f(h){!i.value||(t.multiple&&h.created?a.value++:s.value=h)}function u(h){if(i.value)if(h&&h.length>0&&!c(h)){const g={[o.value.value]:h,[o.value.label]:h,created:!0,[o.value.disabled]:!1};n.createdOptions.length>=a.value?n.createdOptions[a.value]=g:n.createdOptions.push(g)}else if(t.multiple)n.createdOptions.length=a.value;else{const g=s.value;n.createdOptions.length=0,g&&g.created&&n.createdOptions.push(g)}}function d(h){if(!i.value||!h||!h.created||h.created&&t.reserveKeyword&&n.inputValue===r(h))return;const g=n.createdOptions.findIndex(m=>l(m)===l(h));~g&&(n.createdOptions.splice(g,1),a.value--)}function p(){i.value&&(n.createdOptions.length=0,a.value=0)}return{createNewOption:u,removeNewOption:d,selectNewOption:f,clearAllNewOption:p}}function nq(t){const n=e.ref(!1);return{handleCompositionStart:()=>{n.value=!0},handleCompositionUpdate:a=>{const s=a.target.value,i=s[s.length-1]||"";n.value=!Ps(i)},handleCompositionEnd:a=>{n.value&&(n.value=!1,qe(t)&&t(a))}}}const mE="",hE=11,oq={larget:51,default:42,small:33};var rq=(t,n)=>{const{t:o}=Ke(),r=Q("select-v2"),l=Q("input"),{form:a,formItem:s}=Xt(),{getLabel:i,getValue:c,getDisabled:f,getOptions:u}=ji(t),d=e.reactive({inputValue:mE,displayInputValue:mE,calculatedWidth:0,cachedPlaceholder:"",cachedOptions:[],createdOptions:[],createdLabel:"",createdSelected:!1,currentPlaceholder:"",hoveringIndex:-1,comboBoxHovering:!1,isOnComposition:!1,isSilentBlur:!1,isComposing:!1,inputLength:20,selectWidth:200,initialInputHeight:0,previousQuery:null,previousValue:void 0,query:"",selectedLabel:"",softFocus:!1,tagInMultiLine:!1}),p=e.ref(-1),h=e.ref(-1),g=e.ref(null),m=e.ref(null),b=e.ref(null),y=e.ref(null),C=e.ref(null),k=e.ref(null),w=e.ref(null),E=e.ref(!1),S=e.computed(()=>t.disabled||(a==null?void 0:a.disabled)),_=e.computed(()=>{const ae=z.value.length*34;return ae>t.height?t.height:ae}),B=e.computed(()=>!wt(t.modelValue)),M=e.computed(()=>{const ae=t.multiple?Array.isArray(t.modelValue)&&t.modelValue.length>0:B.value;return t.clearable&&!S.value&&d.comboBoxHovering&&ae}),P=e.computed(()=>t.remote&&t.filterable?"":Ts),T=e.computed(()=>P.value&&r.is("reverse",E.value)),I=e.computed(()=>(s==null?void 0:s.validateState)||""),v=e.computed(()=>Gd[I.value]),O=e.computed(()=>t.remote?300:0),D=e.computed(()=>{const ae=z.value;return t.loading?t.loadingText||o("el.select.loading"):t.remote&&d.inputValue===""&&ae.length===0?!1:t.filterable&&d.inputValue&&ae.length>0?t.noMatchText||o("el.select.noMatch"):ae.length===0?t.noDataText||o("el.select.noData"):null}),z=e.computed(()=>{const ae=we=>{const ze=d.inputValue,Ge=new RegExp(yy(ze),"i");return ze?Ge.test(i(we)||""):!0};return t.loading?[]:[...t.options,...d.createdOptions].reduce((we,ze)=>{const Ge=u(ze);if(Re(Ge)){const zt=Ge.filter(ae);zt.length>0&&we.push({label:i(ze),isTitle:!0,type:"Group"},...zt,{type:"Group"})}else(t.remote||ae(ze))&&we.push(ze);return we},[])}),$=e.computed(()=>{const ae=new Map;return z.value.forEach((we,ze)=>{ae.set(Ee(c(we)),{option:we,index:ze})}),ae}),R=e.computed(()=>z.value.every(ae=>f(ae))),N=St(),A=e.computed(()=>N.value==="small"?"small":"default"),x=e.computed(()=>{const ae=k.value,we=A.value||"default",ze=ae?Number.parseInt(getComputedStyle(ae).paddingLeft):0,Ge=ae?Number.parseInt(getComputedStyle(ae).paddingRight):0;return d.selectWidth-Ge-ze-oq[we]}),H=()=>{var ae;h.value=((ae=C.value)==null?void 0:ae.offsetWidth)||200},K=e.computed(()=>({width:`${d.calculatedWidth===0?hE:Math.ceil(d.calculatedWidth)+hE}px`})),q=e.computed(()=>Re(t.modelValue)?t.modelValue.length===0&&!d.displayInputValue:t.filterable?d.displayInputValue.length===0:!0),ne=e.computed(()=>{const ae=t.placeholder||o("el.select.placeholder");return t.multiple||wt(t.modelValue)?ae:d.selectedLabel}),Y=e.computed(()=>{var ae,we;return(we=(ae=y.value)==null?void 0:ae.popperRef)==null?void 0:we.contentRef}),Z=e.computed(()=>{if(t.multiple){const ae=t.modelValue.length;if(t.modelValue.length>0&&$.value.has(t.modelValue[ae-1])){const{index:we}=$.value.get(t.modelValue[ae-1]);return we}}else if(t.modelValue&&$.value.has(t.modelValue)){const{index:ae}=$.value.get(t.modelValue);return ae}return-1}),U=e.computed({get(){return E.value&&D.value!==!1},set(ae){E.value=ae}}),re=e.computed(()=>d.cachedOptions.slice(0,t.maxCollapseTags)),te=e.computed(()=>d.cachedOptions.slice(t.maxCollapseTags)),{createNewOption:oe,removeNewOption:ie,selectNewOption:ye,clearAllNewOption:Ne}=tq(t,d),{handleCompositionStart:Te,handleCompositionUpdate:Pe,handleCompositionEnd:he}=nq(ae=>X(ae)),Ce=()=>{var ae,we,ze;(we=(ae=m.value)==null?void 0:ae.focus)==null||we.call(ae),(ze=y.value)==null||ze.updatePopper()},ge=()=>{if(!t.automaticDropdown&&!S.value)return d.isComposing&&(d.softFocus=!0),e.nextTick(()=>{var ae,we;E.value=!E.value,(we=(ae=m.value)==null?void 0:ae.focus)==null||we.call(ae)})},me=()=>(t.filterable&&d.inputValue!==d.selectedLabel&&(d.query=d.selectedLabel),$e(d.inputValue),e.nextTick(()=>{oe(d.inputValue)})),_e=Gt(me,O.value),$e=ae=>{d.previousQuery!==ae&&(d.previousQuery=ae,t.filterable&&qe(t.filterMethod)?t.filterMethod(ae):t.filterable&&t.remote&&qe(t.remoteMethod)&&t.remoteMethod(ae))},Ae=ae=>{tn(t.modelValue,ae)||n(at,ae)},Oe=ae=>{n(Ie,ae),Ae(ae),d.previousValue=String(ae)},ce=(ae=[],we)=>{if(!nt(we))return ae.indexOf(we);const ze=t.valueKey;let Ge=-1;return ae.some((zt,Jn)=>ct(zt,ze)===ct(we,ze)?(Ge=Jn,!0):!1),Ge},Ee=ae=>nt(ae)?ct(ae,t.valueKey):ae,Le=()=>e.nextTick(()=>{var ae,we;if(!m.value)return;const ze=k.value;C.value.height=ze.offsetHeight,E.value&&D.value!==!1&&((we=(ae=y.value)==null?void 0:ae.updatePopper)==null||we.call(ae))}),Xe=()=>{var ae,we;if(Qe(),H(),(we=(ae=y.value)==null?void 0:ae.updatePopper)==null||we.call(ae),t.multiple)return Le()},Qe=()=>{const ae=k.value;ae&&(d.selectWidth=ae.getBoundingClientRect().width)},ke=(ae,we,ze=!0)=>{var Ge,zt;if(t.multiple){let Jn=t.modelValue.slice();const Dt=ce(Jn,c(ae));Dt>-1?(Jn=[...Jn.slice(0,Dt),...Jn.slice(Dt+1)],d.cachedOptions.splice(Dt,1),ie(ae)):(t.multipleLimit<=0||Jn.length{let ze=t.modelValue.slice();const Ge=ce(ze,c(we));if(Ge>-1&&!S.value)return ze=[...t.modelValue.slice(0,Ge),...t.modelValue.slice(Ge+1)],d.cachedOptions.splice(Ge,1),Oe(ze),n("remove-tag",c(we)),d.softFocus=!0,ie(we),e.nextTick(Ce);ae.stopPropagation()},G=ae=>{const we=d.isComposing;d.isComposing=!0,d.softFocus?d.softFocus=!1:we||n("focus",ae)},j=ae=>(d.softFocus=!1,e.nextTick(()=>{var we,ze;(ze=(we=m.value)==null?void 0:we.blur)==null||ze.call(we),w.value&&(d.calculatedWidth=w.value.getBoundingClientRect().width),d.isSilentBlur?d.isSilentBlur=!1:d.isComposing&&n("blur",ae),d.isComposing=!1})),ee=()=>{d.displayInputValue.length>0?Be(""):E.value=!1},F=ae=>{if(d.displayInputValue.length===0){ae.preventDefault();const we=t.modelValue.slice();we.pop(),ie(d.cachedOptions.pop()),Oe(we)}},ue=()=>{let ae;return Re(t.modelValue)?ae=[]:ae=void 0,d.softFocus=!0,t.multiple?d.cachedOptions=[]:d.selectedLabel="",E.value=!1,Oe(ae),n("clear"),Ne(),e.nextTick(Ce)},Be=ae=>{d.displayInputValue=ae,d.inputValue=ae},xe=(ae,we=void 0)=>{const ze=z.value;if(!["forward","backward"].includes(ae)||S.value||ze.length<=0||R.value)return;if(!E.value)return ge();we===void 0&&(we=d.hoveringIndex);let Ge=-1;ae==="forward"?(Ge=we+1,Ge>=ze.length&&(Ge=0)):ae==="backward"&&(Ge=we-1,(Ge<0||Ge>=ze.length)&&(Ge=ze.length-1));const zt=ze[Ge];if(f(zt)||zt.type==="Group")return xe(ae,Ge);gt(Ge),We(Ge)},_t=()=>{if(E.value)~d.hoveringIndex&&z.value[d.hoveringIndex]&&ke(z.value[d.hoveringIndex],d.hoveringIndex,!1);else return ge()},gt=ae=>{d.hoveringIndex=ae},zn=()=>{d.hoveringIndex=-1},Wt=()=>{var ae;const we=m.value;we&&((ae=we.focus)==null||ae.call(we))},X=ae=>{const we=ae.target.value;if(Be(we),d.displayInputValue.length>0&&!E.value&&(E.value=!0),d.calculatedWidth=w.value.getBoundingClientRect().width,t.multiple&&Le(),t.remote)_e();else return me()},de=()=>(E.value=!1,j()),Se=()=>(d.inputValue=d.displayInputValue,e.nextTick(()=>{~Z.value&&(gt(Z.value),We(d.hoveringIndex))})),We=ae=>{b.value.scrollToItem(ae)},Rt=()=>{if(zn(),t.multiple)if(t.modelValue.length>0){let ae=!1;d.cachedOptions.length=0,d.previousValue=t.modelValue.toString();for(const we of t.modelValue){const ze=Ee(we);if($.value.has(ze)){const{index:Ge,option:zt}=$.value.get(ze);d.cachedOptions.push(zt),ae||gt(Ge),ae=!0}}}else d.cachedOptions=[],d.previousValue=void 0;else if(B.value){d.previousValue=t.modelValue;const ae=z.value,we=ae.findIndex(ze=>Ee(c(ze))===Ee(t.modelValue));~we?(d.selectedLabel=i(ae[we]),gt(we)):d.selectedLabel=Ee(t.modelValue)}else d.selectedLabel="",d.previousValue=void 0;Ne(),H()};return e.watch(E,ae=>{var we,ze;n("visible-change",ae),ae?(ze=(we=y.value).update)==null||ze.call(we):(d.displayInputValue="",d.previousQuery=null,oe(""))}),e.watch(()=>t.modelValue,(ae,we)=>{var ze;(!ae||ae.toString()!==d.previousValue)&&Rt(),!tn(ae,we)&&t.validateEvent&&((ze=s==null?void 0:s.validate)==null||ze.call(s,"change").catch(Ge=>void 0))},{deep:!0}),e.watch(()=>t.options,()=>{const ae=m.value;(!ae||ae&&document.activeElement!==ae)&&Rt()},{deep:!0}),e.watch(z,()=>b.value&&e.nextTick(b.value.resetScrollTop)),e.watch(()=>U.value,ae=>{ae||zn()}),e.onMounted(()=>{Rt()}),jt(C,Xe),{collapseTagSize:A,currentPlaceholder:ne,expanded:E,emptyText:D,popupHeight:_,debounce:O,filteredOptions:z,iconComponent:P,iconReverse:T,inputWrapperStyle:K,popperSize:h,dropdownMenuVisible:U,hasModelValue:B,shouldShowPlaceholder:q,selectDisabled:S,selectSize:N,showClearBtn:M,states:d,tagMaxWidth:x,nsSelectV2:r,nsInput:l,calculatorRef:w,controlRef:g,inputRef:m,menuRef:b,popper:y,selectRef:C,selectionRef:k,popperRef:Y,validateState:I,validateIcon:v,showTagList:re,collapseTagList:te,debouncedOnInputChange:_e,deleteTag:J,getLabel:i,getValue:c,getDisabled:f,getValueKey:Ee,handleBlur:j,handleClear:ue,handleClickOutside:de,handleDel:F,handleEsc:ee,handleFocus:G,handleMenuEnter:Se,handleResize:Xe,toggleMenu:ge,scrollTo:We,onInput:X,onKeyboardNavigate:xe,onKeyboardSelect:_t,onSelect:ke,onHover:gt,onUpdateInputValue:Be,handleCompositionStart:Te,handleCompositionEnd:he,handleCompositionUpdate:Pe}};const lq=e.defineComponent({name:"ElSelectV2",components:{ElSelectMenu:eq,ElTag:bl,ElTooltip:Zt,ElIcon:fe},directives:{ClickOutside:Po,ModelText:e.vModelText},props:qG,emits:[Ie,at,"remove-tag","clear","visible-change","focus","blur"],setup(t,{emit:n}){const o=e.computed(()=>{const{modelValue:l,multiple:a}=t,s=a?[]:void 0;return Re(l)?a?l:s:a?s:l}),r=rq(e.reactive({...e.toRefs(t),modelValue:o}),n);return e.provide(Ui,{props:e.reactive({...e.toRefs(t),height:r.popupHeight,modelValue:o}),popper:r.popper,onSelect:r.onSelect,onHover:r.onHover,onKeyboardNavigate:r.onKeyboardNavigate,onKeyboardSelect:r.onKeyboardSelect}),{...r,modelValue:o}}}),aq={key:0},sq=["id","autocomplete","aria-expanded","aria-labelledby","disabled","readonly","name","unselectable"],iq=["textContent"],cq=["id","aria-labelledby","aria-expanded","autocomplete","disabled","name","readonly","unselectable"],dq=["textContent"];function fq(t,n,o,r,l,a){const s=e.resolveComponent("el-tag"),i=e.resolveComponent("el-tooltip"),c=e.resolveComponent("el-icon"),f=e.resolveComponent("el-select-menu"),u=e.resolveDirective("model-text"),d=e.resolveDirective("click-outside");return e.withDirectives((e.openBlock(),e.createElementBlock("div",{ref:"selectRef",class:e.normalizeClass([t.nsSelectV2.b(),t.nsSelectV2.m(t.selectSize)]),onClick:n[24]||(n[24]=e.withModifiers((...p)=>t.toggleMenu&&t.toggleMenu(...p),["stop"])),onMouseenter:n[25]||(n[25]=p=>t.states.comboBoxHovering=!0),onMouseleave:n[26]||(n[26]=p=>t.states.comboBoxHovering=!1)},[e.createVNode(i,{ref:"popper",visible:t.dropdownMenuVisible,teleported:t.teleported,"popper-class":[t.nsSelectV2.e("popper"),t.popperClass],"gpu-acceleration":!1,"stop-popper-mouse-event":!1,"popper-options":t.popperOptions,"fallback-placements":["bottom-start","top-start","right","left"],effect:t.effect,placement:t.placement,pure:"",transition:`${t.nsSelectV2.namespace.value}-zoom-in-top`,trigger:"click",persistent:t.persistent,onBeforeShow:t.handleMenuEnter,onHide:n[23]||(n[23]=p=>t.states.inputValue=t.states.displayInputValue)},{default:e.withCtx(()=>[e.createElementVNode("div",{ref:"selectionRef",class:e.normalizeClass([t.nsSelectV2.e("wrapper"),t.nsSelectV2.is("focused",t.states.isComposing||t.expanded),t.nsSelectV2.is("hovering",t.states.comboBoxHovering),t.nsSelectV2.is("filterable",t.filterable),t.nsSelectV2.is("disabled",t.selectDisabled)])},[t.$slots.prefix?(e.openBlock(),e.createElementBlock("div",aq,[e.renderSlot(t.$slots,"prefix")])):e.createCommentVNode("v-if",!0),t.multiple?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(t.nsSelectV2.e("selection"))},[t.collapseTags&&t.modelValue.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.showTagList,p=>(e.openBlock(),e.createElementBlock("div",{key:t.getValueKey(t.getValue(p)),class:e.normalizeClass(t.nsSelectV2.e("selected-item"))},[e.createVNode(s,{closable:!t.selectDisabled&&!t.getDisabled(p),size:t.collapseTagSize,type:"info","disable-transitions":"",onClose:h=>t.deleteTag(h,p)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelectV2.e("tags-text")),style:e.normalizeStyle({maxWidth:`${t.tagMaxWidth}px`})},e.toDisplayString(t.getLabel(p)),7)]),_:2},1032,["closable","size","onClose"])],2))),128)),e.createElementVNode("div",{class:e.normalizeClass(t.nsSelectV2.e("selected-item"))},[t.modelValue.length>t.maxCollapseTags?(e.openBlock(),e.createBlock(s,{key:0,closable:!1,size:t.collapseTagSize,type:"info","disable-transitions":""},{default:e.withCtx(()=>[t.collapseTagsTooltip?(e.openBlock(),e.createBlock(i,{key:0,disabled:t.dropdownMenuVisible,"fallback-placements":["bottom","top","right","left"],effect:t.effect,placement:"bottom",teleported:!1},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelectV2.e("tags-text")),style:e.normalizeStyle({maxWidth:`${t.tagMaxWidth}px`})}," + "+e.toDisplayString(t.modelValue.length-t.maxCollapseTags),7)]),content:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(t.nsSelectV2.e("selection"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.collapseTagList,p=>(e.openBlock(),e.createElementBlock("div",{key:t.getValueKey(t.getValue(p)),class:e.normalizeClass(t.nsSelectV2.e("selected-item"))},[e.createVNode(s,{closable:!t.selectDisabled&&!t.getDisabled(p),size:t.collapseTagSize,class:"in-tooltip",type:"info","disable-transitions":"",onClose:h=>t.deleteTag(h,p)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelectV2.e("tags-text")),style:e.normalizeStyle({maxWidth:`${t.tagMaxWidth}px`})},e.toDisplayString(t.getLabel(p)),7)]),_:2},1032,["closable","size","onClose"])],2))),128))],2)]),_:1},8,["disabled","effect"])):(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(t.nsSelectV2.e("tags-text")),style:e.normalizeStyle({maxWidth:`${t.tagMaxWidth}px`})}," + "+e.toDisplayString(t.modelValue.length-t.maxCollapseTags),7))]),_:1},8,["size"])):e.createCommentVNode("v-if",!0)],2)],64)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(t.states.cachedOptions,p=>(e.openBlock(),e.createElementBlock("div",{key:t.getValueKey(t.getValue(p)),class:e.normalizeClass(t.nsSelectV2.e("selected-item"))},[e.createVNode(s,{closable:!t.selectDisabled&&!t.getDisabled(p),size:t.collapseTagSize,type:"info","disable-transitions":"",onClose:h=>t.deleteTag(h,p)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelectV2.e("tags-text")),style:e.normalizeStyle({maxWidth:`${t.tagMaxWidth}px`})},e.toDisplayString(t.getLabel(p)),7)]),_:2},1032,["closable","size","onClose"])],2))),128)),e.createElementVNode("div",{class:e.normalizeClass([t.nsSelectV2.e("selected-item"),t.nsSelectV2.e("input-wrapper")]),style:e.normalizeStyle(t.inputWrapperStyle)},[e.withDirectives(e.createElementVNode("input",{id:t.id,ref:"inputRef",autocomplete:t.autocomplete,"aria-autocomplete":"list","aria-haspopup":"listbox",autocapitalize:"off","aria-expanded":t.expanded,"aria-labelledby":t.label,class:e.normalizeClass([t.nsSelectV2.is(t.selectSize),t.nsSelectV2.e("combobox-input")]),disabled:t.disabled,role:"combobox",readonly:!t.filterable,spellcheck:"false",type:"text",name:t.name,unselectable:t.expanded?"on":void 0,"onUpdate:modelValue":n[0]||(n[0]=(...p)=>t.onUpdateInputValue&&t.onUpdateInputValue(...p)),onFocus:n[1]||(n[1]=(...p)=>t.handleFocus&&t.handleFocus(...p)),onBlur:n[2]||(n[2]=(...p)=>t.handleBlur&&t.handleBlur(...p)),onInput:n[3]||(n[3]=(...p)=>t.onInput&&t.onInput(...p)),onCompositionstart:n[4]||(n[4]=(...p)=>t.handleCompositionStart&&t.handleCompositionStart(...p)),onCompositionupdate:n[5]||(n[5]=(...p)=>t.handleCompositionUpdate&&t.handleCompositionUpdate(...p)),onCompositionend:n[6]||(n[6]=(...p)=>t.handleCompositionEnd&&t.handleCompositionEnd(...p)),onKeydown:[n[7]||(n[7]=e.withKeys(e.withModifiers(p=>t.onKeyboardNavigate("backward"),["stop","prevent"]),["up"])),n[8]||(n[8]=e.withKeys(e.withModifiers(p=>t.onKeyboardNavigate("forward"),["stop","prevent"]),["down"])),n[9]||(n[9]=e.withKeys(e.withModifiers((...p)=>t.onKeyboardSelect&&t.onKeyboardSelect(...p),["stop","prevent"]),["enter"])),n[10]||(n[10]=e.withKeys(e.withModifiers((...p)=>t.handleEsc&&t.handleEsc(...p),["stop","prevent"]),["esc"])),n[11]||(n[11]=e.withKeys(e.withModifiers((...p)=>t.handleDel&&t.handleDel(...p),["stop"]),["delete"]))]},null,42,sq),[[u,t.states.displayInputValue]]),t.filterable?(e.openBlock(),e.createElementBlock("span",{key:0,ref:"calculatorRef","aria-hidden":"true",class:e.normalizeClass(t.nsSelectV2.e("input-calculator")),textContent:e.toDisplayString(t.states.displayInputValue)},null,10,iq)):e.createCommentVNode("v-if",!0)],6)],2)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",{class:e.normalizeClass([t.nsSelectV2.e("selected-item"),t.nsSelectV2.e("input-wrapper")])},[e.withDirectives(e.createElementVNode("input",{id:t.id,ref:"inputRef","aria-autocomplete":"list","aria-haspopup":"listbox","aria-labelledby":t.label,"aria-expanded":t.expanded,autocapitalize:"off",autocomplete:t.autocomplete,class:e.normalizeClass(t.nsSelectV2.e("combobox-input")),disabled:t.disabled,name:t.name,role:"combobox",readonly:!t.filterable,spellcheck:"false",type:"text",unselectable:t.expanded?"on":void 0,onCompositionstart:n[12]||(n[12]=(...p)=>t.handleCompositionStart&&t.handleCompositionStart(...p)),onCompositionupdate:n[13]||(n[13]=(...p)=>t.handleCompositionUpdate&&t.handleCompositionUpdate(...p)),onCompositionend:n[14]||(n[14]=(...p)=>t.handleCompositionEnd&&t.handleCompositionEnd(...p)),onFocus:n[15]||(n[15]=(...p)=>t.handleFocus&&t.handleFocus(...p)),onBlur:n[16]||(n[16]=(...p)=>t.handleBlur&&t.handleBlur(...p)),onInput:n[17]||(n[17]=(...p)=>t.onInput&&t.onInput(...p)),onKeydown:[n[18]||(n[18]=e.withKeys(e.withModifiers(p=>t.onKeyboardNavigate("backward"),["stop","prevent"]),["up"])),n[19]||(n[19]=e.withKeys(e.withModifiers(p=>t.onKeyboardNavigate("forward"),["stop","prevent"]),["down"])),n[20]||(n[20]=e.withKeys(e.withModifiers((...p)=>t.onKeyboardSelect&&t.onKeyboardSelect(...p),["stop","prevent"]),["enter"])),n[21]||(n[21]=e.withKeys(e.withModifiers((...p)=>t.handleEsc&&t.handleEsc(...p),["stop","prevent"]),["esc"]))],"onUpdate:modelValue":n[22]||(n[22]=(...p)=>t.onUpdateInputValue&&t.onUpdateInputValue(...p))},null,42,cq),[[u,t.states.displayInputValue]])],2),t.filterable?(e.openBlock(),e.createElementBlock("span",{key:0,ref:"calculatorRef","aria-hidden":"true",class:e.normalizeClass([t.nsSelectV2.e("selected-item"),t.nsSelectV2.e("input-calculator")]),textContent:e.toDisplayString(t.states.displayInputValue)},null,10,dq)):e.createCommentVNode("v-if",!0)],64)),t.shouldShowPlaceholder?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass([t.nsSelectV2.e("placeholder"),t.nsSelectV2.is("transparent",t.multiple?t.modelValue.length===0:!t.hasModelValue)])},e.toDisplayString(t.currentPlaceholder),3)):e.createCommentVNode("v-if",!0),e.createElementVNode("span",{class:e.normalizeClass(t.nsSelectV2.e("suffix"))},[t.iconComponent?e.withDirectives((e.openBlock(),e.createBlock(c,{key:0,class:e.normalizeClass([t.nsSelectV2.e("caret"),t.nsInput.e("icon"),t.iconReverse])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconComponent)))]),_:1},8,["class"])),[[e.vShow,!t.showClearBtn]]):e.createCommentVNode("v-if",!0),t.showClearBtn&&t.clearIcon?(e.openBlock(),e.createBlock(c,{key:1,class:e.normalizeClass([t.nsSelectV2.e("caret"),t.nsInput.e("icon")]),onClick:e.withModifiers(t.handleClear,["prevent","stop"])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.clearIcon)))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0),t.validateState&&t.validateIcon?(e.openBlock(),e.createBlock(c,{key:2,class:e.normalizeClass([t.nsInput.e("icon"),t.nsInput.e("validateIcon")])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.validateIcon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],2)],2)]),content:e.withCtx(()=>[e.createVNode(f,{ref:"menuRef",data:t.filteredOptions,width:t.popperSize,"hovering-index":t.states.hoveringIndex,"scrollbar-always-on":t.scrollbarAlwaysOn},{default:e.withCtx(p=>[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(p)))]),empty:e.withCtx(()=>[e.renderSlot(t.$slots,"empty",{},()=>[e.createElementVNode("p",{class:e.normalizeClass(t.nsSelectV2.e("empty"))},e.toDisplayString(t.emptyText?t.emptyText:""),3)])]),_:3},8,["data","width","hovering-index","scrollbar-always-on"])]),_:3},8,["visible","teleported","popper-class","popper-options","effect","placement","transition","persistent","onBeforeShow"])],34)),[[d,t.handleClickOutside,t.popperRef]])}var Gi=se(lq,[["render",fq],["__file","select.vue"]]);Gi.install=t=>{t.component(Gi.name,Gi)};const gE=Gi,yE=le({animated:{type:Boolean,default:!1},count:{type:Number,default:1},rows:{type:Number,default:3},loading:{type:Boolean,default:!0},throttle:{type:Number}}),bE=le({variant:{type:String,values:["circle","rect","h1","h3","text","caption","p","image","button"],default:"text"}}),uq=e.defineComponent({name:"ElSkeletonItem"}),pq=e.defineComponent({...uq,props:bE,setup(t){const n=Q("skeleton");return(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(n).e("item"),e.unref(n).e(o.variant)])},[o.variant==="image"?(e.openBlock(),e.createBlock(e.unref(ID),{key:0})):e.createCommentVNode("v-if",!0)],2))}});var qi=se(pq,[["__file","skeleton-item.vue"]]);const mq=e.defineComponent({name:"ElSkeleton"}),hq=e.defineComponent({...mq,props:yE,setup(t,{expose:n}){const o=t,r=Q("skeleton"),l=ib(e.toRef(o,"loading"),o.throttle);return n({uiLoading:l}),(a,s)=>e.unref(l)?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,class:[e.unref(r).b(),e.unref(r).is("animated",a.animated)]},a.$attrs),[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.count,i=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:i},[a.loading?e.renderSlot(a.$slots,"template",{key:i},()=>[e.createVNode(qi,{class:e.normalizeClass(e.unref(r).is("first")),variant:"p"},null,8,["class"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.rows,c=>(e.openBlock(),e.createBlock(qi,{key:c,class:e.normalizeClass([e.unref(r).e("paragraph"),e.unref(r).is("last",c===a.rows&&a.rows>1)]),variant:"p"},null,8,["class"]))),128))]):e.createCommentVNode("v-if",!0)],64))),128))],16)):e.renderSlot(a.$slots,"default",e.normalizeProps(e.mergeProps({key:1},a.$attrs)))}});var gq=se(hq,[["__file","skeleton.vue"]]);const CE=Me(gq,{SkeletonItem:qi}),wE=ht(qi),Bp=Symbol("sliderContextKey"),kE=le({modelValue:{type:W([Number,Array]),default:0},id:{type:String,default:void 0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},showInput:Boolean,showInputControls:{type:Boolean,default:!0},size:Vt,inputSize:Vt,showStops:Boolean,showTooltip:{type:Boolean,default:!0},formatTooltip:{type:W(Function),default:void 0},disabled:Boolean,range:Boolean,vertical:Boolean,height:String,debounce:{type:Number,default:300},label:{type:String,default:void 0},rangeStartLabel:{type:String,default:void 0},rangeEndLabel:{type:String,default:void 0},formatValueText:{type:W(Function),default:void 0},tooltipClass:{type:String,default:void 0},placement:{type:String,values:_r,default:"top"},marks:{type:W(Object)},validateEvent:{type:Boolean,default:!0}}),$p=t=>be(t)||Re(t)&&t.every(be),SE={[Ie]:$p,[qt]:$p,[at]:$p},yq=(t,n,o)=>{const r=e.ref();return e.onMounted(async()=>{t.range?(Array.isArray(t.modelValue)?(n.firstValue=Math.max(t.min,t.modelValue[0]),n.secondValue=Math.min(t.max,t.modelValue[1])):(n.firstValue=t.min,n.secondValue=t.max),n.oldValue=[n.firstValue,n.secondValue]):(typeof t.modelValue!="number"||Number.isNaN(t.modelValue)?n.firstValue=t.min:n.firstValue=Math.min(t.max,Math.max(t.min,t.modelValue)),n.oldValue=n.firstValue),rt(window,"resize",o),await e.nextTick(),o()}),{sliderWrapper:r}},bq=t=>e.computed(()=>t.marks?Object.keys(t.marks).map(Number.parseFloat).sort((o,r)=>o-r).filter(o=>o<=t.max&&o>=t.min).map(o=>({point:o,position:(o-t.min)*100/(t.max-t.min),mark:t.marks[o]})):[]),Cq=(t,n,o)=>{const{form:r,formItem:l}=Xt(),a=e.shallowRef(),s=e.ref(),i=e.ref(),c={firstButton:s,secondButton:i},f=e.computed(()=>t.disabled||(r==null?void 0:r.disabled)||!1),u=e.computed(()=>Math.min(n.firstValue,n.secondValue)),d=e.computed(()=>Math.max(n.firstValue,n.secondValue)),p=e.computed(()=>t.range?`${100*(d.value-u.value)/(t.max-t.min)}%`:`${100*(n.firstValue-t.min)/(t.max-t.min)}%`),h=e.computed(()=>t.range?`${100*(u.value-t.min)/(t.max-t.min)}%`:"0%"),g=e.computed(()=>t.vertical?{height:t.height}:{}),m=e.computed(()=>t.vertical?{height:p.value,bottom:h.value}:{width:p.value,left:h.value}),b=()=>{a.value&&(n.sliderSize=a.value[`client${t.vertical?"Height":"Width"}`])},y=T=>{const I=t.min+T*(t.max-t.min)/100;if(!t.range)return s;let v;return Math.abs(u.value-I)n.secondValue?"firstButton":"secondButton",c[v]},C=T=>{const I=y(T);return I.value.setPosition(T),I},k=T=>{n.firstValue=T,E(t.range?[u.value,d.value]:T)},w=T=>{n.secondValue=T,t.range&&E([u.value,d.value])},E=T=>{o(Ie,T),o(qt,T)},S=async()=>{await e.nextTick(),o(at,t.range?[u.value,d.value]:t.modelValue)},_=T=>{var I,v,O,D,z,$;if(f.value||n.dragging)return;b();let R=0;if(t.vertical){const N=(O=(v=(I=T.touches)==null?void 0:I.item(0))==null?void 0:v.clientY)!=null?O:T.clientY;R=(a.value.getBoundingClientRect().bottom-N)/n.sliderSize*100}else{const N=($=(z=(D=T.touches)==null?void 0:D.item(0))==null?void 0:z.clientX)!=null?$:T.clientX,A=a.value.getBoundingClientRect().left;R=(N-A)/n.sliderSize*100}if(!(R<0||R>100))return C(R)};return{elFormItem:l,slider:a,firstButton:s,secondButton:i,sliderDisabled:f,minValue:u,maxValue:d,runwayStyle:g,barStyle:m,resetSize:b,setPosition:C,emitChange:S,onSliderWrapperPrevent:T=>{var I,v;(((I=c.firstButton.value)==null?void 0:I.dragging)||((v=c.secondButton.value)==null?void 0:v.dragging))&&T.preventDefault()},onSliderClick:T=>{_(T)&&S()},onSliderDown:async T=>{const I=_(T);I&&(await e.nextTick(),I.value.onButtonDown(T))},setFirstValue:k,setSecondValue:w}},{left:wq,down:kq,right:Sq,up:Eq,home:Nq,end:_q,pageUp:Bq,pageDown:$q}=pe,Tq=(t,n,o)=>{const r=e.ref(),l=e.ref(!1),a=e.computed(()=>n.value instanceof Function),s=e.computed(()=>a.value&&n.value(t.modelValue)||t.modelValue),i=Gt(()=>{o.value&&(l.value=!0)},50),c=Gt(()=>{o.value&&(l.value=!1)},50);return{tooltip:r,tooltipVisible:l,formatValue:s,displayTooltip:i,hideTooltip:c}},vq=(t,n,o)=>{const{disabled:r,min:l,max:a,step:s,showTooltip:i,precision:c,sliderSize:f,formatTooltip:u,emitChange:d,resetSize:p,updateDragging:h}=e.inject(Bp),{tooltip:g,tooltipVisible:m,formatValue:b,displayTooltip:y,hideTooltip:C}=Tq(t,u,i),k=e.ref(),w=e.computed(()=>`${(t.modelValue-l.value)/(a.value-l.value)*100}%`),E=e.computed(()=>t.vertical?{bottom:w.value}:{left:w.value}),S=()=>{n.hovering=!0,y()},_=()=>{n.hovering=!1,n.dragging||C()},B=H=>{r.value||(H.preventDefault(),R(H),window.addEventListener("mousemove",N),window.addEventListener("touchmove",N),window.addEventListener("mouseup",A),window.addEventListener("touchend",A),window.addEventListener("contextmenu",A),k.value.focus())},M=H=>{r.value||(n.newPosition=Number.parseFloat(w.value)+H/(a.value-l.value)*100,x(n.newPosition),d())},P=()=>{M(-s.value)},T=()=>{M(s.value)},I=()=>{M(-s.value*4)},v=()=>{M(s.value*4)},O=()=>{r.value||(x(0),d())},D=()=>{r.value||(x(100),d())},z=H=>{let K=!0;[wq,kq].includes(H.key)?P():[Sq,Eq].includes(H.key)?T():H.key===Nq?O():H.key===_q?D():H.key===$q?I():H.key===Bq?v():K=!1,K&&H.preventDefault()},$=H=>{let K,q;return H.type.startsWith("touch")?(q=H.touches[0].clientY,K=H.touches[0].clientX):(q=H.clientY,K=H.clientX),{clientX:K,clientY:q}},R=H=>{n.dragging=!0,n.isClick=!0;const{clientX:K,clientY:q}=$(H);t.vertical?n.startY=q:n.startX=K,n.startPosition=Number.parseFloat(w.value),n.newPosition=n.startPosition},N=H=>{if(n.dragging){n.isClick=!1,y(),p();let K;const{clientX:q,clientY:ne}=$(H);t.vertical?(n.currentY=ne,K=(n.startY-n.currentY)/f.value*100):(n.currentX=q,K=(n.currentX-n.startX)/f.value*100),n.newPosition=n.startPosition+K,x(n.newPosition)}},A=()=>{n.dragging&&(setTimeout(()=>{n.dragging=!1,n.hovering||C(),n.isClick||x(n.newPosition),d()},0),window.removeEventListener("mousemove",N),window.removeEventListener("touchmove",N),window.removeEventListener("mouseup",A),window.removeEventListener("touchend",A),window.removeEventListener("contextmenu",A))},x=async H=>{if(H===null||Number.isNaN(+H))return;H<0?H=0:H>100&&(H=100);const K=100/((a.value-l.value)/s.value);let ne=Math.round(H/K)*K*(a.value-l.value)*.01+l.value;ne=Number.parseFloat(ne.toFixed(c.value)),ne!==t.modelValue&&o(Ie,ne),!n.dragging&&t.modelValue!==n.oldValue&&(n.oldValue=t.modelValue),await e.nextTick(),n.dragging&&y(),g.value.updatePopper()};return e.watch(()=>n.dragging,H=>{h(H)}),{disabled:r,button:k,tooltip:g,tooltipVisible:m,showTooltip:i,wrapperStyle:E,formatValue:b,handleMouseEnter:S,handleMouseLeave:_,onButtonDown:B,onKeyDown:z,setPosition:x}},Vq=(t,n,o,r)=>({stops:e.computed(()=>{if(!t.showStops||t.min>t.max)return[];if(t.step===0)return[];const s=(t.max-t.min)/t.step,i=100*t.step/(t.max-t.min),c=Array.from({length:s-1}).map((f,u)=>(u+1)*i);return t.range?c.filter(f=>f<100*(o.value-t.min)/(t.max-t.min)||f>100*(r.value-t.min)/(t.max-t.min)):c.filter(f=>f>100*(n.firstValue-t.min)/(t.max-t.min))}),getStopStyle:s=>t.vertical?{bottom:`${s}%`}:{left:`${s}%`}}),Mq=(t,n,o,r,l,a)=>{const s=f=>{l(Ie,f),l(qt,f)},i=()=>t.range?![o.value,r.value].every((f,u)=>f===n.oldValue[u]):t.modelValue!==n.oldValue,c=()=>{var f,u;t.min>t.max&&vt("Slider","min should not be greater than max.");const d=t.modelValue;t.range&&Array.isArray(d)?d[1]t.max?s([t.max,t.max]):d[0]t.max?s([d[0],t.max]):(n.firstValue=d[0],n.secondValue=d[1],i()&&(t.validateEvent&&((f=a==null?void 0:a.validate)==null||f.call(a,"change").catch(p=>void 0)),n.oldValue=d.slice())):!t.range&&typeof d=="number"&&!Number.isNaN(d)&&(dt.max?s(t.max):(n.firstValue=d,i()&&(t.validateEvent&&((u=a==null?void 0:a.validate)==null||u.call(a,"change").catch(p=>void 0)),n.oldValue=d)))};c(),e.watch(()=>n.dragging,f=>{f||c()}),e.watch(()=>t.modelValue,(f,u)=>{n.dragging||Array.isArray(f)&&Array.isArray(u)&&f.every((d,p)=>d===u[p])&&n.firstValue===f[0]&&n.secondValue===f[1]||c()},{deep:!0}),e.watch(()=>[t.min,t.max],()=>{c()})},Iq=le({modelValue:{type:Number,default:0},vertical:Boolean,tooltipClass:String,placement:{type:String,values:_r,default:"top"}}),Pq={[Ie]:t=>be(t)},Rq=["tabindex"],Oq=e.defineComponent({name:"ElSliderButton"}),Aq=e.defineComponent({...Oq,props:Iq,emits:Pq,setup(t,{expose:n,emit:o}){const r=t,l=Q("slider"),a=e.reactive({hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:0,oldValue:r.modelValue}),{disabled:s,button:i,tooltip:c,showTooltip:f,tooltipVisible:u,wrapperStyle:d,formatValue:p,handleMouseEnter:h,handleMouseLeave:g,onButtonDown:m,onKeyDown:b,setPosition:y}=vq(r,a,o),{hovering:C,dragging:k}=e.toRefs(a);return n({onButtonDown:m,onKeyDown:b,setPosition:y,hovering:C,dragging:k}),(w,E)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"button",ref:i,class:e.normalizeClass([e.unref(l).e("button-wrapper"),{hover:e.unref(C),dragging:e.unref(k)}]),style:e.normalizeStyle(e.unref(d)),tabindex:e.unref(s)?-1:0,onMouseenter:E[0]||(E[0]=(...S)=>e.unref(h)&&e.unref(h)(...S)),onMouseleave:E[1]||(E[1]=(...S)=>e.unref(g)&&e.unref(g)(...S)),onMousedown:E[2]||(E[2]=(...S)=>e.unref(m)&&e.unref(m)(...S)),onTouchstart:E[3]||(E[3]=(...S)=>e.unref(m)&&e.unref(m)(...S)),onFocus:E[4]||(E[4]=(...S)=>e.unref(h)&&e.unref(h)(...S)),onBlur:E[5]||(E[5]=(...S)=>e.unref(g)&&e.unref(g)(...S)),onKeydown:E[6]||(E[6]=(...S)=>e.unref(b)&&e.unref(b)(...S))},[e.createVNode(e.unref(Zt),{ref_key:"tooltip",ref:c,visible:e.unref(u),placement:w.placement,"fallback-placements":["top","bottom","right","left"],"stop-popper-mouse-event":!1,"popper-class":w.tooltipClass,disabled:!e.unref(f),persistent:""},{content:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(p)),1)]),default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass([e.unref(l).e("button"),{hover:e.unref(C),dragging:e.unref(k)}])},null,2)]),_:1},8,["visible","placement","popper-class","disabled"])],46,Rq))}});var EE=se(Aq,[["__file","button.vue"]]);const zq=le({mark:{type:W([String,Object]),default:void 0}});var Dq=e.defineComponent({name:"ElSliderMarker",props:zq,setup(t){const n=Q("slider"),o=e.computed(()=>De(t.mark)?t.mark:t.mark.label),r=e.computed(()=>De(t.mark)?void 0:t.mark.style);return()=>e.h("div",{class:n.e("marks-text"),style:r.value},o.value)}});const Lq=["id","role","aria-label","aria-labelledby"],xq={key:1},Fq=e.defineComponent({name:"ElSlider"}),Hq=e.defineComponent({...Fq,props:kE,emits:SE,setup(t,{expose:n,emit:o}){const r=t,l=Q("slider"),{t:a}=Ke(),s=e.reactive({firstValue:0,secondValue:0,oldValue:0,dragging:!1,sliderSize:1}),{elFormItem:i,slider:c,firstButton:f,secondButton:u,sliderDisabled:d,minValue:p,maxValue:h,runwayStyle:g,barStyle:m,resetSize:b,emitChange:y,onSliderWrapperPrevent:C,onSliderClick:k,onSliderDown:w,setFirstValue:E,setSecondValue:S}=Cq(r,s,o),{stops:_,getStopStyle:B}=Vq(r,s,p,h),{inputId:M,isLabeledByFormItem:P}=vo(r,{formItemContext:i}),T=St(),I=e.computed(()=>r.inputSize||T.value),v=e.computed(()=>r.label||a("el.slider.defaultLabel",{min:r.min,max:r.max})),O=e.computed(()=>r.range?r.rangeStartLabel||a("el.slider.defaultRangeStartLabel"):v.value),D=e.computed(()=>r.formatValueText?r.formatValueText(H.value):`${H.value}`),z=e.computed(()=>r.rangeEndLabel||a("el.slider.defaultRangeEndLabel")),$=e.computed(()=>r.formatValueText?r.formatValueText(K.value):`${K.value}`),R=e.computed(()=>[l.b(),l.m(T.value),l.is("vertical",r.vertical),{[l.m("with-input")]:r.showInput}]),N=bq(r);Mq(r,s,p,h,o,i);const A=e.computed(()=>{const Y=[r.min,r.max,r.step].map(Z=>{const U=`${Z}`.split(".")[1];return U?U.length:0});return Math.max.apply(null,Y)}),{sliderWrapper:x}=yq(r,s,b),{firstValue:H,secondValue:K,sliderSize:q}=e.toRefs(s),ne=Y=>{s.dragging=Y};return e.provide(Bp,{...e.toRefs(r),sliderSize:q,disabled:d,precision:A,emitChange:y,resetSize:b,updateDragging:ne}),n({onSliderClick:k}),(Y,Z)=>{var U,re;return e.openBlock(),e.createElementBlock("div",{id:Y.range?e.unref(M):void 0,ref_key:"sliderWrapper",ref:x,class:e.normalizeClass(e.unref(R)),role:Y.range?"group":void 0,"aria-label":Y.range&&!e.unref(P)?e.unref(v):void 0,"aria-labelledby":Y.range&&e.unref(P)?(U=e.unref(i))==null?void 0:U.labelId:void 0,onTouchstart:Z[2]||(Z[2]=(...te)=>e.unref(C)&&e.unref(C)(...te)),onTouchmove:Z[3]||(Z[3]=(...te)=>e.unref(C)&&e.unref(C)(...te))},[e.createElementVNode("div",{ref_key:"slider",ref:c,class:e.normalizeClass([e.unref(l).e("runway"),{"show-input":Y.showInput&&!Y.range},e.unref(l).is("disabled",e.unref(d))]),style:e.normalizeStyle(e.unref(g)),onMousedown:Z[0]||(Z[0]=(...te)=>e.unref(w)&&e.unref(w)(...te)),onTouchstart:Z[1]||(Z[1]=(...te)=>e.unref(w)&&e.unref(w)(...te))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("bar")),style:e.normalizeStyle(e.unref(m))},null,6),e.createVNode(EE,{id:Y.range?void 0:e.unref(M),ref_key:"firstButton",ref:f,"model-value":e.unref(H),vertical:Y.vertical,"tooltip-class":Y.tooltipClass,placement:Y.placement,role:"slider","aria-label":Y.range||!e.unref(P)?e.unref(O):void 0,"aria-labelledby":!Y.range&&e.unref(P)?(re=e.unref(i))==null?void 0:re.labelId:void 0,"aria-valuemin":Y.min,"aria-valuemax":Y.range?e.unref(K):Y.max,"aria-valuenow":e.unref(H),"aria-valuetext":e.unref(D),"aria-orientation":Y.vertical?"vertical":"horizontal","aria-disabled":e.unref(d),"onUpdate:modelValue":e.unref(E)},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"]),Y.range?(e.openBlock(),e.createBlock(EE,{key:0,ref_key:"secondButton",ref:u,"model-value":e.unref(K),vertical:Y.vertical,"tooltip-class":Y.tooltipClass,placement:Y.placement,role:"slider","aria-label":e.unref(z),"aria-valuemin":e.unref(H),"aria-valuemax":Y.max,"aria-valuenow":e.unref(K),"aria-valuetext":e.unref($),"aria-orientation":Y.vertical?"vertical":"horizontal","aria-disabled":e.unref(d),"onUpdate:modelValue":e.unref(S)},null,8,["model-value","vertical","tooltip-class","placement","aria-label","aria-valuemin","aria-valuemax","aria-valuenow","aria-valuetext","aria-orientation","aria-disabled","onUpdate:modelValue"])):e.createCommentVNode("v-if",!0),Y.showStops?(e.openBlock(),e.createElementBlock("div",xq,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(_),(te,oe)=>(e.openBlock(),e.createElementBlock("div",{key:oe,class:e.normalizeClass(e.unref(l).e("stop")),style:e.normalizeStyle(e.unref(B)(te))},null,6))),128))])):e.createCommentVNode("v-if",!0),e.unref(N).length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N),(te,oe)=>(e.openBlock(),e.createElementBlock("div",{key:oe,style:e.normalizeStyle(e.unref(B)(te.position)),class:e.normalizeClass([e.unref(l).e("stop"),e.unref(l).e("marks-stop")])},null,6))),128))]),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("marks"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N),(te,oe)=>(e.openBlock(),e.createBlock(e.unref(Dq),{key:oe,mark:te.mark,style:e.normalizeStyle(e.unref(B)(te.position))},null,8,["mark","style"]))),128))],2)],64)):e.createCommentVNode("v-if",!0)],38),Y.showInput&&!Y.range?(e.openBlock(),e.createBlock(e.unref(ep),{key:0,ref:"input","model-value":e.unref(H),class:e.normalizeClass(e.unref(l).e("input")),step:Y.step,disabled:e.unref(d),controls:Y.showInputControls,min:Y.min,max:Y.max,debounce:Y.debounce,size:e.unref(I),"onUpdate:modelValue":e.unref(E),onChange:e.unref(y)},null,8,["model-value","class","step","disabled","controls","min","max","debounce","size","onUpdate:modelValue","onChange"])):e.createCommentVNode("v-if",!0)],42,Lq)}}});var Kq=se(Hq,[["__file","slider.vue"]]);const NE=Me(Kq),Wq=le({prefixCls:{type:String}});var _E=e.defineComponent({name:"ElSpaceItem",props:Wq,setup(t,{slots:n}){const o=Q("space"),r=e.computed(()=>`${t.prefixCls||o.b()}__item`);return()=>e.h("div",{class:r.value},e.renderSlot(n,"default"))}});const BE={small:8,default:12,large:16};function $E(t){const n=Q("space"),o=e.computed(()=>[n.b(),n.m(t.direction),t.class]),r=e.ref(0),l=e.ref(0),a=e.computed(()=>{const i=t.wrap||t.fill?{flexWrap:"wrap",marginBottom:`-${l.value}px`}:{},c={alignItems:t.alignment};return[i,c,t.style]}),s=e.computed(()=>{const i={paddingBottom:`${l.value}px`,marginRight:`${r.value}px`},c=t.fill?{flexGrow:1,minWidth:`${t.fillRatio}%`}:{};return[i,c]});return e.watchEffect(()=>{const{size:i="small",wrap:c,direction:f,fill:u}=t;if(Re(i)){const[d=0,p=0]=i;r.value=d,l.value=p}else{let d;be(i)?d=i:d=BE[i||"small"]||BE.small,(c||u)&&f==="horizontal"?r.value=l.value=d:f==="horizontal"?(r.value=d,l.value=0):(l.value=d,r.value=0)}}),{classes:o,containerStyle:a,itemStyle:s}}const TE=le({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},class:{type:W([String,Object,Array]),default:""},style:{type:W([String,Array,Object]),default:""},alignment:{type:W(String),default:"center"},prefixCls:{type:String},spacer:{type:W([Object,String,Number,Array]),default:null,validator:t=>e.isVNode(t)||be(t)||De(t)},wrap:Boolean,fill:Boolean,fillRatio:{type:Number,default:100},size:{type:[String,Array,Number],values:Wn,validator:t=>be(t)||Re(t)&&t.length===2&&t.every(be)}}),jq=e.defineComponent({name:"ElSpace",props:TE,setup(t,{slots:n}){const{classes:o,containerStyle:r,itemStyle:l}=$E(t);function a(s,i="",c=[]){const{prefixCls:f}=t;return s.forEach((u,d)=>{Xd(u)?Re(u.children)&&u.children.forEach((p,h)=>{Xd(p)&&Re(p.children)?a(p.children,`${i+h}-`,c):c.push(e.createVNode(_E,{style:l.value,prefixCls:f,key:`nested-${i+h}`},{default:()=>[p]},In.PROPS|In.STYLE,["style","prefixCls"]))}):iL(u)&&c.push(e.createVNode(_E,{style:l.value,prefixCls:f,key:`LoopKey${i+d}`},{default:()=>[u]},In.PROPS|In.STYLE,["style","prefixCls"]))}),c}return()=>{var s;const{spacer:i,direction:c}=t,f=e.renderSlot(n,"default",{key:0},()=>[]);if(((s=f.children)!=null?s:[]).length===0)return null;if(Re(f.children)){let u=a(f.children);if(i){const d=u.length-1;u=u.reduce((p,h,g)=>{const m=[...p,h];return g!==d&&m.push(e.createVNode("span",{style:[l.value,c==="vertical"?"width: 100%":null],key:g},[e.isVNode(i)?i:e.createTextVNode(i,In.TEXT)],In.STYLE)),m},[])}return e.createVNode("div",{class:o.value,style:r.value},u,In.STYLE|In.CLASS)}return f.children}}}),vE=Me(jq),VE=le({decimalSeparator:{type:String,default:"."},groupSeparator:{type:String,default:","},precision:{type:Number,default:0},formatter:Function,value:{type:W([Number,Object]),default:0},prefix:String,suffix:String,title:String,valueStyle:{type:W([String,Object,Array])}}),Uq=e.defineComponent({name:"ElStatistic"}),Gq=e.defineComponent({...Uq,props:VE,setup(t,{expose:n}){const o=t,r=Q("statistic"),l=e.computed(()=>{const{value:a,formatter:s,precision:i,decimalSeparator:c,groupSeparator:f}=o;if(qe(s))return s(a);if(!be(a))return a;let[u,d=""]=String(a).split(".");return d=d.padEnd(i,"0").slice(0,i>0?i:0),u=u.replace(/\B(?=(\d{3})+(?!\d))/g,f),[u,d].join(d?c:"")});return n({displayValue:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(r).b())},[a.$slots.title||a.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).e("head"))},[e.renderSlot(a.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(a.title),1)])],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).e("content"))},[a.$slots.prefix||a.prefix?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).e("prefix"))},[e.renderSlot(a.$slots,"prefix",{},()=>[e.createElementVNode("span",null,e.toDisplayString(a.prefix),1)])],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("span",{class:e.normalizeClass(e.unref(r).e("number")),style:e.normalizeStyle(a.valueStyle)},e.toDisplayString(e.unref(l)),7),a.$slots.suffix||a.suffix?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(r).e("suffix"))},[e.renderSlot(a.$slots,"suffix",{},()=>[e.createElementVNode("span",null,e.toDisplayString(a.suffix),1)])],2)):e.createCommentVNode("v-if",!0)],2)],2))}});var qq=se(Gq,[["__file","statistic.vue"]]);const Tp=Me(qq),ME=le({format:{type:String,default:"HH:mm:ss"},prefix:String,suffix:String,title:String,value:{type:W([Number,Object]),default:0},valueStyle:{type:W([String,Object,Array])}}),IE={finish:()=>!0,[at]:t=>be(t)},Yq=[["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]],PE=t=>be(t)?new Date(t).getTime():t.valueOf(),RE=(t,n)=>{let o=t;const r=/\[([^\]]*)]/g;return Yq.reduce((a,[s,i])=>{const c=new RegExp(`${s}+(?![^\\[\\]]*\\])`,"g");if(c.test(a)){const f=Math.floor(o/i);return o-=f*i,a.replace(c,u=>String(f).padStart(u.length,"0"))}return a},n).replace(r,"$1")},Xq=e.defineComponent({name:"ElCountdown"}),Zq=e.defineComponent({...Xq,props:ME,emits:IE,setup(t,{expose:n,emit:o}){const r=t;let l;const a=e.ref(PE(r.value)-Date.now()),s=e.computed(()=>RE(a.value,r.format)),i=u=>RE(u,r.format),c=()=>{l&&(Rs(l),l=void 0)},f=()=>{const u=PE(r.value),d=()=>{let p=u-Date.now();o("change",p),p<=0?(p=0,c(),o("finish")):l=rl(d),a.value=p};l=rl(d)};return e.watch(()=>[r.value,r.format],()=>{c(),f()},{immediate:!0}),e.onBeforeUnmount(()=>{c()}),n({displayValue:s}),(u,d)=>(e.openBlock(),e.createBlock(e.unref(Tp),{value:a.value,title:u.title,prefix:u.prefix,suffix:u.suffix,"value-style":u.valueStyle,formatter:i},e.createSlots({_:2},[e.renderList(u.$slots,(p,h)=>({name:h,fn:e.withCtx(()=>[e.renderSlot(u.$slots,h)])}))]),1032,["value","title","prefix","suffix","value-style"]))}});var Jq=se(Zq,[["__file","countdown.vue"]]);const OE=Me(Jq),AE=le({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"}}),zE={[at]:(t,n)=>[t,n].every(be)},Qq=e.defineComponent({name:"ElSteps"}),eY=e.defineComponent({...Qq,props:AE,emits:zE,setup(t,{emit:n}){const o=t,r=Q("steps"),{children:l,addChild:a,removeChild:s}=qs(e.getCurrentInstance(),"ElStep");return e.watch(l,()=>{l.value.forEach((i,c)=>{i.setIndex(c)})}),e.provide("ElSteps",{props:o,steps:l,addStep:a,removeStep:s}),e.watch(()=>o.active,(i,c)=>{n(at,i,c)}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(r).b(),e.unref(r).m(i.simple?"simple":i.direction)])},[e.renderSlot(i.$slots,"default")],2))}});var tY=se(eY,[["__file","steps.vue"]]);const DE=le({title:{type:String,default:""},icon:{type:ot},description:{type:String,default:""},status:{type:String,values:["","wait","process","finish","error","success"],default:""}}),nY=e.defineComponent({name:"ElStep"}),oY=e.defineComponent({...nY,props:DE,setup(t){const n=t,o=Q("step"),r=e.ref(-1),l=e.ref({}),a=e.ref(""),s=e.inject("ElSteps"),i=e.getCurrentInstance();e.onMounted(()=>{e.watch([()=>s.props.active,()=>s.props.processStatus,()=>s.props.finishStatus],([S])=>{w(S)},{immediate:!0})}),e.onBeforeUnmount(()=>{s.removeStep(E.uid)});const c=e.computed(()=>n.status||a.value),f=e.computed(()=>{const S=s.steps.value[r.value-1];return S?S.currentStatus:"wait"}),u=e.computed(()=>s.props.alignCenter),d=e.computed(()=>s.props.direction==="vertical"),p=e.computed(()=>s.props.simple),h=e.computed(()=>s.steps.value.length),g=e.computed(()=>{var S;return((S=s.steps.value[h.value-1])==null?void 0:S.uid)===(i==null?void 0:i.uid)}),m=e.computed(()=>p.value?"":s.props.space),b=e.computed(()=>[o.b(),o.is(p.value?"simple":s.props.direction),o.is("flex",g.value&&!m.value&&!u.value),o.is("center",u.value&&!d.value&&!p.value)]),y=e.computed(()=>{const S={flexBasis:be(m.value)?`${m.value}px`:m.value?m.value:`${100/(h.value-(u.value?0:1))}%`};return d.value||g.value&&(S.maxWidth=`${100/h.value}%`),S}),C=S=>{r.value=S},k=S=>{const _=S==="wait",B={transitionDelay:`${_?"-":""}${150*r.value}ms`},M=S===s.props.processStatus||_?0:100;B.borderWidth=M&&!p.value?"1px":0,B[s.props.direction==="vertical"?"height":"width"]=`${M}%`,l.value=B},w=S=>{S>r.value?a.value=s.props.finishStatus:S===r.value&&f.value!=="error"?a.value=s.props.processStatus:a.value="wait";const _=s.steps.value[r.value-1];_&&_.calcProgress(a.value)},E=e.reactive({uid:i.uid,currentStatus:c,setIndex:C,calcProgress:k});return s.addStep(E),(S,_)=>(e.openBlock(),e.createElementBlock("div",{style:e.normalizeStyle(e.unref(y)),class:e.normalizeClass(e.unref(b))},[e.createCommentVNode(" icon & line "),e.createElementVNode("div",{class:e.normalizeClass([e.unref(o).e("head"),e.unref(o).is(e.unref(c))])},[e.unref(p)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).e("line"))},[e.createElementVNode("i",{class:e.normalizeClass(e.unref(o).e("line-inner")),style:e.normalizeStyle(l.value)},null,6)],2)),e.createElementVNode("div",{class:e.normalizeClass([e.unref(o).e("icon"),e.unref(o).is(S.icon||S.$slots.icon?"icon":"text")])},[e.renderSlot(S.$slots,"icon",{},()=>[S.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(o).e("icon-inner"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S.icon)))]),_:1},8,["class"])):e.unref(c)==="success"?(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass([e.unref(o).e("icon-inner"),e.unref(o).is("status")])},{default:e.withCtx(()=>[e.createVNode(e.unref(la))]),_:1},8,["class"])):e.unref(c)==="error"?(e.openBlock(),e.createBlock(e.unref(fe),{key:2,class:e.normalizeClass([e.unref(o).e("icon-inner"),e.unref(o).is("status")])},{default:e.withCtx(()=>[e.createVNode(e.unref(Hn))]),_:1},8,["class"])):e.unref(p)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(e.unref(o).e("icon-inner"))},e.toDisplayString(r.value+1),3))])],2)],2),e.createCommentVNode(" title & description "),e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("main"))},[e.createElementVNode("div",{class:e.normalizeClass([e.unref(o).e("title"),e.unref(o).is(e.unref(c))])},[e.renderSlot(S.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(S.title),1)])],2),e.unref(p)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).e("arrow"))},null,2)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass([e.unref(o).e("description"),e.unref(o).is(e.unref(c))])},[e.renderSlot(S.$slots,"description",{},()=>[e.createTextVNode(e.toDisplayString(S.description),1)])],2))],2)],6))}});var LE=se(oY,[["__file","item.vue"]]);const xE=Me(tY,{Step:LE}),FE=ht(LE),HE=le({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},size:{type:String,validator:Yd},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},inactiveActionIcon:{type:ot},activeActionIcon:{type:ot},activeIcon:{type:ot},inactiveIcon:{type:ot},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},beforeChange:{type:W(Function)},id:String,tabindex:{type:[String,Number]},value:{type:[Boolean,String,Number],default:!1},label:{type:String,default:void 0}}),KE={[Ie]:t=>Tt(t)||De(t)||be(t),[at]:t=>Tt(t)||De(t)||be(t),[qt]:t=>Tt(t)||De(t)||be(t)},rY=["onClick"],lY=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex","onKeydown"],aY=["aria-hidden"],sY=["aria-hidden"],iY=["aria-hidden"],vp="ElSwitch",cY=e.defineComponent({name:vp}),dY=e.defineComponent({...cY,props:HE,emits:KE,setup(t,{expose:n,emit:o}){const r=t,l=e.getCurrentInstance(),{formItem:a}=Xt(),s=St(),i=Q("switch");(B=>{B.forEach(M=>{jn({from:M[0],replacement:M[1],scope:vp,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},e.computed(()=>{var P;return!!((P=l.vnode.props)!=null&&P[M[2]])}))})})([['"value"','"model-value" or "v-model"',"value"],['"active-color"',"CSS var `--el-switch-on-color`","activeColor"],['"inactive-color"',"CSS var `--el-switch-off-color`","inactiveColor"],['"border-color"',"CSS var `--el-switch-border-color`","borderColor"]]);const{inputId:f}=vo(r,{formItemContext:a}),u=Yt(e.computed(()=>r.loading)),d=e.ref(r.modelValue!==!1),p=e.ref(),h=e.ref(),g=e.computed(()=>[i.b(),i.m(s.value),i.is("disabled",u.value),i.is("checked",k.value)]),m=e.computed(()=>[i.e("label"),i.em("label","left"),i.is("active",!k.value)]),b=e.computed(()=>[i.e("label"),i.em("label","right"),i.is("active",k.value)]),y=e.computed(()=>({width:kt(r.width)}));e.watch(()=>r.modelValue,()=>{d.value=!0}),e.watch(()=>r.value,()=>{d.value=!1});const C=e.computed(()=>d.value?r.modelValue:r.value),k=e.computed(()=>C.value===r.activeValue);[r.activeValue,r.inactiveValue].includes(C.value)||(o(Ie,r.inactiveValue),o(at,r.inactiveValue),o(qt,r.inactiveValue)),e.watch(k,B=>{var M;p.value.checked=B,r.validateEvent&&((M=a==null?void 0:a.validate)==null||M.call(a,"change").catch(P=>void 0))});const w=()=>{const B=k.value?r.inactiveValue:r.activeValue;o(Ie,B),o(at,B),o(qt,B),e.nextTick(()=>{p.value.checked=k.value})},E=()=>{if(u.value)return;const{beforeChange:B}=r;if(!B){w();return}const M=B();[bc(M),Tt(M)].includes(!0)||vt(vp,"beforeChange must return type `Promise` or `boolean`"),bc(M)?M.then(T=>{T&&w()}).catch(T=>{}):M&&w()},S=e.computed(()=>i.cssVarBlock({...r.activeColor?{"on-color":r.activeColor}:null,...r.inactiveColor?{"off-color":r.inactiveColor}:null,...r.borderColor?{"border-color":r.borderColor}:null})),_=()=>{var B,M;(M=(B=p.value)==null?void 0:B.focus)==null||M.call(B)};return e.onMounted(()=>{p.value.checked=k.value}),n({focus:_,checked:k}),(B,M)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(g)),style:e.normalizeStyle(e.unref(S)),onClick:e.withModifiers(E,["prevent"])},[e.createElementVNode("input",{id:e.unref(f),ref_key:"input",ref:p,class:e.normalizeClass(e.unref(i).e("input")),type:"checkbox",role:"switch","aria-checked":e.unref(k),"aria-disabled":e.unref(u),"aria-label":B.label,name:B.name,"true-value":B.activeValue,"false-value":B.inactiveValue,disabled:e.unref(u),tabindex:B.tabindex,onChange:w,onKeydown:e.withKeys(E,["enter"])},null,42,lY),!B.inlinePrompt&&(B.inactiveIcon||B.inactiveText)?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(m))},[B.inactiveIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.inactiveIcon)))]),_:1})):e.createCommentVNode("v-if",!0),!B.inactiveIcon&&B.inactiveText?(e.openBlock(),e.createElementBlock("span",{key:1,"aria-hidden":e.unref(k)},e.toDisplayString(B.inactiveText),9,aY)):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("span",{ref_key:"core",ref:h,class:e.normalizeClass(e.unref(i).e("core")),style:e.normalizeStyle(e.unref(y))},[B.inlinePrompt?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(i).e("inner"))},[B.activeIcon||B.inactiveIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(i).is("icon"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(k)?B.activeIcon:B.inactiveIcon)))]),_:1},8,["class"])):B.activeText||B.inactiveText?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(i).is("text")),"aria-hidden":!e.unref(k)},e.toDisplayString(e.unref(k)?B.activeText:B.inactiveText),11,sY)):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(i).e("action"))},[B.loading?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(i).is("loading"))},{default:e.withCtx(()=>[e.createVNode(e.unref(Zo))]),_:1},8,["class"])):B.activeActionIcon&&e.unref(k)?(e.openBlock(),e.createBlock(e.unref(fe),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.activeActionIcon)))]),_:1})):B.inactiveActionIcon&&!e.unref(k)?(e.openBlock(),e.createBlock(e.unref(fe),{key:2},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.inactiveActionIcon)))]),_:1})):e.createCommentVNode("v-if",!0)],2)],6),!B.inlinePrompt&&(B.activeIcon||B.activeText)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(b))},[B.activeIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.activeIcon)))]),_:1})):e.createCommentVNode("v-if",!0),!B.activeIcon&&B.activeText?(e.openBlock(),e.createElementBlock("span",{key:1,"aria-hidden":!e.unref(k)},e.toDisplayString(B.activeText),9,iY)):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0)],14,rY))}});var fY=se(dY,[["__file","switch.vue"]]);const WE=Me(fY);var uY=/["'&<>]/,pY=mY;function mY(t){var n=""+t,o=uY.exec(n);if(!o)return n;var r,l="",a=0,s=0;for(a=o.index;atypeof f=="string"?ct(i,f):f(i,c,t))):(n!=="$key"&&nt(i)&&"$value"in i&&(i=i.$value),[nt(i)?ct(i,n):i])},s=function(i,c){if(r)return r(i.value,c.value);for(let f=0,u=i.key.length;fc.key[f])return 1}return 0};return t.map((i,c)=>({value:i,index:c,key:a?a(i,c):null})).sort((i,c)=>{let f=s(i,c);return f||(f=i.index-c.index),f*+o}).map(i=>i.value)},jE=function(t,n){let o=null;return t.columns.forEach(r=>{r.id===n&&(o=r)}),o},gY=function(t,n){let o=null;for(let r=0;r{if(!t)throw new Error("Row is required when get row identity");if(typeof n=="string"){if(!n.includes("."))return`${t[n]}`;const o=n.split(".");let r=t;for(const l of o)r=r[l];return`${r}`}else if(typeof n=="function")return n.call(null,t)},Lr=function(t,n){const o={};return(t||[]).forEach((r,l)=>{o[Kt(r,n)]={row:r,index:l}}),o};function yY(t,n){const o={};let r;for(r in t)o[r]=t[r];for(r in n)if(Lt(n,r)){const l=n[r];typeof l!="undefined"&&(o[r]=l)}return o}function Mp(t){return t===""||t!==void 0&&(t=Number.parseInt(t,10),Number.isNaN(t)&&(t="")),t}function GE(t){return t===""||t!==void 0&&(t=Mp(t),Number.isNaN(t)&&(t=80)),t}function bY(t){return typeof t=="number"?t:typeof t=="string"?/^\d+(?:px)?$/.test(t)?Number.parseInt(t,10):t:null}function CY(...t){return t.length===0?n=>n:t.length===1?t[0]:t.reduce((n,o)=>(...r)=>n(o(...r)))}function Oa(t,n,o){let r=!1;const l=t.indexOf(n),a=l!==-1,s=i=>{i==="add"?t.push(n):t.splice(l,1),r=!0,Re(n.children)&&n.children.forEach(c=>{Oa(t,c,o!=null?o:!a)})};return Tt(o)?o&&!a?s("add"):!o&&a&&s("remove"):s(a?"remove":"add"),r}function wY(t,n,o="children",r="hasChildren"){const l=s=>!(Array.isArray(s)&&s.length);function a(s,i,c){n(s,i,c),i.forEach(f=>{if(f[r]){n(f,null,c+1);return}const u=f[o];l(u)||a(f,u,c+1)})}t.forEach(s=>{if(s[r]){n(s,null,0);return}const i=s[o];l(i)||a(s,i,0)})}let Oo;function kY(t,n,o,r,l){l=Ed({enterable:!0,showArrow:!0},l);const a=t==null?void 0:t.dataset.prefix,s=t==null?void 0:t.querySelector(`.${a}-scrollbar__wrap`);function i(){const b=l.effect==="light",y=document.createElement("div");return y.className=[`${a}-popper`,b?"is-light":"is-dark",l.popperClass||""].join(" "),o=pY(o),y.innerHTML=o,y.style.zIndex=String(r()),t==null||t.appendChild(y),y}function c(){const b=document.createElement("div");return b.className=`${a}-popper__arrow`,b}function f(){u&&u.update()}Oo==null||Oo(),Oo=()=>{try{u&&u.destroy(),h&&(t==null||t.removeChild(h)),n.removeEventListener("mouseenter",d),n.removeEventListener("mouseleave",p),s==null||s.removeEventListener("scroll",Oo),Oo=void 0}catch(b){}};let u=null,d=f,p=Oo;l.enterable&&({onOpen:d,onClose:p}=yf({showAfter:l.showAfter,hideAfter:l.hideAfter,open:f,close:Oo}));const h=i();h.onmouseenter=d,h.onmouseleave=p;const g=[];if(l.offset&&g.push({name:"offset",options:{offset:[0,l.offset]}}),l.showArrow){const b=h.appendChild(c());g.push({name:"arrow",options:{element:b,padding:10}})}const m=l.popperOptions||{};return u=ab(n,h,{placement:l.placement||"top",strategy:"fixed",...m,modifiers:m.modifiers?g.concat(m.modifiers):g}),n.addEventListener("mouseenter",d),n.addEventListener("mouseleave",p),s==null||s.addEventListener("scroll",Oo),u}function qE(t){return t.children?w0(t.children,qE):[t]}function YE(t,n){return t+n.colSpan}const XE=(t,n,o,r)=>{let l=0,a=t;const s=o.states.columns.value;if(r){const c=qE(r[t]);l=s.slice(0,s.indexOf(c[0])).reduce(YE,0),a=l+c.reduce(YE,0)-1}else l=t;let i;switch(n){case"left":a=s.length-o.states.rightFixedLeafColumnsLength.value&&(i="right");break;default:a=s.length-o.states.rightFixedLeafColumnsLength.value&&(i="right")}return i?{direction:i,start:l,after:a}:{}},Ip=(t,n,o,r,l,a=0)=>{const s=[],{direction:i,start:c,after:f}=XE(n,o,r,l);if(i){const u=i==="left";s.push(`${t}-fixed-column--${i}`),u&&f+a===r.states.fixedLeafColumnsLength.value-1?s.push("is-last-column"):!u&&c-a===r.states.columns.value.length-r.states.rightFixedLeafColumnsLength.value&&s.push("is-first-column")}return s};function ZE(t,n){return t+(n.realWidth===null||Number.isNaN(n.realWidth)?Number(n.width):n.realWidth)}const Pp=(t,n,o,r)=>{const{direction:l,start:a=0,after:s=0}=XE(t,n,o,r);if(!l)return;const i={},c=l==="left",f=o.states.columns.value;return c?i.left=f.slice(0,a).reduce(ZE,0):i.right=f.slice(s+1).reverse().reduce(ZE,0),i},Bl=(t,n)=>{!t||Number.isNaN(t[n])||(t[n]=`${t[n]}px`)};function SY(t){const n=e.getCurrentInstance(),o=e.ref(!1),r=e.ref([]);return{updateExpandRows:()=>{const c=t.data.value||[],f=t.rowKey.value;if(o.value)r.value=c.slice();else if(f){const u=Lr(r.value,f);r.value=c.reduce((d,p)=>{const h=Kt(p,f);return u[h]&&d.push(p),d},[])}else r.value=[]},toggleRowExpansion:(c,f)=>{Oa(r.value,c,f)&&n.emit("expand-change",c,r.value.slice())},setExpandRowKeys:c=>{n.store.assertRowKey();const f=t.data.value||[],u=t.rowKey.value,d=Lr(f,u);r.value=c.reduce((p,h)=>{const g=d[h];return g&&p.push(g.row),p},[])},isRowExpanded:c=>{const f=t.rowKey.value;return f?!!Lr(r.value,f)[Kt(c,f)]:r.value.includes(c)},states:{expandRows:r,defaultExpandAll:o}}}function EY(t){const n=e.getCurrentInstance(),o=e.ref(null),r=e.ref(null),l=f=>{n.store.assertRowKey(),o.value=f,s(f)},a=()=>{o.value=null},s=f=>{const{data:u,rowKey:d}=t;let p=null;d.value&&(p=(e.unref(u)||[]).find(h=>Kt(h,d.value)===f)),r.value=p,n.emit("current-change",r.value,null)};return{setCurrentRowKey:l,restoreCurrentRowKey:a,setCurrentRowByKey:s,updateCurrentRow:f=>{const u=r.value;if(f&&f!==u){r.value=f,n.emit("current-change",r.value,u);return}!f&&u&&(r.value=null,n.emit("current-change",null,u))},updateCurrentRowData:()=>{const f=t.rowKey.value,u=t.data.value||[],d=r.value;if(!u.includes(d)&&d){if(f){const p=Kt(d,f);s(p)}else r.value=null;r.value===null&&n.emit("current-change",null,d)}else o.value&&(s(o.value),a())},states:{_currentRowKey:o,currentRow:r}}}function NY(t){const n=e.ref([]),o=e.ref({}),r=e.ref(16),l=e.ref(!1),a=e.ref({}),s=e.ref("hasChildren"),i=e.ref("children"),c=e.getCurrentInstance(),f=e.computed(()=>{if(!t.rowKey.value)return{};const y=t.data.value||[];return d(y)}),u=e.computed(()=>{const y=t.rowKey.value,C=Object.keys(a.value),k={};return C.length&&C.forEach(w=>{if(a.value[w].length){const E={children:[]};a.value[w].forEach(S=>{const _=Kt(S,y);E.children.push(_),S[s.value]&&!k[_]&&(k[_]={children:[]})}),k[w]=E}}),k}),d=y=>{const C=t.rowKey.value,k={};return wY(y,(w,E,S)=>{const _=Kt(w,C);Array.isArray(E)?k[_]={children:E.map(B=>Kt(B,C)),level:S}:l.value&&(k[_]={children:[],lazy:!0,level:S})},i.value,s.value),k},p=(y=!1,C=(k=>(k=c.store)==null?void 0:k.states.defaultExpandAll.value)())=>{var k;const w=f.value,E=u.value,S=Object.keys(w),_={};if(S.length){const B=e.unref(o),M=[],P=(I,v)=>{if(y)return n.value?C||n.value.includes(v):!!(C||(I==null?void 0:I.expanded));{const O=C||n.value&&n.value.includes(v);return!!((I==null?void 0:I.expanded)||O)}};S.forEach(I=>{const v=B[I],O={...w[I]};if(O.expanded=P(v,I),O.lazy){const{loaded:D=!1,loading:z=!1}=v||{};O.loaded=!!D,O.loading=!!z,M.push(I)}_[I]=O});const T=Object.keys(E);l.value&&T.length&&M.length&&T.forEach(I=>{const v=B[I],O=E[I].children;if(M.includes(I)){if(_[I].children.length!==0)throw new Error("[ElTable]children must be an empty array.");_[I].children=O}else{const{loaded:D=!1,loading:z=!1}=v||{};_[I]={lazy:!0,loaded:!!D,loading:!!z,expanded:P(v,I),children:O,level:""}}})}o.value=_,(k=c.store)==null||k.updateTableScrollY()};e.watch(()=>n.value,()=>{p(!0)}),e.watch(()=>f.value,()=>{p()}),e.watch(()=>u.value,()=>{p()});const h=y=>{n.value=y,p()},g=(y,C)=>{c.store.assertRowKey();const k=t.rowKey.value,w=Kt(y,k),E=w&&o.value[w];if(w&&E&&"expanded"in E){const S=E.expanded;C=typeof C=="undefined"?!E.expanded:C,o.value[w].expanded=C,S!==C&&c.emit("expand-change",y,C),c.store.updateTableScrollY()}},m=y=>{c.store.assertRowKey();const C=t.rowKey.value,k=Kt(y,C),w=o.value[k];l.value&&w&&"loaded"in w&&!w.loaded?b(y,k,w):g(y,void 0)},b=(y,C,k)=>{const{load:w}=c.props;w&&!o.value[C].loaded&&(o.value[C].loading=!0,w(y,k,E=>{if(!Array.isArray(E))throw new TypeError("[ElTable] data must be an array");o.value[C].loading=!1,o.value[C].loaded=!0,o.value[C].expanded=!0,E.length&&(a.value[C]=E),c.emit("expand-change",y,!0)}))};return{loadData:b,loadOrToggle:m,toggleTreeExpansion:g,updateTreeExpandKeys:h,updateTreeData:p,normalize:d,states:{expandRowKeys:n,treeData:o,indent:r,lazy:l,lazyTreeNodeMap:a,lazyColumnIdentifier:s,childrenColumnName:i}}}const _Y=(t,n)=>{const o=n.sortingColumn;return!o||typeof o.sortable=="string"?t:hY(t,n.sortProp,n.sortOrder,o.sortMethod,o.sortBy)},Yi=t=>{const n=[];return t.forEach(o=>{o.children&&o.children.length>0?n.push.apply(n,Yi(o.children)):n.push(o)}),n};function BY(){var t;const n=e.getCurrentInstance(),{size:o}=e.toRefs((t=n.proxy)==null?void 0:t.$props),r=e.ref(null),l=e.ref([]),a=e.ref([]),s=e.ref(!1),i=e.ref([]),c=e.ref([]),f=e.ref([]),u=e.ref([]),d=e.ref([]),p=e.ref([]),h=e.ref([]),g=e.ref([]),m=[],b=e.ref(0),y=e.ref(0),C=e.ref(0),k=e.ref(!1),w=e.ref([]),E=e.ref(!1),S=e.ref(!1),_=e.ref(null),B=e.ref({}),M=e.ref(null),P=e.ref(null),T=e.ref(null),I=e.ref(null),v=e.ref(null);e.watch(l,()=>n.state&&$(!1),{deep:!0});const O=()=>{if(!r.value)throw new Error("[ElTable] prop row-key is required")},D=ke=>{var J;(J=ke.children)==null||J.forEach(G=>{G.fixed=ke.fixed,D(G)})},z=()=>{i.value.forEach(ee=>{D(ee)}),u.value=i.value.filter(ee=>ee.fixed===!0||ee.fixed==="left"),d.value=i.value.filter(ee=>ee.fixed==="right"),u.value.length>0&&i.value[0]&&i.value[0].type==="selection"&&!i.value[0].fixed&&(i.value[0].fixed=!0,u.value.unshift(i.value[0]));const ke=i.value.filter(ee=>!ee.fixed);c.value=[].concat(u.value).concat(ke).concat(d.value);const J=Yi(ke),G=Yi(u.value),j=Yi(d.value);b.value=J.length,y.value=G.length,C.value=j.length,f.value=[].concat(G).concat(J).concat(j),s.value=u.value.length>0||d.value.length>0},$=(ke,J=!1)=>{ke&&z(),J?n.state.doLayout():n.state.debouncedUpdateLayout()},R=ke=>w.value.includes(ke),N=()=>{k.value=!1,w.value.length&&(w.value=[],n.emit("selection-change",[]))},A=()=>{let ke;if(r.value){ke=[];const J=Lr(w.value,r.value),G=Lr(l.value,r.value);for(const j in J)Lt(J,j)&&!G[j]&&ke.push(J[j].row)}else ke=w.value.filter(J=>!l.value.includes(J));if(ke.length){const J=w.value.filter(G=>!ke.includes(G));w.value=J,n.emit("selection-change",J.slice())}},x=()=>(w.value||[]).slice(),H=(ke,J=void 0,G=!0)=>{if(Oa(w.value,ke,J)){const ee=(w.value||[]).slice();G&&n.emit("select",ee,ke),n.emit("selection-change",ee)}},K=()=>{var ke,J;const G=S.value?!k.value:!(k.value||w.value.length);k.value=G;let j=!1,ee=0;const F=(J=(ke=n==null?void 0:n.store)==null?void 0:ke.states)==null?void 0:J.rowKey.value;l.value.forEach((ue,Be)=>{const xe=Be+ee;_.value?_.value.call(null,ue,xe)&&Oa(w.value,ue,G)&&(j=!0):Oa(w.value,ue,G)&&(j=!0),ee+=Y(Kt(ue,F))}),j&&n.emit("selection-change",w.value?w.value.slice():[]),n.emit("select-all",w.value)},q=()=>{const ke=Lr(w.value,r.value);l.value.forEach(J=>{const G=Kt(J,r.value),j=ke[G];j&&(w.value[j.index]=J)})},ne=()=>{var ke,J,G;if(((ke=l.value)==null?void 0:ke.length)===0){k.value=!1;return}let j;r.value&&(j=Lr(w.value,r.value));const ee=function(xe){return j?!!j[Kt(xe,r.value)]:w.value.includes(xe)};let F=!0,ue=0,Be=0;for(let xe=0,_t=(l.value||[]).length;xe<_t;xe++){const gt=(G=(J=n==null?void 0:n.store)==null?void 0:J.states)==null?void 0:G.rowKey.value,zn=xe+Be,Wt=l.value[xe],X=_.value&&_.value.call(null,Wt,zn);if(ee(Wt))ue++;else if(!_.value||X){F=!1;break}Be+=Y(Kt(Wt,gt))}ue===0&&(F=!1),k.value=F},Y=ke=>{var J;if(!n||!n.store)return 0;const{treeData:G}=n.store.states;let j=0;const ee=(J=G.value[ke])==null?void 0:J.children;return ee&&(j+=ee.length,ee.forEach(F=>{j+=Y(F)})),j},Z=(ke,J)=>{Array.isArray(ke)||(ke=[ke]);const G={};return ke.forEach(j=>{B.value[j.id]=J,G[j.columnKey||j.id]=J}),G},U=(ke,J,G)=>{P.value&&P.value!==ke&&(P.value.order=null),P.value=ke,T.value=J,I.value=G},re=()=>{let ke=e.unref(a);Object.keys(B.value).forEach(J=>{const G=B.value[J];if(!G||G.length===0)return;const j=jE({columns:f.value},J);j&&j.filterMethod&&(ke=ke.filter(ee=>G.some(F=>j.filterMethod.call(null,F,ee,j))))}),M.value=ke},te=()=>{l.value=_Y(M.value,{sortingColumn:P.value,sortProp:T.value,sortOrder:I.value})},oe=(ke=void 0)=>{ke&&ke.filter||re(),te()},ie=ke=>{const{tableHeaderRef:J}=n.refs;if(!J)return;const G=Object.assign({},J.filterPanels),j=Object.keys(G);if(!!j.length)if(typeof ke=="string"&&(ke=[ke]),Array.isArray(ke)){const ee=ke.map(F=>gY({columns:f.value},F));j.forEach(F=>{const ue=ee.find(Be=>Be.id===F);ue&&(ue.filteredValue=[])}),n.store.commit("filterChange",{column:ee,values:[],silent:!0,multi:!0})}else j.forEach(ee=>{const F=f.value.find(ue=>ue.id===ee);F&&(F.filteredValue=[])}),B.value={},n.store.commit("filterChange",{column:{},values:[],silent:!0})},ye=()=>{!P.value||(U(null,null,null),n.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:Ne,toggleRowExpansion:Te,updateExpandRows:Pe,states:he,isRowExpanded:Ce}=SY({data:l,rowKey:r}),{updateTreeExpandKeys:ge,toggleTreeExpansion:me,updateTreeData:_e,loadOrToggle:$e,states:Ae}=NY({data:l,rowKey:r}),{updateCurrentRowData:Oe,updateCurrentRow:ce,setCurrentRowKey:Ee,states:Le}=EY({data:l,rowKey:r});return{assertRowKey:O,updateColumns:z,scheduleLayout:$,isSelected:R,clearSelection:N,cleanSelection:A,getSelectionRows:x,toggleRowSelection:H,_toggleAllSelection:K,toggleAllSelection:null,updateSelectionByRowKey:q,updateAllSelected:ne,updateFilters:Z,updateCurrentRow:ce,updateSort:U,execFilter:re,execSort:te,execQuery:oe,clearFilter:ie,clearSort:ye,toggleRowExpansion:Te,setExpandRowKeysAdapter:ke=>{Ne(ke),ge(ke)},setCurrentRowKey:Ee,toggleRowExpansionAdapter:(ke,J)=>{f.value.some(({type:j})=>j==="expand")?Te(ke,J):me(ke,J)},isRowExpanded:Ce,updateExpandRows:Pe,updateCurrentRowData:Oe,loadOrToggle:$e,updateTreeData:_e,states:{tableSize:o,rowKey:r,data:l,_data:a,isComplex:s,_columns:i,originColumns:c,columns:f,fixedColumns:u,rightFixedColumns:d,leafColumns:p,fixedLeafColumns:h,rightFixedLeafColumns:g,updateOrderFns:m,leafColumnsLength:b,fixedLeafColumnsLength:y,rightFixedLeafColumnsLength:C,isAllSelected:k,selection:w,reserveSelection:E,selectOnIndeterminate:S,selectable:_,filters:B,filteredData:M,sortingColumn:P,sortProp:T,sortOrder:I,hoverRow:v,...he,...Ae,...Le}}}function Rp(t,n){return t.map(o=>{var r;return o.id===n.id?n:((r=o.children)!=null&&r.length&&(o.children=Rp(o.children,n)),o)})}function Op(t){t.forEach(n=>{var o,r;n.no=(o=n.getColumnIndex)==null?void 0:o.call(n),(r=n.children)!=null&&r.length&&Op(n.children)}),t.sort((n,o)=>n.no-o.no)}function $Y(){const t=e.getCurrentInstance(),n=BY();return{ns:Q("table"),...n,mutations:{setData(s,i){const c=e.unref(s._data)!==i;s.data.value=i,s._data.value=i,t.store.execQuery(),t.store.updateCurrentRowData(),t.store.updateExpandRows(),t.store.updateTreeData(t.store.states.defaultExpandAll.value),e.unref(s.reserveSelection)?(t.store.assertRowKey(),t.store.updateSelectionByRowKey()):c?t.store.clearSelection():t.store.cleanSelection(),t.store.updateAllSelected(),t.$ready&&t.store.scheduleLayout()},insertColumn(s,i,c,f){const u=e.unref(s._columns);let d=[];c?(c&&!c.children&&(c.children=[]),c.children.push(i),d=Rp(u,c)):(u.push(i),d=u),Op(d),s._columns.value=d,s.updateOrderFns.push(f),i.type==="selection"&&(s.selectable.value=i.selectable,s.reserveSelection.value=i.reserveSelection),t.$ready&&(t.store.updateColumns(),t.store.scheduleLayout())},updateColumnOrder(s,i){var c;((c=i.getColumnIndex)==null?void 0:c.call(i))!==i.no&&(Op(s._columns.value),t.$ready&&t.store.updateColumns())},removeColumn(s,i,c,f){const u=e.unref(s._columns)||[];if(c)c.children.splice(c.children.findIndex(p=>p.id===i.id),1),e.nextTick(()=>{var p;((p=c.children)==null?void 0:p.length)===0&&delete c.children}),s._columns.value=Rp(u,c);else{const p=u.indexOf(i);p>-1&&(u.splice(p,1),s._columns.value=u)}const d=s.updateOrderFns.indexOf(f);d>-1&&s.updateOrderFns.splice(d,1),t.$ready&&(t.store.updateColumns(),t.store.scheduleLayout())},sort(s,i){const{prop:c,order:f,init:u}=i;if(c){const d=e.unref(s.columns).find(p=>p.property===c);d&&(d.order=f,t.store.updateSort(d,c,f),t.store.commit("changeSortCondition",{init:u}))}},changeSortCondition(s,i){const{sortingColumn:c,sortProp:f,sortOrder:u}=s,d=e.unref(c),p=e.unref(f),h=e.unref(u);h===null&&(s.sortingColumn.value=null,s.sortProp.value=null);const g={filter:!0};t.store.execQuery(g),(!i||!(i.silent||i.init))&&t.emit("sort-change",{column:d,prop:p,order:h}),t.store.updateTableScrollY()},filterChange(s,i){const{column:c,values:f,silent:u}=i,d=t.store.updateFilters(c,f);t.store.execQuery(),u||t.emit("filter-change",d),t.store.updateTableScrollY()},toggleAllSelection(){t.store.toggleAllSelection()},rowSelectedChanged(s,i){t.store.toggleRowSelection(i),t.store.updateAllSelected()},setHoverRow(s,i){s.hoverRow.value=i},setCurrentRow(s,i){t.store.updateCurrentRow(i)}},commit:function(s,...i){const c=t.store.mutations;if(c[s])c[s].apply(t,[t.store.states].concat(i));else throw new Error(`Action not found: ${s}`)},updateTableScrollY:function(){e.nextTick(()=>t.layout.updateScrollY.apply(t.layout))}}}const Aa={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function TY(t,n){if(!t)throw new Error("Table is required.");const o=$Y();return o.toggleAllSelection=Gt(o._toggleAllSelection,10),Object.keys(Aa).forEach(r=>{JE(QE(n,r),r,o)}),vY(o,n),o}function vY(t,n){Object.keys(Aa).forEach(o=>{e.watch(()=>QE(n,o),r=>{JE(r,o,t)})})}function JE(t,n,o){let r=t,l=Aa[n];typeof Aa[n]=="object"&&(l=l.key,r=r||Aa[n].default),o.states[l].value=r}function QE(t,n){if(n.includes(".")){const o=n.split(".");let r=t;return o.forEach(l=>{r=r[l]}),r}else return t[n]}class VY{constructor(n){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=e.ref(null),this.scrollX=e.ref(!1),this.scrollY=e.ref(!1),this.bodyWidth=e.ref(null),this.fixedWidth=e.ref(null),this.rightFixedWidth=e.ref(null),this.gutterWidth=0;for(const o in n)Lt(n,o)&&(e.isRef(this[o])?this[o].value=n[o]:this[o]=n[o]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const o=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(o==null?void 0:o.wrapRef)){let r=!0;const l=this.scrollY.value;return r=o.wrapRef.scrollHeight>o.wrapRef.clientHeight,this.scrollY.value=r,l!==r}return!1}setHeight(n,o="height"){if(!He)return;const r=this.table.vnode.el;if(n=bY(n),this.height.value=Number(n),!r&&(n||n===0))return e.nextTick(()=>this.setHeight(n,o));typeof n=="number"?(r.style[o]=`${n}px`,this.updateElsHeight()):typeof n=="string"&&(r.style[o]=n,this.updateElsHeight())}setMaxHeight(n){this.setHeight(n,"max-height")}getFlattenColumns(){const n=[];return this.table.store.states.columns.value.forEach(r=>{r.isColumnGroup?n.push.apply(n,r.columns):n.push(r)}),n}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(n){if(!n)return!0;let o=n;for(;o.tagName!=="DIV";){if(getComputedStyle(o).display==="none")return!0;o=o.parentElement}return!1}updateColumnsWidth(){if(!He)return;const n=this.fit,o=this.table.vnode.el.clientWidth;let r=0;const l=this.getFlattenColumns(),a=l.filter(c=>typeof c.width!="number");if(l.forEach(c=>{typeof c.width=="number"&&c.realWidth&&(c.realWidth=null)}),a.length>0&&n){if(l.forEach(c=>{r+=Number(c.width||c.minWidth||80)}),r<=o){this.scrollX.value=!1;const c=o-r;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+c;else{const f=a.reduce((p,h)=>p+Number(h.minWidth||80),0),u=c/f;let d=0;a.forEach((p,h)=>{if(h===0)return;const g=Math.floor(Number(p.minWidth||80)*u);d+=g,p.realWidth=Number(p.minWidth||80)+g}),a[0].realWidth=Number(a[0].minWidth||80)+c-d}}else this.scrollX.value=!0,a.forEach(c=>{c.realWidth=Number(c.minWidth)});this.bodyWidth.value=Math.max(r,o),this.table.state.resizeState.value.width=this.bodyWidth.value}else l.forEach(c=>{!c.width&&!c.minWidth?c.realWidth=80:c.realWidth=Number(c.width||c.minWidth),r+=c.realWidth}),this.scrollX.value=r>o,this.bodyWidth.value=r;const s=this.store.states.fixedColumns.value;if(s.length>0){let c=0;s.forEach(f=>{c+=Number(f.realWidth||f.width)}),this.fixedWidth.value=c}const i=this.store.states.rightFixedColumns.value;if(i.length>0){let c=0;i.forEach(f=>{c+=Number(f.realWidth||f.width)}),this.rightFixedWidth.value=c}this.notifyObservers("columns")}addObserver(n){this.observers.push(n)}removeObserver(n){const o=this.observers.indexOf(n);o!==-1&&this.observers.splice(o,1)}notifyObservers(n){this.observers.forEach(r=>{var l,a;switch(n){case"columns":(l=r.state)==null||l.onColumnsChange(this);break;case"scrollable":(a=r.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${n}.`)}})}}var MY=VY;const{CheckboxGroup:IY}=En,PY=e.defineComponent({name:"ElTableFilterPanel",components:{ElCheckbox:En,ElCheckboxGroup:IY,ElScrollbar:mo,ElTooltip:Zt,ElIcon:fe,ArrowDown:qo,ArrowUp:Ts},directives:{ClickOutside:Po},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(t){const n=e.getCurrentInstance(),{t:o}=Ke(),r=Q("table-filter"),l=n==null?void 0:n.parent;l.filterPanels.value[t.column.id]||(l.filterPanels.value[t.column.id]=n);const a=e.ref(!1),s=e.ref(null),i=e.computed(()=>t.column&&t.column.filters),c=e.computed({get:()=>{var w;return(((w=t.column)==null?void 0:w.filteredValue)||[])[0]},set:w=>{f.value&&(typeof w!="undefined"&&w!==null?f.value.splice(0,1,w):f.value.splice(0,1))}}),f=e.computed({get(){return t.column?t.column.filteredValue||[]:[]},set(w){t.column&&t.upDataColumn("filteredValue",w)}}),u=e.computed(()=>t.column?t.column.filterMultiple:!0),d=w=>w.value===c.value,p=()=>{a.value=!1},h=w=>{w.stopPropagation(),a.value=!a.value},g=()=>{a.value=!1},m=()=>{C(f.value),p()},b=()=>{f.value=[],C(f.value),p()},y=w=>{c.value=w,C(typeof w!="undefined"&&w!==null?f.value:[]),p()},C=w=>{t.store.commit("filterChange",{column:t.column,values:w}),t.store.updateAllSelected()};e.watch(a,w=>{t.column&&t.upDataColumn("filterOpened",w)},{immediate:!0});const k=e.computed(()=>{var w,E;return(E=(w=s.value)==null?void 0:w.popperRef)==null?void 0:E.contentRef});return{tooltipVisible:a,multiple:u,filteredValue:f,filterValue:c,filters:i,handleConfirm:m,handleReset:b,handleSelect:y,isActive:d,t:o,ns:r,showFilterPanel:h,hideFilterPanel:g,popperPaneRef:k,tooltip:s}}}),RY={key:0},OY=["disabled"],AY=["label","onClick"];function zY(t,n,o,r,l,a){const s=e.resolveComponent("el-checkbox"),i=e.resolveComponent("el-checkbox-group"),c=e.resolveComponent("el-scrollbar"),f=e.resolveComponent("arrow-up"),u=e.resolveComponent("arrow-down"),d=e.resolveComponent("el-icon"),p=e.resolveComponent("el-tooltip"),h=e.resolveDirective("click-outside");return e.openBlock(),e.createBlock(p,{ref:"tooltip",visible:t.tooltipVisible,offset:0,placement:t.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":t.ns.b(),persistent:""},{content:e.withCtx(()=>[t.multiple?(e.openBlock(),e.createElementBlock("div",RY,[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("content"))},[e.createVNode(c,{"wrap-class":t.ns.e("wrap")},{default:e.withCtx(()=>[e.createVNode(i,{modelValue:t.filteredValue,"onUpdate:modelValue":n[0]||(n[0]=g=>t.filteredValue=g),class:e.normalizeClass(t.ns.e("checkbox-group"))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.filters,g=>(e.openBlock(),e.createBlock(s,{key:g.value,label:g.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("bottom"))},[e.createElementVNode("button",{class:e.normalizeClass({[t.ns.is("disabled")]:t.filteredValue.length===0}),disabled:t.filteredValue.length===0,type:"button",onClick:n[1]||(n[1]=(...g)=>t.handleConfirm&&t.handleConfirm(...g))},e.toDisplayString(t.t("el.table.confirmFilter")),11,OY),e.createElementVNode("button",{type:"button",onClick:n[2]||(n[2]=(...g)=>t.handleReset&&t.handleReset(...g))},e.toDisplayString(t.t("el.table.resetFilter")),1)],2)])):(e.openBlock(),e.createElementBlock("ul",{key:1,class:e.normalizeClass(t.ns.e("list"))},[e.createElementVNode("li",{class:e.normalizeClass([t.ns.e("list-item"),{[t.ns.is("active")]:t.filterValue===void 0||t.filterValue===null}]),onClick:n[3]||(n[3]=g=>t.handleSelect(null))},e.toDisplayString(t.t("el.table.clearFilter")),3),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.filters,g=>(e.openBlock(),e.createElementBlock("li",{key:g.value,class:e.normalizeClass([t.ns.e("list-item"),t.ns.is("active",t.isActive(g))]),label:g.value,onClick:m=>t.handleSelect(g.value)},e.toDisplayString(g.text),11,AY))),128))],2))]),default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass([`${t.ns.namespace.value}-table__column-filter-trigger`,`${t.ns.namespace.value}-none-outline`]),onClick:n[4]||(n[4]=(...g)=>t.showFilterPanel&&t.showFilterPanel(...g))},[e.createVNode(d,null,{default:e.withCtx(()=>[t.column.filterOpened?(e.openBlock(),e.createBlock(f,{key:0})):(e.openBlock(),e.createBlock(u,{key:1}))]),_:1})],2)),[[h,t.hideFilterPanel,t.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var DY=se(PY,[["render",zY],["__file","filter-panel.vue"]]);function e2(t){const n=e.getCurrentInstance();e.onBeforeMount(()=>{o.value.addObserver(n)}),e.onMounted(()=>{r(o.value),l(o.value)}),e.onUpdated(()=>{r(o.value),l(o.value)}),e.onUnmounted(()=>{o.value.removeObserver(n)});const o=e.computed(()=>{const a=t.layout;if(!a)throw new Error("Can not find table layout.");return a}),r=a=>{var s;const i=((s=t.vnode.el)==null?void 0:s.querySelectorAll("colgroup > col"))||[];if(!i.length)return;const c=a.getFlattenColumns(),f={};c.forEach(u=>{f[u.id]=u});for(let u=0,d=i.length;u{var s,i;const c=((s=t.vnode.el)==null?void 0:s.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let u=0,d=c.length;u{m.stopPropagation()},a=(m,b)=>{!b.filters&&b.sortable?g(m,b,!1):b.filterable&&!b.sortable&&l(m),r==null||r.emit("header-click",b,m)},s=(m,b)=>{r==null||r.emit("header-contextmenu",b,m)},i=e.ref(null),c=e.ref(!1),f=e.ref({}),u=(m,b)=>{if(!!He&&!(b.children&&b.children.length>0)&&i.value&&t.border){c.value=!0;const y=r;n("set-drag-visible",!0);const k=(y==null?void 0:y.vnode.el).getBoundingClientRect().left,w=o.vnode.el.querySelector(`th.${b.id}`),E=w.getBoundingClientRect(),S=E.left-k+30;so(w,"noclick"),f.value={startMouseLeft:m.clientX,startLeft:E.right-k,startColumnLeft:E.left-k,tableLeft:k};const _=y==null?void 0:y.refs.resizeProxy;_.style.left=`${f.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const B=P=>{const T=P.clientX-f.value.startMouseLeft,I=f.value.startLeft+T;_.style.left=`${Math.max(S,I)}px`},M=()=>{if(c.value){const{startColumnLeft:P,startLeft:T}=f.value,v=Number.parseInt(_.style.left,10)-P;b.width=b.realWidth=v,y==null||y.emit("header-dragend",b.width,T-P,b,m),requestAnimationFrame(()=>{t.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",c.value=!1,i.value=null,f.value={},n("set-drag-visible",!1)}document.removeEventListener("mousemove",B),document.removeEventListener("mouseup",M),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{un(w,"noclick")},0)};document.addEventListener("mousemove",B),document.addEventListener("mouseup",M)}},d=(m,b)=>{if(b.children&&b.children.length>0)return;const y=m.target;if(!Mn(y))return;const C=y==null?void 0:y.closest("th");if(!(!b||!b.resizable)&&!c.value&&t.border){const k=C.getBoundingClientRect(),w=document.body.style;k.width>12&&k.right-m.pageX<8?(w.cursor="col-resize",Fn(C,"is-sortable")&&(C.style.cursor="col-resize"),i.value=b):c.value||(w.cursor="",Fn(C,"is-sortable")&&(C.style.cursor="pointer"),i.value=null)}},p=()=>{!He||(document.body.style.cursor="")},h=({order:m,sortOrders:b})=>{if(m==="")return b[0];const y=b.indexOf(m||null);return b[y>b.length-2?0:y+1]},g=(m,b,y)=>{var C;m.stopPropagation();const k=b.order===y?null:y||h(b),w=(C=m.target)==null?void 0:C.closest("th");if(w&&Fn(w,"noclick")){un(w,"noclick");return}if(!b.sortable)return;const E=t.store.states;let S=E.sortProp.value,_;const B=E.sortingColumn.value;(B!==b||B===b&&B.order===null)&&(B&&(B.order=null),E.sortingColumn.value=b,S=b.property),k?_=b.order=k:_=b.order=null,E.sortProp.value=S,E.sortOrder.value=_,r==null||r.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:s,handleMouseDown:u,handleMouseMove:d,handleMouseOut:p,handleSortClick:g,handleFilterClick:l}}function xY(t){const n=e.inject(go),o=Q("table");return{getHeaderRowStyle:i=>{const c=n==null?void 0:n.props.headerRowStyle;return typeof c=="function"?c.call(null,{rowIndex:i}):c},getHeaderRowClass:i=>{const c=[],f=n==null?void 0:n.props.headerRowClassName;return typeof f=="string"?c.push(f):typeof f=="function"&&c.push(f.call(null,{rowIndex:i})),c.join(" ")},getHeaderCellStyle:(i,c,f,u)=>{var d;let p=(d=n==null?void 0:n.props.headerCellStyle)!=null?d:{};typeof p=="function"&&(p=p.call(null,{rowIndex:i,columnIndex:c,row:f,column:u}));const h=Pp(c,u.fixed,t.store,f);return Bl(h,"left"),Bl(h,"right"),Object.assign({},p,h)},getHeaderCellClass:(i,c,f,u)=>{const d=Ip(o.b(),c,u.fixed,t.store,f),p=[u.id,u.order,u.headerAlign,u.className,u.labelClassName,...d];u.children||p.push("is-leaf"),u.sortable&&p.push("is-sortable");const h=n==null?void 0:n.props.headerCellClassName;return typeof h=="string"?p.push(h):typeof h=="function"&&p.push(h.call(null,{rowIndex:i,columnIndex:c,row:f,column:u})),p.push(o.e("cell")),p.filter(g=>Boolean(g)).join(" ")}}}const t2=t=>{const n=[];return t.forEach(o=>{o.children?(n.push(o),n.push.apply(n,t2(o.children))):n.push(o)}),n},FY=t=>{let n=1;const o=(a,s)=>{if(s&&(a.level=s.level+1,n{o(c,a),i+=c.colSpan}),a.colSpan=i}else a.colSpan=1};t.forEach(a=>{a.level=1,o(a,void 0)});const r=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(s=>s.isSubColumn=!0)):a.rowSpan=n-a.level+1,r[a.level-1].push(a)}),r};function HY(t){const n=e.inject(go),o=e.computed(()=>FY(t.store.states.originColumns.value));return{isGroup:e.computed(()=>{const a=o.value.length>1;return a&&n&&(n.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),n==null||n.store.commit("toggleAllSelection")},columnRows:o}}var KY=e.defineComponent({name:"ElTableHeader",components:{ElCheckbox:En},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(t,{emit:n}){const o=e.getCurrentInstance(),r=e.inject(go),l=Q("table"),a=e.ref({}),{onColumnsChange:s,onScrollableChange:i}=e2(r);e.onMounted(async()=>{await e.nextTick(),await e.nextTick();const{prop:S,order:_}=t.defaultSort;r==null||r.store.commit("sort",{prop:S,order:_,init:!0})});const{handleHeaderClick:c,handleHeaderContextMenu:f,handleMouseDown:u,handleMouseMove:d,handleMouseOut:p,handleSortClick:h,handleFilterClick:g}=LY(t,n),{getHeaderRowStyle:m,getHeaderRowClass:b,getHeaderCellStyle:y,getHeaderCellClass:C}=xY(t),{isGroup:k,toggleAllSelection:w,columnRows:E}=HY(t);return o.state={onColumnsChange:s,onScrollableChange:i},o.filterPanels=a,{ns:l,filterPanels:a,onColumnsChange:s,onScrollableChange:i,columnRows:E,getHeaderRowClass:b,getHeaderRowStyle:m,getHeaderCellClass:C,getHeaderCellStyle:y,handleHeaderClick:c,handleHeaderContextMenu:f,handleMouseDown:u,handleMouseMove:d,handleMouseOut:p,handleSortClick:h,handleFilterClick:g,isGroup:k,toggleAllSelection:w}},render(){const{ns:t,isGroup:n,columnRows:o,getHeaderCellStyle:r,getHeaderCellClass:l,getHeaderRowClass:a,getHeaderRowStyle:s,handleHeaderClick:i,handleHeaderContextMenu:c,handleMouseDown:f,handleMouseMove:u,handleSortClick:d,handleMouseOut:p,store:h,$parent:g}=this;let m=1;return e.h("thead",{class:{[t.is("group")]:n}},o.map((b,y)=>e.h("tr",{class:a(y),key:y,style:s(y)},b.map((C,k)=>(C.rowSpan>m&&(m=C.rowSpan),e.h("th",{class:l(y,k,b,C),colspan:C.colSpan,key:`${C.id}-thead`,rowspan:C.rowSpan,style:r(y,k,b,C),onClick:w=>i(w,C),onContextmenu:w=>c(w,C),onMousedown:w=>f(w,C),onMousemove:w=>u(w,C),onMouseout:p},[e.h("div",{class:["cell",C.filteredValue&&C.filteredValue.length>0?"highlight":""]},[C.renderHeader?C.renderHeader({column:C,$index:k,store:h,_self:g}):C.label,C.sortable&&e.h("span",{onClick:w=>d(w,C),class:"caret-wrapper"},[e.h("i",{onClick:w=>d(w,C,"ascending"),class:"sort-caret ascending"}),e.h("i",{onClick:w=>d(w,C,"descending"),class:"sort-caret descending"})]),C.filterable&&e.h(DY,{store:h,placement:C.filterPlacement||"bottom-start",column:C,upDataColumn:(w,E)=>{C[w]=E}})])]))))))}});function WY(t){const n=e.inject(go),o=e.ref(""),r=e.ref(e.h("div")),{nextZIndex:l}=$r(),a=(g,m,b)=>{var y;const C=n,k=Vp(g);let w;const E=(y=C==null?void 0:C.vnode.el)==null?void 0:y.dataset.prefix;k&&(w=UE({columns:t.store.states.columns.value},k,E),w&&(C==null||C.emit(`cell-${b}`,m,w,k,g))),C==null||C.emit(`row-${b}`,m,w,g)},s=(g,m)=>{a(g,m,"dblclick")},i=(g,m)=>{t.store.commit("setCurrentRow",m),a(g,m,"click")},c=(g,m)=>{a(g,m,"contextmenu")},f=Gt(g=>{t.store.commit("setHoverRow",g)},30),u=Gt(()=>{t.store.commit("setHoverRow",null)},30),d=g=>{const m=window.getComputedStyle(g,null),b=Number.parseInt(m.paddingLeft,10)||0,y=Number.parseInt(m.paddingRight,10)||0,C=Number.parseInt(m.paddingTop,10)||0,k=Number.parseInt(m.paddingBottom,10)||0;return{left:b,right:y,top:C,bottom:k}};return{handleDoubleClick:s,handleClick:i,handleContextMenu:c,handleMouseEnter:f,handleMouseLeave:u,handleCellMouseEnter:(g,m,b)=>{var y;const C=n,k=Vp(g),w=(y=C==null?void 0:C.vnode.el)==null?void 0:y.dataset.prefix;if(k){const $=UE({columns:t.store.states.columns.value},k,w),R=C.hoverState={cell:k,column:$,row:m};C==null||C.emit("cell-mouse-enter",R.row,R.column,R.cell,g)}if(!b)return;const E=g.target.querySelector(".cell");if(!(Fn(E,`${w}-tooltip`)&&E.childNodes.length))return;const S=document.createRange();S.setStart(E,0),S.setEnd(E,E.childNodes.length);let _=S.getBoundingClientRect().width,B=S.getBoundingClientRect().height;_-Math.floor(_)<.001&&(_=Math.floor(_)),B-Math.floor(B)<.001&&(B=Math.floor(B));const{top:T,left:I,right:v,bottom:O}=d(E),D=I+v,z=T+O;(_+D>E.offsetWidth||B+z>E.offsetHeight||E.scrollWidth>E.offsetWidth)&&kY(n==null?void 0:n.refs.tableWrapper,k,k.innerText||k.textContent,l,b)},handleCellMouseLeave:g=>{if(!Vp(g))return;const b=n==null?void 0:n.hoverState;n==null||n.emit("cell-mouse-leave",b==null?void 0:b.row,b==null?void 0:b.column,b==null?void 0:b.cell,g)},tooltipContent:o,tooltipTrigger:r}}function jY(t){const n=e.inject(go),o=Q("table");return{getRowStyle:(f,u)=>{const d=n==null?void 0:n.props.rowStyle;return typeof d=="function"?d.call(null,{row:f,rowIndex:u}):d||null},getRowClass:(f,u)=>{const d=[o.e("row")];(n==null?void 0:n.props.highlightCurrentRow)&&f===t.store.states.currentRow.value&&d.push("current-row"),t.stripe&&u%2===1&&d.push(o.em("row","striped"));const p=n==null?void 0:n.props.rowClassName;return typeof p=="string"?d.push(p):typeof p=="function"&&d.push(p.call(null,{row:f,rowIndex:u})),d},getCellStyle:(f,u,d,p)=>{const h=n==null?void 0:n.props.cellStyle;let g=h!=null?h:{};typeof h=="function"&&(g=h.call(null,{rowIndex:f,columnIndex:u,row:d,column:p}));const m=Pp(u,t==null?void 0:t.fixed,t.store);return Bl(m,"left"),Bl(m,"right"),Object.assign({},g,m)},getCellClass:(f,u,d,p,h)=>{const g=Ip(o.b(),u,t==null?void 0:t.fixed,t.store,void 0,h),m=[p.id,p.align,p.className,...g],b=n==null?void 0:n.props.cellClassName;return typeof b=="string"?m.push(b):typeof b=="function"&&m.push(b.call(null,{rowIndex:f,columnIndex:u,row:d,column:p})),m.push(o.e("cell")),m.filter(y=>Boolean(y)).join(" ")},getSpan:(f,u,d,p)=>{let h=1,g=1;const m=n==null?void 0:n.props.spanMethod;if(typeof m=="function"){const b=m({row:f,column:u,rowIndex:d,columnIndex:p});Array.isArray(b)?(h=b[0],g=b[1]):typeof b=="object"&&(h=b.rowspan,g=b.colspan)}return{rowspan:h,colspan:g}},getColspanRealWidth:(f,u,d)=>{if(u<1)return f[d].realWidth;const p=f.map(({realWidth:h,width:g})=>h||g).slice(d,d+u);return Number(p.reduce((h,g)=>Number(h)+Number(g),-1))}}}function UY(t){const n=e.inject(go),o=Q("table"),{handleDoubleClick:r,handleClick:l,handleContextMenu:a,handleMouseEnter:s,handleMouseLeave:i,handleCellMouseEnter:c,handleCellMouseLeave:f,tooltipContent:u,tooltipTrigger:d}=WY(t),{getRowStyle:p,getRowClass:h,getCellStyle:g,getCellClass:m,getSpan:b,getColspanRealWidth:y}=jY(t),C=e.computed(()=>t.store.states.columns.value.findIndex(({type:_})=>_==="default")),k=(_,B)=>{const M=n.props.rowKey;return M?Kt(_,M):B},w=(_,B,M,P=!1)=>{const{tooltipEffect:T,tooltipOptions:I,store:v}=t,{indent:O,columns:D}=v.states,z=h(_,B);let $=!0;M&&(z.push(o.em("row",`level-${M.level}`)),$=M.display);const R=$?null:{display:"none"};return e.h("tr",{style:[R,p(_,B)],class:z,key:k(_,B),onDblclick:N=>r(N,_),onClick:N=>l(N,_),onContextmenu:N=>a(N,_),onMouseenter:()=>s(B),onMouseleave:i},D.value.map((N,A)=>{const{rowspan:x,colspan:H}=b(_,N,B,A);if(!x||!H)return null;const K=Object.assign({},N);K.realWidth=y(D.value,H,A);const q={store:t.store,_self:t.context||n,column:K,row:_,$index:B,cellIndex:A,expanded:P};A===C.value&&M&&(q.treeNode={indent:M.level*O.value,level:M.level},typeof M.expanded=="boolean"&&(q.treeNode.expanded=M.expanded,"loading"in M&&(q.treeNode.loading=M.loading),"noLazyChildren"in M&&(q.treeNode.noLazyChildren=M.noLazyChildren)));const ne=`${B},${A}`,Y=K.columnKey||K.rawColumnKey||"",Z=E(A,N,q),U=N.showOverflowTooltip&&Ed({effect:T},I,N.showOverflowTooltip);return e.h("td",{style:g(B,A,_,N),class:m(B,A,_,N,H-1),key:`${Y}${ne}`,rowspan:x,colspan:H,onMouseenter:re=>c(re,_,U),onMouseleave:f},[Z])}))},E=(_,B,M)=>B.renderCell(M);return{wrappedRowRender:(_,B)=>{const M=t.store,{isRowExpanded:P,assertRowKey:T}=M,{treeData:I,lazyTreeNodeMap:v,childrenColumnName:O,rowKey:D}=M.states,z=M.states.columns.value;if(z.some(({type:R})=>R==="expand")){const R=P(_),N=w(_,B,void 0,R),A=n.renderExpanded;return R?A?[[N,e.h("tr",{key:`expanded-row__${N.key}`},[e.h("td",{colspan:z.length,class:`${o.e("cell")} ${o.e("expanded-cell")}`},[A({row:_,$index:B,store:M,expanded:R})])])]]:(console.error("[Element Error]renderExpanded is required."),N):[[N]]}else if(Object.keys(I.value).length){T();const R=Kt(_,D.value);let N=I.value[R],A=null;N&&(A={expanded:N.expanded,level:N.level,display:!0},typeof N.lazy=="boolean"&&(typeof N.loaded=="boolean"&&N.loaded&&(A.noLazyChildren=!(N.children&&N.children.length)),A.loading=N.loading));const x=[w(_,B,A)];if(N){let H=0;const K=(ne,Y)=>{!(ne&&ne.length&&Y)||ne.forEach(Z=>{const U={display:Y.display&&Y.expanded,level:Y.level+1,expanded:!1,noLazyChildren:!1,loading:!1},re=Kt(Z,D.value);if(re==null)throw new Error("For nested data item, row-key is required.");if(N={...I.value[re]},N&&(U.expanded=N.expanded,N.level=N.level||U.level,N.display=!!(N.expanded&&U.display),typeof N.lazy=="boolean"&&(typeof N.loaded=="boolean"&&N.loaded&&(U.noLazyChildren=!(N.children&&N.children.length)),U.loading=N.loading)),H++,x.push(w(Z,B+H,U)),N){const te=v.value[re]||Z[O.value];K(te,N)}})};N.display=!0;const q=v.value[R]||_[O.value];K(q,N)}return x}else return w(_,B,void 0)},tooltipContent:u,tooltipTrigger:d}}var GY={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},qY=e.defineComponent({name:"ElTableBody",props:GY,setup(t){const n=e.getCurrentInstance(),o=e.inject(go),r=Q("table"),{wrappedRowRender:l,tooltipContent:a,tooltipTrigger:s}=UY(t),{onColumnsChange:i,onScrollableChange:c}=e2(o);return e.watch(t.store.states.hoverRow,(f,u)=>{!t.store.states.isComplex.value||!He||rl(()=>{const d=n==null?void 0:n.vnode.el,p=Array.from((d==null?void 0:d.children)||[]).filter(m=>m==null?void 0:m.classList.contains(`${r.e("row")}`)),h=p[u],g=p[f];h&&un(h,"hover-row"),g&&so(g,"hover-row")})}),e.onUnmounted(()=>{var f;(f=Oo)==null||f()}),{ns:r,onColumnsChange:i,onScrollableChange:c,wrappedRowRender:l,tooltipContent:a,tooltipTrigger:s}},render(){const{wrappedRowRender:t,store:n}=this,o=n.states.data.value||[];return e.h("tbody",{tabIndex:-1},[o.reduce((r,l)=>r.concat(t(l,r.length)),[])])}});function YY(){const t=e.inject(go),n=t==null?void 0:t.store,o=e.computed(()=>n.states.fixedLeafColumnsLength.value),r=e.computed(()=>n.states.rightFixedColumns.value.length),l=e.computed(()=>n.states.columns.value.length),a=e.computed(()=>n.states.fixedColumns.value.length),s=e.computed(()=>n.states.rightFixedColumns.value.length);return{leftFixedLeafCount:o,rightFixedLeafCount:r,columnsCount:l,leftFixedCount:a,rightFixedCount:s,columns:n.states.columns}}function XY(t){const{columns:n}=YY(),o=Q("table");return{getCellClasses:(a,s)=>{const i=a[s],c=[o.e("cell"),i.id,i.align,i.labelClassName,...Ip(o.b(),s,i.fixed,t.store)];return i.className&&c.push(i.className),i.children||c.push(o.is("leaf")),c},getCellStyles:(a,s)=>{const i=Pp(s,a.fixed,t.store);return Bl(i,"left"),Bl(i,"right"),i},columns:n}}var ZY=e.defineComponent({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(t){const{getCellClasses:n,getCellStyles:o,columns:r}=XY(t);return{ns:Q("table"),getCellClasses:n,getCellStyles:o,columns:r}},render(){const{columns:t,getCellStyles:n,getCellClasses:o,summaryMethod:r,sumText:l}=this,a=this.store.states.data.value;let s=[];return r?s=r({columns:t,data:a}):t.forEach((i,c)=>{if(c===0){s[c]=l;return}const f=a.map(h=>Number(h[i.property])),u=[];let d=!0;f.forEach(h=>{if(!Number.isNaN(+h)){d=!1;const g=`${h}`.split(".")[1];u.push(g?g.length:0)}});const p=Math.max.apply(null,u);d?s[c]="":s[c]=f.reduce((h,g)=>{const m=Number(g);return Number.isNaN(+m)?h:Number.parseFloat((h+g).toFixed(Math.min(p,20)))},0)}),e.h(e.h("tfoot",[e.h("tr",{},[...t.map((i,c)=>e.h("td",{key:c,colspan:i.colSpan,rowspan:i.rowSpan,class:o(t,c),style:n(i,c)},[e.h("div",{class:["cell",i.labelClassName]},[s[c]])]))])]))}});function JY(t){return{setCurrentRow:u=>{t.commit("setCurrentRow",u)},getSelectionRows:()=>t.getSelectionRows(),toggleRowSelection:(u,d)=>{t.toggleRowSelection(u,d,!1),t.updateAllSelected()},clearSelection:()=>{t.clearSelection()},clearFilter:u=>{t.clearFilter(u)},toggleAllSelection:()=>{t.commit("toggleAllSelection")},toggleRowExpansion:(u,d)=>{t.toggleRowExpansionAdapter(u,d)},clearSort:()=>{t.clearSort()},sort:(u,d)=>{t.commit("sort",{prop:u,order:d})}}}function QY(t,n,o,r){const l=e.ref(!1),a=e.ref(null),s=e.ref(!1),i=N=>{s.value=N},c=e.ref({width:null,height:null,headerHeight:null}),f=e.ref(!1),u={display:"inline-block",verticalAlign:"middle"},d=e.ref(),p=e.ref(0),h=e.ref(0),g=e.ref(0),m=e.ref(0),b=e.ref(0);e.watchEffect(()=>{n.setHeight(t.height)}),e.watchEffect(()=>{n.setMaxHeight(t.maxHeight)}),e.watch(()=>[t.currentRowKey,o.states.rowKey],([N,A])=>{!e.unref(A)||!e.unref(N)||o.setCurrentRowKey(`${N}`)},{immediate:!0}),e.watch(()=>t.data,N=>{r.store.commit("setData",N)},{immediate:!0,deep:!0}),e.watchEffect(()=>{t.expandRowKeys&&o.setExpandRowKeysAdapter(t.expandRowKeys)});const y=()=>{r.store.commit("setHoverRow",null),r.hoverState&&(r.hoverState=null)},C=(N,A)=>{const{pixelX:x,pixelY:H}=A;Math.abs(x)>=Math.abs(H)&&(r.refs.bodyWrapper.scrollLeft+=A.pixelX/5)},k=e.computed(()=>t.height||t.maxHeight||o.states.fixedColumns.value.length>0||o.states.rightFixedColumns.value.length>0),w=e.computed(()=>({width:n.bodyWidth.value?`${n.bodyWidth.value}px`:""})),E=()=>{k.value&&n.updateElsHeight(),n.updateColumnsWidth(),requestAnimationFrame(M)};e.onMounted(async()=>{await e.nextTick(),o.updateColumns(),P(),requestAnimationFrame(E);const N=r.vnode.el,A=r.refs.headerWrapper;t.flexible&&N&&N.parentElement&&(N.parentElement.style.minWidth="0"),c.value={width:d.value=N.offsetWidth,height:N.offsetHeight,headerHeight:t.showHeader&&A?A.offsetHeight:null},o.states.columns.value.forEach(x=>{x.filteredValue&&x.filteredValue.length&&r.store.commit("filterChange",{column:x,values:x.filteredValue,silent:!0})}),r.$ready=!0});const S=(N,A)=>{if(!N)return;const x=Array.from(N.classList).filter(H=>!H.startsWith("is-scrolling-"));x.push(n.scrollX.value?A:"is-scrolling-none"),N.className=x.join(" ")},_=N=>{const{tableWrapper:A}=r.refs;S(A,N)},B=N=>{const{tableWrapper:A}=r.refs;return!!(A&&A.classList.contains(N))},M=function(){if(!r.refs.scrollBarRef)return;if(!n.scrollX.value){const Y="is-scrolling-none";B(Y)||_(Y);return}const N=r.refs.scrollBarRef.wrapRef;if(!N)return;const{scrollLeft:A,offsetWidth:x,scrollWidth:H}=N,{headerWrapper:K,footerWrapper:q}=r.refs;K&&(K.scrollLeft=A),q&&(q.scrollLeft=A);const ne=H-x-1;A>=ne?_("is-scrolling-right"):_(A===0?"is-scrolling-left":"is-scrolling-middle")},P=()=>{!r.refs.scrollBarRef||(r.refs.scrollBarRef.wrapRef&&rt(r.refs.scrollBarRef.wrapRef,"scroll",M,{passive:!0}),t.fit?jt(r.vnode.el,T):rt(window,"resize",T),jt(r.refs.bodyWrapper,()=>{var N,A;T(),(A=(N=r.refs)==null?void 0:N.scrollBarRef)==null||A.update()}))},T=()=>{var N,A,x,H;const K=r.vnode.el;if(!r.$ready||!K)return;let q=!1;const{width:ne,height:Y,headerHeight:Z}=c.value,U=d.value=K.offsetWidth;ne!==U&&(q=!0);const re=K.offsetHeight;(t.height||k.value)&&Y!==re&&(q=!0);const te=t.tableLayout==="fixed"?r.refs.headerWrapper:(N=r.refs.tableHeaderRef)==null?void 0:N.$el;t.showHeader&&(te==null?void 0:te.offsetHeight)!==Z&&(q=!0),p.value=((A=r.refs.tableWrapper)==null?void 0:A.scrollHeight)||0,g.value=(te==null?void 0:te.scrollHeight)||0,m.value=((x=r.refs.footerWrapper)==null?void 0:x.offsetHeight)||0,b.value=((H=r.refs.appendWrapper)==null?void 0:H.offsetHeight)||0,h.value=p.value-g.value-m.value-b.value,q&&(c.value={width:U,height:re,headerHeight:t.showHeader&&(te==null?void 0:te.offsetHeight)||0},E())},I=St(),v=e.computed(()=>{const{bodyWidth:N,scrollY:A,gutterWidth:x}=n;return N.value?`${N.value-(A.value?x:0)}px`:""}),O=e.computed(()=>t.maxHeight?"fixed":t.tableLayout),D=e.computed(()=>{if(t.data&&t.data.length)return null;let N="100%";t.height&&h.value&&(N=`${h.value}px`);const A=d.value;return{width:A?`${A}px`:"",height:N}}),z=e.computed(()=>t.height?{height:Number.isNaN(Number(t.height))?t.height:`${t.height}px`}:t.maxHeight?{maxHeight:Number.isNaN(Number(t.maxHeight))?t.maxHeight:`${t.maxHeight}px`}:{}),$=e.computed(()=>t.height?{height:"100%"}:t.maxHeight?Number.isNaN(Number(t.maxHeight))?{maxHeight:`calc(${t.maxHeight} - ${g.value+m.value}px)`}:{maxHeight:`${t.maxHeight-g.value-m.value}px`}:{});return{isHidden:l,renderExpanded:a,setDragVisible:i,isGroup:f,handleMouseLeave:y,handleHeaderFooterMousewheel:C,tableSize:I,emptyBlockStyle:D,handleFixedMousewheel:(N,A)=>{const x=r.refs.bodyWrapper;if(Math.abs(A.spinY)>0){const H=x.scrollTop;A.pixelY<0&&H!==0&&N.preventDefault(),A.pixelY>0&&x.scrollHeight-x.clientHeight>H&&N.preventDefault(),x.scrollTop+=Math.ceil(A.pixelY/5)}else x.scrollLeft+=Math.ceil(A.pixelX/5)},resizeProxyVisible:s,bodyWidth:v,resizeState:c,doLayout:E,tableBodyStyles:w,tableLayout:O,scrollbarViewStyle:u,tableInnerStyle:z,scrollbarStyle:$}}function eX(t){const n=e.ref(),o=()=>{const l=t.vnode.el.querySelector(".hidden-columns"),a={childList:!0,subtree:!0},s=t.store.states.updateOrderFns;n.value=new MutationObserver(()=>{s.forEach(i=>i())}),n.value.observe(l,a)};e.onMounted(()=>{o()}),e.onUnmounted(()=>{var r;(r=n.value)==null||r.disconnect()})}var tX={data:{type:Array,default:()=>[]},size:Vt,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,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"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean,showOverflowTooltip:[Boolean,Object]};function n2(t){const n=t.tableLayout==="auto";let o=t.columns||[];n&&o.every(l=>l.width===void 0)&&(o=[]);const r=l=>{const a={key:`${t.tableLayout}_${l.id}`,style:{},name:void 0};return n?a.style={width:`${l.width}px`}:a.name=l.id,a};return e.h("colgroup",{},o.map(l=>e.h("col",r(l))))}n2.props=["columns","tableLayout"];const nX=()=>{const t=e.ref(),n=(a,s)=>{const i=t.value;i&&i.scrollTo(a,s)},o=(a,s)=>{const i=t.value;i&&be(s)&&["Top","Left"].includes(a)&&i[`setScroll${a}`](s)};return{scrollBarRef:t,scrollTo:n,setScrollTop:a=>o("Top",a),setScrollLeft:a=>o("Left",a)}};let oX=1;const rX=e.defineComponent({name:"ElTable",directives:{Mousewheel:Ww},components:{TableHeader:KY,TableBody:qY,TableFooter:ZY,ElScrollbar:mo,hColgroup:n2},props:tX,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(t){const{t:n}=Ke(),o=Q("table"),r=e.getCurrentInstance();e.provide(go,r);const l=TY(r,t);r.store=l;const a=new MY({store:r.store,table:r,fit:t.fit,showHeader:t.showHeader});r.layout=a;const s=e.computed(()=>(l.states.data.value||[]).length===0),{setCurrentRow:i,getSelectionRows:c,toggleRowSelection:f,clearSelection:u,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:h,clearSort:g,sort:m}=JY(l),{isHidden:b,renderExpanded:y,setDragVisible:C,isGroup:k,handleMouseLeave:w,handleHeaderFooterMousewheel:E,tableSize:S,emptyBlockStyle:_,handleFixedMousewheel:B,resizeProxyVisible:M,bodyWidth:P,resizeState:T,doLayout:I,tableBodyStyles:v,tableLayout:O,scrollbarViewStyle:D,tableInnerStyle:z,scrollbarStyle:$}=QY(t,a,l,r),{scrollBarRef:R,scrollTo:N,setScrollLeft:A,setScrollTop:x}=nX(),H=Gt(I,50),K=`${o.namespace.value}-table_${oX++}`;r.tableId=K,r.state={isGroup:k,resizeState:T,doLayout:I,debouncedUpdateLayout:H};const q=e.computed(()=>t.sumText||n("el.table.sumText")),ne=e.computed(()=>t.emptyText||n("el.table.emptyText"));return eX(r),{ns:o,layout:a,store:l,handleHeaderFooterMousewheel:E,handleMouseLeave:w,tableId:K,tableSize:S,isHidden:b,isEmpty:s,renderExpanded:y,resizeProxyVisible:M,resizeState:T,isGroup:k,bodyWidth:P,tableBodyStyles:v,emptyBlockStyle:_,debouncedUpdateLayout:H,handleFixedMousewheel:B,setCurrentRow:i,getSelectionRows:c,toggleRowSelection:f,clearSelection:u,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:h,clearSort:g,doLayout:I,sort:m,t:n,setDragVisible:C,context:r,computedSumText:q,computedEmptyText:ne,tableLayout:O,scrollbarViewStyle:D,tableInnerStyle:z,scrollbarStyle:$,scrollBarRef:R,scrollTo:N,setScrollLeft:A,setScrollTop:x}}}),lX=["data-prefix"],aX={ref:"hiddenColumns",class:"hidden-columns"};function sX(t,n,o,r,l,a){const s=e.resolveComponent("hColgroup"),i=e.resolveComponent("table-header"),c=e.resolveComponent("table-body"),f=e.resolveComponent("table-footer"),u=e.resolveComponent("el-scrollbar"),d=e.resolveDirective("mousewheel");return e.openBlock(),e.createElementBlock("div",{ref:"tableWrapper",class:e.normalizeClass([{[t.ns.m("fit")]:t.fit,[t.ns.m("striped")]:t.stripe,[t.ns.m("border")]:t.border||t.isGroup,[t.ns.m("hidden")]:t.isHidden,[t.ns.m("group")]:t.isGroup,[t.ns.m("fluid-height")]:t.maxHeight,[t.ns.m("scrollable-x")]:t.layout.scrollX.value,[t.ns.m("scrollable-y")]:t.layout.scrollY.value,[t.ns.m("enable-row-hover")]:!t.store.states.isComplex.value,[t.ns.m("enable-row-transition")]:(t.store.states.data.value||[]).length!==0&&(t.store.states.data.value||[]).length<100,"has-footer":t.showSummary},t.ns.m(t.tableSize),t.className,t.ns.b(),t.ns.m(`layout-${t.tableLayout}`)]),style:e.normalizeStyle(t.style),"data-prefix":t.ns.namespace.value,onMouseleave:n[0]||(n[0]=(...p)=>t.handleMouseLeave&&t.handleMouseLeave(...p))},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("inner-wrapper")),style:e.normalizeStyle(t.tableInnerStyle)},[e.createElementVNode("div",aX,[e.renderSlot(t.$slots,"default")],512),t.showHeader&&t.tableLayout==="fixed"?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:0,ref:"headerWrapper",class:e.normalizeClass(t.ns.e("header-wrapper"))},[e.createElementVNode("table",{ref:"tableHeader",class:e.normalizeClass(t.ns.e("header")),style:e.normalizeStyle(t.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[e.createVNode(s,{columns:t.store.states.columns.value,"table-layout":t.tableLayout},null,8,["columns","table-layout"]),e.createVNode(i,{ref:"tableHeaderRef",border:t.border,"default-sort":t.defaultSort,store:t.store,onSetDragVisible:t.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[d,t.handleHeaderFooterMousewheel]]):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{ref:"bodyWrapper",class:e.normalizeClass(t.ns.e("body-wrapper"))},[e.createVNode(u,{ref:"scrollBarRef","view-style":t.scrollbarViewStyle,"wrap-style":t.scrollbarStyle,always:t.scrollbarAlwaysOn},{default:e.withCtx(()=>[e.createElementVNode("table",{ref:"tableBody",class:e.normalizeClass(t.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:e.normalizeStyle({width:t.bodyWidth,tableLayout:t.tableLayout})},[e.createVNode(s,{columns:t.store.states.columns.value,"table-layout":t.tableLayout},null,8,["columns","table-layout"]),t.showHeader&&t.tableLayout==="auto"?(e.openBlock(),e.createBlock(i,{key:0,ref:"tableHeaderRef",class:e.normalizeClass(t.ns.e("body-header")),border:t.border,"default-sort":t.defaultSort,store:t.store,onSetDragVisible:t.setDragVisible},null,8,["class","border","default-sort","store","onSetDragVisible"])):e.createCommentVNode("v-if",!0),e.createVNode(c,{context:t.context,highlight:t.highlightCurrentRow,"row-class-name":t.rowClassName,"tooltip-effect":t.tooltipEffect,"tooltip-options":t.tooltipOptions,"row-style":t.rowStyle,store:t.store,stripe:t.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"]),t.showSummary&&t.tableLayout==="auto"?(e.openBlock(),e.createBlock(f,{key:1,class:e.normalizeClass(t.ns.e("body-footer")),border:t.border,"default-sort":t.defaultSort,store:t.store,"sum-text":t.computedSumText,"summary-method":t.summaryMethod},null,8,["class","border","default-sort","store","sum-text","summary-method"])):e.createCommentVNode("v-if",!0)],6),t.isEmpty?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"emptyBlock",style:e.normalizeStyle(t.emptyBlockStyle),class:e.normalizeClass(t.ns.e("empty-block"))},[e.createElementVNode("span",{class:e.normalizeClass(t.ns.e("empty-text"))},[e.renderSlot(t.$slots,"empty",{},()=>[e.createTextVNode(e.toDisplayString(t.computedEmptyText),1)])],2)],6)):e.createCommentVNode("v-if",!0),t.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,ref:"appendWrapper",class:e.normalizeClass(t.ns.e("append-wrapper"))},[e.renderSlot(t.$slots,"append")],2)):e.createCommentVNode("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),t.showSummary&&t.tableLayout==="fixed"?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:1,ref:"footerWrapper",class:e.normalizeClass(t.ns.e("footer-wrapper"))},[e.createElementVNode("table",{class:e.normalizeClass(t.ns.e("footer")),cellspacing:"0",cellpadding:"0",border:"0",style:e.normalizeStyle(t.tableBodyStyles)},[e.createVNode(s,{columns:t.store.states.columns.value,"table-layout":t.tableLayout},null,8,["columns","table-layout"]),e.createVNode(f,{border:t.border,"default-sort":t.defaultSort,store:t.store,"sum-text":t.computedSumText,"summary-method":t.summaryMethod},null,8,["border","default-sort","store","sum-text","summary-method"])],6)],2)),[[e.vShow,!t.isEmpty],[d,t.handleHeaderFooterMousewheel]]):e.createCommentVNode("v-if",!0),t.border||t.isGroup?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(t.ns.e("border-left-patch"))},null,2)):e.createCommentVNode("v-if",!0)],6),e.withDirectives(e.createElementVNode("div",{ref:"resizeProxy",class:e.normalizeClass(t.ns.e("column-resize-proxy"))},null,2),[[e.vShow,t.resizeProxyVisible]])],46,lX)}var iX=se(rX,[["render",sX],["__file","table.vue"]]);const cX={selection:"table-column--selection",expand:"table__expand-column"},dX={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:""}},fX=t=>cX[t]||"",uX={selection:{renderHeader({store:t,column:n}){function o(){return t.states.data.value&&t.states.data.value.length===0}return e.h(En,{disabled:o(),size:t.states.tableSize.value,indeterminate:t.states.selection.value.length>0&&!t.states.isAllSelected.value,"onUpdate:modelValue":t.toggleAllSelection,modelValue:t.states.isAllSelected.value,ariaLabel:n.label})},renderCell({row:t,column:n,store:o,$index:r}){return e.h(En,{disabled:n.selectable?!n.selectable.call(null,t,r):!1,size:o.states.tableSize.value,onChange:()=>{o.commit("rowSelectedChanged",t)},onClick:l=>l.stopPropagation(),modelValue:o.isSelected(t),ariaLabel:n.label})},sortable:!1,resizable:!1},index:{renderHeader({column:t}){return t.label||"#"},renderCell({column:t,$index:n}){let o=n+1;const r=t.index;return typeof r=="number"?o=n+r:typeof r=="function"&&(o=r(n)),e.h("div",{},[o])},sortable:!1},expand:{renderHeader({column:t}){return t.label||""},renderCell({row:t,store:n,expanded:o}){const{ns:r}=n,l=[r.e("expand-icon")];o&&l.push(r.em("expand-icon","expanded"));const a=function(s){s.stopPropagation(),n.toggleRowExpansion(t)};return e.h("div",{class:l,onClick:a},{default:()=>[e.h(fe,null,{default:()=>[e.h(on)]})]})},sortable:!1,resizable:!1}};function pX({row:t,column:n,$index:o}){var r;const l=n.property,a=l&&Bs(t,l).value;return n&&n.formatter?n.formatter(t,n,a,o):((r=a==null?void 0:a.toString)==null?void 0:r.call(a))||""}function mX({row:t,treeNode:n,store:o},r=!1){const{ns:l}=o;if(!n)return r?[e.h("span",{class:l.e("placeholder")})]:null;const a=[],s=function(i){i.stopPropagation(),!n.loading&&o.loadOrToggle(t)};if(n.indent&&a.push(e.h("span",{class:l.e("indent"),style:{"padding-left":`${n.indent}px`}})),typeof n.expanded=="boolean"&&!n.noLazyChildren){const i=[l.e("expand-icon"),n.expanded?l.em("expand-icon","expanded"):""];let c=on;n.loading&&(c=Zo),a.push(e.h("div",{class:i,onClick:s},{default:()=>[e.h(fe,{class:{[l.is("loading")]:n.loading}},{default:()=>[e.h(c)]})]}))}else a.push(e.h("span",{class:l.e("placeholder")}));return a}function o2(t,n){return t.reduce((o,r)=>(o[r]=r,o),n)}function hX(t,n){const o=e.getCurrentInstance();return{registerComplexWatchers:()=>{const a=["fixed"],s={realWidth:"width",realMinWidth:"minWidth"},i=o2(a,s);Object.keys(i).forEach(c=>{const f=s[c];Lt(n,f)&&e.watch(()=>n[f],u=>{let d=u;f==="width"&&c==="realWidth"&&(d=Mp(u)),f==="minWidth"&&c==="realMinWidth"&&(d=GE(u)),o.columnConfig.value[f]=d,o.columnConfig.value[c]=d;const p=f==="fixed";t.value.store.scheduleLayout(p)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],s={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},i=o2(a,s);Object.keys(i).forEach(c=>{const f=s[c];Lt(n,f)&&e.watch(()=>n[f],u=>{o.columnConfig.value[c]=u})})}}}function gX(t,n,o){const r=e.getCurrentInstance(),l=e.ref(""),a=e.ref(!1),s=e.ref(),i=e.ref(),c=Q("table");e.watchEffect(()=>{s.value=t.align?`is-${t.align}`:null,s.value}),e.watchEffect(()=>{i.value=t.headerAlign?`is-${t.headerAlign}`:s.value,i.value});const f=e.computed(()=>{let w=r.vnode.vParent||r.parent;for(;w&&!w.tableId&&!w.columnId;)w=w.vnode.vParent||w.parent;return w}),u=e.computed(()=>{const{store:w}=r.parent;if(!w)return!1;const{treeData:E}=w.states,S=E.value;return S&&Object.keys(S).length>0}),d=e.ref(Mp(t.width)),p=e.ref(GE(t.minWidth)),h=w=>(d.value&&(w.width=d.value),p.value&&(w.minWidth=p.value),!d.value&&p.value&&(w.width=void 0),w.minWidth||(w.minWidth=80),w.realWidth=Number(w.width===void 0?w.minWidth:w.width),w),g=w=>{const E=w.type,S=uX[E]||{};Object.keys(S).forEach(B=>{const M=S[B];B!=="className"&&M!==void 0&&(w[B]=M)});const _=fX(E);if(_){const B=`${e.unref(c.namespace)}-${_}`;w.className=w.className?`${w.className} ${B}`:B}return w},m=w=>{Array.isArray(w)?w.forEach(S=>E(S)):E(w);function E(S){var _;((_=S==null?void 0:S.type)==null?void 0:_.name)==="ElTableColumn"&&(S.vParent=r)}};return{columnId:l,realAlign:s,isSubColumn:a,realHeaderAlign:i,columnOrTableParent:f,setColumnWidth:h,setColumnForcedProps:g,setColumnRenders:w=>{t.renderHeader||w.type!=="selection"&&(w.renderHeader=S=>{r.columnConfig.value.label;const _=n.header;return _?_(S):w.label});let E=w.renderCell;return w.type==="expand"?(w.renderCell=S=>e.h("div",{class:"cell"},[E(S)]),o.value.renderExpanded=S=>n.default?n.default(S):n.default):(E=E||pX,w.renderCell=S=>{let _=null;if(n.default){const v=n.default(S);_=v.some(O=>O.type!==e.Comment)?v:E(S)}else _=E(S);const{columns:B}=o.value.store.states,M=B.value.findIndex(v=>v.type==="default"),P=u.value&&S.cellIndex===M,T=mX(S,P),I={class:"cell",style:{}};return w.showOverflowTooltip&&(I.class=`${I.class} ${e.unref(c.namespace)}-tooltip`,I.style={width:`${(S.column.realWidth||Number(S.column.width))-1}px`}),m(_),e.h("div",I,[T,_])}),w},getPropsData:(...w)=>w.reduce((E,S)=>(Array.isArray(S)&&S.forEach(_=>{E[_]=t[_]}),E),{}),getColumnElIndex:(w,E)=>Array.prototype.indexOf.call(w,E),updateColumnOrder:()=>{o.value.store.commit("updateColumnOrder",r.columnConfig.value)}}}var yX={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},fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:t=>t.every(n=>["ascending","descending",null].includes(n))}};let bX=1;var r2=e.defineComponent({name:"ElTableColumn",components:{ElCheckbox:En},props:yX,setup(t,{slots:n}){const o=e.getCurrentInstance(),r=e.ref({}),l=e.computed(()=>{let k=o.parent;for(;k&&!k.tableId;)k=k.parent;return k}),{registerNormalWatchers:a,registerComplexWatchers:s}=hX(l,t),{columnId:i,isSubColumn:c,realHeaderAlign:f,columnOrTableParent:u,setColumnWidth:d,setColumnForcedProps:p,setColumnRenders:h,getPropsData:g,getColumnElIndex:m,realAlign:b,updateColumnOrder:y}=gX(t,n,l),C=u.value;i.value=`${C.tableId||C.columnId}_column_${bX++}`,e.onBeforeMount(()=>{c.value=l.value!==C;const k=t.type||"default",w=t.sortable===""?!0:t.sortable,E=$t(t.showOverflowTooltip)?C.props.showOverflowTooltip:t.showOverflowTooltip,S={...dX[k],id:i.value,type:k,property:t.prop||t.property,align:b,headerAlign:f,showOverflowTooltip:E,filterable:t.filters||t.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:w,index:t.index,rawColumnKey:o.vnode.key};let T=g(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);T=yY(S,T),T=CY(h,d,p)(T),r.value=T,a(),s()}),e.onMounted(()=>{var k;const w=u.value,E=c.value?w.vnode.el.children:(k=w.refs.hiddenColumns)==null?void 0:k.children,S=()=>m(E||[],o.vnode.el);r.value.getColumnIndex=S,S()>-1&&l.value.store.commit("insertColumn",r.value,c.value?w.columnConfig.value:null,y)}),e.onBeforeUnmount(()=>{l.value.store.commit("removeColumn",r.value,c.value?C.columnConfig.value:null,y)}),o.columnId=i.value,o.columnConfig=r},render(){var t,n,o;try{const r=(n=(t=this.$slots).default)==null?void 0:n.call(t,{row:{},column:{},$index:-1}),l=[];if(Array.isArray(r))for(const s of r)((o=s.type)==null?void 0:o.name)==="ElTableColumn"||s.shapeFlag&2?l.push(s):s.type===e.Fragment&&Array.isArray(s.children)&&s.children.forEach(i=>{(i==null?void 0:i.patchFlag)!==1024&&!De(i==null?void 0:i.children)&&l.push(i)});return e.h("div",l)}catch(r){return e.h("div",[])}}});const l2=Me(iX,{TableColumn:r2}),a2=ht(r2);var $l=(t=>(t.ASC="asc",t.DESC="desc",t))($l||{}),Tl=(t=>(t.CENTER="center",t.RIGHT="right",t))(Tl||{}),Ap=(t=>(t.LEFT="left",t.RIGHT="right",t))(Ap||{});const zp={asc:"desc",desc:"asc"},vl=Symbol("placeholder"),CX=(t,n,o)=>{var r;const l={flexGrow:0,flexShrink:0,...o?{}:{flexGrow:t.flexGrow||0,flexShrink:t.flexShrink||1}};o||(l.flexShrink=1);const a={...(r=t.style)!=null?r:{},...l,flexBasis:"auto",width:t.width};return n||(t.maxWidth&&(a.maxWidth=t.maxWidth),t.minWidth&&(a.minWidth=t.minWidth)),a};function wX(t,n,o){const r=e.computed(()=>e.unref(n).filter(m=>!m.hidden)),l=e.computed(()=>e.unref(r).filter(m=>m.fixed==="left"||m.fixed===!0)),a=e.computed(()=>e.unref(r).filter(m=>m.fixed==="right")),s=e.computed(()=>e.unref(r).filter(m=>!m.fixed)),i=e.computed(()=>{const m=[];return e.unref(l).forEach(b=>{m.push({...b,placeholderSign:vl})}),e.unref(s).forEach(b=>{m.push(b)}),e.unref(a).forEach(b=>{m.push({...b,placeholderSign:vl})}),m}),c=e.computed(()=>e.unref(l).length||e.unref(a).length),f=e.computed(()=>e.unref(n).reduce((b,y)=>(b[y.key]=CX(y,e.unref(o),t.fixed),b),{})),u=e.computed(()=>e.unref(r).reduce((m,b)=>m+b.width,0)),d=m=>e.unref(n).find(b=>b.key===m),p=m=>e.unref(f)[m],h=(m,b)=>{m.width=b};function g(m){var b;const{key:y}=m.currentTarget.dataset;if(!y)return;const{sortState:C,sortBy:k}=t;let w=$l.ASC;nt(C)?w=zp[C[y]]:w=zp[k.order],(b=t.onColumnSort)==null||b.call(t,{column:d(y),key:y,order:w})}return{columns:n,columnsStyles:f,columnsTotalWidth:u,fixedColumnsOnLeft:l,fixedColumnsOnRight:a,hasFixedColumns:c,mainColumns:i,normalColumns:s,visibleColumns:r,getColumn:d,getColumnStyle:p,updateColumnWidth:h,onColumnSorted:g}}const kX=(t,{mainTableRef:n,leftTableRef:o,rightTableRef:r,onMaybeEndReached:l})=>{const a=e.ref({scrollLeft:0,scrollTop:0});function s(h){var g,m,b;const{scrollTop:y}=h;(g=n.value)==null||g.scrollTo(h),(m=o.value)==null||m.scrollToTop(y),(b=r.value)==null||b.scrollToTop(y)}function i(h){a.value=h,s(h)}function c(h){a.value.scrollTop=h,s(e.unref(a))}function f(h){var g,m;a.value.scrollLeft=h,(m=(g=n.value)==null?void 0:g.scrollTo)==null||m.call(g,e.unref(a))}function u(h){var g;i(h),(g=t.onScroll)==null||g.call(t,h)}function d({scrollTop:h}){const{scrollTop:g}=e.unref(a);h!==g&&c(h)}function p(h,g="auto"){var m;(m=n.value)==null||m.scrollToRow(h,g)}return e.watch(()=>e.unref(a).scrollTop,(h,g)=>{h>g&&l()}),{scrollPos:a,scrollTo:i,scrollToLeft:f,scrollToTop:c,scrollToRow:p,onScroll:u,onVerticalScroll:d}},SX=(t,{mainTableRef:n,leftTableRef:o,rightTableRef:r})=>{const l=e.getCurrentInstance(),{emit:a}=l,s=e.shallowRef(!1),i=e.shallowRef(null),c=e.ref(t.defaultExpandedRowKeys||[]),f=e.ref(-1),u=e.shallowRef(null),d=e.ref({}),p=e.ref({}),h=e.shallowRef({}),g=e.shallowRef({}),m=e.shallowRef({}),b=e.computed(()=>be(t.estimatedRowHeight));function y(B){var M;(M=t.onRowsRendered)==null||M.call(t,B),B.rowCacheEnd>e.unref(f)&&(f.value=B.rowCacheEnd)}function C({hovered:B,rowKey:M}){i.value=B?M:null}function k({expanded:B,rowData:M,rowIndex:P,rowKey:T}){var I,v;const O=[...e.unref(c)],D=O.indexOf(T);B?D===-1&&O.push(T):D>-1&&O.splice(D,1),c.value=O,a("update:expandedRowKeys",O),(I=t.onRowExpand)==null||I.call(t,{expanded:B,rowData:M,rowIndex:P,rowKey:T}),(v=t.onExpandedRowsChange)==null||v.call(t,O)}const w=Gt(()=>{var B,M,P,T;s.value=!0,d.value={...e.unref(d),...e.unref(p)},E(e.unref(u),!1),p.value={},u.value=null,(B=n.value)==null||B.forceUpdate(),(M=o.value)==null||M.forceUpdate(),(P=r.value)==null||P.forceUpdate(),(T=l.proxy)==null||T.$forceUpdate(),s.value=!1},0);function E(B,M=!1){!e.unref(b)||[n,o,r].forEach(P=>{const T=e.unref(P);T&&T.resetAfterRowIndex(B,M)})}function S(B,M,P){const T=e.unref(u);(T===null||T>P)&&(u.value=P),p.value[B]=M}function _({rowKey:B,height:M,rowIndex:P},T){T?T===Ap.RIGHT?m.value[B]=M:h.value[B]=M:g.value[B]=M;const I=Math.max(...[h,m,g].map(v=>v.value[B]||0));e.unref(d)[B]!==I&&(S(B,I,P),w())}return{hoveringRowKey:i,expandedRowKeys:c,lastRenderedRowIndex:f,isDynamic:b,isResetting:s,rowHeights:d,resetAfterIndex:E,onRowExpanded:k,onRowHovered:C,onRowsRendered:y,onRowHeightChange:_}},EX=(t,{expandedRowKeys:n,lastRenderedRowIndex:o,resetAfterIndex:r})=>{const l=e.ref({}),a=e.computed(()=>{const i={},{data:c,rowKey:f}=t,u=e.unref(n);if(!u||!u.length)return c;const d=[],p=new Set;u.forEach(g=>p.add(g));let h=c.slice();for(h.forEach(g=>i[g[f]]=0);h.length>0;){const g=h.shift();d.push(g),p.has(g[f])&&Array.isArray(g.children)&&g.children.length>0&&(h=[...g.children,...h],g.children.forEach(m=>i[m[f]]=i[g[f]]+1))}return l.value=i,d}),s=e.computed(()=>{const{data:i,expandColumnKey:c}=t;return c?e.unref(a):i});return e.watch(s,(i,c)=>{i!==c&&(o.value=-1,r(0,!0))}),{data:s,depthMap:l}},NX=(t,n)=>t+n,Xi=t=>Re(t)?t.reduce(NX,0):t,xr=(t,n,o={})=>qe(t)?t(n):t!=null?t:o,cr=t=>(["width","maxWidth","minWidth","height"].forEach(n=>{t[n]=kt(t[n])}),t),s2=t=>e.isVNode(t)?n=>e.h(t,n):t,_X=(t,{columnsTotalWidth:n,data:o,fixedColumnsOnLeft:r,fixedColumnsOnRight:l})=>{const a=e.computed(()=>{const{fixed:k,width:w,vScrollbarSize:E}=t,S=w-E;return k?Math.max(Math.round(e.unref(n)),S):S}),s=e.computed(()=>e.unref(a)+(t.fixed?t.vScrollbarSize:0)),i=e.computed(()=>{const{height:k=0,maxHeight:w=0,footerHeight:E,hScrollbarSize:S}=t;if(w>0){const _=e.unref(g),B=e.unref(c),P=e.unref(h)+_+B+S;return Math.min(P,w-E)}return k-E}),c=e.computed(()=>{const{rowHeight:k,estimatedRowHeight:w}=t,E=e.unref(o);return be(w)?E.length*w:E.length*k}),f=e.computed(()=>{const{maxHeight:k}=t,w=e.unref(i);if(be(k)&&k>0)return w;const E=e.unref(c)+e.unref(h)+e.unref(g);return Math.min(w,E)}),u=k=>k.width,d=e.computed(()=>Xi(e.unref(r).map(u))),p=e.computed(()=>Xi(e.unref(l).map(u))),h=e.computed(()=>Xi(t.headerHeight)),g=e.computed(()=>{var k;return(((k=t.fixedData)==null?void 0:k.length)||0)*t.rowHeight}),m=e.computed(()=>e.unref(i)-e.unref(h)-e.unref(g)),b=e.computed(()=>{const{style:k={},height:w,width:E}=t;return cr({...k,height:w,width:E})}),y=e.computed(()=>cr({height:t.footerHeight})),C=e.computed(()=>({top:kt(e.unref(h)),bottom:kt(t.footerHeight),width:kt(t.width)}));return{bodyWidth:a,fixedTableHeight:f,mainTableHeight:i,leftTableWidth:d,rightTableWidth:p,headerWidth:s,rowsHeight:c,windowHeight:m,footerHeight:y,emptyStyle:C,rootStyle:b,headerHeight:h}},BX=t=>{const n=e.ref(),o=e.ref(0),r=e.ref(0);let l;return e.onMounted(()=>{l=jt(n,([a])=>{const{width:s,height:i}=a.contentRect,{paddingLeft:c,paddingRight:f,paddingTop:u,paddingBottom:d}=getComputedStyle(a.target),p=Number.parseInt(c)||0,h=Number.parseInt(f)||0,g=Number.parseInt(u)||0,m=Number.parseInt(d)||0;o.value=s-p-h,r.value=i-g-m}).stop}),e.onBeforeUnmount(()=>{l==null||l()}),e.watch([o,r],([a,s])=>{var i;(i=t.onResize)==null||i.call(t,{width:a,height:s})}),{sizer:n,width:o,height:r}};function $X(t){const n=e.ref(),o=e.ref(),r=e.ref(),{columns:l,columnsStyles:a,columnsTotalWidth:s,fixedColumnsOnLeft:i,fixedColumnsOnRight:c,hasFixedColumns:f,mainColumns:u,onColumnSorted:d}=wX(t,e.toRef(t,"columns"),e.toRef(t,"fixed")),{scrollTo:p,scrollToLeft:h,scrollToTop:g,scrollToRow:m,onScroll:b,onVerticalScroll:y,scrollPos:C}=kX(t,{mainTableRef:n,leftTableRef:o,rightTableRef:r,onMaybeEndReached:ie}),{expandedRowKeys:k,hoveringRowKey:w,lastRenderedRowIndex:E,isDynamic:S,isResetting:_,rowHeights:B,resetAfterIndex:M,onRowExpanded:P,onRowHeightChange:T,onRowHovered:I,onRowsRendered:v}=SX(t,{mainTableRef:n,leftTableRef:o,rightTableRef:r}),{data:O,depthMap:D}=EX(t,{expandedRowKeys:k,lastRenderedRowIndex:E,resetAfterIndex:M}),{bodyWidth:z,fixedTableHeight:$,mainTableHeight:R,leftTableWidth:N,rightTableWidth:A,headerWidth:x,rowsHeight:H,windowHeight:K,footerHeight:q,emptyStyle:ne,rootStyle:Y,headerHeight:Z}=_X(t,{columnsTotalWidth:s,data:O,fixedColumnsOnLeft:i,fixedColumnsOnRight:c}),U=e.shallowRef(!1),re=e.ref(),te=e.computed(()=>{const ye=e.unref(O).length===0;return Re(t.fixedData)?t.fixedData.length===0&&ye:ye});function oe(ye){const{estimatedRowHeight:Ne,rowHeight:Te,rowKey:Pe}=t;return Ne?e.unref(B)[e.unref(O)[ye][Pe]]||Ne:Te}function ie(){const{onEndReached:ye}=t;if(!ye)return;const{scrollTop:Ne}=e.unref(C),Te=e.unref(H),Pe=e.unref(K),he=Te-(Ne+Pe)+t.hScrollbarSize;e.unref(E)>=0&&Te===Ne+e.unref(R)-e.unref(Z)&&ye(he)}return e.watch(()=>t.expandedRowKeys,ye=>k.value=ye,{deep:!0}),{columns:l,containerRef:re,mainTableRef:n,leftTableRef:o,rightTableRef:r,isDynamic:S,isResetting:_,isScrolling:U,hoveringRowKey:w,hasFixedColumns:f,columnsStyles:a,columnsTotalWidth:s,data:O,expandedRowKeys:k,depthMap:D,fixedColumnsOnLeft:i,fixedColumnsOnRight:c,mainColumns:u,bodyWidth:z,emptyStyle:ne,rootStyle:Y,headerWidth:x,footerHeight:q,mainTableHeight:R,fixedTableHeight:$,leftTableWidth:N,rightTableWidth:A,showEmpty:te,getRowHeight:oe,onColumnSorted:d,onRowHovered:I,onRowExpanded:P,onRowsRendered:v,onRowHeightChange:T,scrollTo:p,scrollToLeft:h,scrollToTop:g,scrollToRow:m,onScroll:b,onVerticalScroll:y}}const Dp=Symbol("tableV2"),i2=String,za={type:W(Array),required:!0},Lp={type:W(Array)},c2={...Lp,required:!0},TX=String,d2={type:W(Array),default:()=>ut([])},Fr={type:Number,required:!0},f2={type:W([String,Number,Symbol]),default:"id"},u2={type:W(Object)},dr=le({class:String,columns:za,columnsStyles:{type:W(Object),required:!0},depth:Number,expandColumnKey:TX,estimatedRowHeight:{...ir.estimatedRowHeight,default:void 0},isScrolling:Boolean,onRowExpand:{type:W(Function)},onRowHover:{type:W(Function)},onRowHeightChange:{type:W(Function)},rowData:{type:W(Object),required:!0},rowEventHandlers:{type:W(Object)},rowIndex:{type:Number,required:!0},rowKey:f2,style:{type:W(Object)}}),xp={type:Number,required:!0},Fp=le({class:String,columns:za,fixedHeaderData:{type:W(Array)},headerData:{type:W(Array),required:!0},headerHeight:{type:W([Number,Array]),default:50},rowWidth:xp,rowHeight:{type:Number,default:50},height:xp,width:xp}),Zi=le({columns:za,data:c2,fixedData:Lp,estimatedRowHeight:dr.estimatedRowHeight,width:Fr,height:Fr,headerWidth:Fr,headerHeight:Fp.headerHeight,bodyWidth:Fr,rowHeight:Fr,cache:wp.cache,useIsScrolling:Boolean,scrollbarAlwaysOn:ir.scrollbarAlwaysOn,scrollbarStartGap:ir.scrollbarStartGap,scrollbarEndGap:ir.scrollbarEndGap,class:i2,style:u2,containerStyle:u2,getRowHeight:{type:W(Function),required:!0},rowKey:dr.rowKey,onRowsRendered:{type:W(Function)},onScroll:{type:W(Function)}}),p2=le({cache:Zi.cache,estimatedRowHeight:dr.estimatedRowHeight,rowKey:f2,headerClass:{type:W([String,Function])},headerProps:{type:W([Object,Function])},headerCellProps:{type:W([Object,Function])},headerHeight:Fp.headerHeight,footerHeight:{type:Number,default:0},rowClass:{type:W([String,Function])},rowProps:{type:W([Object,Function])},rowHeight:{type:Number,default:50},cellProps:{type:W([Object,Function])},columns:za,data:c2,dataGetter:{type:W(Function)},fixedData:Lp,expandColumnKey:dr.expandColumnKey,expandedRowKeys:d2,defaultExpandedRowKeys:d2,class:i2,fixed:Boolean,style:{type:W(Object)},width:Fr,height:Fr,maxHeight:Number,useIsScrolling:Boolean,indentSize:{type:Number,default:12},iconSize:{type:Number,default:12},hScrollbarSize:ir.hScrollbarSize,vScrollbarSize:ir.vScrollbarSize,scrollbarAlwaysOn:Sp.alwaysOn,sortBy:{type:W(Object),default:()=>({})},sortState:{type:W(Object),default:void 0},onColumnSort:{type:W(Function)},onExpandedRowsChange:{type:W(Function)},onEndReached:{type:W(Function)},onRowExpand:dr.onRowExpand,onScroll:Zi.onScroll,onRowsRendered:Zi.onRowsRendered,rowEventHandlers:dr.rowEventHandlers}),Hp=(t,{slots:n})=>{var o;const{cellData:r,style:l}=t,a=((o=r==null?void 0:r.toString)==null?void 0:o.call(r))||"";return e.createVNode("div",{class:t.class,title:a,style:l},[n.default?n.default(t):a])};Hp.displayName="ElTableV2Cell",Hp.inheritAttrs=!1;var vX=Hp;const Kp=(t,{slots:n})=>{var o,r;return n.default?n.default(t):e.createVNode("div",{class:t.class,title:(o=t.column)==null?void 0:o.title},[(r=t.column)==null?void 0:r.title])};Kp.displayName="ElTableV2HeaderCell",Kp.inheritAttrs=!1;var VX=Kp;const MX=le({class:String,columns:za,columnsStyles:{type:W(Object),required:!0},headerIndex:Number,style:{type:W(Object)}});var IX=e.defineComponent({name:"ElTableV2HeaderRow",props:MX,setup(t,{slots:n}){return()=>{const{columns:o,columnsStyles:r,headerIndex:l,style:a}=t;let s=o.map((i,c)=>n.cell({columns:o,column:i,columnIndex:c,headerIndex:l,style:r[i.key]}));return n.header&&(s=n.header({cells:s.map(i=>Re(i)&&i.length===1?i[0]:i),columns:o,headerIndex:l})),e.createVNode("div",{class:t.class,style:a,role:"row"},[s])}}});const PX="ElTableV2Header";var RX=e.defineComponent({name:PX,props:Fp,setup(t,{slots:n,expose:o}){const r=Q("table-v2"),l=e.ref(),a=e.computed(()=>cr({width:t.width,height:t.height})),s=e.computed(()=>cr({width:t.rowWidth,height:t.height})),i=e.computed(()=>Ho(e.unref(t.headerHeight))),c=d=>{const p=e.unref(l);e.nextTick(()=>{p!=null&&p.scroll&&p.scroll({left:d})})},f=()=>{const d=r.e("fixed-header-row"),{columns:p,fixedHeaderData:h,rowHeight:g}=t;return h==null?void 0:h.map((m,b)=>{var y;const C=cr({height:g,width:"100%"});return(y=n.fixed)==null?void 0:y.call(n,{class:d,columns:p,rowData:m,rowIndex:-(b+1),style:C})})},u=()=>{const d=r.e("dynamic-header-row"),{columns:p}=t;return e.unref(i).map((h,g)=>{var m;const b=cr({width:"100%",height:h});return(m=n.dynamic)==null?void 0:m.call(n,{class:d,columns:p,headerIndex:g,style:b})})};return o({scrollToLeft:c}),()=>{if(!(t.height<=0))return e.createVNode("div",{ref:l,class:t.class,style:e.unref(a),role:"rowgroup"},[e.createVNode("div",{style:e.unref(s),class:r.e("header")},[u(),f()])])}}});const OX=t=>{const{isScrolling:n}=e.inject(Dp),o=e.ref(!1),r=e.ref(),l=e.computed(()=>be(t.estimatedRowHeight)&&t.rowIndex>=0),a=(c=!1)=>{const f=e.unref(r);if(!f)return;const{columns:u,onRowHeightChange:d,rowKey:p,rowIndex:h,style:g}=t,{height:m}=f.getBoundingClientRect();o.value=!0,e.nextTick(()=>{if(c||m!==Number.parseInt(g.height)){const b=u[0],y=(b==null?void 0:b.placeholderSign)===vl;d==null||d({rowKey:p,height:m,rowIndex:h},b&&!y&&b.fixed)}})},s=e.computed(()=>{const{rowData:c,rowIndex:f,rowKey:u,onRowHover:d}=t,p=t.rowEventHandlers||{},h={};return Object.entries(p).forEach(([g,m])=>{qe(m)&&(h[g]=b=>{m({event:b,rowData:c,rowIndex:f,rowKey:u})})}),d&&[{name:"onMouseleave",hovered:!1},{name:"onMouseenter",hovered:!0}].forEach(({name:g,hovered:m})=>{const b=h[g];h[g]=y=>{d({event:y,hovered:m,rowData:c,rowIndex:f,rowKey:u}),b==null||b(y)}}),h}),i=c=>{const{onRowExpand:f,rowData:u,rowIndex:d,rowKey:p}=t;f==null||f({expanded:c,rowData:u,rowIndex:d,rowKey:p})};return e.onMounted(()=>{e.unref(l)&&a(!0)}),{isScrolling:n,measurable:l,measured:o,rowRef:r,eventHandlers:s,onExpand:i}},AX="ElTableV2TableRow";var zX=e.defineComponent({name:AX,props:dr,setup(t,{expose:n,slots:o,attrs:r}){const{eventHandlers:l,isScrolling:a,measurable:s,measured:i,rowRef:c,onExpand:f}=OX(t);return n({onExpand:f}),()=>{const{columns:u,columnsStyles:d,expandColumnKey:p,depth:h,rowData:g,rowIndex:m,style:b}=t;let y=u.map((C,k)=>{const w=Re(g.children)&&g.children.length>0&&C.key===p;return o.cell({column:C,columns:u,columnIndex:k,depth:h,style:d[C.key],rowData:g,rowIndex:m,isScrolling:e.unref(a),expandIconProps:w?{rowData:g,rowIndex:m,onExpand:f}:void 0})});if(o.row&&(y=o.row({cells:y.map(C=>Re(C)&&C.length===1?C[0]:C),style:b,columns:u,depth:h,rowData:g,rowIndex:m,isScrolling:e.unref(a)})),e.unref(s)){const{height:C,...k}=b||{},w=e.unref(i);return e.createVNode("div",e.mergeProps({ref:c,class:t.class,style:w?b:k,role:"row"},r,e.unref(l)),[y])}return e.createVNode("div",e.mergeProps(r,{ref:c,class:t.class,style:b,role:"row"},e.unref(l)),[y])}}}),DX=t=>{const{sortOrder:n}=t;return e.createVNode(fe,{size:14,class:t.class},{default:()=>[n===$l.ASC?e.createVNode(GD,null,null):e.createVNode(jD,null,null)]})},LX=t=>{const{expanded:n,expandable:o,onExpand:r,style:l,size:a}=t,s={onClick:o?()=>r(!n):void 0,class:t.class};return e.createVNode(fe,e.mergeProps(s,{size:a,style:l}),{default:()=>[e.createVNode(on,null,null)]})};const xX="ElTableV2Grid",FX=t=>{const n=e.ref(),o=e.ref(),r=e.computed(()=>{const{data:m,rowHeight:b,estimatedRowHeight:y}=t;if(!y)return m.length*b}),l=e.computed(()=>{const{fixedData:m,rowHeight:b}=t;return((m==null?void 0:m.length)||0)*b}),a=e.computed(()=>Xi(t.headerHeight)),s=e.computed(()=>{const{height:m}=t;return Math.max(0,m-e.unref(a)-e.unref(l))}),i=e.computed(()=>e.unref(a)+e.unref(l)>0),c=({data:m,rowIndex:b})=>m[b][t.rowKey];function f({rowCacheStart:m,rowCacheEnd:b,rowVisibleStart:y,rowVisibleEnd:C}){var k;(k=t.onRowsRendered)==null||k.call(t,{rowCacheStart:m,rowCacheEnd:b,rowVisibleStart:y,rowVisibleEnd:C})}function u(m,b){var y;(y=o.value)==null||y.resetAfterRowIndex(m,b)}function d(m,b){const y=e.unref(n),C=e.unref(o);!y||!C||(nt(m)?(y.scrollToLeft(m.scrollLeft),C.scrollTo(m)):(y.scrollToLeft(m),C.scrollTo({scrollLeft:m,scrollTop:b})))}function p(m){var b;(b=e.unref(o))==null||b.scrollTo({scrollTop:m})}function h(m,b){var y;(y=e.unref(o))==null||y.scrollToItem(m,1,b)}function g(){var m,b;(m=e.unref(o))==null||m.$forceUpdate(),(b=e.unref(n))==null||b.$forceUpdate()}return{bodyRef:o,forceUpdate:g,fixedRowHeight:l,gridHeight:s,hasHeader:i,headerHeight:a,headerRef:n,totalHeight:r,itemKey:c,onItemRendered:f,resetAfterRowIndex:u,scrollTo:d,scrollToTop:p,scrollToRow:h}},Wp=e.defineComponent({name:xX,props:Zi,setup(t,{slots:n,expose:o}){const{ns:r}=e.inject(Dp),{bodyRef:l,fixedRowHeight:a,gridHeight:s,hasHeader:i,headerRef:c,headerHeight:f,totalHeight:u,forceUpdate:d,itemKey:p,onItemRendered:h,resetAfterRowIndex:g,scrollTo:m,scrollToTop:b,scrollToRow:y}=FX(t);o({forceUpdate:d,totalHeight:u,scrollTo:m,scrollToTop:b,scrollToRow:y,resetAfterRowIndex:g});const C=()=>t.bodyWidth;return()=>{const{cache:k,columns:w,data:E,fixedData:S,useIsScrolling:_,scrollbarAlwaysOn:B,scrollbarEndGap:M,scrollbarStartGap:P,style:T,rowHeight:I,bodyWidth:v,estimatedRowHeight:O,headerWidth:D,height:z,width:$,getRowHeight:R,onScroll:N}=t,A=be(O),x=A?uE:rE,H=e.unref(f);return e.createVNode("div",{role:"table",class:[r.e("table"),t.class],style:T},[e.createVNode(x,{ref:l,data:E,useIsScrolling:_,itemKey:p,columnCache:0,columnWidth:A?C:v,totalColumn:1,totalRow:E.length,rowCache:k,rowHeight:A?R:I,width:$,height:e.unref(s),class:r.e("body"),role:"rowgroup",scrollbarStartGap:P,scrollbarEndGap:M,scrollbarAlwaysOn:B,onScroll:N,onItemRendered:h,perfMode:!1},{default:K=>{var q;const ne=E[K.rowIndex];return(q=n.row)==null?void 0:q.call(n,{...K,columns:w,rowData:ne})}}),e.unref(i)&&e.createVNode(RX,{ref:c,class:r.e("header-wrapper"),columns:w,headerData:E,headerHeight:t.headerHeight,fixedHeaderData:S,rowWidth:D,rowHeight:I,width:$,height:Math.min(H+e.unref(a),z)},{dynamic:n.header,fixed:n.row})])}}});function HX(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const KX=(t,{slots:n})=>{const{mainTableRef:o,...r}=t;return e.createVNode(Wp,e.mergeProps({ref:o},r),HX(n)?n:{default:()=>[n]})};function WX(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const jX=(t,{slots:n})=>{if(!t.columns.length)return;const{leftTableRef:o,...r}=t;return e.createVNode(Wp,e.mergeProps({ref:o},r),WX(n)?n:{default:()=>[n]})};function UX(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const GX=(t,{slots:n})=>{if(!t.columns.length)return;const{rightTableRef:o,...r}=t;return e.createVNode(Wp,e.mergeProps({ref:o},r),UX(n)?n:{default:()=>[n]})};function qX(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const YX=(t,{slots:n})=>{const{columns:o,columnsStyles:r,depthMap:l,expandColumnKey:a,expandedRowKeys:s,estimatedRowHeight:i,hasFixedColumns:c,hoveringRowKey:f,rowData:u,rowIndex:d,style:p,isScrolling:h,rowProps:g,rowClass:m,rowKey:b,rowEventHandlers:y,ns:C,onRowHovered:k,onRowExpanded:w}=t,E=xr(m,{columns:o,rowData:u,rowIndex:d},""),S=xr(g,{columns:o,rowData:u,rowIndex:d}),_=u[b],B=l[_]||0,M=Boolean(a),P=d<0,T=[C.e("row"),E,{[C.e(`row-depth-${B}`)]:M&&d>=0,[C.is("expanded")]:M&&s.includes(_),[C.is("hovered")]:!h&&_===f,[C.is("fixed")]:!B&&P,[C.is("customized")]:Boolean(n.row)}],I=c?k:void 0,v={...S,columns:o,columnsStyles:r,class:T,depth:B,expandColumnKey:a,estimatedRowHeight:P?void 0:i,isScrolling:h,rowIndex:d,rowData:u,rowKey:_,rowEventHandlers:y,style:p};return e.createVNode(zX,e.mergeProps(v,{onRowHover:I,onRowExpand:w}),qX(n)?n:{default:()=>[n]})},jp=({columns:t,column:n,columnIndex:o,depth:r,expandIconProps:l,isScrolling:a,rowData:s,rowIndex:i,style:c,expandedRowKeys:f,ns:u,cellProps:d,expandColumnKey:p,indentSize:h,iconSize:g,rowKey:m},{slots:b})=>{const y=cr(c);if(n.placeholderSign===vl)return e.createVNode("div",{class:u.em("row-cell","placeholder"),style:y},null);const{cellRenderer:C,dataKey:k,dataGetter:w}=n,S=s2(C)||b.default||(z=>e.createVNode(vX,z,null)),_=qe(w)?w({columns:t,column:n,columnIndex:o,rowData:s,rowIndex:i}):ct(s,k!=null?k:""),B=xr(d,{cellData:_,columns:t,column:n,columnIndex:o,rowIndex:i,rowData:s}),M={class:u.e("cell-text"),columns:t,column:n,columnIndex:o,cellData:_,isScrolling:a,rowData:s,rowIndex:i},P=S(M),T=[u.e("row-cell"),n.class,n.align===Tl.CENTER&&u.is("align-center"),n.align===Tl.RIGHT&&u.is("align-right")],I=i>=0&&p&&n.key===p,v=i>=0&&f.includes(s[m]);let O;const D=`margin-inline-start: ${r*h}px;`;return I&&(nt(l)?O=e.createVNode(LX,e.mergeProps(l,{class:[u.e("expand-icon"),u.is("expanded",v)],size:g,expanded:v,style:D,expandable:!0}),null):O=e.createVNode("div",{style:[D,`width: ${g}px; height: ${g}px;`].join(" ")},null)),e.createVNode("div",e.mergeProps({class:T,style:y},B,{role:"cell"}),[O,P])};jp.inheritAttrs=!1;function XX(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const ZX=({columns:t,columnsStyles:n,headerIndex:o,style:r,headerClass:l,headerProps:a,ns:s},{slots:i})=>{const c={columns:t,headerIndex:o},f=[s.e("header-row"),xr(l,c,""),{[s.is("customized")]:Boolean(i.header)}],u={...xr(a,c),columnsStyles:n,class:f,columns:t,headerIndex:o,style:r};return e.createVNode(IX,u,XX(i)?i:{default:()=>[i]})},m2=(t,{slots:n})=>{const{column:o,ns:r,style:l,onColumnSorted:a}=t,s=cr(l);if(o.placeholderSign===vl)return e.createVNode("div",{class:r.em("header-row-cell","placeholder"),style:s},null);const{headerCellRenderer:i,headerClass:c,sortable:f}=o,u={...t,class:r.e("header-cell-text")},p=(s2(i)||n.default||(w=>e.createVNode(VX,w,null)))(u),{sortBy:h,sortState:g,headerCellProps:m}=t;let b,y;if(g){const w=g[o.key];b=Boolean(zp[w]),y=b?w:$l.ASC}else b=o.key===h.key,y=b?h.order:$l.ASC;const C=[r.e("header-cell"),xr(c,t,""),o.align===Tl.CENTER&&r.is("align-center"),o.align===Tl.RIGHT&&r.is("align-right"),f&&r.is("sortable")],k={...xr(m,t),onClick:o.sortable?a:void 0,class:C,style:s,["data-key"]:o.key};return e.createVNode("div",e.mergeProps(k,{role:"columnheader"}),[p,f&&e.createVNode(DX,{class:[r.e("sort-icon"),b&&r.is("sorting")],sortOrder:y},null)])},h2=(t,{slots:n})=>{var o;return e.createVNode("div",{class:t.class,style:t.style},[(o=n.default)==null?void 0:o.call(n)])};h2.displayName="ElTableV2Footer";const g2=(t,{slots:n})=>e.createVNode("div",{class:t.class,style:t.style},[n.default?n.default():e.createVNode(Ju,null,null)]);g2.displayName="ElTableV2Empty";const y2=(t,{slots:n})=>{var o;return e.createVNode("div",{class:t.class,style:t.style},[(o=n.default)==null?void 0:o.call(n)])};y2.displayName="ElTableV2Overlay";function Da(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const JX="ElTableV2";var b2=e.defineComponent({name:JX,props:p2,setup(t,{slots:n,expose:o}){const r=Q("table-v2"),{columnsStyles:l,fixedColumnsOnLeft:a,fixedColumnsOnRight:s,mainColumns:i,mainTableHeight:c,fixedTableHeight:f,leftTableWidth:u,rightTableWidth:d,data:p,depthMap:h,expandedRowKeys:g,hasFixedColumns:m,hoveringRowKey:b,mainTableRef:y,leftTableRef:C,rightTableRef:k,isDynamic:w,isResetting:E,isScrolling:S,bodyWidth:_,emptyStyle:B,rootStyle:M,headerWidth:P,footerHeight:T,showEmpty:I,scrollTo:v,scrollToLeft:O,scrollToTop:D,scrollToRow:z,getRowHeight:$,onColumnSorted:R,onRowHeightChange:N,onRowHovered:A,onRowExpanded:x,onRowsRendered:H,onScroll:K,onVerticalScroll:q}=$X(t);return o({scrollTo:v,scrollToLeft:O,scrollToTop:D,scrollToRow:z}),e.provide(Dp,{ns:r,isResetting:E,hoveringRowKey:b,isScrolling:S}),()=>{const{cache:ne,cellProps:Y,estimatedRowHeight:Z,expandColumnKey:U,fixedData:re,headerHeight:te,headerClass:oe,headerProps:ie,headerCellProps:ye,sortBy:Ne,sortState:Te,rowHeight:Pe,rowClass:he,rowEventHandlers:Ce,rowKey:ge,rowProps:me,scrollbarAlwaysOn:_e,indentSize:$e,iconSize:Ae,useIsScrolling:Oe,vScrollbarSize:ce,width:Ee}=t,Le=e.unref(p),Xe={cache:ne,class:r.e("main"),columns:e.unref(i),data:Le,fixedData:re,estimatedRowHeight:Z,bodyWidth:e.unref(_)+ce,headerHeight:te,headerWidth:e.unref(P),height:e.unref(c),mainTableRef:y,rowKey:ge,rowHeight:Pe,scrollbarAlwaysOn:_e,scrollbarStartGap:2,scrollbarEndGap:ce,useIsScrolling:Oe,width:Ee,getRowHeight:$,onRowsRendered:H,onScroll:K},Qe=e.unref(u),ke=e.unref(f),J={cache:ne,class:r.e("left"),columns:e.unref(a),data:Le,estimatedRowHeight:Z,leftTableRef:C,rowHeight:Pe,bodyWidth:Qe,headerWidth:Qe,headerHeight:te,height:ke,rowKey:ge,scrollbarAlwaysOn:_e,scrollbarStartGap:2,scrollbarEndGap:ce,useIsScrolling:Oe,width:Qe,getRowHeight:$,onScroll:q},j=e.unref(d)+ce,ee={cache:ne,class:r.e("right"),columns:e.unref(s),data:Le,estimatedRowHeight:Z,rightTableRef:k,rowHeight:Pe,bodyWidth:j,headerWidth:j,headerHeight:te,height:ke,rowKey:ge,scrollbarAlwaysOn:_e,scrollbarStartGap:2,scrollbarEndGap:ce,width:j,style:`--${e.unref(r.namespace)}-table-scrollbar-size: ${ce}px`,useIsScrolling:Oe,getRowHeight:$,onScroll:q},F=e.unref(l),ue={ns:r,depthMap:e.unref(h),columnsStyles:F,expandColumnKey:U,expandedRowKeys:e.unref(g),estimatedRowHeight:Z,hasFixedColumns:e.unref(m),hoveringRowKey:e.unref(b),rowProps:me,rowClass:he,rowKey:ge,rowEventHandlers:Ce,onRowHovered:A,onRowExpanded:x,onRowHeightChange:N},Be={cellProps:Y,expandColumnKey:U,indentSize:$e,iconSize:Ae,rowKey:ge,expandedRowKeys:e.unref(g),ns:r},xe={ns:r,headerClass:oe,headerProps:ie,columnsStyles:F},_t={ns:r,sortBy:Ne,sortState:Te,headerCellProps:ye,onColumnSorted:R},gt={row:X=>e.createVNode(YX,e.mergeProps(X,ue),{row:n.row,cell:de=>{let Se;return n.cell?e.createVNode(jp,e.mergeProps(de,Be,{style:F[de.column.key]}),Da(Se=n.cell(de))?Se:{default:()=>[Se]}):e.createVNode(jp,e.mergeProps(de,Be,{style:F[de.column.key]}),null)}}),header:X=>e.createVNode(ZX,e.mergeProps(X,xe),{header:n.header,cell:de=>{let Se;return n["header-cell"]?e.createVNode(m2,e.mergeProps(de,_t,{style:F[de.column.key]}),Da(Se=n["header-cell"](de))?Se:{default:()=>[Se]}):e.createVNode(m2,e.mergeProps(de,_t,{style:F[de.column.key]}),null)}})},zn=[t.class,r.b(),r.e("root"),{[r.is("dynamic")]:e.unref(w)}],Wt={class:r.e("footer"),style:e.unref(T)};return e.createVNode("div",{class:zn,style:e.unref(M)},[e.createVNode(KX,Xe,Da(gt)?gt:{default:()=>[gt]}),e.createVNode(jX,J,Da(gt)?gt:{default:()=>[gt]}),e.createVNode(GX,ee,Da(gt)?gt:{default:()=>[gt]}),n.footer&&e.createVNode(h2,Wt,{default:n.footer}),e.unref(I)&&e.createVNode(g2,{class:r.e("empty"),style:e.unref(B)},{default:n.empty}),n.overlay&&e.createVNode(y2,{class:r.e("overlay")},{default:n.overlay})])}}});const C2=le({disableWidth:Boolean,disableHeight:Boolean,onResize:{type:W(Function)}}),QX=e.defineComponent({name:"ElAutoResizer",props:C2,setup(t,{slots:n}){const o=Q("auto-resizer"),{height:r,width:l,sizer:a}=BX(t),s={width:"100%",height:"100%"};return()=>{var i;return e.createVNode("div",{ref:a,class:o.b(),style:s},[(i=n.default)==null?void 0:i.call(n,{height:r.value,width:l.value})])}}}),w2=Me(b2),k2=Me(QX),La=Symbol("tabsRootContextKey"),S2=le({tabs:{type:W(Array),default:()=>ut([])}}),E2="ElTabBar",eZ=e.defineComponent({name:E2}),tZ=e.defineComponent({...eZ,props:S2,setup(t,{expose:n}){const o=t,r=e.getCurrentInstance(),l=e.inject(La);l||vt(E2,"");const a=Q("tabs"),s=e.ref(),i=e.ref(),c=()=>{let u=0,d=0;const p=["top","bottom"].includes(l.props.tabPosition)?"width":"height",h=p==="width"?"x":"y",g=h==="x"?"left":"top";return o.tabs.every(m=>{var b,y;const C=(y=(b=r.parent)==null?void 0:b.refs)==null?void 0:y[`tab-${m.uid}`];if(!C)return!1;if(!m.active)return!0;u=C[`offset${ao(g)}`],d=C[`client${ao(p)}`];const k=window.getComputedStyle(C);return p==="width"&&(o.tabs.length>1&&(d-=Number.parseFloat(k.paddingLeft)+Number.parseFloat(k.paddingRight)),u+=Number.parseFloat(k.paddingLeft)),!1}),{[p]:`${d}px`,transform:`translate${ao(h)}(${u}px)`}},f=()=>i.value=c();return e.watch(()=>o.tabs,async()=>{await e.nextTick(),f()},{immediate:!0}),jt(s,()=>f()),n({ref:s,update:f}),(u,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"barRef",ref:s,class:e.normalizeClass([e.unref(a).e("active-bar"),e.unref(a).is(e.unref(l).props.tabPosition)]),style:e.normalizeStyle(i.value)},null,6))}});var nZ=se(tZ,[["__file","tab-bar.vue"]]);const N2=le({panes:{type:W(Array),default:()=>ut([])},currentName:{type:[String,Number],default:""},editable:Boolean,type:{type:String,values:["card","border-card",""],default:""},stretch:Boolean}),_2={tabClick:(t,n,o)=>o instanceof Event,tabRemove:(t,n)=>n instanceof Event},B2="ElTabNav",oZ=e.defineComponent({name:B2,props:N2,emits:_2,setup(t,{expose:n,emit:o}){const r=e.getCurrentInstance(),l=e.inject(La);l||vt(B2,"");const a=Q("tabs"),s=a_(),i=C_(),c=e.ref(),f=e.ref(),u=e.ref(),d=e.ref(),p=e.ref(!1),h=e.ref(0),g=e.ref(!1),m=e.ref(!0),b=e.computed(()=>["top","bottom"].includes(l.props.tabPosition)?"width":"height"),y=e.computed(()=>({transform:`translate${b.value==="width"?"X":"Y"}(-${h.value}px)`})),C=()=>{if(!c.value)return;const M=c.value[`offset${ao(b.value)}`],P=h.value;if(!P)return;const T=P>M?P-M:0;h.value=T},k=()=>{if(!c.value||!f.value)return;const M=f.value[`offset${ao(b.value)}`],P=c.value[`offset${ao(b.value)}`],T=h.value;if(M-T<=P)return;const I=M-T>P*2?T+P:M-P;h.value=I},w=async()=>{const M=f.value;if(!p.value||!u.value||!c.value||!M)return;await e.nextTick();const P=u.value.querySelector(".is-active");if(!P)return;const T=c.value,I=["top","bottom"].includes(l.props.tabPosition),v=P.getBoundingClientRect(),O=T.getBoundingClientRect(),D=I?M.offsetWidth-O.width:M.offsetHeight-O.height,z=h.value;let $=z;I?(v.leftO.right&&($=z+v.right-O.right)):(v.topO.bottom&&($=z+(v.bottom-O.bottom))),$=Math.max($,0),h.value=Math.min($,D)},E=()=>{var M;if(!f.value||!c.value)return;t.stretch&&((M=d.value)==null||M.update());const P=f.value[`offset${ao(b.value)}`],T=c.value[`offset${ao(b.value)}`],I=h.value;T0&&(h.value=0))},S=M=>{const P=M.code,{up:T,down:I,left:v,right:O}=pe;if(![T,I,v,O].includes(P))return;const D=Array.from(M.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")),z=D.indexOf(M.target);let $;P===v||P===T?z===0?$=D.length-1:$=z-1:z{m.value&&(g.value=!0)},B=()=>g.value=!1;return e.watch(s,M=>{M==="hidden"?m.value=!1:M==="visible"&&setTimeout(()=>m.value=!0,50)}),e.watch(i,M=>{M?setTimeout(()=>m.value=!0,50):m.value=!1}),jt(u,E),e.onMounted(()=>setTimeout(()=>w(),0)),e.onUpdated(()=>E()),n({scrollToActiveTab:w,removeFocus:B}),e.watch(()=>t.panes,()=>r.update(),{flush:"post",deep:!0}),()=>{const M=p.value?[e.createVNode("span",{class:[a.e("nav-prev"),a.is("disabled",!p.value.prev)],onClick:C},[e.createVNode(fe,null,{default:()=>[e.createVNode(Yo,null,null)]})]),e.createVNode("span",{class:[a.e("nav-next"),a.is("disabled",!p.value.next)],onClick:k},[e.createVNode(fe,null,{default:()=>[e.createVNode(on,null,null)]})])]:null,P=t.panes.map((T,I)=>{var v,O,D,z;const $=T.uid,R=T.props.disabled,N=(O=(v=T.props.name)!=null?v:T.index)!=null?O:`${I}`,A=!R&&(T.isClosable||t.editable);T.index=`${I}`;const x=A?e.createVNode(fe,{class:"is-icon-close",onClick:q=>o("tabRemove",T,q)},{default:()=>[e.createVNode(Hn,null,null)]}):null,H=((z=(D=T.slots).label)==null?void 0:z.call(D))||T.props.label,K=!R&&T.active?0:-1;return e.createVNode("div",{ref:`tab-${$}`,class:[a.e("item"),a.is(l.props.tabPosition),a.is("active",T.active),a.is("disabled",R),a.is("closable",A),a.is("focus",g.value)],id:`tab-${N}`,key:`tab-${$}`,"aria-controls":`pane-${N}`,role:"tab","aria-selected":T.active,tabindex:K,onFocus:()=>_(),onBlur:()=>B(),onClick:q=>{B(),o("tabClick",T,N,q)},onKeydown:q=>{A&&(q.code===pe.delete||q.code===pe.backspace)&&o("tabRemove",T,q)}},[H,x])});return e.createVNode("div",{ref:u,class:[a.e("nav-wrap"),a.is("scrollable",!!p.value),a.is(l.props.tabPosition)]},[M,e.createVNode("div",{class:a.e("nav-scroll"),ref:c},[e.createVNode("div",{class:[a.e("nav"),a.is(l.props.tabPosition),a.is("stretch",t.stretch&&["top","bottom"].includes(l.props.tabPosition))],ref:f,style:y.value,role:"tablist",onKeydown:S},[t.type?null:e.createVNode(nZ,{ref:d,tabs:[...t.panes]},null),P])])])}}}),$2=le({type:{type:String,values:["card","border-card",""],default:""},activeName:{type:[String,Number]},closable:Boolean,addable:Boolean,modelValue:{type:[String,Number]},editable:Boolean,tabPosition:{type:String,values:["top","right","bottom","left"],default:"top"},beforeLeave:{type:W(Function),default:()=>!0},stretch:Boolean}),Up=t=>De(t)||be(t),T2={[Ie]:t=>Up(t),tabClick:(t,n)=>n instanceof Event,tabChange:t=>Up(t),edit:(t,n)=>["remove","add"].includes(n),tabRemove:t=>Up(t),tabAdd:()=>!0},rZ=e.defineComponent({name:"ElTabs",props:$2,emits:T2,setup(t,{emit:n,slots:o,expose:r}){var l,a;const s=Q("tabs"),{children:i,addChild:c,removeChild:f}=qs(e.getCurrentInstance(),"ElTabPane"),u=e.ref(),d=e.ref((a=(l=t.modelValue)!=null?l:t.activeName)!=null?a:"0"),p=async(b,y=!1)=>{var C,k,w;if(!(d.value===b||$t(b)))try{await((C=t.beforeLeave)==null?void 0:C.call(t,b,d.value))!==!1&&(d.value=b,y&&(n(Ie,b),n("tabChange",b)),(w=(k=u.value)==null?void 0:k.removeFocus)==null||w.call(k))}catch(E){}},h=(b,y,C)=>{b.props.disabled||(p(y,!0),n("tabClick",b,C))},g=(b,y)=>{b.props.disabled||$t(b.props.name)||(y.stopPropagation(),n("edit",b.props.name,"remove"),n("tabRemove",b.props.name))},m=()=>{n("edit",void 0,"add"),n("tabAdd")};return jn({from:'"activeName"',replacement:'"model-value" or "v-model"',scope:"ElTabs",version:"2.3.0",ref:"https://element-plus.org/en-US/component/tabs.html#attributes",type:"Attribute"},e.computed(()=>!!t.activeName)),e.watch(()=>t.activeName,b=>p(b)),e.watch(()=>t.modelValue,b=>p(b)),e.watch(d,async()=>{var b;await e.nextTick(),(b=u.value)==null||b.scrollToActiveTab()}),e.provide(La,{props:t,currentName:d,registerPane:c,unregisterPane:f}),r({currentName:d}),()=>{const b=o.addIcon,y=t.editable||t.addable?e.createVNode("span",{class:s.e("new-tab"),tabindex:"0",onClick:m,onKeydown:w=>{w.code===pe.enter&&m()}},[b?e.renderSlot(o,"addIcon"):e.createVNode(fe,{class:s.is("icon-plus")},{default:()=>[e.createVNode(Ny,null,null)]})]):null,C=e.createVNode("div",{class:[s.e("header"),s.is(t.tabPosition)]},[y,e.createVNode(oZ,{ref:u,currentName:d.value,editable:t.editable,type:t.type,panes:i.value,stretch:t.stretch,onTabClick:h,onTabRemove:g},null)]),k=e.createVNode("div",{class:s.e("content")},[e.renderSlot(o,"default")]);return e.createVNode("div",{class:[s.b(),s.m(t.tabPosition),{[s.m("card")]:t.type==="card",[s.m("border-card")]:t.type==="border-card"}]},[...t.tabPosition!=="bottom"?[C,k]:[k,C]])}}}),v2=le({label:{type:String,default:""},name:{type:[String,Number]},closable:Boolean,disabled:Boolean,lazy:Boolean}),lZ=["id","aria-hidden","aria-labelledby"],V2="ElTabPane",aZ=e.defineComponent({name:V2}),sZ=e.defineComponent({...aZ,props:v2,setup(t){const n=t,o=e.getCurrentInstance(),r=e.useSlots(),l=e.inject(La);l||vt(V2,"usage: ");const a=Q("tab-pane"),s=e.ref(),i=e.computed(()=>n.closable||l.props.closable),c=Tm(()=>{var h;return l.currentName.value===((h=n.name)!=null?h:s.value)}),f=e.ref(c.value),u=e.computed(()=>{var h;return(h=n.name)!=null?h:s.value}),d=Tm(()=>!n.lazy||f.value||c.value);e.watch(c,h=>{h&&(f.value=!0)});const p=e.reactive({uid:o.uid,slots:r,props:n,paneName:u,active:c,index:s,isClosable:i});return e.onMounted(()=>{l.registerPane(p)}),e.onUnmounted(()=>{l.unregisterPane(p.uid)}),(h,g)=>e.unref(d)?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:0,id:`pane-${e.unref(u)}`,class:e.normalizeClass(e.unref(a).b()),role:"tabpanel","aria-hidden":!e.unref(c),"aria-labelledby":`tab-${e.unref(u)}`},[e.renderSlot(h.$slots,"default")],10,lZ)),[[e.vShow,e.unref(c)]]):e.createCommentVNode("v-if",!0)}});var M2=se(sZ,[["__file","tab-pane.vue"]]);const I2=Me(rZ,{TabPane:M2}),P2=ht(M2),R2=le({type:{type:String,values:["primary","success","info","warning","danger",""],default:""},size:{type:String,values:Wn,default:""},truncated:{type:Boolean},lineClamp:{type:[String,Number]},tag:{type:String,default:"span"}}),iZ=e.defineComponent({name:"ElText"}),cZ=e.defineComponent({...iZ,props:R2,setup(t){const n=t,o=St(),r=Q("text"),l=e.computed(()=>[r.b(),r.m(n.type),r.m(o.value),r.is("truncated",n.truncated),r.is("line-clamp",!$t(n.lineClamp))]);return(a,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.tag),{class:e.normalizeClass(e.unref(l)),style:e.normalizeStyle({"-webkit-line-clamp":a.lineClamp})},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3},8,["class","style"]))}});var dZ=se(cZ,[["__file","text.vue"]]);const O2=Me(dZ),fZ=le({format:{type:String,default:"HH:mm"},modelValue:String,disabled:Boolean,editable:{type:Boolean,default:!0},effect:{type:String,default:"light"},clearable:{type:Boolean,default:!0},size:Vt,placeholder:String,start:{type:String,default:"09:00"},end:{type:String,default:"18:00"},step:{type:String,default:"00:30"},minTime:String,maxTime:String,name:String,prefixIcon:{type:W([String,Object]),default:()=>Sy},clearIcon:{type:W([String,Object]),default:()=>Xo}}),Ao=t=>{const n=(t||"").split(":");if(n.length>=2){let o=Number.parseInt(n[0],10);const r=Number.parseInt(n[1],10),l=t.toUpperCase();return l.includes("AM")&&o===12?o=0:l.includes("PM")&&o!==12&&(o+=12),{hours:o,minutes:r}}return null},Gp=(t,n)=>{const o=Ao(t);if(!o)return-1;const r=Ao(n);if(!r)return-1;const l=o.minutes+o.hours*60,a=r.minutes+r.hours*60;return l===a?0:l>a?1:-1},A2=t=>`${t}`.padStart(2,"0"),Vl=t=>`${A2(t.hours)}:${A2(t.minutes)}`,uZ=(t,n)=>{const o=Ao(t);if(!o)return"";const r=Ao(n);if(!r)return"";const l={hours:o.hours,minutes:o.minutes};return l.minutes+=r.minutes,l.hours+=r.hours,l.hours+=Math.floor(l.minutes/60),l.minutes=l.minutes%60,Vl(l)},pZ=e.defineComponent({name:"ElTimeSelect"}),mZ=e.defineComponent({...pZ,props:fZ,emits:["change","blur","focus","update:modelValue"],setup(t,{expose:n}){const o=t;ve.extend(Qf);const{Option:r}=sr,l=Q("input"),a=e.ref(),s=Yt(),{lang:i}=Ke(),c=e.computed(()=>o.modelValue),f=e.computed(()=>{const y=Ao(o.start);return y?Vl(y):null}),u=e.computed(()=>{const y=Ao(o.end);return y?Vl(y):null}),d=e.computed(()=>{const y=Ao(o.step);return y?Vl(y):null}),p=e.computed(()=>{const y=Ao(o.minTime||"");return y?Vl(y):null}),h=e.computed(()=>{const y=Ao(o.maxTime||"");return y?Vl(y):null}),g=e.computed(()=>{const y=[];if(o.start&&o.end&&o.step){let C=f.value,k;for(;C&&u.value&&Gp(C,u.value)<=0;)k=ve(C,"HH:mm").locale(i.value).format(o.format),y.push({value:k,disabled:Gp(C,p.value||"-1:-1")<=0||Gp(C,h.value||"100:100")>=0}),C=uZ(C,d.value)}return y});return n({blur:()=>{var y,C;(C=(y=a.value)==null?void 0:y.blur)==null||C.call(y)},focus:()=>{var y,C;(C=(y=a.value)==null?void 0:y.focus)==null||C.call(y)}}),(y,C)=>(e.openBlock(),e.createBlock(e.unref(sr),{ref_key:"select",ref:a,"model-value":e.unref(c),disabled:e.unref(s),clearable:y.clearable,"clear-icon":y.clearIcon,size:y.size,effect:y.effect,placeholder:y.placeholder,"default-first-option":"",filterable:y.editable,"onUpdate:modelValue":C[0]||(C[0]=k=>y.$emit("update:modelValue",k)),onChange:C[1]||(C[1]=k=>y.$emit("change",k)),onBlur:C[2]||(C[2]=k=>y.$emit("blur",k)),onFocus:C[3]||(C[3]=k=>y.$emit("focus",k))},{prefix:e.withCtx(()=>[y.prefixIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(l).e("prefix-icon"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.prefixIcon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),k=>(e.openBlock(),e.createBlock(e.unref(r),{key:k.value,label:k.value,value:k.value,disabled:k.disabled},null,8,["label","value","disabled"]))),128))]),_:1},8,["model-value","disabled","clearable","clear-icon","size","effect","placeholder","filterable"]))}});var Ji=se(mZ,[["__file","time-select.vue"]]);Ji.install=t=>{t.component(Ji.name,Ji)};const z2=Ji;var hZ=e.defineComponent({name:"ElTimeline",setup(t,{slots:n}){const o=Q("timeline");return e.provide("timeline",n),()=>e.h("ul",{class:[o.b()]},[e.renderSlot(n,"default")])}});const D2=le({timestamp:{type:String,default:""},hideTimestamp:{type:Boolean,default:!1},center:{type:Boolean,default:!1},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:ot},hollow:{type:Boolean,default:!1}}),gZ=e.defineComponent({name:"ElTimelineItem"}),yZ=e.defineComponent({...gZ,props:D2,setup(t){const n=t,o=Q("timeline-item"),r=e.computed(()=>[o.e("node"),o.em("node",n.size||""),o.em("node",n.type||""),o.is("hollow",n.hollow)]);return(l,a)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass([e.unref(o).b(),{[e.unref(o).e("center")]:l.center}])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("tail"))},null,2),l.$slots.dot?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r)),style:e.normalizeStyle({backgroundColor:l.color})},[l.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(o).e("icon"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.icon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],6)),l.$slots.dot?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(o).e("dot"))},[e.renderSlot(l.$slots,"dot")],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("wrapper"))},[!l.hideTimestamp&&l.placement==="top"?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(o).e("timestamp"),e.unref(o).is("top")])},e.toDisplayString(l.timestamp),3)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("content"))},[e.renderSlot(l.$slots,"default")],2),!l.hideTimestamp&&l.placement==="bottom"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass([e.unref(o).e("timestamp"),e.unref(o).is("bottom")])},e.toDisplayString(l.timestamp),3)):e.createCommentVNode("v-if",!0)],2)],2))}});var L2=se(yZ,[["__file","timeline-item.vue"]]);const x2=Me(hZ,{TimelineItem:L2}),F2=ht(L2),H2=le({nowrap:Boolean});var K2=(t=>(t.top="top",t.bottom="bottom",t.left="left",t.right="right",t))(K2||{});const bZ=Object.values(K2),qp=le({width:{type:Number,default:10},height:{type:Number,default:10},style:{type:W(Object),default:null}}),CZ=le({side:{type:W(String),values:bZ,required:!0}}),wZ=["absolute","fixed"],kZ=["top-start","top-end","top","bottom-start","bottom-end","bottom","left-start","left-end","left","right-start","right-end","right"],Yp=le({ariaLabel:String,arrowPadding:{type:W(Number),default:5},effect:{type:String,default:""},contentClass:String,placement:{type:W(String),values:kZ,default:"bottom"},reference:{type:W(Object),default:null},offset:{type:Number,default:8},strategy:{type:W(String),values:wZ,default:"absolute"},showArrow:{type:Boolean,default:!1}}),Xp=le({delayDuration:{type:Number,default:300},defaultOpen:Boolean,open:{type:Boolean,default:void 0},onOpenChange:{type:W(Function)},"onUpdate:open":{type:W(Function)}}),Ml={type:W(Function)},Zp=le({onBlur:Ml,onClick:Ml,onFocus:Ml,onMouseDown:Ml,onMouseEnter:Ml,onMouseLeave:Ml}),SZ=le({...Xp,...qp,...Zp,...Yp,alwaysOn:Boolean,fullTransition:Boolean,transitionProps:{type:W(Object),default:null},teleported:Boolean,to:{type:W(String),default:"body"}}),Qi=Symbol("tooltipV2"),W2=Symbol("tooltipV2Content"),Jp="tooltip_v2.open",EZ=e.defineComponent({name:"ElTooltipV2Root"}),NZ=e.defineComponent({...EZ,props:Xp,setup(t,{expose:n}){const o=t,r=e.ref(o.defaultOpen),l=e.ref(null),a=e.computed({get:()=>Fz(o.open)?r.value:o.open,set:b=>{var y;r.value=b,(y=o["onUpdate:open"])==null||y.call(o,b)}}),s=e.computed(()=>be(o.delayDuration)&&o.delayDuration>0),{start:i,stop:c}=pr(()=>{a.value=!0},e.computed(()=>o.delayDuration),{immediate:!1}),f=Q("tooltip-v2"),u=rn(),d=()=>{c(),a.value=!0},p=()=>{e.unref(s)?i():d()},h=d,g=()=>{c(),a.value=!1},m=b=>{var y;b&&(document.dispatchEvent(new CustomEvent(Jp)),h()),(y=o.onOpenChange)==null||y.call(o,b)};return e.watch(a,m),e.onMounted(()=>{document.addEventListener(Jp,g)}),e.onBeforeUnmount(()=>{c(),document.removeEventListener(Jp,g)}),e.provide(Qi,{contentId:u,triggerRef:l,ns:f,onClose:g,onDelayOpen:p,onOpen:h}),n({onOpen:h,onClose:g}),(b,y)=>e.renderSlot(b.$slots,"default",{open:e.unref(a)})}});var _Z=se(NZ,[["__file","root.vue"]]);const BZ=e.defineComponent({name:"ElTooltipV2Arrow"}),$Z=e.defineComponent({...BZ,props:{...qp,...CZ},setup(t){const n=t,{ns:o}=e.inject(Qi),{arrowRef:r}=e.inject(W2),l=e.computed(()=>{const{style:a,width:s,height:i}=n,c=o.namespace.value;return{[`--${c}-tooltip-v2-arrow-width`]:`${s}px`,[`--${c}-tooltip-v2-arrow-height`]:`${i}px`,[`--${c}-tooltip-v2-arrow-border-width`]:`${s/2}px`,[`--${c}-tooltip-v2-arrow-cover-width`]:s/2-1,...a||{}}});return(a,s)=>(e.openBlock(),e.createElementBlock("span",{ref_key:"arrowRef",ref:r,style:e.normalizeStyle(e.unref(l)),class:e.normalizeClass(e.unref(o).e("arrow"))},null,6))}});var j2=se($Z,[["__file","arrow.vue"]]);const TZ=le({style:{type:W([String,Object,Array]),default:()=>({})}}),vZ=e.defineComponent({name:"ElVisuallyHidden"}),VZ=e.defineComponent({...vZ,props:TZ,setup(t){const n=t,o=e.computed(()=>[n.style,{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}]);return(r,l)=>(e.openBlock(),e.createElementBlock("span",e.mergeProps(r.$attrs,{style:e.unref(o)}),[e.renderSlot(r.$slots,"default")],16))}});var MZ=se(VZ,[["__file","visual-hidden.vue"]]);const IZ=["data-side"],PZ=e.defineComponent({name:"ElTooltipV2Content"}),RZ=e.defineComponent({...PZ,props:{...Yp,...H2},setup(t){const n=t,{triggerRef:o,contentId:r}=e.inject(Qi),l=e.ref(n.placement),a=e.ref(n.strategy),s=e.ref(null),{referenceRef:i,contentRef:c,middlewareData:f,x:u,y:d,update:p}=Wb({placement:l,strategy:a,middleware:e.computed(()=>{const k=[Jx(n.offset)];return n.showArrow&&k.push(jb({arrowRef:s})),k})}),h=$r().nextZIndex(),g=Q("tooltip-v2"),m=e.computed(()=>l.value.split("-")[0]),b=e.computed(()=>({position:e.unref(a),top:`${e.unref(d)||0}px`,left:`${e.unref(u)||0}px`,zIndex:h})),y=e.computed(()=>{if(!n.showArrow)return{};const{arrow:k}=e.unref(f);return{[`--${g.namespace.value}-tooltip-v2-arrow-x`]:`${k==null?void 0:k.x}px`||"",[`--${g.namespace.value}-tooltip-v2-arrow-y`]:`${k==null?void 0:k.y}px`||""}}),C=e.computed(()=>[g.e("content"),g.is("dark",n.effect==="dark"),g.is(e.unref(a)),n.contentClass]);return e.watch(s,()=>p()),e.watch(()=>n.placement,k=>l.value=k),e.onMounted(()=>{e.watch(()=>n.reference||o.value,k=>{i.value=k||void 0},{immediate:!0})}),e.provide(W2,{arrowRef:s}),(k,w)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"contentRef",ref:c,style:e.normalizeStyle(e.unref(b)),"data-tooltip-v2-root":""},[k.nowrap?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",{key:0,"data-side":e.unref(m),class:e.normalizeClass(e.unref(C))},[e.renderSlot(k.$slots,"default",{contentStyle:e.unref(b),contentClass:e.unref(C)}),e.createVNode(e.unref(MZ),{id:e.unref(r),role:"tooltip"},{default:e.withCtx(()=>[k.ariaLabel?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(k.ariaLabel),1)],64)):e.renderSlot(k.$slots,"default",{key:1})]),_:3},8,["id"]),e.renderSlot(k.$slots,"arrow",{style:e.normalizeStyle(e.unref(y)),side:e.unref(m)})],10,IZ))],4))}});var U2=se(RZ,[["__file","content.vue"]]);const OZ=le({setRef:{type:W(Function),required:!0},onlyChild:Boolean});var AZ=e.defineComponent({props:OZ,setup(t,{slots:n}){const o=e.ref(),r=Ms(o,l=>{l?t.setRef(l.nextElementSibling):t.setRef(null)});return()=>{var l;const[a]=((l=n.default)==null?void 0:l.call(n))||[],s=t.onlyChild?dL(a.children):a.children;return e.createVNode(e.Fragment,{ref:r},[s])}}});const zZ=e.defineComponent({name:"ElTooltipV2Trigger"}),DZ=e.defineComponent({...zZ,props:{...H2,...Zp},setup(t){const n=t,{onClose:o,onOpen:r,onDelayOpen:l,triggerRef:a,contentId:s}=e.inject(Qi);let i=!1;const c=C=>{a.value=C},f=()=>{i=!1},u=pt(n.onMouseEnter,l),d=pt(n.onMouseLeave,o),p=pt(n.onMouseDown,()=>{o(),i=!0,document.addEventListener("mouseup",f,{once:!0})}),h=pt(n.onFocus,()=>{i||r()}),g=pt(n.onBlur,o),m=pt(n.onClick,C=>{C.detail===0&&o()}),b={blur:g,click:m,focus:h,mousedown:p,mouseenter:u,mouseleave:d},y=(C,k,w)=>{C&&Object.entries(k).forEach(([E,S])=>{C[w](E,S)})};return e.watch(a,(C,k)=>{y(C,b,"addEventListener"),y(k,b,"removeEventListener"),C&&C.setAttribute("aria-describedby",s.value)}),e.onBeforeUnmount(()=>{y(a.value,b,"removeEventListener"),document.removeEventListener("mouseup",f)}),(C,k)=>C.nowrap?(e.openBlock(),e.createBlock(e.unref(AZ),{key:0,"set-ref":c,"only-child":""},{default:e.withCtx(()=>[e.renderSlot(C.$slots,"default")]),_:3})):(e.openBlock(),e.createElementBlock("button",e.mergeProps({key:1,ref_key:"triggerRef",ref:a},C.$attrs),[e.renderSlot(C.$slots,"default")],16))}});var LZ=se(DZ,[["__file","trigger.vue"]]);const xZ=e.defineComponent({name:"ElTooltipV2"}),FZ=e.defineComponent({...xZ,props:SZ,setup(t){const n=t,o=e.toRefs(n),r=e.reactive(ro(o,Object.keys(qp))),l=e.reactive(ro(o,Object.keys(Yp))),a=e.reactive(ro(o,Object.keys(Xp))),s=e.reactive(ro(o,Object.keys(Zp)));return(i,c)=>(e.openBlock(),e.createBlock(_Z,e.normalizeProps(e.guardReactiveProps(a)),{default:e.withCtx(({open:f})=>[e.createVNode(LZ,e.mergeProps(s,{nowrap:""}),{default:e.withCtx(()=>[e.renderSlot(i.$slots,"trigger")]),_:3},16),(e.openBlock(),e.createBlock(e.Teleport,{to:i.to,disabled:!i.teleported},[i.fullTransition?(e.openBlock(),e.createBlock(e.Transition,e.normalizeProps(e.mergeProps({key:0},i.transitionProps)),{default:e.withCtx(()=>[i.alwaysOn||f?(e.openBlock(),e.createBlock(U2,e.normalizeProps(e.mergeProps({key:0},l)),{arrow:e.withCtx(({style:u,side:d})=>[i.showArrow?(e.openBlock(),e.createBlock(j2,e.mergeProps({key:0},r,{style:u,side:d}),null,16,["style","side"])):e.createCommentVNode("v-if",!0)]),default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},16)):e.createCommentVNode("v-if",!0)]),_:2},1040)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[i.alwaysOn||f?(e.openBlock(),e.createBlock(U2,e.normalizeProps(e.mergeProps({key:0},l)),{arrow:e.withCtx(({style:u,side:d})=>[i.showArrow?(e.openBlock(),e.createBlock(j2,e.mergeProps({key:0},r,{style:u,side:d}),null,16,["style","side"])):e.createCommentVNode("v-if",!0)]),default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},16)):e.createCommentVNode("v-if",!0)],64))],8,["to","disabled"]))]),_:3},16))}});var HZ=se(FZ,[["__file","tooltip.vue"]]);const KZ=Me(HZ),Qp="left-check-change",em="right-check-change",Hr=le({data:{type:W(Array),default:()=>[]},titles:{type:W(Array),default:()=>[]},buttonTexts:{type:W(Array),default:()=>[]},filterPlaceholder:String,filterMethod:{type:W(Function)},leftDefaultChecked:{type:W(Array),default:()=>[]},rightDefaultChecked:{type:W(Array),default:()=>[]},renderContent:{type:W(Function)},modelValue:{type:W(Array),default:()=>[]},format:{type:W(Object),default:()=>({})},filterable:Boolean,props:{type:W(Object),default:()=>ut({label:"label",key:"key",disabled:"disabled"})},targetOrder:{type:String,values:["original","push","unshift"],default:"original"},validateEvent:{type:Boolean,default:!0}}),ec=(t,n)=>[t,n].every(Re)||Re(t)&&wt(n),G2={[at]:(t,n,o)=>[t,o].every(Re)&&["left","right"].includes(n),[Ie]:t=>Re(t),[Qp]:ec,[em]:ec},tm="checked-change",WZ=le({data:Hr.data,optionRender:{type:W(Function)},placeholder:String,title:String,filterable:Boolean,format:Hr.format,filterMethod:Hr.filterMethod,defaultChecked:Hr.leftDefaultChecked,props:Hr.props}),jZ={[tm]:ec},xa=t=>{const n={label:"label",key:"key",disabled:"disabled"};return e.computed(()=>({...n,...t.props}))},UZ=(t,n,o)=>{const r=xa(t),l=e.computed(()=>t.data.filter(u=>qe(t.filterMethod)?t.filterMethod(n.query,u):String(u[r.value.label]||u[r.value.key]).toLowerCase().includes(n.query.toLowerCase()))),a=e.computed(()=>l.value.filter(u=>!u[r.value.disabled])),s=e.computed(()=>{const u=n.checked.length,d=t.data.length,{noChecked:p,hasChecked:h}=t.format;return p&&h?u>0?h.replace(/\${checked}/g,u.toString()).replace(/\${total}/g,d.toString()):p.replace(/\${total}/g,d.toString()):`${u}/${d}`}),i=e.computed(()=>{const u=n.checked.length;return u>0&&u{const u=a.value.map(d=>d[r.value.key]);n.allChecked=u.length>0&&u.every(d=>n.checked.includes(d))},f=u=>{n.checked=u?a.value.map(d=>d[r.value.key]):[]};return e.watch(()=>n.checked,(u,d)=>{if(c(),n.checkChangeByUser){const p=u.concat(d).filter(h=>!u.includes(h)||!d.includes(h));o(tm,u,p)}else o(tm,u),n.checkChangeByUser=!0}),e.watch(a,()=>{c()}),e.watch(()=>t.data,()=>{const u=[],d=l.value.map(p=>p[r.value.key]);n.checked.forEach(p=>{d.includes(p)&&u.push(p)}),n.checkChangeByUser=!1,n.checked=u}),e.watch(()=>t.defaultChecked,(u,d)=>{if(d&&u.length===d.length&&u.every(g=>d.includes(g)))return;const p=[],h=a.value.map(g=>g[r.value.key]);u.forEach(g=>{h.includes(g)&&p.push(g)}),n.checkChangeByUser=!1,n.checked=p},{immediate:!0}),{filteredData:l,checkableData:a,checkedSummary:s,isIndeterminate:i,updateAllChecked:c,handleAllCheckedChange:f}},GZ=(t,n)=>({onSourceCheckedChange:(l,a)=>{t.leftChecked=l,a&&n(Qp,l,a)},onTargetCheckedChange:(l,a)=>{t.rightChecked=l,a&&n(em,l,a)}}),qZ=t=>{const n=xa(t),o=e.computed(()=>t.data.reduce((a,s)=>(a[s[n.value.key]]=s)&&a,{})),r=e.computed(()=>t.data.filter(a=>!t.modelValue.includes(a[n.value.key]))),l=e.computed(()=>t.targetOrder==="original"?t.data.filter(a=>t.modelValue.includes(a[n.value.key])):t.modelValue.reduce((a,s)=>{const i=o.value[s];return i&&a.push(i),a},[]));return{sourceData:r,targetData:l}},YZ=(t,n,o)=>{const r=xa(t),l=(i,c,f)=>{o(Ie,i),o(at,i,c,f)};return{addToLeft:()=>{const i=t.modelValue.slice();n.rightChecked.forEach(c=>{const f=i.indexOf(c);f>-1&&i.splice(f,1)}),l(i,"left",n.rightChecked)},addToRight:()=>{let i=t.modelValue.slice();const c=t.data.filter(f=>{const u=f[r.value.key];return n.leftChecked.includes(u)&&!t.modelValue.includes(u)}).map(f=>f[r.value.key]);i=t.targetOrder==="unshift"?c.concat(i):i.concat(c),t.targetOrder==="original"&&(i=t.data.filter(f=>i.includes(f[r.value.key])).map(f=>f[r.value.key])),l(i,"right",n.leftChecked)}}},XZ=e.defineComponent({name:"ElTransferPanel"}),ZZ=e.defineComponent({...XZ,props:WZ,emits:jZ,setup(t,{expose:n,emit:o}){const r=t,l=e.useSlots(),a=({option:k})=>k,{t:s}=Ke(),i=Q("transfer"),c=e.reactive({checked:[],allChecked:!1,query:"",checkChangeByUser:!0}),f=xa(r),{filteredData:u,checkedSummary:d,isIndeterminate:p,handleAllCheckedChange:h}=UZ(r,c,o),g=e.computed(()=>!Vn(c.query)&&Vn(u.value)),m=e.computed(()=>!Vn(l.default()[0].children)),{checked:b,allChecked:y,query:C}=e.toRefs(c);return n({query:C}),(k,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(i).b("panel"))},[e.createElementVNode("p",{class:e.normalizeClass(e.unref(i).be("panel","header"))},[e.createVNode(e.unref(En),{modelValue:e.unref(y),"onUpdate:modelValue":w[0]||(w[0]=E=>e.isRef(y)?y.value=E:null),indeterminate:e.unref(p),"validate-event":!1,onChange:e.unref(h)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.title)+" ",1),e.createElementVNode("span",null,e.toDisplayString(e.unref(d)),1)]),_:1},8,["modelValue","indeterminate","onChange"])],2),e.createElementVNode("div",{class:e.normalizeClass([e.unref(i).be("panel","body"),e.unref(i).is("with-footer",e.unref(m))])},[k.filterable?(e.openBlock(),e.createBlock(e.unref(Ft),{key:0,modelValue:e.unref(C),"onUpdate:modelValue":w[1]||(w[1]=E=>e.isRef(C)?C.value=E:null),class:e.normalizeClass(e.unref(i).be("panel","filter")),size:"default",placeholder:k.placeholder,"prefix-icon":e.unref(KD),clearable:"","validate-event":!1},null,8,["modelValue","class","placeholder","prefix-icon"])):e.createCommentVNode("v-if",!0),e.withDirectives(e.createVNode(e.unref(Su),{modelValue:e.unref(b),"onUpdate:modelValue":w[2]||(w[2]=E=>e.isRef(b)?b.value=E:null),"validate-event":!1,class:e.normalizeClass([e.unref(i).is("filterable",k.filterable),e.unref(i).be("panel","list")])},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(u),E=>(e.openBlock(),e.createBlock(e.unref(En),{key:E[e.unref(f).key],class:e.normalizeClass(e.unref(i).be("panel","item")),label:E[e.unref(f).key],disabled:E[e.unref(f).disabled],"validate-event":!1},{default:e.withCtx(()=>{var S;return[e.createVNode(a,{option:(S=k.optionRender)==null?void 0:S.call(k,E)},null,8,["option"])]}),_:2},1032,["class","label","disabled"]))),128))]),_:1},8,["modelValue","class"]),[[e.vShow,!e.unref(g)&&!e.unref(Vn)(k.data)]]),e.withDirectives(e.createElementVNode("p",{class:e.normalizeClass(e.unref(i).be("panel","empty"))},e.toDisplayString(e.unref(g)?e.unref(s)("el.transfer.noMatch"):e.unref(s)("el.transfer.noData")),3),[[e.vShow,e.unref(g)||e.unref(Vn)(k.data)]])],2),e.unref(m)?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(e.unref(i).be("panel","footer"))},[e.renderSlot(k.$slots,"default")],2)):e.createCommentVNode("v-if",!0)],2))}});var q2=se(ZZ,[["__file","transfer-panel.vue"]]);const JZ={key:0},QZ={key:0},eJ=e.defineComponent({name:"ElTransfer"}),tJ=e.defineComponent({...eJ,props:Hr,emits:G2,setup(t,{expose:n,emit:o}){const r=t,l=e.useSlots(),{t:a}=Ke(),s=Q("transfer"),{formItem:i}=Xt(),c=e.reactive({leftChecked:[],rightChecked:[]}),f=xa(r),{sourceData:u,targetData:d}=qZ(r),{onSourceCheckedChange:p,onTargetCheckedChange:h}=GZ(c,o),{addToLeft:g,addToRight:m}=YZ(r,c,o),b=e.ref(),y=e.ref(),C=B=>{switch(B){case"left":b.value.query="";break;case"right":y.value.query="";break}},k=e.computed(()=>r.buttonTexts.length===2),w=e.computed(()=>r.titles[0]||a("el.transfer.titles.0")),E=e.computed(()=>r.titles[1]||a("el.transfer.titles.1")),S=e.computed(()=>r.filterPlaceholder||a("el.transfer.filterPlaceholder"));e.watch(()=>r.modelValue,()=>{var B;r.validateEvent&&((B=i==null?void 0:i.validate)==null||B.call(i,"change").catch(M=>void 0))});const _=e.computed(()=>B=>r.renderContent?r.renderContent(e.h,B):l.default?l.default({option:B}):e.h("span",B[f.value.label]||B[f.value.key]));return n({clearQuery:C,leftPanel:b,rightPanel:y}),(B,M)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(s).b())},[e.createVNode(q2,{ref_key:"leftPanel",ref:b,data:e.unref(u),"option-render":e.unref(_),placeholder:e.unref(S),title:e.unref(w),filterable:B.filterable,format:B.format,"filter-method":B.filterMethod,"default-checked":B.leftDefaultChecked,props:r.props,onCheckedChange:e.unref(p)},{default:e.withCtx(()=>[e.renderSlot(B.$slots,"left-footer")]),_:3},8,["data","option-render","placeholder","title","filterable","format","filter-method","default-checked","props","onCheckedChange"]),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).e("buttons"))},[e.createVNode(e.unref(At),{type:"primary",class:e.normalizeClass([e.unref(s).e("button"),e.unref(s).is("with-texts",e.unref(k))]),disabled:e.unref(Vn)(c.rightChecked),onClick:e.unref(g)},{default:e.withCtx(()=>[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Yo))]),_:1}),e.unref($t)(B.buttonTexts[0])?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("span",JZ,e.toDisplayString(B.buttonTexts[0]),1))]),_:1},8,["class","disabled","onClick"]),e.createVNode(e.unref(At),{type:"primary",class:e.normalizeClass([e.unref(s).e("button"),e.unref(s).is("with-texts",e.unref(k))]),disabled:e.unref(Vn)(c.leftChecked),onClick:e.unref(m)},{default:e.withCtx(()=>[e.unref($t)(B.buttonTexts[1])?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("span",QZ,e.toDisplayString(B.buttonTexts[1]),1)),e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})]),_:1},8,["class","disabled","onClick"])],2),e.createVNode(q2,{ref_key:"rightPanel",ref:y,data:e.unref(d),"option-render":e.unref(_),placeholder:e.unref(S),filterable:B.filterable,format:B.format,"filter-method":B.filterMethod,title:e.unref(E),"default-checked":B.rightDefaultChecked,props:r.props,onCheckedChange:e.unref(h)},{default:e.withCtx(()=>[e.renderSlot(B.$slots,"right-footer")]),_:3},8,["data","option-render","placeholder","filterable","format","filter-method","title","default-checked","props","onCheckedChange"])],2))}});var nJ=se(tJ,[["__file","transfer.vue"]]);const Y2=Me(nJ),Il="$treeNodeId",X2=function(t,n){!n||n[Il]||Object.defineProperty(n,Il,{value:t.id,enumerable:!1,configurable:!1,writable:!1})},nm=function(t,n){return t?n[t]:n[Il]},om=(t,n,o)=>{const r=t.value.currentNode;o();const l=t.value.currentNode;r!==l&&n("current-change",l?l.data:null,l)},rm=t=>{let n=!0,o=!0,r=!0;for(let l=0,a=t.length;l0&&n.lazy&&n.defaultExpandAll&&this.expand(),Array.isArray(this.data)||X2(this,this.data),!this.data)return;const r=n.defaultExpandedKeys,l=n.key;l&&r&&r.includes(this.key)&&this.expand(null,n.autoExpandParent),l&&n.currentNodeKey!==void 0&&this.key===n.currentNodeKey&&(n.currentNode=this,n.currentNode.isCurrent=!0),n.lazy&&n._initDefaultCheckedNode(this),this.updateLeafState(),this.parent&&(this.level===1||this.parent.expanded===!0)&&(this.canFocus=!0)}setData(n){Array.isArray(n)||X2(this,n),this.data=n,this.childNodes=[];let o;this.level===0&&Array.isArray(this.data)?o=this.data:o=nc(this,"children")||[];for(let r=0,l=o.length;r-1)return n.childNodes[o+1]}return null}get previousSibling(){const n=this.parent;if(n){const o=n.childNodes.indexOf(this);if(o>-1)return o>0?n.childNodes[o-1]:null}return null}contains(n,o=!0){return(this.childNodes||[]).some(r=>r===n||o&&r.contains(n))}remove(){const n=this.parent;n&&n.removeChild(this)}insertChild(n,o,r){if(!n)throw new Error("InsertChild error: child is required.");if(!(n instanceof Fa)){if(!r){const l=this.getChildren(!0);l.includes(n.data)||(typeof o=="undefined"||o<0?l.push(n.data):l.splice(o,0,n.data))}Object.assign(n,{parent:this,store:this.store}),n=e.reactive(new Fa(n)),n instanceof Fa&&n.initialize()}n.level=this.level+1,typeof o=="undefined"||o<0?this.childNodes.push(n):this.childNodes.splice(o,0,n),this.updateLeafState()}insertBefore(n,o){let r;o&&(r=this.childNodes.indexOf(o)),this.insertChild(n,r)}insertAfter(n,o){let r;o&&(r=this.childNodes.indexOf(o),r!==-1&&(r+=1)),this.insertChild(n,r)}removeChild(n){const o=this.getChildren()||[],r=o.indexOf(n.data);r>-1&&o.splice(r,1);const l=this.childNodes.indexOf(n);l>-1&&(this.store&&this.store.deregisterNode(n),n.parent=null,this.childNodes.splice(l,1)),this.updateLeafState()}removeChildByData(n){let o=null;for(let r=0;r{if(o){let l=this.parent;for(;l.level>0;)l.expanded=!0,l=l.parent}this.expanded=!0,n&&n(),this.childNodes.forEach(l=>{l.canFocus=!0})};this.shouldLoadData()?this.loadData(l=>{Array.isArray(l)&&(this.checked?this.setChecked(!0,!0):this.store.checkStrictly||tc(this),r())}):r()}doCreateChildren(n,o={}){n.forEach(r=>{this.insertChild(Object.assign({data:r},o),void 0,!0)})}collapse(){this.expanded=!1,this.childNodes.forEach(n=>{n.canFocus=!1})}shouldLoadData(){return this.store.lazy===!0&&this.store.load&&!this.loaded}updateLeafState(){if(this.store.lazy===!0&&this.loaded!==!0&&typeof this.isLeafByUser!="undefined"){this.isLeaf=this.isLeafByUser;return}const n=this.childNodes;if(!this.store.lazy||this.store.lazy===!0&&this.loaded===!0){this.isLeaf=!n||n.length===0;return}this.isLeaf=!1}setChecked(n,o,r,l){if(this.indeterminate=n==="half",this.checked=n===!0,this.store.checkStrictly)return;if(!(this.shouldLoadData()&&!this.store.checkDescendants)){const{all:s,allWithoutDisable:i}=rm(this.childNodes);!this.isLeaf&&!s&&i&&(this.checked=!1,n=!1);const c=()=>{if(o){const f=this.childNodes;for(let p=0,h=f.length;p{c(),tc(this)},{checked:n!==!1});return}else c()}const a=this.parent;!a||a.level===0||r||tc(a)}getChildren(n=!1){if(this.level===0)return this.data;const o=this.data;if(!o)return null;const r=this.store.props;let l="children";return r&&(l=r.children||"children"),o[l]===void 0&&(o[l]=null),n&&!o[l]&&(o[l]=[]),o[l]}updateChildren(){const n=this.getChildren()||[],o=this.childNodes.map(a=>a.data),r={},l=[];n.forEach((a,s)=>{const i=a[Il];!!i&&o.findIndex(f=>f[Il]===i)>=0?r[i]={index:s,data:a}:l.push({index:s,data:a})}),this.store.lazy||o.forEach(a=>{r[a[Il]]||this.removeChildByData(a)}),l.forEach(({index:a,data:s})=>{this.insertChild({data:s},a)}),this.updateLeafState()}loadData(n,o={}){if(this.store.lazy===!0&&this.store.load&&!this.loaded&&(!this.loading||Object.keys(o).length)){this.loading=!0;const r=l=>{this.childNodes=[],this.doCreateChildren(l,o),this.loaded=!0,this.loading=!1,this.updateLeafState(),n&&n.call(this,l)};this.store.load(this,r)}else n&&n.call(this)}}var lm=Fa;class rJ{constructor(n){this.currentNode=null,this.currentNodeKey=null;for(const o in n)Lt(n,o)&&(this[o]=n[o]);this.nodesMap={}}initialize(){if(this.root=new lm({data:this.data,store:this}),this.root.initialize(),this.lazy&&this.load){const n=this.load;n(this.root,o=>{this.root.doCreateChildren(o),this._initDefaultCheckedNodes()})}else this._initDefaultCheckedNodes()}filter(n){const o=this.filterNodeMethod,r=this.lazy,l=function(a){const s=a.root?a.root.childNodes:a.childNodes;if(s.forEach(i=>{i.visible=o.call(i,n,i.data,i),l(i)}),!a.visible&&s.length){let i=!0;i=!s.some(c=>c.visible),a.root?a.root.visible=i===!1:a.visible=i===!1}!n||a.visible&&!a.isLeaf&&!r&&a.expand()};l(this)}setData(n){n!==this.root.data?(this.root.setData(n),this._initDefaultCheckedNodes()):this.root.updateChildren()}getNode(n){if(n instanceof lm)return n;const o=nt(n)?nm(this.key,n):n;return this.nodesMap[o]||null}insertBefore(n,o){const r=this.getNode(o);r.parent.insertBefore({data:n},r)}insertAfter(n,o){const r=this.getNode(o);r.parent.insertAfter({data:n},r)}remove(n){const o=this.getNode(n);o&&o.parent&&(o===this.currentNode&&(this.currentNode=null),o.parent.removeChild(o))}append(n,o){const r=o?this.getNode(o):this.root;r&&r.insertChild({data:n})}_initDefaultCheckedNodes(){const n=this.defaultCheckedKeys||[],o=this.nodesMap;n.forEach(r=>{const l=o[r];l&&l.setChecked(!0,!this.checkStrictly)})}_initDefaultCheckedNode(n){(this.defaultCheckedKeys||[]).includes(n.key)&&n.setChecked(!0,!this.checkStrictly)}setDefaultCheckedKey(n){n!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=n,this._initDefaultCheckedNodes())}registerNode(n){const o=this.key;!n||!n.data||(o?n.key!==void 0&&(this.nodesMap[n.key]=n):this.nodesMap[n.id]=n)}deregisterNode(n){!this.key||!n||!n.data||(n.childNodes.forEach(r=>{this.deregisterNode(r)}),delete this.nodesMap[n.key])}getCheckedNodes(n=!1,o=!1){const r=[],l=function(a){(a.root?a.root.childNodes:a.childNodes).forEach(i=>{(i.checked||o&&i.indeterminate)&&(!n||n&&i.isLeaf)&&r.push(i.data),l(i)})};return l(this),r}getCheckedKeys(n=!1){return this.getCheckedNodes(n).map(o=>(o||{})[this.key])}getHalfCheckedNodes(){const n=[],o=function(r){(r.root?r.root.childNodes:r.childNodes).forEach(a=>{a.indeterminate&&n.push(a.data),o(a)})};return o(this),n}getHalfCheckedKeys(){return this.getHalfCheckedNodes().map(n=>(n||{})[this.key])}_getAllNodes(){const n=[],o=this.nodesMap;for(const r in o)Lt(o,r)&&n.push(o[r]);return n}updateChildren(n,o){const r=this.nodesMap[n];if(!r)return;const l=r.childNodes;for(let a=l.length-1;a>=0;a--){const s=l[a];this.remove(s.data)}for(let a=0,s=o.length;ac.level-i.level),a=Object.create(null),s=Object.keys(r);l.forEach(i=>i.setChecked(!1,!1));for(let i=0,c=l.length;i0;)a[p.data[n]]=!0,p=p.parent;if(f.isLeaf||this.checkStrictly){f.setChecked(!0,!1);continue}if(f.setChecked(!0,!0),o){f.setChecked(!1,!1);const h=function(g){g.childNodes.forEach(b=>{b.isLeaf||b.setChecked(!1,!1),h(b)})};h(f)}}}setCheckedNodes(n,o=!1){const r=this.key,l={};n.forEach(a=>{l[(a||{})[r]]=!0}),this._setCheckedKeys(r,o,l)}setCheckedKeys(n,o=!1){this.defaultCheckedKeys=n;const r=this.key,l={};n.forEach(a=>{l[a]=!0}),this._setCheckedKeys(r,o,l)}setDefaultExpandedKeys(n){n=n||[],this.defaultExpandedKeys=n,n.forEach(o=>{const r=this.getNode(o);r&&r.expand(null,this.autoExpandParent)})}setChecked(n,o,r){const l=this.getNode(n);l&&l.setChecked(!!o,r)}getCurrentNode(){return this.currentNode}setCurrentNode(n){const o=this.currentNode;o&&(o.isCurrent=!1),this.currentNode=n,this.currentNode.isCurrent=!0}setUserCurrentNode(n,o=!0){const r=n[this.key],l=this.nodesMap[r];this.setCurrentNode(l),o&&this.currentNode.level>1&&this.currentNode.parent.expand(null,!0)}setCurrentNodeKey(n,o=!0){if(n==null){this.currentNode&&(this.currentNode.isCurrent=!1),this.currentNode=null;return}const r=this.getNode(n);r&&(this.setCurrentNode(r),o&&this.currentNode.level>1&&this.currentNode.parent.expand(null,!0))}}const lJ=e.defineComponent({name:"ElTreeNodeContent",props:{node:{type:Object,required:!0},renderContent:Function},setup(t){const n=Q("tree"),o=e.inject("NodeInstance"),r=e.inject("RootTree");return()=>{const l=t.node,{data:a,store:s}=l;return t.renderContent?t.renderContent(e.h,{_self:o,node:l,data:a,store:s}):e.renderSlot(r.ctx.slots,"default",{node:l,data:a},()=>[e.h("span",{class:n.be("node","label")},[l.label])])}}});var aJ=se(lJ,[["__file","tree-node-content.vue"]]);function Z2(t){const n=e.inject("TreeNodeMap",null),o={treeNodeExpand:r=>{t.node!==r&&t.node.collapse()},children:[]};return n&&n.children.push(o),e.provide("TreeNodeMap",o),{broadcastExpanded:r=>{if(!!t.accordion)for(const l of o.children)l.treeNodeExpand(r)}}}const J2=Symbol("dragEvents");function sJ({props:t,ctx:n,el$:o,dropIndicator$:r,store:l}){const a=Q("tree"),s=e.ref({showDropIndicator:!1,draggingNode:null,dropNode:null,allowDrop:!0,dropType:null}),i=({event:u,treeNode:d})=>{if(typeof t.allowDrag=="function"&&!t.allowDrag(d.node))return u.preventDefault(),!1;u.dataTransfer.effectAllowed="move";try{u.dataTransfer.setData("text/plain","")}catch(p){}s.value.draggingNode=d,n.emit("node-drag-start",d.node,u)},c=({event:u,treeNode:d})=>{const p=d,h=s.value.dropNode;h&&h.node.id!==p.node.id&&un(h.$el,a.is("drop-inner"));const g=s.value.draggingNode;if(!g||!p)return;let m=!0,b=!0,y=!0,C=!0;typeof t.allowDrop=="function"&&(m=t.allowDrop(g.node,p.node,"prev"),C=b=t.allowDrop(g.node,p.node,"inner"),y=t.allowDrop(g.node,p.node,"next")),u.dataTransfer.dropEffect=b||m||y?"move":"none",(m||b||y)&&(h==null?void 0:h.node.id)!==p.node.id&&(h&&n.emit("node-drag-leave",g.node,h.node,u),n.emit("node-drag-enter",g.node,p.node,u)),(m||b||y)&&(s.value.dropNode=p),p.node.nextSibling===g.node&&(y=!1),p.node.previousSibling===g.node&&(m=!1),p.node.contains(g.node,!1)&&(b=!1),(g.node===p.node||g.node.contains(p.node))&&(m=!1,b=!1,y=!1);const k=p.$el.querySelector(`.${a.be("node","content")}`).getBoundingClientRect(),w=o.value.getBoundingClientRect();let E;const S=m?b?.25:y?.45:1:-1,_=y?b?.75:m?.55:0:1;let B=-9999;const M=u.clientY-k.top;Mk.height*_?E="after":b?E="inner":E="none";const P=p.$el.querySelector(`.${a.be("node","expand-icon")}`).getBoundingClientRect(),T=r.value;E==="before"?B=P.top-w.top:E==="after"&&(B=P.bottom-w.top),T.style.top=`${B}px`,T.style.left=`${P.right-w.left}px`,E==="inner"?so(p.$el,a.is("drop-inner")):un(p.$el,a.is("drop-inner")),s.value.showDropIndicator=E==="before"||E==="after",s.value.allowDrop=s.value.showDropIndicator||C,s.value.dropType=E,n.emit("node-drag-over",g.node,p.node,u)},f=u=>{const{draggingNode:d,dropType:p,dropNode:h}=s.value;if(u.preventDefault(),u.dataTransfer.dropEffect="move",d&&h){const g={data:d.node.data};p!=="none"&&d.node.remove(),p==="before"?h.node.parent.insertBefore(g,h.node):p==="after"?h.node.parent.insertAfter(g,h.node):p==="inner"&&h.node.insertChild(g),p!=="none"&&l.value.registerNode(g),un(h.$el,a.is("drop-inner")),n.emit("node-drag-end",d.node,h.node,p,u),p!=="none"&&n.emit("node-drop",d.node,h.node,p,u)}d&&!h&&n.emit("node-drag-end",d.node,null,p,u),s.value.showDropIndicator=!1,s.value.draggingNode=null,s.value.dropNode=null,s.value.allowDrop=!0};return e.provide(J2,{treeNodeDragStart:i,treeNodeDragOver:c,treeNodeDragEnd:f}),{dragState:s}}const iJ=e.defineComponent({name:"ElTreeNode",components:{ElCollapseTransition:Vi,ElCheckbox:En,NodeContent:aJ,ElIcon:fe,Loading:Zo},props:{node:{type:lm,default:()=>({})},props:{type:Object,default:()=>({})},accordion:Boolean,renderContent:Function,renderAfterExpand:Boolean,showCheckbox:{type:Boolean,default:!1}},emits:["node-expand"],setup(t,n){const o=Q("tree"),{broadcastExpanded:r}=Z2(t),l=e.inject("RootTree"),a=e.ref(!1),s=e.ref(!1),i=e.ref(null),c=e.ref(null),f=e.ref(null),u=e.inject(J2),d=e.getCurrentInstance();e.provide("NodeInstance",d),t.node.expanded&&(a.value=!0,s.value=!0);const p=l.props.props.children||"children";e.watch(()=>{const M=t.node.data[p];return M&&[...M]},()=>{t.node.updateChildren()}),e.watch(()=>t.node.indeterminate,M=>{m(t.node.checked,M)}),e.watch(()=>t.node.checked,M=>{m(M,t.node.indeterminate)}),e.watch(()=>t.node.expanded,M=>{e.nextTick(()=>a.value=M),M&&(s.value=!0)});const h=M=>nm(l.props.nodeKey,M.data),g=M=>{const P=t.props.class;if(!P)return{};let T;if(qe(P)){const{data:I}=M;T=P(I,M)}else T=P;return De(T)?{[T]:!0}:T},m=(M,P)=>{(i.value!==M||c.value!==P)&&l.ctx.emit("check-change",t.node.data,M,P),i.value=M,c.value=P},b=M=>{om(l.store,l.ctx.emit,()=>l.store.value.setCurrentNode(t.node)),l.currentNode.value=t.node,l.props.expandOnClickNode&&C(),l.props.checkOnClickNode&&!t.node.disabled&&k(null,{target:{checked:!t.node.checked}}),l.ctx.emit("node-click",t.node.data,t.node,d,M)},y=M=>{l.instance.vnode.props.onNodeContextmenu&&(M.stopPropagation(),M.preventDefault()),l.ctx.emit("node-contextmenu",M,t.node.data,t.node,d)},C=()=>{t.node.isLeaf||(a.value?(l.ctx.emit("node-collapse",t.node.data,t.node,d),t.node.collapse()):(t.node.expand(),n.emit("node-expand",t.node.data,t.node,d)))},k=(M,P)=>{t.node.setChecked(P.target.checked,!l.props.checkStrictly),e.nextTick(()=>{const T=l.store.value;l.ctx.emit("check",t.node.data,{checkedNodes:T.getCheckedNodes(),checkedKeys:T.getCheckedKeys(),halfCheckedNodes:T.getHalfCheckedNodes(),halfCheckedKeys:T.getHalfCheckedKeys()})})};return{ns:o,node$:f,tree:l,expanded:a,childNodeRendered:s,oldChecked:i,oldIndeterminate:c,getNodeKey:h,getNodeClass:g,handleSelectChange:m,handleClick:b,handleContextMenu:y,handleExpandIconClick:C,handleCheckChange:k,handleChildNodeExpand:(M,P,T)=>{r(P),l.ctx.emit("node-expand",M,P,T)},handleDragStart:M=>{!l.props.draggable||u.treeNodeDragStart({event:M,treeNode:t})},handleDragOver:M=>{M.preventDefault(),l.props.draggable&&u.treeNodeDragOver({event:M,treeNode:{$el:f.value,node:t.node}})},handleDrop:M=>{M.preventDefault()},handleDragEnd:M=>{!l.props.draggable||u.treeNodeDragEnd(M)},CaretRight:ky}}}),cJ=["aria-expanded","aria-disabled","aria-checked","draggable","data-key"],dJ=["aria-expanded"];function fJ(t,n,o,r,l,a){const s=e.resolveComponent("el-icon"),i=e.resolveComponent("el-checkbox"),c=e.resolveComponent("loading"),f=e.resolveComponent("node-content"),u=e.resolveComponent("el-tree-node"),d=e.resolveComponent("el-collapse-transition");return e.withDirectives((e.openBlock(),e.createElementBlock("div",{ref:"node$",class:e.normalizeClass([t.ns.b("node"),t.ns.is("expanded",t.expanded),t.ns.is("current",t.node.isCurrent),t.ns.is("hidden",!t.node.visible),t.ns.is("focusable",!t.node.disabled),t.ns.is("checked",!t.node.disabled&&t.node.checked),t.getNodeClass(t.node)]),role:"treeitem",tabindex:"-1","aria-expanded":t.expanded,"aria-disabled":t.node.disabled,"aria-checked":t.node.checked,draggable:t.tree.props.draggable,"data-key":t.getNodeKey(t.node),onClick:n[1]||(n[1]=e.withModifiers((...p)=>t.handleClick&&t.handleClick(...p),["stop"])),onContextmenu:n[2]||(n[2]=(...p)=>t.handleContextMenu&&t.handleContextMenu(...p)),onDragstart:n[3]||(n[3]=e.withModifiers((...p)=>t.handleDragStart&&t.handleDragStart(...p),["stop"])),onDragover:n[4]||(n[4]=e.withModifiers((...p)=>t.handleDragOver&&t.handleDragOver(...p),["stop"])),onDragend:n[5]||(n[5]=e.withModifiers((...p)=>t.handleDragEnd&&t.handleDragEnd(...p),["stop"])),onDrop:n[6]||(n[6]=e.withModifiers((...p)=>t.handleDrop&&t.handleDrop(...p),["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.be("node","content")),style:e.normalizeStyle({paddingLeft:(t.node.level-1)*t.tree.props.indent+"px"})},[t.tree.props.icon||t.CaretRight?(e.openBlock(),e.createBlock(s,{key:0,class:e.normalizeClass([t.ns.be("node","expand-icon"),t.ns.is("leaf",t.node.isLeaf),{expanded:!t.node.isLeaf&&t.expanded}]),onClick:e.withModifiers(t.handleExpandIconClick,["stop"])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tree.props.icon||t.CaretRight)))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0),t.showCheckbox?(e.openBlock(),e.createBlock(i,{key:1,"model-value":t.node.checked,indeterminate:t.node.indeterminate,disabled:!!t.node.disabled,onClick:n[0]||(n[0]=e.withModifiers(()=>{},["stop"])),onChange:t.handleCheckChange},null,8,["model-value","indeterminate","disabled","onChange"])):e.createCommentVNode("v-if",!0),t.node.loading?(e.openBlock(),e.createBlock(s,{key:2,class:e.normalizeClass([t.ns.be("node","loading-icon"),t.ns.is("loading")])},{default:e.withCtx(()=>[e.createVNode(c)]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.createVNode(f,{node:t.node,"render-content":t.renderContent},null,8,["node","render-content"])],6),e.createVNode(d,null,{default:e.withCtx(()=>[!t.renderAfterExpand||t.childNodeRendered?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(t.ns.be("node","children")),role:"group","aria-expanded":t.expanded},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.childNodes,p=>(e.openBlock(),e.createBlock(u,{key:t.getNodeKey(p),"render-content":t.renderContent,"render-after-expand":t.renderAfterExpand,"show-checkbox":t.showCheckbox,node:p,accordion:t.accordion,props:t.props,onNodeExpand:t.handleChildNodeExpand},null,8,["render-content","render-after-expand","show-checkbox","node","accordion","props","onNodeExpand"]))),128))],10,dJ)),[[e.vShow,t.expanded]]):e.createCommentVNode("v-if",!0)]),_:1})],42,cJ)),[[e.vShow,t.node.visible]])}var uJ=se(iJ,[["render",fJ],["__file","tree-node.vue"]]);function pJ({el$:t},n){const o=Q("tree"),r=e.shallowRef([]),l=e.shallowRef([]);e.onMounted(()=>{s()}),e.onUpdated(()=>{r.value=Array.from(t.value.querySelectorAll("[role=treeitem]")),l.value=Array.from(t.value.querySelectorAll("input[type=checkbox]"))}),e.watch(l,i=>{i.forEach(c=>{c.setAttribute("tabindex","-1")})}),rt(t,"keydown",i=>{const c=i.target;if(!c.className.includes(o.b("node")))return;const f=i.code;r.value=Array.from(t.value.querySelectorAll(`.${o.is("focusable")}[role=treeitem]`));const u=r.value.indexOf(c);let d;if([pe.up,pe.down].includes(f)){if(i.preventDefault(),f===pe.up){d=u===-1?0:u!==0?u-1:r.value.length-1;const h=d;for(;!n.value.getNode(r.value[d].dataset.key).canFocus;){if(d--,d===h){d=-1;break}d<0&&(d=r.value.length-1)}}else{d=u===-1?0:u=r.value.length&&(d=0)}}d!==-1&&r.value[d].focus()}[pe.left,pe.right].includes(f)&&(i.preventDefault(),c.click());const p=c.querySelector('[type="checkbox"]');[pe.enter,pe.space].includes(f)&&p&&(i.preventDefault(),p.click())});const s=()=>{var i;r.value=Array.from(t.value.querySelectorAll(`.${o.is("focusable")}[role=treeitem]`)),l.value=Array.from(t.value.querySelectorAll("input[type=checkbox]"));const c=t.value.querySelectorAll(`.${o.is("checked")}[role=treeitem]`);if(c.length){c[0].setAttribute("tabindex","0");return}(i=r.value[0])==null||i.setAttribute("tabindex","0")}}const mJ=e.defineComponent({name:"ElTree",components:{ElTreeNode:uJ},props:{data:{type:Array,default:()=>[]},emptyText:{type:String},renderAfterExpand:{type:Boolean,default:!0},nodeKey:String,checkStrictly:Boolean,defaultExpandAll:Boolean,expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkDescendants:{type:Boolean,default:!1},autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:Array,defaultExpandedKeys:Array,currentNodeKey:[String,Number],renderContent:Function,showCheckbox:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},allowDrag:Function,allowDrop:Function,props:{type:Object,default:()=>({children:"children",label:"label",disabled:"disabled"})},lazy:{type:Boolean,default:!1},highlightCurrent:Boolean,load:Function,filterNodeMethod:Function,accordion:Boolean,indent:{type:Number,default:18},icon:{type:ot}},emits:["check-change","current-change","node-click","node-contextmenu","node-collapse","node-expand","check","node-drag-start","node-drag-end","node-drop","node-drag-leave","node-drag-enter","node-drag-over"],setup(t,n){const{t:o}=Ke(),r=Q("tree"),l=e.ref(new rJ({key:t.nodeKey,data:t.data,lazy:t.lazy,props:t.props,load:t.load,currentNodeKey:t.currentNodeKey,checkStrictly:t.checkStrictly,checkDescendants:t.checkDescendants,defaultCheckedKeys:t.defaultCheckedKeys,defaultExpandedKeys:t.defaultExpandedKeys,autoExpandParent:t.autoExpandParent,defaultExpandAll:t.defaultExpandAll,filterNodeMethod:t.filterNodeMethod}));l.value.initialize();const a=e.ref(l.value.root),s=e.ref(null),i=e.ref(null),c=e.ref(null),{broadcastExpanded:f}=Z2(t),{dragState:u}=sJ({props:t,ctx:n,el$:i,dropIndicator$:c,store:l});pJ({el$:i},l);const d=e.computed(()=>{const{childNodes:$}=a.value;return!$||$.length===0||$.every(({visible:R})=>!R)});e.watch(()=>t.currentNodeKey,$=>{l.value.setCurrentNodeKey($)}),e.watch(()=>t.defaultCheckedKeys,$=>{l.value.setDefaultCheckedKey($)}),e.watch(()=>t.defaultExpandedKeys,$=>{l.value.setDefaultExpandedKeys($)}),e.watch(()=>t.data,$=>{l.value.setData($)},{deep:!0}),e.watch(()=>t.checkStrictly,$=>{l.value.checkStrictly=$});const p=$=>{if(!t.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");l.value.filter($)},h=$=>nm(t.nodeKey,$.data),g=$=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in getNodePath");const R=l.value.getNode($);if(!R)return[];const N=[R.data];let A=R.parent;for(;A&&A!==a.value;)N.push(A.data),A=A.parent;return N.reverse()},m=($,R)=>l.value.getCheckedNodes($,R),b=$=>l.value.getCheckedKeys($),y=()=>{const $=l.value.getCurrentNode();return $?$.data:null},C=()=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in getCurrentKey");const $=y();return $?$[t.nodeKey]:null},k=($,R)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedNodes");l.value.setCheckedNodes($,R)},w=($,R)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedKeys");l.value.setCheckedKeys($,R)},E=($,R,N)=>{l.value.setChecked($,R,N)},S=()=>l.value.getHalfCheckedNodes(),_=()=>l.value.getHalfCheckedKeys(),B=($,R=!0)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentNode");om(l,n.emit,()=>l.value.setUserCurrentNode($,R))},M=($,R=!0)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentKey");om(l,n.emit,()=>l.value.setCurrentNodeKey($,R))},P=$=>l.value.getNode($),T=$=>{l.value.remove($)},I=($,R)=>{l.value.append($,R)},v=($,R)=>{l.value.insertBefore($,R)},O=($,R)=>{l.value.insertAfter($,R)},D=($,R,N)=>{f(R),n.emit("node-expand",$,R,N)},z=($,R)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");l.value.updateChildren($,R)};return e.provide("RootTree",{ctx:n,props:t,store:l,root:a,currentNode:s,instance:e.getCurrentInstance()}),e.provide(Gn,void 0),{ns:r,store:l,root:a,currentNode:s,dragState:u,el$:i,dropIndicator$:c,isEmpty:d,filter:p,getNodeKey:h,getNodePath:g,getCheckedNodes:m,getCheckedKeys:b,getCurrentNode:y,getCurrentKey:C,setCheckedNodes:k,setCheckedKeys:w,setChecked:E,getHalfCheckedNodes:S,getHalfCheckedKeys:_,setCurrentNode:B,setCurrentKey:M,t:o,getNode:P,remove:T,append:I,insertBefore:v,insertAfter:O,handleNodeExpand:D,updateKeyChildren:z}}});function hJ(t,n,o,r,l,a){const s=e.resolveComponent("el-tree-node");return e.openBlock(),e.createElementBlock("div",{ref:"el$",class:e.normalizeClass([t.ns.b(),t.ns.is("dragging",!!t.dragState.draggingNode),t.ns.is("drop-not-allow",!t.dragState.allowDrop),t.ns.is("drop-inner",t.dragState.dropType==="inner"),{[t.ns.m("highlight-current")]:t.highlightCurrent}]),role:"tree"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.root.childNodes,i=>(e.openBlock(),e.createBlock(s,{key:t.getNodeKey(i),node:i,props:t.props,accordion:t.accordion,"render-after-expand":t.renderAfterExpand,"show-checkbox":t.showCheckbox,"render-content":t.renderContent,onNodeExpand:t.handleNodeExpand},null,8,["node","props","accordion","render-after-expand","show-checkbox","render-content","onNodeExpand"]))),128)),t.isEmpty?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(t.ns.e("empty-block"))},[e.renderSlot(t.$slots,"empty",{},()=>{var i;return[e.createElementVNode("span",{class:e.normalizeClass(t.ns.e("empty-text"))},e.toDisplayString((i=t.emptyText)!=null?i:t.t("el.tree.emptyText")),3)]})],2)):e.createCommentVNode("v-if",!0),e.withDirectives(e.createElementVNode("div",{ref:"dropIndicator$",class:e.normalizeClass(t.ns.e("drop-indicator"))},null,2),[[e.vShow,t.dragState.showDropIndicator]])],2)}var oc=se(mJ,[["render",hJ],["__file","tree.vue"]]);oc.install=t=>{t.component(oc.name,oc)};const rc=oc,Q2=rc,gJ=(t,{attrs:n,emit:o},{tree:r,key:l})=>{const a=Q("tree-select"),s={...ro(e.toRefs(t),Object.keys(sr.props)),...n,"onUpdate:modelValue":i=>o(Ie,i),valueKey:l,popperClass:e.computed(()=>{const i=[a.e("popper")];return t.popperClass&&i.push(t.popperClass),i.join(" ")}),filterMethod:(i="")=>{t.filterMethod&&t.filterMethod(i),e.nextTick(()=>{var c;(c=r.value)==null||c.filter(i)})},onVisibleChange:i=>{var c;(c=n.onVisibleChange)==null||c.call(n,i),t.filterable&&i&&s.filterMethod()}};return s};var yJ=e.defineComponent({extends:Va,setup(t,n){const o=Va.setup(t,n);delete o.selectOptionClick;const r=e.getCurrentInstance().proxy;return e.nextTick(()=>{o.select.cachedOptions.get(r.value)||o.select.onOptionCreate(r)}),o},methods:{selectOptionClick(){this.$el.parentElement.click()}}});function am(t){return t||t===0}function sm(t){return Array.isArray(t)&&t.length}function Ha(t){return Array.isArray(t)?t:am(t)?[t]:[]}function lc(t,n,o,r,l){for(let a=0;a{e.watch(()=>t.modelValue,()=>{t.showCheckbox&&e.nextTick(()=>{const p=a.value;p&&!tn(p.getCheckedKeys(),Ha(t.modelValue))&&p.setCheckedKeys(Ha(t.modelValue))})},{immediate:!0,deep:!0});const i=e.computed(()=>({value:s.value,label:"label",children:"children",disabled:"disabled",isLeaf:"isLeaf",...t.props})),c=(p,h)=>{var g;const m=i.value[p];return qe(m)?m(h,(g=a.value)==null?void 0:g.getNode(c("value",h))):h[m]},f=Ha(t.modelValue).map(p=>lc(t.data||[],h=>c("value",h)===p,h=>c("children",h),(h,g,m,b)=>b&&c("value",b))).filter(p=>am(p)),u=e.computed(()=>{if(!t.renderAfterExpand&&!t.lazy)return[];const p=[];return eN(t.data.concat(t.cacheData),h=>{const g=c("value",h);p.push({value:g,currentLabel:c("label",h),isDisabled:c("disabled",h)})},h=>c("children",h)),p}),d=e.computed(()=>u.value.reduce((p,h)=>({...p,[h.value]:h}),{}));return{...ro(e.toRefs(t),Object.keys(rc.props)),...n,nodeKey:s,expandOnClickNode:e.computed(()=>!t.checkStrictly&&t.expandOnClickNode),defaultExpandedKeys:e.computed(()=>t.defaultExpandedKeys?t.defaultExpandedKeys.concat(f):f),renderContent:(p,{node:h,data:g,store:m})=>p(yJ,{value:c("value",g),label:c("label",g),disabled:c("disabled",g)},t.renderContent?()=>t.renderContent(p,{node:h,data:g,store:m}):o.default?()=>o.default({node:h,data:g,store:m}):void 0),filterNodeMethod:(p,h,g)=>{var m;return t.filterNodeMethod?t.filterNodeMethod(p,h,g):p?(m=c("label",h))==null?void 0:m.includes(p):!0},onNodeClick:(p,h,g)=>{var m,b,y;if((m=n.onNodeClick)==null||m.call(n,p,h,g),!(t.showCheckbox&&t.checkOnClickNode))if(!t.showCheckbox&&(t.checkStrictly||h.isLeaf)){if(!c("disabled",p)){const C=(b=l.value)==null?void 0:b.options.get(c("value",p));(y=l.value)==null||y.handleOptionSelect(C)}}else t.expandOnClickNode&&g.proxy.handleExpandIconClick()},onCheck:(p,h)=>{if(!t.showCheckbox)return;const g=c("value",p),m=h.checkedKeys,b=t.multiple?Ha(t.modelValue).filter(C=>C in d.value&&!a.value.getNode(C)&&!m.includes(C)):[],y=m.concat(b);if(t.checkStrictly)r(Ie,t.multiple?y:y.includes(g)?g:void 0);else if(t.multiple)r(Ie,a.value.getCheckedKeys(!0));else{const C=lc([p],E=>!sm(c("children",E))&&!c("disabled",E),E=>c("children",E)),k=C?c("value",C):void 0,w=am(t.modelValue)&&!!lc([p],E=>c("value",E)===t.modelValue,E=>c("children",E));r(Ie,k===t.modelValue||w?void 0:k)}e.nextTick(()=>{var C;const k=Ha(t.modelValue);a.value.setCheckedKeys(k),(C=n.onCheck)==null||C.call(n,p,{checkedKeys:a.value.getCheckedKeys(),checkedNodes:a.value.getCheckedNodes(),halfCheckedKeys:a.value.getHalfCheckedKeys(),halfCheckedNodes:a.value.getHalfCheckedNodes()})})},cacheOptions:u}};var CJ=e.defineComponent({props:{data:{type:Array,default:()=>[]}},setup(t){const n=e.inject(wl);return e.watch(()=>t.data,()=>{var o;t.data.forEach(l=>{n.cachedOptions.has(l.value)||n.cachedOptions.set(l.value,l)});const r=((o=n.selectWrapper)==null?void 0:o.querySelectorAll("input"))||[];Array.from(r).includes(document.activeElement)||n.setSelected()},{flush:"post",immediate:!0}),()=>{}}});const wJ=e.defineComponent({name:"ElTreeSelect",inheritAttrs:!1,props:{...sr.props,...rc.props,cacheData:{type:Array,default:()=>[]}},setup(t,n){const{slots:o,expose:r}=n,l=e.ref(),a=e.ref(),s=e.computed(()=>t.nodeKey||t.valueKey||"value"),i=gJ(t,n,{select:l,tree:a,key:s}),{cacheOptions:c,...f}=bJ(t,n,{select:l,tree:a,key:s}),u=e.reactive({});return r(u),e.onMounted(()=>{Object.assign(u,{...ro(a.value,["filter","updateKeyChildren","getCheckedNodes","setCheckedNodes","getCheckedKeys","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","getCurrentKey","getCurrentNode","setCurrentKey","setCurrentNode","getNode","remove","append","insertBefore","insertAfter"]),...ro(l.value,["focus","blur"])})}),()=>e.h(sr,e.reactive({...i,ref:d=>l.value=d}),{...o,default:()=>[e.h(CJ,{data:c.value}),e.h(rc,e.reactive({...f,ref:d=>a.value=d}))]})}});var ac=se(wJ,[["__file","tree-select.vue"]]);ac.install=t=>{t.component(ac.name,ac)};const tN=ac,im=Symbol(),kJ={key:-1,level:-1,data:{}};var Ka=(t=>(t.KEY="id",t.LABEL="label",t.CHILDREN="children",t.DISABLED="disabled",t))(Ka||{}),cm=(t=>(t.ADD="add",t.DELETE="delete",t))(cm||{});const nN={type:Number,default:26},SJ=le({data:{type:W(Array),default:()=>ut([])},emptyText:{type:String},height:{type:Number,default:200},props:{type:W(Object),default:()=>ut({children:"children",label:"label",disabled:"disabled",value:"id"})},highlightCurrent:{type:Boolean,default:!1},showCheckbox:{type:Boolean,default:!1},defaultCheckedKeys:{type:W(Array),default:()=>ut([])},checkStrictly:{type:Boolean,default:!1},defaultExpandedKeys:{type:W(Array),default:()=>ut([])},indent:{type:Number,default:16},itemSize:nN,icon:{type:ot},expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:{type:Boolean,default:!1},currentNodeKey:{type:W([String,Number])},accordion:{type:Boolean,default:!1},filterMethod:{type:W(Function)},perfMode:{type:Boolean,default:!0}}),EJ=le({node:{type:W(Object),default:()=>ut(kJ)},expanded:{type:Boolean,default:!1},checked:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},showCheckbox:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},current:{type:Boolean,default:!1},hiddenExpandIcon:{type:Boolean,default:!1},itemSize:nN}),NJ=le({node:{type:W(Object),required:!0}}),oN="node-click",rN="node-expand",lN="node-collapse",aN="current-change",sN="check",iN="check-change",cN="node-contextmenu",_J={[oN]:(t,n,o)=>t&&n&&o,[rN]:(t,n)=>t&&n,[lN]:(t,n)=>t&&n,[aN]:(t,n)=>t&&n,[sN]:(t,n)=>t&&n,[iN]:(t,n)=>t&&typeof n=="boolean",[cN]:(t,n,o)=>t&&n&&o},BJ={click:(t,n)=>!!(t&&n),toggle:t=>!!t,check:(t,n)=>t&&typeof n=="boolean"};function $J(t,n){const o=e.ref(new Set),r=e.ref(new Set),{emit:l}=e.getCurrentInstance();e.watch([()=>n.value,()=>t.defaultCheckedKeys],()=>e.nextTick(()=>{C(t.defaultCheckedKeys)}),{immediate:!0});const a=()=>{if(!n.value||!t.showCheckbox||t.checkStrictly)return;const{levelTreeNodeMap:k,maxLevel:w}=n.value,E=o.value,S=new Set;for(let _=w-1;_>=1;--_){const B=k.get(_);!B||B.forEach(M=>{const P=M.children;if(P){let T=!0,I=!1;for(const v of P){const O=v.key;if(E.has(O))I=!0;else if(S.has(O)){T=!1,I=!0;break}else T=!1}T?E.add(M.key):I?(S.add(M.key),E.delete(M.key)):(E.delete(M.key),S.delete(M.key))}})}r.value=S},s=k=>o.value.has(k.key),i=k=>r.value.has(k.key),c=(k,w,E=!0)=>{const S=o.value,_=(B,M)=>{S[M?cm.ADD:cm.DELETE](B.key);const P=B.children;!t.checkStrictly&&P&&P.forEach(T=>{T.disabled||_(T,M)})};_(k,w),a(),E&&f(k,w)},f=(k,w)=>{const{checkedNodes:E,checkedKeys:S}=g(),{halfCheckedNodes:_,halfCheckedKeys:B}=m();l(sN,k.data,{checkedKeys:S,checkedNodes:E,halfCheckedKeys:B,halfCheckedNodes:_}),l(iN,k.data,w)};function u(k=!1){return g(k).checkedKeys}function d(k=!1){return g(k).checkedNodes}function p(){return m().halfCheckedKeys}function h(){return m().halfCheckedNodes}function g(k=!1){const w=[],E=[];if((n==null?void 0:n.value)&&t.showCheckbox){const{treeNodeMap:S}=n.value;o.value.forEach(_=>{const B=S.get(_);B&&(!k||k&&B.isLeaf)&&(E.push(_),w.push(B.data))})}return{checkedKeys:E,checkedNodes:w}}function m(){const k=[],w=[];if((n==null?void 0:n.value)&&t.showCheckbox){const{treeNodeMap:E}=n.value;r.value.forEach(S=>{const _=E.get(S);_&&(w.push(S),k.push(_.data))})}return{halfCheckedNodes:k,halfCheckedKeys:w}}function b(k){o.value.clear(),r.value.clear(),C(k)}function y(k,w){if((n==null?void 0:n.value)&&t.showCheckbox){const E=n.value.treeNodeMap.get(k);E&&c(E,w,!1)}}function C(k){if(n!=null&&n.value){const{treeNodeMap:w}=n.value;if(t.showCheckbox&&w&&k)for(const E of k){const S=w.get(E);S&&!s(S)&&c(S,!0,!1)}}}return{updateCheckedKeys:a,toggleCheckbox:c,isChecked:s,isIndeterminate:i,getCheckedKeys:u,getCheckedNodes:d,getHalfCheckedKeys:p,getHalfCheckedNodes:h,setChecked:y,setCheckedKeys:b}}function TJ(t,n){const o=e.ref(new Set([])),r=e.ref(new Set([])),l=e.computed(()=>qe(t.filterMethod));function a(i){var c;if(!l.value)return;const f=new Set,u=r.value,d=o.value,p=[],h=((c=n.value)==null?void 0:c.treeNodes)||[],g=t.filterMethod;d.clear();function m(b){b.forEach(y=>{p.push(y),g!=null&&g(i,y.data)?p.forEach(k=>{f.add(k.key)}):y.isLeaf&&d.add(y.key);const C=y.children;if(C&&m(C),!y.isLeaf){if(!f.has(y.key))d.add(y.key);else if(C){let k=!0;for(const w of C)if(!d.has(w.key)){k=!1;break}k?u.add(y.key):u.delete(y.key)}}p.pop()})}return m(h),f}function s(i){return r.value.has(i.key)}return{hiddenExpandIconKeySet:r,hiddenNodeKeySet:o,doFilter:a,isForceHiddenExpandIcon:s}}function vJ(t,n){const o=e.ref(new Set(t.defaultExpandedKeys)),r=e.ref(),l=e.shallowRef();e.watch(()=>t.currentNodeKey,U=>{r.value=U},{immediate:!0}),e.watch(()=>t.data,U=>{Y(U)},{immediate:!0});const{isIndeterminate:a,isChecked:s,toggleCheckbox:i,getCheckedKeys:c,getCheckedNodes:f,getHalfCheckedKeys:u,getHalfCheckedNodes:d,setChecked:p,setCheckedKeys:h}=$J(t,l),{doFilter:g,hiddenNodeKeySet:m,isForceHiddenExpandIcon:b}=TJ(t,l),y=e.computed(()=>{var U;return((U=t.props)==null?void 0:U.value)||Ka.KEY}),C=e.computed(()=>{var U;return((U=t.props)==null?void 0:U.children)||Ka.CHILDREN}),k=e.computed(()=>{var U;return((U=t.props)==null?void 0:U.disabled)||Ka.DISABLED}),w=e.computed(()=>{var U;return((U=t.props)==null?void 0:U.label)||Ka.LABEL}),E=e.computed(()=>{const U=o.value,re=m.value,te=[],oe=l.value&&l.value.treeNodes||[];function ie(){const ye=[];for(let Ne=oe.length-1;Ne>=0;--Ne)ye.push(oe[Ne]);for(;ye.length;){const Ne=ye.pop();if(!!Ne&&(re.has(Ne.key)||te.push(Ne),U.has(Ne.key))){const Te=Ne.children;if(Te){const Pe=Te.length;for(let he=Pe-1;he>=0;--he)ye.push(Te[he])}}}}return ie(),te}),S=e.computed(()=>E.value.length>0);function _(U){const re=new Map,te=new Map;let oe=1;function ie(Ne,Te=1,Pe=void 0){var he;const Ce=[];for(const ge of Ne){const me=P(ge),_e={level:Te,key:me,data:ge};_e.label=I(ge),_e.parent=Pe;const $e=M(ge);_e.disabled=T(ge),_e.isLeaf=!$e||$e.length===0,$e&&$e.length&&(_e.children=ie($e,Te+1,_e)),Ce.push(_e),re.set(me,_e),te.has(Te)||te.set(Te,[]),(he=te.get(Te))==null||he.push(_e)}return Te>oe&&(oe=Te),Ce}const ye=ie(U);return{treeNodeMap:re,levelTreeNodeMap:te,maxLevel:oe,treeNodes:ye}}function B(U){const re=g(U);re&&(o.value=re)}function M(U){return U[C.value]}function P(U){return U?U[y.value]:""}function T(U){return U[k.value]}function I(U){return U[w.value]}function v(U){o.value.has(U.key)?N(U):R(U)}function O(U){o.value=new Set(U)}function D(U,re){n(oN,U.data,U,re),z(U),t.expandOnClickNode&&v(U),t.showCheckbox&&t.checkOnClickNode&&!U.disabled&&i(U,!s(U),!0)}function z(U){H(U)||(r.value=U.key,n(aN,U.data,U))}function $(U,re){i(U,re)}function R(U){const re=o.value;if(l.value&&t.accordion){const{treeNodeMap:te}=l.value;re.forEach(oe=>{const ie=te.get(oe);U&&U.level===(ie==null?void 0:ie.level)&&re.delete(oe)})}re.add(U.key),n(rN,U.data,U)}function N(U){o.value.delete(U.key),n(lN,U.data,U)}function A(U){return o.value.has(U.key)}function x(U){return!!U.disabled}function H(U){const re=r.value;return re!==void 0&&re===U.key}function K(){var U,re;if(!!r.value)return(re=(U=l.value)==null?void 0:U.treeNodeMap.get(r.value))==null?void 0:re.data}function q(){return r.value}function ne(U){r.value=U}function Y(U){e.nextTick(()=>l.value=_(U))}function Z(U){var re;const te=nt(U)?P(U):U;return(re=l.value)==null?void 0:re.treeNodeMap.get(te)}return{tree:l,flattenTree:E,isNotEmpty:S,getKey:P,getChildren:M,toggleExpand:v,toggleCheckbox:i,isExpanded:A,isChecked:s,isIndeterminate:a,isDisabled:x,isCurrent:H,isForceHiddenExpandIcon:b,handleNodeClick:D,handleNodeCheck:$,getCurrentNode:K,getCurrentKey:q,setCurrentKey:ne,getCheckedKeys:c,getCheckedNodes:f,getHalfCheckedKeys:u,getHalfCheckedNodes:d,setChecked:p,setCheckedKeys:h,filter:B,setData:Y,getNode:Z,expandNode:R,collapseNode:N,setExpandedKeys:O}}var VJ=e.defineComponent({name:"ElTreeNodeContent",props:NJ,setup(t){const n=e.inject(im),o=Q("tree");return()=>{const r=t.node,{data:l}=r;return n!=null&&n.ctx.slots.default?n.ctx.slots.default({node:r,data:l}):e.h("span",{class:o.be("node","label")},[r==null?void 0:r.label])}}});const MJ=["aria-expanded","aria-disabled","aria-checked","data-key","onClick"],IJ=e.defineComponent({name:"ElTreeNode"}),PJ=e.defineComponent({...IJ,props:EJ,emits:BJ,setup(t,{emit:n}){const o=t,r=e.inject(im),l=Q("tree"),a=e.computed(()=>{var d;return(d=r==null?void 0:r.props.indent)!=null?d:16}),s=e.computed(()=>{var d;return(d=r==null?void 0:r.props.icon)!=null?d:ky}),i=d=>{n("click",o.node,d)},c=()=>{n("toggle",o.node)},f=d=>{n("check",o.node,d)},u=d=>{var p,h,g,m;(g=(h=(p=r==null?void 0:r.instance)==null?void 0:p.vnode)==null?void 0:h.props)!=null&&g.onNodeContextmenu&&(d.stopPropagation(),d.preventDefault()),r==null||r.ctx.emit(cN,d,(m=o.node)==null?void 0:m.data,o.node)};return(d,p)=>{var h,g,m;return e.openBlock(),e.createElementBlock("div",{ref:"node$",class:e.normalizeClass([e.unref(l).b("node"),e.unref(l).is("expanded",d.expanded),e.unref(l).is("current",d.current),e.unref(l).is("focusable",!d.disabled),e.unref(l).is("checked",!d.disabled&&d.checked)]),role:"treeitem",tabindex:"-1","aria-expanded":d.expanded,"aria-disabled":d.disabled,"aria-checked":d.checked,"data-key":(h=d.node)==null?void 0:h.key,onClick:e.withModifiers(i,["stop"]),onContextmenu:u},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).be("node","content")),style:e.normalizeStyle({paddingLeft:`${(d.node.level-1)*e.unref(a)}px`,height:d.itemSize+"px"})},[e.unref(s)?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass([e.unref(l).is("leaf",!!((g=d.node)!=null&&g.isLeaf)),e.unref(l).is("hidden",d.hiddenExpandIcon),{expanded:!((m=d.node)!=null&&m.isLeaf)&&d.expanded},e.unref(l).be("node","expand-icon")]),onClick:e.withModifiers(c,["stop"])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(s))))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0),d.showCheckbox?(e.openBlock(),e.createBlock(e.unref(En),{key:1,"model-value":d.checked,indeterminate:d.indeterminate,disabled:d.disabled,onChange:f,onClick:p[0]||(p[0]=e.withModifiers(()=>{},["stop"]))},null,8,["model-value","indeterminate","disabled"])):e.createCommentVNode("v-if",!0),e.createVNode(e.unref(VJ),{node:d.node},null,8,["node"])],6)],42,MJ)}}});var RJ=se(PJ,[["__file","tree-node.vue"]]);const OJ=e.defineComponent({name:"ElTreeV2"}),AJ=e.defineComponent({...OJ,props:SJ,emits:_J,setup(t,{expose:n,emit:o}){const r=t,l=e.useSlots(),a=e.computed(()=>r.itemSize);e.provide(im,{ctx:{emit:o,slots:l},props:r,instance:e.getCurrentInstance()}),e.provide(Gn,void 0);const{t:s}=Ke(),i=Q("tree"),{flattenTree:c,isNotEmpty:f,toggleExpand:u,isExpanded:d,isIndeterminate:p,isChecked:h,isDisabled:g,isCurrent:m,isForceHiddenExpandIcon:b,handleNodeClick:y,handleNodeCheck:C,toggleCheckbox:k,getCurrentNode:w,getCurrentKey:E,setCurrentKey:S,getCheckedKeys:_,getCheckedNodes:B,getHalfCheckedKeys:M,getHalfCheckedNodes:P,setChecked:T,setCheckedKeys:I,filter:v,setData:O,getNode:D,expandNode:z,collapseNode:$,setExpandedKeys:R}=vJ(r,o);return n({toggleCheckbox:k,getCurrentNode:w,getCurrentKey:E,setCurrentKey:S,getCheckedKeys:_,getCheckedNodes:B,getHalfCheckedKeys:M,getHalfCheckedNodes:P,setChecked:T,setCheckedKeys:I,filter:v,setData:O,getNode:D,expandNode:z,collapseNode:$,setExpandedKeys:R}),(N,A)=>{var x;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(i).b(),{[e.unref(i).m("highlight-current")]:N.highlightCurrent}]),role:"tree"},[e.unref(f)?(e.openBlock(),e.createBlock(e.unref(Np),{key:0,"class-name":e.unref(i).b("virtual-list"),data:e.unref(c),total:e.unref(c).length,height:N.height,"item-size":e.unref(a),"perf-mode":N.perfMode},{default:e.withCtx(({data:H,index:K,style:q})=>[(e.openBlock(),e.createBlock(RJ,{key:H[K].key,style:e.normalizeStyle(q),node:H[K],expanded:e.unref(d)(H[K]),"show-checkbox":N.showCheckbox,checked:e.unref(h)(H[K]),indeterminate:e.unref(p)(H[K]),"item-size":e.unref(a),disabled:e.unref(g)(H[K]),current:e.unref(m)(H[K]),"hidden-expand-icon":e.unref(b)(H[K]),onClick:e.unref(y),onToggle:e.unref(u),onCheck:e.unref(C)},null,8,["style","node","expanded","show-checkbox","checked","indeterminate","item-size","disabled","current","hidden-expand-icon","onClick","onToggle","onCheck"]))]),_:1},8,["class-name","data","total","height","item-size","perf-mode"])):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(i).e("empty-block"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(i).e("empty-text"))},e.toDisplayString((x=N.emptyText)!=null?x:e.unref(s)("el.tree.emptyText")),3)],2))],2)}}});var zJ=se(AJ,[["__file","tree.vue"]]);const dN=Me(zJ),dm=Symbol("uploadContextKey"),DJ="ElUpload";class LJ extends Error{constructor(n,o,r,l){super(n),this.name="UploadAjaxError",this.status=o,this.method=r,this.url=l}}function fN(t,n,o){let r;return o.response?r=`${o.response.error||o.response}`:o.responseText?r=`${o.responseText}`:r=`fail to ${n.method} ${t} ${o.status}`,new LJ(r,o.status,n.method,t)}function xJ(t){const n=t.responseText||t.response;if(!n)return n;try{return JSON.parse(n)}catch(o){return n}}const FJ=t=>{typeof XMLHttpRequest=="undefined"&&vt(DJ,"XMLHttpRequest is undefined");const n=new XMLHttpRequest,o=t.action;n.upload&&n.upload.addEventListener("progress",a=>{const s=a;s.percent=a.total>0?a.loaded/a.total*100:0,t.onProgress(s)});const r=new FormData;if(t.data)for(const[a,s]of Object.entries(t.data))Re(s)&&s.length?r.append(a,...s):r.append(a,s);r.append(t.filename,t.file,t.file.name),n.addEventListener("error",()=>{t.onError(fN(o,t,n))}),n.addEventListener("load",()=>{if(n.status<200||n.status>=300)return t.onError(fN(o,t,n));t.onSuccess(xJ(n))}),n.open(t.method,o,!0),t.withCredentials&&"withCredentials"in n&&(n.withCredentials=!0);const l=t.headers||{};if(l instanceof Headers)l.forEach((a,s)=>n.setRequestHeader(s,a));else for(const[a,s]of Object.entries(l))wt(s)||n.setRequestHeader(a,String(s));return n.send(r),n},fm=["text","picture","picture-card"];let HJ=1;const sc=()=>Date.now()+HJ++,um=le({action:{type:String,default:"#"},headers:{type:W(Object)},method:{type:String,default:"post"},data:{type:W([Object,Function,Promise]),default:()=>ut({})},multiple:{type:Boolean,default:!1},name:{type:String,default:"file"},drag:{type:Boolean,default:!1},withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:""},fileList:{type:W(Array),default:()=>ut([])},autoUpload:{type:Boolean,default:!0},listType:{type:String,values:fm,default:"text"},httpRequest:{type:W(Function),default:FJ},disabled:Boolean,limit:Number}),uN=le({...um,beforeUpload:{type:W(Function),default:st},beforeRemove:{type:W(Function)},onRemove:{type:W(Function),default:st},onChange:{type:W(Function),default:st},onPreview:{type:W(Function),default:st},onSuccess:{type:W(Function),default:st},onProgress:{type:W(Function),default:st},onError:{type:W(Function),default:st},onExceed:{type:W(Function),default:st}}),pN=le({files:{type:W(Array),default:()=>ut([])},disabled:{type:Boolean,default:!1},handlePreview:{type:W(Function),default:st},listType:{type:String,values:fm,default:"text"}}),mN={remove:t=>!!t},KJ=["onKeydown"],WJ=["src"],jJ=["onClick"],UJ=["title"],GJ=["onClick"],qJ=["onClick"],YJ=e.defineComponent({name:"ElUploadList"}),XJ=e.defineComponent({...YJ,props:pN,emits:mN,setup(t,{emit:n}){const o=t,{t:r}=Ke(),l=Q("upload"),a=Q("icon"),s=Q("list"),i=Yt(),c=e.ref(!1),f=e.computed(()=>[l.b("list"),l.bm("list",o.listType),l.is("disabled",o.disabled)]),u=d=>{n("remove",d)};return(d,p)=>(e.openBlock(),e.createBlock(e.TransitionGroup,{tag:"ul",class:e.normalizeClass(e.unref(f)),name:e.unref(s).b()},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.files,h=>(e.openBlock(),e.createElementBlock("li",{key:h.uid||h.name,class:e.normalizeClass([e.unref(l).be("list","item"),e.unref(l).is(h.status),{focusing:c.value}]),tabindex:"0",onKeydown:e.withKeys(g=>!e.unref(i)&&u(h),["delete"]),onFocus:p[0]||(p[0]=g=>c.value=!0),onBlur:p[1]||(p[1]=g=>c.value=!1),onClick:p[2]||(p[2]=g=>c.value=!1)},[e.renderSlot(d.$slots,"default",{file:h},()=>[d.listType==="picture"||h.status!=="uploading"&&d.listType==="picture-card"?(e.openBlock(),e.createElementBlock("img",{key:0,class:e.normalizeClass(e.unref(l).be("list","item-thumbnail")),src:h.url,alt:""},null,10,WJ)):e.createCommentVNode("v-if",!0),h.status==="uploading"||d.listType!=="picture-card"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).be("list","item-info"))},[e.createElementVNode("a",{class:e.normalizeClass(e.unref(l).be("list","item-name")),onClick:e.withModifiers(g=>d.handlePreview(h),["prevent"])},[e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(a).m("document"))},{default:e.withCtx(()=>[e.createVNode(e.unref(CD))]),_:1},8,["class"]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).be("list","item-file-name")),title:h.name},e.toDisplayString(h.name),11,UJ)],10,jJ),h.status==="uploading"?(e.openBlock(),e.createBlock(e.unref(cp),{key:0,type:d.listType==="picture-card"?"circle":"line","stroke-width":d.listType==="picture-card"?6:2,percentage:Number(h.percentage),style:e.normalizeStyle(d.listType==="picture-card"?"":"margin-top: 0.5rem")},null,8,["type","stroke-width","percentage","style"])):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("label",{class:e.normalizeClass(e.unref(l).be("list","item-status-label"))},[d.listType==="text"?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass([e.unref(a).m("upload-success"),e.unref(a).m("circle-check")])},{default:e.withCtx(()=>[e.createVNode(e.unref(Kd))]),_:1},8,["class"])):["picture-card","picture"].includes(d.listType)?(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass([e.unref(a).m("upload-success"),e.unref(a).m("check")])},{default:e.withCtx(()=>[e.createVNode(e.unref(la))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],2),e.unref(i)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(e.unref(fe),{key:2,class:e.normalizeClass(e.unref(a).m("close")),onClick:g=>u(h)},{default:e.withCtx(()=>[e.createVNode(e.unref(Hn))]),_:2},1032,["class","onClick"])),e.createCommentVNode(" Due to close btn only appears when li gets focused disappears after li gets blurred, thus keyboard navigation can never reach close btn"),e.createCommentVNode(" This is a bug which needs to be fixed "),e.createCommentVNode(" TODO: Fix the incorrect navigation interaction "),e.unref(i)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(e.unref(a).m("close-tip"))},e.toDisplayString(e.unref(r)("el.upload.deleteTip")),3)),d.listType==="picture-card"?(e.openBlock(),e.createElementBlock("span",{key:4,class:e.normalizeClass(e.unref(l).be("list","item-actions"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).be("list","item-preview")),onClick:g=>d.handlePreview(h)},[e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(a).m("zoom-in"))},{default:e.withCtx(()=>[e.createVNode(e.unref(By))]),_:1},8,["class"])],10,GJ),e.unref(i)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(l).be("list","item-delete")),onClick:g=>u(h)},[e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(a).m("delete"))},{default:e.withCtx(()=>[e.createVNode(e.unref(yD))]),_:1},8,["class"])],10,qJ))],2)):e.createCommentVNode("v-if",!0)])],42,KJ))),128)),e.renderSlot(d.$slots,"append")]),_:3},8,["class","name"]))}});var hN=se(XJ,[["__file","upload-list.vue"]]);const gN=le({disabled:{type:Boolean,default:!1}}),yN={file:t=>Re(t)},ZJ=["onDrop","onDragover"],bN="ElUploadDrag",JJ=e.defineComponent({name:bN}),QJ=e.defineComponent({...JJ,props:gN,emits:yN,setup(t,{emit:n}){const o=e.inject(dm);o||vt(bN,"usage: ");const r=Q("upload"),l=e.ref(!1),a=Yt(),s=c=>{if(a.value)return;l.value=!1,c.stopPropagation();const f=Array.from(c.dataTransfer.files),u=o.accept.value;if(!u){n("file",f);return}const d=f.filter(p=>{const{type:h,name:g}=p,m=g.includes(".")?`.${g.split(".").pop()}`:"",b=h.replace(/\/.*$/,"");return u.split(",").map(y=>y.trim()).filter(y=>y).some(y=>y.startsWith(".")?m===y:/\/\*$/.test(y)?b===y.replace(/\/\*$/,""):/^[^/]+\/[^/]+$/.test(y)?h===y:!1)});n("file",d)},i=()=>{a.value||(l.value=!0)};return(c,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(r).b("dragger"),e.unref(r).is("dragover",l.value)]),onDrop:e.withModifiers(s,["prevent"]),onDragover:e.withModifiers(i,["prevent"]),onDragleave:f[0]||(f[0]=e.withModifiers(u=>l.value=!1,["prevent"]))},[e.renderSlot(c.$slots,"default")],42,ZJ))}});var eQ=se(QJ,[["__file","upload-dragger.vue"]]);const CN=le({...um,beforeUpload:{type:W(Function),default:st},onRemove:{type:W(Function),default:st},onStart:{type:W(Function),default:st},onSuccess:{type:W(Function),default:st},onProgress:{type:W(Function),default:st},onError:{type:W(Function),default:st},onExceed:{type:W(Function),default:st}}),tQ=["onKeydown"],nQ=["name","multiple","accept"],oQ=e.defineComponent({name:"ElUploadContent",inheritAttrs:!1}),rQ=e.defineComponent({...oQ,props:CN,setup(t,{expose:n}){const o=t,r=Q("upload"),l=Yt(),a=e.shallowRef({}),s=e.shallowRef(),i=m=>{if(m.length===0)return;const{autoUpload:b,limit:y,fileList:C,multiple:k,onStart:w,onExceed:E}=o;if(y&&C.length+m.length>y){E(m,C);return}k||(m=m.slice(0,1));for(const S of m){const _=S;_.uid=sc(),w(_),b&&c(_)}},c=async m=>{if(s.value.value="",!o.beforeUpload)return u(m);let b,y={};try{const k=o.data,w=o.beforeUpload(m);y=Fm(o.data)?Yl(o.data):o.data,b=await w,Fm(o.data)&&tn(k,y)&&(y=Yl(o.data))}catch(k){b=!1}if(b===!1){o.onRemove(m);return}let C=m;b instanceof Blob&&(b instanceof File?C=b:C=new File([b],m.name,{type:m.type})),u(Object.assign(C,{uid:m.uid}),y)},f=async(m,b)=>qe(m)?m(b):m,u=async(m,b)=>{const{headers:y,data:C,method:k,withCredentials:w,name:E,action:S,onProgress:_,onSuccess:B,onError:M,httpRequest:P}=o;try{b=await f(b!=null?b:C,m)}catch(O){o.onRemove(m);return}const{uid:T}=m,I={headers:y||{},withCredentials:w,file:m,data:b,method:k,filename:E,action:S,onProgress:O=>{_(O,m)},onSuccess:O=>{B(O,m),delete a.value[T]},onError:O=>{M(O,m),delete a.value[T]}},v=P(I);a.value[T]=v,v instanceof Promise&&v.then(I.onSuccess,I.onError)},d=m=>{const b=m.target.files;!b||i(Array.from(b))},p=()=>{l.value||(s.value.value="",s.value.click())},h=()=>{p()};return n({abort:m=>{Kz(a.value).filter(m?([y])=>String(m.uid)===y:()=>!0).forEach(([y,C])=>{C instanceof XMLHttpRequest&&C.abort(),delete a.value[y]})},upload:c}),(m,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(r).b(),e.unref(r).m(m.listType),e.unref(r).is("drag",m.drag)]),tabindex:"0",onClick:p,onKeydown:e.withKeys(e.withModifiers(h,["self"]),["enter","space"])},[m.drag?(e.openBlock(),e.createBlock(eQ,{key:0,disabled:e.unref(l),onFile:i},{default:e.withCtx(()=>[e.renderSlot(m.$slots,"default")]),_:3},8,["disabled"])):e.renderSlot(m.$slots,"default",{key:1}),e.createElementVNode("input",{ref_key:"inputRef",ref:s,class:e.normalizeClass(e.unref(r).e("input")),name:m.name,multiple:m.multiple,accept:m.accept,type:"file",onChange:d,onClick:b[0]||(b[0]=e.withModifiers(()=>{},["stop"]))},null,42,nQ)],42,tQ))}});var wN=se(rQ,[["__file","upload-content.vue"]]);const kN="ElUpload",SN=t=>{var n;(n=t.url)!=null&&n.startsWith("blob:")&&URL.revokeObjectURL(t.url)},lQ=(t,n)=>{const o=b_(t,"fileList",void 0,{passive:!0}),r=p=>o.value.find(h=>h.uid===p.uid);function l(p){var h;(h=n.value)==null||h.abort(p)}function a(p=["ready","uploading","success","fail"]){o.value=o.value.filter(h=>!p.includes(h.status))}const s=(p,h)=>{const g=r(h);!g||(console.error(p),g.status="fail",o.value.splice(o.value.indexOf(g),1),t.onError(p,g,o.value),t.onChange(g,o.value))},i=(p,h)=>{const g=r(h);!g||(t.onProgress(p,g,o.value),g.status="uploading",g.percentage=Math.round(p.percent))},c=(p,h)=>{const g=r(h);!g||(g.status="success",g.response=p,t.onSuccess(p,g,o.value),t.onChange(g,o.value))},f=p=>{wt(p.uid)&&(p.uid=sc());const h={name:p.name,percentage:0,status:"ready",size:p.size,raw:p,uid:p.uid};if(t.listType==="picture-card"||t.listType==="picture")try{h.url=URL.createObjectURL(p)}catch(g){g.message,t.onError(g,h,o.value)}o.value=[...o.value,h],t.onChange(h,o.value)},u=async p=>{const h=p instanceof File?r(p):p;h||vt(kN,"file to be removed not found");const g=m=>{l(m);const b=o.value;b.splice(b.indexOf(m),1),t.onRemove(m,b),SN(m)};t.beforeRemove?await t.beforeRemove(h,o.value)!==!1&&g(h):g(h)};function d(){o.value.filter(({status:p})=>p==="ready").forEach(({raw:p})=>{var h;return p&&((h=n.value)==null?void 0:h.upload(p))})}return e.watch(()=>t.listType,p=>{p!=="picture-card"&&p!=="picture"||(o.value=o.value.map(h=>{const{raw:g,url:m}=h;if(!m&&g)try{h.url=URL.createObjectURL(g)}catch(b){t.onError(b,h,o.value)}return h}))}),e.watch(o,p=>{for(const h of p)h.uid||(h.uid=sc()),h.status||(h.status="success")},{immediate:!0,deep:!0}),{uploadFiles:o,abort:l,clearFiles:a,handleError:s,handleProgress:i,handleStart:f,handleSuccess:c,handleRemove:u,submit:d,revokeFileObjectURL:SN}},aQ=e.defineComponent({name:"ElUpload"}),sQ=e.defineComponent({...aQ,props:uN,setup(t,{expose:n}){const o=t,r=Yt(),l=e.shallowRef(),{abort:a,submit:s,clearFiles:i,uploadFiles:c,handleStart:f,handleError:u,handleRemove:d,handleSuccess:p,handleProgress:h,revokeFileObjectURL:g}=lQ(o,l),m=e.computed(()=>o.listType==="picture-card"),b=e.computed(()=>({...o,fileList:c.value,onStart:f,onProgress:h,onSuccess:p,onError:u,onRemove:d}));return e.onBeforeUnmount(()=>{c.value.forEach(g)}),e.provide(dm,{accept:e.toRef(o,"accept")}),n({abort:a,submit:s,clearFiles:i,handleStart:f,handleRemove:d}),(y,C)=>(e.openBlock(),e.createElementBlock("div",null,[e.unref(m)&&y.showFileList?(e.openBlock(),e.createBlock(hN,{key:0,disabled:e.unref(r),"list-type":y.listType,files:e.unref(c),"handle-preview":y.onPreview,onRemove:e.unref(d)},e.createSlots({append:e.withCtx(()=>[e.createVNode(wN,e.mergeProps({ref_key:"uploadRef",ref:l},e.unref(b)),{default:e.withCtx(()=>[y.$slots.trigger?e.renderSlot(y.$slots,"trigger",{key:0}):e.createCommentVNode("v-if",!0),!y.$slots.trigger&&y.$slots.default?e.renderSlot(y.$slots,"default",{key:1}):e.createCommentVNode("v-if",!0)]),_:3},16)]),_:2},[y.$slots.file?{name:"default",fn:e.withCtx(({file:k})=>[e.renderSlot(y.$slots,"file",{file:k})])}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("v-if",!0),!e.unref(m)||e.unref(m)&&!y.showFileList?(e.openBlock(),e.createBlock(wN,e.mergeProps({key:1,ref_key:"uploadRef",ref:l},e.unref(b)),{default:e.withCtx(()=>[y.$slots.trigger?e.renderSlot(y.$slots,"trigger",{key:0}):e.createCommentVNode("v-if",!0),!y.$slots.trigger&&y.$slots.default?e.renderSlot(y.$slots,"default",{key:1}):e.createCommentVNode("v-if",!0)]),_:3},16)):e.createCommentVNode("v-if",!0),y.$slots.trigger?e.renderSlot(y.$slots,"default",{key:2}):e.createCommentVNode("v-if",!0),e.renderSlot(y.$slots,"tip"),!e.unref(m)&&y.showFileList?(e.openBlock(),e.createBlock(hN,{key:3,disabled:e.unref(r),"list-type":y.listType,files:e.unref(c),"handle-preview":y.onPreview,onRemove:e.unref(d)},e.createSlots({_:2},[y.$slots.file?{name:"default",fn:e.withCtx(({file:k})=>[e.renderSlot(y.$slots,"file",{file:k})])}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("v-if",!0)]))}});var iQ=se(sQ,[["__file","upload.vue"]]);const EN=Me(iQ),NN=le({zIndex:{type:Number,default:9},rotate:{type:Number,default:-22},width:Number,height:Number,image:String,content:{type:W([String,Array]),default:"Element Plus"},font:{type:W(Object)},gap:{type:W(Array),default:()=>[100,100]},offset:{type:W(Array)}});function cQ(t){return t.replace(/([A-Z])/g,"-$1").toLowerCase()}function dQ(t){return Object.keys(t).map(n=>`${cQ(n)}: ${t[n]};`).join(" ")}function fQ(){return window.devicePixelRatio||1}const uQ=(t,n)=>{let o=!1;return t.removedNodes.length&&n&&(o=Array.from(t.removedNodes).includes(n)),t.type==="attributes"&&t.target===n&&(o=!0),o},_N=3;function pm(t,n,o=1){const r=document.createElement("canvas"),l=r.getContext("2d"),a=t*o,s=n*o;return r.setAttribute("width",`${a}px`),r.setAttribute("height",`${s}px`),l.save(),[l,r,a,s]}function pQ(){function t(n,o,r,l,a,s,i,c){const[f,u,d,p]=pm(l,a,r);if(n instanceof HTMLImageElement)f.drawImage(n,0,0,d,p);else{const{color:x,fontSize:H,fontStyle:K,fontWeight:q,fontFamily:ne,textAlign:Y,textBaseline:Z}=s,U=Number(H)*r;f.font=`${K} normal ${q} ${U}px/${a}px ${ne}`,f.fillStyle=x,f.textAlign=Y,f.textBaseline=Z;const re=Array.isArray(n)?n:[n];re==null||re.forEach((te,oe)=>{f.fillText(te!=null?te:"",d/2,oe*(U+_N*r))})}const h=Math.PI/180*Number(o),g=Math.max(l,a),[m,b,y]=pm(g,g,r);m.translate(y/2,y/2),m.rotate(h),d>0&&p>0&&m.drawImage(u,-d/2,-p/2);function C(x,H){const K=x*Math.cos(h)-H*Math.sin(h),q=x*Math.sin(h)+H*Math.cos(h);return[K,q]}let k=0,w=0,E=0,S=0;const _=d/2,B=p/2;[[0-_,0-B],[0+_,0-B],[0+_,0+B],[0-_,0+B]].forEach(([x,H])=>{const[K,q]=C(x,H);k=Math.min(k,K),w=Math.max(w,K),E=Math.min(E,q),S=Math.max(S,q)});const P=k+y/2,T=E+y/2,I=w-k,v=S-E,O=i*r,D=c*r,z=(I+O)*2,$=v+D,[R,N]=pm(z,$);function A(x=0,H=0){R.drawImage(b,P,T,I,v,x,H,I,v)}return A(),A(I+O,-v/2-D/2),A(I+O,+v/2+D/2),[N.toDataURL(),z/r,$/r]}return t}const mQ=e.defineComponent({name:"ElWatermark"}),hQ=e.defineComponent({...mQ,props:NN,setup(t){const n=t,o={position:"relative"},r=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.color)!=null?T:"rgba(0,0,0,.15)"}),l=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.fontSize)!=null?T:16}),a=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.fontWeight)!=null?T:"normal"}),s=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.fontStyle)!=null?T:"normal"}),i=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.fontFamily)!=null?T:"sans-serif"}),c=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.textAlign)!=null?T:"center"}),f=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.textBaseline)!=null?T:"top"}),u=e.computed(()=>n.gap[0]),d=e.computed(()=>n.gap[1]),p=e.computed(()=>u.value/2),h=e.computed(()=>d.value/2),g=e.computed(()=>{var P,T;return(T=(P=n.offset)==null?void 0:P[0])!=null?T:p.value}),m=e.computed(()=>{var P,T;return(T=(P=n.offset)==null?void 0:P[1])!=null?T:h.value}),b=()=>{const P={zIndex:n.zIndex,position:"absolute",left:0,top:0,width:"100%",height:"100%",pointerEvents:"none",backgroundRepeat:"repeat"};let T=g.value-p.value,I=m.value-h.value;return T>0&&(P.left=`${T}px`,P.width=`calc(100% - ${T}px)`,T=0),I>0&&(P.top=`${I}px`,P.height=`calc(100% - ${I}px)`,I=0),P.backgroundPosition=`${T}px ${I}px`,P},y=e.shallowRef(null),C=e.shallowRef(),k=e.ref(!1),w=()=>{C.value&&(C.value.remove(),C.value=void 0)},E=(P,T)=>{var I;y.value&&C.value&&(k.value=!0,C.value.setAttribute("style",dQ({...b(),backgroundImage:`url('${P}')`,backgroundSize:`${Math.floor(T)}px`})),(I=y.value)==null||I.append(C.value),setTimeout(()=>{k.value=!1}))},S=P=>{let T=120,I=64;const v=n.image,O=n.content,D=n.width,z=n.height;if(!v&&P.measureText){P.font=`${Number(l.value)}px ${i.value}`;const $=Array.isArray(O)?O:[O],R=$.map(N=>{const A=P.measureText(N);return[A.width,A.fontBoundingBoxAscent+A.fontBoundingBoxDescent]});T=Math.ceil(Math.max(...R.map(N=>N[0]))),I=Math.ceil(Math.max(...R.map(N=>N[1])))*$.length+($.length-1)*_N}return[D!=null?D:T,z!=null?z:I]},_=pQ(),B=()=>{const T=document.createElement("canvas").getContext("2d"),I=n.image,v=n.content,O=n.rotate;if(T){C.value||(C.value=document.createElement("div"));const D=fQ(),[z,$]=S(T),R=N=>{const[A,x]=_(N||"",O,D,z,$,{color:r.value,fontSize:l.value,fontStyle:s.value,fontWeight:a.value,fontFamily:i.value,textAlign:c.value,textBaseline:f.value},u.value,d.value);E(A,x)};if(I){const N=new Image;N.onload=()=>{R(N)},N.onerror=()=>{R(v)},N.crossOrigin="anonymous",N.referrerPolicy="no-referrer",N.src=I}else R(v)}};return e.onMounted(()=>{B()}),e.watch(()=>n,()=>{B()},{deep:!0,flush:"post"}),e.onBeforeUnmount(()=>{w()}),p_(y,P=>{k.value||P.forEach(T=>{uQ(T,C.value)&&(w(),B())})},{attributes:!0}),(P,T)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:y,style:e.normalizeStyle([o])},[e.renderSlot(P.$slots,"default")],4))}});var gQ=se(hQ,[["__file","watermark.vue"]]);const BN=Me(gQ);var yQ=[eC,lC,ZC,k2,ew,rw,jf,cw,dw,At,Jf,Zw,Qw,l1,a1,M1,$1,R1,En,u1,Su,x1,U1,G1,K1,ek,Yb,lk,ak,sk,ik,ck,Sk,_k,Bk,Vk,Uu,Rk,Xk,Zk,Jk,Ju,bC,CC,fe,rS,Qu,Ft,ep,cS,wS,kS,SS,ES,BS,PS,AS,xS,Wf,cp,Bu,k1,w1,WS,US,D1,mo,sr,Va,vS,gE,CE,wE,NE,vE,Tp,OE,xE,FE,WE,l2,a2,w2,I2,P2,bl,O2,jw,z2,x2,F2,Zt,KZ,Y2,Q2,tN,dN,EN,BN];const Xn="ElInfiniteScroll",bQ=50,CQ={delay:{type:Number,default:200},distance:{type:Number,default:0},disabled:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0}},mm=(t,n)=>Object.entries(CQ).reduce((o,[r,l])=>{var a,s;const{type:i,default:c}=l,f=t.getAttribute(`infinite-scroll-${r}`);let u=(s=(a=n[f])!=null?a:f)!=null?s:c;return u=u==="false"?!1:u,u=i(u),o[r]=Number.isNaN(u)?c:u,o},{}),$N=t=>{const{observer:n}=t[Xn];n&&(n.disconnect(),delete t[Xn].observer)},wQ=(t,n)=>{const{container:o,containerEl:r,instance:l,observer:a,lastScrollTop:s}=t[Xn],{disabled:i,distance:c}=mm(t,l),{clientHeight:f,scrollHeight:u,scrollTop:d}=r,p=d-s;if(t[Xn].lastScrollTop=d,a||i||p<0)return;let h=!1;if(o===t)h=u-(f+d)<=c;else{const{clientTop:g,scrollHeight:m}=t,b=S_(t,r);h=d+f>=b+g+m-c}h&&n.call(l)};function hm(t,n){const{containerEl:o,instance:r}=t[Xn],{disabled:l}=mm(t,r);l||o.clientHeight===0||(o.scrollHeight<=o.clientHeight?n.call(r):$N(t))}var kQ={async mounted(t,n){const{instance:o,value:r}=n;qe(r)||vt(Xn,"'v-infinite-scroll' binding value must be a function"),await e.nextTick();const{delay:l,immediate:a}=mm(t,o),s=Hd(t,!0),i=s===window?document.documentElement:s,c=jo(wQ.bind(null,t,r),l);if(!!s){if(t[Xn]={instance:o,container:s,containerEl:i,delay:l,cb:r,onScroll:c,lastScrollTop:i.scrollTop},a){const f=new MutationObserver(jo(hm.bind(null,t,r),bQ));t[Xn].observer=f,f.observe(t,{childList:!0,subtree:!0}),hm(t,r)}s.addEventListener("scroll",c)}},unmounted(t){const{container:n,onScroll:o}=t[Xn];n==null||n.removeEventListener("scroll",o),$N(t)},async updated(t){if(!t[Xn])await e.nextTick();else{const{containerEl:n,cb:o,observer:r}=t[Xn];n.clientHeight&&r&&hm(t,o)}}};const gm=kQ;gm.install=t=>{t.directive("InfiniteScroll",gm)};const TN=gm;function SQ(t){let n;const o=e.ref(!1),r=e.reactive({...t,originalPosition:"",originalOverflow:"",visible:!1});function l(p){r.text=p}function a(){const p=r.parent,h=d.ns;if(!p.vLoadingAddClassList){let g=p.getAttribute("loading-number");g=Number.parseInt(g)-1,g?p.setAttribute("loading-number",g.toString()):(un(p,h.bm("parent","relative")),p.removeAttribute("loading-number")),un(p,h.bm("parent","hidden"))}s(),u.unmount()}function s(){var p,h;(h=(p=d.$el)==null?void 0:p.parentNode)==null||h.removeChild(d.$el)}function i(){var p;t.beforeClose&&!t.beforeClose()||(o.value=!0,clearTimeout(n),n=window.setTimeout(c,400),r.visible=!1,(p=t.closed)==null||p.call(t))}function c(){if(!o.value)return;const p=r.parent;o.value=!1,p.vLoadingAddClassList=void 0,a()}const f=e.defineComponent({name:"ElLoading",setup(p,{expose:h}){const{ns:g,zIndex:m}=ga("loading");return h({ns:g,zIndex:m}),()=>{const b=r.spinner||r.svg,y=e.h("svg",{class:"circular",viewBox:r.svgViewBox?r.svgViewBox:"0 0 50 50",...b?{innerHTML:b}:{}},[e.h("circle",{class:"path",cx:"25",cy:"25",r:"20",fill:"none"})]),C=r.text?e.h("p",{class:g.b("text")},[r.text]):void 0;return e.h(e.Transition,{name:g.b("fade"),onAfterLeave:c},{default:e.withCtx(()=>[e.withDirectives(e.createVNode("div",{style:{backgroundColor:r.background||""},class:[g.b("mask"),r.customClass,r.fullscreen?"is-fullscreen":""]},[e.h("div",{class:g.b("spinner")},[y,C])]),[[e.vShow,r.visible]])])})}}}),u=e.createApp(f),d=u.mount(document.createElement("div"));return{...e.toRefs(r),setText:l,removeElLoadingChild:s,close:i,handleAfterLeave:c,vm:d,get $el(){return d.$el}}}let ic;const cc=function(t={}){if(!He)return;const n=EQ(t);if(n.fullscreen&&ic)return ic;const o=SQ({...n,closed:()=>{var l;(l=n.closed)==null||l.call(n),n.fullscreen&&(ic=void 0)}});NQ(n,n.parent,o),vN(n,n.parent,o),n.parent.vLoadingAddClassList=()=>vN(n,n.parent,o);let r=n.parent.getAttribute("loading-number");return r?r=`${Number.parseInt(r)+1}`:r="1",n.parent.setAttribute("loading-number",r),n.parent.appendChild(o.$el),e.nextTick(()=>o.visible.value=n.visible),n.fullscreen&&(ic=o),o},EQ=t=>{var n,o,r,l;let a;return De(t.target)?a=(n=document.querySelector(t.target))!=null?n:document.body:a=t.target||document.body,{parent:a===document.body||t.body?document.body:a,background:t.background||"",svg:t.svg||"",svgViewBox:t.svgViewBox||"",spinner:t.spinner||!1,text:t.text||"",fullscreen:a===document.body&&((o=t.fullscreen)!=null?o:!0),lock:(r=t.lock)!=null?r:!1,customClass:t.customClass||"",visible:(l=t.visible)!=null?l:!0,target:a}},NQ=async(t,n,o)=>{const{nextZIndex:r}=o.vm.zIndex||o.vm._.exposed.zIndex,l={};if(t.fullscreen)o.originalPosition.value=Go(document.body,"position"),o.originalOverflow.value=Go(document.body,"overflow"),l.zIndex=r();else if(t.parent===document.body){o.originalPosition.value=Go(document.body,"position"),await e.nextTick();for(const a of["top","left"]){const s=a==="top"?"scrollTop":"scrollLeft";l[a]=`${t.target.getBoundingClientRect()[a]+document.body[s]+document.documentElement[s]-Number.parseInt(Go(document.body,`margin-${a}`),10)}px`}for(const a of["height","width"])l[a]=`${t.target.getBoundingClientRect()[a]}px`}else o.originalPosition.value=Go(n,"position");for(const[a,s]of Object.entries(l))o.$el.style[a]=s},vN=(t,n,o)=>{const r=o.vm.ns||o.vm._.exposed.ns;["absolute","fixed","sticky"].includes(o.originalPosition.value)?un(n,r.bm("parent","relative")):so(n,r.bm("parent","relative")),t.fullscreen&&t.lock?so(n,r.bm("parent","hidden")):un(n,r.bm("parent","hidden"))},ym=Symbol("ElLoading"),VN=(t,n)=>{var o,r,l,a;const s=n.instance,i=p=>nt(n.value)?n.value[p]:void 0,c=p=>{const h=De(p)&&(s==null?void 0:s[p])||p;return h&&e.ref(h)},f=p=>c(i(p)||t.getAttribute(`element-loading-${$_(p)}`)),u=(o=i("fullscreen"))!=null?o:n.modifiers.fullscreen,d={text:f("text"),svg:f("svg"),svgViewBox:f("svgViewBox"),spinner:f("spinner"),background:f("background"),customClass:f("customClass"),fullscreen:u,target:(r=i("target"))!=null?r:u?void 0:t,body:(l=i("body"))!=null?l:n.modifiers.body,lock:(a=i("lock"))!=null?a:n.modifiers.lock};t[ym]={options:d,instance:cc(d)}},_Q=(t,n)=>{for(const o of Object.keys(n))e.isRef(n[o])&&(n[o].value=t[o])},dc={mounted(t,n){n.value&&VN(t,n)},updated(t,n){const o=t[ym];n.oldValue!==n.value&&(n.value&&!n.oldValue?VN(t,n):n.value&&n.oldValue?nt(n.value)&&_Q(n.value,o.options):o==null||o.instance.close())},unmounted(t){var n;(n=t[ym])==null||n.instance.close()}},MN={install(t){t.directive("loading",dc),t.config.globalProperties.$loading=cc},directive:dc,service:cc},bm=["success","info","warning","error"],an=ut({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:He?document.body:void 0}),IN=le({customClass:{type:String,default:an.customClass},center:{type:Boolean,default:an.center},dangerouslyUseHTMLString:{type:Boolean,default:an.dangerouslyUseHTMLString},duration:{type:Number,default:an.duration},icon:{type:ot,default:an.icon},id:{type:String,default:an.id},message:{type:W([String,Object,Function]),default:an.message},onClose:{type:W(Function),required:!1},showClose:{type:Boolean,default:an.showClose},type:{type:String,values:bm,default:an.type},offset:{type:Number,default:an.offset},zIndex:{type:Number,default:an.zIndex},grouping:{type:Boolean,default:an.grouping},repeatNum:{type:Number,default:an.repeatNum}}),PN={destroy:()=>!0},Zn=e.shallowReactive([]),BQ=t=>{const n=Zn.findIndex(l=>l.id===t),o=Zn[n];let r;return n>0&&(r=Zn[n-1]),{current:o,prev:r}},$Q=t=>{const{prev:n}=BQ(t);return n?n.vm.exposed.bottom.value:0},TQ=(t,n)=>Zn.findIndex(r=>r.id===t)>0?20:n,vQ=["id"],VQ=["innerHTML"],MQ=e.defineComponent({name:"ElMessage"}),IQ=e.defineComponent({...MQ,props:IN,emits:PN,setup(t,{expose:n}){const o=t,{Close:r}=Ud,{ns:l,zIndex:a}=ga("message"),{currentZIndex:s,nextZIndex:i}=a,c=e.ref(),f=e.ref(!1),u=e.ref(0);let d;const p=e.computed(()=>o.type?o.type==="error"?"danger":o.type:"info"),h=e.computed(()=>{const _=o.type;return{[l.bm("icon",_)]:_&&Jo[_]}}),g=e.computed(()=>o.icon||Jo[o.type]||""),m=e.computed(()=>$Q(o.id)),b=e.computed(()=>TQ(o.id,o.offset)+m.value),y=e.computed(()=>u.value+b.value),C=e.computed(()=>({top:`${b.value}px`,zIndex:s.value}));function k(){o.duration!==0&&({stop:d}=pr(()=>{E()},o.duration))}function w(){d==null||d()}function E(){f.value=!1}function S({code:_}){_===pe.esc&&E()}return e.onMounted(()=>{k(),i(),f.value=!0}),e.watch(()=>o.repeatNum,()=>{w(),k()}),rt(document,"keydown",S),jt(c,()=>{u.value=c.value.getBoundingClientRect().height}),n({visible:f,bottom:y,close:E}),(_,B)=>(e.openBlock(),e.createBlock(e.Transition,{name:e.unref(l).b("fade"),onBeforeLeave:_.onClose,onAfterLeave:B[0]||(B[0]=M=>_.$emit("destroy")),persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{id:_.id,ref_key:"messageRef",ref:c,class:e.normalizeClass([e.unref(l).b(),{[e.unref(l).m(_.type)]:_.type&&!_.icon},e.unref(l).is("center",_.center),e.unref(l).is("closable",_.showClose),_.customClass]),style:e.normalizeStyle(e.unref(C)),role:"alert",onMouseenter:w,onMouseleave:k},[_.repeatNum>1?(e.openBlock(),e.createBlock(e.unref(jf),{key:0,value:_.repeatNum,type:e.unref(p),class:e.normalizeClass(e.unref(l).e("badge"))},null,8,["value","type","class"])):e.createCommentVNode("v-if",!0),e.unref(g)?(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass([e.unref(l).e("icon"),e.unref(h)])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(g))))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.renderSlot(_.$slots,"default",{},()=>[_.dangerouslyUseHTMLString?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),e.createElementVNode("p",{class:e.normalizeClass(e.unref(l).e("content")),innerHTML:_.message},null,10,VQ)],2112)):(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(e.unref(l).e("content"))},e.toDisplayString(_.message),3))]),_.showClose?(e.openBlock(),e.createBlock(e.unref(fe),{key:2,class:e.normalizeClass(e.unref(l).e("closeBtn")),onClick:e.withModifiers(E,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(r))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0)],46,vQ),[[e.vShow,f.value]])]),_:3},8,["name","onBeforeLeave"]))}});var PQ=se(IQ,[["__file","message.vue"]]);let RQ=1;const RN=t=>{const n=!t||De(t)||e.isVNode(t)||qe(t)?{message:t}:t,o={...an,...n};if(!o.appendTo)o.appendTo=document.body;else if(De(o.appendTo)){let r=document.querySelector(o.appendTo);Mn(r)||(r=document.body),o.appendTo=r}return o},OQ=t=>{const n=Zn.indexOf(t);if(n===-1)return;Zn.splice(n,1);const{handler:o}=t;o.close()},AQ=({appendTo:t,...n},o)=>{const r=`message_${RQ++}`,l=n.onClose,a=document.createElement("div"),s={...n,id:r,onClose:()=>{l==null||l(),OQ(u)},onDestroy:()=>{e.render(null,a)}},i=e.createVNode(PQ,s,qe(s.message)||e.isVNode(s.message)?{default:qe(s.message)?s.message:()=>s.message}:null);i.appContext=o||Pl._context,e.render(i,a),t.appendChild(a.firstElementChild);const c=i.component,u={id:r,vnode:i,vm:c,handler:{close:()=>{c.exposed.visible.value=!1}},props:i.component.props};return u},Pl=(t={},n)=>{if(!He)return{close:()=>{}};if(be(Zs.max)&&Zn.length>=Zs.max)return{close:()=>{}};const o=RN(t);if(o.grouping&&Zn.length){const l=Zn.find(({vnode:a})=>{var s;return((s=a.props)==null?void 0:s.message)===o.message});if(l)return l.props.repeatNum+=1,l.props.type=o.type,l.handler}const r=AQ(o,n);return Zn.push(r),r.handler};bm.forEach(t=>{Pl[t]=(n={},o)=>{const r=RN(n);return Pl({...r,type:t},o)}});function zQ(t){for(const n of Zn)(!t||t===n.props.type)&&n.handler.close()}Pl.closeAll=zQ,Pl._context=null;var DQ=Pl;const ON=vy(DQ,"$message"),LQ=e.defineComponent({name:"ElMessageBox",directives:{TrapFocus:Iw},components:{ElButton:At,ElFocusTrap:ci,ElInput:Ft,ElOverlay:Ai,ElIcon:fe,...Ud},inheritAttrs:!1,props:{buttonSize:{type:String,validator:Yd},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,roundButton:{default:!1,type:Boolean},container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(t,{emit:n}){const{locale:o,zIndex:r,ns:l,size:a}=ga("message-box",e.computed(()=>t.buttonSize)),{t:s}=o,{nextZIndex:i}=r,c=e.ref(!1),f=e.reactive({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:null,inputValidator:null,inputErrorMessage:"",message:null,modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:i()}),u=e.computed(()=>{const D=f.type;return{[l.bm("icon",D)]:D&&Jo[D]}}),d=rn(),p=rn(),h=e.computed(()=>f.icon||Jo[f.type]||""),g=e.computed(()=>!!f.message),m=e.ref(),b=e.ref(),y=e.ref(),C=e.ref(),k=e.ref(),w=e.computed(()=>f.confirmButtonClass);e.watch(()=>f.inputValue,async D=>{await e.nextTick(),t.boxType==="prompt"&&D!==null&&T()},{immediate:!0}),e.watch(()=>c.value,D=>{var z,$;D&&(t.boxType!=="prompt"&&(f.autofocus?y.value=($=(z=k.value)==null?void 0:z.$el)!=null?$:m.value:y.value=m.value),f.zIndex=i()),t.boxType==="prompt"&&(D?e.nextTick().then(()=>{var R;C.value&&C.value.$el&&(f.autofocus?y.value=(R=I())!=null?R:m.value:y.value=m.value)}):(f.editorErrorMessage="",f.validateError=!1))});const E=e.computed(()=>t.draggable);Zd(m,b,E),e.onMounted(async()=>{await e.nextTick(),t.closeOnHashChange&&window.addEventListener("hashchange",S)}),e.onBeforeUnmount(()=>{t.closeOnHashChange&&window.removeEventListener("hashchange",S)});function S(){!c.value||(c.value=!1,e.nextTick(()=>{f.action&&n("action",f.action)}))}const _=()=>{t.closeOnClickModal&&P(f.distinguishCancelAndClose?"close":"cancel")},B=Ws(_),M=D=>{if(f.inputType!=="textarea")return D.preventDefault(),P("confirm")},P=D=>{var z;t.boxType==="prompt"&&D==="confirm"&&!T()||(f.action=D,f.beforeClose?(z=f.beforeClose)==null||z.call(f,D,f,S):S())},T=()=>{if(t.boxType==="prompt"){const D=f.inputPattern;if(D&&!D.test(f.inputValue||""))return f.editorErrorMessage=f.inputErrorMessage||s("el.messagebox.error"),f.validateError=!0,!1;const z=f.inputValidator;if(typeof z=="function"){const $=z(f.inputValue);if($===!1)return f.editorErrorMessage=f.inputErrorMessage||s("el.messagebox.error"),f.validateError=!0,!1;if(typeof $=="string")return f.editorErrorMessage=$,f.validateError=!0,!1}}return f.editorErrorMessage="",f.validateError=!1,!0},I=()=>{const D=C.value.$refs;return D.input||D.textarea},v=()=>{P("close")},O=()=>{t.closeOnPressEscape&&v()};return t.lockScroll&&tf(c),{...e.toRefs(f),ns:l,overlayEvent:B,visible:c,hasMessage:g,typeClass:u,contentId:d,inputId:p,btnSize:a,iconComponent:h,confirmButtonClasses:w,rootRef:m,focusStartRef:y,headerRef:b,inputRef:C,confirmRef:k,doClose:S,handleClose:v,onCloseRequested:O,handleWrapperClick:_,handleInputEnter:M,handleAction:P,t:s}}}),xQ=["aria-label","aria-describedby"],FQ=["aria-label"],HQ=["id"];function KQ(t,n,o,r,l,a){const s=e.resolveComponent("el-icon"),i=e.resolveComponent("close"),c=e.resolveComponent("el-input"),f=e.resolveComponent("el-button"),u=e.resolveComponent("el-focus-trap"),d=e.resolveComponent("el-overlay");return e.openBlock(),e.createBlock(e.Transition,{name:"fade-in-linear",onAfterLeave:n[11]||(n[11]=p=>t.$emit("vanish")),persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(d,{"z-index":t.zIndex,"overlay-class":[t.ns.is("message-box"),t.modalClass],mask:t.modal},{default:e.withCtx(()=>[e.createElementVNode("div",{role:"dialog","aria-label":t.title,"aria-modal":"true","aria-describedby":t.showInput?void 0:t.contentId,class:e.normalizeClass(`${t.ns.namespace.value}-overlay-message-box`),onClick:n[8]||(n[8]=(...p)=>t.overlayEvent.onClick&&t.overlayEvent.onClick(...p)),onMousedown:n[9]||(n[9]=(...p)=>t.overlayEvent.onMousedown&&t.overlayEvent.onMousedown(...p)),onMouseup:n[10]||(n[10]=(...p)=>t.overlayEvent.onMouseup&&t.overlayEvent.onMouseup(...p))},[e.createVNode(u,{loop:"",trapped:t.visible,"focus-trap-el":t.rootRef,"focus-start-el":t.focusStartRef,onReleaseRequested:t.onCloseRequested},{default:e.withCtx(()=>[e.createElementVNode("div",{ref:"rootRef",class:e.normalizeClass([t.ns.b(),t.customClass,t.ns.is("draggable",t.draggable),{[t.ns.m("center")]:t.center}]),style:e.normalizeStyle(t.customStyle),tabindex:"-1",onClick:n[7]||(n[7]=e.withModifiers(()=>{},["stop"]))},[t.title!==null&&t.title!==void 0?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"headerRef",class:e.normalizeClass(t.ns.e("header"))},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("title"))},[t.iconComponent&&t.center?(e.openBlock(),e.createBlock(s,{key:0,class:e.normalizeClass([t.ns.e("status"),t.typeClass])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconComponent)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.createElementVNode("span",null,e.toDisplayString(t.title),1)],2),t.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass(t.ns.e("headerbtn")),"aria-label":t.t("el.messagebox.close"),onClick:n[0]||(n[0]=p=>t.handleAction(t.distinguishCancelAndClose?"close":"cancel")),onKeydown:n[1]||(n[1]=e.withKeys(e.withModifiers(p=>t.handleAction(t.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[e.createVNode(s,{class:e.normalizeClass(t.ns.e("close"))},{default:e.withCtx(()=>[e.createVNode(i)]),_:1},8,["class"])],42,FQ)):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{id:t.contentId,class:e.normalizeClass(t.ns.e("content"))},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("container"))},[t.iconComponent&&!t.center&&t.hasMessage?(e.openBlock(),e.createBlock(s,{key:0,class:e.normalizeClass([t.ns.e("status"),t.typeClass])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconComponent)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),t.hasMessage?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(t.ns.e("message"))},[e.renderSlot(t.$slots,"default",{},()=>[t.dangerouslyUseHTMLString?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.showInput?"label":"p"),{key:1,for:t.showInput?t.inputId:void 0,innerHTML:t.message},null,8,["for","innerHTML"])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.showInput?"label":"p"),{key:0,for:t.showInput?t.inputId:void 0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.dangerouslyUseHTMLString?"":t.message),1)]),_:1},8,["for"]))])],2)):e.createCommentVNode("v-if",!0)],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("input"))},[e.createVNode(c,{id:t.inputId,ref:"inputRef",modelValue:t.inputValue,"onUpdate:modelValue":n[2]||(n[2]=p=>t.inputValue=p),type:t.inputType,placeholder:t.inputPlaceholder,"aria-invalid":t.validateError,class:e.normalizeClass({invalid:t.validateError}),onKeydown:e.withKeys(t.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("errormsg")),style:e.normalizeStyle({visibility:t.editorErrorMessage?"visible":"hidden"})},e.toDisplayString(t.editorErrorMessage),7)],2),[[e.vShow,t.showInput]])],10,HQ),e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("btns"))},[t.showCancelButton?(e.openBlock(),e.createBlock(f,{key:0,loading:t.cancelButtonLoading,class:e.normalizeClass([t.cancelButtonClass]),round:t.roundButton,size:t.btnSize,onClick:n[3]||(n[3]=p=>t.handleAction("cancel")),onKeydown:n[4]||(n[4]=e.withKeys(e.withModifiers(p=>t.handleAction("cancel"),["prevent"]),["enter"]))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.cancelButtonText||t.t("el.messagebox.cancel")),1)]),_:1},8,["loading","class","round","size"])):e.createCommentVNode("v-if",!0),e.withDirectives(e.createVNode(f,{ref:"confirmRef",type:"primary",loading:t.confirmButtonLoading,class:e.normalizeClass([t.confirmButtonClasses]),round:t.roundButton,disabled:t.confirmButtonDisabled,size:t.btnSize,onClick:n[5]||(n[5]=p=>t.handleAction("confirm")),onKeydown:n[6]||(n[6]=e.withKeys(e.withModifiers(p=>t.handleAction("confirm"),["prevent"]),["enter"]))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.confirmButtonText||t.t("el.messagebox.confirm")),1)]),_:1},8,["loading","class","round","disabled","size"]),[[e.vShow,t.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,xQ)]),_:3},8,["z-index","overlay-class","mask"]),[[e.vShow,t.visible]])]),_:3})}var WQ=se(LQ,[["render",KQ],["__file","index.vue"]]);const Wa=new Map,jQ=t=>{let n=document.body;return t.appendTo&&(De(t.appendTo)&&(n=document.querySelector(t.appendTo)),Mn(t.appendTo)&&(n=t.appendTo),Mn(n)||(n=document.body)),n},UQ=(t,n,o=null)=>{const r=e.createVNode(WQ,t,qe(t.message)||e.isVNode(t.message)?{default:qe(t.message)?t.message:()=>t.message}:null);return r.appContext=o,e.render(r,n),jQ(t).appendChild(n.firstElementChild),r.component},GQ=()=>document.createElement("div"),qQ=(t,n)=>{const o=GQ();t.onVanish=()=>{e.render(null,o),Wa.delete(l)},t.onAction=a=>{const s=Wa.get(l);let i;t.showInput?i={value:l.inputValue,action:a}:i=a,t.callback?t.callback(i,r.proxy):a==="cancel"||a==="close"?t.distinguishCancelAndClose&&a!=="cancel"?s.reject("close"):s.reject("cancel"):s.resolve(i)};const r=UQ(t,o,n),l=r.proxy;for(const a in t)Lt(t,a)&&!Lt(l.$props,a)&&(l[a]=t[a]);return l.visible=!0,l};function Rl(t,n=null){if(!He)return Promise.reject();let o;return De(t)||e.isVNode(t)?t={message:t}:o=t.callback,new Promise((r,l)=>{const a=qQ(t,n!=null?n:Rl._context);Wa.set(a,{options:t,callback:o,resolve:r,reject:l})})}const YQ=["alert","confirm","prompt"],XQ={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};YQ.forEach(t=>{Rl[t]=ZQ(t)});function ZQ(t){return(n,o,r,l)=>{let a="";return nt(o)?(r=o,a=""):$t(o)?a="":a=o,Rl(Object.assign({title:a,message:n,type:"",...XQ[t]},r,{boxType:t}),l)}}Rl.close=()=>{Wa.forEach((t,n)=>{n.doClose()}),Wa.clear()},Rl._context=null;const fr=Rl;fr.install=t=>{fr._context=t._context,t.config.globalProperties.$msgbox=fr,t.config.globalProperties.$messageBox=fr,t.config.globalProperties.$alert=fr.alert,t.config.globalProperties.$confirm=fr.confirm,t.config.globalProperties.$prompt=fr.prompt};const AN=fr,Cm=["success","info","warning","error"],zN=le({customClass:{type:String,default:""},dangerouslyUseHTMLString:{type:Boolean,default:!1},duration:{type:Number,default:4500},icon:{type:ot},id:{type:String,default:""},message:{type:W([String,Object]),default:""},offset:{type:Number,default:0},onClick:{type:W(Function),default:()=>{}},onClose:{type:W(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:[...Cm,""],default:""},zIndex:Number}),DN={destroy:()=>!0},JQ=["id"],QQ=["textContent"],eee={key:0},tee=["innerHTML"],nee=e.defineComponent({name:"ElNotification"}),oee=e.defineComponent({...nee,props:zN,emits:DN,setup(t,{expose:n}){const o=t,{ns:r,zIndex:l}=ga("notification"),{nextZIndex:a,currentZIndex:s}=l,{Close:i}=Ty,c=e.ref(!1);let f;const u=e.computed(()=>{const k=o.type;return k&&Jo[o.type]?r.m(k):""}),d=e.computed(()=>o.type&&Jo[o.type]||o.icon),p=e.computed(()=>o.position.endsWith("right")?"right":"left"),h=e.computed(()=>o.position.startsWith("top")?"top":"bottom"),g=e.computed(()=>{var k;return{[h.value]:`${o.offset}px`,zIndex:(k=o.zIndex)!=null?k:s.value}});function m(){o.duration>0&&({stop:f}=pr(()=>{c.value&&y()},o.duration))}function b(){f==null||f()}function y(){c.value=!1}function C({code:k}){k===pe.delete||k===pe.backspace?b():k===pe.esc?c.value&&y():m()}return e.onMounted(()=>{m(),a(),c.value=!0}),rt(document,"keydown",C),n({visible:c,close:y}),(k,w)=>(e.openBlock(),e.createBlock(e.Transition,{name:e.unref(r).b("fade"),onBeforeLeave:k.onClose,onAfterLeave:w[1]||(w[1]=E=>k.$emit("destroy")),persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{id:k.id,class:e.normalizeClass([e.unref(r).b(),k.customClass,e.unref(p)]),style:e.normalizeStyle(e.unref(g)),role:"alert",onMouseenter:b,onMouseleave:m,onClick:w[0]||(w[0]=(...E)=>k.onClick&&k.onClick(...E))},[e.unref(d)?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass([e.unref(r).e("icon"),e.unref(u)])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(d))))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).e("group"))},[e.createElementVNode("h2",{class:e.normalizeClass(e.unref(r).e("title")),textContent:e.toDisplayString(k.title)},null,10,QQ),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).e("content")),style:e.normalizeStyle(k.title?void 0:{margin:0})},[e.renderSlot(k.$slots,"default",{},()=>[k.dangerouslyUseHTMLString?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),e.createElementVNode("p",{innerHTML:k.message},null,8,tee)],2112)):(e.openBlock(),e.createElementBlock("p",eee,e.toDisplayString(k.message),1))])],6),[[e.vShow,k.message]]),k.showClose?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(r).e("closeBtn")),onClick:e.withModifiers(y,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(i))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0)],2)],46,JQ),[[e.vShow,c.value]])]),_:3},8,["name","onBeforeLeave"]))}});var ree=se(oee,[["__file","notification.vue"]]);const fc={"top-left":[],"top-right":[],"bottom-left":[],"bottom-right":[]},wm=16;let lee=1;const Ol=function(t={},n=null){if(!He)return{close:()=>{}};(typeof t=="string"||e.isVNode(t))&&(t={message:t});const o=t.position||"top-right";let r=t.offset||0;fc[o].forEach(({vm:u})=>{var d;r+=(((d=u.el)==null?void 0:d.offsetHeight)||0)+wm}),r+=wm;const l=`notification_${lee++}`,a=t.onClose,s={...t,offset:r,id:l,onClose:()=>{aee(l,o,a)}};let i=document.body;Mn(t.appendTo)?i=t.appendTo:De(t.appendTo)&&(i=document.querySelector(t.appendTo)),Mn(i)||(i=document.body);const c=document.createElement("div"),f=e.createVNode(ree,s,e.isVNode(s.message)?{default:()=>s.message}:null);return f.appContext=n!=null?n:Ol._context,f.props.onDestroy=()=>{e.render(null,c)},e.render(f,c),fc[o].push({vm:f}),i.appendChild(c.firstElementChild),{close:()=>{f.component.exposed.visible.value=!1}}};Cm.forEach(t=>{Ol[t]=(n={})=>((typeof n=="string"||e.isVNode(n))&&(n={message:n}),Ol({...n,type:t}))});function aee(t,n,o){const r=fc[n],l=r.findIndex(({vm:f})=>{var u;return((u=f.component)==null?void 0:u.props.id)===t});if(l===-1)return;const{vm:a}=r[l];if(!a)return;o==null||o(a);const s=a.el.offsetHeight,i=n.split("-")[0];r.splice(l,1);const c=r.length;if(!(c<1))for(let f=l;f{n.component.exposed.visible.value=!1})}Ol.closeAll=see,Ol._context=null;var iee=Ol;const LN=vy(iee,"$notify");var cee=[TN,MN,ON,AN,LN,ip],km=Xb([...yQ,...cee]);const dee=km.install,fee=km.version;V.BAR_MAP=Rf,V.CASCADER_PANEL_INJECTION_KEY=Ni,V.CHANGE_EVENT=at,V.ClickOutside=Po,V.CommonPicker=su,V.CommonProps=vu,V.DEFAULT_FORMATS_DATE=Ir,V.DEFAULT_FORMATS_DATEPICKER=Sw,V.DEFAULT_FORMATS_TIME=hi,V.DROPDOWN_COLLECTION_INJECTION_KEY=jk,V.DROPDOWN_COLLECTION_ITEM_INJECTION_KEY=Uk,V.DROPDOWN_INJECTION_KEY=va,V.DefaultProps=E1,V.DynamicSizeGrid=uE,V.DynamicSizeList=nE,V.EVENT_CODE=pe,V.Effect=z6,V.ElAffix=eC,V.ElAlert=lC,V.ElAside=ak,V.ElAutoResizer=k2,V.ElAutocomplete=ZC,V.ElAvatar=ew,V.ElBacktop=rw,V.ElBadge=jf,V.ElBreadcrumb=cw,V.ElBreadcrumbItem=dw,V.ElButton=At,V.ElButtonGroup=Jf,V.ElCalendar=Zw,V.ElCard=Qw,V.ElCarousel=l1,V.ElCarouselItem=a1,V.ElCascader=M1,V.ElCascaderPanel=$1,V.ElCheckTag=R1,V.ElCheckbox=En,V.ElCheckboxButton=u1,V.ElCheckboxGroup=Su,V.ElCol=x1,V.ElCollapse=U1,V.ElCollapseItem=G1,V.ElCollapseTransition=K1,V.ElCollection=Kk,V.ElCollectionItem=Wk,V.ElColorPicker=ek,V.ElConfigProvider=Yb,V.ElContainer=lk,V.ElCountdown=OE,V.ElDatePicker=Sk,V.ElDescriptions=_k,V.ElDescriptionsItem=Bk,V.ElDialog=Vk,V.ElDivider=Uu,V.ElDrawer=Rk,V.ElDropdown=Xk,V.ElDropdownItem=Zk,V.ElDropdownMenu=Jk,V.ElEmpty=Ju,V.ElFooter=sk,V.ElForm=bC,V.ElFormItem=CC,V.ElHeader=ik,V.ElIcon=fe,V.ElImage=rS,V.ElImageViewer=Qu,V.ElInfiniteScroll=TN,V.ElInput=Ft,V.ElInputNumber=ep,V.ElLink=cS,V.ElLoading=MN,V.ElLoadingDirective=dc,V.ElLoadingService=cc,V.ElMain=ck,V.ElMenu=wS,V.ElMenuItem=kS,V.ElMenuItemGroup=SS,V.ElMessage=ON,V.ElMessageBox=AN,V.ElNotification=LN,V.ElOption=Va,V.ElOptionGroup=vS,V.ElOverlay=Ai,V.ElPageHeader=BS,V.ElPagination=PS,V.ElPopconfirm=AS,V.ElPopover=xS,V.ElPopoverDirective=ip,V.ElPopper=Wf,V.ElPopperArrow=vC,V.ElPopperContent=HC,V.ElPopperTrigger=PC,V.ElProgress=cp,V.ElRadio=Bu,V.ElRadioButton=k1,V.ElRadioGroup=w1,V.ElRate=WS,V.ElResult=US,V.ElRow=D1,V.ElScrollbar=mo,V.ElSelect=sr,V.ElSelectV2=gE,V.ElSkeleton=CE,V.ElSkeletonItem=wE,V.ElSlider=NE,V.ElSpace=vE,V.ElStatistic=Tp,V.ElStep=FE,V.ElSteps=xE,V.ElSubMenu=ES,V.ElSwitch=WE,V.ElTabPane=P2,V.ElTable=l2,V.ElTableColumn=a2,V.ElTableV2=w2,V.ElTabs=I2,V.ElTag=bl,V.ElText=O2,V.ElTimePicker=jw,V.ElTimeSelect=z2,V.ElTimeline=x2,V.ElTimelineItem=F2,V.ElTooltip=Zt,V.ElTransfer=Y2,V.ElTree=Q2,V.ElTreeSelect=tN,V.ElTreeV2=dN,V.ElUpload=EN,V.ElWatermark=BN,V.FIRST_KEYS=Fk,V.FIRST_LAST_KEYS=Hk,V.FORWARD_REF_INJECTION_KEY=bf,V.FixedSizeGrid=rE,V.FixedSizeList=Np,V.GAP=Vr,V.ID_INJECTION_KEY=wb,V.INPUT_EVENT=qt,V.INSTALLED_KEY=qd,V.IconComponentMap=dp,V.IconMap=zr,V.LAST_KEYS=Zu,V.LEFT_CHECK_CHANGE_EVENT=Qp,V.Mousewheel=Ww,V.POPPER_CONTENT_INJECTION_KEY=Af,V.POPPER_INJECTION_KEY=ti,V.RIGHT_CHECK_CHANGE_EVENT=em,V.ROOT_PICKER_INJECTION_KEY=Ii,V.RowAlign=A1,V.RowJustify=O1,V.SIZE_INJECTION_KEY=_f,V.TOOLTIP_INJECTION_KEY=ka,V.TableV2=b2,V.TableV2Alignment=Tl,V.TableV2FixedDir=Ap,V.TableV2Placeholder=vl,V.TableV2SortOrder=$l,V.TimePickPanel=Ea,V.TrapFocus=Iw,V.UPDATE_MODEL_EVENT=Ie,V.WEEK_DAYS=Is,V.affixEmits=Jb,V.affixProps=Zb,V.alertEffects=nC,V.alertEmits=rC,V.alertProps=oC,V.arrowMiddleware=jb,V.autoResizerProps=C2,V.autocompleteEmits=YC,V.autocompleteProps=qC,V.avatarEmits=QC,V.avatarProps=JC,V.backtopEmits=nw,V.backtopProps=tw,V.badgeProps=lw,V.breadcrumbItemProps=sw,V.breadcrumbKey=Uf,V.breadcrumbProps=aw,V.buildLocaleContext=Oy,V.buildTimeList=gi,V.buildTranslator=Py,V.buttonEmits=uw,V.buttonGroupContextKey=Gf,V.buttonNativeTypes=fw,V.buttonProps=ui,V.buttonTypes=fi,V.calendarEmits=Xw,V.calendarProps=Yw,V.cardProps=Jw,V.carouselContextKey=Cu,V.carouselEmits=t1,V.carouselItemProps=o1,V.carouselProps=e1,V.cascaderEmits=V1,V.cascaderProps=v1,V.checkTagEmits=P1,V.checkTagProps=I1,V.checkboxEmits=ku,V.checkboxGroupContextKey=Or,V.checkboxGroupEmits=d1,V.checkboxGroupProps=c1,V.checkboxProps=wu,V.colProps=L1,V.collapseContextKey=Iu,V.collapseEmits=H1,V.collapseItemProps=W1,V.collapseProps=F1,V.colorPickerContextKey=Ru,V.colorPickerEmits=Y1,V.colorPickerProps=q1,V.componentSizeMap=My,V.componentSizes=Wn,V.configProviderContextKey=$f,V.configProviderProps=qb,V.countdownEmits=IE,V.countdownProps=ME,V.createModelToggleComposable=nf,V.dateEquals=ou,V.datePickTypes=Vy,V.datePickerProps=gk,V.dayjs=ve,V.default=km,V.defaultInitialZIndex=Cf,V.defaultNamespace=ll,V.descriptionProps=Ek,V.dialogEmits=Wu,V.dialogInjectionKey=Hu,V.dialogProps=Ku,V.dividerProps=Mk,V.drawerEmits=Pk,V.drawerProps=Ik,V.dropdownItemProps=Xu,V.dropdownMenuProps=xk,V.dropdownProps=Ta,V.elPaginationKey=rp,V.emitChangeFn=Mu,V.emptyProps=Qk,V.extractDateFormat=tu,V.extractTimeFormat=nu,V.formContextKey=nr,V.formEmits=sC,V.formItemContextKey=Gn,V.formItemProps=hC,V.formItemValidateStates=mC,V.formProps=aC,V.formatter=au,V.genFileId=sc,V.getPositionDataWithUnit=g8,V.iconProps=tC,V.imageEmits=oS,V.imageProps=nS,V.imageViewerEmits=tS,V.imageViewerProps=eS,V.inputEmits=SC,V.inputNumberEmits=aS,V.inputNumberProps=lS,V.inputProps=kC,V.install=dee,V.linkEmits=iS,V.linkProps=sS,V.localeContextKey=Jd,V.makeInstaller=Xb,V.makeList=yi,V.menuEmits=mS,V.menuItemEmits=gS,V.menuItemGroupProps=bS,V.menuItemProps=hS,V.menuProps=pS,V.messageConfig=Zs,V.messageDefaults=an,V.messageEmits=PN,V.messageProps=IN,V.messageTypes=bm,V.namespaceContextKey=ef,V.notificationEmits=DN,V.notificationProps=zN,V.notificationTypes=Cm,V.overlayEmits=Tk,V.overlayProps=$k,V.pageHeaderEmits=_S,V.pageHeaderProps=NS,V.paginationEmits=MS,V.paginationProps=VS,V.parseDate=lu,V.popconfirmEmits=OS,V.popconfirmProps=RS,V.popoverEmits=DS,V.popoverProps=zS,V.popperArrowProps=oi,V.popperContentEmits=Kf,V.popperContentProps=di,V.popperCoreConfigProps=Hf,V.popperProps=ni,V.popperTriggerProps=ri,V.progressProps=FS,V.provideGlobalConfig=Xs,V.radioButtonProps=h1,V.radioEmits=Nu,V.radioGroupEmits=b1,V.radioGroupKey=_u,V.radioGroupProps=y1,V.radioProps=p1,V.radioPropsBase=Eu,V.rangeArr=Io,V.rateEmits=KS,V.rateProps=HS,V.renderThumbStyle=EC,V.resultProps=jS,V.roleTypes=TC,V.rowContextKey=Vu,V.rowProps=z1,V.scrollbarContextKey=Of,V.scrollbarEmits=$C,V.scrollbarProps=BC,V.selectGroupKey=lp,V.selectKey=wl,V.selectV2InjectionKey=Ui,V.skeletonItemProps=bE,V.skeletonProps=yE,V.sliderContextKey=Bp,V.sliderEmits=SE,V.sliderProps=kE,V.spaceProps=TE,V.statisticProps=VE,V.stepProps=DE,V.stepsEmits=zE,V.stepsProps=AE,V.subMenuProps=uS,V.switchEmits=KE,V.switchProps=HE,V.tabBarProps=S2,V.tabNavEmits=_2,V.tabNavProps=N2,V.tabPaneProps=v2,V.tableV2Props=p2,V.tableV2RowProps=dr,V.tabsEmits=T2,V.tabsProps=$2,V.tabsRootContextKey=La,V.tagEmits=T1,V.tagProps=$i,V.textProps=R2,V.thumbProps=NC,V.timePickerDefaultProps=bi,V.timeUnits=eu,V.timelineItemProps=D2,V.tooltipEmits=GC,V.transferCheckedChangeFn=ec,V.transferEmits=G2,V.transferProps=Hr,V.translate=Ry,V.uploadBaseProps=um,V.uploadContentProps=CN,V.uploadContextKey=dm,V.uploadDraggerEmits=yN,V.uploadDraggerProps=gN,V.uploadListEmits=mN,V.uploadListProps=pN,V.uploadListTypes=fm,V.uploadProps=uN,V.useAttrs=As,V.useCascaderConfig=N1,V.useCursor=Ub,V.useDelayedRender=Kx,V.useDelayedToggle=yf,V.useDelayedToggleProps=_b,V.useDeprecated=jn,V.useDialog=ju,V.useDisabled=I8,V.useDraggable=Zd,V.useEscapeKeydown=Sb,V.useFloating=Wb,V.useFloatingProps=m8,V.useFocus=pL,V.useFocusController=Bf,V.useFormDisabled=Yt,V.useFormItem=Xt,V.useFormItemInputId=vo,V.useFormSize=St,V.useForwardRef=Bb,V.useForwardRefDirective=$b,V.useGetDerivedNamespace=Ls,V.useGlobalComponentSettings=ga,V.useGlobalConfig=ha,V.useGlobalSize=Gb,V.useId=rn,V.useIdInjection=hf,V.useLocale=Ke,V.useLockscreen=tf,V.useModal=vL,V.useModelToggle=IL,V.useModelToggleEmits=RL,V.useModelToggleProps=PL,V.useNamespace=Q,V.useOrderedChildren=qs,V.usePopper=sb,V.usePopperArrowProps=H6,V.usePopperContainer=Nb,V.usePopperContainerId=gf,V.usePopperContentEmits=cF,V.usePopperContentProps=iF,V.usePopperCoreConfigProps=sF,V.usePopperProps=D6,V.usePopperTriggerProps=U6,V.usePreventGlobal=OL,V.useProp=of,V.useSameTarget=Ws,V.useSize=M8,V.useSizeProp=Vt,V.useSizeProps=b8,V.useSpace=$E,V.useTeleport=Dx,V.useThrottleRender=ib,V.useTimeout=mf,V.useTooltipContentProps=Pt,V.useTooltipModelToggle=jC,V.useTooltipModelToggleEmits=WC,V.useTooltipModelToggleProps=KC,V.useTooltipProps=UC,V.useTooltipTriggerProps=gl,V.useTransitionFallthrough=Fx,V.useTransitionFallthroughEmits=xx,V.useZIndex=$r,V.vLoading=dc,V.vRepeatClick=Sa,V.valueEquals=ru,V.version=fee,V.virtualizedGridProps=ir,V.virtualizedListProps=wp,V.virtualizedProps=Cp,V.virtualizedScrollbarProps=Sp,V.watermarkProps=NN,V.zIndexContextKey=wf,Object.defineProperty(V,"__esModule",{value:!0})}); +//# sourceMappingURL=index.full.min.js.map diff --git a/platform/backend/static/final-diagnostic.html b/platform/backend/static/final-diagnostic.html new file mode 100644 index 0000000..2ed0e08 --- /dev/null +++ b/platform/backend/static/final-diagnostic.html @@ -0,0 +1,410 @@ + + + + + + + 宇之然内容创作平台 - 综合诊断 + + + + + + + + + + +
+ + + + +
+ + + +
+
+

🎯 Vue应用综合诊断与修复

+ + +
+
+ + + + +
+ + +
+ 诊断日志:
+ {{ log }} +
+ + +
+
+

Vue状态

+

初始化: {{ vueInitialized ? '✅' : '❌' }}

+

数据绑定: {{ dataBindingWorking ? '✅' : '❌' }}

+
+
+

Element Plus

+

样式加载: {{ elementPlusStylesLoaded ? '✅' : '❌' }}

+

组件可用: {{ elementPlusComponentsAvailable ? '✅' : '❌' }}

+
+
+

功能状态

+

表格渲染: {{ tableRenderingWorking ? '✅' : '❌' }}

+

事件处理: {{ eventHandlingWorking ? '✅' : '❌' }}

+
+
+
+ + +
+

📊 详细测试结果

+ +
+
+
+

{{ result.title }}

+

{{ result.description }}

+
+ + {{ result.status === 'passed' ? '✅' : '❌' }} + +
+
+ +
+

还没有运行任何测试。请点击上方的"运行全面诊断"开始。

+
+
+ + +
+

🔧 问题解决方案

+ +
+

方案1: 检查浏览器控制台错误

+
    +
  • 打开开发者工具(F12)
  • +
  • 切换到Console选项卡
  • +
  • 刷新页面并记录所有JavaScript错误
  • +
  • 根据错误信息进行针对性修复
  • +
+
+ +
+

方案2: 简化Vue应用

+
    +
  • 移除所有Element Plus依赖
  • +
  • 使用纯HTML/CSS/JS实现基本功能
  • +
  • 确保Vue能正常工作
  • +
  • 逐步添加复杂功能
  • +
+
+ +
+

方案3: 本地托管资源

+
    +
  • 下载Vue和Element Plus到本地
  • +
  • 更新HTML中的CDN链接为本地路径
  • +
  • 确保所有资源文件正确放置
  • +
  • 重新测试页面功能
  • +
+
+ +
+

方案4: 重构页面结构

+
    +
  • 拆分复杂的Vue组件
  • +
  • 简化数据结构和状态管理
  • +
  • 确保每个功能模块独立工作
  • +
  • 分阶段测试和验证
  • +
+
+
+ + +
+

📋 功能演示

+ + +
+ + + + + + + + + + + + + + + + + + + + + +
ID标题领域状态操作
{{ topic.id }}{{ topic.title }}{{ topic.field }} + + + {{ getStatusText(topic.status) }} + + + + + +
+
+
+
+
+
+
+ + + + diff --git a/platform/backend/static/final-solution.html b/platform/backend/static/final-solution.html new file mode 100644 index 0000000..7e9e50d --- /dev/null +++ b/platform/backend/static/final-solution.html @@ -0,0 +1,452 @@ + + + + + + + 最终解决方案 + + + + + + +
+

宇之然内容创作平台 - Vue问题诊断

+ + +
+

📋 问题描述

+

症状: 选题管理、系统日志、用户管理页面点击菜单后只显示标题,没有实际内容

+

可能原因: Vue应用初始化失败、Element Plus集成问题、CSS样式冲突等

+
+ + +
+

🔍 快速诊断

+ + + + +
+
+ + +
+

🔬 详细分析

+
+
+ + +
+

💡 解决方案

+
    +
    + + +
    +

    🚨 紧急修复方案

    + +

    +
    +
    + + + + + + + + + +
    + + + + +
    + + + +
    + +
    +

    📋 选题管理

    + +
    +
    + + + +
    +
    + +
    + 全部 (3) + 待处理 (1) + 待审查 (1) + 待发布 (1) +
    + +
    + + + + + + + + + + + + + + + + + + + + + +
    ID标题领域状态操作
    {{ topic.id }}{{ topic.title }}{{ topic.field }} + + + + + {{ getStatusText(topic.status) }} + + + + + +
    +
    +
    + + +
    +

    📄 系统日志

    + +
    + + + +
    + +
    {{ logContent }}
    +
    + + +
    +

    👥 用户管理

    + +
    +

    用户列表

    + +
    + + + + + + + + + + + + + + + + + + + + +
    ID用户名角色创建时间操作
    {{ user.id }}{{ user.username }} + 管理员 + 编辑 + {{ formatDate(user.created_at) }} + +
    +
    +
    +
    +
    + + + + + `; + + // 替换当前页面内容 + document.documentElement.innerHTML = emergencyHTML; + + document.getElementById('emergencyResult').innerHTML = + '

    ✅ 紧急修复已应用!

    ' + + '

    页面已更新为简化版本,移除了复杂的依赖。

    ' + + '

    重新加载

    '; + }, 1000); + } + + function addResult(message, type = 'info') { + const resultDiv = document.getElementById('testResults'); + const colorClass = type === 'success' ? 'success' : type === 'error' ? 'error' : 'warning'; + resultDiv.innerHTML += + '
    ' + message + '
    '; + } + + function updateDetailedAnalysis() { + const analysisDiv = document.getElementById('detailedAnalysis'); + let analysis = ''; + + analysis += '

    当前状态:

    '; + analysis += '
      '; + analysis += '
    • Vue就绪: ' + (appData.vueReady ? '✅' : '❌') + '
    • '; + analysis += '
    • DOM就绪: ' + (appData.domReady ? '✅' : '❌') + '
    • '; + analysis += '
    • CSS就绪: ' + (appData.cssLoaded ? '✅' : '❌') + '
    • '; + analysis += '
    '; + + if (appData.errors.length > 0) { + analysis += '

    错误:

    '; + analysis += '
      '; + appData.errors.forEach(error => { + analysis += '
    • ' + error + '
    • '; + }); + analysis += '
    '; + } + + analysisDiv.innerHTML = analysis; + } + + function generateSolutions() { + const solutionsDiv = document.getElementById('solutionsList'); + let solutions = ''; + + solutions += '
  1. 检查浏览器控制台: 按F12查看JavaScript错误
  2. '; + solutions += '
  3. 验证CDN资源: 确保Vue和Element Plus能正常下载
  4. '; + solutions += '
  5. 简化页面结构: 移除复杂依赖,使用纯HTML/CSS/JS
  6. '; + solutions += '
  7. 检查网络连接: 确认能访问外部资源
  8. '; + solutions += '
  9. 清除缓存: 尝试无痕模式或清除浏览器缓存
  10. '; + solutions += '
  11. 使用本地托管: 下载Vue和Element Plus到本地服务器
  12. '; + + solutionsDiv.innerHTML = solutions; + } + + // 自动运行初始诊断 + setTimeout(runQuickTest, 100); + + + diff --git a/platform/backend/static/icon-192.png b/platform/backend/static/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..91a99b94e23a00cc8133f22e3fe2a0b48a015808 GIT binary patch literal 67 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blE>9Q7kcv6UAQ@H$MqV!6EkIEQ MPgg&ebxsLQ07X&@0{{R3 literal 0 HcmV?d00001 diff --git a/platform/backend/static/icon-192.svg b/platform/backend/static/icon-192.svg new file mode 100644 index 0000000..1ff0a97 --- /dev/null +++ b/platform/backend/static/icon-192.svg @@ -0,0 +1,4 @@ + + + + diff --git a/platform/backend/static/icon-512.png b/platform/backend/static/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..91a99b94e23a00cc8133f22e3fe2a0b48a015808 GIT binary patch literal 67 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blE>9Q7kcv6UAQ@H$MqV!6EkIEQ MPgg&ebxsLQ07X&@0{{R3 literal 0 HcmV?d00001 diff --git a/platform/backend/static/icon-512.svg b/platform/backend/static/icon-512.svg new file mode 100644 index 0000000..976946b --- /dev/null +++ b/platform/backend/static/icon-512.svg @@ -0,0 +1,4 @@ + + + + diff --git a/platform/backend/static/independent-test.html b/platform/backend/static/independent-test.html new file mode 100644 index 0000000..08b36bf --- /dev/null +++ b/platform/backend/static/independent-test.html @@ -0,0 +1,451 @@ + + + + + + + 宇之然内容创作平台 - 独立Vue测试 + + + + + + + + +
    + + + + +
    + + + +
    +
    +

    🔍 独立Vue应用测试

    + + +
    + 实时输出:
    + {{ log }} +
    + + +
    + + + +
    + + +
    +

    测试结果:

    +
      +
    • {{ result }}
    • +
    +
    + + +
    +

    📋 选题管理功能

    + + +
    +
    + + + + 已选 {{ selectedTopicIds.length }} 项 +
    +
    + + +
    + 全部 ({{ topics.length }}) + 待处理 ({{ countByStatus('待处理') }}) + 待审查 ({{ countByStatus('待审查') }}) + 待发布 ({{ countByStatus('待发布') }}) + 已发布 ({{ countByStatus('已发布') }}) +
    + + + + + + + + + + + + + + + + + + + + + + + +
    ID标题领域状态操作
    {{ topic.id }}{{ topic.title }}{{ topic.field }} + + + {{ getStatusText(topic.status) }} + + + + + + + +
    +
    + + +
    +

    📄 系统日志功能

    + +
    + + + +
    + +
    {{ logContent }}
    +
    + + +
    +

    👥 用户管理功能

    + +
    +

    用户列表

    + +
    + + + + + + + + + + + + + + + + + + + + +
    ID用户名角色创建时间操作
    {{ user.id }}{{ user.username }} + + {{ user.role === 'admin' ? '管理员' : '编辑' }} + + {{ formatDate(user.created_at) }} + +
    +
    +
    +
    +
    +
    + + + + diff --git a/platform/backend/static/index.html b/platform/backend/static/index.html new file mode 100644 index 0000000..5c03c4a --- /dev/null +++ b/platform/backend/static/index.html @@ -0,0 +1,585 @@ + + + + + + 宇之然内容创作平台 + + + + +
    + + +
    + + +
    + +
    +

    + 📊 系统概览 +

    + + +
    +
    +
    选题总数
    +
    {{ stats.total }}
    +
    +
    +
    待处理
    +
    {{ stats.pending }}
    +
    +
    +
    待审查
    +
    {{ stats.review }}
    +
    +
    +
    待发布
    +
    {{ stats.ready }}
    +
    +
    +
    已发布
    +
    {{ stats.published }}
    +
    +
    +
    今日新增
    +
    {{ stats.today }}
    +
    +
    + + +

    + 🔧 模块状态 +

    +
    +
    +
    + 🤖 内容创作引擎 + 运行中 +
    +
    +
    最后运行2026-04-27 14:30
    +
    今日任务12 个
    +
    成功率95%
    +
    +
    +
    +
    + 🔍 内容优化器 + 运行中 +
    +
    +
    最后运行2026-04-27 14:45
    +
    今日优化8 个
    +
    平均提升+12 分
    +
    +
    +
    +
    + 📡 内容收集器 + 运行中 +
    +
    +
    最后运行2026-04-27 14:00
    +
    今日收集24 个
    +
    来源平台8 个
    +
    +
    +
    +
    + 📤 发布管理器 + 运行中 +
    +
    +
    最后运行2026-04-27 13:30
    +
    今日发布5 个
    +
    成功率100%
    +
    +
    +
    +
    +
    +
    + + + +
    + + + + + + diff --git a/platform/backend/static/index.html.bak b/platform/backend/static/index.html.bak new file mode 100644 index 0000000..11bb5ce --- /dev/null +++ b/platform/backend/static/index.html.bak @@ -0,0 +1,170 @@ + + + + + + 宇之然内容创作平台 + + + + +
    + +
    + +
    + +
    +
    +

    📊 系统概览

    +
    +
    选题总数
    {{ stats.total }}
    +
    待处理
    {{ stats.pending }}
    +
    待审查
    {{ stats.review }}
    +
    待发布
    {{ stats.ready }}
    +
    已发布
    {{ stats.published }}
    +
    今日新增
    {{ stats.today }}
    +
    +

    🔧 模块状态

    +
    +
    🤖 内容创作引擎运行中
    最后运行:2026-04-27 14:30
    今日任务:12 个
    成功率:95%
    +
    🔍 内容优化器运行中
    最后运行:2026-04-27 14:45
    今日优化:8 个
    平均提升:+12 分
    +
    📡 内容收集器运行中
    最后运行:2026-04-27 14:00
    今日收集:24 个
    来源:8 个平台
    +
    📤 发布管理器运行中
    最后运行:2026-04-27 13:30
    今日发布:5 个
    成功率:100%
    +
    +
    +
    +
    +
    +
    +
    + +
    +
    + + + + + diff --git a/platform/backend/static/login.html b/platform/backend/static/login.html new file mode 100644 index 0000000..98c5f02 --- /dev/null +++ b/platform/backend/static/login.html @@ -0,0 +1,350 @@ + + + + + + 宇之然内容创作平台 - 登录 + + + + + +
    +
    +
    +
    + + + + + + + + diff --git a/platform/backend/static/logs.html b/platform/backend/static/logs.html new file mode 100644 index 0000000..7668a92 --- /dev/null +++ b/platform/backend/static/logs.html @@ -0,0 +1,124 @@ + + + + + + 宇之然内容创作平台 - 系统日志 + + + + +
    + +
    + +
    +
    +

    📄 系统日志

    +
    + + + + + + + 加载日志 +
    +
    {{ logContent }}
    + +
    +
    +
    + +
    + + + + + \ No newline at end of file diff --git a/platform/backend/static/manifest.json b/platform/backend/static/manifest.json new file mode 100644 index 0000000..89c0310 --- /dev/null +++ b/platform/backend/static/manifest.json @@ -0,0 +1,36 @@ +{ + "name": "宇之然内容创作平台", + "short_name": "宇之然", + "description": "可持续性内容创作与管理系统", + "start_url": "/", + "display": "standalone", + "background_color": "#f5f7fa", + "theme_color": "#409EFF", + "orientation": "portrait-primary", + "icons": [ + { + "src": "/static/icon-192.svg", + "sizes": "192x192", + "type": "image/svg+xml" + }, + { + "src": "/static/icon-512.svg", + "sizes": "512x512", + "type": "image/svg+xml" + } + ], + "screenshots": [ + { + "src": "/static/screenshot-desktop.png", + "sizes": "1280x720", + "type": "image/png", + "form_factor": "wide" + }, + { + "src": "/static/screenshot-mobile.png", + "sizes": "750x1334", + "type": "image/png", + "form_factor": "narrow" + } + ] +} diff --git a/platform/backend/static/nginx.conf b/platform/backend/static/nginx.conf new file mode 100644 index 0000000..d0078db --- /dev/null +++ b/platform/backend/static/nginx.conf @@ -0,0 +1,128 @@ +# 宇之然内容创作平台 - Nginx配置 + +user nginx; +worker_processes auto; +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + +events { + worker_connections 1024; + use epoll; + multi_accept on; +} + +http { + # 基本设置 + include /etc/nginx/mime.types; + default_type application/octet-stream; + + # 日志格式 + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + sendfile on; + tcp_nopush on; + tcp_nodelay on; + keepalive_timeout 65; + types_hash_max_size 2048; + + # Gzip压缩 + gzip on; + gzip_vary on; + gzip_min_length 1024; + gzip_proxied expired no-cache no-store private auth; + gzip_types text/plain text/css text/xml text/javascript application/javascript application/xml+rss application/json; + gzip_comp_level 6; + + # 安全头 + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-XSS-Protection "1; mode=block" always; + add_header X-Content-Type-Options "nosniff" always; + add_header Referrer-Policy "no-referrer-when-downgrade" always; + add_header Content-Security-Policy "default-src 'self' http: https: blob: 'unsafe-inline'" always; + + # 代理缓存 + proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=STATIC:10m inactive=7d use_temp_path=off; + + # 上游服务器 + upstream backend { + server app:8001; + keepalive 32; + } + + server { + listen 80; + server_name _; + client_max_body_size 100M; + + # SSL配置(生产环境) + # listen 443 ssl http2; + # ssl_certificate /etc/nginx/ssl/cert.pem; + # ssl_certificate_key /etc/nginx/ssl/key.pem; + + location / { + # 前端静态资源缓存 + proxy_cache STATIC; + proxy_cache_valid 200 302 7d; + proxy_cache_valid 404 1m; + proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; + + # 反向代理到后端API + proxy_pass http://backend; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_redirect off; + + # WebSocket支持 + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + + # 超时设置 + proxy_connect_timeout 30s; + proxy_send_timeout 30s; + proxy_read_timeout 30s; + } + + # 健康检查 + location /health { + access_log off; + return 200 "healthy\n"; + add_header Content-Type text/plain; + } + + # API文档(可选) + location /docs { + proxy_pass http://backend/docs; + proxy_set_header Host $host; + } + + location /redoc { + proxy_pass http://backend/redoc; + proxy_set_header Host $host; + } + } + + # 静态文件服务(如果需要) + server { + listen 8000; + server_name localhost; + + root /usr/share/nginx/html; + index index.html login.html; + + location / { + try_files $uri $uri/ /index.html; + } + + # 静态资源缓存 + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ { + expires 1y; + add_header Cache-Control "public, immutable"; + } + } +} \ No newline at end of file diff --git a/platform/backend/static/offline.html b/platform/backend/static/offline.html new file mode 100644 index 0000000..744dac9 --- /dev/null +++ b/platform/backend/static/offline.html @@ -0,0 +1,57 @@ + + + + + + 离线 - 宇之然平台 + + + +
    +
    📴
    +

    当前处于离线状态

    +

    您似乎已断开网络连接,但可以查看已缓存的内容。

    +

    请检查网络后刷新页面以获取最新数据。

    + 重试 +
    + + diff --git a/platform/backend/static/package.json b/platform/backend/static/package.json new file mode 100644 index 0000000..604c679 --- /dev/null +++ b/platform/backend/static/package.json @@ -0,0 +1,13 @@ +{ + "name": "frontend", + "version": "1.0.0", + "description": "", + "main": "debug-vue.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "type": "commonjs" +} diff --git a/platform/backend/static/render-diagnostic.html b/platform/backend/static/render-diagnostic.html new file mode 100644 index 0000000..3fe8ab6 --- /dev/null +++ b/platform/backend/static/render-diagnostic.html @@ -0,0 +1,315 @@ + + + + + + + 页面渲染诊断 + + + + + + +
    +

    宇之然内容创作平台 - 页面渲染诊断

    + + +
    +

    📋 诊断控制

    + + + + + +

    正在运行测试中...

    +
    + + +
    +

    📊 实时输出

    +
    {{ line }}
    +
    + + +
    +

    ✅ 测试结果

    +
      +
    • {{ result.message }}
    • +
    +
    + + +
    +

    ⚠️ 发现的问题

    +
      +
    • {{ issue }}
    • +
    +
    + + +
    +

    🏗️ DOM结构检查

    + +
    {{ domInfo }}
    +
    + + +
    +

    🌐 资源加载检查

    + +
    {{ resourceInfo }}
    +
    + + +
    +

    📡 网络状态

    + +

    {{ networkInfo }}

    +
    + + +
    +

    💡 建议操作

    +
      +
    1. {{ suggestion }}
    2. +
    +
    +
    + + + + diff --git a/platform/backend/static/script-content.js b/platform/backend/static/script-content.js new file mode 100644 index 0000000..a0f8d64 --- /dev/null +++ b/platform/backend/static/script-content.js @@ -0,0 +1,476 @@ + diff --git a/platform/backend/static/setup-fix.js b/platform/backend/static/setup-fix.js new file mode 100644 index 0000000..c50c9f8 --- /dev/null +++ b/platform/backend/static/setup-fix.js @@ -0,0 +1,398 @@ +// 修复后的 Vue 3 setup 函数体 +// 所有变量和方法必须在 return 之前定义 + +const API_BASE = window.location.origin; + +// 1. 状态变量 +const isLoggedIn = ref(false); +const isAdmin = ref(false); +const loginForm = reactive({ username: '', password: '' }); +const loginError = ref(''); + +const status = ref({}); +const topics = ref([]); +const filterStatus = ref(''); +const generating = ref(false); +const optimizing = ref(false); +const loadingAll = ref(false); +const loadingTable = ref(false); +const loadingLogs = ref(false); +const loadingOverlay = ref(false); +const loadingText = ref(''); + +const pipeline = ref({ status_distribution: {} }); +const pipelineLoading = ref(false); +const pipelineModules = ref([]); + +const previewVisible = ref(false); +const previewTopic = ref({ title: '' }); +const previewPlatform = ref('zhihu'); +const previewHtml = ref(''); +const fullScreenPreview = ref(false); + +const showLogs = ref(false); +const logType = ref('creator'); +const logDate = ref(new Date().toISOString().split('T')[0]); +const logContent = ref(''); + +// 2. 计算属性 +const filteredTopics = computed(() => { + if (!filterStatus.value) return topics.value || []; + return (topics.value || []).filter(t => t && t.status === filterStatus.value); +}); + +// 3. 工具函数 +const formatDate = (val) => { + if (!val) return '-'; + const d = new Date(val); + if (isNaN(d.getTime())) return val; + return d.toLocaleString('zh-CN', { hour12: false }); +}; + +const formatRelativeTime = (val) => { + if (!val) return '-'; + const d = new Date(val); + if (isNaN(d.getTime())) return '-'; + const now = new Date(); + const diff = now - d; + const minutes = Math.floor(diff / 60000); + if (minutes < 1) return '刚刚'; + if (minutes < 60) return `${minutes}分钟前`; + const hours = Math.floor(minutes / 60); + if (hours < 24) return `${hours}小时前`; + const days = Math.floor(hours / 24); + if (days < 7) return `${days}天前`; + return formatDate(val); +}; + +// 4. 业务方法 +const countByStatus = (status) => { + return (topics.value || []).filter(t => t.status === status).length; +}; + +const getPriorityType = (score) => { + if (!score) return ''; + if (score >= 20) return 'danger'; + if (score >= 15) return 'warning'; + return 'success'; +}; + +const getStatusClass = (status) => { + const map = { + '待处理': 'pending', + '待审查': 'review', + '待发布': 'ready', + '已发布': 'published' + }; + return map[status] || ''; +}; + +const refresh = async () => { + try { + const [s, t] = await Promise.all([ + fetch(API_BASE + '/api/system/status').then(r => r.json()), + fetch(API_BASE + '/api/topics').then(r => r.json()) + ]); + status.value = s; + topics.value = t; + } catch (e) { + ElMessage.error('刷新失败:' + e.message); + } +}; + +const refreshPipeline = async () => { + pipelineLoading.value = true; + try { + const res = await fetch(API_BASE + '/api/system/pipeline/status'); + if (res.ok) { + const data = await res.json(); + pipeline.value = data; + pipelineModules.value = Object.entries(data.pipeline_modules || {}).map(([name, info]) => ({ + module: name, + last_run: info.last_run || '未运行', + status_ok: !info.has_error && info.exists, + status_text: info.exists && !info.has_error ? '正常' : info.exists ? '有错误' : '缺失', + error: info.has_error ? '检测到错误' : '' + })); + } + } catch (e) { + ElMessage.error('获取流水线状态失败'); + } finally { + pipelineLoading.value = false; + } +}; + +const refreshAll = async () => { + loadingAll.value = true; + try { + await Promise.all([refresh(), refreshPipeline()]); + ElMessage.success('刷新成功'); + } catch (e) { + ElMessage.error('刷新失败'); + } finally { + loadingAll.value = false; + } +}; + +const triggerGenerate = async () => { + generating.value = true; + try { + const res = await fetch(API_BASE + '/api/system/generate/run', { method: 'POST' }); + const data = await res.json(); + if (data.result && data.result.ok) { + ElMessage.success('创作任务已启动'); + setTimeout(refresh, 3000); + } else { + ElMessage.error('启动失败:' + (data.error || '未知错误')); + } + } catch (e) { + ElMessage.error('请求失败:' + e.message); + } finally { + generating.value = false; + } +}; + +const triggerOptimize = async () => { + optimizing.value = true; + try { + const res = await fetch(API_BASE + '/api/system/optimize/run', { method: 'POST' }); + const data = await res.json(); + if (data.summary) { + ElNotification({ + title: '优化完成', + message: `自动通过 ${data.summary.passed_auto || 0} 篇,需人工 ${data.summary.need_manual || 0} 篇`, + type: 'success' + }); + await refresh(); + } else { + ElMessage.success('优化完成'); + } + } catch (e) { + ElMessage.error('优化失败:' + e.message); + } finally { + optimizing.value = false; + } +}; + +const openPreview = async (topic) => { + previewTopic.value = { id: topic.id, title: topic.title }; + previewPlatform.value = 'zhihu'; + previewVisible.value = true; + await loadPreview(); +}; + +const loadPreview = async () => { + previewHtml.value = ''; + console.log('[Preview] Loading topic:', previewTopic.value.id, 'platform:', previewPlatform.value); + try { + const res = await fetch(`${API_BASE}/api/articles/${previewTopic.value.id}/preview?platform=${previewPlatform.value}`); + console.log('[Preview] Response status:', res.status); + if (res.ok) { + const data = await res.json(); + console.log('[Preview] Got HTML, length:', data.html?.length); + const parser = new DOMParser(); + const doc = parser.parseFromString(data.html, 'text/html'); + const contentDiv = doc.querySelector('.content'); + console.log('[Preview] Found .content:', !!contentDiv); + if (contentDiv) { + previewHtml.value = contentDiv.innerHTML; + console.log('[Preview] Set previewHtml from .content'); + } else { + const header = doc.querySelector('.header'); + const footer = doc.querySelector('footer'); + const tags = doc.querySelector('.tags'); + const interaction = doc.querySelector('.interaction'); + if (header) header.remove(); + if (footer) footer.remove(); + if (tags) tags.remove(); + if (interaction) interaction.remove(); + previewHtml.value = doc.body.innerHTML; + console.log('[Preview] Set previewHtml from body.innerHTML'); + } + } else if (res.status === 404) { + previewHtml.value = '

    暂未创作文章,请先点击创作按钮生成

    '; + } else { + ElMessage.error('加载预览失败:' + res.status); + } + } catch (e) { + previewHtml.value = '

    请求失败,请检查后端服务是否运行

    '; + console.error('Preview error:', e); + } +}; + +const copyPreviewHtml = async () => { + if (!previewHtml.value) return; + try { + const parser = new DOMParser(); + const doc = parser.parseFromString(previewHtml.value, 'text/html'); + const header = doc.querySelector('.header'); + if (header) header.remove(); + const footer = doc.querySelector('footer'); + if (footer) footer.remove(); + const tagsDiv = doc.querySelector('.tags'); + if (tagsDiv) tagsDiv.remove(); + const interaction = doc.querySelector('.interaction'); + if (interaction) interaction.remove(); + const contentDiv = doc.querySelector('.content'); + let text = ''; + if (contentDiv) { + text = contentDiv.innerText.trim(); + } else { + text = doc.body.innerText.trim(); + } + if (!text) { + ElMessage.warning('未提取到正文内容'); + return; + } + await navigator.clipboard.writeText(text); + ElMessage.success('正文已复制到剪贴板'); + } catch (e) { + console.error('Copy error:', e); + ElMessage.error('复制失败'); + } +}; + +const expandPreview = () => { + fullScreenPreview.value = true; +}; + +const handleShowLogs = () => { + showLogs.value = true; +}; + +const fetchLogs = async () => { + loadingLogs.value = true; + try { + const res = await fetch(`${API_BASE}/api/system/logs/${logDate.value}?log_type=${logType.value}`); + if (res.ok) { + const data = await res.json(); + logContent.value = data.content ? data.content.join('\n') : '无内容'; + } else { + ElMessage.error('加载日志失败'); + } + } catch (e) { + ElMessage.error('请求失败'); + } finally { + loadingLogs.value = false; + } +}; + +const createTopic = async (topic) => { + if (topic.published_urls && Object.keys(topic.published_urls).length > 0) { + try { + await ElMessageBox.alert( + '本文已发布过,重新创作将覆盖原有内容。是否继续?', + '重新创作确认', + { + confirmButtonText: '继续', + cancelButtonText: '取消', + type: 'warning', + } + ); + } catch (e) { + return; + } + } + try { + const res = await fetch(`${API_BASE}/api/system/generate/run?topic_id=${topic.id}`, { method: 'POST' }); + const data = await res.json(); + if (data.result && data.result.ok) { + ElMessage.success(`选题 ${topic.id} 创作任务已启动`); + setTimeout(refresh, 3000); + } else { + ElMessage.error('创作失败:' + (data.error || '未知错误')); + } + } catch (e) { + ElMessage.error('请求失败:' + e.message); + } +}; + +const optimizeTopic = async (topic) => { + try { + const res = await fetch(API_BASE + '/api/system/optimize/run', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ topic_ids: [topic.id] }) + }); + const data = await res.json(); + if (data.summary) { + ElMessage.success(`选题 ${topic.id} 优化完成`); + setTimeout(refresh, 2000); + } else { + ElMessage.success('优化完成'); + } + } catch (e) { + ElMessage.error('优化失败:' + e.message); + } +}; + +const handlePublish = async (topic) => { + try { + ElMessage.info(`正在发布选题 ${topic.id}...`); + const res = await fetch(API_BASE + '/api/publishing/create', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ topic_id: topic.id }) + }); + if (!res.ok) throw new Error('发布失败'); + const data = await res.json(); + ElMessage.success(`选题 ${topic.id} 已发布`); + await refresh(); + } catch (e) { + ElMessage.error('发布失败:' + e.message); + } +}; + +const openCreateTopic = () => { + ElMessage.info('新建选题功能待实现'); +}; + +// 5. 页面路由 +const currentPage = ref('overview'); +const switchPage = (page) => { + currentPage.value = page; +}; +const goToTopicsWithFilter = (status) => { + currentPage.value = 'topics'; + filterStatus.value = status; +}; + +// 6. 生命周期(必须在 return 之前) +watch(previewPlatform, loadPreview); +onMounted(() => { + const authToken = localStorage.getItem('auth_token'); + const role = localStorage.getItem('user_role'); + if (authToken) { + isLoggedIn.value = true; + if (role === 'admin') isAdmin.value = true; + } + refresh(); + refreshPipeline(); +}); + +// 7. 返回给模板 +return { + // 状态 + status, topics, filterStatus, filteredTopics, + generating, optimizing, loadingAll, loadingTable, loadingLogs, loadingOverlay, loadingText, + pipeline, pipelineLoading, pipelineModules, + previewVisible, previewTopic, previewPlatform, previewHtml, fullScreenPreview, + showLogs, logType, logDate, logContent, + // 页面路由 + currentPage, + // 方法 + countByStatus, getPriorityType, getStatusClass, + refresh, refreshPipeline, refreshAll, + triggerGenerate, triggerOptimize, + openPreview, loadPreview, copyPreviewHtml, expandPreview, + fetchLogs, + createTopic, optimizeTopic, handlePublish, + openCreateTopic, + // 工具函数 + formatDate, formatRelativeTime, + switchPage, goToTopicsWithFilter, + // 认证(未完整) + isLoggedIn, isAdmin, loginForm, loginError, + // 图标 + Document, Upload, CopyDocument, FullScreen, Promotion +}; diff --git a/platform/backend/static/simple-vue-test.html b/platform/backend/static/simple-vue-test.html new file mode 100644 index 0000000..47aa48e --- /dev/null +++ b/platform/backend/static/simple-vue-test.html @@ -0,0 +1,96 @@ + + + + + + + Vue最简单测试 + + + + + + +
    +

    {{ title }}

    + + +
    + 基础测试: +

    当前计数: {{ count }}

    + +
    + + +
    + Vue状态: +

    ✅ Vue已就绪

    +

    ❌ Vue未就绪

    +
    + + +
    + 调试信息: +
      +
    • {{ log }}
    • +
    +
    +
    + + + + diff --git a/platform/backend/static/static/element-plus.css b/platform/backend/static/static/element-plus.css new file mode 100644 index 0000000..d074ff0 --- /dev/null +++ b/platform/backend/static/static/element-plus.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:-moz-fit-content;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;top:-1px;bottom:-1px;left:-1px;right:-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:-moz-fit-content;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__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{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-list{max-height:204px;font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center;margin:0;padding:6px 0}.el-cascader__suggestion-item{text-align:left;cursor:pointer;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>span{margin-right:10px}.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 (max-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 (min-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 (min-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 (min-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 (min-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{-webkit-appearance:none;-moz-appearance:none;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{color:var(--el-datepicker-hover-text-color)}.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__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;top:0;bottom:0;left:0;right: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;top:0;bottom:0;left:0;right: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,0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translate(0,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:-moz-fit-content;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{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--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;top:0;bottom:0;left:0;right: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,0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translate(0,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,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__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,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;-webkit-appearance:none;-moz-appearance:none;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-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;top:0;bottom:0;left:0;right: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;-webkit-backface-visibility:hidden;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;top:0;bottom:0;left:0;right: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,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;top:0;bottom:0;left:0;right: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{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.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;top:0;bottom:0;left:0;right: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);-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;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}.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,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;-webkit-appearance:none;-moz-appearance:none;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;-webkit-appearance:none;-moz-appearance:none;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:-moz-fit-content;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;-webkit-appearance:none;-moz-appearance:none;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;-webkit-appearance:none;-moz-appearance:none;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;-webkit-appearance:none;-moz-appearance:none;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;top:0;bottom:0;left:0;right: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;-webkit-appearance:none;-moz-appearance:none;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;-webkit-appearance:none;-moz-appearance:none;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--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;top:0;bottom:0;left:0;right: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;top:0;bottom:0;left:0;right: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} \ No newline at end of file diff --git a/platform/backend/static/static/element-plus.full.js b/platform/backend/static/static/element-plus.full.js new file mode 100644 index 0000000..e1e3310 --- /dev/null +++ b/platform/backend/static/static/element-plus.full.js @@ -0,0 +1,59570 @@ +/*! Element Plus v2.13.7 */ + +(function(global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue')) : + typeof define === 'function' && define.amd ? define(['exports', 'vue'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.ElementPlus = {}), global.Vue)); +})(this, function(exports, vue) { +Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); +//#region \0rolldown/runtime.js + var __create = Object.create; + var __defProp = Object.defineProperty; + var __getOwnPropDesc = Object.getOwnPropertyDescriptor; + var __getOwnPropNames = Object.getOwnPropertyNames; + var __getProtoOf = Object.getPrototypeOf; + var __hasOwnProp = Object.prototype.hasOwnProperty; + var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports); + var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { + key = keys[i]; + if (!__hasOwnProp.call(to, key) && key !== except) { + __defProp(to, key, { + get: ((k) => from[k]).bind(null, key), + enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable + }); + } + } + } + return to; + }; + var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { + value: mod, + enumerable: true + }) : target, mod)); + +//#endregion + +//#region ../../packages/utils/dom/aria.ts + const FOCUSABLE_ELEMENT_SELECTORS = `a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])`; + const isShadowRoot$1 = (e) => { + if (typeof ShadowRoot === "undefined") return false; + return e instanceof ShadowRoot; + }; + const isHTMLElement$1 = (e) => { + if (typeof Element === "undefined") return false; + return e instanceof Element; + }; + /** + * Determine if the testing element is visible on screen no matter if its on the viewport or not + */ + const isVisible = (element) => { + return getComputedStyle(element).position === "fixed" ? false : element.offsetParent !== null; + }; + const obtainAllFocusableElements$1 = (element) => { + return Array.from(element.querySelectorAll(FOCUSABLE_ELEMENT_SELECTORS)).filter((item) => isFocusable(item) && isVisible(item)); + }; + /** + * @desc Determine if target element is focusable + * @param element {HTMLElement} + * @returns {Boolean} true if it is focusable + */ + const isFocusable = (element) => { + if (element.tabIndex > 0 || element.tabIndex === 0 && element.getAttribute("tabIndex") !== null) return true; + if (element.tabIndex < 0 || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true") return false; + switch (element.nodeName) { + case "A": return !!element.href && element.rel !== "ignore"; + case "INPUT": return !(element.type === "hidden" || element.type === "file"); + case "BUTTON": + case "SELECT": + case "TEXTAREA": return true; + default: return false; + } + }; + /** + * Trigger an event + * mouseenter, mouseleave, mouseover, keyup, change, click, etc. + * @param {HTMLElement} elm + * @param {String} name + * @param {*} opts + */ + const triggerEvent = function(elm, name, ...opts) { + let eventName; + if (name.includes("mouse") || name.includes("click")) eventName = "MouseEvents"; + else if (name.includes("key")) eventName = "KeyboardEvent"; + else eventName = "HTMLEvents"; + const evt = document.createEvent(eventName); + evt.initEvent(name, ...opts); + elm.dispatchEvent(evt); + return elm; + }; + const isLeaf = (el) => !el.getAttribute("aria-owns"); + const getSibling = (el, distance, elClass) => { + const { parentNode } = el; + if (!parentNode) return null; + const siblings = parentNode.querySelectorAll(elClass); + return siblings[Array.prototype.indexOf.call(siblings, el) + distance] || null; + }; + const focusElement = (el, options) => { + if (!el || !el.focus) return; + let cleanup = false; + if (isHTMLElement$1(el) && !isFocusable(el) && !el.getAttribute("tabindex")) { + el.setAttribute("tabindex", "-1"); + cleanup = true; + } + el.focus(options); + if (isHTMLElement$1(el) && cleanup) el.removeAttribute("tabindex"); + }; + const focusNode = (el) => { + if (!el) return; + focusElement(el); + !isLeaf(el) && el.click(); + }; + +//#endregion +//#region ../../packages/constants/aria.ts + const EVENT_CODE = { + 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" + }; + +//#endregion +//#region ../../packages/constants/date.ts + const datePickTypes = [ + "year", + "years", + "month", + "months", + "date", + "dates", + "week", + "datetime", + "datetimerange", + "daterange", + "monthrange", + "yearrange" + ]; + const WEEK_DAYS = [ + "sun", + "mon", + "tue", + "wed", + "thu", + "fri", + "sat" + ]; + +//#endregion +//#region ../../packages/constants/event.ts + const UPDATE_MODEL_EVENT = "update:modelValue"; + const CHANGE_EVENT = "change"; + const INPUT_EVENT = "input"; + +//#endregion +//#region ../../packages/constants/key.ts + const INSTALLED_KEY = Symbol("INSTALLED_KEY"); + +//#endregion +//#region ../../packages/constants/size.ts + const componentSizes = [ + "", + "default", + "small", + "large" + ]; + const componentSizeMap = { + large: 40, + default: 32, + small: 24 + }; + +//#endregion +//#region ../../packages/constants/column-alignment.ts + const columnAlignment = [ + "left", + "center", + "right" + ]; + +//#endregion +//#region ../../packages/constants/form.ts + const MINIMUM_INPUT_WIDTH = 11; + const BORDER_HORIZONTAL_WIDTH = 2; + +//#endregion +//#region ../../node_modules/.pnpm/@vueuse+shared@12.0.0_typescript@5.5.4/node_modules/@vueuse/shared/index.mjs + function computedEager(fn, options) { + var _a; + const result = (0, vue.shallowRef)(); + (0, vue.watchEffect)(() => { + result.value = fn(); + }, { + ...options, + flush: (_a = options == null ? void 0 : options.flush) != null ? _a : "sync" + }); + return (0, vue.readonly)(result); + } + function tryOnScopeDispose(fn) { + if ((0, vue.getCurrentScope)()) { + (0, vue.onScopeDispose)(fn); + return true; + } + return false; + } + function toValue$1(r) { + return typeof r === "function" ? r() : (0, vue.unref)(r); + } + function toReactive(objectRef) { + if (!(0, vue.isRef)(objectRef)) return (0, vue.reactive)(objectRef); + return (0, vue.reactive)(new Proxy({}, { + get(_, p, receiver) { + return (0, vue.unref)(Reflect.get(objectRef.value, p, receiver)); + }, + set(_, p, value) { + if ((0, vue.isRef)(objectRef.value[p]) && !(0, vue.isRef)(value)) objectRef.value[p].value = value; + else objectRef.value[p] = value; + return true; + }, + deleteProperty(_, p) { + return Reflect.deleteProperty(objectRef.value, p); + }, + has(_, p) { + return Reflect.has(objectRef.value, p); + }, + ownKeys() { + return Object.keys(objectRef.value); + }, + getOwnPropertyDescriptor() { + return { + enumerable: true, + configurable: true + }; + } + })); + } + function reactiveComputed(fn) { + return toReactive((0, vue.computed)(fn)); + } + const isClient = typeof window !== "undefined" && typeof document !== "undefined"; + const isWorker = typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope; + const isDef = (val) => typeof val !== "undefined"; + const notNullish = (val) => val != null; + const toString$1 = Object.prototype.toString; + const isObject$2 = (val) => toString$1.call(val) === "[object Object]"; + const clamp$2 = (n, min, max) => Math.min(max, Math.max(min, n)); + const noop$1 = () => {}; + const isIOS = /* @__PURE__ */ getIsIOS(); + function getIsIOS() { + var _a, _b; + return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent)); + } + function createFilterWrapper(filter, fn) { + function wrapper(...args) { + return new Promise((resolve, reject) => { + Promise.resolve(filter(() => fn.apply(this, args), { + fn, + thisArg: this, + args + })).then(resolve).catch(reject); + }); + } + return wrapper; + } + function debounceFilter(ms, options = {}) { + let timer; + let maxTimer; + let lastRejector = noop$1; + const _clearTimeout = (timer2) => { + clearTimeout(timer2); + lastRejector(); + lastRejector = noop$1; + }; + const filter = (invoke) => { + const duration = toValue$1(ms); + const maxDuration = toValue$1(options.maxWait); + if (timer) _clearTimeout(timer); + if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) { + if (maxTimer) { + _clearTimeout(maxTimer); + maxTimer = null; + } + return Promise.resolve(invoke()); + } + return new Promise((resolve, reject) => { + lastRejector = options.rejectOnCancel ? reject : resolve; + if (maxDuration && !maxTimer) maxTimer = setTimeout(() => { + if (timer) _clearTimeout(timer); + maxTimer = null; + resolve(invoke()); + }, maxDuration); + timer = setTimeout(() => { + if (maxTimer) _clearTimeout(maxTimer); + maxTimer = null; + resolve(invoke()); + }, duration); + }); + }; + return filter; + } + function throttleFilter(...args) { + let lastExec = 0; + let timer; + let isLeading = true; + let lastRejector = noop$1; + let lastValue; + let ms; + let trailing; + let leading; + let rejectOnCancel; + if (!(0, vue.isRef)(args[0]) && typeof args[0] === "object") ({delay: ms, trailing = true, leading = true, rejectOnCancel = false} = args[0]); + else [ms, trailing = true, leading = true, rejectOnCancel = false] = args; + const clear = () => { + if (timer) { + clearTimeout(timer); + timer = void 0; + lastRejector(); + lastRejector = noop$1; + } + }; + const filter = (_invoke) => { + const duration = toValue$1(ms); + const elapsed = Date.now() - lastExec; + const invoke = () => { + return lastValue = _invoke(); + }; + clear(); + if (duration <= 0) { + lastExec = Date.now(); + return invoke(); + } + if (elapsed > duration && (leading || !isLeading)) { + lastExec = Date.now(); + invoke(); + } else if (trailing) lastValue = new Promise((resolve, reject) => { + lastRejector = rejectOnCancel ? reject : resolve; + timer = setTimeout(() => { + lastExec = Date.now(); + isLeading = true; + resolve(invoke()); + clear(); + }, Math.max(0, duration - elapsed)); + }); + if (!leading && !timer) timer = setTimeout(() => isLeading = true, duration); + isLeading = false; + return lastValue; + }; + return filter; + } + function cacheStringFunction$1(fn) { + const cache = /* @__PURE__ */ Object.create(null); + return (str) => { + return cache[str] || (cache[str] = fn(str)); + }; + } + const hyphenateRE$1 = /\B([A-Z])/g; + const hyphenate$1 = cacheStringFunction$1((str) => str.replace(hyphenateRE$1, "-$1").toLowerCase()); + const camelizeRE$1 = /-(\w)/g; + const camelize$1 = cacheStringFunction$1((str) => { + return str.replace(camelizeRE$1, (_, c) => c ? c.toUpperCase() : ""); + }); + function getLifeCycleTarget(target) { + return target || (0, vue.getCurrentInstance)(); + } + function useDebounceFn(fn, ms = 200, options = {}) { + return createFilterWrapper(debounceFilter(ms, options), fn); + } + function refDebounced(value, ms = 200, options = {}) { + const debounced = (0, vue.ref)(value.value); + const updater = useDebounceFn(() => { + debounced.value = value.value; + }, ms, options); + (0, vue.watch)(value, () => updater()); + return debounced; + } + function useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) { + return createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn); + } + function tryOnMounted(fn, sync = true, target) { + if (getLifeCycleTarget()) (0, vue.onMounted)(fn, target); + else if (sync) fn(); + else (0, vue.nextTick)(fn); + } + function useTimeoutFn(cb, interval, options = {}) { + const { immediate = true } = options; + const isPending = (0, vue.ref)(false); + let timer = null; + function clear() { + if (timer) { + clearTimeout(timer); + timer = null; + } + } + function stop() { + isPending.value = false; + clear(); + } + function start(...args) { + clear(); + isPending.value = true; + timer = setTimeout(() => { + isPending.value = false; + timer = null; + cb(...args); + }, toValue$1(interval)); + } + if (immediate) { + isPending.value = true; + if (isClient) start(); + } + tryOnScopeDispose(stop); + return { + isPending: (0, vue.readonly)(isPending), + start, + stop + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/@vueuse+core@12.0.0_typescript@5.5.4/node_modules/@vueuse/core/index.mjs + const defaultWindow = isClient ? window : void 0; + const defaultDocument = isClient ? window.document : void 0; + const defaultNavigator = isClient ? window.navigator : void 0; + const defaultLocation = isClient ? window.location : void 0; + function unrefElement(elRef) { + var _a; + const plain = toValue$1(elRef); + return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain; + } + function useEventListener(...args) { + let target; + let events; + let listeners; + let options; + if (typeof args[0] === "string" || Array.isArray(args[0])) { + [events, listeners, options] = args; + target = defaultWindow; + } else [target, events, listeners, options] = args; + if (!target) return noop$1; + if (!Array.isArray(events)) events = [events]; + if (!Array.isArray(listeners)) listeners = [listeners]; + const cleanups = []; + const cleanup = () => { + cleanups.forEach((fn) => fn()); + cleanups.length = 0; + }; + const register = (el, event, listener, options2) => { + el.addEventListener(event, listener, options2); + return () => el.removeEventListener(event, listener, options2); + }; + const stopWatch = (0, vue.watch)(() => [unrefElement(target), toValue$1(options)], ([el, options2]) => { + cleanup(); + if (!el) return; + const optionsClone = isObject$2(options2) ? { ...options2 } : options2; + cleanups.push(...events.flatMap((event) => { + return listeners.map((listener) => register(el, event, listener, optionsClone)); + })); + }, { + immediate: true, + flush: "post" + }); + const stop = () => { + stopWatch(); + cleanup(); + }; + tryOnScopeDispose(stop); + return stop; + } + let _iOSWorkaround = false; + function onClickOutside(target, handler, options = {}) { + const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options; + if (!window) return noop$1; + if (isIOS && !_iOSWorkaround) { + _iOSWorkaround = true; + Array.from(window.document.body.children).forEach((el) => el.addEventListener("click", noop$1)); + window.document.documentElement.addEventListener("click", noop$1); + } + let shouldListen = true; + const shouldIgnore = (event) => { + return toValue$1(ignore).some((target2) => { + if (typeof target2 === "string") return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el)); + else { + const el = unrefElement(target2); + return el && (event.target === el || event.composedPath().includes(el)); + } + }); + }; + function hasMultipleRoots(target2) { + const vm = toValue$1(target2); + return vm && vm.$.subTree.shapeFlag === 16; + } + function checkMultipleRoots(target2, event) { + const vm = toValue$1(target2); + const children = vm.$.subTree && vm.$.subTree.children; + if (children == null || !Array.isArray(children)) return false; + return children.some((child) => child.el === event.target || event.composedPath().includes(child.el)); + } + const listener = (event) => { + const el = unrefElement(target); + if (event.target == null) return; + if (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event)) return; + if (!el || el === event.target || event.composedPath().includes(el)) return; + if (event.detail === 0) shouldListen = !shouldIgnore(event); + if (!shouldListen) { + shouldListen = true; + return; + } + handler(event); + }; + let isProcessingClick = false; + const cleanup = [ + useEventListener(window, "click", (event) => { + if (!isProcessingClick) { + isProcessingClick = true; + setTimeout(() => { + isProcessingClick = false; + }, 0); + listener(event); + } + }, { + passive: true, + capture + }), + useEventListener(window, "pointerdown", (e) => { + const el = unrefElement(target); + shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el)); + }, { passive: true }), + detectIframe && useEventListener(window, "blur", (event) => { + setTimeout(() => { + var _a; + const el = unrefElement(target); + if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === "IFRAME" && !(el == null ? void 0 : el.contains(window.document.activeElement))) handler(event); + }, 0); + }) + ].filter(Boolean); + const stop = () => cleanup.forEach((fn) => fn()); + return stop; + } + function useMounted() { + const isMounted = (0, vue.ref)(false); + const instance = (0, vue.getCurrentInstance)(); + if (instance) (0, vue.onMounted)(() => { + isMounted.value = true; + }, instance); + return isMounted; + } + function useSupported(callback) { + const isMounted = useMounted(); + return (0, vue.computed)(() => { + isMounted.value; + return Boolean(callback()); + }); + } + function useMutationObserver(target, callback, options = {}) { + const { window = defaultWindow, ...mutationOptions } = options; + let observer; + const isSupported = useSupported(() => window && "MutationObserver" in window); + const cleanup = () => { + if (observer) { + observer.disconnect(); + observer = void 0; + } + }; + const targets = (0, vue.computed)(() => { + const value = toValue$1(target); + const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish); + return new Set(items); + }); + const stopWatch = (0, vue.watch)(() => targets.value, (targets2) => { + cleanup(); + if (isSupported.value && targets2.size) { + observer = new MutationObserver(callback); + targets2.forEach((el) => observer.observe(el, mutationOptions)); + } + }, { + immediate: true, + flush: "post" + }); + const takeRecords = () => { + return observer == null ? void 0 : observer.takeRecords(); + }; + const stop = () => { + stopWatch(); + cleanup(); + }; + tryOnScopeDispose(stop); + return { + isSupported, + stop, + takeRecords + }; + } + function useActiveElement(options = {}) { + var _a; + const { window = defaultWindow, deep = true, triggerOnRemoval = false } = options; + const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document; + const getDeepActiveElement = () => { + var _a2; + let element = document == null ? void 0 : document.activeElement; + if (deep) while (element == null ? void 0 : element.shadowRoot) element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement; + return element; + }; + const activeElement = (0, vue.ref)(); + const trigger = () => { + activeElement.value = getDeepActiveElement(); + }; + if (window) { + useEventListener(window, "blur", (event) => { + if (event.relatedTarget !== null) return; + trigger(); + }, true); + useEventListener(window, "focus", trigger, true); + } + if (triggerOnRemoval) useMutationObserver(document, (mutations) => { + mutations.filter((m) => m.removedNodes.length).map((n) => Array.from(n.removedNodes)).flat().forEach((node) => { + if (node === activeElement.value) trigger(); + }); + }, { + childList: true, + subtree: true + }); + trigger(); + return activeElement; + } + function useMediaQuery(query, options = {}) { + const { window = defaultWindow } = options; + const isSupported = useSupported(() => window && "matchMedia" in window && typeof window.matchMedia === "function"); + let mediaQuery; + const matches = (0, vue.ref)(false); + const handler = (event) => { + matches.value = event.matches; + }; + const cleanup = () => { + if (!mediaQuery) return; + if ("removeEventListener" in mediaQuery) mediaQuery.removeEventListener("change", handler); + else mediaQuery.removeListener(handler); + }; + const stopWatch = (0, vue.watchEffect)(() => { + if (!isSupported.value) return; + cleanup(); + mediaQuery = window.matchMedia(toValue$1(query)); + if ("addEventListener" in mediaQuery) mediaQuery.addEventListener("change", handler); + else mediaQuery.addListener(handler); + matches.value = mediaQuery.matches; + }); + tryOnScopeDispose(() => { + stopWatch(); + cleanup(); + mediaQuery = void 0; + }); + return matches; + } + function cloneFnJSON(source) { + return JSON.parse(JSON.stringify(source)); + } + function useCssVar(prop, target, options = {}) { + const { window = defaultWindow, initialValue, observe = false } = options; + const variable = (0, vue.ref)(initialValue); + const elRef = (0, vue.computed)(() => { + var _a; + return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement); + }); + function updateCssVar() { + var _a; + const key = toValue$1(prop); + const el = toValue$1(elRef); + if (el && window && key) variable.value = ((_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim()) || initialValue; + } + if (observe) useMutationObserver(elRef, updateCssVar, { + attributeFilter: ["style", "class"], + window + }); + (0, vue.watch)([elRef, () => toValue$1(prop)], (_, old) => { + if (old[0] && old[1]) old[0].style.removeProperty(old[1]); + updateCssVar(); + }, { immediate: true }); + (0, vue.watch)(variable, (val) => { + var _a; + const raw_prop = toValue$1(prop); + if (((_a = elRef.value) == null ? void 0 : _a.style) && raw_prop) if (val == null) elRef.value.style.removeProperty(raw_prop); + else elRef.value.style.setProperty(raw_prop, val); + }); + return variable; + } + function useDocumentVisibility(options = {}) { + const { document = defaultDocument } = options; + if (!document) return (0, vue.ref)("visible"); + const visibility = (0, vue.ref)(document.visibilityState); + useEventListener(document, "visibilitychange", () => { + visibility.value = document.visibilityState; + }); + return visibility; + } + function useResizeObserver(target, callback, options = {}) { + const { window = defaultWindow, ...observerOptions } = options; + let observer; + const isSupported = useSupported(() => window && "ResizeObserver" in window); + const cleanup = () => { + if (observer) { + observer.disconnect(); + observer = void 0; + } + }; + const stopWatch = (0, vue.watch)((0, vue.computed)(() => { + const _targets = toValue$1(target); + return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)]; + }), (els) => { + cleanup(); + if (isSupported.value && window) { + observer = new ResizeObserver(callback); + for (const _el of els) if (_el) observer.observe(_el, observerOptions); + } + }, { + immediate: true, + flush: "post" + }); + const stop = () => { + cleanup(); + stopWatch(); + }; + tryOnScopeDispose(stop); + return { + isSupported, + stop + }; + } + function useElementBounding(target, options = {}) { + const { reset = true, windowResize = true, windowScroll = true, immediate = true, updateTiming = "sync" } = options; + const height = (0, vue.ref)(0); + const bottom = (0, vue.ref)(0); + const left = (0, vue.ref)(0); + const right = (0, vue.ref)(0); + const top = (0, vue.ref)(0); + const width = (0, vue.ref)(0); + const x = (0, vue.ref)(0); + const y = (0, vue.ref)(0); + function recalculate() { + const el = unrefElement(target); + if (!el) { + if (reset) { + height.value = 0; + bottom.value = 0; + left.value = 0; + right.value = 0; + top.value = 0; + width.value = 0; + x.value = 0; + y.value = 0; + } + return; + } + const rect = el.getBoundingClientRect(); + height.value = rect.height; + bottom.value = rect.bottom; + left.value = rect.left; + right.value = rect.right; + top.value = rect.top; + width.value = rect.width; + x.value = rect.x; + y.value = rect.y; + } + function update() { + if (updateTiming === "sync") recalculate(); + else if (updateTiming === "next-frame") requestAnimationFrame(() => recalculate()); + } + useResizeObserver(target, update); + (0, vue.watch)(() => unrefElement(target), (ele) => !ele && update()); + useMutationObserver(target, update, { attributeFilter: ["style", "class"] }); + if (windowScroll) useEventListener("scroll", update, { + capture: true, + passive: true + }); + if (windowResize) useEventListener("resize", update, { passive: true }); + tryOnMounted(() => { + if (immediate) update(); + }); + return { + height, + bottom, + left, + right, + top, + width, + x, + y, + update + }; + } + function useElementSize(target, initialSize = { + width: 0, + height: 0 + }, options = {}) { + const { window = defaultWindow, box = "content-box" } = options; + const isSVG = (0, vue.computed)(() => { + var _a, _b; + return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes("svg"); + }); + const width = (0, vue.ref)(initialSize.width); + const height = (0, vue.ref)(initialSize.height); + const { stop: stop1 } = useResizeObserver(target, ([entry]) => { + const boxSize = box === "border-box" ? entry.borderBoxSize : box === "content-box" ? entry.contentBoxSize : entry.devicePixelContentBoxSize; + if (window && isSVG.value) { + const $elem = unrefElement(target); + if ($elem) { + const rect = $elem.getBoundingClientRect(); + width.value = rect.width; + height.value = rect.height; + } + } else if (boxSize) { + const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize]; + width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0); + height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0); + } else { + width.value = entry.contentRect.width; + height.value = entry.contentRect.height; + } + }, options); + tryOnMounted(() => { + const ele = unrefElement(target); + if (ele) { + width.value = "offsetWidth" in ele ? ele.offsetWidth : initialSize.width; + height.value = "offsetHeight" in ele ? ele.offsetHeight : initialSize.height; + } + }); + const stop2 = (0, vue.watch)(() => unrefElement(target), (ele) => { + width.value = ele ? initialSize.width : 0; + height.value = ele ? initialSize.height : 0; + }); + function stop() { + stop1(); + stop2(); + } + return { + width, + height, + stop + }; + } + function useIntersectionObserver(target, callback, options = {}) { + const { root, rootMargin = "0px", threshold = 0, window = defaultWindow, immediate = true } = options; + const isSupported = useSupported(() => window && "IntersectionObserver" in window); + const targets = (0, vue.computed)(() => { + const _target = toValue$1(target); + return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish); + }); + let cleanup = noop$1; + const isActive = (0, vue.ref)(immediate); + const stopWatch = isSupported.value ? (0, vue.watch)(() => [ + targets.value, + unrefElement(root), + isActive.value + ], ([targets2, root2]) => { + cleanup(); + if (!isActive.value) return; + if (!targets2.length) return; + const observer = new IntersectionObserver(callback, { + root: unrefElement(root2), + rootMargin, + threshold + }); + targets2.forEach((el) => el && observer.observe(el)); + cleanup = () => { + observer.disconnect(); + cleanup = noop$1; + }; + }, { + immediate, + flush: "post" + }) : noop$1; + const stop = () => { + cleanup(); + stopWatch(); + isActive.value = false; + }; + tryOnScopeDispose(stop); + return { + isSupported, + isActive, + pause() { + cleanup(); + isActive.value = false; + }, + resume() { + isActive.value = true; + }, + stop + }; + } + const DEFAULT_UNITS = [ + { + max: 6e4, + value: 1e3, + name: "second" + }, + { + max: 276e4, + value: 6e4, + name: "minute" + }, + { + max: 72e6, + value: 36e5, + name: "hour" + }, + { + max: 5184e5, + value: 864e5, + name: "day" + }, + { + max: 24192e5, + value: 6048e5, + name: "week" + }, + { + max: 28512e6, + value: 2592e6, + name: "month" + }, + { + max: Number.POSITIVE_INFINITY, + value: 31536e6, + name: "year" + } + ]; + function useVModel(props, key, emit, options = {}) { + var _a, _b, _c; + const { clone = false, passive = false, eventName, deep = false, defaultValue, shouldEmit } = options; + const vm = (0, vue.getCurrentInstance)(); + const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy)); + let event = eventName; + if (!key) key = "modelValue"; + event = event || `update:${key.toString()}`; + const cloneFn = (val) => !clone ? val : typeof clone === "function" ? clone(val) : cloneFnJSON(val); + const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue; + const triggerEmit = (value) => { + if (shouldEmit) { + if (shouldEmit(value)) _emit(event, value); + } else _emit(event, value); + }; + if (passive) { + const proxy = (0, vue.ref)(getValue()); + let isUpdating = false; + (0, vue.watch)(() => props[key], (v) => { + if (!isUpdating) { + isUpdating = true; + proxy.value = cloneFn(v); + (0, vue.nextTick)(() => isUpdating = false); + } + }); + (0, vue.watch)(proxy, (v) => { + if (!isUpdating && (v !== props[key] || deep)) triggerEmit(v); + }, { deep }); + return proxy; + } else return (0, vue.computed)({ + get() { + return getValue(); + }, + set(value) { + triggerEmit(value); + } + }); + } + function useWindowFocus(options = {}) { + const { window = defaultWindow } = options; + if (!window) return (0, vue.ref)(false); + const focused = (0, vue.ref)(window.document.hasFocus()); + useEventListener(window, "blur", () => { + focused.value = false; + }); + useEventListener(window, "focus", () => { + focused.value = true; + }); + return focused; + } + function useWindowSize(options = {}) { + const { window = defaultWindow, initialWidth = Number.POSITIVE_INFINITY, initialHeight = Number.POSITIVE_INFINITY, listenOrientation = true, includeScrollbar = true, type = "inner" } = options; + const width = (0, vue.ref)(initialWidth); + const height = (0, vue.ref)(initialHeight); + const update = () => { + if (window) if (type === "outer") { + width.value = window.outerWidth; + height.value = window.outerHeight; + } else if (includeScrollbar) { + width.value = window.innerWidth; + height.value = window.innerHeight; + } else { + width.value = window.document.documentElement.clientWidth; + height.value = window.document.documentElement.clientHeight; + } + }; + update(); + tryOnMounted(update); + useEventListener("resize", update, { passive: true }); + if (listenOrientation) (0, vue.watch)(useMediaQuery("(orientation: portrait)"), () => update()); + return { + width, + height + }; + } + +//#endregion +//#region ../../packages/utils/browser.ts + const isFirefox = () => isClient && /firefox/i.test(window.navigator.userAgent); + const isAndroid = () => isClient && /android/i.test(window.navigator.userAgent); + +//#endregion +//#region ../../packages/utils/dom/event.ts + const composeEventHandlers = (theirsHandler, oursHandler, { checkForDefaultPrevented = true } = {}) => { + const handleEvent = (event) => { + const shouldPrevent = theirsHandler?.(event); + if (checkForDefaultPrevented === false || !shouldPrevent) return oursHandler?.(event); + }; + return handleEvent; + }; + const whenMouse = (handler) => { + return (e) => e.pointerType === "mouse" ? handler(e) : void 0; + }; + const getEventCode = (event) => { + if (event.code && event.code !== "Unidentified") return event.code; + const key = getEventKey(event); + if (key) { + if (Object.values(EVENT_CODE).includes(key)) return key; + switch (key) { + case " ": return EVENT_CODE.space; + default: return ""; + } + } + return ""; + }; + const getEventKey = (event) => { + let key = event.key && event.key !== "Unidentified" ? event.key : ""; + if (!key && event.type === "keyup" && isAndroid()) { + const target = event.target; + key = target.value.charAt(target.selectionStart - 1); + } + return key; + }; + +//#endregion +//#region ../../packages/utils/dom/position.ts + const getOffsetTop = (el) => { + let offset = 0; + let parent = el; + while (parent) { + offset += parent.offsetTop; + parent = parent.offsetParent; + } + return offset; + }; + const getOffsetTopDistance = (el, containerEl) => { + return Math.abs(getOffsetTop(el) - getOffsetTop(containerEl)); + }; + const getClientXY = (event) => { + let clientX; + let clientY; + if (event.type === "touchend") { + clientY = event.changedTouches[0].clientY; + clientX = event.changedTouches[0].clientX; + } else if (event.type.startsWith("touch")) { + clientY = event.touches[0].clientY; + clientX = event.touches[0].clientX; + } else { + clientY = event.clientY; + clientX = event.clientX; + } + return { + clientX, + clientY + }; + }; + +//#endregion +//#region ../../packages/utils/easings.ts + function easeInOutCubic(t, b, c, d) { + const cc = c - b; + t /= d / 2; + if (t < 1) return cc / 2 * t * t * t + b; + return cc / 2 * ((t -= 2) * t * t + 2) + b; + } + +//#endregion +//#region ../../node_modules/.pnpm/@vue+shared@3.5.25/node_modules/@vue/shared/dist/shared.esm-bundler.js +/** + * @vue/shared v3.5.25 + * (c) 2018-present Yuxi (Evan) You and Vue contributors + * @license MIT + **/ + /* @__NO_SIDE_EFFECTS__ */ + function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; + } + const NOOP = () => {}; + const hasOwnProperty$14 = Object.prototype.hasOwnProperty; + const hasOwn = (val, key) => hasOwnProperty$14.call(val, key); + const isArray$1 = Array.isArray; + const isDate = (val) => toTypeString(val) === "[object Date]"; + const isFunction$1 = (val) => typeof val === "function"; + const isString = (val) => typeof val === "string"; + const isObject$1 = (val) => val !== null && typeof val === "object"; + const isPromise = (val) => { + return (isObject$1(val) || isFunction$1(val)) && isFunction$1(val.then) && isFunction$1(val.catch); + }; + const objectToString$1 = Object.prototype.toString; + const toTypeString = (value) => objectToString$1.call(value); + const isPlainObject$1 = (val) => toTypeString(val) === "[object Object]"; + const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + return cache[str] || (cache[str] = fn(str)); + }); + }; + const camelizeRE = /-\w/g; + const camelize = cacheStringFunction((str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + }); + const hyphenateRE = /\B([A-Z])/g; + const hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, "-$1").toLowerCase()); + const capitalize$1 = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); + }); + const toHandlerKey = cacheStringFunction((str) => { + return str ? `on${capitalize$1(str)}` : ``; + }); + const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; + const isBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_freeGlobal.js +/** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof global == "object" && global && global.Object === Object && global; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_root.js +/** Detect free variable `self`. */ + var freeSelf = typeof self == "object" && self && self.Object === Object && self; + /** Used as a reference to the global object. */ + var root = freeGlobal || freeSelf || Function("return this")(); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Symbol.js +/** Built-in value references. */ + var Symbol$1 = root.Symbol; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getRawTag.js +/** Used for built-in method references. */ + var objectProto$4 = Object.prototype; + /** Used to check objects for own properties. */ + var hasOwnProperty$13 = objectProto$4.hasOwnProperty; + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString$1 = objectProto$4.toString; + /** Built-in value references. */ + var symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : void 0; + /** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ + function getRawTag(value) { + var isOwn = hasOwnProperty$13.call(value, symToStringTag$1), tag = value[symToStringTag$1]; + try { + value[symToStringTag$1] = void 0; + var unmasked = true; + } catch (e) {} + var result = nativeObjectToString$1.call(value); + if (unmasked) if (isOwn) value[symToStringTag$1] = tag; + else delete value[symToStringTag$1]; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_objectToString.js +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = Object.prototype.toString; + /** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ + function objectToString(value) { + return nativeObjectToString.call(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGetTag.js +/** `Object#toString` result references. */ + var nullTag = "[object Null]", undefinedTag = "[object Undefined]"; + /** Built-in value references. */ + var symToStringTag = Symbol$1 ? Symbol$1.toStringTag : void 0; + /** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + function baseGetTag(value) { + if (value == null) return value === void 0 ? undefinedTag : nullTag; + return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isObjectLike.js +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return value != null && typeof value == "object"; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isSymbol.js +/** `Object#toString` result references. */ + var symbolTag$3 = "[object Symbol]"; + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol(value) { + return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$3; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayMap.js +/** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function arrayMap(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length, result = Array(length); + while (++index < length) result[index] = iteratee(array[index], index, array); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArray.js +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseToString.js +/** Used as references for various `Number` constants. */ + var INFINITY$3 = Infinity; + /** Used to convert symbols to primitives and strings. */ + var symbolProto$2 = Symbol$1 ? Symbol$1.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0; + /** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ + function baseToString(value) { + if (typeof value == "string") return value; + if (isArray(value)) return arrayMap(value, baseToString) + ""; + if (isSymbol(value)) return symbolToString ? symbolToString.call(value) : ""; + var result = value + ""; + return result == "0" && 1 / value == -INFINITY$3 ? "-0" : result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_trimmedEndIndex.js +/** Used to match a single whitespace character. */ + var reWhitespace = /\s/; + /** + * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace + * character of `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the index of the last non-whitespace character. + */ + function trimmedEndIndex(string) { + var index = string.length; + while (index-- && reWhitespace.test(string.charAt(index))); + return index; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTrim.js +/** Used to match leading whitespace. */ + var reTrimStart = /^\s+/; + /** + * The base implementation of `_.trim`. + * + * @private + * @param {string} string The string to trim. + * @returns {string} Returns the trimmed string. + */ + function baseTrim(string) { + return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isObject.js +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + function isObject(value) { + var type = typeof value; + return value != null && (type == "object" || type == "function"); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toNumber.js +/** Used as references for various `Number` constants. */ + var NAN = NaN; + /** Used to detect bad signed hexadecimal string values. */ + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + /** Used to detect binary string values. */ + var reIsBinary = /^0b[01]+$/i; + /** Used to detect octal string values. */ + var reIsOctal = /^0o[0-7]+$/i; + /** Built-in method references without a dependency on `root`. */ + var freeParseInt = parseInt; + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + function toNumber(value) { + if (typeof value == "number") return value; + if (isSymbol(value)) return NAN; + if (isObject(value)) { + var other = typeof value.valueOf == "function" ? value.valueOf() : value; + value = isObject(other) ? other + "" : other; + } + if (typeof value != "string") return value === 0 ? value : +value; + value = baseTrim(value); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toFinite.js +/** Used as references for various `Number` constants. */ + var INFINITY$2 = Infinity, MAX_INTEGER = 17976931348623157e292; + /** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */ + function toFinite(value) { + if (!value) return value === 0 ? value : 0; + value = toNumber(value); + if (value === INFINITY$2 || value === -INFINITY$2) return (value < 0 ? -1 : 1) * MAX_INTEGER; + return value === value ? value : 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toInteger.js +/** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ + function toInteger(value) { + var result = toFinite(value), remainder = result % 1; + return result === result ? remainder ? result - remainder : result : 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/identity.js +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ + function identity(value) { + return value; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isFunction.js +/** `Object#toString` result references. */ + var asyncTag = "[object AsyncFunction]", funcTag$2 = "[object Function]", genTag$1 = "[object GeneratorFunction]", proxyTag = "[object Proxy]"; + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + if (!isObject(value)) return false; + var tag = baseGetTag(value); + return tag == funcTag$2 || tag == genTag$1 || tag == asyncTag || tag == proxyTag; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_coreJsData.js +/** Used to detect overreaching core-js shims. */ + var coreJsData = root["__core-js_shared__"]; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isMasked.js +/** Used to detect methods masquerading as native. */ + var maskSrcKey = function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ""); + return uid ? "Symbol(src)_1." + uid : ""; + }(); + /** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ + function isMasked(func) { + return !!maskSrcKey && maskSrcKey in func; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_toSource.js +/** Used to resolve the decompiled source of functions. */ + var funcToString$2 = Function.prototype.toString; + /** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ + function toSource(func) { + if (func != null) { + try { + return funcToString$2.call(func); + } catch (e) {} + try { + return func + ""; + } catch (e) {} + } + return ""; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsNative.js +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + /** Used to detect host constructors (Safari). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + /** Used for built-in method references. */ + var funcProto$1 = Function.prototype, objectProto$3 = Object.prototype; + /** Used to resolve the decompiled source of functions. */ + var funcToString$1 = funcProto$1.toString; + /** Used to check objects for own properties. */ + var hasOwnProperty$12 = objectProto$3.hasOwnProperty; + /** Used to detect if a method is native. */ + var reIsNative = RegExp("^" + funcToString$1.call(hasOwnProperty$12).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); + /** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ + function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) return false; + return (isFunction(value) ? reIsNative : reIsHostCtor).test(toSource(value)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getValue.js +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function getValue$1(object, key) { + return object == null ? void 0 : object[key]; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getNative.js +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = getValue$1(object, key); + return baseIsNative(value) ? value : void 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_WeakMap.js + var WeakMap$1 = getNative(root, "WeakMap"); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseCreate.js +/** Built-in value references. */ + var objectCreate = Object.create; + /** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ + var baseCreate = function() { + function object() {} + return function(proto) { + if (!isObject(proto)) return {}; + if (objectCreate) return objectCreate(proto); + object.prototype = proto; + var result = new object(); + object.prototype = void 0; + return result; + }; + }(); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_apply.js +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ + function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/noop.js +/** + * This method returns `undefined`. + * + * @static + * @memberOf _ + * @since 2.3.0 + * @category Util + * @example + * + * _.times(2, _.noop); + * // => [undefined, undefined] + */ + function noop() {} + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copyArray.js +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ + function copyArray(source, array) { + var index = -1, length = source.length; + array || (array = Array(length)); + while (++index < length) array[index] = source[index]; + return array; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_shortOut.js +/** Used to detect hot functions by number of calls within a span of milliseconds. */ + var HOT_COUNT = 800, HOT_SPAN = 16; + var nativeNow = Date.now; + /** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ + function shortOut(func) { + var count = 0, lastCalled = 0; + return function() { + var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) return arguments[0]; + } else count = 0; + return func.apply(void 0, arguments); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/constant.js +/** + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true + */ + function constant(value) { + return function() { + return value; + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_defineProperty.js + var defineProperty = function() { + try { + var func = getNative(Object, "defineProperty"); + func({}, "", {}); + return func; + } catch (e) {} + }(); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSetToString.js +/** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, "toString", { + "configurable": true, + "enumerable": false, + "value": constant(string), + "writable": true + }); + }; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setToString.js +/** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var setToString = shortOut(baseSetToString); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayEach.js +/** + * A specialized version of `_.forEach` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ + function arrayEach(array, iteratee) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) if (iteratee(array[index], index, array) === false) break; + return array; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFindIndex.js +/** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseFindIndex(array, predicate, fromIndex, fromRight) { + var length = array.length, index = fromIndex + (fromRight ? 1 : -1); + while (fromRight ? index-- : ++index < length) if (predicate(array[index], index, array)) return index; + return -1; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsNaN.js +/** + * The base implementation of `_.isNaN` without support for number objects. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`. + */ + function baseIsNaN(value) { + return value !== value; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_strictIndexOf.js +/** + * A specialized version of `_.indexOf` which performs strict equality + * comparisons of values, i.e. `===`. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function strictIndexOf(array, value, fromIndex) { + var index = fromIndex - 1, length = array.length; + while (++index < length) if (array[index] === value) return index; + return -1; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIndexOf.js +/** + * The base implementation of `_.indexOf` without `fromIndex` bounds checks. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} value The value to search for. + * @param {number} fromIndex The index to search from. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function baseIndexOf(array, value, fromIndex) { + return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayIncludes.js +/** + * A specialized version of `_.includes` for arrays without support for + * specifying an index to search from. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ + function arrayIncludes(array, value) { + return !!(array == null ? 0 : array.length) && baseIndexOf(array, value, 0) > -1; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isIndex.js +/** Used as references for various `Number` constants. */ + var MAX_SAFE_INTEGER$1 = 9007199254740991; + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER$1 : length; + return !!length && (type == "number" || type != "symbol" && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssignValue.js +/** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function baseAssignValue(object, key, value) { + if (key == "__proto__" && defineProperty) defineProperty(object, key, { + "configurable": true, + "enumerable": true, + "value": value, + "writable": true + }); + else object[key] = value; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/eq.js +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ + function eq(value, other) { + return value === other || value !== value && other !== other; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assignValue.js +/** Used to check objects for own properties. */ + var hasOwnProperty$11 = Object.prototype.hasOwnProperty; + /** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty$11.call(object, key) && eq(objValue, value)) || value === void 0 && !(key in object)) baseAssignValue(object, key, value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copyObject.js +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + var index = -1, length = props.length; + while (++index < length) { + var key = props[index]; + var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0; + if (newValue === void 0) newValue = source[key]; + if (isNew) baseAssignValue(object, key, newValue); + else assignValue(object, key, newValue); + } + return object; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_overRest.js + var nativeMax$2 = Math.max; + /** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ + function overRest(func, start, transform) { + start = nativeMax$2(start === void 0 ? func.length - 1 : start, 0); + return function() { + var args = arguments, index = -1, length = nativeMax$2(args.length - start, 0), array = Array(length); + while (++index < length) array[index] = args[start + index]; + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) otherArgs[index] = args[index]; + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseRest.js +/** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ + function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ""); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isLength.js +/** Used as references for various `Number` constants. */ + var MAX_SAFE_INTEGER = 9007199254740991; + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + function isLength(value) { + return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArrayLike.js +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isIterateeCall.js +/** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ + function isIterateeCall(value, index, object) { + if (!isObject(object)) return false; + var type = typeof index; + if (type == "number" ? isArrayLike(object) && isIndex(index, object.length) : type == "string" && index in object) return eq(object[index], value); + return false; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createAssigner.js +/** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0; + customizer = assigner.length > 3 && typeof customizer == "function" ? (length--, customizer) : void 0; + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? void 0 : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) assigner(object, source, index, customizer); + } + return object; + }); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isPrototype.js +/** Used for built-in method references. */ + var objectProto$2 = Object.prototype; + /** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ + function isPrototype(value) { + var Ctor = value && value.constructor; + return value === (typeof Ctor == "function" && Ctor.prototype || objectProto$2); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseTimes.js +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ + function baseTimes(n, iteratee) { + var index = -1, result = Array(n); + while (++index < n) result[index] = iteratee(index); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsArguments.js +/** `Object#toString` result references. */ + var argsTag$3 = "[object Arguments]"; + /** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag$3; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArguments.js +/** Used for built-in method references. */ + var objectProto$1 = Object.prototype; + /** Used to check objects for own properties. */ + var hasOwnProperty$10 = objectProto$1.hasOwnProperty; + /** Built-in value references. */ + var propertyIsEnumerable$1 = objectProto$1.propertyIsEnumerable; + /** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + var isArguments = baseIsArguments(function() { + return arguments; + }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty$10.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee"); + }; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/stubFalse.js +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ + function stubFalse() { + return false; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isBuffer.js +/** Detect free variable `exports`. */ + var freeExports$2 = typeof exports == "object" && exports && !exports.nodeType && exports; + /** Detect free variable `module`. */ + var freeModule$2 = freeExports$2 && typeof module == "object" && module && !module.nodeType && module; + /** Built-in value references. */ + var Buffer$2 = freeModule$2 && freeModule$2.exports === freeExports$2 ? root.Buffer : void 0; + /** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ + var isBuffer = (Buffer$2 ? Buffer$2.isBuffer : void 0) || stubFalse; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsTypedArray.js +/** `Object#toString` result references. */ + var argsTag$2 = "[object Arguments]", arrayTag$2 = "[object Array]", boolTag$3 = "[object Boolean]", dateTag$3 = "[object Date]", errorTag$2 = "[object Error]", funcTag$1 = "[object Function]", mapTag$5 = "[object Map]", numberTag$3 = "[object Number]", objectTag$4 = "[object Object]", regexpTag$3 = "[object RegExp]", setTag$5 = "[object Set]", stringTag$3 = "[object String]", weakMapTag$2 = "[object WeakMap]"; + var arrayBufferTag$3 = "[object ArrayBuffer]", dataViewTag$4 = "[object DataView]", float32Tag$2 = "[object Float32Array]", float64Tag$2 = "[object Float64Array]", int8Tag$2 = "[object Int8Array]", int16Tag$2 = "[object Int16Array]", int32Tag$2 = "[object Int32Array]", uint8Tag$2 = "[object Uint8Array]", uint8ClampedTag$2 = "[object Uint8ClampedArray]", uint16Tag$2 = "[object Uint16Array]", uint32Tag$2 = "[object Uint32Array]"; + /** Used to identify `toStringTag` values of typed arrays. */ + var typedArrayTags = {}; + typedArrayTags[float32Tag$2] = typedArrayTags[float64Tag$2] = typedArrayTags[int8Tag$2] = typedArrayTags[int16Tag$2] = typedArrayTags[int32Tag$2] = typedArrayTags[uint8Tag$2] = typedArrayTags[uint8ClampedTag$2] = typedArrayTags[uint16Tag$2] = typedArrayTags[uint32Tag$2] = true; + typedArrayTags[argsTag$2] = typedArrayTags[arrayTag$2] = typedArrayTags[arrayBufferTag$3] = typedArrayTags[boolTag$3] = typedArrayTags[dataViewTag$4] = typedArrayTags[dateTag$3] = typedArrayTags[errorTag$2] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag$5] = typedArrayTags[numberTag$3] = typedArrayTags[objectTag$4] = typedArrayTags[regexpTag$3] = typedArrayTags[setTag$5] = typedArrayTags[stringTag$3] = typedArrayTags[weakMapTag$2] = false; + /** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ + function baseIsTypedArray(value) { + return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseUnary.js +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ + function baseUnary(func) { + return function(value) { + return func(value); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nodeUtil.js +/** Detect free variable `exports`. */ + var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports; + /** Detect free variable `module`. */ + var freeModule$1 = freeExports$1 && typeof module == "object" && module && !module.nodeType && module; + /** Detect free variable `process` from Node.js. */ + var freeProcess = freeModule$1 && freeModule$1.exports === freeExports$1 && freeGlobal.process; + /** Used to access faster Node.js helpers. */ + var nodeUtil = function() { + try { + var types = freeModule$1 && freeModule$1.require && freeModule$1.require("util").types; + if (types) return types; + return freeProcess && freeProcess.binding && freeProcess.binding("util"); + } catch (e) {} + }(); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isTypedArray.js + var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + /** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ + var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayLikeKeys.js +/** Used to check objects for own properties. */ + var hasOwnProperty$9 = Object.prototype.hasOwnProperty; + /** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ + function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length; + for (var key in value) if ((inherited || hasOwnProperty$9.call(value, key)) && !(skipIndexes && (key == "length" || isBuff && (key == "offset" || key == "parent") || isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || isIndex(key, length)))) result.push(key); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_overArg.js +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeKeys.js + var nativeKeys = overArg(Object.keys, Object); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseKeys.js +/** Used to check objects for own properties. */ + var hasOwnProperty$8 = Object.prototype.hasOwnProperty; + /** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeys(object) { + if (!isPrototype(object)) return nativeKeys(object); + var result = []; + for (var key in Object(object)) if (hasOwnProperty$8.call(object, key) && key != "constructor") result.push(key); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/keys.js +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeKeysIn.js +/** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function nativeKeysIn(object) { + var result = []; + if (object != null) for (var key in Object(object)) result.push(key); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseKeysIn.js +/** Used to check objects for own properties. */ + var hasOwnProperty$7 = Object.prototype.hasOwnProperty; + /** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeysIn(object) { + if (!isObject(object)) return nativeKeysIn(object); + var isProto = isPrototype(object), result = []; + for (var key in object) if (!(key == "constructor" && (isProto || !hasOwnProperty$7.call(object, key)))) result.push(key); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/keysIn.js +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ + function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isKey.js +/** Used to match property names within property paths. */ + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/; + /** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ + function isKey(value, object) { + if (isArray(value)) return false; + var type = typeof value; + if (type == "number" || type == "symbol" || type == "boolean" || value == null || isSymbol(value)) return true; + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_nativeCreate.js + var nativeCreate = getNative(Object, "create"); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashClear.js +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ + function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashDelete.js +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashGet.js +/** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED$2 = "__lodash_hash_undefined__"; + /** Used to check objects for own properties. */ + var hasOwnProperty$6 = Object.prototype.hasOwnProperty; + /** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED$2 ? void 0 : result; + } + return hasOwnProperty$6.call(data, key) ? data[key] : void 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashHas.js +/** Used to check objects for own properties. */ + var hasOwnProperty$5 = Object.prototype.hasOwnProperty; + /** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function hashHas(key) { + var data = this.__data__; + return nativeCreate ? data[key] !== void 0 : hasOwnProperty$5.call(data, key); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hashSet.js +/** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED$1 = "__lodash_hash_undefined__"; + /** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED$1 : value; + return this; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Hash.js +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Hash(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + Hash.prototype.clear = hashClear; + Hash.prototype["delete"] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheClear.js +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assocIndexOf.js +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function assocIndexOf(array, key) { + var length = array.length; + while (length--) if (eq(array[length][0], key)) return length; + return -1; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheDelete.js +/** Built-in value references. */ + var splice = Array.prototype.splice; + /** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function listCacheDelete(key) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) return false; + if (index == data.length - 1) data.pop(); + else splice.call(data, index, 1); + --this.size; + return true; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheGet.js +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function listCacheGet(key) { + var data = this.__data__, index = assocIndexOf(data, key); + return index < 0 ? void 0 : data[index][1]; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheHas.js +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_listCacheSet.js +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ + function listCacheSet(key, value) { + var data = this.__data__, index = assocIndexOf(data, key); + if (index < 0) { + ++this.size; + data.push([key, value]); + } else data[index][1] = value; + return this; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_ListCache.js +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function ListCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + ListCache.prototype.clear = listCacheClear; + ListCache.prototype["delete"] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Map.js + var Map$1 = getNative(root, "Map"); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheClear.js +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ + function mapCacheClear() { + this.size = 0; + this.__data__ = { + "hash": new Hash(), + "map": new (Map$1 || ListCache)(), + "string": new Hash() + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isKeyable.js +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ + function isKeyable(value) { + var type = typeof value; + return type == "string" || type == "number" || type == "symbol" || type == "boolean" ? value !== "__proto__" : value === null; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getMapData.js +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ + function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheDelete.js +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function mapCacheDelete(key) { + var result = getMapData(this, key)["delete"](key); + this.size -= result ? 1 : 0; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheGet.js +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function mapCacheGet(key) { + return getMapData(this, key).get(key); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheHas.js +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function mapCacheHas(key) { + return getMapData(this, key).has(key); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapCacheSet.js +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ + function mapCacheSet(key, value) { + var data = getMapData(this, key), size = data.size; + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_MapCache.js +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function MapCache(entries) { + var index = -1, length = entries == null ? 0 : entries.length; + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype["delete"] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/memoize.js +/** Error message constants. */ + var FUNC_ERROR_TEXT$2 = "Expected a function"; + /** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ + function memoize(func, resolver) { + if (typeof func != "function" || resolver != null && typeof resolver != "function") throw new TypeError(FUNC_ERROR_TEXT$2); + var memoized = function() { + var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; + if (cache.has(key)) return cache.get(key); + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache)(); + return memoized; + } + memoize.Cache = MapCache; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_memoizeCapped.js +/** Used as the maximum memoize cache size. */ + var MAX_MEMOIZE_SIZE = 500; + /** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ + function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) cache.clear(); + return key; + }); + var cache = result.cache; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stringToPath.js +/** Used to match property names within property paths. */ + var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + /** Used to match backslashes in property paths. */ + var reEscapeChar = /\\(\\)?/g; + /** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ + var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46) result.push(""); + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, "$1") : number || match); + }); + return result; + }); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toString.js +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ + function toString(value) { + return value == null ? "" : baseToString(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_castPath.js +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ + function castPath(value, object) { + if (isArray(value)) return value; + return isKey(value, object) ? [value] : stringToPath(toString(value)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_toKey.js +/** Used as references for various `Number` constants. */ + var INFINITY$1 = Infinity; + /** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ + function toKey(value) { + if (typeof value == "string" || isSymbol(value)) return value; + var result = value + ""; + return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGet.js +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ + function baseGet(object, path) { + path = castPath(path, object); + var index = 0, length = path.length; + while (object != null && index < length) object = object[toKey(path[index++])]; + return index && index == length ? object : void 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/get.js +/** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ + function get(object, path, defaultValue) { + var result = object == null ? void 0 : baseGet(object, path); + return result === void 0 ? defaultValue : result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayPush.js +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + function arrayPush(array, values) { + var index = -1, length = values.length, offset = array.length; + while (++index < length) array[offset + index] = values[index]; + return array; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isFlattenable.js +/** Built-in value references. */ + var spreadableSymbol = Symbol$1 ? Symbol$1.isConcatSpreadable : void 0; + /** + * Checks if `value` is a flattenable `arguments` object or array. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. + */ + function isFlattenable(value) { + return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFlatten.js +/** + * The base implementation of `_.flatten` with support for restricting flattening. + * + * @private + * @param {Array} array The array to flatten. + * @param {number} depth The maximum recursion depth. + * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. + * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. + * @param {Array} [result=[]] The initial result value. + * @returns {Array} Returns the new flattened array. + */ + function baseFlatten(array, depth, predicate, isStrict, result) { + var index = -1, length = array.length; + predicate || (predicate = isFlattenable); + result || (result = []); + while (++index < length) { + var value = array[index]; + if (depth > 0 && predicate(value)) if (depth > 1) baseFlatten(value, depth - 1, predicate, isStrict, result); + else arrayPush(result, value); + else if (!isStrict) result[result.length] = value; + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flatten.js +/** + * Flattens `array` a single level deep. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flatten([1, [2, [3, [4]], 5]]); + * // => [1, 2, [3, [4]], 5] + */ + function flatten(array) { + return (array == null ? 0 : array.length) ? baseFlatten(array, 1) : []; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_flatRest.js +/** + * A specialized version of `baseRest` which flattens the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @returns {Function} Returns the new function. + */ + function flatRest(func) { + return setToString(overRest(func, void 0, flatten), func + ""); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getPrototype.js +/** Built-in value references. */ + var getPrototype = overArg(Object.getPrototypeOf, Object); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isPlainObject.js +/** `Object#toString` result references. */ + var objectTag$3 = "[object Object]"; + /** Used for built-in method references. */ + var funcProto = Function.prototype, objectProto = Object.prototype; + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; + /** Used to check objects for own properties. */ + var hasOwnProperty$4 = objectProto.hasOwnProperty; + /** Used to infer the `Object` constructor. */ + var objectCtorString = funcToString.call(Object); + /** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ + function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag$3) return false; + var proto = getPrototype(value); + if (proto === null) return true; + var Ctor = hasOwnProperty$4.call(proto, "constructor") && proto.constructor; + return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSlice.js +/** + * The base implementation of `_.slice` without an iteratee call guard. + * + * @private + * @param {Array} array The array to slice. + * @param {number} [start=0] The start position. + * @param {number} [end=array.length] The end position. + * @returns {Array} Returns the slice of `array`. + */ + function baseSlice(array, start, end) { + var index = -1, length = array.length; + if (start < 0) start = -start > length ? 0 : length + start; + end = end > length ? length : end; + if (end < 0) end += length; + length = start > end ? 0 : end - start >>> 0; + start >>>= 0; + var result = Array(length); + while (++index < length) result[index] = array[index + start]; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/castArray.js +/** + * Casts `value` as an array if it's not one. + * + * @static + * @memberOf _ + * @since 4.4.0 + * @category Lang + * @param {*} value The value to inspect. + * @returns {Array} Returns the cast array. + * @example + * + * _.castArray(1); + * // => [1] + * + * _.castArray({ 'a': 1 }); + * // => [{ 'a': 1 }] + * + * _.castArray('abc'); + * // => ['abc'] + * + * _.castArray(null); + * // => [null] + * + * _.castArray(undefined); + * // => [undefined] + * + * _.castArray(); + * // => [] + * + * var array = [1, 2, 3]; + * console.log(_.castArray(array) === array); + * // => true + */ + function castArray$1() { + if (!arguments.length) return []; + var value = arguments[0]; + return isArray(value) ? value : [value]; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseClamp.js +/** + * The base implementation of `_.clamp` which doesn't coerce arguments. + * + * @private + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + */ + function baseClamp(number, lower, upper) { + if (number === number) { + if (upper !== void 0) number = number <= upper ? number : upper; + if (lower !== void 0) number = number >= lower ? number : lower; + } + return number; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/clamp.js +/** + * Clamps `number` within the inclusive `lower` and `upper` bounds. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Number + * @param {number} number The number to clamp. + * @param {number} [lower] The lower bound. + * @param {number} upper The upper bound. + * @returns {number} Returns the clamped number. + * @example + * + * _.clamp(-10, -5, 5); + * // => -5 + * + * _.clamp(10, -5, 5); + * // => 5 + */ + function clamp$1(number, lower, upper) { + if (upper === void 0) { + upper = lower; + lower = void 0; + } + if (upper !== void 0) { + upper = toNumber(upper); + upper = upper === upper ? upper : 0; + } + if (lower !== void 0) { + lower = toNumber(lower); + lower = lower === lower ? lower : 0; + } + return baseClamp(toNumber(number), lower, upper); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackClear.js +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ + function stackClear() { + this.__data__ = new ListCache(); + this.size = 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackDelete.js +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function stackDelete(key) { + var data = this.__data__, result = data["delete"](key); + this.size = data.size; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackGet.js +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function stackGet(key) { + return this.__data__.get(key); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackHas.js +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function stackHas(key) { + return this.__data__.has(key); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_stackSet.js +/** Used as the size to enable large array optimizations. */ + var LARGE_ARRAY_SIZE$1 = 200; + /** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ + function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map$1 || pairs.length < LARGE_ARRAY_SIZE$1 - 1) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Stack.js +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Stack(entries) { + this.size = (this.__data__ = new ListCache(entries)).size; + } + Stack.prototype.clear = stackClear; + Stack.prototype["delete"] = stackDelete; + Stack.prototype.get = stackGet; + Stack.prototype.has = stackHas; + Stack.prototype.set = stackSet; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssign.js +/** + * The base implementation of `_.assign` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseAssignIn.js +/** + * The base implementation of `_.assignIn` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneBuffer.js +/** Detect free variable `exports`. */ + var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports; + /** Detect free variable `module`. */ + var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module; + /** Built-in value references. */ + var Buffer$1 = freeModule && freeModule.exports === freeExports ? root.Buffer : void 0, allocUnsafe = Buffer$1 ? Buffer$1.allocUnsafe : void 0; + /** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ + function cloneBuffer(buffer, isDeep) { + if (isDeep) return buffer.slice(); + var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + buffer.copy(result); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayFilter.js +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + function arrayFilter(array, predicate) { + var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) result[resIndex++] = value; + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/stubArray.js +/** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ + function stubArray() { + return []; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getSymbols.js +/** Built-in value references. */ + var propertyIsEnumerable = Object.prototype.propertyIsEnumerable; + var nativeGetSymbols = Object.getOwnPropertySymbols; + /** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) return []; + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); + }; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copySymbols.js +/** + * Copies own symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ + function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getSymbolsIn.js +/** + * Creates an array of the own and inherited enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbolsIn = !Object.getOwnPropertySymbols ? stubArray : function(object) { + var result = []; + while (object) { + arrayPush(result, getSymbols(object)); + object = getPrototype(object); + } + return result; + }; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_copySymbolsIn.js +/** + * Copies own and inherited symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ + function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn(source), object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseGetAllKeys.js +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ + function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getAllKeys.js +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getAllKeysIn.js +/** + * Creates an array of own and inherited enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_DataView.js + var DataView = getNative(root, "DataView"); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Promise.js + var Promise$1 = getNative(root, "Promise"); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Set.js + var Set$1 = getNative(root, "Set"); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getTag.js +/** `Object#toString` result references. */ + var mapTag$4 = "[object Map]", objectTag$2 = "[object Object]", promiseTag = "[object Promise]", setTag$4 = "[object Set]", weakMapTag$1 = "[object WeakMap]"; + var dataViewTag$3 = "[object DataView]"; + /** Used to detect maps, sets, and weakmaps. */ + var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map$1), promiseCtorString = toSource(Promise$1), setCtorString = toSource(Set$1), weakMapCtorString = toSource(WeakMap$1); + /** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + var getTag = baseGetTag; + if (DataView && getTag(new DataView(/* @__PURE__ */ new ArrayBuffer(1))) != dataViewTag$3 || Map$1 && getTag(new Map$1()) != mapTag$4 || Promise$1 && getTag(Promise$1.resolve()) != promiseTag || Set$1 && getTag(new Set$1()) != setTag$4 || WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag$1) getTag = function(value) { + var result = baseGetTag(value), Ctor = result == objectTag$2 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : ""; + if (ctorString) switch (ctorString) { + case dataViewCtorString: return dataViewTag$3; + case mapCtorString: return mapTag$4; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag$4; + case weakMapCtorString: return weakMapTag$1; + } + return result; + }; + var _getTag_default = getTag; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneArray.js +/** Used to check objects for own properties. */ + var hasOwnProperty$3 = Object.prototype.hasOwnProperty; + /** + * Initializes an array clone. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. + */ + function initCloneArray(array) { + var length = array.length, result = new array.constructor(length); + if (length && typeof array[0] == "string" && hasOwnProperty$3.call(array, "index")) { + result.index = array.index; + result.input = array.input; + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_Uint8Array.js +/** Built-in value references. */ + var Uint8Array$1 = root.Uint8Array; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneArrayBuffer.js +/** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ + function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array$1(result).set(new Uint8Array$1(arrayBuffer)); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneDataView.js +/** + * Creates a clone of `dataView`. + * + * @private + * @param {Object} dataView The data view to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned data view. + */ + function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneRegExp.js +/** Used to match `RegExp` flags from their coerced string values. */ + var reFlags = /\w*$/; + /** + * Creates a clone of `regexp`. + * + * @private + * @param {Object} regexp The regexp to clone. + * @returns {Object} Returns the cloned regexp. + */ + function cloneRegExp(regexp) { + var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result.lastIndex = regexp.lastIndex; + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneSymbol.js +/** Used to convert symbols to primitives and strings. */ + var symbolProto$1 = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : void 0; + /** + * Creates a clone of the `symbol` object. + * + * @private + * @param {Object} symbol The symbol object to clone. + * @returns {Object} Returns the cloned symbol object. + */ + function cloneSymbol(symbol) { + return symbolValueOf$1 ? Object(symbolValueOf$1.call(symbol)) : {}; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cloneTypedArray.js +/** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ + function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneByTag.js +/** `Object#toString` result references. */ + var boolTag$2 = "[object Boolean]", dateTag$2 = "[object Date]", mapTag$3 = "[object Map]", numberTag$2 = "[object Number]", regexpTag$2 = "[object RegExp]", setTag$3 = "[object Set]", stringTag$2 = "[object String]", symbolTag$2 = "[object Symbol]"; + var arrayBufferTag$2 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag$1 = "[object Float32Array]", float64Tag$1 = "[object Float64Array]", int8Tag$1 = "[object Int8Array]", int16Tag$1 = "[object Int16Array]", int32Tag$1 = "[object Int32Array]", uint8Tag$1 = "[object Uint8Array]", uint8ClampedTag$1 = "[object Uint8ClampedArray]", uint16Tag$1 = "[object Uint16Array]", uint32Tag$1 = "[object Uint32Array]"; + /** + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag$2: return cloneArrayBuffer(object); + case boolTag$2: + case dateTag$2: return new Ctor(+object); + case dataViewTag$2: return cloneDataView(object, isDeep); + case float32Tag$1: + case float64Tag$1: + case int8Tag$1: + case int16Tag$1: + case int32Tag$1: + case uint8Tag$1: + case uint8ClampedTag$1: + case uint16Tag$1: + case uint32Tag$1: return cloneTypedArray(object, isDeep); + case mapTag$3: return new Ctor(); + case numberTag$2: + case stringTag$2: return new Ctor(object); + case regexpTag$2: return cloneRegExp(object); + case setTag$3: return new Ctor(); + case symbolTag$2: return cloneSymbol(object); + } + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_initCloneObject.js +/** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ + function initCloneObject(object) { + return typeof object.constructor == "function" && !isPrototype(object) ? baseCreate(getPrototype(object)) : {}; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsMap.js +/** `Object#toString` result references. */ + var mapTag$2 = "[object Map]"; + /** + * The base implementation of `_.isMap` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + */ + function baseIsMap(value) { + return isObjectLike(value) && _getTag_default(value) == mapTag$2; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isMap.js + var nodeIsMap = nodeUtil && nodeUtil.isMap; + /** + * Checks if `value` is classified as a `Map` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + * @example + * + * _.isMap(new Map); + * // => true + * + * _.isMap(new WeakMap); + * // => false + */ + var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsSet.js +/** `Object#toString` result references. */ + var setTag$2 = "[object Set]"; + /** + * The base implementation of `_.isSet` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + */ + function baseIsSet(value) { + return isObjectLike(value) && _getTag_default(value) == setTag$2; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isSet.js + var nodeIsSet = nodeUtil && nodeUtil.isSet; + /** + * Checks if `value` is classified as a `Set` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + * @example + * + * _.isSet(new Set); + * // => true + * + * _.isSet(new WeakSet); + * // => false + */ + var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseClone.js +/** Used to compose bitmasks for cloning. */ + var CLONE_DEEP_FLAG$2 = 1, CLONE_FLAT_FLAG$1 = 2, CLONE_SYMBOLS_FLAG$2 = 4; + /** `Object#toString` result references. */ + var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$1 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag$1 = "[object Map]", numberTag$1 = "[object Number]", objectTag$1 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$1 = "[object Set]", stringTag$1 = "[object String]", symbolTag$1 = "[object Symbol]", weakMapTag = "[object WeakMap]"; + var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$1 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]"; + /** Used to identify `toStringTag` values supported by `_.clone`. */ + var cloneableTags = {}; + cloneableTags[argsTag$1] = cloneableTags[arrayTag$1] = cloneableTags[arrayBufferTag$1] = cloneableTags[dataViewTag$1] = cloneableTags[boolTag$1] = cloneableTags[dateTag$1] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag$1] = cloneableTags[numberTag$1] = cloneableTags[objectTag$1] = cloneableTags[regexpTag$1] = cloneableTags[setTag$1] = cloneableTags[stringTag$1] = cloneableTags[symbolTag$1] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; + cloneableTags[errorTag$1] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false; + /** + * The base implementation of `_.clone` and `_.cloneDeep` which tracks + * traversed objects. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} bitmask The bitmask flags. + * 1 - Deep clone + * 2 - Flatten inherited properties + * 4 - Clone symbols + * @param {Function} [customizer] The function to customize cloning. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The parent object of `value`. + * @param {Object} [stack] Tracks traversed objects and their clone counterparts. + * @returns {*} Returns the cloned value. + */ + function baseClone(value, bitmask, customizer, key, object, stack) { + var result, isDeep = bitmask & CLONE_DEEP_FLAG$2, isFlat = bitmask & CLONE_FLAT_FLAG$1, isFull = bitmask & CLONE_SYMBOLS_FLAG$2; + if (customizer) result = object ? customizer(value, key, object, stack) : customizer(value); + if (result !== void 0) return result; + if (!isObject(value)) return value; + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) return copyArray(value, result); + } else { + var tag = _getTag_default(value), isFunc = tag == funcTag || tag == genTag; + if (isBuffer(value)) return cloneBuffer(value, isDeep); + if (tag == objectTag$1 || tag == argsTag$1 || isFunc && !object) { + result = isFlat || isFunc ? {} : initCloneObject(value); + if (!isDeep) return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value)); + } else { + if (!cloneableTags[tag]) return object ? value : {}; + result = initCloneByTag(value, tag, isDeep); + } + } + stack || (stack = new Stack()); + var stacked = stack.get(value); + if (stacked) return stacked; + stack.set(value, result); + if (isSet(value)) value.forEach(function(subValue) { + result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); + }); + else if (isMap(value)) value.forEach(function(subValue, key) { + result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + var props = isArr ? void 0 : (isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys)(value); + arrayEach(props || value, function(subValue, key) { + if (props) { + key = subValue; + subValue = value[key]; + } + assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/cloneDeep.js +/** Used to compose bitmasks for cloning. */ + var CLONE_DEEP_FLAG$1 = 1, CLONE_SYMBOLS_FLAG$1 = 4; + /** + * This method is like `_.clone` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @returns {*} Returns the deep cloned value. + * @see _.clone + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var deep = _.cloneDeep(objects); + * console.log(deep[0] === objects[0]); + * // => false + */ + function cloneDeep(value) { + return baseClone(value, CLONE_DEEP_FLAG$1 | CLONE_SYMBOLS_FLAG$1); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setCacheAdd.js +/** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED = "__lodash_hash_undefined__"; + /** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ + function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setCacheHas.js +/** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ + function setCacheHas(value) { + return this.__data__.has(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_SetCache.js +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ + function SetCache(values) { + var index = -1, length = values == null ? 0 : values.length; + this.__data__ = new MapCache(); + while (++index < length) this.add(values[index]); + } + SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; + SetCache.prototype.has = setCacheHas; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arraySome.js +/** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + function arraySome(array, predicate) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) if (predicate(array[index], index, array)) return true; + return false; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_cacheHas.js +/** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function cacheHas(cache, key) { + return cache.has(key); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalArrays.js +/** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$5 = 1, COMPARE_UNORDERED_FLAG$3 = 2; + /** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, arrLength = array.length, othLength = other.length; + if (arrLength != othLength && !(isPartial && othLength > arrLength)) return false; + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) return arrStacked == other && othStacked == array; + var index = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new SetCache() : void 0; + stack.set(array, other); + stack.set(other, array); + while (++index < arrLength) { + var arrValue = array[index], othValue = other[index]; + if (customizer) var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); + if (compared !== void 0) { + if (compared) continue; + result = false; + break; + } + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) return seen.push(othIndex); + })) { + result = false; + break; + } + } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + result = false; + break; + } + } + stack["delete"](array); + stack["delete"](other); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_mapToArray.js +/** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ + function mapToArray(map) { + var index = -1, result = Array(map.size); + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_setToArray.js +/** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ + function setToArray(set) { + var index = -1, result = Array(set.size); + set.forEach(function(value) { + result[++index] = value; + }); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalByTag.js +/** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$4 = 1, COMPARE_UNORDERED_FLAG$2 = 2; + /** `Object#toString` result references. */ + var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]"; + var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]"; + /** Used to convert symbols to primitives and strings. */ + var symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0; + /** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) return false; + object = object.buffer; + other = other.buffer; + case arrayBufferTag: + if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array$1(object), new Uint8Array$1(other))) return false; + return true; + case boolTag: + case dateTag: + case numberTag: return eq(+object, +other); + case errorTag: return object.name == other.name && object.message == other.message; + case regexpTag: + case stringTag: return object == other + ""; + case mapTag: var convert = mapToArray; + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4; + convert || (convert = setToArray); + if (object.size != other.size && !isPartial) return false; + var stacked = stack.get(object); + if (stacked) return stacked == other; + bitmask |= COMPARE_UNORDERED_FLAG$2; + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack["delete"](object); + return result; + case symbolTag: if (symbolValueOf) return symbolValueOf.call(object) == symbolValueOf.call(other); + } + return false; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_equalObjects.js +/** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$3 = 1; + /** Used to check objects for own properties. */ + var hasOwnProperty$2 = Object.prototype.hasOwnProperty; + /** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, objProps = getAllKeys(object), objLength = objProps.length; + if (objLength != getAllKeys(other).length && !isPartial) return false; + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) return false; + } + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) return objStacked == other && othStacked == object; + var result = true; + stack.set(object, other); + stack.set(other, object); + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], othValue = other[key]; + if (customizer) var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); + if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) { + result = false; + break; + } + skipCtor || (skipCtor = key == "constructor"); + } + if (result && !skipCtor) { + var objCtor = object.constructor, othCtor = other.constructor; + if (objCtor != othCtor && "constructor" in object && "constructor" in other && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) result = false; + } + stack["delete"](object); + stack["delete"](other); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsEqualDeep.js +/** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$2 = 1; + /** `Object#toString` result references. */ + var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]"; + /** Used to check objects for own properties. */ + var hasOwnProperty$1 = Object.prototype.hasOwnProperty; + /** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : _getTag_default(object), othTag = othIsArr ? arrayTag : _getTag_default(other); + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) return false; + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack()); + return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) { + var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty$1.call(other, "__wrapped__"); + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; + stack || (stack = new Stack()); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) return false; + stack || (stack = new Stack()); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsEqual.js +/** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) return true; + if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) return value !== value && other !== other; + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIsMatch.js +/** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$1 = 1, COMPARE_UNORDERED_FLAG$1 = 2; + /** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ + function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, length = index, noCustomizer = !customizer; + if (object == null) return !length; + object = Object(object); + while (index--) { + var data = matchData[index]; + if (noCustomizer && data[2] ? data[1] !== object[data[0]] : !(data[0] in object)) return false; + } + while (++index < length) { + data = matchData[index]; + var key = data[0], objValue = object[key], srcValue = data[1]; + if (noCustomizer && data[2]) { + if (objValue === void 0 && !(key in object)) return false; + } else { + var stack = new Stack(); + if (customizer) var result = customizer(objValue, srcValue, key, object, source, stack); + if (!(result === void 0 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) return false; + } + } + return true; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_isStrictComparable.js +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ + function isStrictComparable(value) { + return value === value && !isObject(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_getMatchData.js +/** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ + function getMatchData(object) { + var result = keys(object), length = result.length; + while (length--) { + var key = result[length], value = object[key]; + result[length] = [ + key, + value, + isStrictComparable(value) + ]; + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_matchesStrictComparable.js +/** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) return false; + return object[key] === srcValue && (srcValue !== void 0 || key in Object(object)); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMatches.js +/** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) return matchesStrictComparable(matchData[0][0], matchData[0][1]); + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseHasIn.js +/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ + function baseHasIn(object, key) { + return object != null && key in Object(object); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_hasPath.js +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ + function hasPath(object, path, hasFunc) { + path = castPath(path, object); + var index = -1, length = path.length, result = false; + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) break; + object = object[key]; + } + if (result || ++index != length) return result; + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/hasIn.js +/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ + function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMatchesProperty.js +/** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; + /** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) return matchesStrictComparable(toKey(path), srcValue); + return function(object) { + var objValue = get(object, path); + return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseProperty.js +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function baseProperty(key) { + return function(object) { + return object == null ? void 0 : object[key]; + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePropertyDeep.js +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/property.js +/** + * Creates a function that returns the value at `path` of a given object. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + * @example + * + * var objects = [ + * { 'a': { 'b': 2 } }, + * { 'a': { 'b': 1 } } + * ]; + * + * _.map(objects, _.property('a.b')); + * // => [2, 1] + * + * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); + * // => [1, 2] + */ + function property(path) { + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseIteratee.js +/** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ + function baseIteratee(value) { + if (typeof value == "function") return value; + if (value == null) return identity; + if (typeof value == "object") return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); + return property(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createBaseFor.js +/** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length; + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) break; + } + return object; + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseFor.js +/** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseFor = createBaseFor(); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseForOwn.js +/** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createBaseEach.js +/** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) return collection; + if (!isArrayLike(collection)) return eachFunc(collection, iteratee); + var length = collection.length, index = fromRight ? length : -1, iterable = Object(collection); + while (fromRight ? index-- : ++index < length) if (iteratee(iterable[index], index, iterable) === false) break; + return collection; + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseEach.js +/** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ + var baseEach = createBaseEach(baseForOwn); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/now.js +/** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ + var now = function() { + return root.Date.now(); + }; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/debounce.js +/** Error message constants. */ + var FUNC_ERROR_TEXT$1 = "Expected a function"; + var nativeMax$1 = Math.max, nativeMin$1 = Math.min; + /** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ + function debounce(func, wait, options) { + var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; + if (typeof func != "function") throw new TypeError(FUNC_ERROR_TEXT$1); + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = "maxWait" in options; + maxWait = maxing ? nativeMax$1(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + function invokeFunc(time) { + var args = lastArgs, thisArg = lastThis; + lastArgs = lastThis = void 0; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + function leadingEdge(time) { + lastInvokeTime = time; + timerId = setTimeout(timerExpired, wait); + return leading ? invokeFunc(time) : result; + } + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; + return maxing ? nativeMin$1(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; + } + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; + return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; + } + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) return trailingEdge(time); + timerId = setTimeout(timerExpired, remainingWait(time)); + } + function trailingEdge(time) { + timerId = void 0; + if (trailing && lastArgs) return invokeFunc(time); + lastArgs = lastThis = void 0; + return result; + } + function cancel() { + if (timerId !== void 0) clearTimeout(timerId); + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = void 0; + } + function flush() { + return timerId === void 0 ? result : trailingEdge(now()); + } + function debounced() { + var time = now(), isInvoking = shouldInvoke(time); + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + if (isInvoking) { + if (timerId === void 0) return leadingEdge(lastCallTime); + if (maxing) { + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === void 0) timerId = setTimeout(timerExpired, wait); + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_assignMergeValue.js +/** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ + function assignMergeValue(object, key, value) { + if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(key in object)) baseAssignValue(object, key, value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isArrayLikeObject.js +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ + function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_safeGet.js +/** + * Gets the value at `key`, unless `key` is "__proto__" or "constructor". + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function safeGet(object, key) { + if (key === "constructor" && typeof object[key] === "function") return; + if (key == "__proto__") return; + return object[key]; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/toPlainObject.js +/** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example + * + * function Foo() { + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } + * + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } + */ + function toPlainObject(value) { + return copyObject(value, keysIn(value)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMergeDeep.js +/** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ + function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue); + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer ? customizer(objValue, srcValue, key + "", object, source, stack) : void 0; + var isCommon = newValue === void 0; + if (isCommon) { + var isArr = isArray(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue); + newValue = srcValue; + if (isArr || isBuff || isTyped) if (isArray(objValue)) newValue = objValue; + else if (isArrayLikeObject(objValue)) newValue = copyArray(objValue); + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } else newValue = []; + else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) newValue = toPlainObject(objValue); + else if (!isObject(objValue) || isFunction(objValue)) newValue = initCloneObject(srcValue); + } else isCommon = false; + } + if (isCommon) { + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack["delete"](srcValue); + } + assignMergeValue(object, key, newValue); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMerge.js +/** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ + function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) return; + baseFor(source, function(srcValue, key) { + stack || (stack = new Stack()); + if (isObject(srcValue)) baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + else { + var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + "", object, source, stack) : void 0; + if (newValue === void 0) newValue = srcValue; + assignMergeValue(object, key, newValue); + } + }, keysIn); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_arrayIncludesWith.js +/** + * This function is like `arrayIncludes` except that it accepts a comparator. + * + * @private + * @param {Array} [array] The array to inspect. + * @param {*} target The value to search for. + * @param {Function} comparator The comparator invoked per element. + * @returns {boolean} Returns `true` if `target` is found, else `false`. + */ + function arrayIncludesWith(array, value, comparator) { + var index = -1, length = array == null ? 0 : array.length; + while (++index < length) if (comparator(value, array[index])) return true; + return false; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/last.js +/** + * Gets the last element of `array`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {Array} array The array to query. + * @returns {*} Returns the last element of `array`. + * @example + * + * _.last([1, 2, 3]); + * // => 3 + */ + function last(array) { + var length = array == null ? 0 : array.length; + return length ? array[length - 1] : void 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/findLastIndex.js + var nativeMax = Math.max, nativeMin = Math.min; + /** + * This method is like `_.findIndex` except that it iterates over elements + * of `collection` from right to left. + * + * @static + * @memberOf _ + * @since 2.0.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=array.length-1] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': true }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': false } + * ]; + * + * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); + * // => 2 + * + * // The `_.matches` iteratee shorthand. + * _.findLastIndex(users, { 'user': 'barney', 'active': true }); + * // => 0 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findLastIndex(users, ['active', false]); + * // => 2 + * + * // The `_.property` iteratee shorthand. + * _.findLastIndex(users, 'active'); + * // => 0 + */ + function findLastIndex(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) return -1; + var index = length - 1; + if (fromIndex !== void 0) { + index = toInteger(fromIndex); + index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); + } + return baseFindIndex(array, baseIteratee(predicate, 3), index, true); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseMap.js +/** + * The base implementation of `_.map` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + function baseMap(collection, iteratee) { + var index = -1, result = isArrayLike(collection) ? Array(collection.length) : []; + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/map.js +/** + * Creates an array of values by running each element in `collection` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, + * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, + * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, + * `template`, `trim`, `trimEnd`, `trimStart`, and `words` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + * @example + * + * function square(n) { + * return n * n; + * } + * + * _.map([4, 8], square); + * // => [16, 64] + * + * _.map({ 'a': 4, 'b': 8 }, square); + * // => [16, 64] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // The `_.property` iteratee shorthand. + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ + function map(collection, iteratee) { + return (isArray(collection) ? arrayMap : baseMap)(collection, baseIteratee(iteratee, 3)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flatMap.js +/** + * Creates a flattened array of values by running each element in `collection` + * thru `iteratee` and flattening the mapped results. The iteratee is invoked + * with three arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new flattened array. + * @example + * + * function duplicate(n) { + * return [n, n]; + * } + * + * _.flatMap([1, 2], duplicate); + * // => [1, 1, 2, 2] + */ + function flatMap(collection, iteratee) { + return baseFlatten(map(collection, iteratee), 1); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/flattenDeep.js +/** Used as references for various `Number` constants. */ + var INFINITY = Infinity; + /** + * Recursively flattens `array`. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Array + * @param {Array} array The array to flatten. + * @returns {Array} Returns the new flattened array. + * @example + * + * _.flattenDeep([1, [2, [3, [4]], 5]]); + * // => [1, 2, 3, 4, 5] + */ + function flattenDeep(array) { + return (array == null ? 0 : array.length) ? baseFlatten(array, INFINITY) : []; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/fromPairs.js +/** + * The inverse of `_.toPairs`; this method returns an object composed + * from key-value `pairs`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Array + * @param {Array} pairs The key-value pairs. + * @returns {Object} Returns the new object. + * @example + * + * _.fromPairs([['a', 1], ['b', 2]]); + * // => { 'a': 1, 'b': 2 } + */ + function fromPairs(pairs) { + var index = -1, length = pairs == null ? 0 : pairs.length, result = {}; + while (++index < length) { + var pair = pairs[index]; + result[pair[0]] = pair[1]; + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_parent.js +/** + * Gets the parent value at `path` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array} path The path to get the parent value of. + * @returns {*} Returns the parent value. + */ + function parent(object, path) { + return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1)); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isEqual.js +/** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */ + function isEqual$1(value, other) { + return baseIsEqual(value, other); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isNil.js +/** + * Checks if `value` is `null` or `undefined`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is nullish, else `false`. + * @example + * + * _.isNil(null); + * // => true + * + * _.isNil(void 0); + * // => true + * + * _.isNil(NaN); + * // => false + */ + function isNil(value) { + return value == null; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isNull.js +/** + * Checks if `value` is `null`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `null`, else `false`. + * @example + * + * _.isNull(null); + * // => true + * + * _.isNull(void 0); + * // => false + */ + function isNull(value) { + return value === null; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/isUndefined.js +/** + * Checks if `value` is `undefined`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ + function isUndefined$1(value) { + return value === void 0; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/merge.js +/** + * This method is like `_.assign` except that it recursively merges own and + * inherited enumerable string keyed properties of source objects into the + * destination object. Source properties that resolve to `undefined` are + * skipped if a destination value exists. Array and plain object properties + * are merged recursively. Other objects and value types are overridden by + * assignment. Source objects are applied from left to right. Subsequent + * sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @example + * + * var object = { + * 'a': [{ 'b': 2 }, { 'd': 4 }] + * }; + * + * var other = { + * 'a': [{ 'c': 3 }, { 'e': 5 }] + * }; + * + * _.merge(object, other); + * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } + */ + var merge = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); + }); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseUnset.js +/** Used to check objects for own properties. */ + var hasOwnProperty = Object.prototype.hasOwnProperty; + /** + * The base implementation of `_.unset`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The property path to unset. + * @returns {boolean} Returns `true` if the property is deleted, else `false`. + */ + function baseUnset(object, path) { + path = castPath(path, object); + var index = -1, length = path.length; + if (!length) return true; + var isRootPrimitive = object == null || typeof object !== "object" && typeof object !== "function"; + while (++index < length) { + var key = path[index]; + if (typeof key !== "string") continue; + if (key === "__proto__" && !hasOwnProperty.call(object, "__proto__")) return false; + if (key === "constructor" && index + 1 < length && typeof path[index + 1] === "string" && path[index + 1] === "prototype") { + if (isRootPrimitive && index === 0) continue; + return false; + } + } + var obj = parent(object, path); + return obj == null || delete obj[toKey(last(path))]; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_customOmitClone.js +/** + * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain + * objects. + * + * @private + * @param {*} value The value to inspect. + * @param {string} key The key of the property to inspect. + * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`. + */ + function customOmitClone(value) { + return isPlainObject(value) ? void 0 : value; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/omit.js +/** Used to compose bitmasks for cloning. */ + var CLONE_DEEP_FLAG = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG = 4; + /** + * The opposite of `_.pick`; this method creates an object composed of the + * own and inherited enumerable property paths of `object` that are not omitted. + * + * **Note:** This method is considerably slower than `_.pick`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to omit. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.omit(object, ['a', 'c']); + * // => { 'b': '2' } + */ + var omit = flatRest(function(object, paths) { + var result = {}; + if (object == null) return result; + var isDeep = false; + paths = arrayMap(paths, function(path) { + path = castPath(path, object); + isDeep || (isDeep = path.length > 1); + return path; + }); + copyObject(object, getAllKeysIn(object), result); + if (isDeep) result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone); + var length = paths.length; + while (length--) baseUnset(result, paths[length]); + return result; + }); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseSet.js +/** + * The base implementation of `_.set`. + * + * @private + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @param {Function} [customizer] The function to customize path creation. + * @returns {Object} Returns `object`. + */ + function baseSet(object, path, value, customizer) { + if (!isObject(object)) return object; + path = castPath(path, object); + var index = -1, length = path.length, lastIndex = length - 1, nested = object; + while (nested != null && ++index < length) { + var key = toKey(path[index]), newValue = value; + if (key === "__proto__" || key === "constructor" || key === "prototype") return object; + if (index != lastIndex) { + var objValue = nested[key]; + newValue = customizer ? customizer(objValue, key, nested) : void 0; + if (newValue === void 0) newValue = isObject(objValue) ? objValue : isIndex(path[index + 1]) ? [] : {}; + } + assignValue(nested, key, newValue); + nested = nested[key]; + } + return object; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePickBy.js +/** + * The base implementation of `_.pickBy` without support for iteratee shorthands. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @param {Function} predicate The function invoked per property. + * @returns {Object} Returns the new object. + */ + function basePickBy(object, paths, predicate) { + var index = -1, length = paths.length, result = {}; + while (++index < length) { + var path = paths[index], value = baseGet(object, path); + if (predicate(value, path)) baseSet(result, castPath(path, object), value); + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_basePick.js +/** + * The base implementation of `_.pick` without support for individual + * property identifiers. + * + * @private + * @param {Object} object The source object. + * @param {string[]} paths The property paths to pick. + * @returns {Object} Returns the new object. + */ + function basePick(object, paths) { + return basePickBy(object, paths, function(value, path) { + return hasIn(object, path); + }); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/pick.js +/** + * Creates an object composed of the picked `object` properties. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The source object. + * @param {...(string|string[])} [paths] The property paths to pick. + * @returns {Object} Returns the new object. + * @example + * + * var object = { 'a': 1, 'b': '2', 'c': 3 }; + * + * _.pick(object, ['a', 'c']); + * // => { 'a': 1, 'c': 3 } + */ + var pick = flatRest(function(object, paths) { + return object == null ? {} : basePick(object, paths); + }); + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/set.js +/** + * Sets the value at `path` of `object`. If a portion of `path` doesn't exist, + * it's created. Arrays are created for missing index properties while objects + * are created for all other missing properties. Use `_.setWith` to customize + * `path` creation. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to modify. + * @param {Array|string} path The path of the property to set. + * @param {*} value The value to set. + * @returns {Object} Returns `object`. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.set(object, 'a[0].b.c', 4); + * console.log(object.a[0].b.c); + * // => 4 + * + * _.set(object, ['x', '0', 'y', 'z'], 5); + * console.log(object.x[0].y.z); + * // => 5 + */ + function set(object, path, value) { + return object == null ? object : baseSet(object, path, value); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/throttle.js +/** Error message constants. */ + var FUNC_ERROR_TEXT = "Expected a function"; + /** + * Creates a throttled function that only invokes `func` at most once per + * every `wait` milliseconds. The throttled function comes with a `cancel` + * method to cancel delayed `func` invocations and a `flush` method to + * immediately invoke them. Provide `options` to indicate whether `func` + * should be invoked on the leading and/or trailing edge of the `wait` + * timeout. The `func` is invoked with the last arguments provided to the + * throttled function. Subsequent calls to the throttled function return the + * result of the last `func` invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the throttled function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.throttle` and `_.debounce`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to throttle. + * @param {number} [wait=0] The number of milliseconds to throttle invocations to. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=true] + * Specify invoking on the leading edge of the timeout. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new throttled function. + * @example + * + * // Avoid excessively updating the position while scrolling. + * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); + * + * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. + * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); + * jQuery(element).on('click', throttled); + * + * // Cancel the trailing throttled invocation. + * jQuery(window).on('popstate', throttled.cancel); + */ + function throttle(func, wait, options) { + var leading = true, trailing = true; + if (typeof func != "function") throw new TypeError(FUNC_ERROR_TEXT); + if (isObject(options)) { + leading = "leading" in options ? !!options.leading : leading; + trailing = "trailing" in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + "leading": leading, + "maxWait": wait, + "trailing": trailing + }); + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_createSet.js +/** + * Creates a set object of `values`. + * + * @private + * @param {Array} values The values to add to the set. + * @returns {Object} Returns the new set. + */ + var createSet = !(Set$1 && 1 / setToArray(new Set$1([, -0]))[1] == Infinity) ? noop : function(values) { + return new Set$1(values); + }; + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/_baseUniq.js +/** Used as the size to enable large array optimizations. */ + var LARGE_ARRAY_SIZE = 200; + /** + * The base implementation of `_.uniqBy` without support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} [iteratee] The iteratee invoked per element. + * @param {Function} [comparator] The comparator invoked per element. + * @returns {Array} Returns the new duplicate free array. + */ + function baseUniq(array, iteratee, comparator) { + var index = -1, includes = arrayIncludes, length = array.length, isCommon = true, result = [], seen = result; + if (comparator) { + isCommon = false; + includes = arrayIncludesWith; + } else if (length >= LARGE_ARRAY_SIZE) { + var set = iteratee ? null : createSet(array); + if (set) return setToArray(set); + isCommon = false; + includes = cacheHas; + seen = new SetCache(); + } else seen = iteratee ? [] : result; + outer: while (++index < length) { + var value = array[index], computed = iteratee ? iteratee(value) : value; + value = comparator || value !== 0 ? value : 0; + if (isCommon && computed === computed) { + var seenIndex = seen.length; + while (seenIndex--) if (seen[seenIndex] === computed) continue outer; + if (iteratee) seen.push(computed); + result.push(value); + } else if (!includes(seen, computed, comparator)) { + if (seen !== result) seen.push(computed); + result.push(value); + } + } + return result; + } + +//#endregion +//#region ../../node_modules/.pnpm/lodash-es@4.17.23/node_modules/lodash-es/union.js +/** + * Creates an array of unique values, in order, from all given arrays using + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Array + * @param {...Array} [arrays] The arrays to inspect. + * @returns {Array} Returns the new array of combined values. + * @example + * + * _.union([2], [1, 2]); + * // => [2, 1] + */ + var union = baseRest(function(arrays) { + return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true)); + }); + +//#endregion +//#region ../../packages/utils/types.ts + const isUndefined = (val) => val === void 0; + const isBoolean = (val) => typeof val === "boolean"; + const isNumber = (val) => typeof val === "number"; + const isEmpty = (val) => !val && val !== 0 || isArray$1(val) && val.length === 0 || isObject$1(val) && !Object.keys(val).length; + const isElement$1 = (e) => { + if (typeof Element === "undefined") return false; + return e instanceof Element; + }; + const isPropAbsent = (prop) => isNil(prop); + const isStringNumber = (val) => { + if (!isString(val)) return false; + return !Number.isNaN(Number(val)); + }; + const isWindow = (val) => val === window; + +//#endregion +//#region ../../packages/utils/raf.ts + const rAF = (fn) => isClient ? window.requestAnimationFrame(fn) : setTimeout(fn, 16); + const cAF = (handle) => isClient ? window.cancelAnimationFrame(handle) : clearTimeout(handle); + +//#endregion +//#region ../../packages/utils/strings.ts +/** + * fork from {@link https://github.com/sindresorhus/escape-string-regexp} + */ + const escapeStringRegexp = (string = "") => string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d"); + const capitalize = (str) => capitalize$1(str); + +//#endregion +//#region ../../packages/utils/objects.ts + const keysOf = (arr) => Object.keys(arr); + const entriesOf = (arr) => Object.entries(arr); + const getProp = (obj, path, defaultValue) => { + return { + get value() { + return get(obj, path, defaultValue); + }, + set value(val) { + set(obj, path, val); + } + }; + }; + +//#endregion +//#region ../../packages/utils/error.ts + var ElementPlusError = class extends Error { + constructor(m) { + super(m); + this.name = "ElementPlusError"; + } + }; + function throwError(scope, m) { + throw new ElementPlusError(`[${scope}] ${m}`); + } + function debugWarn(scope, message) {} + +//#endregion +//#region ../../packages/utils/dom/style.ts + const SCOPE$9 = "utils/dom/style"; + const classNameToArray = (cls = "") => cls.split(" ").filter((item) => !!item.trim()); + const hasClass = (el, cls) => { + if (!el || !cls) return false; + if (cls.includes(" ")) throw new Error("className should not contain space."); + return el.classList.contains(cls); + }; + const addClass = (el, cls) => { + if (!el || !cls.trim()) return; + el.classList.add(...classNameToArray(cls)); + }; + const removeClass = (el, cls) => { + if (!el || !cls.trim()) return; + el.classList.remove(...classNameToArray(cls)); + }; + const getStyle = (element, styleName) => { + if (!isClient || !element || !styleName || isShadowRoot$1(element)) return ""; + let key = camelize(styleName); + if (key === "float") key = "cssFloat"; + try { + const style = element.style[key]; + if (style) return style; + const computed = document.defaultView?.getComputedStyle(element, ""); + return computed ? computed[key] : ""; + } catch { + return element.style[key]; + } + }; + const setStyle = (element, styleName, value) => { + if (!element || !styleName) return; + if (isObject$1(styleName)) entriesOf(styleName).forEach(([prop, value]) => setStyle(element, prop, value)); + else { + const key = camelize(styleName); + element.style[key] = value; + } + }; + function addUnit(value, defaultUnit = "px") { + if (!value && value !== 0) return ""; + if (isNumber(value) || isStringNumber(value)) return `${value}${defaultUnit}`; + else if (isString(value)) return value; + /* @__PURE__ */ debugWarn(SCOPE$9, "binding value must be a string or number"); + } + +//#endregion +//#region ../../packages/utils/dom/scroll.ts + const isScroll = (el, isVertical) => { + if (!isClient) return false; + const key = { + undefined: "overflow", + true: "overflow-y", + false: "overflow-x" + }[String(isVertical)]; + const overflow = getStyle(el, key); + return [ + "scroll", + "auto", + "overlay" + ].some((s) => overflow.includes(s)); + }; + const getScrollContainer = (el, isVertical) => { + if (!isClient) return; + let parent = el; + while (parent) { + if ([ + window, + document, + document.documentElement + ].includes(parent)) return window; + if (isScroll(parent, isVertical)) return parent; + if (isShadowRoot$1(parent)) parent = parent.host; + else parent = parent.parentNode; + } + return parent; + }; + let scrollBarWidth; + const getScrollBarWidth = (namespace) => { + if (!isClient) return 0; + if (scrollBarWidth !== void 0) return scrollBarWidth; + const outer = document.createElement("div"); + outer.className = `${namespace}-scrollbar__wrap`; + outer.style.visibility = "hidden"; + outer.style.width = "100px"; + outer.style.position = "absolute"; + outer.style.top = "-9999px"; + document.body.appendChild(outer); + const widthNoScroll = outer.offsetWidth; + outer.style.overflow = "scroll"; + const inner = document.createElement("div"); + inner.style.width = "100%"; + outer.appendChild(inner); + const widthWithScroll = inner.offsetWidth; + outer.parentNode?.removeChild(outer); + scrollBarWidth = widthNoScroll - widthWithScroll; + return scrollBarWidth; + }; + /** + * Scroll with in the container element, positioning the **selected** element at the top + * of the container + */ + function scrollIntoView(container, selected) { + if (!isClient) return; + if (!selected) { + container.scrollTop = 0; + return; + } + const offsetParents = []; + let pointer = selected.offsetParent; + while (pointer !== null && container !== pointer && container.contains(pointer)) { + offsetParents.push(pointer); + pointer = pointer.offsetParent; + } + const top = selected.offsetTop + offsetParents.reduce((prev, curr) => prev + curr.offsetTop, 0); + const bottom = top + selected.offsetHeight; + const viewRectTop = container.scrollTop; + const viewRectBottom = viewRectTop + container.clientHeight; + if (top < viewRectTop) container.scrollTop = top; + else if (bottom > viewRectBottom) container.scrollTop = bottom - container.clientHeight; + } + function animateScrollTo(container, from, to, duration, callback) { + const startTime = Date.now(); + let handle; + const scroll = () => { + const time = Date.now() - startTime; + const nextScrollTop = easeInOutCubic(time > duration ? duration : time, from, to, duration); + if (isWindow(container)) container.scrollTo(window.pageXOffset, nextScrollTop); + else container.scrollTop = nextScrollTop; + if (time < duration) handle = rAF(scroll); + else if (isFunction$1(callback)) callback(); + }; + scroll(); + return () => { + handle && cAF(handle); + }; + } + const getScrollElement = (target, container) => { + if (isWindow(container)) return target.ownerDocument.documentElement; + return container; + }; + const getScrollTop = (container) => { + if (isWindow(container)) return window.scrollY; + return container.scrollTop; + }; + +//#endregion +//#region ../../packages/utils/dom/element.ts + const getElement = ((target) => { + if (!isClient || target === "") return null; + if (isString(target)) try { + return document.querySelector(target); + } catch { + return null; + } + return target; + }); + +//#endregion +//#region ../../packages/utils/vue/global-node.ts + const globalNodes = []; + let target = !isClient ? void 0 : document.body; + function createGlobalNode(id) { + const el = document.createElement("div"); + if (id !== void 0) el.setAttribute("id", id); + if (target) { + target.appendChild(el); + globalNodes.push(el); + } + return el; + } + function removeGlobalNode(el) { + globalNodes.splice(globalNodes.indexOf(el), 1); + el.remove(); + } + +//#endregion +//#region ../../node_modules/.pnpm/@element-plus+icons-vue@2.3.2_vue@3.5.25/node_modules/@element-plus/icons-vue/dist/index.js +/*! Element Plus Icons Vue v2.3.2 */ + var arrow_down_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ArrowDown", + __name: "arrow-down", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var arrow_left_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ArrowLeft", + __name: "arrow-left", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var arrow_right_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ArrowRight", + __name: "arrow-right", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var arrow_up_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ArrowUp", + __name: "arrow-up", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var back_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Back", + __name: "back", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("path", { + fill: "currentColor", + d: "M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64" + }), (0, vue.createElementVNode)("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" + })])); + } + }); + var calendar_default$1 = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Calendar", + __name: "calendar", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var caret_right_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "CaretRight", + __name: "caret-right", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("path", { + fill: "currentColor", + d: "M384 192v640l384-320.064z" + })])); + } + }); + var caret_top_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "CaretTop", + __name: "caret-top", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("path", { + fill: "currentColor", + d: "M512 320 192 704h639.936z" + })])); + } + }); + var check_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Check", + __name: "check", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var circle_check_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "CircleCheckFilled", + __name: "circle-check-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var circle_check_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "CircleCheck", + __name: "circle-check", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + }), (0, vue.createElementVNode)("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" + })])); + } + }); + var circle_close_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "CircleCloseFilled", + __name: "circle-close-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var circle_close_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "CircleClose", + __name: "circle-close", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + }), (0, vue.createElementVNode)("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" + })])); + } + }); + var clock_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Clock", + __name: "clock", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [ + (0, vue.createElementVNode)("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" + }), + (0, vue.createElementVNode)("path", { + fill: "currentColor", + d: "M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32" + }), + (0, vue.createElementVNode)("path", { + fill: "currentColor", + d: "M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32" + }) + ])); + } + }); + var close_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Close", + __name: "close", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var d_arrow_left_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "DArrowLeft", + __name: "d-arrow-left", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var d_arrow_right_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "DArrowRight", + __name: "d-arrow-right", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var delete_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Delete", + __name: "delete", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var document_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Document", + __name: "document", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var full_screen_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "FullScreen", + __name: "full-screen", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var hide_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Hide", + __name: "hide", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + }), (0, vue.createElementVNode)("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" + })])); + } + }); + var info_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "InfoFilled", + __name: "info-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var loading_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Loading", + __name: "loading", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var minus_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Minus", + __name: "minus", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("path", { + fill: "currentColor", + d: "M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64" + })])); + } + }); + var more_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "MoreFilled", + __name: "more-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var more_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "More", + __name: "more", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var picture_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "PictureFilled", + __name: "picture-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var plus_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Plus", + __name: "plus", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var question_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "QuestionFilled", + __name: "question-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var refresh_left_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "RefreshLeft", + __name: "refresh-left", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var refresh_right_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "RefreshRight", + __name: "refresh-right", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var scale_to_original_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ScaleToOriginal", + __name: "scale-to-original", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var search_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Search", + __name: "search", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var sort_down_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "SortDown", + __name: "sort-down", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var sort_up_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "SortUp", + __name: "sort-up", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var star_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "StarFilled", + __name: "star-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var star_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Star", + __name: "star", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var success_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "SuccessFilled", + __name: "success-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var view_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "View", + __name: "view", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var warning_filled_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "WarningFilled", + __name: "warning-filled", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var zoom_in_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ZoomIn", + __name: "zoom-in", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + var zoom_out_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ZoomOut", + __name: "zoom-out", + setup(__props) { + return (_ctx, _cache) => ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + xmlns: "http://www.w3.org/2000/svg", + viewBox: "0 0 1024 1024" + }, [(0, vue.createElementVNode)("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" + })])); + } + }); + +//#endregion +//#region ../../packages/utils/vue/props/runtime.ts + const epPropKey = "__epPropKey"; + const definePropType = (val) => val; + const isEpProp = (val) => isObject$1(val) && !!val[epPropKey]; + /** + * @description Build prop. It can better optimize prop types + * @description 生成 prop,能更好地优化类型 + * @example + // limited options + // the type will be PropType<'light' | 'dark'> + buildProp({ + type: String, + values: ['light', 'dark'], + } as const) + * @example + // limited options and other types + // the type will be PropType<'small' | 'large' | number> + buildProp({ + type: [String, Number], + values: ['small', 'large'], + validator: (val: unknown): val is number => typeof val === 'number', + } as const) + @link see more: https://github.com/element-plus/element-plus/pull/3341 + */ + const buildProp = (prop, key) => { + if (!isObject$1(prop) || isEpProp(prop)) return prop; + const { values, required, default: defaultValue, type, validator } = prop; + const epProp = { + type, + required: !!required, + validator: values || validator ? (val) => { + let valid = false; + let allowedValues = []; + if (values) { + allowedValues = Array.from(values); + if (hasOwn(prop, "default")) allowedValues.push(defaultValue); + valid ||= allowedValues.includes(val); + } + if (validator) valid ||= validator(val); + if (!valid && allowedValues.length > 0) { + const allowValuesText = [...new Set(allowedValues)].map((value) => JSON.stringify(value)).join(", "); + (0, vue.warn)(`Invalid prop: validation failed${key ? ` for prop "${key}"` : ""}. Expected one of [${allowValuesText}], got value ${JSON.stringify(val)}.`); + } + return valid; + } : void 0, + [epPropKey]: true + }; + if (hasOwn(prop, "default")) epProp.default = defaultValue; + return epProp; + }; + const buildProps = (props) => fromPairs(Object.entries(props).map(([key, option]) => [key, buildProp(option, key)])); + +//#endregion +//#region ../../packages/utils/vue/icon.ts + const iconPropType = definePropType([ + String, + Object, + Function + ]); + const CloseComponents = { Close: close_default }; + const TypeComponents = { + Close: close_default, + SuccessFilled: success_filled_default, + InfoFilled: info_filled_default, + WarningFilled: warning_filled_default, + CircleCloseFilled: circle_close_filled_default + }; + const TypeComponentsMap = { + primary: info_filled_default, + success: success_filled_default, + warning: warning_filled_default, + error: circle_close_filled_default, + info: info_filled_default + }; + const ValidateComponentsMap = { + validating: loading_default, + success: circle_check_default, + error: circle_close_default + }; + +//#endregion +//#region ../../packages/utils/vue/install.ts + const withPropsDefaultsSetter = (target) => { + const _p = target.props; + const props = isArray$1(_p) ? fromPairs(_p.map((key) => [key, {}])) : _p; + target.setPropsDefaults = (defaults) => { + if (!props) return; + for (const [key, value] of Object.entries(defaults)) { + const prop = props[key]; + if (!hasOwn(props, key)) continue; + if (isPlainObject(prop)) { + props[key] = { + ...prop, + default: value + }; + continue; + } + props[key] = { + type: prop, + default: value + }; + } + target.props = props; + }; + }; + const withInstall = (main, extra) => { + main.install = (app) => { + for (const comp of [main, ...Object.values(extra ?? {})]) app.component(comp.name, comp); + }; + if (extra) for (const [key, comp] of Object.entries(extra)) main[key] = comp; + withPropsDefaultsSetter(main); + return main; + }; + const withInstallFunction = (fn, name) => { + fn.install = (app) => { + fn._context = app._context; + app.config.globalProperties[name] = fn; + }; + return fn; + }; + const withInstallDirective = (directive, name) => { + directive.install = (app) => { + app.directive(name, directive); + }; + return directive; + }; + const withNoopInstall = (component) => { + component.install = NOOP; + withPropsDefaultsSetter(component); + return component; + }; + +//#endregion +//#region ../../packages/utils/vue/refs.ts + const composeRefs = (...refs) => { + return (el) => { + refs.forEach((ref) => { + ref.value = el; + }); + }; + }; + +//#endregion +//#region ../../packages/utils/vue/validator.ts + const isValidComponentSize = (val) => ["", ...componentSizes].includes(val); + +//#endregion +//#region ../../packages/utils/vue/vnode.ts + const SCOPE$8 = "utils/vue/vnode"; + let PatchFlags = /* @__PURE__ */ function(PatchFlags) { + PatchFlags[PatchFlags["TEXT"] = 1] = "TEXT"; + PatchFlags[PatchFlags["CLASS"] = 2] = "CLASS"; + PatchFlags[PatchFlags["STYLE"] = 4] = "STYLE"; + PatchFlags[PatchFlags["PROPS"] = 8] = "PROPS"; + PatchFlags[PatchFlags["FULL_PROPS"] = 16] = "FULL_PROPS"; + PatchFlags[PatchFlags["HYDRATE_EVENTS"] = 32] = "HYDRATE_EVENTS"; + PatchFlags[PatchFlags["STABLE_FRAGMENT"] = 64] = "STABLE_FRAGMENT"; + PatchFlags[PatchFlags["KEYED_FRAGMENT"] = 128] = "KEYED_FRAGMENT"; + PatchFlags[PatchFlags["UNKEYED_FRAGMENT"] = 256] = "UNKEYED_FRAGMENT"; + PatchFlags[PatchFlags["NEED_PATCH"] = 512] = "NEED_PATCH"; + PatchFlags[PatchFlags["DYNAMIC_SLOTS"] = 1024] = "DYNAMIC_SLOTS"; + PatchFlags[PatchFlags["HOISTED"] = -1] = "HOISTED"; + PatchFlags[PatchFlags["BAIL"] = -2] = "BAIL"; + return PatchFlags; + }({}); + function isFragment(node) { + return (0, vue.isVNode)(node) && node.type === vue.Fragment; + } + function isComment(node) { + return (0, vue.isVNode)(node) && node.type === vue.Comment; + } + function isValidElementNode(node) { + return (0, vue.isVNode)(node) && !isFragment(node) && !isComment(node); + } + const getNormalizedProps = (node) => { + if (!(0, vue.isVNode)(node)) { + /* @__PURE__ */ debugWarn(SCOPE$8, "[getNormalizedProps] must be a VNode"); + return {}; + } + const raw = node.props || {}; + const type = ((0, vue.isVNode)(node.type) ? node.type.props : void 0) || {}; + const props = {}; + Object.keys(type).forEach((key) => { + if (hasOwn(type[key], "default")) props[key] = type[key].default; + }); + Object.keys(raw).forEach((key) => { + props[camelize(key)] = raw[key]; + }); + return props; + }; + const flattedChildren = (children) => { + const vNodes = isArray$1(children) ? children : [children]; + const result = []; + vNodes.forEach((child) => { + if (isArray$1(child)) result.push(...flattedChildren(child)); + else if ((0, vue.isVNode)(child) && child.component?.subTree) result.push(child, ...flattedChildren(child.component.subTree)); + else if ((0, vue.isVNode)(child) && isArray$1(child.children)) result.push(...flattedChildren(child.children)); + else if ((0, vue.isVNode)(child) && child.shapeFlag === 2) result.push(...flattedChildren(child.type())); + else result.push(child); + }); + return result; + }; + +//#endregion +//#region ../../packages/utils/arrays.ts + const unique = (arr) => [...new Set(arr)]; + const extractFirst = (arr) => { + return isArray$1(arr) ? arr[0] : arr; + }; + /** like `_.castArray`, except falsy value returns empty array. */ + const castArray = (arr) => { + if (!arr && arr !== 0) return []; + return isArray$1(arr) ? arr : [arr]; + }; + +//#endregion +//#region ../../packages/utils/typescript.ts + const mutable = (val) => val; + +//#endregion +//#region ../../packages/utils/throttleByRaf.ts + function throttleByRaf(cb) { + let timer = 0; + const throttle = (...args) => { + if (timer) cAF(timer); + timer = rAF(() => { + cb(...args); + timer = 0; + }); + }; + throttle.cancel = () => { + cAF(timer); + timer = 0; + }; + return throttle; + } + +//#endregion +//#region ../../packages/utils/numbers.ts +/** + * Due to browser rendering and calculation precision loss issues, + * boundary checks cannot be based solely on value equality; + * a certain range of fluctuation is permissible. + */ + function isGreaterThan(a, b, epsilon = .03) { + return a - b > epsilon; + } + +//#endregion +//#region ../../packages/hooks/use-attrs/index.ts + const DEFAULT_EXCLUDE_KEYS = ["class", "style"]; + const LISTENER_PREFIX = /^on[A-Z]/; + const useAttrs = (params = {}) => { + const { excludeListeners = false, excludeKeys } = params; + const allExcludeKeys = (0, vue.computed)(() => { + return (excludeKeys?.value || []).concat(DEFAULT_EXCLUDE_KEYS); + }); + const instance = (0, vue.getCurrentInstance)(); + if (!instance) { + /* @__PURE__ */ debugWarn("use-attrs", "getCurrentInstance() returned null. useAttrs() must be called at the top of a setup function"); + return (0, vue.computed)(() => ({})); + } + return (0, vue.computed)(() => fromPairs(Object.entries(instance.proxy?.$attrs).filter(([key]) => !allExcludeKeys.value.includes(key) && !(excludeListeners && LISTENER_PREFIX.test(key))))); + }; + +//#endregion +//#region ../../packages/hooks/use-calc-input-width/index.ts + function useCalcInputWidth() { + const calculatorRef = (0, vue.shallowRef)(); + const calculatorWidth = (0, vue.ref)(0); + const inputStyle = (0, vue.computed)(() => ({ minWidth: `${Math.max(calculatorWidth.value, MINIMUM_INPUT_WIDTH)}px` })); + const resetCalculatorWidth = () => { + calculatorWidth.value = calculatorRef.value?.getBoundingClientRect().width ?? 0; + }; + useResizeObserver(calculatorRef, resetCalculatorWidth); + return { + calculatorRef, + calculatorWidth, + inputStyle + }; + } + +//#endregion +//#region ../../packages/hooks/use-deprecated/index.ts + const useDeprecated = ({ from, replacement, scope, version, ref, type = "API" }, condition) => { + (0, vue.watch)(() => (0, vue.unref)(condition), (val) => { + if (val) /* @__PURE__ */ debugWarn(scope, `[${type}] ${from} is about to be deprecated in version ${version}, please use ${replacement} instead. +For more detail, please visit: ${ref} +`); + }, { immediate: true }); + }; + +//#endregion +//#region ../../packages/hooks/use-draggable/index.ts + const useDraggable = (targetRef, dragRef, draggable, overflow) => { + const transform = { + offsetX: 0, + offsetY: 0 + }; + const isDragging = (0, vue.ref)(false); + const adjustPosition = (moveX, moveY) => { + if (targetRef.value) { + const { offsetX, offsetY } = transform; + const targetRect = targetRef.value.getBoundingClientRect(); + const targetLeft = targetRect.left; + const targetTop = targetRect.top; + const targetWidth = targetRect.width; + const targetHeight = targetRect.height; + const clientWidth = document.documentElement.clientWidth; + const clientHeight = document.documentElement.clientHeight; + const minLeft = -targetLeft + offsetX; + const minTop = -targetTop + offsetY; + const maxLeft = clientWidth - targetLeft - targetWidth + offsetX; + const maxTop = clientHeight - targetTop - (targetHeight < clientHeight ? targetHeight : 0) + offsetY; + if (!overflow?.value) { + moveX = Math.min(Math.max(moveX, minLeft), maxLeft); + moveY = Math.min(Math.max(moveY, minTop), maxTop); + } + transform.offsetX = moveX; + transform.offsetY = moveY; + targetRef.value.style.transform = `translate(${addUnit(moveX)}, ${addUnit(moveY)})`; + } + }; + const onMousedown = (e) => { + const downX = e.clientX; + const downY = e.clientY; + const { offsetX, offsetY } = transform; + const onMousemove = (e) => { + if (!isDragging.value) isDragging.value = true; + adjustPosition(offsetX + e.clientX - downX, offsetY + e.clientY - downY); + }; + const onMouseup = () => { + isDragging.value = false; + document.removeEventListener("mousemove", onMousemove); + document.removeEventListener("mouseup", onMouseup); + }; + document.addEventListener("mousemove", onMousemove); + document.addEventListener("mouseup", onMouseup); + }; + const onDraggable = () => { + if (dragRef.value && targetRef.value) { + dragRef.value.addEventListener("mousedown", onMousedown); + window.addEventListener("resize", updatePosition); + } + }; + const offDraggable = () => { + if (dragRef.value && targetRef.value) { + dragRef.value.removeEventListener("mousedown", onMousedown); + window.removeEventListener("resize", updatePosition); + } + }; + const resetPosition = () => { + transform.offsetX = 0; + transform.offsetY = 0; + if (targetRef.value) targetRef.value.style.transform = ""; + }; + const updatePosition = () => { + const { offsetX, offsetY } = transform; + adjustPosition(offsetX, offsetY); + }; + (0, vue.onMounted)(() => { + (0, vue.watchEffect)(() => { + if (draggable.value) onDraggable(); + else offDraggable(); + }); + }); + (0, vue.onBeforeUnmount)(() => { + offDraggable(); + }); + return { + isDragging, + resetPosition, + updatePosition + }; + }; + +//#endregion +//#region ../../packages/hooks/use-focus/index.ts + const useFocus = (el) => { + return { focus: () => { + el.value?.focus?.(); + } }; + }; + +//#endregion +//#region ../../packages/locale/lang/en.ts + var en_default = { + 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}" + } + } + }; + +//#endregion +//#region ../../packages/hooks/use-locale/index.ts + const buildTranslator = (locale) => (path, option) => translate(path, option, (0, vue.unref)(locale)); + const translate = (path, option, locale) => get(locale, path, path).replace(/\{(\w+)\}/g, (_, key) => `${option?.[key] ?? `{${key}}`}`); + const buildLocaleContext = (locale) => { + return { + lang: (0, vue.computed)(() => (0, vue.unref)(locale).name), + locale: (0, vue.isRef)(locale) ? locale : (0, vue.ref)(locale), + t: buildTranslator(locale) + }; + }; + const localeContextKey = Symbol("localeContextKey"); + const useLocale = (localeOverrides) => { + const locale = localeOverrides || (0, vue.inject)(localeContextKey, (0, vue.ref)()); + return buildLocaleContext((0, vue.computed)(() => locale.value || en_default)); + }; + +//#endregion +//#region ../../packages/hooks/use-namespace/index.ts + const defaultNamespace = "el"; + const statePrefix = "is-"; + const _bem = (namespace, block, blockSuffix, element, modifier) => { + let cls = `${namespace}-${block}`; + if (blockSuffix) cls += `-${blockSuffix}`; + if (element) cls += `__${element}`; + if (modifier) cls += `--${modifier}`; + return cls; + }; + const namespaceContextKey = Symbol("namespaceContextKey"); + const useGetDerivedNamespace = (namespaceOverrides) => { + const derivedNamespace = namespaceOverrides || ((0, vue.getCurrentInstance)() ? (0, vue.inject)(namespaceContextKey, (0, vue.ref)(defaultNamespace)) : (0, vue.ref)(defaultNamespace)); + return (0, vue.computed)(() => { + return (0, vue.unref)(derivedNamespace) || defaultNamespace; + }); + }; + const useNamespace = (block, namespaceOverrides) => { + const namespace = useGetDerivedNamespace(namespaceOverrides); + const b = (blockSuffix = "") => _bem(namespace.value, block, blockSuffix, "", ""); + const e = (element) => element ? _bem(namespace.value, block, "", element, "") : ""; + const m = (modifier) => modifier ? _bem(namespace.value, block, "", "", modifier) : ""; + const be = (blockSuffix, element) => blockSuffix && element ? _bem(namespace.value, block, blockSuffix, element, "") : ""; + const em = (element, modifier) => element && modifier ? _bem(namespace.value, block, "", element, modifier) : ""; + const bm = (blockSuffix, modifier) => blockSuffix && modifier ? _bem(namespace.value, block, blockSuffix, "", modifier) : ""; + const bem = (blockSuffix, element, modifier) => blockSuffix && element && modifier ? _bem(namespace.value, block, blockSuffix, element, modifier) : ""; + const is = (name, ...args) => { + const state = args.length >= 1 ? args[0] : true; + return name && state ? `${statePrefix}${name}` : ""; + }; + const cssVar = (object) => { + const styles = {}; + for (const key in object) if (object[key]) styles[`--${namespace.value}-${key}`] = object[key]; + return styles; + }; + const cssVarBlock = (object) => { + const styles = {}; + for (const key in object) if (object[key]) styles[`--${namespace.value}-${block}-${key}`] = object[key]; + return styles; + }; + const cssVarName = (name) => `--${namespace.value}-${name}`; + const cssVarBlockName = (name) => `--${namespace.value}-${block}-${name}`; + return { + namespace, + b, + e, + m, + be, + em, + bm, + bem, + is, + cssVar, + cssVarName, + cssVarBlock, + cssVarBlockName + }; + }; + +//#endregion +//#region ../../packages/hooks/use-lockscreen/index.ts +/** + * Hook that monitoring the ref value to lock or unlock the screen. + * When the trigger became true, it assumes modal is now opened and vice versa. + * @param trigger {Ref} + */ + const useLockscreen = (trigger, options = {}) => { + if (!(0, vue.isRef)(trigger)) throwError("[useLockscreen]", "You need to pass a ref param to this function"); + const ns = options.ns || useNamespace("popup"); + const hiddenCls = (0, vue.computed)(() => ns.bm("parent", "hidden")); + let scrollBarWidth = 0; + let withoutHiddenClass = false; + let bodyWidth = "0"; + let cleaned = false; + const cleanup = () => { + if (cleaned) return; + cleaned = true; + setTimeout(() => { + if (typeof document === "undefined") return; + if (withoutHiddenClass && document) { + document.body.style.width = bodyWidth; + removeClass(document.body, hiddenCls.value); + } + }, 200); + }; + (0, vue.watch)(trigger, (val) => { + if (!val) { + cleanup(); + return; + } + cleaned = false; + withoutHiddenClass = !hasClass(document.body, hiddenCls.value); + if (withoutHiddenClass) { + bodyWidth = document.body.style.width; + addClass(document.body, hiddenCls.value); + } + scrollBarWidth = getScrollBarWidth(ns.namespace.value); + const bodyHasOverflow = document.documentElement.clientHeight < document.body.scrollHeight; + const bodyOverflowY = getStyle(document.body, "overflowY"); + if (scrollBarWidth > 0 && (bodyHasOverflow || bodyOverflowY === "scroll") && withoutHiddenClass) document.body.style.width = `calc(100% - ${scrollBarWidth}px)`; + }); + (0, vue.onScopeDispose)(() => cleanup()); + }; + +//#endregion +//#region ../../packages/hooks/use-modal/index.ts + const modalStack = []; + const closeModal = (e) => { + if (modalStack.length === 0) return; + if (getEventCode(e) === EVENT_CODE.esc) { + e.stopPropagation(); + modalStack[modalStack.length - 1].handleClose(); + } + }; + const useModal = (instance, visibleRef) => { + (0, vue.watch)(visibleRef, (val) => { + if (val) modalStack.push(instance); + else modalStack.splice(modalStack.indexOf(instance), 1); + }); + }; + if (isClient) useEventListener(document, "keydown", closeModal); + +//#endregion +//#region ../../packages/hooks/use-model-toggle/index.ts + const _prop = buildProp({ + type: definePropType(Boolean), + default: null + }); + const _event = buildProp({ type: definePropType(Function) }); + const createModelToggleComposable = (name) => { + const updateEventKey = `update:${name}`; + const updateEventKeyRaw = `onUpdate:${name}`; + const useModelToggleEmits = [updateEventKey]; + const useModelToggleProps = { + [name]: _prop, + [updateEventKeyRaw]: _event + }; + const useModelToggle = ({ indicator, toggleReason, shouldHideWhenRouteChanges, shouldProceed, onShow, onHide }) => { + const instance = (0, vue.getCurrentInstance)(); + const { emit } = instance; + const props = instance.props; + const hasUpdateHandler = (0, vue.computed)(() => isFunction$1(props[updateEventKeyRaw])); + const isModelBindingAbsent = (0, vue.computed)(() => props[name] === null); + const doShow = (event) => { + if (indicator.value === true) return; + indicator.value = true; + if (toggleReason) toggleReason.value = event; + if (isFunction$1(onShow)) onShow(event); + }; + const doHide = (event) => { + if (indicator.value === false) return; + indicator.value = false; + if (toggleReason) toggleReason.value = event; + if (isFunction$1(onHide)) onHide(event); + }; + const show = (event) => { + if (props.disabled === true || isFunction$1(shouldProceed) && !shouldProceed()) return; + const shouldEmit = hasUpdateHandler.value && isClient; + if (shouldEmit) emit(updateEventKey, true); + if (isModelBindingAbsent.value || !shouldEmit) doShow(event); + }; + const hide = (event) => { + if (props.disabled === true || !isClient) return; + const shouldEmit = hasUpdateHandler.value && isClient; + if (shouldEmit) emit(updateEventKey, false); + if (isModelBindingAbsent.value || !shouldEmit) doHide(event); + }; + const onChange = (val) => { + if (!isBoolean(val)) return; + if (props.disabled && val) { + if (hasUpdateHandler.value) emit(updateEventKey, false); + } else if (indicator.value !== val) if (val) doShow(); + else doHide(); + }; + const toggle = () => { + if (indicator.value) hide(); + else show(); + }; + (0, vue.watch)(() => props[name], onChange); + if (shouldHideWhenRouteChanges && instance.appContext.config.globalProperties.$route !== void 0) (0, vue.watch)(() => ({ ...instance.proxy.$route }), () => { + if (shouldHideWhenRouteChanges.value && indicator.value) hide(); + }); + (0, vue.onMounted)(() => { + onChange(props[name]); + }); + return { + hide, + show, + toggle, + hasUpdateHandler + }; + }; + return { + useModelToggle, + useModelToggleProps, + useModelToggleEmits + }; + }; + const { useModelToggle, useModelToggleProps, useModelToggleEmits } = createModelToggleComposable("modelValue"); + +//#endregion +//#region ../../packages/hooks/use-prevent-global/index.ts + const usePreventGlobal = (indicator, evt, cb) => { + const prevent = (e) => { + if (cb(e)) e.stopImmediatePropagation(); + }; + let stop = void 0; + (0, vue.watch)(() => indicator.value, (val) => { + if (val) stop = useEventListener(document, evt, prevent, true); + else stop?.(); + }, { immediate: true }); + }; + +//#endregion +//#region ../../packages/hooks/use-prop/index.ts + const useProp = (name) => { + const vm = (0, vue.getCurrentInstance)(); + return (0, vue.computed)(() => (vm?.proxy?.$props)?.[name]); + }; + +//#endregion +//#region ../../node_modules/.pnpm/@sxzz+popperjs-es@2.11.8/node_modules/@sxzz/popperjs-es/dist/index.mjs + var L = "top", W = "bottom", T$1 = "right", P$1 = "left", me = "auto", Q = [ + L, + W, + T$1, + P$1 + ], Y$1 = "start", Z = "end", Ye = "clippingParents", je = "viewport", ee = "popper", Ge = "reference", De = Q.reduce(function(e, t) { + return e.concat([t + "-" + Y$1, t + "-" + Z]); + }, []), Ee = [].concat(Q, [me]).reduce(function(e, t) { + return e.concat([ + t, + t + "-" + Y$1, + t + "-" + Z + ]); + }, []), Je = "beforeRead", Ke = "read", Qe = "afterRead", Ze = "beforeMain", et = "main", tt = "afterMain", nt = "beforeWrite", rt = "write", ot = "afterWrite", it = [ + Je, + Ke, + Qe, + Ze, + et, + tt, + nt, + rt, + ot + ]; + function V(e) { + return e ? (e.nodeName || "").toLowerCase() : null; + } + function B(e) { + if (e == null) return window; + if (e.toString() !== "[object Window]") { + var t = e.ownerDocument; + return t && t.defaultView || window; + } + return e; + } + function G(e) { + return e instanceof B(e).Element || e instanceof Element; + } + function R(e) { + return e instanceof B(e).HTMLElement || e instanceof HTMLElement; + } + function Ae(e) { + if (typeof ShadowRoot == "undefined") return !1; + return e instanceof B(e).ShadowRoot || e instanceof ShadowRoot; + } + function Tt(e) { + var t = e.state; + Object.keys(t.elements).forEach(function(n) { + var r = t.styles[n] || {}, o = t.attributes[n] || {}, a = t.elements[n]; + !R(a) || !V(a) || (Object.assign(a.style, r), Object.keys(o).forEach(function(c) { + var s = o[c]; + s === !1 ? a.removeAttribute(c) : a.setAttribute(c, s === !0 ? "" : s); + })); + }); + } + function Bt(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(r) { + var o = t.elements[r], a = t.attributes[r] || {}, s = Object.keys(t.styles.hasOwnProperty(r) ? t.styles[r] : n[r]).reduce(function(i, f) { + return i[f] = "", i; + }, {}); + !R(o) || !V(o) || (Object.assign(o.style, s), Object.keys(a).forEach(function(i) { + o.removeAttribute(i); + })); + }); + }; + } + var ke = { + name: "applyStyles", + enabled: !0, + phase: "write", + fn: Tt, + effect: Bt, + requires: ["computeStyles"] + }; + function C(e) { + return e.split("-")[0]; + } + var J = Math.max, ve = Math.min, te = Math.round; + function Le() { + var e = navigator.userAgentData; + return e != null && e.brands && Array.isArray(e.brands) ? e.brands.map(function(t) { + return t.brand + "/" + t.version; + }).join(" ") : navigator.userAgent; + } + function at() { + return !/^((?!chrome|android).)*safari/i.test(Le()); + } + function ne(e, t, n) { + t === void 0 && (t = !1), n === void 0 && (n = !1); + var r = e.getBoundingClientRect(), o = 1, a = 1; + t && R(e) && (o = e.offsetWidth > 0 && te(r.width) / e.offsetWidth || 1, a = e.offsetHeight > 0 && te(r.height) / e.offsetHeight || 1); + var s = (G(e) ? B(e) : window).visualViewport, i = !at() && n, f = (r.left + (i && s ? s.offsetLeft : 0)) / o, u = (r.top + (i && s ? s.offsetTop : 0)) / a, m = r.width / o, h = r.height / a; + return { + width: m, + height: h, + top: u, + right: f + m, + bottom: u + h, + left: f, + x: f, + y: u + }; + } + function Pe(e) { + var t = ne(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 st(e, t) { + var n = t.getRootNode && t.getRootNode(); + if (e.contains(t)) return !0; + if (n && Ae(n)) { + var r = t; + do { + if (r && e.isSameNode(r)) return !0; + r = r.parentNode || r.host; + } while (r); + } + return !1; + } + function I$1(e) { + return B(e).getComputedStyle(e); + } + function Rt(e) { + return [ + "table", + "td", + "th" + ].indexOf(V(e)) >= 0; + } + function N$1(e) { + return ((G(e) ? e.ownerDocument : e.document) || window.document).documentElement; + } + function ye(e) { + return V(e) === "html" ? e : e.assignedSlot || e.parentNode || (Ae(e) ? e.host : null) || N$1(e); + } + function ft(e) { + return !R(e) || I$1(e).position === "fixed" ? null : e.offsetParent; + } + function Ht(e) { + var t = /firefox/i.test(Le()); + if (/Trident/i.test(Le()) && R(e)) { + if (I$1(e).position === "fixed") return null; + } + var o = ye(e); + for (Ae(o) && (o = o.host); R(o) && ["html", "body"].indexOf(V(o)) < 0;) { + var a = I$1(o); + if (a.transform !== "none" || a.perspective !== "none" || a.contain === "paint" || ["transform", "perspective"].indexOf(a.willChange) !== -1 || t && a.willChange === "filter" || t && a.filter && a.filter !== "none") return o; + o = o.parentNode; + } + return null; + } + function se(e) { + for (var t = B(e), n = ft(e); n && Rt(n) && I$1(n).position === "static";) n = ft(n); + return n && (V(n) === "html" || V(n) === "body" && I$1(n).position === "static") ? t : n || Ht(e) || t; + } + function Me(e) { + return ["top", "bottom"].indexOf(e) >= 0 ? "x" : "y"; + } + function fe(e, t, n) { + return J(e, ve(t, n)); + } + function St(e, t, n) { + var r = fe(e, t, n); + return r > n ? n : r; + } + function ct() { + return { + top: 0, + right: 0, + bottom: 0, + left: 0 + }; + } + function ut(e) { + return Object.assign({}, ct(), e); + } + function pt(e, t) { + return t.reduce(function(n, r) { + return n[r] = e, n; + }, {}); + } + var Vt = function(e, t) { + return e = typeof e == "function" ? e(Object.assign({}, t.rects, { placement: t.placement })) : e, ut(typeof e != "number" ? e : pt(e, Q)); + }; + function Ct(e) { + var t, n = e.state, r = e.name, o = e.options, a = n.elements.arrow, c = n.modifiersData.popperOffsets, s = C(n.placement), i = Me(s), u = [P$1, T$1].indexOf(s) >= 0 ? "height" : "width"; + if (!(!a || !c)) { + var m = Vt(o.padding, n), h = Pe(a), l = i === "y" ? L : P$1, g = i === "y" ? W : T$1, p = n.rects.reference[u] + n.rects.reference[i] - c[i] - n.rects.popper[u], y = c[i] - n.rects.reference[i], b = se(a), x = b ? i === "y" ? b.clientHeight || 0 : b.clientWidth || 0 : 0, O = p / 2 - y / 2, d = m[l], v = x - h[u] - m[g], w = x / 2 - h[u] / 2 + O, $ = fe(d, w, v), j = i; + n.modifiersData[r] = (t = {}, t[j] = $, t.centerOffset = $ - w, t); + } + } + function qt(e) { + var t = e.state, r = e.options.element, o = r === void 0 ? "[data-popper-arrow]" : r; + o != null && (typeof o == "string" && (o = t.elements.popper.querySelector(o), !o) || st(t.elements.popper, o) && (t.elements.arrow = o)); + } + var lt = { + name: "arrow", + enabled: !0, + phase: "main", + fn: Ct, + effect: qt, + requires: ["popperOffsets"], + requiresIfExists: ["preventOverflow"] + }; + function re(e) { + return e.split("-")[1]; + } + var It = { + top: "auto", + right: "auto", + bottom: "auto", + left: "auto" + }; + function Nt(e, t) { + var n = e.x, r = e.y, o = t.devicePixelRatio || 1; + return { + x: te(n * o) / o || 0, + y: te(r * o) / o || 0 + }; + } + function dt(e) { + var t, n = e.popper, r = e.popperRect, o = e.placement, a = e.variation, c = e.offsets, s = e.position, i = e.gpuAcceleration, f = e.adaptive, u = e.roundOffsets, m = e.isFixed, h = c.x, l = h === void 0 ? 0 : h, g = c.y, p = g === void 0 ? 0 : g, y = typeof u == "function" ? u({ + x: l, + y: p + }) : { + x: l, + y: p + }; + l = y.x, p = y.y; + var b = c.hasOwnProperty("x"), x = c.hasOwnProperty("y"), O = P$1, d = L, v = window; + if (f) { + var w = se(n), $ = "clientHeight", j = "clientWidth"; + if (w === B(n) && (w = N$1(n), I$1(w).position !== "static" && s === "absolute" && ($ = "scrollHeight", j = "scrollWidth")), w = w, o === L || (o === P$1 || o === T$1) && a === Z) { + d = W; + var D = m && w === v && v.visualViewport ? v.visualViewport.height : w[$]; + p -= D - r.height, p *= i ? 1 : -1; + } + if (o === P$1 || (o === L || o === W) && a === Z) { + O = T$1; + var E = m && w === v && v.visualViewport ? v.visualViewport.width : w[j]; + l -= E - r.width, l *= i ? 1 : -1; + } + } + var A = Object.assign({ position: s }, f && It), H = u === !0 ? Nt({ + x: l, + y: p + }, B(n)) : { + x: l, + y: p + }; + if (l = H.x, p = H.y, i) { + var k; + return Object.assign({}, A, (k = {}, k[d] = x ? "0" : "", k[O] = b ? "0" : "", k.transform = (v.devicePixelRatio || 1) <= 1 ? "translate(" + l + "px, " + p + "px)" : "translate3d(" + l + "px, " + p + "px, 0)", k)); + } + return Object.assign({}, A, (t = {}, t[d] = x ? p + "px" : "", t[O] = b ? l + "px" : "", t.transform = "", t)); + } + function Ft(e) { + var t = e.state, n = e.options, r = n.gpuAcceleration, o = r === void 0 ? !0 : r, a = n.adaptive, c = a === void 0 ? !0 : a, s = n.roundOffsets, i = s === void 0 ? !0 : s, f = { + placement: C(t.placement), + variation: re(t.placement), + popper: t.elements.popper, + popperRect: t.rects.popper, + gpuAcceleration: o, + isFixed: t.options.strategy === "fixed" + }; + t.modifiersData.popperOffsets != null && (t.styles.popper = Object.assign({}, t.styles.popper, dt(Object.assign({}, f, { + offsets: t.modifiersData.popperOffsets, + position: t.options.strategy, + adaptive: c, + roundOffsets: i + })))), t.modifiersData.arrow != null && (t.styles.arrow = Object.assign({}, t.styles.arrow, dt(Object.assign({}, f, { + offsets: t.modifiersData.arrow, + position: "absolute", + adaptive: !1, + roundOffsets: i + })))), t.attributes.popper = Object.assign({}, t.attributes.popper, { "data-popper-placement": t.placement }); + } + var We = { + name: "computeStyles", + enabled: !0, + phase: "beforeWrite", + fn: Ft, + data: {} + }, ge = { passive: !0 }; + function Ut(e) { + var t = e.state, n = e.instance, r = e.options, o = r.scroll, a = o === void 0 ? !0 : o, c = r.resize, s = c === void 0 ? !0 : c, i = B(t.elements.popper), f = [].concat(t.scrollParents.reference, t.scrollParents.popper); + return a && f.forEach(function(u) { + u.addEventListener("scroll", n.update, ge); + }), s && i.addEventListener("resize", n.update, ge), function() { + a && f.forEach(function(u) { + u.removeEventListener("scroll", n.update, ge); + }), s && i.removeEventListener("resize", n.update, ge); + }; + } + var Te = { + name: "eventListeners", + enabled: !0, + phase: "write", + fn: function() {}, + effect: Ut, + data: {} + }, _t = { + left: "right", + right: "left", + bottom: "top", + top: "bottom" + }; + function be(e) { + return e.replace(/left|right|bottom|top/g, function(t) { + return _t[t]; + }); + } + var zt = { + start: "end", + end: "start" + }; + function ht(e) { + return e.replace(/start|end/g, function(t) { + return zt[t]; + }); + } + function Be(e) { + var t = B(e); + return { + scrollLeft: t.pageXOffset, + scrollTop: t.pageYOffset + }; + } + function Re(e) { + return ne(N$1(e)).left + Be(e).scrollLeft; + } + function Xt(e, t) { + var n = B(e), r = N$1(e), o = n.visualViewport, a = r.clientWidth, c = r.clientHeight, s = 0, i = 0; + if (o) { + a = o.width, c = o.height; + var f = at(); + (f || !f && t === "fixed") && (s = o.offsetLeft, i = o.offsetTop); + } + return { + width: a, + height: c, + x: s + Re(e), + y: i + }; + } + function Yt(e) { + var t, n = N$1(e), r = Be(e), o = (t = e.ownerDocument) == null ? void 0 : t.body, a = J(n.scrollWidth, n.clientWidth, o ? o.scrollWidth : 0, o ? o.clientWidth : 0), c = J(n.scrollHeight, n.clientHeight, o ? o.scrollHeight : 0, o ? o.clientHeight : 0), s = -r.scrollLeft + Re(e), i = -r.scrollTop; + return I$1(o || n).direction === "rtl" && (s += J(n.clientWidth, o ? o.clientWidth : 0) - a), { + width: a, + height: c, + x: s, + y: i + }; + } + function He(e) { + var t = I$1(e), n = t.overflow, r = t.overflowX, o = t.overflowY; + return /auto|scroll|overlay|hidden/.test(n + o + r); + } + function mt(e) { + return [ + "html", + "body", + "#document" + ].indexOf(V(e)) >= 0 ? e.ownerDocument.body : R(e) && He(e) ? e : mt(ye(e)); + } + function ce(e, t) { + var n; + t === void 0 && (t = []); + var r = mt(e), o = r === ((n = e.ownerDocument) == null ? void 0 : n.body), a = B(r), c = o ? [a].concat(a.visualViewport || [], He(r) ? r : []) : r, s = t.concat(c); + return o ? s : s.concat(ce(ye(c))); + } + function Se(e) { + return Object.assign({}, e, { + left: e.x, + top: e.y, + right: e.x + e.width, + bottom: e.y + e.height + }); + } + function Gt(e, t) { + var n = ne(e, !1, t === "fixed"); + return n.top = n.top + e.clientTop, n.left = 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 vt(e, t, n) { + return t === je ? Se(Xt(e, n)) : G(t) ? Gt(t, n) : Se(Yt(N$1(e))); + } + function Jt(e) { + var t = ce(ye(e)), r = ["absolute", "fixed"].indexOf(I$1(e).position) >= 0 && R(e) ? se(e) : e; + return G(r) ? t.filter(function(o) { + return G(o) && st(o, r) && V(o) !== "body"; + }) : []; + } + function Kt(e, t, n, r) { + var o = t === "clippingParents" ? Jt(e) : [].concat(t), a = [].concat(o, [n]), c = a[0], s = a.reduce(function(i, f) { + var u = vt(e, f, r); + return i.top = J(u.top, i.top), i.right = ve(u.right, i.right), i.bottom = ve(u.bottom, i.bottom), i.left = J(u.left, i.left), i; + }, vt(e, c, r)); + return s.width = s.right - s.left, s.height = s.bottom - s.top, s.x = s.left, s.y = s.top, s; + } + function yt(e) { + var t = e.reference, n = e.element, r = e.placement, o = r ? C(r) : null, a = r ? re(r) : null, c = t.x + t.width / 2 - n.width / 2, s = t.y + t.height / 2 - n.height / 2, i; + switch (o) { + case L: + i = { + x: c, + y: t.y - n.height + }; + break; + case W: + i = { + x: c, + y: t.y + t.height + }; + break; + case T$1: + i = { + x: t.x + t.width, + y: s + }; + break; + case P$1: + i = { + x: t.x - n.width, + y: s + }; + break; + default: i = { + x: t.x, + y: t.y + }; + } + var f = o ? Me(o) : null; + if (f != null) { + var u = f === "y" ? "height" : "width"; + switch (a) { + case Y$1: + i[f] = i[f] - (t[u] / 2 - n[u] / 2); + break; + case Z: + i[f] = i[f] + (t[u] / 2 - n[u] / 2); + break; + } + } + return i; + } + function oe(e, t) { + t === void 0 && (t = {}); + var n = t, r = n.placement, o = r === void 0 ? e.placement : r, a = n.strategy, c = a === void 0 ? e.strategy : a, s = n.boundary, i = s === void 0 ? Ye : s, f = n.rootBoundary, u = f === void 0 ? je : f, m = n.elementContext, h = m === void 0 ? ee : m, l = n.altBoundary, g = l === void 0 ? !1 : l, p = n.padding, y = p === void 0 ? 0 : p, b = ut(typeof y != "number" ? y : pt(y, Q)), x = h === ee ? Ge : ee, O = e.rects.popper, d = e.elements[g ? x : h], v = Kt(G(d) ? d : d.contextElement || N$1(e.elements.popper), i, u, c), w = ne(e.elements.reference), $ = yt({ + reference: w, + element: O, + placement: o + }), j = Se(Object.assign({}, O, $)), D = h === ee ? j : w, E = { + top: v.top - D.top + b.top, + bottom: D.bottom - v.bottom + b.bottom, + left: v.left - D.left + b.left, + right: D.right - v.right + b.right + }, A = e.modifiersData.offset; + if (h === ee && A) { + var H = A[o]; + Object.keys(E).forEach(function(k) { + var F = [T$1, W].indexOf(k) >= 0 ? 1 : -1, U = [L, W].indexOf(k) >= 0 ? "y" : "x"; + E[k] += H[U] * F; + }); + } + return E; + } + function Qt(e, t) { + t === void 0 && (t = {}); + var n = t, r = n.placement, o = n.boundary, a = n.rootBoundary, c = n.padding, s = n.flipVariations, i = n.allowedAutoPlacements, f = i === void 0 ? Ee : i, u = re(r), m = u ? s ? De : De.filter(function(g) { + return re(g) === u; + }) : Q, h = m.filter(function(g) { + return f.indexOf(g) >= 0; + }); + h.length === 0 && (h = m); + var l = h.reduce(function(g, p) { + return g[p] = oe(e, { + placement: p, + boundary: o, + rootBoundary: a, + padding: c + })[C(p)], g; + }, {}); + return Object.keys(l).sort(function(g, p) { + return l[g] - l[p]; + }); + } + function Zt(e) { + if (C(e) === me) return []; + var t = be(e); + return [ + ht(e), + t, + ht(t) + ]; + } + function en(e) { + var t = e.state, n = e.options, r = e.name; + if (!t.modifiersData[r]._skip) { + for (var o = n.mainAxis, a = o === void 0 ? !0 : o, c = n.altAxis, s = c === void 0 ? !0 : c, i = n.fallbackPlacements, f = n.padding, u = n.boundary, m = n.rootBoundary, h = n.altBoundary, l = n.flipVariations, g = l === void 0 ? !0 : l, p = n.allowedAutoPlacements, y = t.options.placement, x = C(y) === y, O = i || (x || !g ? [be(y)] : Zt(y)), d = [y].concat(O).reduce(function(z, q) { + return z.concat(C(q) === me ? Qt(t, { + placement: q, + boundary: u, + rootBoundary: m, + padding: f, + flipVariations: g, + allowedAutoPlacements: p + }) : q); + }, []), v = t.rects.reference, w = t.rects.popper, $ = /* @__PURE__ */ new Map(), j = !0, D = d[0], E = 0; E < d.length; E++) { + var A = d[E], H = C(A), k = re(A) === Y$1, F = [L, W].indexOf(H) >= 0, U = F ? "width" : "height", M = oe(t, { + placement: A, + boundary: u, + rootBoundary: m, + altBoundary: h, + padding: f + }), S = F ? k ? T$1 : P$1 : k ? W : L; + v[U] > w[U] && (S = be(S)); + var ue = be(S), _ = []; + if (a && _.push(M[H] <= 0), s && _.push(M[S] <= 0, M[ue] <= 0), _.every(function(z) { + return z; + })) { + D = A, j = !1; + break; + } + $.set(A, _); + } + if (j) { + for (var pe = g ? 3 : 1, xe = function(z) { + var q = d.find(function(de) { + var ae = $.get(de); + if (ae) return ae.slice(0, z).every(function(K) { + return K; + }); + }); + if (q) return D = q, "break"; + }, ie = pe; ie > 0; ie--) if (xe(ie) === "break") break; + } + t.placement !== D && (t.modifiersData[r]._skip = !0, t.placement = D, t.reset = !0); + } + } + var gt = { + name: "flip", + enabled: !0, + phase: "main", + fn: en, + requiresIfExists: ["offset"], + data: { _skip: !1 } + }; + function bt(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 wt(e) { + return [ + L, + T$1, + W, + P$1 + ].some(function(t) { + return e[t] >= 0; + }); + } + function tn(e) { + var t = e.state, n = e.name, r = t.rects.reference, o = t.rects.popper, a = t.modifiersData.preventOverflow, c = oe(t, { elementContext: "reference" }), s = oe(t, { altBoundary: !0 }), i = bt(c, r), f = bt(s, o, a), u = wt(i), m = wt(f); + t.modifiersData[n] = { + referenceClippingOffsets: i, + popperEscapeOffsets: f, + isReferenceHidden: u, + hasPopperEscaped: m + }, t.attributes.popper = Object.assign({}, t.attributes.popper, { + "data-popper-reference-hidden": u, + "data-popper-escaped": m + }); + } + var xt = { + name: "hide", + enabled: !0, + phase: "main", + requiresIfExists: ["preventOverflow"], + fn: tn + }; + function nn(e, t, n) { + var r = C(e), o = [P$1, L].indexOf(r) >= 0 ? -1 : 1, a = typeof n == "function" ? n(Object.assign({}, t, { placement: e })) : n, c = a[0], s = a[1]; + return c = c || 0, s = (s || 0) * o, [P$1, T$1].indexOf(r) >= 0 ? { + x: s, + y: c + } : { + x: c, + y: s + }; + } + function rn(e) { + var t = e.state, n = e.options, r = e.name, o = n.offset, a = o === void 0 ? [0, 0] : o, c = Ee.reduce(function(u, m) { + return u[m] = nn(m, t.rects, a), u; + }, {}), s = c[t.placement], i = s.x, f = s.y; + t.modifiersData.popperOffsets != null && (t.modifiersData.popperOffsets.x += i, t.modifiersData.popperOffsets.y += f), t.modifiersData[r] = c; + } + var Ot = { + name: "offset", + enabled: !0, + phase: "main", + requires: ["popperOffsets"], + fn: rn + }; + function on(e) { + var t = e.state, n = e.name; + t.modifiersData[n] = yt({ + reference: t.rects.reference, + element: t.rects.popper, + placement: t.placement + }); + } + var Ve = { + name: "popperOffsets", + enabled: !0, + phase: "read", + fn: on, + data: {} + }; + function an(e) { + return e === "x" ? "y" : "x"; + } + function sn(e) { + var t = e.state, n = e.options, r = e.name, o = n.mainAxis, a = o === void 0 ? !0 : o, c = n.altAxis, s = c === void 0 ? !1 : c, i = n.boundary, f = n.rootBoundary, u = n.altBoundary, m = n.padding, h = n.tether, l = h === void 0 ? !0 : h, g = n.tetherOffset, p = g === void 0 ? 0 : g, y = oe(t, { + boundary: i, + rootBoundary: f, + padding: m, + altBoundary: u + }), b = C(t.placement), x = re(t.placement), O = !x, d = Me(b), v = an(d), w = t.modifiersData.popperOffsets, $ = t.rects.reference, j = t.rects.popper, D = typeof p == "function" ? p(Object.assign({}, t.rects, { placement: t.placement })) : p, E = typeof D == "number" ? { + mainAxis: D, + altAxis: D + } : Object.assign({ + mainAxis: 0, + altAxis: 0 + }, D), A = t.modifiersData.offset ? t.modifiersData.offset[t.placement] : null, H = { + x: 0, + y: 0 + }; + if (w) { + if (a) { + var k, F = d === "y" ? L : P$1, U = d === "y" ? W : T$1, M = d === "y" ? "height" : "width", S = w[d], ue = S + y[F], _ = S - y[U], pe = l ? -j[M] / 2 : 0, xe = x === Y$1 ? $[M] : j[M], ie = x === Y$1 ? -j[M] : -$[M], le = t.elements.arrow, z = l && le ? Pe(le) : { + width: 0, + height: 0 + }, q = t.modifiersData["arrow#persistent"] ? t.modifiersData["arrow#persistent"].padding : ct(), de = q[F], ae = q[U], K = fe(0, $[M], z[M]), Et = O ? $[M] / 2 - pe - K - de - E.mainAxis : xe - K - de - E.mainAxis, At = O ? -$[M] / 2 + pe + K + ae + E.mainAxis : ie + K + ae + E.mainAxis, Oe = t.elements.arrow && se(t.elements.arrow), kt = Oe ? d === "y" ? Oe.clientTop || 0 : Oe.clientLeft || 0 : 0, Ce = (k = A == null ? void 0 : A[d]) != null ? k : 0, Lt = S + Et - Ce - kt, Pt = S + At - Ce, qe = fe(l ? ve(ue, Lt) : ue, S, l ? J(_, Pt) : _); + w[d] = qe, H[d] = qe - S; + } + if (s) { + var Ie, Mt = d === "x" ? L : P$1, Wt = d === "x" ? W : T$1, X = w[v], he = v === "y" ? "height" : "width", Ne = X + y[Mt], Fe = X - y[Wt], $e = [L, P$1].indexOf(b) !== -1, Ue = (Ie = A == null ? void 0 : A[v]) != null ? Ie : 0, _e = $e ? Ne : X - $[he] - j[he] - Ue + E.altAxis, ze = $e ? X + $[he] + j[he] - Ue - E.altAxis : Fe, Xe = l && $e ? St(_e, X, ze) : fe(l ? _e : Ne, X, l ? ze : Fe); + w[v] = Xe, H[v] = Xe - X; + } + t.modifiersData[r] = H; + } + } + var $t = { + name: "preventOverflow", + enabled: !0, + phase: "main", + fn: sn, + requiresIfExists: ["offset"] + }; + function fn(e) { + return { + scrollLeft: e.scrollLeft, + scrollTop: e.scrollTop + }; + } + function cn(e) { + return e === B(e) || !R(e) ? Be(e) : fn(e); + } + function un(e) { + var t = e.getBoundingClientRect(), n = te(t.width) / e.offsetWidth || 1, r = te(t.height) / e.offsetHeight || 1; + return n !== 1 || r !== 1; + } + function pn(e, t, n) { + n === void 0 && (n = !1); + var r = R(t), o = R(t) && un(t), a = N$1(t), c = ne(e, o, n), s = { + scrollLeft: 0, + scrollTop: 0 + }, i = { + x: 0, + y: 0 + }; + return (r || !r && !n) && ((V(t) !== "body" || He(a)) && (s = cn(t)), R(t) ? (i = ne(t, !0), i.x += t.clientLeft, i.y += t.clientTop) : a && (i.x = Re(a))), { + x: c.left + s.scrollLeft - i.x, + y: c.top + s.scrollTop - i.y, + width: c.width, + height: c.height + }; + } + function ln(e) { + var t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), r = []; + e.forEach(function(a) { + t.set(a.name, a); + }); + function o(a) { + n.add(a.name); + [].concat(a.requires || [], a.requiresIfExists || []).forEach(function(s) { + if (!n.has(s)) { + var i = t.get(s); + i && o(i); + } + }), r.push(a); + } + return e.forEach(function(a) { + n.has(a.name) || o(a); + }), r; + } + function dn(e) { + var t = ln(e); + return it.reduce(function(n, r) { + return n.concat(t.filter(function(o) { + return o.phase === r; + })); + }, []); + } + function hn(e) { + var t; + return function() { + return t || (t = new Promise(function(n) { + Promise.resolve().then(function() { + t = void 0, n(e()); + }); + })), t; + }; + } + function mn(e) { + var t = e.reduce(function(n, r) { + var o = n[r.name]; + return n[r.name] = o ? Object.assign({}, o, r, { + options: Object.assign({}, o.options, r.options), + data: Object.assign({}, o.data, r.data) + }) : r, n; + }, {}); + return Object.keys(t).map(function(n) { + return t[n]; + }); + } + var jt = { + placement: "bottom", + modifiers: [], + strategy: "absolute" + }; + function Dt() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; + return !t.some(function(r) { + return !(r && typeof r.getBoundingClientRect == "function"); + }); + } + function we(e) { + e === void 0 && (e = {}); + var t = e, n = t.defaultModifiers, r = n === void 0 ? [] : n, o = t.defaultOptions, a = o === void 0 ? jt : o; + return function(c, s, i) { + i === void 0 && (i = a); + var f = { + placement: "bottom", + orderedModifiers: [], + options: Object.assign({}, jt, a), + modifiersData: {}, + elements: { + reference: c, + popper: s + }, + attributes: {}, + styles: {} + }, u = [], m = !1, h = { + state: f, + setOptions: function(p) { + var y = typeof p == "function" ? p(f.options) : p; + g(), f.options = Object.assign({}, a, f.options, y), f.scrollParents = { + reference: G(c) ? ce(c) : c.contextElement ? ce(c.contextElement) : [], + popper: ce(s) + }; + var b = dn(mn([].concat(r, f.options.modifiers))); + return f.orderedModifiers = b.filter(function(x) { + return x.enabled; + }), l(), h.update(); + }, + forceUpdate: function() { + if (!m) { + var p = f.elements, y = p.reference, b = p.popper; + if (Dt(y, b)) { + f.rects = { + reference: pn(y, se(b), f.options.strategy === "fixed"), + popper: Pe(b) + }, f.reset = !1, f.placement = f.options.placement, f.orderedModifiers.forEach(function(j) { + return f.modifiersData[j.name] = Object.assign({}, j.data); + }); + for (var x = 0; x < f.orderedModifiers.length; x++) { + if (f.reset === !0) { + f.reset = !1, x = -1; + continue; + } + var O = f.orderedModifiers[x], d = O.fn, v = O.options, w = v === void 0 ? {} : v, $ = O.name; + typeof d == "function" && (f = d({ + state: f, + options: w, + name: $, + instance: h + }) || f); + } + } + } + }, + update: hn(function() { + return new Promise(function(p) { + h.forceUpdate(), p(f); + }); + }), + destroy: function() { + g(), m = !0; + } + }; + if (!Dt(c, s)) return h; + h.setOptions(i).then(function(p) { + !m && i.onFirstUpdate && i.onFirstUpdate(p); + }); + function l() { + f.orderedModifiers.forEach(function(p) { + var y = p.name, b = p.options, x = b === void 0 ? {} : b, O = p.effect; + if (typeof O == "function") { + var d = O({ + state: f, + name: y, + instance: h, + options: x + }), v = function() {}; + u.push(d || v); + } + }); + } + function g() { + u.forEach(function(p) { + return p(); + }), u = []; + } + return h; + }; + } + var vn = we(), gn = we({ defaultModifiers: [ + Te, + Ve, + We, + ke + ] }), wn = we({ defaultModifiers: [ + Te, + Ve, + We, + ke, + Ot, + gt, + $t, + lt, + xt + ] }); + +//#endregion +//#region ../../packages/hooks/use-popper/index.ts + const usePopper = (referenceElementRef, popperElementRef, opts = {}) => { + const stateUpdater = { + name: "updateState", + enabled: true, + phase: "write", + fn: ({ state }) => { + const derivedState = deriveState(state); + Object.assign(states.value, derivedState); + }, + requires: ["computeStyles"] + }; + const options = (0, vue.computed)(() => { + const { onFirstUpdate, placement, strategy, modifiers } = (0, vue.unref)(opts); + return { + onFirstUpdate, + placement: placement || "bottom", + strategy: strategy || "absolute", + modifiers: [ + ...modifiers || [], + stateUpdater, + { + name: "applyStyles", + enabled: false + } + ] + }; + }); + const instanceRef = (0, vue.shallowRef)(); + const states = (0, vue.ref)({ + styles: { + popper: { + position: (0, vue.unref)(options).strategy, + left: "0", + top: "0" + }, + arrow: { position: "absolute" } + }, + attributes: {} + }); + const destroy = () => { + if (!instanceRef.value) return; + instanceRef.value.destroy(); + instanceRef.value = void 0; + }; + (0, vue.watch)(options, (newOptions) => { + const instance = (0, vue.unref)(instanceRef); + if (instance) instance.setOptions(newOptions); + }, { deep: true }); + (0, vue.watch)([referenceElementRef, popperElementRef], ([referenceElement, popperElement]) => { + destroy(); + if (!referenceElement || !popperElement) return; + instanceRef.value = wn(referenceElement, popperElement, (0, vue.unref)(options)); + }); + (0, vue.onBeforeUnmount)(() => { + destroy(); + }); + return { + state: (0, vue.computed)(() => ({ ...(0, vue.unref)(instanceRef)?.state || {} })), + styles: (0, vue.computed)(() => (0, vue.unref)(states).styles), + attributes: (0, vue.computed)(() => (0, vue.unref)(states).attributes), + update: () => (0, vue.unref)(instanceRef)?.update(), + forceUpdate: () => (0, vue.unref)(instanceRef)?.forceUpdate(), + instanceRef: (0, vue.computed)(() => (0, vue.unref)(instanceRef)) + }; + }; + function deriveState(state) { + const elements = Object.keys(state.elements); + return { + styles: fromPairs(elements.map((element) => [element, state.styles[element] || {}])), + attributes: fromPairs(elements.map((element) => [element, state.attributes[element]])) + }; + } + +//#endregion +//#region ../../packages/hooks/use-same-target/index.ts + const useSameTarget = (handleClick) => { + if (!handleClick) return { + onClick: NOOP, + onMousedown: NOOP, + onMouseup: NOOP + }; + let mousedownTarget = false; + let mouseupTarget = false; + const onClick = (e) => { + if (mousedownTarget && mouseupTarget) handleClick(e); + mousedownTarget = mouseupTarget = false; + }; + const onMousedown = (e) => { + mousedownTarget = e.target === e.currentTarget; + }; + const onMouseup = (e) => { + mouseupTarget = e.target === e.currentTarget; + }; + return { + onClick, + onMousedown, + onMouseup + }; + }; + +//#endregion +//#region ../../packages/hooks/use-teleport/index.ts + const useTeleport = (contentRenderer, appendToBody) => { + const isTeleportVisible = (0, vue.ref)(false); + if (!isClient) return { + isTeleportVisible, + showTeleport: NOOP, + hideTeleport: NOOP, + renderTeleport: NOOP + }; + let $el = null; + const showTeleport = () => { + isTeleportVisible.value = true; + if ($el !== null) return; + $el = createGlobalNode(); + }; + const hideTeleport = () => { + isTeleportVisible.value = false; + if ($el !== null) { + removeGlobalNode($el); + $el = null; + } + }; + const renderTeleport = () => { + return appendToBody.value !== true ? contentRenderer() : isTeleportVisible.value ? [(0, vue.h)(vue.Teleport, { to: $el }, contentRenderer())] : void 0; + }; + (0, vue.onUnmounted)(hideTeleport); + return { + isTeleportVisible, + showTeleport, + hideTeleport, + renderTeleport + }; + }; + +//#endregion +//#region ../../packages/hooks/use-throttle-render/index.ts + const useThrottleRender = (loading, throttle = 0) => { + if (throttle === 0) return loading; + const throttled = (0, vue.ref)(isObject$1(throttle) && Boolean(throttle.initVal)); + let timeoutHandle = null; + const dispatchThrottling = (timer) => { + if (isUndefined(timer)) { + throttled.value = loading.value; + return; + } + if (timeoutHandle) clearTimeout(timeoutHandle); + timeoutHandle = setTimeout(() => { + throttled.value = loading.value; + }, timer); + }; + const dispatcher = (type) => { + if (type === "leading") if (isNumber(throttle)) dispatchThrottling(throttle); + else dispatchThrottling(throttle.leading); + else if (isObject$1(throttle)) dispatchThrottling(throttle.trailing); + else throttled.value = false; + }; + (0, vue.onMounted)(() => dispatcher("leading")); + (0, vue.watch)(() => loading.value, (val) => { + dispatcher(val ? "leading" : "trailing"); + }); + return throttled; + }; + +//#endregion +//#region ../../packages/hooks/use-timeout/index.ts + function useTimeout() { + let timeoutHandle; + const registerTimeout = (fn, delay) => { + cancelTimeout(); + timeoutHandle = globalThis.setTimeout(fn, delay); + }; + const cancelTimeout = () => { + if (timeoutHandle === void 0) return; + globalThis.clearTimeout(timeoutHandle); + timeoutHandle = void 0; + }; + tryOnScopeDispose(() => cancelTimeout()); + return { + registerTimeout, + cancelTimeout + }; + } + +//#endregion +//#region ../../packages/hooks/use-transition-fallthrough/index.ts +/* istanbul ignore file */ + const AFTER_APPEAR = "after-appear"; + const AFTER_ENTER = "after-enter"; + const AFTER_LEAVE = "after-leave"; + const APPEAR = "appear"; + const APPEAR_CANCELLED = "appear-cancelled"; + const BEFORE_ENTER = "before-enter"; + const BEFORE_LEAVE = "before-leave"; + const ENTER = "enter"; + const ENTER_CANCELLED = "enter-cancelled"; + const LEAVE = "leave"; + const LEAVE_CANCELLED = "leave-cancelled"; + const useTransitionFallthroughEmits = [ + AFTER_APPEAR, + AFTER_ENTER, + AFTER_LEAVE, + APPEAR, + APPEAR_CANCELLED, + BEFORE_ENTER, + BEFORE_LEAVE, + ENTER, + ENTER_CANCELLED, + LEAVE, + LEAVE_CANCELLED + ]; + /** + * NOTE: + * This is only a delegator for delegating transition callbacks. + * Use this at your need. + */ + /** + * Simple usage + * + * In your setups: + * + * setup() { + * const fallthroughMethods = useTransitionFallthrough() + * return fallthrough + * } + * + * In your template: + * + * + * + */ + const useTransitionFallthrough = () => { + const { emit } = (0, vue.getCurrentInstance)(); + return { + onAfterAppear: () => { + emit(AFTER_APPEAR); + }, + onAfterEnter: () => { + emit(AFTER_ENTER); + }, + onAfterLeave: () => { + emit(AFTER_LEAVE); + }, + onAppearCancelled: () => { + emit(APPEAR_CANCELLED); + }, + onBeforeEnter: () => { + emit(BEFORE_ENTER); + }, + onBeforeLeave: () => { + emit(BEFORE_LEAVE); + }, + onEnter: () => { + emit(ENTER); + }, + onEnterCancelled: () => { + emit(ENTER_CANCELLED); + }, + onLeave: () => { + emit(LEAVE); + }, + onLeaveCancelled: () => { + emit(LEAVE_CANCELLED); + } + }; + }; + +//#endregion +//#region ../../packages/hooks/use-id/index.ts + const defaultIdInjection = { + prefix: Math.floor(Math.random() * 1e4), + current: 0 + }; + const ID_INJECTION_KEY = Symbol("elIdInjection"); + const useIdInjection = () => { + return (0, vue.getCurrentInstance)() ? (0, vue.inject)(ID_INJECTION_KEY, defaultIdInjection) : defaultIdInjection; + }; + const useId = (deterministicId) => { + const idInjection = useIdInjection(); + if (!isClient && idInjection === defaultIdInjection) /* @__PURE__ */ debugWarn("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, +})`); + const namespace = useGetDerivedNamespace(); + return computedEager(() => (0, vue.unref)(deterministicId) || `${namespace.value}-id-${idInjection.prefix}-${idInjection.current++}`); + }; + +//#endregion +//#region ../../packages/hooks/use-escape-keydown/index.ts + let registeredEscapeHandlers = []; + const cachedHandler = (event) => { + if (getEventCode(event) === EVENT_CODE.esc) registeredEscapeHandlers.forEach((registeredHandler) => registeredHandler(event)); + }; + const useEscapeKeydown = (handler) => { + (0, vue.onMounted)(() => { + if (registeredEscapeHandlers.length === 0) document.addEventListener("keydown", cachedHandler); + if (isClient) registeredEscapeHandlers.push(handler); + }); + (0, vue.onBeforeUnmount)(() => { + registeredEscapeHandlers = registeredEscapeHandlers.filter((registeredHandler) => registeredHandler !== handler); + if (registeredEscapeHandlers.length === 0) { + if (isClient) document.removeEventListener("keydown", cachedHandler); + } + }); + }; + +//#endregion +//#region ../../packages/hooks/use-popper-container/index.ts + const usePopperContainerId = () => { + const namespace = useGetDerivedNamespace(); + const idInjection = useIdInjection(); + const id = (0, vue.computed)(() => { + return `${namespace.value}-popper-container-${idInjection.prefix}`; + }); + return { + id, + selector: (0, vue.computed)(() => `#${id.value}`) + }; + }; + const createContainer = (id) => { + const container = document.createElement("div"); + container.id = id; + document.body.appendChild(container); + return container; + }; + const usePopperContainer = () => { + const { id, selector } = usePopperContainerId(); + (0, vue.onBeforeMount)(() => { + if (!isClient) return; + if (!document.body.querySelector(selector.value)) createContainer(id.value); + }); + return { + id, + selector + }; + }; + +//#endregion +//#region ../../packages/hooks/use-intermediate-render/index.ts + const useDelayedRender = ({ indicator, intermediateIndicator, shouldSetIntermediate = () => true, beforeShow, afterShow, afterHide, beforeHide }) => { + (0, vue.watch)(() => (0, vue.unref)(indicator), (val) => { + if (val) { + beforeShow?.(); + (0, vue.nextTick)(() => { + if (!(0, vue.unref)(indicator)) return; + if (shouldSetIntermediate("show")) intermediateIndicator.value = true; + }); + } else { + beforeHide?.(); + (0, vue.nextTick)(() => { + if ((0, vue.unref)(indicator)) return; + if (shouldSetIntermediate("hide")) intermediateIndicator.value = false; + }); + } + }); + (0, vue.watch)(() => intermediateIndicator.value, (val) => { + if (val) afterShow?.(); + else afterHide?.(); + }); + }; + +//#endregion +//#region ../../packages/hooks/use-delayed-toggle/index.ts +/** + * @deprecated Removed after 3.0.0, Use `UseDelayedToggleProps` instead. + */ + const useDelayedToggleProps = buildProps({ + showAfter: { + type: Number, + default: 0 + }, + hideAfter: { + type: Number, + default: 200 + }, + autoClose: { + type: Number, + default: 0 + } + }); + const useDelayedTogglePropsDefaults = { + showAfter: 0, + hideAfter: 200, + autoClose: 0 + }; + const useDelayedToggle = ({ showAfter, hideAfter, autoClose, open, close }) => { + const { registerTimeout } = useTimeout(); + const { registerTimeout: registerTimeoutForAutoClose, cancelTimeout: cancelTimeoutForAutoClose } = useTimeout(); + const onOpen = (event, delay = (0, vue.unref)(showAfter)) => { + registerTimeout(() => { + open(event); + const _autoClose = (0, vue.unref)(autoClose); + if (isNumber(_autoClose) && _autoClose > 0) registerTimeoutForAutoClose(() => { + close(event); + }, _autoClose); + }, delay); + }; + const onClose = (event, delay = (0, vue.unref)(hideAfter)) => { + cancelTimeoutForAutoClose(); + registerTimeout(() => { + close(event); + }, delay); + }; + return { + onOpen, + onClose + }; + }; + +//#endregion +//#region ../../packages/hooks/use-forward-ref/index.ts + const FORWARD_REF_INJECTION_KEY = Symbol("elForwardRef"); + const useForwardRef = (forwardRef) => { + const setForwardRef = ((el) => { + forwardRef.value = el; + }); + (0, vue.provide)(FORWARD_REF_INJECTION_KEY, { setForwardRef }); + }; + const useForwardRefDirective = (setForwardRef) => { + return { + mounted(el) { + setForwardRef(el); + }, + updated(el) { + setForwardRef(el); + }, + unmounted() { + setForwardRef(null); + } + }; + }; + +//#endregion +//#region ../../packages/hooks/use-z-index/index.ts + const initial = { current: 0 }; + const zIndex = (0, vue.ref)(0); + const defaultInitialZIndex = 2e3; + const ZINDEX_INJECTION_KEY = Symbol("elZIndexContextKey"); + const zIndexContextKey = Symbol("zIndexContextKey"); + const useZIndex = (zIndexOverrides) => { + const increasingInjection = (0, vue.getCurrentInstance)() ? (0, vue.inject)(ZINDEX_INJECTION_KEY, initial) : initial; + const zIndexInjection = zIndexOverrides || ((0, vue.getCurrentInstance)() ? (0, vue.inject)(zIndexContextKey, void 0) : void 0); + const initialZIndex = (0, vue.computed)(() => { + const zIndexFromInjection = (0, vue.unref)(zIndexInjection); + return isNumber(zIndexFromInjection) ? zIndexFromInjection : defaultInitialZIndex; + }); + const currentZIndex = (0, vue.computed)(() => initialZIndex.value + zIndex.value); + const nextZIndex = () => { + increasingInjection.current++; + zIndex.value = increasingInjection.current; + return currentZIndex.value; + }; + if (!isClient && !(0, vue.inject)(ZINDEX_INJECTION_KEY)) /* @__PURE__ */ debugWarn("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 })`); + return { + initialZIndex, + currentZIndex, + nextZIndex + }; + }; + +//#endregion +//#region ../../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs + const min$1 = Math.min; + const max$1 = Math.max; + const round = Math.round; + const floor$1 = Math.floor; + const createCoords = (v) => ({ + x: v, + y: v + }); + const oppositeSideMap = { + left: "right", + right: "left", + bottom: "top", + top: "bottom" + }; + const oppositeAlignmentMap = { + start: "end", + end: "start" + }; + function clamp(start, value, end) { + return max$1(start, min$1(value, end)); + } + function evaluate(value, param) { + return typeof value === "function" ? value(param) : value; + } + function getSide(placement) { + return placement.split("-")[0]; + } + function getAlignment(placement) { + return placement.split("-")[1]; + } + function getOppositeAxis(axis) { + return axis === "x" ? "y" : "x"; + } + function getAxisLength(axis) { + return axis === "y" ? "height" : "width"; + } + const yAxisSides = /* @__PURE__ */ new Set(["top", "bottom"]); + function getSideAxis(placement) { + return yAxisSides.has(getSide(placement)) ? "y" : "x"; + } + function getAlignmentAxis(placement) { + return getOppositeAxis(getSideAxis(placement)); + } + function getAlignmentSides(placement, rects, rtl) { + if (rtl === void 0) rtl = false; + const alignment = getAlignment(placement); + const alignmentAxis = getAlignmentAxis(placement); + const length = getAxisLength(alignmentAxis); + let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top"; + if (rects.reference[length] > rects.floating[length]) mainAlignmentSide = getOppositePlacement(mainAlignmentSide); + return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)]; + } + function getExpandedPlacements(placement) { + const oppositePlacement = getOppositePlacement(placement); + return [ + getOppositeAlignmentPlacement(placement), + oppositePlacement, + getOppositeAlignmentPlacement(oppositePlacement) + ]; + } + function getOppositeAlignmentPlacement(placement) { + return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]); + } + const lrPlacement = ["left", "right"]; + const rlPlacement = ["right", "left"]; + const tbPlacement = ["top", "bottom"]; + const btPlacement = ["bottom", "top"]; + function getSideList(side, isStart, rtl) { + switch (side) { + case "top": + case "bottom": + if (rtl) return isStart ? rlPlacement : lrPlacement; + return isStart ? lrPlacement : rlPlacement; + case "left": + case "right": return isStart ? tbPlacement : btPlacement; + default: return []; + } + } + function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) { + const alignment = getAlignment(placement); + let list = getSideList(getSide(placement), direction === "start", rtl); + if (alignment) { + list = list.map((side) => side + "-" + alignment); + if (flipAlignment) list = list.concat(list.map(getOppositeAlignmentPlacement)); + } + return list; + } + function getOppositePlacement(placement) { + return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]); + } + function expandPaddingObject(padding) { + return { + top: 0, + right: 0, + bottom: 0, + left: 0, + ...padding + }; + } + function getPaddingObject(padding) { + return typeof padding !== "number" ? expandPaddingObject(padding) : { + top: padding, + right: padding, + bottom: padding, + left: padding + }; + } + function rectToClientRect(rect) { + const { x, y, width, height } = rect; + return { + width, + height, + top: y, + left: x, + right: x + width, + bottom: y + height, + x, + y + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/@floating-ui+core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.mjs + function computeCoordsFromPlacement(_ref, placement, rtl) { + let { reference, floating } = _ref; + const sideAxis = getSideAxis(placement); + const alignmentAxis = getAlignmentAxis(placement); + const alignLength = getAxisLength(alignmentAxis); + const side = getSide(placement); + const isVertical = sideAxis === "y"; + const commonX = reference.x + reference.width / 2 - floating.width / 2; + const commonY = reference.y + reference.height / 2 - floating.height / 2; + const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2; + let coords; + switch (side) { + case "top": + coords = { + x: commonX, + y: reference.y - floating.height + }; + break; + case "bottom": + coords = { + x: commonX, + y: reference.y + reference.height + }; + break; + case "right": + coords = { + x: reference.x + reference.width, + y: commonY + }; + break; + case "left": + coords = { + x: reference.x - floating.width, + y: commonY + }; + break; + default: coords = { + x: reference.x, + y: reference.y + }; + } + switch (getAlignment(placement)) { + case "start": + coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1); + break; + case "end": + coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1); + break; + } + return coords; + } + /** + * Computes the `x` and `y` coordinates that will place the floating element + * next to a given reference element. + * + * This export does not have any `platform` interface logic. You will need to + * write one for the platform you are using Floating UI with. + */ + const computePosition$1 = async (reference, floating, config) => { + const { placement = "bottom", strategy = "absolute", middleware = [], platform } = config; + const validMiddleware = middleware.filter(Boolean); + const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating)); + let rects = await platform.getElementRects({ + reference, + floating, + strategy + }); + let { x, y } = computeCoordsFromPlacement(rects, placement, rtl); + let statefulPlacement = placement; + let middlewareData = {}; + let resetCount = 0; + for (let i = 0; i < validMiddleware.length; i++) { + const { name, fn } = validMiddleware[i]; + const { x: nextX, y: nextY, data, reset } = await fn({ + x, + y, + initialPlacement: placement, + placement: statefulPlacement, + strategy, + middlewareData, + rects, + platform, + elements: { + reference, + floating + } + }); + x = nextX != null ? nextX : x; + y = nextY != null ? nextY : y; + middlewareData = { + ...middlewareData, + [name]: { + ...middlewareData[name], + ...data + } + }; + if (reset && resetCount <= 50) { + resetCount++; + if (typeof reset === "object") { + if (reset.placement) statefulPlacement = reset.placement; + if (reset.rects) rects = reset.rects === true ? await platform.getElementRects({ + reference, + floating, + strategy + }) : reset.rects; + ({x, y} = computeCoordsFromPlacement(rects, statefulPlacement, rtl)); + } + i = -1; + } + } + return { + x, + y, + placement: statefulPlacement, + strategy, + middlewareData + }; + }; + /** + * Resolves with an object of overflow side offsets that determine how much the + * element is overflowing a given clipping boundary on each side. + * - positive = overflowing the boundary by that number of pixels + * - negative = how many pixels left before it will overflow + * - 0 = lies flush with the boundary + * @see https://floating-ui.com/docs/detectOverflow + */ + async function detectOverflow$1(state, options) { + var _await$platform$isEle; + if (options === void 0) options = {}; + const { x, y, platform, rects, elements, strategy } = state; + const { boundary = "clippingAncestors", rootBoundary = "viewport", elementContext = "floating", altBoundary = false, padding = 0 } = evaluate(options, state); + const paddingObject = getPaddingObject(padding); + const element = elements[altBoundary ? elementContext === "floating" ? "reference" : "floating" : elementContext]; + const clippingClientRect = rectToClientRect(await platform.getClippingRect({ + element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating)), + boundary, + rootBoundary, + strategy + })); + const rect = elementContext === "floating" ? { + x, + y, + width: rects.floating.width, + height: rects.floating.height + } : rects.reference; + const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)); + const offsetScale = await (platform.isElement == null ? void 0 : platform.isElement(offsetParent)) ? await (platform.getScale == null ? void 0 : platform.getScale(offsetParent)) || { + x: 1, + y: 1 + } : { + x: 1, + y: 1 + }; + const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({ + elements, + rect, + offsetParent, + strategy + }) : rect); + return { + top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y, + bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y, + left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x, + right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x + }; + } + /** + * Provides data to position an inner element of the floating element so that it + * appears centered to the reference element. + * @see https://floating-ui.com/docs/arrow + */ + const arrow$1 = (options) => ({ + name: "arrow", + options, + async fn(state) { + const { x, y, placement, rects, platform, elements, middlewareData } = state; + const { element, padding = 0 } = evaluate(options, state) || {}; + if (element == null) return {}; + const paddingObject = getPaddingObject(padding); + const coords = { + x, + y + }; + const axis = getAlignmentAxis(placement); + const length = getAxisLength(axis); + const arrowDimensions = await platform.getDimensions(element); + const isYAxis = axis === "y"; + const minProp = isYAxis ? "top" : "left"; + const maxProp = isYAxis ? "bottom" : "right"; + const clientProp = isYAxis ? "clientHeight" : "clientWidth"; + const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length]; + const startDiff = coords[axis] - rects.reference[axis]; + const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element)); + let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0; + if (!clientSize || !await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent))) clientSize = elements.floating[clientProp] || rects.floating[length]; + const centerToReference = endDiff / 2 - startDiff / 2; + const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1; + const minPadding = min$1(paddingObject[minProp], largestPossiblePadding); + const maxPadding = min$1(paddingObject[maxProp], largestPossiblePadding); + const min$1$1 = minPadding; + const max = clientSize - arrowDimensions[length] - maxPadding; + const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference; + const offset = clamp(min$1$1, center, max); + const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0; + const alignmentOffset = shouldAddOffset ? center < min$1$1 ? center - min$1$1 : center - max : 0; + return { + [axis]: coords[axis] + alignmentOffset, + data: { + [axis]: offset, + centerOffset: center - offset - alignmentOffset, + ...shouldAddOffset && { alignmentOffset } + }, + reset: shouldAddOffset + }; + } + }); + /** + * Optimizes the visibility of the floating element by flipping the `placement` + * in order to keep it in view when the preferred placement(s) will overflow the + * clipping boundary. Alternative to `autoPlacement`. + * @see https://floating-ui.com/docs/flip + */ + const flip$1 = function(options) { + if (options === void 0) options = {}; + return { + name: "flip", + options, + async fn(state) { + var _middlewareData$arrow, _middlewareData$flip; + const { placement, middlewareData, rects, initialPlacement, platform, elements } = state; + const { mainAxis: checkMainAxis = true, crossAxis: checkCrossAxis = true, fallbackPlacements: specifiedFallbackPlacements, fallbackStrategy = "bestFit", fallbackAxisSideDirection = "none", flipAlignment = true, ...detectOverflowOptions } = evaluate(options, state); + if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) return {}; + const side = getSide(placement); + const initialSideAxis = getSideAxis(initialPlacement); + const isBasePlacement = getSide(initialPlacement) === initialPlacement; + const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)); + const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement)); + const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== "none"; + if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl)); + const placements = [initialPlacement, ...fallbackPlacements]; + const overflow = await detectOverflow$1(state, detectOverflowOptions); + const overflows = []; + let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || []; + if (checkMainAxis) overflows.push(overflow[side]); + if (checkCrossAxis) { + const sides = getAlignmentSides(placement, rects, rtl); + overflows.push(overflow[sides[0]], overflow[sides[1]]); + } + overflowsData = [...overflowsData, { + placement, + overflows + }]; + if (!overflows.every((side) => side <= 0)) { + var _middlewareData$flip2, _overflowsData$filter; + const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1; + const nextPlacement = placements[nextIndex]; + if (nextPlacement) { + if (!(checkCrossAxis === "alignment" ? initialSideAxis !== getSideAxis(nextPlacement) : false) || overflowsData.every((d) => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) return { + data: { + index: nextIndex, + overflows: overflowsData + }, + reset: { placement: nextPlacement } + }; + } + let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement; + if (!resetPlacement) switch (fallbackStrategy) { + case "bestFit": { + var _overflowsData$filter2; + const placement = (_overflowsData$filter2 = overflowsData.filter((d) => { + if (hasFallbackAxisSideDirection) { + const currentSideAxis = getSideAxis(d.placement); + return currentSideAxis === initialSideAxis || currentSideAxis === "y"; + } + return true; + }).map((d) => [d.placement, d.overflows.filter((overflow) => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0]; + if (placement) resetPlacement = placement; + break; + } + case "initialPlacement": + resetPlacement = initialPlacement; + break; + } + if (placement !== resetPlacement) return { reset: { placement: resetPlacement } }; + } + return {}; + } + }; + }; + const originSides = /* @__PURE__ */ new Set(["left", "top"]); + async function convertValueToCoords(state, options) { + const { placement, platform, elements } = state; + const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)); + const side = getSide(placement); + const alignment = getAlignment(placement); + const isVertical = getSideAxis(placement) === "y"; + const mainAxisMulti = originSides.has(side) ? -1 : 1; + const crossAxisMulti = rtl && isVertical ? -1 : 1; + const rawValue = evaluate(options, state); + let { mainAxis, crossAxis, alignmentAxis } = typeof rawValue === "number" ? { + mainAxis: rawValue, + crossAxis: 0, + alignmentAxis: null + } : { + mainAxis: rawValue.mainAxis || 0, + crossAxis: rawValue.crossAxis || 0, + alignmentAxis: rawValue.alignmentAxis + }; + if (alignment && typeof alignmentAxis === "number") crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis; + return isVertical ? { + x: crossAxis * crossAxisMulti, + y: mainAxis * mainAxisMulti + } : { + x: mainAxis * mainAxisMulti, + y: crossAxis * crossAxisMulti + }; + } + /** + * Modifies the placement by translating the floating element along the + * specified axes. + * A number (shorthand for `mainAxis` or distance), or an axes configuration + * object may be passed. + * @see https://floating-ui.com/docs/offset + */ + const offset$1 = function(options) { + if (options === void 0) options = 0; + return { + name: "offset", + options, + async fn(state) { + var _middlewareData$offse, _middlewareData$arrow; + const { x, y, placement, middlewareData } = state; + const diffCoords = await convertValueToCoords(state, options); + if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) return {}; + return { + x: x + diffCoords.x, + y: y + diffCoords.y, + data: { + ...diffCoords, + placement + } + }; + } + }; + }; + /** + * Optimizes the visibility of the floating element by shifting it in order to + * keep it in view when it will overflow the clipping boundary. + * @see https://floating-ui.com/docs/shift + */ + const shift$1 = function(options) { + if (options === void 0) options = {}; + return { + name: "shift", + options, + async fn(state) { + const { x, y, placement } = state; + const { mainAxis: checkMainAxis = true, crossAxis: checkCrossAxis = false, limiter = { fn: (_ref) => { + let { x, y } = _ref; + return { + x, + y + }; + } }, ...detectOverflowOptions } = evaluate(options, state); + const coords = { + x, + y + }; + const overflow = await detectOverflow$1(state, detectOverflowOptions); + const crossAxis = getSideAxis(getSide(placement)); + const mainAxis = getOppositeAxis(crossAxis); + let mainAxisCoord = coords[mainAxis]; + let crossAxisCoord = coords[crossAxis]; + if (checkMainAxis) { + const minSide = mainAxis === "y" ? "top" : "left"; + const maxSide = mainAxis === "y" ? "bottom" : "right"; + const min = mainAxisCoord + overflow[minSide]; + const max = mainAxisCoord - overflow[maxSide]; + mainAxisCoord = clamp(min, mainAxisCoord, max); + } + if (checkCrossAxis) { + const minSide = crossAxis === "y" ? "top" : "left"; + const maxSide = crossAxis === "y" ? "bottom" : "right"; + const min = crossAxisCoord + overflow[minSide]; + const max = crossAxisCoord - overflow[maxSide]; + crossAxisCoord = clamp(min, crossAxisCoord, max); + } + const limitedCoords = limiter.fn({ + ...state, + [mainAxis]: mainAxisCoord, + [crossAxis]: crossAxisCoord + }); + return { + ...limitedCoords, + data: { + x: limitedCoords.x - x, + y: limitedCoords.y - y, + enabled: { + [mainAxis]: checkMainAxis, + [crossAxis]: checkCrossAxis + } + } + }; + } + }; + }; + +//#endregion +//#region ../../node_modules/.pnpm/@floating-ui+utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs + function hasWindow() { + return typeof window !== "undefined"; + } + function getNodeName(node) { + if (isNode(node)) return (node.nodeName || "").toLowerCase(); + return "#document"; + } + function getWindow(node) { + var _node$ownerDocument; + return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window; + } + function getDocumentElement(node) { + var _ref; + return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement; + } + function isNode(value) { + if (!hasWindow()) return false; + return value instanceof Node || value instanceof getWindow(value).Node; + } + function isElement(value) { + if (!hasWindow()) return false; + return value instanceof Element || value instanceof getWindow(value).Element; + } + function isHTMLElement(value) { + if (!hasWindow()) return false; + return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement; + } + function isShadowRoot(value) { + if (!hasWindow() || typeof ShadowRoot === "undefined") return false; + return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot; + } + const invalidOverflowDisplayValues = /* @__PURE__ */ new Set(["inline", "contents"]); + function isOverflowElement(element) { + const { overflow, overflowX, overflowY, display } = getComputedStyle$1(element); + return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display); + } + const tableElements = /* @__PURE__ */ new Set([ + "table", + "td", + "th" + ]); + function isTableElement(element) { + return tableElements.has(getNodeName(element)); + } + const topLayerSelectors = [":popover-open", ":modal"]; + function isTopLayer(element) { + return topLayerSelectors.some((selector) => { + try { + return element.matches(selector); + } catch (_e) { + return false; + } + }); + } + const transformProperties = [ + "transform", + "translate", + "scale", + "rotate", + "perspective" + ]; + const willChangeValues = [ + "transform", + "translate", + "scale", + "rotate", + "perspective", + "filter" + ]; + const containValues = [ + "paint", + "layout", + "strict", + "content" + ]; + function isContainingBlock(elementOrCss) { + const webkit = isWebKit(); + const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss; + return transformProperties.some((value) => css[value] ? css[value] !== "none" : false) || (css.containerType ? css.containerType !== "normal" : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== "none" : false) || !webkit && (css.filter ? css.filter !== "none" : false) || willChangeValues.some((value) => (css.willChange || "").includes(value)) || containValues.some((value) => (css.contain || "").includes(value)); + } + function getContainingBlock(element) { + let currentNode = getParentNode(element); + while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) { + if (isContainingBlock(currentNode)) return currentNode; + else if (isTopLayer(currentNode)) return null; + currentNode = getParentNode(currentNode); + } + return null; + } + function isWebKit() { + if (typeof CSS === "undefined" || !CSS.supports) return false; + return CSS.supports("-webkit-backdrop-filter", "none"); + } + const lastTraversableNodeNames = /* @__PURE__ */ new Set([ + "html", + "body", + "#document" + ]); + function isLastTraversableNode(node) { + return lastTraversableNodeNames.has(getNodeName(node)); + } + function getComputedStyle$1(element) { + return getWindow(element).getComputedStyle(element); + } + function getNodeScroll(element) { + if (isElement(element)) return { + scrollLeft: element.scrollLeft, + scrollTop: element.scrollTop + }; + return { + scrollLeft: element.scrollX, + scrollTop: element.scrollY + }; + } + function getParentNode(node) { + if (getNodeName(node) === "html") return node; + const result = node.assignedSlot || node.parentNode || isShadowRoot(node) && node.host || getDocumentElement(node); + return isShadowRoot(result) ? result.host : result; + } + function getNearestOverflowAncestor(node) { + const parentNode = getParentNode(node); + if (isLastTraversableNode(parentNode)) return node.ownerDocument ? node.ownerDocument.body : node.body; + if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) return parentNode; + return getNearestOverflowAncestor(parentNode); + } + function getOverflowAncestors(node, list, traverseIframes) { + var _node$ownerDocument2; + if (list === void 0) list = []; + if (traverseIframes === void 0) traverseIframes = true; + const scrollableAncestor = getNearestOverflowAncestor(node); + const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body); + const win = getWindow(scrollableAncestor); + if (isBody) { + const frameElement = getFrameElement(win); + return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []); + } + return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes)); + } + function getFrameElement(win) { + return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null; + } + +//#endregion +//#region ../../node_modules/.pnpm/@floating-ui+dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs + function getCssDimensions(element) { + const css = getComputedStyle$1(element); + let width = parseFloat(css.width) || 0; + let height = parseFloat(css.height) || 0; + const hasOffset = isHTMLElement(element); + const offsetWidth = hasOffset ? element.offsetWidth : width; + const offsetHeight = hasOffset ? element.offsetHeight : height; + const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight; + if (shouldFallback) { + width = offsetWidth; + height = offsetHeight; + } + return { + width, + height, + $: shouldFallback + }; + } + function unwrapElement(element) { + return !isElement(element) ? element.contextElement : element; + } + function getScale(element) { + const domElement = unwrapElement(element); + if (!isHTMLElement(domElement)) return createCoords(1); + const rect = domElement.getBoundingClientRect(); + const { width, height, $ } = getCssDimensions(domElement); + let x = ($ ? round(rect.width) : rect.width) / width; + let y = ($ ? round(rect.height) : rect.height) / height; + if (!x || !Number.isFinite(x)) x = 1; + if (!y || !Number.isFinite(y)) y = 1; + return { + x, + y + }; + } + const noOffsets = /* @__PURE__ */ createCoords(0); + function getVisualOffsets(element) { + const win = getWindow(element); + if (!isWebKit() || !win.visualViewport) return noOffsets; + return { + x: win.visualViewport.offsetLeft, + y: win.visualViewport.offsetTop + }; + } + function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) { + if (isFixed === void 0) isFixed = false; + if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) return false; + return isFixed; + } + function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) { + if (includeScale === void 0) includeScale = false; + if (isFixedStrategy === void 0) isFixedStrategy = false; + const clientRect = element.getBoundingClientRect(); + const domElement = unwrapElement(element); + let scale = createCoords(1); + if (includeScale) if (offsetParent) { + if (isElement(offsetParent)) scale = getScale(offsetParent); + } else scale = getScale(element); + const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0); + let x = (clientRect.left + visualOffsets.x) / scale.x; + let y = (clientRect.top + visualOffsets.y) / scale.y; + let width = clientRect.width / scale.x; + let height = clientRect.height / scale.y; + if (domElement) { + const win = getWindow(domElement); + const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent; + let currentWin = win; + let currentIFrame = getFrameElement(currentWin); + while (currentIFrame && offsetParent && offsetWin !== currentWin) { + const iframeScale = getScale(currentIFrame); + const iframeRect = currentIFrame.getBoundingClientRect(); + const css = getComputedStyle$1(currentIFrame); + const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x; + const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y; + x *= iframeScale.x; + y *= iframeScale.y; + width *= iframeScale.x; + height *= iframeScale.y; + x += left; + y += top; + currentWin = getWindow(currentIFrame); + currentIFrame = getFrameElement(currentWin); + } + } + return rectToClientRect({ + width, + height, + x, + y + }); + } + function getWindowScrollBarX(element, rect) { + const leftScroll = getNodeScroll(element).scrollLeft; + if (!rect) return getBoundingClientRect(getDocumentElement(element)).left + leftScroll; + return rect.left + leftScroll; + } + function getHTMLOffset(documentElement, scroll) { + const htmlRect = documentElement.getBoundingClientRect(); + return { + x: htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect), + y: htmlRect.top + scroll.scrollTop + }; + } + function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) { + let { elements, rect, offsetParent, strategy } = _ref; + const isFixed = strategy === "fixed"; + const documentElement = getDocumentElement(offsetParent); + const topLayer = elements ? isTopLayer(elements.floating) : false; + if (offsetParent === documentElement || topLayer && isFixed) return rect; + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + let scale = createCoords(1); + const offsets = createCoords(0); + const isOffsetParentAnElement = isHTMLElement(offsetParent); + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) scroll = getNodeScroll(offsetParent); + if (isHTMLElement(offsetParent)) { + const offsetRect = getBoundingClientRect(offsetParent); + scale = getScale(offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } + } + const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0); + return { + width: rect.width * scale.x, + height: rect.height * scale.y, + x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x, + y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y + }; + } + function getClientRects(element) { + return Array.from(element.getClientRects()); + } + function getDocumentRect(element) { + const html = getDocumentElement(element); + const scroll = getNodeScroll(element); + const body = element.ownerDocument.body; + const width = max$1(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth); + const height = max$1(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight); + let x = -scroll.scrollLeft + getWindowScrollBarX(element); + const y = -scroll.scrollTop; + if (getComputedStyle$1(body).direction === "rtl") x += max$1(html.clientWidth, body.clientWidth) - width; + return { + width, + height, + x, + y + }; + } + const SCROLLBAR_MAX = 25; + function getViewportRect(element, strategy) { + const win = getWindow(element); + const html = getDocumentElement(element); + const visualViewport = win.visualViewport; + let width = html.clientWidth; + let height = html.clientHeight; + let x = 0; + let y = 0; + if (visualViewport) { + width = visualViewport.width; + height = visualViewport.height; + const visualViewportBased = isWebKit(); + if (!visualViewportBased || visualViewportBased && strategy === "fixed") { + x = visualViewport.offsetLeft; + y = visualViewport.offsetTop; + } + } + const windowScrollbarX = getWindowScrollBarX(html); + if (windowScrollbarX <= 0) { + const doc = html.ownerDocument; + const body = doc.body; + const bodyStyles = getComputedStyle(body); + const bodyMarginInline = doc.compatMode === "CSS1Compat" ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0; + const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline); + if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) width -= clippingStableScrollbarWidth; + } else if (windowScrollbarX <= SCROLLBAR_MAX) width += windowScrollbarX; + return { + width, + height, + x, + y + }; + } + const absoluteOrFixed = /* @__PURE__ */ new Set(["absolute", "fixed"]); + function getInnerBoundingClientRect(element, strategy) { + const clientRect = getBoundingClientRect(element, true, strategy === "fixed"); + const top = clientRect.top + element.clientTop; + const left = clientRect.left + element.clientLeft; + const scale = isHTMLElement(element) ? getScale(element) : createCoords(1); + return { + width: element.clientWidth * scale.x, + height: element.clientHeight * scale.y, + x: left * scale.x, + y: top * scale.y + }; + } + function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) { + let rect; + if (clippingAncestor === "viewport") rect = getViewportRect(element, strategy); + else if (clippingAncestor === "document") rect = getDocumentRect(getDocumentElement(element)); + else if (isElement(clippingAncestor)) rect = getInnerBoundingClientRect(clippingAncestor, strategy); + else { + const visualOffsets = getVisualOffsets(element); + rect = { + x: clippingAncestor.x - visualOffsets.x, + y: clippingAncestor.y - visualOffsets.y, + width: clippingAncestor.width, + height: clippingAncestor.height + }; + } + return rectToClientRect(rect); + } + function hasFixedPositionAncestor(element, stopNode) { + const parentNode = getParentNode(element); + if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) return false; + return getComputedStyle$1(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode); + } + function getClippingElementAncestors(element, cache) { + const cachedResult = cache.get(element); + if (cachedResult) return cachedResult; + let result = getOverflowAncestors(element, [], false).filter((el) => isElement(el) && getNodeName(el) !== "body"); + let currentContainingBlockComputedStyle = null; + const elementIsFixed = getComputedStyle$1(element).position === "fixed"; + let currentNode = elementIsFixed ? getParentNode(element) : element; + while (isElement(currentNode) && !isLastTraversableNode(currentNode)) { + const computedStyle = getComputedStyle$1(currentNode); + const currentNodeIsContaining = isContainingBlock(currentNode); + if (!currentNodeIsContaining && computedStyle.position === "fixed") currentContainingBlockComputedStyle = null; + if (elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode)) result = result.filter((ancestor) => ancestor !== currentNode); + else currentContainingBlockComputedStyle = computedStyle; + currentNode = getParentNode(currentNode); + } + cache.set(element, result); + return result; + } + function getClippingRect(_ref) { + let { element, boundary, rootBoundary, strategy } = _ref; + const clippingAncestors = [...boundary === "clippingAncestors" ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary), rootBoundary]; + const firstClippingAncestor = clippingAncestors[0]; + const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => { + const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy); + accRect.top = max$1(rect.top, accRect.top); + accRect.right = min$1(rect.right, accRect.right); + accRect.bottom = min$1(rect.bottom, accRect.bottom); + accRect.left = max$1(rect.left, accRect.left); + return accRect; + }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy)); + return { + width: clippingRect.right - clippingRect.left, + height: clippingRect.bottom - clippingRect.top, + x: clippingRect.left, + y: clippingRect.top + }; + } + function getDimensions(element) { + const { width, height } = getCssDimensions(element); + return { + width, + height + }; + } + function getRectRelativeToOffsetParent(element, offsetParent, strategy) { + const isOffsetParentAnElement = isHTMLElement(offsetParent); + const documentElement = getDocumentElement(offsetParent); + const isFixed = strategy === "fixed"; + const rect = getBoundingClientRect(element, true, isFixed, offsetParent); + let scroll = { + scrollLeft: 0, + scrollTop: 0 + }; + const offsets = createCoords(0); + function setLeftRTLScrollbarOffset() { + offsets.x = getWindowScrollBarX(documentElement); + } + if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) { + if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) scroll = getNodeScroll(offsetParent); + if (isOffsetParentAnElement) { + const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent); + offsets.x = offsetRect.x + offsetParent.clientLeft; + offsets.y = offsetRect.y + offsetParent.clientTop; + } else if (documentElement) setLeftRTLScrollbarOffset(); + } + if (isFixed && !isOffsetParentAnElement && documentElement) setLeftRTLScrollbarOffset(); + const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0); + return { + x: rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x, + y: rect.top + scroll.scrollTop - offsets.y - htmlOffset.y, + width: rect.width, + height: rect.height + }; + } + function isStaticPositioned(element) { + return getComputedStyle$1(element).position === "static"; + } + function getTrueOffsetParent(element, polyfill) { + if (!isHTMLElement(element) || getComputedStyle$1(element).position === "fixed") return null; + if (polyfill) return polyfill(element); + let rawOffsetParent = element.offsetParent; + if (getDocumentElement(element) === rawOffsetParent) rawOffsetParent = rawOffsetParent.ownerDocument.body; + return rawOffsetParent; + } + function getOffsetParent(element, polyfill) { + const win = getWindow(element); + if (isTopLayer(element)) return win; + if (!isHTMLElement(element)) { + let svgOffsetParent = getParentNode(element); + while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) { + if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) return svgOffsetParent; + svgOffsetParent = getParentNode(svgOffsetParent); + } + return win; + } + let offsetParent = getTrueOffsetParent(element, polyfill); + while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) offsetParent = getTrueOffsetParent(offsetParent, polyfill); + if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) return win; + return offsetParent || getContainingBlock(element) || win; + } + const getElementRects = async function(data) { + const getOffsetParentFn = this.getOffsetParent || getOffsetParent; + const getDimensionsFn = this.getDimensions; + const floatingDimensions = await getDimensionsFn(data.floating); + return { + reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy), + floating: { + x: 0, + y: 0, + width: floatingDimensions.width, + height: floatingDimensions.height + } + }; + }; + function isRTL$1(element) { + return getComputedStyle$1(element).direction === "rtl"; + } + const platform = { + convertOffsetParentRelativeRectToViewportRelativeRect, + getDocumentElement, + getClippingRect, + getOffsetParent, + getElementRects, + getClientRects, + getDimensions, + getScale, + isElement, + isRTL: isRTL$1 + }; + function rectsAreEqual(a, b) { + return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height; + } + function observeMove(element, onMove) { + let io = null; + let timeoutId; + const root = getDocumentElement(element); + function cleanup() { + var _io; + clearTimeout(timeoutId); + (_io = io) == null || _io.disconnect(); + io = null; + } + function refresh(skip, threshold) { + if (skip === void 0) skip = false; + if (threshold === void 0) threshold = 1; + cleanup(); + const elementRectForRootMargin = element.getBoundingClientRect(); + const { left, top, width, height } = elementRectForRootMargin; + if (!skip) onMove(); + if (!width || !height) return; + const insetTop = floor$1(top); + const insetRight = floor$1(root.clientWidth - (left + width)); + const insetBottom = floor$1(root.clientHeight - (top + height)); + const insetLeft = floor$1(left); + const options = { + rootMargin: -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px", + threshold: max$1(0, min$1(1, threshold)) || 1 + }; + let isFirstUpdate = true; + function handleObserve(entries) { + const ratio = entries[0].intersectionRatio; + if (ratio !== threshold) { + if (!isFirstUpdate) return refresh(); + if (!ratio) timeoutId = setTimeout(() => { + refresh(false, 1e-7); + }, 1e3); + else refresh(false, ratio); + } + if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) refresh(); + isFirstUpdate = false; + } + try { + io = new IntersectionObserver(handleObserve, { + ...options, + root: root.ownerDocument + }); + } catch (_e) { + io = new IntersectionObserver(handleObserve, options); + } + io.observe(element); + } + refresh(true); + return cleanup; + } + /** + * Automatically updates the position of the floating element when necessary. + * Should only be called when the floating element is mounted on the DOM or + * visible on the screen. + * @returns cleanup function that should be invoked when the floating element is + * removed from the DOM or hidden from the screen. + * @see https://floating-ui.com/docs/autoUpdate + */ + function autoUpdate(reference, floating, update, options) { + if (options === void 0) options = {}; + const { ancestorScroll = true, ancestorResize = true, elementResize = typeof ResizeObserver === "function", layoutShift = typeof IntersectionObserver === "function", animationFrame = false } = options; + const referenceEl = unwrapElement(reference); + const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : []; + ancestors.forEach((ancestor) => { + ancestorScroll && ancestor.addEventListener("scroll", update, { passive: true }); + ancestorResize && ancestor.addEventListener("resize", update); + }); + const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null; + let reobserveFrame = -1; + let resizeObserver = null; + if (elementResize) { + resizeObserver = new ResizeObserver((_ref) => { + let [firstEntry] = _ref; + if (firstEntry && firstEntry.target === referenceEl && resizeObserver) { + resizeObserver.unobserve(floating); + cancelAnimationFrame(reobserveFrame); + reobserveFrame = requestAnimationFrame(() => { + var _resizeObserver; + (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating); + }); + } + update(); + }); + if (referenceEl && !animationFrame) resizeObserver.observe(referenceEl); + resizeObserver.observe(floating); + } + let frameId; + let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null; + if (animationFrame) frameLoop(); + function frameLoop() { + const nextRefRect = getBoundingClientRect(reference); + if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) update(); + prevRefRect = nextRefRect; + frameId = requestAnimationFrame(frameLoop); + } + update(); + return () => { + var _resizeObserver2; + ancestors.forEach((ancestor) => { + ancestorScroll && ancestor.removeEventListener("scroll", update); + ancestorResize && ancestor.removeEventListener("resize", update); + }); + cleanupIo?.(); + (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect(); + resizeObserver = null; + if (animationFrame) cancelAnimationFrame(frameId); + }; + } + /** + * Resolves with an object of overflow side offsets that determine how much the + * element is overflowing a given clipping boundary on each side. + * - positive = overflowing the boundary by that number of pixels + * - negative = how many pixels left before it will overflow + * - 0 = lies flush with the boundary + * @see https://floating-ui.com/docs/detectOverflow + */ + const detectOverflow = detectOverflow$1; + /** + * Modifies the placement by translating the floating element along the + * specified axes. + * A number (shorthand for `mainAxis` or distance), or an axes configuration + * object may be passed. + * @see https://floating-ui.com/docs/offset + */ + const offset = offset$1; + /** + * Optimizes the visibility of the floating element by shifting it in order to + * keep it in view when it will overflow the clipping boundary. + * @see https://floating-ui.com/docs/shift + */ + const shift = shift$1; + /** + * Optimizes the visibility of the floating element by flipping the `placement` + * in order to keep it in view when the preferred placement(s) will overflow the + * clipping boundary. Alternative to `autoPlacement`. + * @see https://floating-ui.com/docs/flip + */ + const flip = flip$1; + /** + * Provides data to position an inner element of the floating element so that it + * appears centered to the reference element. + * @see https://floating-ui.com/docs/arrow + */ + const arrow = arrow$1; + /** + * Computes the `x` and `y` coordinates that will place the floating element + * next to a given reference element. + */ + const computePosition = (reference, floating, options) => { + const cache = /* @__PURE__ */ new Map(); + const mergedOptions = { + platform, + ...options + }; + const platformWithCache = { + ...mergedOptions.platform, + _c: cache + }; + return computePosition$1(reference, floating, { + ...mergedOptions, + platform: platformWithCache + }); + }; + +//#endregion +//#region ../../packages/hooks/use-floating/index.ts + const useFloatingProps = buildProps({}); + const unrefReference = (elRef) => { + if (!isClient) return; + if (!elRef) return elRef; + const unrefEl = unrefElement(elRef); + if (unrefEl) return unrefEl; + return (0, vue.isRef)(elRef) ? unrefEl : elRef; + }; + const getPositionDataWithUnit = (record, key) => { + const value = record?.[key]; + return isNil(value) ? "" : `${value}px`; + }; + const useFloating = ({ middleware, placement, strategy }) => { + const referenceRef = (0, vue.ref)(); + const contentRef = (0, vue.ref)(); + const states = { + x: (0, vue.ref)(), + y: (0, vue.ref)(), + placement, + strategy, + middlewareData: (0, vue.ref)({}) + }; + const update = async () => { + if (!isClient) return; + const referenceEl = unrefReference(referenceRef); + const contentEl = unrefElement(contentRef); + if (!referenceEl || !contentEl) return; + const data = await computePosition(referenceEl, contentEl, { + placement: (0, vue.unref)(placement), + strategy: (0, vue.unref)(strategy), + middleware: (0, vue.unref)(middleware) + }); + keysOf(states).forEach((key) => { + states[key].value = data[key]; + }); + }; + (0, vue.onMounted)(() => { + (0, vue.watchEffect)(() => { + update(); + }); + }); + return { + ...states, + update, + referenceRef, + contentRef + }; + }; + const arrowMiddleware = ({ arrowRef, padding }) => { + return { + name: "arrow", + options: { + element: arrowRef, + padding + }, + fn(args) { + const arrowEl = (0, vue.unref)(arrowRef); + if (!arrowEl) return {}; + return arrow({ + element: arrowEl, + padding + }).fn(args); + } + }; + }; + +//#endregion +//#region ../../packages/hooks/use-cursor/index.ts + function useCursor(input) { + let selectionInfo; + function recordCursor() { + if (input.value == void 0) return; + const { selectionStart, selectionEnd, value } = input.value; + if (selectionStart == null || selectionEnd == null) return; + selectionInfo = { + selectionStart, + selectionEnd, + value, + beforeTxt: value.slice(0, Math.max(0, selectionStart)), + afterTxt: value.slice(Math.max(0, selectionEnd)) + }; + } + function setCursor() { + if (input.value == void 0 || selectionInfo == void 0) return; + const { value } = input.value; + const { beforeTxt, afterTxt, selectionStart } = selectionInfo; + if (beforeTxt == void 0 || afterTxt == void 0 || selectionStart == void 0) return; + let startPos = value.length; + if (value.endsWith(afterTxt)) startPos = value.length - afterTxt.length; + else if (value.startsWith(beforeTxt)) startPos = beforeTxt.length; + else { + const beforeLastChar = beforeTxt[selectionStart - 1]; + const newIndex = value.indexOf(beforeLastChar, selectionStart - 1); + if (newIndex !== -1) startPos = newIndex + 1; + } + input.value.setSelectionRange(startPos, startPos); + } + return [recordCursor, setCursor]; + } + +//#endregion +//#region ../../packages/hooks/use-ordered-children/index.ts + const getOrderedChildren = (vm, childComponentName, children) => { + return flattedChildren(vm.subTree).filter((n) => (0, vue.isVNode)(n) && n.type?.name === childComponentName && !!n.component).map((n) => n.component.uid).map((uid) => children[uid]).filter((p) => !!p); + }; + const useOrderedChildren = (vm, childComponentName) => { + const children = (0, vue.shallowRef)({}); + const orderedChildren = (0, vue.shallowRef)([]); + const nodesMap = /* @__PURE__ */ new WeakMap(); + const addChild = (child) => { + children.value[child.uid] = child; + (0, vue.triggerRef)(children); + (0, vue.onMounted)(() => { + const childNode = child.getVnode().el; + const parentNode = childNode.parentNode; + if (!nodesMap.has(parentNode)) { + nodesMap.set(parentNode, []); + const originalFn = parentNode.insertBefore.bind(parentNode); + parentNode.insertBefore = (node, anchor) => { + if (nodesMap.get(parentNode).some((el) => node === el || anchor === el)) (0, vue.triggerRef)(children); + return originalFn(node, anchor); + }; + } + nodesMap.get(parentNode).push(childNode); + }); + }; + const removeChild = (child) => { + delete children.value[child.uid]; + (0, vue.triggerRef)(children); + const childNode = child.getVnode().el; + const parentNode = childNode.parentNode; + const childNodes = nodesMap.get(parentNode); + const index = childNodes.indexOf(childNode); + childNodes.splice(index, 1); + }; + const sortChildren = () => { + orderedChildren.value = getOrderedChildren(vm, childComponentName, children.value); + }; + const IsolatedRenderer = (props) => { + return props.render(); + }; + return { + children: orderedChildren, + addChild, + removeChild, + ChildrenSorter: (0, vue.defineComponent)({ setup(_, { slots }) { + return () => { + sortChildren(); + return slots.default ? (0, vue.h)(IsolatedRenderer, { render: slots.default }) : null; + }; + } }) + }; + }; + +//#endregion +//#region ../../packages/hooks/use-size/index.ts + const useSizeProp = buildProp({ + type: String, + values: componentSizes, + required: false + }); + const useSizeProps = { size: useSizeProp }; + const SIZE_INJECTION_KEY = Symbol("size"); + const useGlobalSize = () => { + const injectedSize = (0, vue.inject)(SIZE_INJECTION_KEY, {}); + return (0, vue.computed)(() => { + return (0, vue.unref)(injectedSize.size) || ""; + }); + }; + +//#endregion +//#region ../../packages/hooks/use-focus-controller/index.ts + function useFocusController(target, { disabled, beforeFocus, afterFocus, beforeBlur, afterBlur } = {}) { + const { emit } = (0, vue.getCurrentInstance)(); + const wrapperRef = (0, vue.shallowRef)(); + const isFocused = (0, vue.ref)(false); + const handleFocus = (event) => { + const cancelFocus = isFunction$1(beforeFocus) ? beforeFocus(event) : false; + if ((0, vue.unref)(disabled) || isFocused.value || cancelFocus) return; + isFocused.value = true; + emit("focus", event); + afterFocus?.(); + }; + const handleBlur = (event) => { + const cancelBlur = isFunction$1(beforeBlur) ? beforeBlur(event) : false; + if ((0, vue.unref)(disabled) || event.relatedTarget && wrapperRef.value?.contains(event.relatedTarget) || cancelBlur) return; + isFocused.value = false; + emit("blur", event); + afterBlur?.(); + }; + const handleClick = (event) => { + if ((0, vue.unref)(disabled) || isFocusable(event.target) || wrapperRef.value?.contains(document.activeElement) && wrapperRef.value !== document.activeElement) return; + target.value?.focus(); + }; + (0, vue.watch)([wrapperRef, () => (0, vue.unref)(disabled)], ([el, disabled]) => { + if (!el) return; + if (disabled) el.removeAttribute("tabindex"); + else el.setAttribute("tabindex", "-1"); + }); + useEventListener(wrapperRef, "focus", handleFocus, true); + useEventListener(wrapperRef, "blur", handleBlur, true); + useEventListener(wrapperRef, "click", handleClick, true); + return { + isFocused, + wrapperRef, + handleFocus, + handleBlur + }; + } + +//#endregion +//#region ../../packages/hooks/use-composition/index.ts + function useComposition({ afterComposition, emit }) { + const isComposing = (0, vue.ref)(false); + const handleCompositionStart = (event) => { + emit?.("compositionstart", event); + isComposing.value = true; + }; + const handleCompositionUpdate = (event) => { + emit?.("compositionupdate", event); + isComposing.value = true; + }; + const handleCompositionEnd = (event) => { + emit?.("compositionend", event); + if (isComposing.value) { + isComposing.value = false; + (0, vue.nextTick)(() => afterComposition(event)); + } + }; + const handleComposition = (event) => { + event.type === "compositionend" ? handleCompositionEnd(event) : handleCompositionUpdate(event); + }; + return { + isComposing, + handleComposition, + handleCompositionStart, + handleCompositionUpdate, + handleCompositionEnd + }; + } + +//#endregion +//#region ../../packages/hooks/use-empty-values/index.ts + const emptyValuesContextKey = Symbol("emptyValuesContextKey"); + const SCOPE = "use-empty-values"; + const DEFAULT_EMPTY_VALUES = [ + "", + void 0, + null + ]; + const DEFAULT_VALUE_ON_CLEAR = void 0; + /** + * @deprecated Removed after 3.0.0, Use `UseEmptyValuesProps` instead. + */ + const useEmptyValuesProps = buildProps({ + emptyValues: Array, + valueOnClear: { + type: definePropType([ + String, + Number, + Boolean, + Function + ]), + default: void 0, + validator: (val) => { + val = isFunction$1(val) ? val() : val; + if (isArray$1(val)) return val.every((item) => !item); + return !val; + } + } + }); + const useEmptyValues = (props, defaultValue) => { + const config = (0, vue.getCurrentInstance)() ? (0, vue.inject)(emptyValuesContextKey, (0, vue.ref)({})) : (0, vue.ref)({}); + const emptyValues = (0, vue.computed)(() => props.emptyValues || config.value.emptyValues || DEFAULT_EMPTY_VALUES); + const valueOnClear = (0, vue.computed)(() => { + if (isFunction$1(props.valueOnClear)) return props.valueOnClear(); + else if (props.valueOnClear !== void 0) return props.valueOnClear; + else if (isFunction$1(config.value.valueOnClear)) return config.value.valueOnClear(); + else if (config.value.valueOnClear !== void 0) return config.value.valueOnClear; + return defaultValue !== void 0 ? defaultValue : DEFAULT_VALUE_ON_CLEAR; + }); + const isEmptyValue = (value) => { + let result = true; + if (isArray$1(value)) result = emptyValues.value.some((emptyValue) => { + return isEqual$1(value, emptyValue); + }); + else result = emptyValues.value.includes(value); + return result; + }; + if (!isEmptyValue(valueOnClear.value)) /* @__PURE__ */ debugWarn(SCOPE, "value-on-clear should be a value of empty-values"); + return { + emptyValues, + valueOnClear, + isEmptyValue + }; + }; + +//#endregion +//#region ../../packages/hooks/use-aria/index.ts +/** + * @deprecated Removed after 3.0.0, Use `AriaProps` instead. + */ + const ariaProps = buildProps({ + ariaLabel: String, + ariaOrientation: { + type: String, + values: [ + "horizontal", + "vertical", + "undefined" + ] + }, + ariaControls: String + }); + const useAriaProps = (arias) => { + return pick(ariaProps, arias); + }; + +//#endregion +//#region ../../packages/components/config-provider/src/constants.ts + const configProviderContextKey = Symbol(); + +//#endregion +//#region ../../packages/components/config-provider/src/hooks/use-global-config.ts + const globalConfig = (0, vue.ref)(); + function useGlobalConfig(key, defaultValue = void 0) { + const config = (0, vue.getCurrentInstance)() ? (0, vue.inject)(configProviderContextKey, globalConfig) : globalConfig; + if (key) return (0, vue.computed)(() => config.value?.[key] ?? defaultValue); + else return config; + } + function useGlobalComponentSettings(block, sizeFallback) { + const config = useGlobalConfig(); + const ns = useNamespace(block, (0, vue.computed)(() => config.value?.namespace || defaultNamespace)); + const locale = useLocale((0, vue.computed)(() => config.value?.locale)); + const zIndex = useZIndex((0, vue.computed)(() => config.value?.zIndex || defaultInitialZIndex)); + const size = (0, vue.computed)(() => (0, vue.unref)(sizeFallback) || config.value?.size || ""); + provideGlobalConfig((0, vue.computed)(() => (0, vue.unref)(config) || {})); + return { + ns, + locale, + zIndex, + size + }; + } + const provideGlobalConfig = (config, app, global = false) => { + const inSetup = !!(0, vue.getCurrentInstance)(); + const oldConfig = inSetup ? useGlobalConfig() : void 0; + const provideFn = app?.provide ?? (inSetup ? vue.provide : void 0); + if (!provideFn) { + /* @__PURE__ */ debugWarn("provideGlobalConfig", "provideGlobalConfig() can only be used inside setup()."); + return; + } + const context = (0, vue.computed)(() => { + const cfg = (0, vue.unref)(config); + if (!oldConfig?.value) return cfg; + return mergeConfig(oldConfig.value, cfg); + }); + provideFn(configProviderContextKey, context); + provideFn(localeContextKey, (0, vue.computed)(() => context.value.locale)); + provideFn(namespaceContextKey, (0, vue.computed)(() => context.value.namespace)); + provideFn(zIndexContextKey, (0, vue.computed)(() => context.value.zIndex)); + provideFn(SIZE_INJECTION_KEY, { size: (0, vue.computed)(() => context.value.size || "") }); + provideFn(emptyValuesContextKey, (0, vue.computed)(() => ({ + emptyValues: context.value.emptyValues, + valueOnClear: context.value.valueOnClear + }))); + if (global || !globalConfig.value) globalConfig.value = context.value; + return context; + }; + const mergeConfig = (a, b) => { + const keys = [...new Set([...keysOf(a), ...keysOf(b)])]; + const obj = {}; + for (const key of keys) obj[key] = b[key] !== void 0 ? b[key] : a[key]; + return obj; + }; + +//#endregion +//#region ../../packages/components/config-provider/src/config-provider-props.ts + const configProviderProps = buildProps({ + a11y: { + type: Boolean, + default: true + }, + locale: { type: definePropType(Object) }, + size: useSizeProp, + button: { type: definePropType(Object) }, + card: { type: definePropType(Object) }, + dialog: { type: definePropType(Object) }, + link: { type: definePropType(Object) }, + experimentalFeatures: { type: definePropType(Object) }, + keyboardNavigation: { + type: Boolean, + default: true + }, + message: { type: definePropType(Object) }, + zIndex: Number, + namespace: { + type: String, + default: "el" + }, + table: { type: definePropType(Object) }, + ...useEmptyValuesProps + }); + +//#endregion +//#region ../../packages/components/config-provider/src/config-provider.ts + const messageConfig = { placement: "top" }; + const ConfigProvider = (0, vue.defineComponent)({ + name: "ElConfigProvider", + props: configProviderProps, + setup(props, { slots }) { + const config = provideGlobalConfig(props); + (0, vue.watch)(() => props.message, (val) => { + Object.assign(messageConfig, config?.value?.message ?? {}, val ?? {}); + }, { + immediate: true, + deep: true + }); + return () => (0, vue.renderSlot)(slots, "default", { config: config?.value }); + } + }); + +//#endregion +//#region ../../packages/components/config-provider/index.ts + const ElConfigProvider = withInstall(ConfigProvider); + +//#endregion +//#region ../../packages/element-plus/version.ts + const version$1 = "2.13.7"; + +//#endregion +//#region ../../packages/element-plus/make-installer.ts + const makeInstaller = (components = []) => { + const install = (app, options) => { + if (app[INSTALLED_KEY]) return; + app[INSTALLED_KEY] = true; + components.forEach((c) => app.use(c)); + if (options) provideGlobalConfig(options, app, true); + }; + return { + version: version$1, + install + }; + }; + +//#endregion +//#region ../../packages/components/teleport/src/teleport.ts + const teleportProps = buildProps({ + to: { + type: definePropType([String, Object]), + required: true + }, + disabled: Boolean + }); + +//#endregion +//#region ../../packages/components/teleport/src/teleport.vue?vue&type=script&setup=true&lang.ts + var teleport_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "teleport", + props: teleportProps, + setup(__props) { + return (_ctx, _cache) => { + return _ctx.disabled ? (0, vue.renderSlot)(_ctx.$slots, "default", { key: 0 }) : ((0, vue.openBlock)(), (0, vue.createBlock)(vue.Teleport, { + key: 1, + to: _ctx.to + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 8, ["to"])); + }; + } + }); + +//#endregion +//#region ../../packages/components/teleport/src/teleport.vue + var teleport_default = teleport_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/teleport/index.ts + const ElTeleport = withInstall(teleport_default); + +//#endregion +//#region ../../packages/components/affix/src/affix.ts +/** + * @deprecated Removed after 3.0.0, Use `AffixProps` instead. + */ + const affixProps = buildProps({ + zIndex: { + type: definePropType([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: teleportProps.to.type, + default: "body" + } + }); + const affixEmits = { + scroll: ({ scrollTop, fixed }) => isNumber(scrollTop) && isBoolean(fixed), + [CHANGE_EVENT]: (fixed) => isBoolean(fixed) + }; + +//#endregion +//#region ../../packages/components/affix/src/affix.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$22 = "ElAffix"; + var affix_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$22, + __name: "affix", + props: affixProps, + emits: affixEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("affix"); + const target = (0, vue.shallowRef)(); + const root = (0, vue.shallowRef)(); + const scrollContainer = (0, vue.shallowRef)(); + const { height: windowHeight } = useWindowSize(); + const { height: rootHeight, width: rootWidth, top: rootTop, bottom: rootBottom, left: rootLeft, update: updateRoot } = useElementBounding(root, { windowScroll: false }); + const targetRect = useElementBounding(target); + const fixed = (0, vue.ref)(false); + const scrollTop = (0, vue.ref)(0); + const transform = (0, vue.ref)(0); + const teleportDisabled = (0, vue.computed)(() => { + return !props.teleported || !fixed.value; + }); + const rootStyle = (0, vue.computed)(() => { + return { + display: "flow-root", + height: fixed.value ? `${rootHeight.value}px` : "", + width: fixed.value ? `${rootWidth.value}px` : "" + }; + }); + const affixStyle = (0, vue.computed)(() => { + if (!fixed.value) return {}; + const offset = addUnit(props.offset); + return { + height: `${rootHeight.value}px`, + width: `${rootWidth.value}px`, + top: props.position === "top" ? offset : "", + bottom: props.position === "bottom" ? offset : "", + left: props.teleported ? `${rootLeft.value}px` : "", + transform: transform.value ? `translateY(${transform.value}px)` : "", + zIndex: props.zIndex + }; + }); + const update = () => { + if (!scrollContainer.value) return; + scrollTop.value = scrollContainer.value instanceof Window ? document.documentElement.scrollTop : scrollContainer.value.scrollTop || 0; + const { position, target, offset } = props; + const rootHeightOffset = offset + rootHeight.value; + if (position === "top") if (target) { + const difference = targetRect.bottom.value - rootHeightOffset; + fixed.value = offset > rootTop.value && targetRect.bottom.value > 0; + transform.value = difference < 0 ? difference : 0; + } else fixed.value = offset > rootTop.value; + else if (target) { + const difference = windowHeight.value - targetRect.top.value - rootHeightOffset; + fixed.value = windowHeight.value - offset < rootBottom.value && windowHeight.value > targetRect.top.value; + transform.value = difference < 0 ? -difference : 0; + } else fixed.value = windowHeight.value - offset < rootBottom.value; + }; + const updateRootRect = async () => { + if (!fixed.value) { + updateRoot(); + return; + } + fixed.value = false; + await (0, vue.nextTick)(); + updateRoot(); + fixed.value = true; + }; + const handleScroll = async () => { + updateRoot(); + await (0, vue.nextTick)(); + emit("scroll", { + scrollTop: scrollTop.value, + fixed: fixed.value + }); + }; + (0, vue.watch)(fixed, (val) => emit(CHANGE_EVENT, val)); + (0, vue.onMounted)(() => { + if (props.target) { + target.value = document.querySelector(props.target) ?? void 0; + if (!target.value) throwError(COMPONENT_NAME$22, `Target does not exist: ${props.target}`); + } else target.value = document.documentElement; + scrollContainer.value = getScrollContainer(root.value, true); + updateRoot(); + }); + (0, vue.onActivated)(() => { + (0, vue.nextTick)(updateRootRect); + }); + (0, vue.onDeactivated)(() => { + fixed.value = false; + }); + useEventListener(scrollContainer, "scroll", handleScroll); + (0, vue.watchEffect)(update); + __expose({ + update, + updateRoot: updateRootRect + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "root", + ref: root, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + style: (0, vue.normalizeStyle)(rootStyle.value) + }, [(0, vue.createVNode)((0, vue.unref)(ElTeleport), { + disabled: teleportDisabled.value, + to: __props.appendTo + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)({ [(0, vue.unref)(ns).m("fixed")]: fixed.value }), + style: (0, vue.normalizeStyle)(affixStyle.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 6)]), + _: 3 + }, 8, ["disabled", "to"])], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/affix/src/affix.vue + var affix_default = affix_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/affix/index.ts + const ElAffix = withInstall(affix_default); + +//#endregion +//#region ../../packages/components/alert/src/alert.ts + const alertEffects = ["light", "dark"]; + /** + * @deprecated Removed after 3.0.0, Use `AlertProps` instead. + */ + const alertProps = buildProps({ + title: { + type: String, + default: "" + }, + description: { + type: String, + default: "" + }, + type: { + type: String, + values: keysOf(TypeComponentsMap), + default: "info" + }, + closable: { + type: Boolean, + default: true + }, + closeText: { + type: String, + default: "" + }, + showIcon: Boolean, + center: Boolean, + effect: { + type: String, + values: alertEffects, + default: "light" + } + }); + const alertEmits = { close: (evt) => evt instanceof MouseEvent }; + +//#endregion +//#region ../../packages/components/icon/src/icon.ts +/** + * @deprecated Removed after 3.0.0, Use `IconProps` instead. + */ + const iconProps = buildProps({ + size: { type: definePropType([Number, String]) }, + color: { type: String } + }); + +//#endregion +//#region ../../packages/components/icon/src/icon.vue?vue&type=script&setup=true&lang.ts + var icon_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElIcon", + inheritAttrs: false, + __name: "icon", + props: iconProps, + setup(__props) { + const props = __props; + const ns = useNamespace("icon"); + const style = (0, vue.computed)(() => { + const { size, color } = props; + const fontSize = addUnit(size); + if (!fontSize && !color) return {}; + return { + fontSize, + "--color": color + }; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("i", (0, vue.mergeProps)({ + class: (0, vue.unref)(ns).b(), + style: style.value + }, _ctx.$attrs), [(0, vue.renderSlot)(_ctx.$slots, "default")], 16); + }; + } + }); + +//#endregion +//#region ../../packages/components/icon/src/icon.vue + var icon_default = icon_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/icon/index.ts + const ElIcon = withInstall(icon_default); + +//#endregion +//#region ../../packages/components/alert/src/alert.vue?vue&type=script&setup=true&lang.ts + var alert_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAlert", + __name: "alert", + props: alertProps, + emits: alertEmits, + setup(__props, { emit: __emit }) { + const { Close } = TypeComponents; + const props = __props; + const emit = __emit; + const slots = (0, vue.useSlots)(); + const ns = useNamespace("alert"); + const visible = (0, vue.ref)(true); + const iconComponent = (0, vue.computed)(() => TypeComponentsMap[props.type]); + const hasDesc = (0, vue.computed)(() => { + if (props.description) return true; + const slotContent = slots.default?.(); + if (!slotContent) return false; + return flattedChildren(slotContent).some((child) => !isComment(child)); + }); + const close = (evt) => { + visible.value = false; + emit("close", evt); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + name: (0, vue.unref)(ns).b("fade"), + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).m(__props.type), + (0, vue.unref)(ns).is("center", __props.center), + (0, vue.unref)(ns).is(__props.effect) + ]), + role: "alert" + }, [__props.showIcon && (_ctx.$slots.icon || iconComponent.value) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon"), (0, vue.unref)(ns).is("big", hasDesc.value)]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "icon", {}, () => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(iconComponent.value)))])]), + _: 3 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) }, [ + __props.title || _ctx.$slots.title ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("title"), { "with-description": hasDesc.value }]) + }, [(0, vue.renderSlot)(_ctx.$slots, "title", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + hasDesc.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("description")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.description), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + __props.closable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [__props.closeText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("close-btn"), (0, vue.unref)(ns).is("customed")]), + onClick: close + }, (0, vue.toDisplayString)(__props.closeText), 3)) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close-btn")), + onClick: close + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(Close))]), + _: 1 + }, 8, ["class"]))], 64)) : (0, vue.createCommentVNode)("v-if", true) + ], 2)], 2), [[vue.vShow, visible.value]])]), + _: 3 + }, 8, ["name"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/alert/src/alert.vue + var alert_default = alert_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/alert/index.ts + const ElAlert = withInstall(alert_default); + +//#endregion +//#region ../../packages/components/popper/src/popper.ts + const Effect = { + LIGHT: "light", + DARK: "dark" + }; + const roleTypes = [ + "dialog", + "grid", + "group", + "listbox", + "menu", + "navigation", + "tooltip", + "tree" + ]; + /** + * @deprecated Removed after 3.0.0, Use `PopperProps` instead. + */ + const popperProps = buildProps({ role: { + type: String, + values: roleTypes, + default: "tooltip" + } }); + /** @deprecated use `popperProps` instead, and it will be deprecated in the next major version */ + const usePopperProps = popperProps; + +//#endregion +//#region ../../packages/components/popper/src/constants.ts + const POPPER_INJECTION_KEY = Symbol("popper"); + const POPPER_CONTENT_INJECTION_KEY = Symbol("popperContent"); + +//#endregion +//#region ../../packages/components/popper/src/popper.vue?vue&type=script&setup=true&lang.ts + var popper_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPopper", + inheritAttrs: false, + __name: "popper", + props: popperProps, + setup(__props, { expose: __expose }) { + const props = __props; + const popperProvides = { + triggerRef: (0, vue.ref)(), + popperInstanceRef: (0, vue.ref)(), + contentRef: (0, vue.ref)(), + referenceRef: (0, vue.ref)(), + role: (0, vue.computed)(() => props.role) + }; + __expose(popperProvides); + (0, vue.provide)(POPPER_INJECTION_KEY, popperProvides); + return (_ctx, _cache) => { + return (0, vue.renderSlot)(_ctx.$slots, "default"); + }; + } + }); + +//#endregion +//#region ../../packages/components/popper/src/popper.vue + var popper_default = popper_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/popper/src/arrow.vue?vue&type=script&setup=true&lang.ts + var arrow_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPopperArrow", + inheritAttrs: false, + __name: "arrow", + setup(__props, { expose: __expose }) { + const ns = useNamespace("popper"); + const { arrowRef, arrowStyle } = (0, vue.inject)(POPPER_CONTENT_INJECTION_KEY, void 0); + (0, vue.onBeforeUnmount)(() => { + arrowRef.value = void 0; + }); + __expose({ arrowRef }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + ref_key: "arrowRef", + ref: arrowRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("arrow")), + style: (0, vue.normalizeStyle)((0, vue.unref)(arrowStyle)), + "data-popper-arrow": "" + }, null, 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/popper/src/arrow.vue + var arrow_default = arrow_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/popper/src/trigger.ts +/** + * @deprecated Removed after 3.0.0, Use `PopperTriggerProps` instead. + */ + const popperTriggerProps = buildProps({ + virtualRef: { type: definePropType(Object) }, + virtualTriggering: Boolean, + onMouseenter: { type: definePropType(Function) }, + onMouseleave: { type: definePropType(Function) }, + onClick: { type: definePropType(Function) }, + onKeydown: { type: definePropType(Function) }, + onFocus: { type: definePropType(Function) }, + onBlur: { type: definePropType(Function) }, + onContextmenu: { type: definePropType(Function) }, + id: String, + open: Boolean + }); + /** @deprecated use `popperTriggerProps` instead, and it will be deprecated in the next major version */ + const usePopperTriggerProps = popperTriggerProps; + +//#endregion +//#region ../../packages/components/slot/src/only-child.tsx + const NAME = "ElOnlyChild"; + const OnlyChild = /* @__PURE__ */ (0, vue.defineComponent)({ + name: NAME, + setup(_, { slots, attrs }) { + const forwardRefDirective = useForwardRefDirective((0, vue.inject)(FORWARD_REF_INJECTION_KEY)?.setForwardRef ?? NOOP); + return () => { + const defaultSlot = slots.default?.(attrs); + if (!defaultSlot) return null; + const [firstLegitNode, length] = findFirstLegitChild(defaultSlot); + if (!firstLegitNode) { + /* @__PURE__ */ debugWarn(NAME, "no valid child node found"); + return null; + } + if (length > 1) /* @__PURE__ */ debugWarn(NAME, "requires exact only one valid child."); + return (0, vue.withDirectives)((0, vue.cloneVNode)(firstLegitNode, attrs), [[forwardRefDirective]]); + }; + } + }); + function findFirstLegitChild(node) { + if (!node) return [null, 0]; + const children = node; + const len = children.filter((c) => c.type !== vue.Comment).length; + for (const child of children) { + /** + * when user uses h(Fragment, [text]) to render plain string, + * this switch case just cannot handle, when the value is primitives + * we should just return the wrapped string + */ + if (isObject$1(child)) switch (child.type) { + case vue.Comment: continue; + case vue.Text: + case "svg": return [wrapTextContent(child), len]; + case vue.Fragment: return findFirstLegitChild(child.children); + default: return [child, len]; + } + return [wrapTextContent(child), len]; + } + return [null, 0]; + } + function wrapTextContent(s) { + const ns = useNamespace("only-child"); + return (0, vue.createVNode)("span", { "class": ns.e("content") }, [s]); + } + +//#endregion +//#region ../../packages/components/popper/src/trigger.vue?vue&type=script&setup=true&lang.ts + var trigger_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPopperTrigger", + inheritAttrs: false, + __name: "trigger", + props: popperTriggerProps, + setup(__props, { expose: __expose }) { + const props = __props; + const { role, triggerRef } = (0, vue.inject)(POPPER_INJECTION_KEY, void 0); + useForwardRef(triggerRef); + const ariaControls = (0, vue.computed)(() => { + return ariaHaspopup.value ? props.id : void 0; + }); + const ariaDescribedby = (0, vue.computed)(() => { + if (role && role.value === "tooltip") return props.open && props.id ? props.id : void 0; + }); + const ariaHaspopup = (0, vue.computed)(() => { + if (role && role.value !== "tooltip") return role.value; + }); + const ariaExpanded = (0, vue.computed)(() => { + return ariaHaspopup.value ? `${props.open}` : void 0; + }); + let virtualTriggerAriaStopWatch = void 0; + const TRIGGER_ELE_EVENTS = [ + "onMouseenter", + "onMouseleave", + "onClick", + "onKeydown", + "onFocus", + "onBlur", + "onContextmenu" + ]; + (0, vue.onMounted)(() => { + (0, vue.watch)(() => props.virtualRef, (virtualEl) => { + if (virtualEl) triggerRef.value = unrefElement(virtualEl); + }, { immediate: true }); + (0, vue.watch)(triggerRef, (el, prevEl) => { + virtualTriggerAriaStopWatch?.(); + virtualTriggerAriaStopWatch = void 0; + if (isElement$1(prevEl)) TRIGGER_ELE_EVENTS.forEach((eventName) => { + const handler = props[eventName]; + if (handler) prevEl.removeEventListener(eventName.slice(2).toLowerCase(), handler, ["onFocus", "onBlur"].includes(eventName)); + }); + if (isElement$1(el)) { + TRIGGER_ELE_EVENTS.forEach((eventName) => { + const handler = props[eventName]; + if (handler) el.addEventListener(eventName.slice(2).toLowerCase(), handler, ["onFocus", "onBlur"].includes(eventName)); + }); + if (isFocusable(el)) virtualTriggerAriaStopWatch = (0, vue.watch)([ + ariaControls, + ariaDescribedby, + ariaHaspopup, + ariaExpanded + ], (watches) => { + [ + "aria-controls", + "aria-describedby", + "aria-haspopup", + "aria-expanded" + ].forEach((key, idx) => { + isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]); + }); + }, { immediate: true }); + } + if (isElement$1(prevEl) && isFocusable(prevEl)) [ + "aria-controls", + "aria-describedby", + "aria-haspopup", + "aria-expanded" + ].forEach((key) => prevEl.removeAttribute(key)); + }, { immediate: true }); + }); + (0, vue.onBeforeUnmount)(() => { + virtualTriggerAriaStopWatch?.(); + virtualTriggerAriaStopWatch = void 0; + if (triggerRef.value && isElement$1(triggerRef.value)) { + const el = triggerRef.value; + TRIGGER_ELE_EVENTS.forEach((eventName) => { + const handler = props[eventName]; + if (handler) el.removeEventListener(eventName.slice(2).toLowerCase(), handler, ["onFocus", "onBlur"].includes(eventName)); + }); + triggerRef.value = void 0; + } + }); + __expose({ triggerRef }); + return (_ctx, _cache) => { + return !__props.virtualTriggering ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(OnlyChild), (0, vue.mergeProps)({ key: 0 }, _ctx.$attrs, { + "aria-controls": ariaControls.value, + "aria-describedby": ariaDescribedby.value, + "aria-expanded": ariaExpanded.value, + "aria-haspopup": ariaHaspopup.value + }), { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 16, [ + "aria-controls", + "aria-describedby", + "aria-expanded", + "aria-haspopup" + ])) : (0, vue.createCommentVNode)("v-if", true); + }; + } + }); + +//#endregion +//#region ../../packages/components/popper/src/trigger.vue + var trigger_default = trigger_vue_vue_type_script_setup_true_lang_default$1; + +//#endregion +//#region ../../packages/components/popper/src/arrow.ts +/** + * @deprecated Removed after 3.0.0, Use `PopperArrowProps` instead. + */ + const popperArrowProps = buildProps({ arrowOffset: { + type: Number, + default: 5 + } }); + const popperArrowPropsDefaults = { arrowOffset: 5 }; + /** @deprecated use `popperArrowProps` instead, and it will be deprecated in the next major version */ + const usePopperArrowProps = popperArrowProps; + +//#endregion +//#region ../../packages/components/popper/src/content.ts + const POSITIONING_STRATEGIES = ["fixed", "absolute"]; + /** + * @deprecated Removed after 3.0.0, Use `PopperCoreConfigProps` instead. + */ + const popperCoreConfigProps = buildProps({ + boundariesPadding: { + type: Number, + default: 0 + }, + fallbackPlacements: { + type: definePropType(Array), + default: void 0 + }, + gpuAcceleration: { + type: Boolean, + default: true + }, + offset: { + type: Number, + default: 12 + }, + placement: { + type: String, + values: Ee, + default: "bottom" + }, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + strategy: { + type: String, + values: POSITIONING_STRATEGIES, + default: "absolute" + } + }); + /** + * @deprecated Removed after 3.0.0, Use `PopperContentProps` instead. + */ + const popperContentProps = buildProps({ + ...popperCoreConfigProps, + ...popperArrowProps, + id: String, + style: { type: definePropType([ + String, + Array, + Object + ]) }, + className: { type: definePropType([ + String, + Array, + Object + ]) }, + effect: { + type: definePropType(String), + default: "dark" + }, + visible: Boolean, + enterable: { + type: Boolean, + default: true + }, + pure: Boolean, + focusOnShow: Boolean, + trapping: Boolean, + popperClass: { type: definePropType([ + String, + Array, + Object + ]) }, + popperStyle: { type: definePropType([ + String, + Array, + Object + ]) }, + referenceEl: { type: definePropType(Object) }, + triggerTargetEl: { type: definePropType(Object) }, + stopPopperMouseEvent: { + type: Boolean, + default: true + }, + virtualTriggering: Boolean, + zIndex: Number, + ...useAriaProps(["ariaLabel"]), + loop: Boolean + }); + const popperCoreConfigPropsDefaults = { + boundariesPadding: 0, + gpuAcceleration: true, + offset: 12, + placement: "bottom", + popperOptions: () => ({}), + strategy: "absolute" + }; + const popperContentPropsDefaults = { + ...popperCoreConfigPropsDefaults, + ...popperArrowPropsDefaults, + effect: "dark", + enterable: true, + stopPopperMouseEvent: true, + visible: false, + pure: false, + focusOnShow: false, + trapping: false, + virtualTriggering: false, + loop: false, + style: void 0, + popperStyle: void 0 + }; + const popperContentEmits = { + mouseenter: (evt) => evt instanceof MouseEvent, + mouseleave: (evt) => evt instanceof MouseEvent, + focus: () => true, + blur: () => true, + close: () => true + }; + /** @deprecated use `popperCoreConfigProps` instead, and it will be deprecated in the next major version */ + const usePopperCoreConfigProps = popperCoreConfigProps; + /** @deprecated use `popperContentProps` instead, and it will be deprecated in the next major version */ + const usePopperContentProps = popperContentProps; + /** @deprecated use `popperContentEmits` instead, and it will be deprecated in the next major version */ + const usePopperContentEmits = popperContentEmits; + +//#endregion +//#region ../../packages/components/focus-trap/src/tokens.ts + const FOCUS_AFTER_TRAPPED = "focus-trap.focus-after-trapped"; + const FOCUS_AFTER_RELEASED = "focus-trap.focus-after-released"; + const FOCUSOUT_PREVENTED = "focus-trap.focusout-prevented"; + const FOCUS_AFTER_TRAPPED_OPTS = { + cancelable: true, + bubbles: false + }; + const FOCUSOUT_PREVENTED_OPTS = { + cancelable: true, + bubbles: false + }; + const ON_TRAP_FOCUS_EVT = "focusAfterTrapped"; + const ON_RELEASE_FOCUS_EVT = "focusAfterReleased"; + const FOCUS_TRAP_INJECTION_KEY = Symbol("elFocusTrap"); + +//#endregion +//#region ../../packages/components/focus-trap/src/utils.ts + const focusReason = (0, vue.ref)(); + const lastUserFocusTimestamp = (0, vue.ref)(0); + const lastAutomatedFocusTimestamp = (0, vue.ref)(0); + let focusReasonUserCount = 0; + const obtainAllFocusableElements = (element) => { + const nodes = []; + const walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT, { acceptNode: (node) => { + const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden"; + if (node.disabled || node.hidden || isHiddenInput) return NodeFilter.FILTER_SKIP; + return node.tabIndex >= 0 || node === document.activeElement ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP; + } }); + while (walker.nextNode()) nodes.push(walker.currentNode); + return nodes; + }; + const getVisibleElement = (elements, container) => { + for (const element of elements) if (!isHidden(element, container)) return element; + }; + const isHidden = (element, container) => { + if (getComputedStyle(element).visibility === "hidden") return true; + while (element) { + if (container && element === container) return false; + if (getComputedStyle(element).display === "none") return true; + element = element.parentElement; + } + return false; + }; + const getEdges = (container) => { + const focusable = obtainAllFocusableElements(container); + return [getVisibleElement(focusable, container), getVisibleElement(focusable.reverse(), container)]; + }; + const isSelectable = (element) => { + return element instanceof HTMLInputElement && "select" in element; + }; + const tryFocus = (element, shouldSelect) => { + if (element) { + const prevFocusedElement = document.activeElement; + focusElement(element, { preventScroll: true }); + lastAutomatedFocusTimestamp.value = window.performance.now(); + if (element !== prevFocusedElement && isSelectable(element) && shouldSelect) element.select(); + } + }; + function removeFromStack(list, item) { + const copy = [...list]; + const idx = list.indexOf(item); + if (idx !== -1) copy.splice(idx, 1); + return copy; + } + const createFocusableStack = () => { + let stack = []; + const push = (layer) => { + const currentLayer = stack[0]; + if (currentLayer && layer !== currentLayer) currentLayer.pause(); + stack = removeFromStack(stack, layer); + stack.unshift(layer); + }; + const remove = (layer) => { + stack = removeFromStack(stack, layer); + stack[0]?.resume?.(); + }; + return { + push, + remove + }; + }; + const focusFirstDescendant = (elements, shouldSelect = false) => { + const prevFocusedElement = document.activeElement; + for (const element of elements) { + tryFocus(element, shouldSelect); + if (document.activeElement !== prevFocusedElement) return; + } + }; + const focusableStack = createFocusableStack(); + const isFocusCausedByUserEvent = () => { + return lastUserFocusTimestamp.value > lastAutomatedFocusTimestamp.value; + }; + const notifyFocusReasonPointer = () => { + focusReason.value = "pointer"; + lastUserFocusTimestamp.value = window.performance.now(); + }; + const notifyFocusReasonKeydown = () => { + focusReason.value = "keyboard"; + lastUserFocusTimestamp.value = window.performance.now(); + }; + const useFocusReason = () => { + (0, vue.onMounted)(() => { + if (focusReasonUserCount === 0) { + document.addEventListener("mousedown", notifyFocusReasonPointer); + document.addEventListener("touchstart", notifyFocusReasonPointer); + document.addEventListener("keydown", notifyFocusReasonKeydown); + } + focusReasonUserCount++; + }); + (0, vue.onBeforeUnmount)(() => { + focusReasonUserCount--; + if (focusReasonUserCount <= 0) { + document.removeEventListener("mousedown", notifyFocusReasonPointer); + document.removeEventListener("touchstart", notifyFocusReasonPointer); + document.removeEventListener("keydown", notifyFocusReasonKeydown); + } + }); + return { + focusReason, + lastUserFocusTimestamp, + lastAutomatedFocusTimestamp + }; + }; + const createFocusOutPreventedEvent = (detail) => { + return new CustomEvent(FOCUSOUT_PREVENTED, { + ...FOCUSOUT_PREVENTED_OPTS, + detail + }); + }; + +//#endregion +//#region ../../packages/components/focus-trap/src/focus-trap.vue?vue&type=script&lang.ts + var focus_trap_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElFocusTrap", + inheritAttrs: false, + props: { + loop: Boolean, + trapped: Boolean, + focusTrapEl: Object, + focusStartEl: { + type: [Object, String], + default: "first" + } + }, + emits: [ + ON_TRAP_FOCUS_EVT, + ON_RELEASE_FOCUS_EVT, + "focusin", + "focusout", + "focusout-prevented", + "release-requested" + ], + setup(props, { emit }) { + const forwardRef = (0, vue.ref)(); + let lastFocusBeforeTrapped; + let lastFocusAfterTrapped; + const { focusReason } = useFocusReason(); + useEscapeKeydown((event) => { + if (props.trapped && !focusLayer.paused) emit("release-requested", event); + }); + const focusLayer = { + paused: false, + pause() { + this.paused = true; + }, + resume() { + this.paused = false; + } + }; + const onKeydown = (e) => { + if (!props.loop && !props.trapped) return; + if (focusLayer.paused) return; + const { altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e; + const { loop } = props; + const isTabbing = getEventCode(e) === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey; + const currentFocusingEl = document.activeElement; + if (isTabbing && currentFocusingEl) { + const container = currentTarget; + const [first, last] = getEdges(container); + if (!(first && last)) { + if (currentFocusingEl === container) { + const focusoutPreventedEvent = createFocusOutPreventedEvent({ focusReason: focusReason.value }); + emit("focusout-prevented", focusoutPreventedEvent); + if (!focusoutPreventedEvent.defaultPrevented) e.preventDefault(); + } + } else if (!shiftKey && currentFocusingEl === last) { + const focusoutPreventedEvent = createFocusOutPreventedEvent({ focusReason: focusReason.value }); + emit("focusout-prevented", focusoutPreventedEvent); + if (!focusoutPreventedEvent.defaultPrevented) { + e.preventDefault(); + if (loop) tryFocus(first, true); + } + } else if (shiftKey && [first, container].includes(currentFocusingEl)) { + const focusoutPreventedEvent = createFocusOutPreventedEvent({ focusReason: focusReason.value }); + emit("focusout-prevented", focusoutPreventedEvent); + if (!focusoutPreventedEvent.defaultPrevented) { + e.preventDefault(); + if (loop) tryFocus(last, true); + } + } + } + }; + (0, vue.provide)(FOCUS_TRAP_INJECTION_KEY, { + focusTrapRef: forwardRef, + onKeydown + }); + (0, vue.watch)(() => props.focusTrapEl, (focusTrapEl) => { + if (focusTrapEl) forwardRef.value = focusTrapEl; + }, { immediate: true }); + (0, vue.watch)([forwardRef], ([forwardRef], [oldForwardRef]) => { + if (forwardRef) { + forwardRef.addEventListener("keydown", onKeydown); + forwardRef.addEventListener("focusin", onFocusIn); + forwardRef.addEventListener("focusout", onFocusOut); + } + if (oldForwardRef) { + oldForwardRef.removeEventListener("keydown", onKeydown); + oldForwardRef.removeEventListener("focusin", onFocusIn); + oldForwardRef.removeEventListener("focusout", onFocusOut); + } + }); + const trapOnFocus = (e) => { + emit(ON_TRAP_FOCUS_EVT, e); + }; + const releaseOnFocus = (e) => emit(ON_RELEASE_FOCUS_EVT, e); + const onFocusIn = (e) => { + const trapContainer = (0, vue.unref)(forwardRef); + if (!trapContainer) return; + const target = e.target; + const relatedTarget = e.relatedTarget; + const isFocusedInTrap = target && trapContainer.contains(target); + if (!props.trapped) { + if (!(relatedTarget && trapContainer.contains(relatedTarget))) lastFocusBeforeTrapped = relatedTarget; + } + if (isFocusedInTrap) emit("focusin", e); + if (focusLayer.paused) return; + if (props.trapped) if (isFocusedInTrap) lastFocusAfterTrapped = target; + else tryFocus(lastFocusAfterTrapped, true); + }; + const onFocusOut = (e) => { + const trapContainer = (0, vue.unref)(forwardRef); + if (focusLayer.paused || !trapContainer) return; + if (props.trapped) { + const relatedTarget = e.relatedTarget; + if (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) setTimeout(() => { + if (!focusLayer.paused && props.trapped) { + const focusoutPreventedEvent = createFocusOutPreventedEvent({ focusReason: focusReason.value }); + emit("focusout-prevented", focusoutPreventedEvent); + if (!focusoutPreventedEvent.defaultPrevented) tryFocus(lastFocusAfterTrapped, true); + } + }, 0); + } else { + const target = e.target; + if (!(target && trapContainer.contains(target))) emit("focusout", e); + } + }; + async function startTrap() { + await (0, vue.nextTick)(); + const trapContainer = (0, vue.unref)(forwardRef); + if (trapContainer) { + focusableStack.push(focusLayer); + const prevFocusedElement = trapContainer.contains(document.activeElement) ? lastFocusBeforeTrapped : document.activeElement; + lastFocusBeforeTrapped = prevFocusedElement; + if (!trapContainer.contains(prevFocusedElement)) { + const focusEvent = new Event(FOCUS_AFTER_TRAPPED, FOCUS_AFTER_TRAPPED_OPTS); + trapContainer.addEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus); + trapContainer.dispatchEvent(focusEvent); + if (!focusEvent.defaultPrevented) (0, vue.nextTick)(() => { + let focusStartEl = props.focusStartEl; + if (!isString(focusStartEl)) { + tryFocus(focusStartEl); + if (document.activeElement !== focusStartEl) focusStartEl = "first"; + } + if (focusStartEl === "first") focusFirstDescendant(obtainAllFocusableElements(trapContainer), true); + if (document.activeElement === prevFocusedElement || focusStartEl === "container") tryFocus(trapContainer); + }); + } + } + } + function stopTrap() { + const trapContainer = (0, vue.unref)(forwardRef); + if (trapContainer) { + trapContainer.removeEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus); + const releasedEvent = new CustomEvent(FOCUS_AFTER_RELEASED, { + ...FOCUS_AFTER_TRAPPED_OPTS, + detail: { focusReason: focusReason.value } + }); + trapContainer.addEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus); + trapContainer.dispatchEvent(releasedEvent); + if (!releasedEvent.defaultPrevented && (focusReason.value == "keyboard" || !isFocusCausedByUserEvent() || trapContainer.contains(document.activeElement))) tryFocus(lastFocusBeforeTrapped ?? document.body); + trapContainer.removeEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus); + focusableStack.remove(focusLayer); + lastFocusBeforeTrapped = null; + lastFocusAfterTrapped = null; + } + } + (0, vue.onMounted)(() => { + if (props.trapped) startTrap(); + (0, vue.watch)(() => props.trapped, (trapped) => { + if (trapped) startTrap(); + else stopTrap(); + }); + }); + (0, vue.onBeforeUnmount)(() => { + if (props.trapped) stopTrap(); + if (forwardRef.value) { + forwardRef.value.removeEventListener("keydown", onKeydown); + forwardRef.value.removeEventListener("focusin", onFocusIn); + forwardRef.value.removeEventListener("focusout", onFocusOut); + forwardRef.value = void 0; + } + lastFocusBeforeTrapped = null; + lastFocusAfterTrapped = null; + }); + return { onKeydown }; + } + }); + +//#endregion +//#region \0plugin-vue:export-helper + var _plugin_vue_export_helper_default = (sfc, props) => { + const target = sfc.__vccOpts || sfc; + for (const [key, val] of props) target[key] = val; + return target; + }; + +//#endregion +//#region ../../packages/components/focus-trap/src/focus-trap.vue + function _sfc_render$21(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.renderSlot)(_ctx.$slots, "default", { handleKeydown: _ctx.onKeydown }); + } + var focus_trap_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(focus_trap_vue_vue_type_script_lang_default, [["render", _sfc_render$21]]); + +//#endregion +//#region ../../packages/components/focus-trap/index.ts + var focus_trap_default = focus_trap_default$1; + +//#endregion +//#region ../../packages/components/form/src/form.ts +/** + * @deprecated Removed after 3.0.0, Use `FormMetaProps` instead. + */ + const formMetaProps = buildProps({ + size: { + type: String, + values: componentSizes + }, + disabled: Boolean + }); + /** + * @deprecated Removed after 3.0.0, Use `FormProps` instead. + */ + const formProps = buildProps({ + ...formMetaProps, + model: Object, + rules: { type: definePropType(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: true + }, + validateOnRuleChange: { + type: Boolean, + default: true + }, + hideRequiredAsterisk: Boolean, + scrollToError: Boolean, + scrollIntoViewOptions: { + type: definePropType([Object, Boolean]), + default: true + } + }); + const formEmits = { validate: (prop, isValid, message) => (isArray$1(prop) || isString(prop)) && isBoolean(isValid) && isString(message) }; + +//#endregion +//#region ../../packages/components/form/src/constants.ts + const formContextKey = Symbol("formContextKey"); + const formItemContextKey = Symbol("formItemContextKey"); + +//#endregion +//#region ../../packages/components/form/src/hooks/use-form-common-props.ts + const useFormSize = (fallback, ignore = {}) => { + const emptyRef = (0, vue.ref)(void 0); + const size = ignore.prop ? emptyRef : useProp("size"); + const globalConfig = ignore.global ? emptyRef : useGlobalSize(); + const form = ignore.form ? { size: void 0 } : (0, vue.inject)(formContextKey, void 0); + const formItem = ignore.formItem ? { size: void 0 } : (0, vue.inject)(formItemContextKey, void 0); + return (0, vue.computed)(() => size.value || (0, vue.unref)(fallback) || formItem?.size || form?.size || globalConfig.value || ""); + }; + const useFormDisabled = (fallback) => { + const disabled = useProp("disabled"); + const form = (0, vue.inject)(formContextKey, void 0); + return (0, vue.computed)(() => { + return disabled.value ?? (0, vue.unref)(fallback) ?? form?.disabled ?? false; + }); + }; + const useSize = useFormSize; + const useDisabled = useFormDisabled; + +//#endregion +//#region ../../packages/components/form/src/hooks/use-form-item.ts + const useFormItem = () => { + return { + form: (0, vue.inject)(formContextKey, void 0), + formItem: (0, vue.inject)(formItemContextKey, void 0) + }; + }; + const useFormItemInputId = (props, { formItemContext, disableIdGeneration, disableIdManagement }) => { + if (!disableIdGeneration) disableIdGeneration = (0, vue.ref)(false); + if (!disableIdManagement) disableIdManagement = (0, vue.ref)(false); + const instance = (0, vue.getCurrentInstance)(); + const inLabel = () => { + let parent = instance?.parent; + while (parent) { + if (parent.type.name === "ElFormItem") return false; + if (parent.type.name === "ElLabelWrap") return true; + parent = parent.parent; + } + return false; + }; + const inputId = (0, vue.ref)(); + let idUnwatch = void 0; + const isLabeledByFormItem = (0, vue.computed)(() => { + return !!(!(props.label || props.ariaLabel) && formItemContext && formItemContext.inputIds && formItemContext.inputIds?.length <= 1); + }); + (0, vue.onMounted)(() => { + idUnwatch = (0, vue.watch)([(0, vue.toRef)(props, "id"), disableIdGeneration], ([id, disableIdGeneration]) => { + const newId = id ?? (!disableIdGeneration ? useId().value : void 0); + if (newId !== inputId.value) { + if (formItemContext?.removeInputId && !inLabel()) { + inputId.value && formItemContext.removeInputId(inputId.value); + if (!disableIdManagement?.value && !disableIdGeneration && newId) formItemContext.addInputId(newId); + } + inputId.value = newId; + } + }, { immediate: true }); + }); + (0, vue.onUnmounted)(() => { + idUnwatch && idUnwatch(); + if (formItemContext?.removeInputId) inputId.value && formItemContext.removeInputId(inputId.value); + }); + return { + isLabeledByFormItem, + inputId + }; + }; + +//#endregion +//#region ../../packages/components/form/src/utils.ts + const SCOPE$7 = "ElForm"; + function useFormLabelWidth() { + const potentialLabelWidthArr = (0, vue.ref)([]); + const autoLabelWidth = (0, vue.computed)(() => { + if (!potentialLabelWidthArr.value.length) return "0"; + const max = Math.max(...potentialLabelWidthArr.value); + return max ? `${max}px` : ""; + }); + function getLabelWidthIndex(width) { + const index = potentialLabelWidthArr.value.indexOf(width); + if (index === -1 && autoLabelWidth.value === "0") /* @__PURE__ */ debugWarn(SCOPE$7, `unexpected width ${width}`); + return index; + } + function registerLabelWidth(val, oldVal) { + if (val && oldVal) { + const index = getLabelWidthIndex(oldVal); + potentialLabelWidthArr.value.splice(index, 1, val); + } else if (val) potentialLabelWidthArr.value.push(val); + } + function deregisterLabelWidth(val) { + const index = getLabelWidthIndex(val); + if (index > -1) potentialLabelWidthArr.value.splice(index, 1); + } + return { + autoLabelWidth, + registerLabelWidth, + deregisterLabelWidth + }; + } + const filterFields = (fields, props) => { + const normalized = castArray$1(props).map((prop) => isArray$1(prop) ? prop.join(".") : prop); + return normalized.length > 0 ? fields.filter((field) => field.propString && normalized.includes(field.propString)) : fields; + }; + +//#endregion +//#region ../../packages/components/form/src/form.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$21 = "ElForm"; + var form_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$21, + __name: "form", + props: formProps, + emits: formEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const formRef = (0, vue.ref)(); + const fields = (0, vue.reactive)([]); + const initialValues = /* @__PURE__ */ new Map(); + const formSize = useFormSize(); + const ns = useNamespace("form"); + const formClasses = (0, vue.computed)(() => { + const { labelPosition, inline } = props; + return [ + ns.b(), + ns.m(formSize.value || "default"), + { + [ns.m(`label-${labelPosition}`)]: labelPosition, + [ns.m("inline")]: inline + } + ]; + }); + const getField = (prop) => { + return filterFields(fields, [prop])[0]; + }; + const addField = (field) => { + if (!fields.includes(field)) fields.push(field); + if (field.propString) if (initialValues.has(field.propString)) field.setInitialValue(initialValues.get(field.propString)); + else initialValues.set(field.propString, cloneDeep(field.fieldValue)); + }; + const removeField = (field, oldPropString) => { + if (oldPropString) { + initialValues.delete(oldPropString); + return; + } + const idx = fields.indexOf(field); + if (idx > -1) { + fields.splice(idx, 1); + if (field.propString) initialValues.set(field.propString, cloneDeep(field.getInitialValue())); + } + }; + const setInitialValues = (initModel) => { + if (!props.model) { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$21, "model is required for setInitialValues to work."); + return; + } + if (!initModel) { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$21, "initModel is required for setInitialValues to work."); + return; + } + for (const key of initialValues.keys()) initialValues.set(key, cloneDeep(getProp(initModel, key).value)); + fields.forEach((field) => { + if (field.prop) field.setInitialValue(getProp(initModel, field.prop).value); + }); + }; + const resetFields = (properties = []) => { + if (!props.model) { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$21, "model is required for resetFields to work."); + return; + } + filterFields(fields, properties).forEach((field) => field.resetField()); + const activePropStrings = new Set(fields.map((f) => f.propString).filter(Boolean)); + const propsToCheck = properties.length > 0 ? castArray$1(properties).map((p) => isArray$1(p) ? p.join(".") : p) : [...initialValues.keys()]; + for (const propString of propsToCheck) if (!activePropStrings.has(propString) && initialValues.has(propString)) getProp(props.model, propString).value = cloneDeep(initialValues.get(propString)); + }; + const clearValidate = (props = []) => { + filterFields(fields, props).forEach((field) => field.clearValidate()); + }; + const isValidatable = (0, vue.computed)(() => { + const hasModel = !!props.model; + if (!hasModel) /* @__PURE__ */ debugWarn(COMPONENT_NAME$21, "model is required for validate to work."); + return hasModel; + }); + const obtainValidateFields = (props) => { + if (fields.length === 0) return []; + const filteredFields = filterFields(fields, props); + if (!filteredFields.length) { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$21, "please pass correct props!"); + return []; + } + return filteredFields; + }; + const validate = async (callback) => validateField(void 0, callback); + const doValidateField = async (props = []) => { + if (!isValidatable.value) return false; + const fields = obtainValidateFields(props); + if (fields.length === 0) return true; + let validationErrors = {}; + for (const field of fields) try { + await field.validate(""); + if (field.validateState === "error" && !field.error) field.resetField(); + } catch (fields) { + validationErrors = { + ...validationErrors, + ...fields + }; + } + if (Object.keys(validationErrors).length === 0) return true; + return Promise.reject(validationErrors); + }; + const validateField = async (modelProps = [], callback) => { + let result = false; + const shouldThrow = !isFunction$1(callback); + try { + result = await doValidateField(modelProps); + if (result === true) await callback?.(result); + return result; + } catch (e) { + if (e instanceof Error) throw e; + const invalidFields = e; + if (props.scrollToError) { + if (formRef.value) formRef.value.querySelector(`.${ns.b()}-item.is-error`)?.scrollIntoView(props.scrollIntoViewOptions); + } + !result && await callback?.(false, invalidFields); + return shouldThrow && Promise.reject(invalidFields); + } + }; + const scrollToField = (prop) => { + const field = getField(prop); + if (field) field.$el?.scrollIntoView(props.scrollIntoViewOptions); + }; + (0, vue.watch)(() => props.rules, () => { + if (props.validateOnRuleChange) validate().catch((err) => /* @__PURE__ */ debugWarn(err)); + }, { + deep: true, + flush: "post" + }); + (0, vue.provide)(formContextKey, (0, vue.reactive)({ + ...(0, vue.toRefs)(props), + emit, + resetFields, + clearValidate, + validateField, + getField, + addField, + removeField, + setInitialValues, + ...useFormLabelWidth() + })); + __expose({ + validate, + validateField, + resetFields, + clearValidate, + scrollToField, + getField, + fields, + setInitialValues + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("form", { + ref_key: "formRef", + ref: formRef, + class: (0, vue.normalizeClass)(formClasses.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/form/src/form.vue + var form_default = form_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/form/src/form-item.ts + const formItemValidateStates = [ + "", + "error", + "validating", + "success" + ]; + /** + * @deprecated Removed after 3.0.0, Use `FormItemProps` instead. + */ + const formItemProps = buildProps({ + label: String, + labelWidth: { type: [String, Number] }, + labelPosition: { + type: String, + values: [ + "left", + "right", + "top", + "" + ], + default: "" + }, + prop: { type: definePropType([String, Array]) }, + required: { + type: Boolean, + default: void 0 + }, + rules: { type: definePropType([Object, Array]) }, + error: String, + validateStatus: { + type: String, + values: formItemValidateStates + }, + for: String, + inlineMessage: { + type: Boolean, + default: void 0 + }, + showMessage: { + type: Boolean, + default: true + }, + size: { + type: String, + values: componentSizes + } + }); + +//#endregion +//#region ../../node_modules/.pnpm/async-validator@4.2.5_patch_hash=cc6d77b35ed2a1683012935ca9ed998d418912785fcf78c6497d3268ac596d23/node_modules/async-validator/dist-web/index.js + function _extends() { + _extends = Object.assign ? Object.assign.bind() : function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key]; + } + return target; + }; + return _extends.apply(this, arguments); + } + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + _setPrototypeOf(subClass, superClass); + } + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); + } + function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {})); + return true; + } catch (e) { + return false; + } + } + function _construct(Parent, args, Class) { + if (_isNativeReflectConstruct()) _construct = Reflect.construct.bind(); + else _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var instance = new (Function.bind.apply(Parent, a))(); + if (Class) _setPrototypeOf(instance, Class.prototype); + return instance; + }; + return _construct.apply(null, arguments); + } + function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; + } + function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? /* @__PURE__ */ new Map() : void 0; + _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !_isNativeFunction(Class)) return Class; + if (typeof Class !== "function") throw new TypeError("Super expression must either be null or a function"); + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + _cache.set(Class, Wrapper); + } + function Wrapper() { + return _construct(Class, arguments, _getPrototypeOf(this).constructor); + } + Wrapper.prototype = Object.create(Class.prototype, { constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } }); + return _setPrototypeOf(Wrapper, Class); + }; + return _wrapNativeSuper(Class); + } + var formatRegExp = /%[sdj%]/g; + var warning = function warning() {}; + if (typeof process !== "undefined" && process.env && false); + function convertFieldsError(errors) { + if (!errors || !errors.length) return null; + var fields = {}; + errors.forEach(function(error) { + var field = error.field; + fields[field] = fields[field] || []; + fields[field].push(error); + }); + return fields; + } + function format(template) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) args[_key - 1] = arguments[_key]; + var i = 0; + var len = args.length; + if (typeof template === "function") return template.apply(null, args); + if (typeof template === "string") return template.replace(formatRegExp, function(x) { + if (x === "%%") return "%"; + if (i >= len) return x; + switch (x) { + case "%s": return String(args[i++]); + case "%d": return Number(args[i++]); + case "%j": + try { + return JSON.stringify(args[i++]); + } catch (_) { + return "[Circular]"; + } + break; + default: return x; + } + }); + return template; + } + function isNativeStringType(type) { + return type === "string" || type === "url" || type === "hex" || type === "email" || type === "date" || type === "pattern"; + } + function isEmptyValue(value, type) { + if (value === void 0 || value === null) return true; + if (type === "array" && Array.isArray(value) && !value.length) return true; + if (isNativeStringType(type) && typeof value === "string" && !value) return true; + return false; + } + function asyncParallelArray(arr, func, callback) { + var results = []; + var total = 0; + var arrLength = arr.length; + function count(errors) { + results.push.apply(results, errors || []); + total++; + if (total === arrLength) callback(results); + } + arr.forEach(function(a) { + func(a, count); + }); + } + function asyncSerialArray(arr, func, callback) { + var index = 0; + var arrLength = arr.length; + function next(errors) { + if (errors && errors.length) { + callback(errors); + return; + } + var original = index; + index = index + 1; + if (original < arrLength) func(arr[original], next); + else callback([]); + } + next([]); + } + function flattenObjArr(objArr) { + var ret = []; + Object.keys(objArr).forEach(function(k) { + ret.push.apply(ret, objArr[k] || []); + }); + return ret; + } + var AsyncValidationError = /* @__PURE__ */ function(_Error) { + _inheritsLoose(AsyncValidationError, _Error); + function AsyncValidationError(errors, fields) { + var _this = _Error.call(this, "Async Validation Error") || this; + _this.errors = errors; + _this.fields = fields; + return _this; + } + return AsyncValidationError; + }(/* @__PURE__ */ _wrapNativeSuper(Error)); + function asyncMap(objArr, option, func, callback, source) { + if (option.first) { + var _pending = new Promise(function(resolve, reject) { + asyncSerialArray(flattenObjArr(objArr), func, function next(errors) { + callback(errors); + return errors.length ? reject(new AsyncValidationError(errors, convertFieldsError(errors))) : resolve(source); + }); + }); + _pending["catch"](function(e) { + return e; + }); + return _pending; + } + var firstFields = option.firstFields === true ? Object.keys(objArr) : option.firstFields || []; + var objArrKeys = Object.keys(objArr); + var objArrLength = objArrKeys.length; + var total = 0; + var results = []; + var pending = new Promise(function(resolve, reject) { + var next = function next(errors) { + results.push.apply(results, errors); + total++; + if (total === objArrLength) { + callback(results); + return results.length ? reject(new AsyncValidationError(results, convertFieldsError(results))) : resolve(source); + } + }; + if (!objArrKeys.length) { + callback(results); + resolve(source); + } + objArrKeys.forEach(function(key) { + var arr = objArr[key]; + if (firstFields.indexOf(key) !== -1) asyncSerialArray(arr, func, next); + else asyncParallelArray(arr, func, next); + }); + }); + pending["catch"](function(e) { + return e; + }); + return pending; + } + function isErrorObj(obj) { + return !!(obj && obj.message !== void 0); + } + function getValue(value, path) { + var v = value; + for (var i = 0; i < path.length; i++) { + if (v == void 0) return v; + v = v[path[i]]; + } + return v; + } + function complementError(rule, source) { + return function(oe) { + var fieldValue; + if (rule.fullFields) fieldValue = getValue(source, rule.fullFields); + else fieldValue = source[oe.field || rule.fullField]; + if (isErrorObj(oe)) { + oe.field = oe.field || rule.fullField; + oe.fieldValue = fieldValue; + return oe; + } + return { + message: typeof oe === "function" ? oe() : oe, + fieldValue, + field: oe.field || rule.fullField + }; + }; + } + function deepMerge(target, source) { + if (source) { + for (var s in source) if (source.hasOwnProperty(s)) { + var value = source[s]; + if (typeof value === "object" && typeof target[s] === "object") target[s] = _extends({}, target[s], value); + else target[s] = value; + } + } + return target; + } + var required$1 = function required(rule, value, source, errors, options, type) { + if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type || rule.type))) errors.push(format(options.messages.required, rule.fullField)); + }; + /** + * Rule for validating whitespace. + * + * @param rule The validation rule. + * @param value The value of the field on the source object. + * @param source The source object being validated. + * @param errors An array of errors that this rule may add + * validation errors to. + * @param options The validation options. + * @param options.messages The validation messages. + */ + var whitespace = function whitespace(rule, value, source, errors, options) { + if (/^\s+$/.test(value) || value === "") errors.push(format(options.messages.whitespace, rule.fullField)); + }; + var urlReg; + var getUrlRegex = (function() { + if (urlReg) return urlReg; + var word = "[a-fA-F\\d:]"; + var b = function b(options) { + return options && options.includeBoundaries ? "(?:(?<=\\s|^)(?=" + word + ")|(?<=" + word + ")(?=\\s|$))" : ""; + }; + var v4 = "(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}"; + var v6seg = "[a-fA-F\\d]{1,4}"; + var v6 = ("\n(?:\n(?:" + v6seg + ":){7}(?:" + v6seg + "|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:" + v6seg + ":){6}(?:" + v4 + "|:" + v6seg + "|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:" + v6seg + ":){5}(?::" + v4 + "|(?::" + v6seg + "){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:" + v6seg + ":){4}(?:(?::" + v6seg + "){0,1}:" + v4 + "|(?::" + v6seg + "){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:" + v6seg + ":){3}(?:(?::" + v6seg + "){0,2}:" + v4 + "|(?::" + v6seg + "){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:" + v6seg + ":){2}(?:(?::" + v6seg + "){0,3}:" + v4 + "|(?::" + v6seg + "){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:" + v6seg + ":){1}(?:(?::" + v6seg + "){0,4}:" + v4 + "|(?::" + v6seg + "){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::" + v6seg + "){0,5}:" + v4 + "|(?::" + v6seg + "){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n").replace(/\s*\/\/.*$/gm, "").replace(/\n/g, "").trim(); + var v46Exact = new RegExp("(?:^" + v4 + "$)|(?:^" + v6 + "$)"); + var v4exact = new RegExp("^" + v4 + "$"); + var v6exact = new RegExp("^" + v6 + "$"); + var ip = function ip(options) { + return options && options.exact ? v46Exact : new RegExp("(?:" + b(options) + v4 + b(options) + ")|(?:" + b(options) + v6 + b(options) + ")", "g"); + }; + ip.v4 = function(options) { + return options && options.exact ? v4exact : new RegExp("" + b(options) + v4 + b(options), "g"); + }; + ip.v6 = function(options) { + return options && options.exact ? v6exact : new RegExp("" + b(options) + v6 + b(options), "g"); + }; + var protocol = "(?:(?:[a-z]+:)?//)"; + var auth = "(?:\\S+(?::\\S*)?@)?"; + var ipv4 = ip.v4().source; + var ipv6 = ip.v6().source; + var regex = "(?:" + protocol + "|www\\.)" + auth + "(?:localhost|" + ipv4 + "|" + ipv6 + "|(?:(?:[a-z\\u00a1-\\uffff0-9][-_]*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))(?::\\d{2,5})?(?:[/?#][^\\s\"]*)?"; + urlReg = new RegExp("(?:^" + regex + "$)", "i"); + return urlReg; + }); + var pattern$2 = { + email: /^(([^<>()\[\]\\.,;:\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 + }; + var types = { + integer: function integer(value) { + return types.number(value) && parseInt(value, 10) === value; + }, + "float": function float(value) { + return types.number(value) && !types.integer(value); + }, + array: function array(value) { + return Array.isArray(value); + }, + regexp: function regexp(value) { + if (value instanceof RegExp) return true; + try { + return !!new RegExp(value); + } catch (e) { + return false; + } + }, + date: function date(value) { + return typeof value.getTime === "function" && typeof value.getMonth === "function" && typeof value.getYear === "function" && !isNaN(value.getTime()); + }, + number: function number(value) { + if (isNaN(value)) return false; + return typeof value === "number"; + }, + object: function object(value) { + return typeof value === "object" && !types.array(value); + }, + method: function method(value) { + return typeof value === "function"; + }, + email: function email(value) { + return typeof value === "string" && value.length <= 320 && !!value.match(pattern$2.email); + }, + url: function url(value) { + return typeof value === "string" && value.length <= 2048 && !!value.match(getUrlRegex()); + }, + hex: function hex(value) { + return typeof value === "string" && !!value.match(pattern$2.hex); + } + }; + var type$1 = function type(rule, value, source, errors, options) { + if (rule.required && value === void 0) { + required$1(rule, value, source, errors, options); + return; + } + var custom = [ + "integer", + "float", + "array", + "regexp", + "object", + "method", + "email", + "number", + "date", + "url", + "hex" + ]; + var ruleType = rule.type; + if (custom.indexOf(ruleType) > -1) { + if (!types[ruleType](value)) errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type)); + } else if (ruleType && typeof value !== rule.type) errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type)); + }; + var range = function range(rule, value, source, errors, options) { + var len = typeof rule.len === "number"; + var min = typeof rule.min === "number"; + var max = typeof rule.max === "number"; + var val = value; + var key = null; + var num = typeof value === "number"; + var str = typeof value === "string"; + var arr = Array.isArray(value); + if (num) key = "number"; + else if (str) key = "string"; + else if (arr) key = "array"; + if (!key) return false; + if (arr) val = value.length; + if (str) val = value.length; + if (len) { + if (val !== rule.len) errors.push(format(options.messages[key].len, rule.fullField, rule.len)); + } else if (min && !max && val < rule.min) errors.push(format(options.messages[key].min, rule.fullField, rule.min)); + else if (max && !min && val > rule.max) errors.push(format(options.messages[key].max, rule.fullField, rule.max)); + else if (min && max && (val < rule.min || val > rule.max)) errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max)); + }; + var ENUM$1 = "enum"; + var enumerable$1 = function enumerable(rule, value, source, errors, options) { + rule[ENUM$1] = Array.isArray(rule[ENUM$1]) ? rule[ENUM$1] : []; + if (rule[ENUM$1].indexOf(value) === -1) errors.push(format(options.messages[ENUM$1], rule.fullField, rule[ENUM$1].join(", "))); + }; + var pattern$1 = function pattern(rule, value, source, errors, options) { + if (rule.pattern) { + if (rule.pattern instanceof RegExp) { + rule.pattern.lastIndex = 0; + if (!rule.pattern.test(value)) errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)); + } else if (typeof rule.pattern === "string") { + if (!new RegExp(rule.pattern).test(value)) errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)); + } + } + }; + var rules = { + required: required$1, + whitespace, + type: type$1, + range, + "enum": enumerable$1, + pattern: pattern$1 + }; + var string = function string(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value, "string") && !rule.required) return callback(); + rules.required(rule, value, source, errors, options, "string"); + if (!isEmptyValue(value, "string")) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + rules.pattern(rule, value, source, errors, options); + if (rule.whitespace === true) rules.whitespace(rule, value, source, errors, options); + } + } + callback(errors); + }; + var method = function method(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) rules.type(rule, value, source, errors, options); + } + callback(errors); + }; + var number = function number(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (value === "") value = void 0; + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); + }; + var _boolean = function _boolean(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) rules.type(rule, value, source, errors, options); + } + callback(errors); + }; + var regexp = function regexp(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (!isEmptyValue(value)) rules.type(rule, value, source, errors, options); + } + callback(errors); + }; + var integer = function integer(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); + }; + var floatFn = function floatFn(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); + }; + var array = function array(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if ((value === void 0 || value === null) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options, "array"); + if (value !== void 0 && value !== null) { + rules.type(rule, value, source, errors, options); + rules.range(rule, value, source, errors, options); + } + } + callback(errors); + }; + var object = function object(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) rules.type(rule, value, source, errors, options); + } + callback(errors); + }; + var ENUM = "enum"; + var enumerable = function enumerable(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (value !== void 0) rules[ENUM](rule, value, source, errors, options); + } + callback(errors); + }; + var pattern = function pattern(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value, "string") && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (!isEmptyValue(value, "string")) rules.pattern(rule, value, source, errors, options); + } + callback(errors); + }; + var date = function date(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value, "date") && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + if (!isEmptyValue(value, "date")) { + var dateObject; + if (value instanceof Date) dateObject = value; + else dateObject = new Date(value); + rules.type(rule, dateObject, source, errors, options); + if (dateObject) rules.range(rule, dateObject.getTime(), source, errors, options); + } + } + callback(errors); + }; + var required = function required(rule, value, callback, source, options) { + var errors = []; + var type = Array.isArray(value) ? "array" : typeof value; + rules.required(rule, value, source, errors, options, type); + callback(errors); + }; + var type = function type(rule, value, callback, source, options) { + var ruleType = rule.type; + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value, ruleType) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options, ruleType); + if (!isEmptyValue(value, ruleType)) rules.type(rule, value, source, errors, options); + } + callback(errors); + }; + var any = function any(rule, value, callback, source, options) { + var errors = []; + if (rule.required || !rule.required && source.hasOwnProperty(rule.field)) { + if (isEmptyValue(value) && !rule.required) return callback(); + rules.required(rule, value, source, errors, options); + } + callback(errors); + }; + var validators = { + string, + method, + number, + "boolean": _boolean, + regexp, + integer, + "float": floatFn, + array, + object, + "enum": enumerable, + pattern, + date, + url: type, + hex: type, + email: type, + required, + any + }; + function newMessages() { + 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 clone() { + var cloned = JSON.parse(JSON.stringify(this)); + cloned.clone = this.clone; + return cloned; + } + }; + } + var messages = newMessages(); + /** + * Encapsulates a validation schema. + * + * @param descriptor An object declaring validation rules + * for this schema. + */ + var Schema = /* @__PURE__ */ function() { + function Schema(descriptor) { + this.rules = null; + this._messages = messages; + this.define(descriptor); + } + var _proto = Schema.prototype; + _proto.define = function define(rules) { + var _this = this; + if (!rules) throw new Error("Cannot configure a schema with no rules"); + if (typeof rules !== "object" || Array.isArray(rules)) throw new Error("Rules must be an object"); + this.rules = {}; + Object.keys(rules).forEach(function(name) { + var item = rules[name]; + _this.rules[name] = Array.isArray(item) ? item : [item]; + }); + }; + _proto.messages = function messages(_messages) { + if (_messages) this._messages = deepMerge(newMessages(), _messages); + return this._messages; + }; + _proto.validate = function validate(source_, o, oc) { + var _this2 = this; + if (o === void 0) o = {}; + if (oc === void 0) oc = function oc() {}; + var source = source_; + var options = o; + var callback = oc; + if (typeof options === "function") { + callback = options; + options = {}; + } + if (!this.rules || Object.keys(this.rules).length === 0) { + if (callback) callback(null, source); + return Promise.resolve(source); + } + function complete(results) { + var errors = []; + var fields = {}; + function add(e) { + if (Array.isArray(e)) { + var _errors; + errors = (_errors = errors).concat.apply(_errors, e); + } else errors.push(e); + } + for (var i = 0; i < results.length; i++) add(results[i]); + if (!errors.length) callback(null, source); + else { + fields = convertFieldsError(errors); + callback(errors, fields); + } + } + if (options.messages) { + var messages$1 = this.messages(); + if (messages$1 === messages) messages$1 = newMessages(); + deepMerge(messages$1, options.messages); + options.messages = messages$1; + } else options.messages = this.messages(); + var series = {}; + (options.keys || Object.keys(this.rules)).forEach(function(z) { + var arr = _this2.rules[z]; + var value = source[z]; + arr.forEach(function(r) { + var rule = r; + if (typeof rule.transform === "function") { + if (source === source_) source = _extends({}, source); + value = source[z] = rule.transform(value); + } + if (typeof rule === "function") rule = { validator: rule }; + else rule = _extends({}, rule); + rule.validator = _this2.getValidationMethod(rule); + if (!rule.validator) return; + rule.field = z; + rule.fullField = rule.fullField || z; + rule.type = _this2.getType(rule); + series[z] = series[z] || []; + series[z].push({ + rule, + value, + source, + field: z + }); + }); + }); + var errorFields = {}; + return asyncMap(series, options, function(data, doIt) { + var rule = data.rule; + var deep = (rule.type === "object" || rule.type === "array") && (typeof rule.fields === "object" || typeof rule.defaultField === "object"); + deep = deep && (rule.required || !rule.required && data.value); + rule.field = data.field; + function addFullField(key, schema) { + return _extends({}, schema, { + fullField: rule.fullField + "." + key, + fullFields: rule.fullFields ? [].concat(rule.fullFields, [key]) : [key] + }); + } + function cb(e) { + if (e === void 0) e = []; + var errorList = Array.isArray(e) ? e : [e]; + if (!options.suppressWarning && errorList.length) Schema.warning("async-validator:", errorList); + if (errorList.length && rule.message !== void 0) errorList = [].concat(rule.message); + var filledErrors = errorList.map(complementError(rule, source)); + if (options.first && filledErrors.length) { + errorFields[rule.field] = 1; + return doIt(filledErrors); + } + if (!deep) doIt(filledErrors); + else { + if (rule.required && !data.value) { + if (rule.message !== void 0) filledErrors = [].concat(rule.message).map(complementError(rule, source)); + else if (options.error) filledErrors = [options.error(rule, format(options.messages.required, rule.field))]; + return doIt(filledErrors); + } + var fieldsSchema = {}; + if (rule.defaultField) Object.keys(data.value).map(function(key) { + fieldsSchema[key] = rule.defaultField; + }); + fieldsSchema = _extends({}, fieldsSchema, data.rule.fields); + var paredFieldsSchema = {}; + Object.keys(fieldsSchema).forEach(function(field) { + var fieldSchema = fieldsSchema[field]; + paredFieldsSchema[field] = (Array.isArray(fieldSchema) ? fieldSchema : [fieldSchema]).map(addFullField.bind(null, field)); + }); + var schema = new Schema(paredFieldsSchema); + schema.messages(options.messages); + if (data.rule.options) { + data.rule.options.messages = options.messages; + data.rule.options.error = options.error; + } + schema.validate(data.value, data.rule.options || options, function(errs) { + var finalErrors = []; + if (filledErrors && filledErrors.length) finalErrors.push.apply(finalErrors, filledErrors); + if (errs && errs.length) finalErrors.push.apply(finalErrors, errs); + doIt(finalErrors.length ? finalErrors : null); + }); + } + } + var res; + if (rule.asyncValidator) res = rule.asyncValidator(rule, data.value, cb, data.source, options); + else if (rule.validator) { + try { + res = rule.validator(rule, data.value, cb, data.source, options); + } catch (error) { + console.error == null || console.error(error); + if (!options.suppressValidatorError) setTimeout(function() { + throw error; + }, 0); + cb(error.message); + } + if (res === true) cb(); + else if (res === false) cb(typeof rule.message === "function" ? rule.message(rule.fullField || rule.field) : rule.message || (rule.fullField || rule.field) + " fails"); + else if (res instanceof Array) cb(res); + else if (res instanceof Error) cb(res.message); + } + if (res && res.then) res.then(function() { + return cb(); + }, function(e) { + return cb(e); + }); + }, function(results) { + complete(results); + }, source); + }; + _proto.getType = function getType(rule) { + if (rule.type === void 0 && rule.pattern instanceof RegExp) rule.type = "pattern"; + if (typeof rule.validator !== "function" && rule.type && !validators.hasOwnProperty(rule.type)) throw new Error(format("Unknown rule type %s", rule.type)); + return rule.type || "string"; + }; + _proto.getValidationMethod = function getValidationMethod(rule) { + if (typeof rule.validator === "function") return rule.validator; + var keys = Object.keys(rule); + var messageIndex = keys.indexOf("message"); + if (messageIndex !== -1) keys.splice(messageIndex, 1); + if (keys.length === 1 && keys[0] === "required") return validators.required; + return validators[this.getType(rule)] || void 0; + }; + return Schema; + }(); + Schema.register = function register(type, validator) { + if (typeof validator !== "function") throw new Error("Cannot register a validator by type, validator is not a function"); + validators[type] = validator; + }; + Schema.warning = warning; + Schema.messages = messages; + Schema.validators = validators; + +//#endregion +//#region ../../packages/components/form/src/form-label-wrap.tsx + const COMPONENT_NAME$20 = "ElLabelWrap"; + var form_label_wrap_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$20, + props: { + isAutoWidth: Boolean, + updateAll: Boolean + }, + setup(props, { slots }) { + const formContext = (0, vue.inject)(formContextKey, void 0); + const formItemContext = (0, vue.inject)(formItemContextKey); + if (!formItemContext) throwError(COMPONENT_NAME$20, "usage: "); + const ns = useNamespace("form"); + const el = (0, vue.ref)(); + const computedWidth = (0, vue.ref)(0); + const getLabelWidth = () => { + if (el.value?.firstElementChild) { + const width = window.getComputedStyle(el.value.firstElementChild).width; + return Math.ceil(Number.parseFloat(width)); + } else return 0; + }; + const updateLabelWidth = (action = "update") => { + (0, vue.nextTick)(() => { + if (slots.default && props.isAutoWidth) { + if (action === "update") computedWidth.value = getLabelWidth(); + else if (action === "remove") formContext?.deregisterLabelWidth(computedWidth.value); + } + }); + }; + const updateLabelWidthFn = () => updateLabelWidth("update"); + (0, vue.onMounted)(() => { + updateLabelWidthFn(); + }); + (0, vue.onBeforeUnmount)(() => { + updateLabelWidth("remove"); + }); + (0, vue.onUpdated)(() => updateLabelWidthFn()); + (0, vue.watch)(computedWidth, (val, oldVal) => { + if (props.updateAll) formContext?.registerLabelWidth(val, oldVal); + }); + useResizeObserver((0, vue.computed)(() => el.value?.firstElementChild ?? null), updateLabelWidthFn); + return () => { + if (!slots) return null; + const { isAutoWidth } = props; + if (isAutoWidth) { + const autoLabelWidth = formContext?.autoLabelWidth; + const hasLabel = formItemContext?.hasLabel; + const style = {}; + if (hasLabel && autoLabelWidth && autoLabelWidth !== "auto") { + const marginWidth = Math.max(0, Number.parseInt(autoLabelWidth, 10) - computedWidth.value); + const marginPosition = (formItemContext.labelPosition || formContext.labelPosition) === "left" ? "marginRight" : "marginLeft"; + if (marginWidth) style[marginPosition] = `${marginWidth}px`; + } + return (0, vue.createVNode)("div", { + "ref": el, + "class": [ns.be("item", "label-wrap")], + "style": style + }, [slots.default?.()]); + } else return (0, vue.createVNode)(vue.Fragment, { "ref": el }, [slots.default?.()]); + }; + } + }); + +//#endregion +//#region ../../packages/components/form/src/form-item.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$78 = ["role", "aria-labelledby"]; + var form_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElFormItem", + __name: "form-item", + props: formItemProps, + setup(__props, { expose: __expose }) { + const props = __props; + const slots = (0, vue.useSlots)(); + const formContext = (0, vue.inject)(formContextKey, void 0); + const parentFormItemContext = (0, vue.inject)(formItemContextKey, void 0); + const _size = useFormSize(void 0, { formItem: false }); + const ns = useNamespace("form-item"); + const labelId = useId().value; + const inputIds = (0, vue.ref)([]); + const validateState = (0, vue.ref)(""); + const validateStateDebounced = refDebounced(validateState, 100); + const validateMessage = (0, vue.ref)(""); + const formItemRef = (0, vue.ref)(); + let initialValue = void 0; + let isResettingField = false; + const labelPosition = (0, vue.computed)(() => props.labelPosition || formContext?.labelPosition); + const labelStyle = (0, vue.computed)(() => { + if (labelPosition.value === "top") return {}; + return { width: addUnit(props.labelWidth ?? formContext?.labelWidth) }; + }); + const contentStyle = (0, vue.computed)(() => { + if (labelPosition.value === "top" || formContext?.inline) return {}; + if (!props.label && !props.labelWidth && isNested) return {}; + const labelWidth = addUnit(props.labelWidth ?? formContext?.labelWidth); + if (!props.label && !slots.label) return { marginLeft: labelWidth }; + return {}; + }); + const formItemClasses = (0, vue.computed)(() => [ + ns.b(), + ns.m(_size.value), + ns.is("error", validateState.value === "error"), + ns.is("validating", validateState.value === "validating"), + ns.is("success", validateState.value === "success"), + ns.is("required", isRequired.value || props.required), + ns.is("no-asterisk", formContext?.hideRequiredAsterisk), + formContext?.requireAsteriskPosition === "right" ? "asterisk-right" : "asterisk-left", + { + [ns.m("feedback")]: formContext?.statusIcon, + [ns.m(`label-${labelPosition.value}`)]: labelPosition.value + } + ]); + const _inlineMessage = (0, vue.computed)(() => isBoolean(props.inlineMessage) ? props.inlineMessage : formContext?.inlineMessage || false); + const validateClasses = (0, vue.computed)(() => [ns.e("error"), { [ns.em("error", "inline")]: _inlineMessage.value }]); + const propString = (0, vue.computed)(() => { + if (!props.prop) return ""; + return isArray$1(props.prop) ? props.prop.join(".") : props.prop; + }); + const hasLabel = (0, vue.computed)(() => { + return !!(props.label || slots.label); + }); + const labelFor = (0, vue.computed)(() => { + return props.for ?? (inputIds.value.length === 1 ? inputIds.value[0] : void 0); + }); + const isGroup = (0, vue.computed)(() => { + return !labelFor.value && hasLabel.value; + }); + const isNested = !!parentFormItemContext; + const fieldValue = (0, vue.computed)(() => { + const model = formContext?.model; + if (!model || !props.prop) return; + return getProp(model, props.prop).value; + }); + const normalizedRules = (0, vue.computed)(() => { + const { required } = props; + const rules = []; + if (props.rules) rules.push(...castArray$1(props.rules)); + const formRules = formContext?.rules; + if (formRules && props.prop) { + const _rules = getProp(formRules, props.prop).value; + if (_rules) rules.push(...castArray$1(_rules)); + } + if (required !== void 0) { + const requiredRules = rules.map((rule, i) => [rule, i]).filter(([rule]) => "required" in rule); + if (requiredRules.length > 0) for (const [rule, i] of requiredRules) { + if (rule.required === required) continue; + rules[i] = { + ...rule, + required + }; + } + else rules.push({ required }); + } + return rules; + }); + const validateEnabled = (0, vue.computed)(() => normalizedRules.value.length > 0); + const getFilteredRule = (trigger) => { + return normalizedRules.value.filter((rule) => { + if (!rule.trigger || !trigger) return true; + if (isArray$1(rule.trigger)) return rule.trigger.includes(trigger); + else return rule.trigger === trigger; + }).map(({ trigger, ...rule }) => rule); + }; + const isRequired = (0, vue.computed)(() => normalizedRules.value.some((rule) => rule.required)); + const shouldShowError = (0, vue.computed)(() => validateStateDebounced.value === "error" && props.showMessage && (formContext?.showMessage ?? true)); + const currentLabel = (0, vue.computed)(() => `${props.label || ""}${formContext?.labelSuffix || ""}`); + const setValidationState = (state) => { + validateState.value = state; + }; + const onValidationFailed = (error) => { + const { errors, fields } = error; + if (!errors || !fields) console.error(error); + setValidationState("error"); + validateMessage.value = errors ? errors?.[0]?.message ?? `${props.prop} is required` : ""; + formContext?.emit("validate", props.prop, false, validateMessage.value); + }; + const onValidationSucceeded = () => { + setValidationState("success"); + formContext?.emit("validate", props.prop, true, ""); + }; + const doValidate = async (rules) => { + const modelName = propString.value; + return new Schema({ [modelName]: rules }).validate({ [modelName]: fieldValue.value }, { firstFields: true }).then(() => { + onValidationSucceeded(); + return true; + }).catch((err) => { + onValidationFailed(err); + return Promise.reject(err); + }); + }; + const validate = async (trigger, callback) => { + if (isResettingField || !props.prop) return false; + const hasCallback = isFunction$1(callback); + if (!validateEnabled.value) { + callback?.(false); + return false; + } + const rules = getFilteredRule(trigger); + if (rules.length === 0) { + callback?.(true); + return true; + } + setValidationState("validating"); + return doValidate(rules).then(() => { + callback?.(true); + return true; + }).catch((err) => { + const { fields } = err; + callback?.(false, fields); + return hasCallback ? false : Promise.reject(fields); + }); + }; + const clearValidate = () => { + setValidationState(""); + validateMessage.value = ""; + isResettingField = false; + }; + const resetField = async () => { + const model = formContext?.model; + if (!model || !props.prop) return; + const computedValue = getProp(model, props.prop); + isResettingField = true; + computedValue.value = cloneDeep(initialValue); + await (0, vue.nextTick)(); + clearValidate(); + isResettingField = false; + }; + const addInputId = (id) => { + if (!inputIds.value.includes(id)) inputIds.value.push(id); + }; + const removeInputId = (id) => { + inputIds.value = inputIds.value.filter((listId) => listId !== id); + }; + const setInitialValue = (value) => { + initialValue = cloneDeep(value); + }; + const getInitialValue = () => initialValue; + (0, vue.watch)(() => props.error, (val) => { + validateMessage.value = val || ""; + setValidationState(val ? "error" : ""); + }, { immediate: true }); + (0, vue.watch)(() => props.validateStatus, (val) => setValidationState(val || "")); + const context = (0, vue.reactive)({ + ...(0, vue.toRefs)(props), + $el: formItemRef, + size: _size, + validateMessage, + validateState, + labelId, + inputIds, + isGroup, + hasLabel, + fieldValue, + addInputId, + removeInputId, + resetField, + clearValidate, + validate, + propString, + setInitialValue, + getInitialValue + }); + (0, vue.provide)(formItemContextKey, context); + (0, vue.watch)(propString, (newPropString, oldPropString) => { + if (!formContext || !oldPropString) return; + formContext.removeField(context, oldPropString); + if (newPropString) { + setInitialValue(fieldValue.value); + formContext.addField(context); + } + }); + (0, vue.onMounted)(() => { + if (props.prop) { + setInitialValue(fieldValue.value); + formContext?.addField(context); + } + }); + (0, vue.onBeforeUnmount)(() => { + formContext?.removeField(context); + }); + __expose({ + size: _size, + validateMessage, + validateState, + validate, + clearValidate, + resetField, + setInitialValue + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "formItemRef", + ref: formItemRef, + class: (0, vue.normalizeClass)(formItemClasses.value), + role: isGroup.value ? "group" : void 0, + "aria-labelledby": isGroup.value ? (0, vue.unref)(labelId) : void 0 + }, [(0, vue.createVNode)((0, vue.unref)(form_label_wrap_default), { + "is-auto-width": labelStyle.value.width === "auto", + "update-all": (0, vue.unref)(formContext)?.labelWidth === "auto" + }, { + default: (0, vue.withCtx)(() => [!!(__props.label || _ctx.$slots.label) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(labelFor.value ? "label" : "div"), { + key: 0, + id: (0, vue.unref)(labelId), + for: labelFor.value, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("label")), + style: (0, vue.normalizeStyle)(labelStyle.value) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "label", { label: currentLabel.value }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(currentLabel.value), 1)])]), + _: 3 + }, 8, [ + "id", + "for", + "class", + "style" + ])) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, ["is-auto-width", "update-all"]), (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")), + style: (0, vue.normalizeStyle)(contentStyle.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "default"), (0, vue.createVNode)(vue.TransitionGroup, { name: `${(0, vue.unref)(ns).namespace.value}-zoom-in-top` }, { + default: (0, vue.withCtx)(() => [shouldShowError.value ? (0, vue.renderSlot)(_ctx.$slots, "error", { + key: 0, + error: validateMessage.value + }, () => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(validateClasses.value) }, (0, vue.toDisplayString)(validateMessage.value), 3)]) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, ["name"])], 6)], 10, _hoisted_1$78); + }; + } + }); + +//#endregion +//#region ../../packages/components/form/src/form-item.vue + var form_item_default = form_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/form/index.ts + const ElForm = withInstall(form_default, { FormItem: form_item_default }); + const ElFormItem = withNoopInstall(form_item_default); + +//#endregion +//#region ../../packages/components/popper/src/utils.ts + const buildPopperOptions = (props, modifiers = []) => { + const { placement, strategy, popperOptions } = props; + const options = { + placement, + strategy, + ...popperOptions, + modifiers: [...genModifiers(props), ...modifiers] + }; + deriveExtraModifiers(options, popperOptions?.modifiers); + return options; + }; + const unwrapMeasurableEl = ($el) => { + if (!isClient) return; + return unrefElement($el); + }; + function genModifiers(options) { + const { offset, gpuAcceleration, fallbackPlacements } = options; + return [ + { + name: "offset", + options: { offset: [0, offset ?? 12] } + }, + { + name: "preventOverflow", + options: { padding: { + top: 0, + bottom: 0, + left: 0, + right: 0 + } } + }, + { + name: "flip", + options: { + padding: 5, + fallbackPlacements + } + }, + { + name: "computeStyles", + options: { gpuAcceleration } + } + ]; + } + function deriveExtraModifiers(options, modifiers) { + if (modifiers) options.modifiers = [...options.modifiers, ...modifiers ?? []]; + } + +//#endregion +//#region ../../packages/components/popper/src/composables/use-content.ts + const DEFAULT_ARROW_OFFSET = 0; + const usePopperContent = (props) => { + const { popperInstanceRef, contentRef, triggerRef, role } = (0, vue.inject)(POPPER_INJECTION_KEY, void 0); + const arrowRef = (0, vue.ref)(); + const arrowOffset = (0, vue.computed)(() => props.arrowOffset); + const eventListenerModifier = (0, vue.computed)(() => { + return { + name: "eventListeners", + enabled: !!props.visible + }; + }); + const arrowModifier = (0, vue.computed)(() => { + const arrowEl = (0, vue.unref)(arrowRef); + const offset = (0, vue.unref)(arrowOffset) ?? DEFAULT_ARROW_OFFSET; + return { + name: "arrow", + enabled: !isUndefined$1(arrowEl), + options: { + element: arrowEl, + padding: offset + } + }; + }); + const options = (0, vue.computed)(() => { + return { + onFirstUpdate: () => { + update(); + }, + ...buildPopperOptions(props, [(0, vue.unref)(arrowModifier), (0, vue.unref)(eventListenerModifier)]) + }; + }); + const computedReference = (0, vue.computed)(() => unwrapMeasurableEl(props.referenceEl) || (0, vue.unref)(triggerRef)); + const { attributes, state, styles, update, forceUpdate, instanceRef } = usePopper(computedReference, contentRef, options); + (0, vue.watch)(instanceRef, (instance) => popperInstanceRef.value = instance, { flush: "sync" }); + (0, vue.onMounted)(() => { + (0, vue.watch)(() => (0, vue.unref)(computedReference)?.getBoundingClientRect?.(), () => { + update(); + }); + }); + let stopResizeObserver; + (0, vue.watch)(() => props.visible, (visible) => { + stopResizeObserver?.(); + stopResizeObserver = void 0; + if (visible) stopResizeObserver = useResizeObserver(contentRef, update).stop; + }); + (0, vue.onBeforeUnmount)(() => { + popperInstanceRef.value = void 0; + stopResizeObserver?.(); + stopResizeObserver = void 0; + }); + return { + attributes, + arrowRef, + contentRef, + instanceRef, + state, + styles, + role, + forceUpdate, + update + }; + }; + +//#endregion +//#region ../../packages/components/popper/src/composables/use-content-dom.ts + const usePopperContentDOM = (props, { attributes, styles, role }) => { + const { nextZIndex } = useZIndex(); + const ns = useNamespace("popper"); + const contentAttrs = (0, vue.computed)(() => (0, vue.unref)(attributes).popper); + const contentZIndex = (0, vue.ref)(isNumber(props.zIndex) ? props.zIndex : nextZIndex()); + const contentClass = (0, vue.computed)(() => [ + ns.b(), + ns.is("pure", props.pure), + ns.is(props.effect), + props.popperClass + ]); + const contentStyle = (0, vue.computed)(() => { + return [ + { zIndex: (0, vue.unref)(contentZIndex) }, + (0, vue.unref)(styles).popper, + props.popperStyle || {} + ]; + }); + const ariaModal = (0, vue.computed)(() => role.value === "dialog" ? "false" : void 0); + const arrowStyle = (0, vue.computed)(() => (0, vue.unref)(styles).arrow || {}); + const updateZIndex = () => { + contentZIndex.value = isNumber(props.zIndex) ? props.zIndex : nextZIndex(); + }; + return { + ariaModal, + arrowStyle, + contentAttrs, + contentClass, + contentStyle, + contentZIndex, + updateZIndex + }; + }; + +//#endregion +//#region ../../packages/components/popper/src/composables/use-focus-trap.ts + const usePopperContentFocusTrap = (props, emit) => { + const trapped = (0, vue.ref)(false); + const focusStartRef = (0, vue.ref)(); + const onFocusAfterTrapped = () => { + emit("focus"); + }; + const onFocusAfterReleased = (event) => { + if (event.detail?.focusReason !== "pointer") { + focusStartRef.value = "first"; + emit("blur"); + } + }; + const onFocusInTrap = (event) => { + if (props.visible && !trapped.value) { + if (event.target) focusStartRef.value = event.target; + trapped.value = true; + } + }; + const onFocusoutPrevented = (event) => { + if (!props.trapping) { + if (event.detail.focusReason === "pointer") event.preventDefault(); + trapped.value = false; + } + }; + const onReleaseRequested = () => { + trapped.value = false; + emit("close"); + }; + (0, vue.onBeforeUnmount)(() => { + focusStartRef.value = void 0; + }); + return { + focusStartRef, + trapped, + onFocusAfterReleased, + onFocusAfterTrapped, + onFocusInTrap, + onFocusoutPrevented, + onReleaseRequested + }; + }; + +//#endregion +//#region ../../packages/components/popper/src/content.vue?vue&type=script&setup=true&lang.ts + var content_vue_vue_type_script_setup_true_lang_default$2 = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPopperContent", + __name: "content", + props: popperContentProps, + emits: popperContentEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const emit = __emit; + const props = __props; + const { focusStartRef, trapped, onFocusAfterReleased, onFocusAfterTrapped, onFocusInTrap, onFocusoutPrevented, onReleaseRequested } = usePopperContentFocusTrap(props, emit); + const { attributes, arrowRef, contentRef, styles, instanceRef, role, update } = usePopperContent(props); + const { ariaModal, arrowStyle, contentAttrs, contentClass, contentStyle, updateZIndex } = usePopperContentDOM(props, { + styles, + attributes, + role + }); + const formItemContext = (0, vue.inject)(formItemContextKey, void 0); + (0, vue.provide)(POPPER_CONTENT_INJECTION_KEY, { + arrowStyle, + arrowRef + }); + if (formItemContext) (0, vue.provide)(formItemContextKey, { + ...formItemContext, + addInputId: NOOP, + removeInputId: NOOP + }); + let triggerTargetAriaStopWatch = void 0; + const updatePopper = (shouldUpdateZIndex = true) => { + update(); + shouldUpdateZIndex && updateZIndex(); + }; + const togglePopperAlive = () => { + updatePopper(false); + if (props.visible && props.focusOnShow) trapped.value = true; + else if (props.visible === false) trapped.value = false; + }; + (0, vue.onMounted)(() => { + (0, vue.watch)(() => props.triggerTargetEl, (triggerTargetEl, prevTriggerTargetEl) => { + triggerTargetAriaStopWatch?.(); + triggerTargetAriaStopWatch = void 0; + const el = (0, vue.unref)(triggerTargetEl || contentRef.value); + const prevEl = (0, vue.unref)(prevTriggerTargetEl || contentRef.value); + if (isElement$1(el)) triggerTargetAriaStopWatch = (0, vue.watch)([ + role, + () => props.ariaLabel, + ariaModal, + () => props.id + ], (watches) => { + [ + "role", + "aria-label", + "aria-modal", + "id" + ].forEach((key, idx) => { + isNil(watches[idx]) ? el.removeAttribute(key) : el.setAttribute(key, watches[idx]); + }); + }, { immediate: true }); + if (prevEl !== el && isElement$1(prevEl)) [ + "role", + "aria-label", + "aria-modal", + "id" + ].forEach((key) => { + prevEl.removeAttribute(key); + }); + }, { immediate: true }); + (0, vue.watch)(() => props.visible, togglePopperAlive, { immediate: true }); + }); + (0, vue.onBeforeUnmount)(() => { + triggerTargetAriaStopWatch?.(); + triggerTargetAriaStopWatch = void 0; + contentRef.value = void 0; + }); + __expose({ + popperContentRef: contentRef, + popperInstanceRef: instanceRef, + updatePopper, + contentStyle + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", (0, vue.mergeProps)({ + ref_key: "contentRef", + ref: contentRef + }, (0, vue.unref)(contentAttrs), { + style: (0, vue.unref)(contentStyle), + class: (0, vue.unref)(contentClass), + tabindex: "-1", + onMouseenter: _cache[0] || (_cache[0] = (e) => _ctx.$emit("mouseenter", e)), + onMouseleave: _cache[1] || (_cache[1] = (e) => _ctx.$emit("mouseleave", e)) + }), [(0, vue.createVNode)((0, vue.unref)(focus_trap_default), { + loop: __props.loop, + trapped: (0, vue.unref)(trapped), + "trap-on-focus-in": true, + "focus-trap-el": (0, vue.unref)(contentRef), + "focus-start-el": (0, vue.unref)(focusStartRef), + onFocusAfterTrapped: (0, vue.unref)(onFocusAfterTrapped), + onFocusAfterReleased: (0, vue.unref)(onFocusAfterReleased), + onFocusin: (0, vue.unref)(onFocusInTrap), + onFocusoutPrevented: (0, vue.unref)(onFocusoutPrevented), + onReleaseRequested: (0, vue.unref)(onReleaseRequested) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, [ + "loop", + "trapped", + "focus-trap-el", + "focus-start-el", + "onFocusAfterTrapped", + "onFocusAfterReleased", + "onFocusin", + "onFocusoutPrevented", + "onReleaseRequested" + ])], 16); + }; + } + }); + +//#endregion +//#region ../../packages/components/popper/src/content.vue + var content_default = content_vue_vue_type_script_setup_true_lang_default$2; + +//#endregion +//#region ../../packages/components/popper/index.ts + const ElPopper = withInstall(popper_default); + +//#endregion +//#region ../../packages/components/tooltip/src/content.ts + const useTooltipContentPropsDefaults = { + ...useDelayedTogglePropsDefaults, + ...popperContentPropsDefaults, + content: "", + visible: null, + teleported: true + }; + /** + * @deprecated Removed after 3.0.0, Use `ElTooltipContentProps` instead. + */ + const useTooltipContentProps = buildProps({ + ...useDelayedToggleProps, + ...popperContentProps, + appendTo: { type: teleportProps.to.type }, + content: { + type: String, + default: "" + }, + rawContent: Boolean, + persistent: Boolean, + visible: { + type: definePropType(Boolean), + default: null + }, + transition: String, + teleported: { + type: Boolean, + default: true + }, + disabled: Boolean, + ...useAriaProps(["ariaLabel"]) + }); + +//#endregion +//#region ../../packages/components/tooltip/src/trigger.ts + const useTooltipTriggerPropsDefaults = { + trigger: "hover", + triggerKeys: () => [ + EVENT_CODE.enter, + EVENT_CODE.numpadEnter, + EVENT_CODE.space + ] + }; + /** + * @deprecated Removed after 3.0.0, Use `UseTooltipTriggerProps` instead. + */ + const useTooltipTriggerProps = buildProps({ + ...popperTriggerProps, + disabled: Boolean, + trigger: { + type: definePropType([String, Array]), + default: "hover" + }, + triggerKeys: { + type: definePropType(Array), + default: () => [ + EVENT_CODE.enter, + EVENT_CODE.numpadEnter, + EVENT_CODE.space + ] + }, + focusOnTarget: Boolean + }); + +//#endregion +//#region ../../packages/components/tooltip/src/tooltip.ts + const { useModelToggleProps: useTooltipModelToggleProps, useModelToggleEmits: useTooltipModelToggleEmits, useModelToggle: useTooltipModelToggle } = createModelToggleComposable("visible"); + /** + * @deprecated Removed after 3.0.0, Use `UseTooltipProps` instead. + */ + const useTooltipProps = buildProps({ + ...popperProps, + ...useTooltipModelToggleProps, + ...useTooltipContentProps, + ...useTooltipTriggerProps, + ...popperArrowProps, + showArrow: { + type: Boolean, + default: true + } + }); + const tooltipEmits = [ + ...useTooltipModelToggleEmits, + "before-show", + "before-hide", + "show", + "hide", + "open", + "close" + ]; + +//#endregion +//#region ../../packages/components/tooltip/src/constants.ts + const TOOLTIP_INJECTION_KEY = Symbol("elTooltip"); + +//#endregion +//#region ../../packages/components/tooltip/src/utils.ts + const isTriggerType = (trigger, type) => { + if (isArray$1(trigger)) return trigger.includes(type); + return trigger === type; + }; + const whenTrigger = (trigger, type, handler) => { + return (e) => { + isTriggerType((0, vue.unref)(trigger), type) && handler(e); + }; + }; + +//#endregion +//#region ../../packages/components/tooltip/src/trigger.vue?vue&type=script&setup=true&lang.ts + var trigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTooltipTrigger", + __name: "trigger", + props: useTooltipTriggerProps, + setup(__props, { expose: __expose }) { + const props = __props; + const ns = useNamespace("tooltip"); + const { controlled, id, open, onOpen, onClose, onToggle } = (0, vue.inject)(TOOLTIP_INJECTION_KEY, void 0); + const triggerRef = (0, vue.ref)(null); + const stopWhenControlledOrDisabled = () => { + if ((0, vue.unref)(controlled) || props.disabled) return true; + }; + const trigger = (0, vue.toRef)(props, "trigger"); + const onMouseenter = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "hover", (e) => { + onOpen(e); + if (props.focusOnTarget && e.target) (0, vue.nextTick)(() => { + focusElement(e.target, { preventScroll: true }); + }); + })); + const onMouseleave = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "hover", onClose)); + const onClick = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "click", (e) => { + if (e.button === 0) onToggle(e); + })); + const onFocus = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "focus", onOpen)); + const onBlur = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "focus", onClose)); + const onContextMenu = composeEventHandlers(stopWhenControlledOrDisabled, whenTrigger(trigger, "contextmenu", (e) => { + e.preventDefault(); + onToggle(e); + })); + const onKeydown = composeEventHandlers(stopWhenControlledOrDisabled, (e) => { + const code = getEventCode(e); + if (props.triggerKeys.includes(code)) { + e.preventDefault(); + onToggle(e); + } + }); + __expose({ triggerRef }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(trigger_default), { + id: (0, vue.unref)(id), + "virtual-ref": __props.virtualRef, + open: (0, vue.unref)(open), + "virtual-triggering": __props.virtualTriggering, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("trigger")), + onBlur: (0, vue.unref)(onBlur), + onClick: (0, vue.unref)(onClick), + onContextmenu: (0, vue.unref)(onContextMenu), + onFocus: (0, vue.unref)(onFocus), + onMouseenter: (0, vue.unref)(onMouseenter), + onMouseleave: (0, vue.unref)(onMouseleave), + onKeydown: (0, vue.unref)(onKeydown) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, [ + "id", + "virtual-ref", + "open", + "virtual-triggering", + "class", + "onBlur", + "onClick", + "onContextmenu", + "onFocus", + "onMouseenter", + "onMouseleave", + "onKeydown" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tooltip/src/trigger.vue + var trigger_default$1 = trigger_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tooltip/src/content.vue?vue&type=script&setup=true&lang.ts + var content_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTooltipContent", + inheritAttrs: false, + __name: "content", + props: useTooltipContentProps, + setup(__props, { expose: __expose }) { + const props = __props; + const { selector } = usePopperContainerId(); + const ns = useNamespace("tooltip"); + const contentRef = (0, vue.ref)(); + const popperContentRef = computedEager(() => contentRef.value?.popperContentRef); + let stopHandle; + const { controlled, id, open, trigger, onClose, onOpen, onShow, onHide, onBeforeShow, onBeforeHide } = (0, vue.inject)(TOOLTIP_INJECTION_KEY, void 0); + const transitionClass = (0, vue.computed)(() => { + return props.transition || `${ns.namespace.value}-fade-in-linear`; + }); + const persistentRef = (0, vue.computed)(() => { + return props.persistent; + }); + (0, vue.onBeforeUnmount)(() => { + stopHandle?.(); + }); + const shouldRender = (0, vue.computed)(() => { + return (0, vue.unref)(persistentRef) ? true : (0, vue.unref)(open); + }); + const shouldShow = (0, vue.computed)(() => { + return props.disabled ? false : (0, vue.unref)(open); + }); + const appendTo = (0, vue.computed)(() => { + return props.appendTo || selector.value; + }); + const contentStyle = (0, vue.computed)(() => props.style ?? {}); + const ariaHidden = (0, vue.ref)(true); + const onTransitionLeave = () => { + onHide(); + isFocusInsideContent() && focusElement(document.body, { preventScroll: true }); + ariaHidden.value = true; + }; + const stopWhenControlled = () => { + if ((0, vue.unref)(controlled)) return true; + }; + const onContentEnter = composeEventHandlers(stopWhenControlled, () => { + if (props.enterable && isTriggerType((0, vue.unref)(trigger), "hover")) onOpen(); + }); + const onContentLeave = composeEventHandlers(stopWhenControlled, () => { + if (isTriggerType((0, vue.unref)(trigger), "hover")) onClose(); + }); + const onBeforeEnter = () => { + contentRef.value?.updatePopper?.(); + onBeforeShow?.(); + }; + const onBeforeLeave = () => { + onBeforeHide?.(); + }; + const onAfterShow = () => { + onShow(); + }; + const onBlur = () => { + if (!props.virtualTriggering) onClose(); + }; + const isFocusInsideContent = (event) => { + const popperContent = contentRef.value?.popperContentRef; + const activeElement = event?.relatedTarget || document.activeElement; + return popperContent?.contains(activeElement); + }; + (0, vue.watch)(() => (0, vue.unref)(open), (val) => { + if (!val) stopHandle?.(); + else { + ariaHidden.value = false; + stopHandle = onClickOutside(popperContentRef, () => { + if ((0, vue.unref)(controlled)) return; + if (castArray((0, vue.unref)(trigger)).every((item) => { + return item !== "hover" && item !== "focus"; + })) onClose(); + }, { detectIframe: true }); + } + }, { flush: "post" }); + __expose({ + contentRef, + isFocusInsideContent + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTeleport), { + disabled: !__props.teleported, + to: appendTo.value + }, { + default: (0, vue.withCtx)(() => [shouldRender.value || !ariaHidden.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + key: 0, + name: transitionClass.value, + appear: !persistentRef.value, + onAfterLeave: onTransitionLeave, + onBeforeEnter, + onAfterEnter: onAfterShow, + onBeforeLeave, + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(content_default), (0, vue.mergeProps)({ + id: (0, vue.unref)(id), + ref_key: "contentRef", + ref: contentRef + }, _ctx.$attrs, { + "aria-label": __props.ariaLabel, + "aria-hidden": ariaHidden.value, + "boundaries-padding": __props.boundariesPadding, + "fallback-placements": __props.fallbackPlacements, + "gpu-acceleration": __props.gpuAcceleration, + offset: __props.offset, + placement: __props.placement, + "popper-options": __props.popperOptions, + "arrow-offset": __props.arrowOffset, + strategy: __props.strategy, + effect: __props.effect, + enterable: __props.enterable, + pure: __props.pure, + "popper-class": __props.popperClass, + "popper-style": [__props.popperStyle, contentStyle.value], + "reference-el": __props.referenceEl, + "trigger-target-el": __props.triggerTargetEl, + visible: shouldShow.value, + "z-index": __props.zIndex, + loop: __props.loop, + onMouseenter: (0, vue.unref)(onContentEnter), + onMouseleave: (0, vue.unref)(onContentLeave), + onBlur, + onClose: (0, vue.unref)(onClose) + }), { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$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" + ]), [[vue.vShow, shouldShow.value]])]), + _: 3 + }, 8, ["name", "appear"])) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, ["disabled", "to"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tooltip/src/content.vue + var content_default$2 = content_vue_vue_type_script_setup_true_lang_default$1; + +//#endregion +//#region ../../packages/components/tooltip/src/tooltip.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$77 = ["innerHTML"]; + const _hoisted_2$43 = { key: 1 }; + var tooltip_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTooltip", + __name: "tooltip", + props: useTooltipProps, + emits: tooltipEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + usePopperContainer(); + const ns = useNamespace("tooltip"); + const id = useId(); + const popperRef = (0, vue.ref)(); + const contentRef = (0, vue.ref)(); + const updatePopper = () => { + const popperComponent = (0, vue.unref)(popperRef); + if (popperComponent) popperComponent.popperInstanceRef?.update(); + }; + const open = (0, vue.ref)(false); + const toggleReason = (0, vue.ref)(); + const { show, hide, hasUpdateHandler } = useTooltipModelToggle({ + indicator: open, + toggleReason + }); + const { onOpen, onClose } = useDelayedToggle({ + showAfter: (0, vue.toRef)(props, "showAfter"), + hideAfter: (0, vue.toRef)(props, "hideAfter"), + autoClose: (0, vue.toRef)(props, "autoClose"), + open: show, + close: hide + }); + const controlled = (0, vue.computed)(() => isBoolean(props.visible) && !hasUpdateHandler.value); + const kls = (0, vue.computed)(() => { + return [ns.b(), props.popperClass]; + }); + (0, vue.provide)(TOOLTIP_INJECTION_KEY, { + controlled, + id, + open: (0, vue.readonly)(open), + trigger: (0, vue.toRef)(props, "trigger"), + onOpen, + onClose, + onToggle: (event) => { + if ((0, vue.unref)(open)) onClose(event); + else onOpen(event); + }, + onShow: () => { + emit("show", toggleReason.value); + }, + onHide: () => { + emit("hide", toggleReason.value); + }, + onBeforeShow: () => { + emit("before-show", toggleReason.value); + }, + onBeforeHide: () => { + emit("before-hide", toggleReason.value); + }, + updatePopper + }); + (0, vue.watch)(() => props.disabled, (disabled) => { + if (disabled && open.value) open.value = false; + if (!disabled && isBoolean(props.visible)) open.value = props.visible; + }); + const isFocusInsideContent = (event) => { + return contentRef.value?.isFocusInsideContent(event); + }; + (0, vue.onDeactivated)(() => open.value && hide()); + (0, vue.onBeforeUnmount)(() => { + toggleReason.value = void 0; + }); + __expose({ + popperRef, + contentRef, + isFocusInsideContent, + updatePopper, + onOpen, + onClose, + hide + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElPopper), { + ref_key: "popperRef", + ref: popperRef, + role: __props.role + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(trigger_default$1, { + disabled: __props.disabled, + trigger: __props.trigger, + "trigger-keys": __props.triggerKeys, + "virtual-ref": __props.virtualRef, + "virtual-triggering": __props.virtualTriggering, + "focus-on-target": __props.focusOnTarget + }, { + default: (0, vue.withCtx)(() => [_ctx.$slots.default ? (0, vue.renderSlot)(_ctx.$slots, "default", { key: 0 }) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, [ + "disabled", + "trigger", + "trigger-keys", + "virtual-ref", + "virtual-triggering", + "focus-on-target" + ]), (0, vue.createVNode)(content_default$2, { + ref_key: "contentRef", + ref: contentRef, + "aria-label": __props.ariaLabel, + "boundaries-padding": __props.boundariesPadding, + content: __props.content, + disabled: __props.disabled, + effect: __props.effect, + enterable: __props.enterable, + "fallback-placements": __props.fallbackPlacements, + "hide-after": __props.hideAfter, + "gpu-acceleration": __props.gpuAcceleration, + offset: __props.offset, + persistent: __props.persistent, + "popper-class": kls.value, + "popper-style": __props.popperStyle, + placement: __props.placement, + "popper-options": __props.popperOptions, + "arrow-offset": __props.arrowOffset, + pure: __props.pure, + "raw-content": __props.rawContent, + "reference-el": __props.referenceEl, + "trigger-target-el": __props.triggerTargetEl, + "show-after": __props.showAfter, + strategy: __props.strategy, + teleported: __props.teleported, + transition: __props.transition, + "virtual-triggering": __props.virtualTriggering, + "z-index": __props.zIndex, + "append-to": __props.appendTo, + loop: __props.loop + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "content", {}, () => [__props.rawContent ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + innerHTML: __props.content + }, null, 8, _hoisted_1$77)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2$43, (0, vue.toDisplayString)(__props.content), 1))]), __props.showArrow ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(arrow_default), { key: 0 })) : (0, vue.createCommentVNode)("v-if", true)]), + _: 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" + ])]), + _: 3 + }, 8, ["role"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tooltip/src/tooltip.vue + var tooltip_default = tooltip_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tooltip/index.ts + const ElTooltip = withInstall(tooltip_default); + +//#endregion +//#region ../../packages/components/input/src/input.ts +/** + * @deprecated Removed after 3.0.0, Use `InputProps` instead. + */ + const inputProps = buildProps({ + id: { + type: String, + default: void 0 + }, + size: useSizeProp, + disabled: { + type: Boolean, + default: void 0 + }, + modelValue: { + type: definePropType([ + String, + Number, + Object + ]), + default: "" + }, + modelModifiers: { + type: definePropType(Object), + default: () => ({}) + }, + maxlength: { type: [String, Number] }, + minlength: { type: [String, Number] }, + type: { + type: definePropType(String), + default: "text" + }, + resize: { + type: String, + values: [ + "none", + "both", + "horizontal", + "vertical" + ] + }, + autosize: { + type: definePropType([Boolean, Object]), + default: false + }, + autocomplete: { + type: definePropType(String), + default: "off" + }, + formatter: { type: Function }, + parser: { type: Function }, + placeholder: { type: String }, + form: { type: String }, + readonly: Boolean, + clearable: Boolean, + clearIcon: { + type: iconPropType, + default: circle_close_default + }, + showPassword: Boolean, + showWordLimit: Boolean, + wordLimitPosition: { + type: String, + values: ["inside", "outside"], + default: "inside" + }, + suffixIcon: { type: iconPropType }, + prefixIcon: { type: iconPropType }, + containerRole: { + type: String, + default: void 0 + }, + tabindex: { + type: [String, Number], + default: 0 + }, + validateEvent: { + type: Boolean, + default: true + }, + inputStyle: { + type: definePropType([ + Object, + Array, + String + ]), + default: () => mutable({}) + }, + countGraphemes: { type: definePropType(Function) }, + autofocus: Boolean, + rows: { + type: Number, + default: 2 + }, + ...useAriaProps(["ariaLabel"]), + inputmode: { + type: definePropType(String), + default: void 0 + }, + name: String + }); + const inputEmits = { + [UPDATE_MODEL_EVENT]: (value) => isString(value), + input: (value) => isString(value), + change: (value, evt) => isString(value) && (evt instanceof Event || evt === void 0), + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: (evt) => evt === void 0 || evt instanceof MouseEvent, + mouseleave: (evt) => evt instanceof MouseEvent, + mouseenter: (evt) => evt instanceof MouseEvent, + keydown: (evt) => evt instanceof Event, + compositionstart: (evt) => evt instanceof CompositionEvent, + compositionupdate: (evt) => evt instanceof CompositionEvent, + compositionend: (evt) => evt instanceof CompositionEvent + }; + /** + * @description default values for InputProps, used in components that extend InputProps like Autocomplete + */ + const inputPropsDefaults = { + disabled: void 0, + modelValue: "", + modelModifiers: () => ({}), + type: "text", + autocomplete: "off", + clearIcon: (0, vue.markRaw)(circle_close_default), + wordLimitPosition: "inside", + tabindex: 0, + validateEvent: true, + inputStyle: () => ({}), + rows: 2 + }; + +//#endregion +//#region ../../packages/components/input/src/utils.ts + let hiddenTextarea = void 0; + const HIDDEN_STYLE = { + height: "0", + visibility: "hidden", + overflow: isFirefox() ? "" : "hidden", + position: "absolute", + "z-index": "-1000", + top: "0", + right: "0" + }; + const CONTEXT_STYLE = [ + "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" + ]; + const looseToNumber = (val) => { + const n = Number.parseFloat(val); + return Number.isNaN(n) ? val : n; + }; + function calculateNodeStyling(targetElement) { + const style = window.getComputedStyle(targetElement); + const boxSizing = style.getPropertyValue("box-sizing"); + const paddingSize = Number.parseFloat(style.getPropertyValue("padding-bottom")) + Number.parseFloat(style.getPropertyValue("padding-top")); + const borderSize = Number.parseFloat(style.getPropertyValue("border-bottom-width")) + Number.parseFloat(style.getPropertyValue("border-top-width")); + return { + contextStyle: CONTEXT_STYLE.map((name) => [name, style.getPropertyValue(name)]), + paddingSize, + borderSize, + boxSizing + }; + } + function calcTextareaHeight(targetElement, minRows = 1, maxRows) { + if (!hiddenTextarea) { + hiddenTextarea = document.createElement("textarea"); + let hostNode = document.body; + if (!isFirefox() && targetElement.parentNode) hostNode = targetElement.parentNode; + hostNode.appendChild(hiddenTextarea); + } + const { paddingSize, borderSize, boxSizing, contextStyle } = calculateNodeStyling(targetElement); + contextStyle.forEach(([key, value]) => hiddenTextarea?.style.setProperty(key, value)); + Object.entries(HIDDEN_STYLE).forEach(([key, value]) => hiddenTextarea?.style.setProperty(key, value, "important")); + hiddenTextarea.value = targetElement.value || targetElement.placeholder || ""; + let height = hiddenTextarea.scrollHeight; + const result = {}; + if (boxSizing === "border-box") height = height + borderSize; + else if (boxSizing === "content-box") height = height - paddingSize; + hiddenTextarea.value = ""; + const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize; + if (isNumber(minRows)) { + let minHeight = singleRowHeight * minRows; + if (boxSizing === "border-box") minHeight = minHeight + paddingSize + borderSize; + height = Math.max(minHeight, height); + result.minHeight = `${minHeight}px`; + } + if (isNumber(maxRows)) { + let maxHeight = singleRowHeight * maxRows; + if (boxSizing === "border-box") maxHeight = maxHeight + paddingSize + borderSize; + height = Math.min(maxHeight, height); + } + result.height = `${height}px`; + hiddenTextarea.parentNode?.removeChild(hiddenTextarea); + hiddenTextarea = void 0; + return result; + } + +//#endregion +//#region ../../packages/components/input/src/input.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$76 = [ + "id", + "name", + "minlength", + "maxlength", + "type", + "disabled", + "readonly", + "autocomplete", + "tabindex", + "aria-label", + "placeholder", + "form", + "autofocus", + "role", + "inputmode" + ]; + const _hoisted_2$42 = [ + "id", + "name", + "minlength", + "maxlength", + "tabindex", + "disabled", + "readonly", + "autocomplete", + "aria-label", + "placeholder", + "form", + "autofocus", + "rows", + "role", + "inputmode" + ]; + const COMPONENT_NAME$19 = "ElInput"; + var input_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$19, + inheritAttrs: false, + __name: "input", + props: inputProps, + emits: inputEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const rawAttrs = (0, vue.useAttrs)(); + const slots = (0, vue.useSlots)(); + const containerKls = (0, vue.computed)(() => [ + props.type === "textarea" ? nsTextarea.b() : nsInput.b(), + nsInput.m(inputSize.value), + nsInput.is("disabled", inputDisabled.value), + nsInput.is("exceed", inputExceed.value), + { + [nsInput.b("group")]: slots.prepend || slots.append, + [nsInput.m("prefix")]: slots.prefix || props.prefixIcon, + [nsInput.m("suffix")]: slots.suffix || props.suffixIcon || props.clearable || props.showPassword, + [nsInput.bm("suffix", "password-clear")]: showClear.value && showPwdVisible.value, + [nsInput.b("hidden")]: props.type === "hidden" + }, + rawAttrs.class + ]); + const wrapperKls = (0, vue.computed)(() => [nsInput.e("wrapper"), nsInput.is("focus", isFocused.value)]); + const attrs = useAttrs(); + const maxlength = (0, vue.computed)(() => props.maxlength?.toString()); + const { form: elForm, formItem: elFormItem } = useFormItem(); + const { inputId } = useFormItemInputId(props, { formItemContext: elFormItem }); + const inputSize = useFormSize(); + const inputDisabled = useFormDisabled(); + const nsInput = useNamespace("input"); + const nsTextarea = useNamespace("textarea"); + const input = (0, vue.shallowRef)(); + const textarea = (0, vue.shallowRef)(); + const hovering = (0, vue.ref)(false); + const passwordVisible = (0, vue.ref)(false); + const countStyle = (0, vue.ref)(); + const textareaCalcStyle = (0, vue.shallowRef)(props.inputStyle); + const saveValue = (0, vue.ref)(""); + const _ref = (0, vue.computed)(() => input.value || textarea.value); + const { wrapperRef, isFocused, handleFocus, handleBlur } = useFocusController(_ref, { + disabled: inputDisabled, + afterBlur() { + if (props.validateEvent) elFormItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const needStatusIcon = (0, vue.computed)(() => elForm?.statusIcon ?? false); + const validateState = (0, vue.computed)(() => elFormItem?.validateState || ""); + const validateIcon = (0, vue.computed)(() => validateState.value && ValidateComponentsMap[validateState.value]); + const passwordIcon = (0, vue.computed)(() => passwordVisible.value ? view_default : hide_default); + const containerStyle = (0, vue.computed)(() => [rawAttrs.style]); + const textareaStyle = (0, vue.computed)(() => [ + props.inputStyle, + textareaCalcStyle.value, + { resize: props.resize } + ]); + const nativeInputValue = (0, vue.computed)(() => isNil(props.modelValue) ? "" : String(props.modelValue)); + const showClear = (0, vue.computed)(() => props.clearable && !inputDisabled.value && !props.readonly && !!nativeInputValue.value && (isFocused.value || hovering.value)); + const showPwdVisible = (0, vue.computed)(() => props.showPassword && !inputDisabled.value && !!nativeInputValue.value); + const isWordLimitVisible = (0, vue.computed)(() => props.showWordLimit && !!maxlength.value && (props.type === "text" || props.type === "textarea") && !inputDisabled.value && !props.readonly && !props.showPassword); + const textLength = (0, vue.computed)(() => { + if (props.countGraphemes && props.showWordLimit) return props.countGraphemes(nativeInputValue.value); + return nativeInputValue.value.length; + }); + const inputExceed = (0, vue.computed)(() => !!isWordLimitVisible.value && textLength.value > Number(maxlength.value)); + const suffixVisible = (0, vue.computed)(() => !!slots.suffix || !!props.suffixIcon || showClear.value || props.showPassword || isWordLimitVisible.value || !!validateState.value && needStatusIcon.value); + const hasModelModifiers = (0, vue.computed)(() => !!Object.keys(props.modelModifiers).length); + const [recordCursor, setCursor] = useCursor(input); + useResizeObserver(textarea, (entries) => { + onceInitSizeTextarea(); + if (!isWordLimitVisible.value || props.resize !== "both" && props.resize !== "horizontal") return; + const { width } = entries[0].contentRect; + countStyle.value = { right: `calc(100% - ${width + 22 - 10}px)` }; + }); + const resizeTextarea = () => { + const { type, autosize } = props; + if (!isClient || type !== "textarea" || !textarea.value) return; + if (autosize) { + const minRows = isObject$1(autosize) ? autosize.minRows : void 0; + const maxRows = isObject$1(autosize) ? autosize.maxRows : void 0; + const textareaStyle = calcTextareaHeight(textarea.value, minRows, maxRows); + textareaCalcStyle.value = { + overflowY: "hidden", + ...textareaStyle + }; + (0, vue.nextTick)(() => { + textarea.value.offsetHeight; + textareaCalcStyle.value = textareaStyle; + }); + } else textareaCalcStyle.value = { minHeight: calcTextareaHeight(textarea.value).minHeight }; + }; + const createOnceInitResize = (resizeTextarea) => { + let isInit = false; + return () => { + if (isInit || !props.autosize) return; + if (!(textarea.value?.offsetParent === null)) { + setTimeout(resizeTextarea); + isInit = true; + } + }; + }; + const onceInitSizeTextarea = createOnceInitResize(resizeTextarea); + const setNativeInputValue = () => { + const input = _ref.value; + const formatterValue = props.formatter ? props.formatter(nativeInputValue.value) : nativeInputValue.value; + if (!input || input.value === formatterValue || props.type === "file") return; + input.value = formatterValue; + }; + const formatValue = (value) => { + const { trim, number } = props.modelModifiers; + if (trim) value = value.trim(); + if (number) value = `${looseToNumber(value)}`; + if (props.formatter && props.parser) value = props.parser(value); + return value; + }; + const handleInput = async (event) => { + if (isComposing.value) return; + const { lazy } = props.modelModifiers; + let { value } = event.target; + let shouldForceNativeUpdate = false; + if (lazy) { + emit(INPUT_EVENT, value); + return; + } + value = formatValue(value); + if (props.countGraphemes && maxlength.value != null) { + const limit = Number(maxlength.value); + const graphemes = props.countGraphemes(value); + const saveGraphemes = props.countGraphemes(saveValue.value); + if (graphemes > limit && graphemes > saveGraphemes) if (saveGraphemes > limit) { + value = saveValue.value; + shouldForceNativeUpdate = true; + } else { + const prevValue = saveValue.value; + const nextValue = value; + let prefixLen = 0; + while (prefixLen < prevValue.length && prefixLen < nextValue.length && prevValue[prefixLen] === nextValue[prefixLen]) prefixLen++; + let prevSuffixIndex = prevValue.length; + let nextSuffixIndex = nextValue.length; + while (prevSuffixIndex > prefixLen && nextSuffixIndex > prefixLen && prevValue[prevSuffixIndex - 1] === nextValue[nextSuffixIndex - 1]) { + prevSuffixIndex--; + nextSuffixIndex--; + } + const before = nextValue.slice(0, prefixLen); + const removed = prevValue.slice(prefixLen, prevSuffixIndex); + const inserted = nextValue.slice(prefixLen, nextSuffixIndex); + const after = nextValue.slice(nextSuffixIndex); + const baseCount = saveGraphemes - props.countGraphemes(removed); + const availableInserted = Math.max(0, limit - baseCount); + let acceptedInserted = ""; + if (availableInserted > 0) if (typeof Intl !== "undefined" && "Segmenter" in Intl) { + const segmenter = new Intl.Segmenter(void 0, { granularity: "grapheme" }); + for (const { segment } of segmenter.segment(inserted)) { + const candidate = acceptedInserted + segment; + if (props.countGraphemes(candidate) > availableInserted) break; + acceptedInserted = candidate; + } + } else for (const char of Array.from(inserted)) { + const candidate = acceptedInserted + char; + if (props.countGraphemes(candidate) > availableInserted) break; + acceptedInserted = candidate; + } + value = before + acceptedInserted + after; + shouldForceNativeUpdate = true; + } + } + if (String(value) === nativeInputValue.value) { + if (props.formatter || shouldForceNativeUpdate) { + const target = event.target; + const blockedValue = target.value; + const selectionStart = target.selectionStart; + const selectionEnd = target.selectionEnd; + setNativeInputValue(); + if (shouldForceNativeUpdate && _ref.value && selectionStart != null && selectionEnd != null) { + const restoredValue = _ref.value.value; + const afterTxt = blockedValue.slice(Math.max(0, selectionEnd)); + let caretPos = Math.min(selectionStart, restoredValue.length); + if (afterTxt && restoredValue.endsWith(afterTxt)) caretPos = restoredValue.length - afterTxt.length; + _ref.value.setSelectionRange(caretPos, caretPos); + } + } + return; + } + saveValue.value = value; + recordCursor(); + emit(UPDATE_MODEL_EVENT, value); + emit(INPUT_EVENT, value); + await (0, vue.nextTick)(); + if (props.formatter && props.parser || !hasModelModifiers.value) setNativeInputValue(); + setCursor(); + }; + const handleChange = async (event) => { + let { value } = event.target; + value = formatValue(value); + if (props.modelModifiers.lazy) emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value, event); + await (0, vue.nextTick)(); + setNativeInputValue(); + }; + const { isComposing, handleCompositionStart, handleCompositionUpdate, handleCompositionEnd } = useComposition({ + emit, + afterComposition: handleInput + }); + const handlePasswordVisible = () => { + passwordVisible.value = !passwordVisible.value; + }; + const focus = () => _ref.value?.focus(); + const blur = () => _ref.value?.blur(); + const handleMouseLeave = (evt) => { + hovering.value = false; + emit("mouseleave", evt); + }; + const handleMouseEnter = (evt) => { + hovering.value = true; + emit("mouseenter", evt); + }; + const handleKeydown = (evt) => { + emit("keydown", evt); + }; + const select = () => { + _ref.value?.select(); + }; + const clear = (evt) => { + emit(UPDATE_MODEL_EVENT, ""); + emit(CHANGE_EVENT, ""); + emit("clear", evt); + emit(INPUT_EVENT, ""); + }; + (0, vue.watch)(() => props.modelValue, () => { + (0, vue.nextTick)(() => resizeTextarea()); + if (props.validateEvent) elFormItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + (0, vue.watch)(() => nativeInputValue.value, (val) => { + saveValue.value = val; + }, { immediate: true }); + (0, vue.watch)(nativeInputValue, (newValue) => { + if (!_ref.value) return; + const { trim, number } = props.modelModifiers; + const elValue = _ref.value.value; + const displayValue = (number || props.type === "number") && !/^0\d/.test(elValue) ? `${looseToNumber(elValue)}` : elValue; + if (displayValue === newValue) return; + if (document.activeElement === _ref.value && _ref.value.type !== "range") { + if (trim && displayValue.trim() === newValue) return; + } + setNativeInputValue(); + }); + (0, vue.watch)(() => props.type, async () => { + await (0, vue.nextTick)(); + setNativeInputValue(); + resizeTextarea(); + }); + (0, vue.onMounted)(() => { + if (!props.formatter && props.parser) /* @__PURE__ */ debugWarn(COMPONENT_NAME$19, "If you set the parser, you also need to set the formatter."); + setNativeInputValue(); + (0, vue.nextTick)(resizeTextarea); + }); + __expose({ + input, + textarea, + ref: _ref, + textareaStyle, + autosize: (0, vue.toRef)(props, "autosize"), + isComposing, + passwordVisible, + focus, + blur, + select, + clear, + resizeTextarea + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([containerKls.value, { + [(0, vue.unref)(nsInput).bm("group", "append")]: _ctx.$slots.append, + [(0, vue.unref)(nsInput).bm("group", "prepend")]: _ctx.$slots.prepend + }]), + style: (0, vue.normalizeStyle)(containerStyle.value), + onMouseenter: handleMouseEnter, + onMouseleave: handleMouseLeave + }, [(0, vue.createCommentVNode)(" input "), __props.type !== "textarea" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [ + (0, vue.createCommentVNode)(" prepend slot "), + _ctx.$slots.prepend ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).be("group", "prepend")) + }, [(0, vue.renderSlot)(_ctx.$slots, "prepend")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + ref_key: "wrapperRef", + ref: wrapperRef, + class: (0, vue.normalizeClass)(wrapperKls.value) + }, [ + (0, vue.createCommentVNode)(" prefix slot "), + _ctx.$slots.prefix || __props.prefixIcon ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("prefix")) + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("prefix-inner")) }, [(0, vue.renderSlot)(_ctx.$slots, "prefix"), __props.prefixIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("icon")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.prefixIcon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)], 2)], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("input", (0, vue.mergeProps)({ + id: (0, vue.unref)(inputId), + ref_key: "input", + ref: input, + class: (0, vue.unref)(nsInput).e("inner") + }, (0, vue.unref)(attrs), { + name: __props.name, + minlength: __props.countGraphemes ? void 0 : __props.minlength, + maxlength: __props.countGraphemes ? void 0 : maxlength.value, + type: __props.showPassword ? passwordVisible.value ? "text" : "password" : __props.type, + disabled: (0, vue.unref)(inputDisabled), + readonly: __props.readonly, + autocomplete: __props.autocomplete, + tabindex: __props.tabindex, + "aria-label": __props.ariaLabel, + placeholder: __props.placeholder, + style: __props.inputStyle, + form: __props.form, + autofocus: __props.autofocus, + role: __props.containerRole, + inputmode: __props.inputmode, + onCompositionstart: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleCompositionStart) && (0, vue.unref)(handleCompositionStart)(...args)), + onCompositionupdate: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleCompositionUpdate) && (0, vue.unref)(handleCompositionUpdate)(...args)), + onCompositionend: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(handleCompositionEnd) && (0, vue.unref)(handleCompositionEnd)(...args)), + onInput: handleInput, + onChange: handleChange, + onKeydown: handleKeydown + }), null, 16, _hoisted_1$76), + (0, vue.createCommentVNode)(" suffix slot "), + suffixVisible.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("suffix")) + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("suffix-inner")) }, [ + !showClear.value || !showPwdVisible.value || !isWordLimitVisible.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.renderSlot)(_ctx.$slots, "suffix"), __props.suffixIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("icon")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.suffixIcon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)], 64)) : (0, vue.createCommentVNode)("v-if", true), + showClear.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("icon"), (0, vue.unref)(nsInput).e("clear")]), + onMousedown: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]), + onClick: clear + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.clearIcon)))]), + _: 1 + }, 8, ["class", "onMousedown"])) : (0, vue.createCommentVNode)("v-if", true), + showPwdVisible.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 2, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("icon"), (0, vue.unref)(nsInput).e("password")]), + onClick: handlePasswordVisible, + onMousedown: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]), + onMouseup: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "password-icon", { visible: passwordVisible.value }, () => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(passwordIcon.value)))])]), + _: 3 + }, 8, [ + "class", + "onMousedown", + "onMouseup" + ])) : (0, vue.createCommentVNode)("v-if", true), + isWordLimitVisible.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 3, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("count"), (0, vue.unref)(nsInput).is("outside", __props.wordLimitPosition === "outside")]) + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("count-inner")) }, (0, vue.toDisplayString)(textLength.value) + " / " + (0, vue.toDisplayString)(maxlength.value), 3)], 2)) : (0, vue.createCommentVNode)("v-if", true), + validateState.value && validateIcon.value && needStatusIcon.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 4, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(nsInput).e("icon"), + (0, vue.unref)(nsInput).e("validateIcon"), + (0, vue.unref)(nsInput).is("loading", validateState.value === "validating") + ]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(validateIcon.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true) + ], 2)], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2), + (0, vue.createCommentVNode)(" append slot "), + _ctx.$slots.append ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).be("group", "append")) + }, [(0, vue.renderSlot)(_ctx.$slots, "append")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [ + (0, vue.createCommentVNode)(" textarea "), + (0, vue.createElementVNode)("textarea", (0, vue.mergeProps)({ + id: (0, vue.unref)(inputId), + ref_key: "textarea", + ref: textarea, + class: [ + (0, vue.unref)(nsTextarea).e("inner"), + (0, vue.unref)(nsInput).is("focus", (0, vue.unref)(isFocused)), + (0, vue.unref)(nsTextarea).is("clearable", __props.clearable) + ] + }, (0, vue.unref)(attrs), { + name: __props.name, + minlength: __props.countGraphemes ? void 0 : __props.minlength, + maxlength: __props.countGraphemes ? void 0 : maxlength.value, + tabindex: __props.tabindex, + disabled: (0, vue.unref)(inputDisabled), + readonly: __props.readonly, + autocomplete: __props.autocomplete, + style: textareaStyle.value, + "aria-label": __props.ariaLabel, + placeholder: __props.placeholder, + form: __props.form, + autofocus: __props.autofocus, + rows: __props.rows, + role: __props.containerRole, + inputmode: __props.inputmode, + onCompositionstart: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(handleCompositionStart) && (0, vue.unref)(handleCompositionStart)(...args)), + onCompositionupdate: _cache[4] || (_cache[4] = (...args) => (0, vue.unref)(handleCompositionUpdate) && (0, vue.unref)(handleCompositionUpdate)(...args)), + onCompositionend: _cache[5] || (_cache[5] = (...args) => (0, vue.unref)(handleCompositionEnd) && (0, vue.unref)(handleCompositionEnd)(...args)), + onInput: handleInput, + onFocus: _cache[6] || (_cache[6] = (...args) => (0, vue.unref)(handleFocus) && (0, vue.unref)(handleFocus)(...args)), + onBlur: _cache[7] || (_cache[7] = (...args) => (0, vue.unref)(handleBlur) && (0, vue.unref)(handleBlur)(...args)), + onChange: handleChange, + onKeydown: handleKeydown + }), null, 16, _hoisted_2$42), + showClear.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsTextarea).e("icon"), (0, vue.unref)(nsTextarea).e("clear")]), + onMousedown: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]), + onClick: clear + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.clearIcon)))]), + _: 1 + }, 8, ["class", "onMousedown"])) : (0, vue.createCommentVNode)("v-if", true), + isWordLimitVisible.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + style: (0, vue.normalizeStyle)(countStyle.value), + class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("count"), (0, vue.unref)(nsInput).is("outside", __props.wordLimitPosition === "outside")]) + }, (0, vue.toDisplayString)(textLength.value) + " / " + (0, vue.toDisplayString)(maxlength.value), 7)) : (0, vue.createCommentVNode)("v-if", true) + ], 64))], 38); + }; + } + }); + +//#endregion +//#region ../../packages/components/input/src/input.vue + var input_default = input_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/input/index.ts + const ElInput = withInstall(input_default); + +//#endregion +//#region ../../packages/components/autocomplete/src/autocomplete.ts +/** + * @deprecated Removed after 3.0.0, Use `AutocompleteProps` instead. + */ + const autocompleteProps = buildProps({ + ...inputProps, + valueKey: { + type: String, + default: "value" + }, + modelValue: { + type: [String, Number], + default: "" + }, + debounce: { + type: Number, + default: 300 + }, + placement: { + type: definePropType(String), + values: [ + "top", + "top-start", + "top-end", + "bottom", + "bottom-start", + "bottom-end" + ], + default: "bottom-start" + }, + fetchSuggestions: { + type: definePropType([Function, Array]), + default: NOOP + }, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + triggerOnFocus: { + type: Boolean, + default: true + }, + selectWhenUnmatched: Boolean, + hideLoading: Boolean, + teleported: useTooltipContentProps.teleported, + appendTo: useTooltipContentProps.appendTo, + highlightFirstItem: Boolean, + fitInputWidth: Boolean, + loopNavigation: { + type: Boolean, + default: true + } + }); + const autocompleteEmits = { + [UPDATE_MODEL_EVENT]: (value) => isString(value) || isNumber(value), + [INPUT_EVENT]: (value) => isString(value) || isNumber(value), + [CHANGE_EVENT]: (value) => isString(value) || isNumber(value), + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true, + select: (item) => isObject$1(item) + }; + +//#endregion +//#region ../../packages/components/scrollbar/src/scrollbar.ts +/** + * @deprecated Removed after 3.0.0, Use `ScrollbarProps` instead. + */ + const scrollbarProps = buildProps({ + distance: { + type: Number, + default: 0 + }, + height: { + type: [String, Number], + default: "" + }, + maxHeight: { + type: [String, Number], + default: "" + }, + native: Boolean, + wrapStyle: { + type: definePropType([ + String, + Object, + Array + ]), + default: "" + }, + wrapClass: { + type: [String, Array], + default: "" + }, + viewClass: { + type: [String, Array], + default: "" + }, + viewStyle: { + type: [ + String, + Array, + Object + ], + 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, + ...useAriaProps(["ariaLabel", "ariaOrientation"]) + }); + const scrollbarEmits = { + "end-reached": (direction) => [ + "left", + "right", + "top", + "bottom" + ].includes(direction), + scroll: ({ scrollTop, scrollLeft }) => [scrollTop, scrollLeft].every(isNumber) + }; + +//#endregion +//#region ../../packages/components/scrollbar/src/bar.ts +/** + * @deprecated Removed after 3.0.0, Use `BarProps` instead. + */ + const barProps = buildProps({ + always: { + type: Boolean, + default: true + }, + minSize: { + type: Number, + required: true + } + }); + +//#endregion +//#region ../../packages/components/scrollbar/src/util.ts + const GAP = 4; + const BAR_MAP = { + 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" + } + }; + const renderThumbStyle = ({ move, size, bar }) => ({ + [bar.size]: size, + transform: `translate${bar.axis}(${move}%)` + }); + +//#endregion +//#region ../../packages/components/scrollbar/src/thumb.ts +/** + * @deprecated Removed after 3.0.0, Use `ThumbProps` instead. + */ + const thumbProps = buildProps({ + vertical: Boolean, + size: String, + move: Number, + ratio: { + type: Number, + required: true + }, + always: Boolean + }); + +//#endregion +//#region ../../packages/components/scrollbar/src/constants.ts + const scrollbarContextKey = Symbol("scrollbarContextKey"); + +//#endregion +//#region ../../packages/components/scrollbar/src/thumb.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$18 = "Thumb"; + var thumb_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "thumb", + props: thumbProps, + setup(__props) { + const props = __props; + const scrollbar = (0, vue.inject)(scrollbarContextKey); + const ns = useNamespace("scrollbar"); + if (!scrollbar) throwError(COMPONENT_NAME$18, "can not inject scrollbar context"); + const instance = (0, vue.ref)(); + const thumb = (0, vue.ref)(); + const thumbState = (0, vue.ref)({}); + const visible = (0, vue.ref)(false); + let cursorDown = false; + let cursorLeave = false; + let baseScrollHeight = 0; + let baseScrollWidth = 0; + let originalOnSelectStart = isClient ? document.onselectstart : null; + const bar = (0, vue.computed)(() => BAR_MAP[props.vertical ? "vertical" : "horizontal"]); + const thumbStyle = (0, vue.computed)(() => renderThumbStyle({ + size: props.size, + move: props.move, + bar: bar.value + })); + const offsetRatio = (0, vue.computed)(() => instance.value[bar.value.offset] ** 2 / scrollbar.wrapElement[bar.value.scrollSize] / props.ratio / thumb.value[bar.value.offset]); + const clickThumbHandler = (e) => { + e.stopPropagation(); + if (e.ctrlKey || [1, 2].includes(e.button)) return; + window.getSelection()?.removeAllRanges(); + startDrag(e); + const el = e.currentTarget; + if (!el) return; + thumbState.value[bar.value.axis] = el[bar.value.offset] - (e[bar.value.client] - el.getBoundingClientRect()[bar.value.direction]); + }; + const clickTrackHandler = (e) => { + if (!thumb.value || !instance.value || !scrollbar.wrapElement) return; + const thumbPositionPercentage = (Math.abs(e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) - thumb.value[bar.value.offset] / 2) * 100 * offsetRatio.value / instance.value[bar.value.offset]; + scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize] / 100; + }; + const startDrag = (e) => { + e.stopImmediatePropagation(); + cursorDown = true; + baseScrollHeight = scrollbar.wrapElement.scrollHeight; + baseScrollWidth = scrollbar.wrapElement.scrollWidth; + document.addEventListener("mousemove", mouseMoveDocumentHandler); + document.addEventListener("mouseup", mouseUpDocumentHandler); + originalOnSelectStart = document.onselectstart; + document.onselectstart = () => false; + }; + const mouseMoveDocumentHandler = (e) => { + if (!instance.value || !thumb.value) return; + if (cursorDown === false) return; + const prevPage = thumbState.value[bar.value.axis]; + if (!prevPage) return; + const thumbPositionPercentage = ((instance.value.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) * -1 - (thumb.value[bar.value.offset] - prevPage)) * 100 * offsetRatio.value / instance.value[bar.value.offset]; + if (bar.value.scroll === "scrollLeft") scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * baseScrollWidth / 100; + else scrollbar.wrapElement[bar.value.scroll] = thumbPositionPercentage * baseScrollHeight / 100; + }; + const mouseUpDocumentHandler = () => { + cursorDown = false; + thumbState.value[bar.value.axis] = 0; + document.removeEventListener("mousemove", mouseMoveDocumentHandler); + document.removeEventListener("mouseup", mouseUpDocumentHandler); + restoreOnselectstart(); + if (cursorLeave) visible.value = false; + }; + const mouseMoveScrollbarHandler = () => { + cursorLeave = false; + visible.value = !!props.size; + }; + const mouseLeaveScrollbarHandler = () => { + cursorLeave = true; + visible.value = cursorDown; + }; + (0, vue.onBeforeUnmount)(() => { + restoreOnselectstart(); + document.removeEventListener("mouseup", mouseUpDocumentHandler); + }); + const restoreOnselectstart = () => { + if (document.onselectstart !== originalOnSelectStart) document.onselectstart = originalOnSelectStart; + }; + useEventListener((0, vue.toRef)(scrollbar, "scrollbarElement"), "mousemove", mouseMoveScrollbarHandler); + useEventListener((0, vue.toRef)(scrollbar, "scrollbarElement"), "mouseleave", mouseLeaveScrollbarHandler); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + name: (0, vue.unref)(ns).b("fade"), + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("div", { + ref_key: "instance", + ref: instance, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("bar"), (0, vue.unref)(ns).is(bar.value.key)]), + onMousedown: clickTrackHandler, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.createElementVNode)("div", { + ref_key: "thumb", + ref: thumb, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("thumb")), + style: (0, vue.normalizeStyle)(thumbStyle.value), + onMousedown: clickThumbHandler + }, null, 38)], 34), [[vue.vShow, __props.always || visible.value]])]), + _: 1 + }, 8, ["name"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/scrollbar/src/thumb.vue + var thumb_default = thumb_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/scrollbar/src/bar.vue?vue&type=script&setup=true&lang.ts + var bar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "bar", + props: barProps, + setup(__props, { expose: __expose }) { + const props = __props; + const scrollbar = (0, vue.inject)(scrollbarContextKey); + const moveX = (0, vue.ref)(0); + const moveY = (0, vue.ref)(0); + const sizeWidth = (0, vue.ref)(""); + const sizeHeight = (0, vue.ref)(""); + const ratioY = (0, vue.ref)(1); + const ratioX = (0, vue.ref)(1); + const handleScroll = (wrap) => { + if (wrap) { + const offsetHeight = wrap.offsetHeight - GAP; + const offsetWidth = wrap.offsetWidth - GAP; + moveY.value = wrap.scrollTop * 100 / offsetHeight * ratioY.value; + moveX.value = wrap.scrollLeft * 100 / offsetWidth * ratioX.value; + } + }; + const update = () => { + const wrap = scrollbar?.wrapElement; + if (!wrap) return; + const offsetHeight = wrap.offsetHeight - GAP; + const offsetWidth = wrap.offsetWidth - GAP; + const originalHeight = offsetHeight ** 2 / wrap.scrollHeight; + const originalWidth = offsetWidth ** 2 / wrap.scrollWidth; + const height = Math.max(originalHeight, props.minSize); + const width = Math.max(originalWidth, props.minSize); + ratioY.value = originalHeight / (offsetHeight - originalHeight) / (height / (offsetHeight - height)); + ratioX.value = originalWidth / (offsetWidth - originalWidth) / (width / (offsetWidth - width)); + sizeHeight.value = height + GAP < offsetHeight ? `${height}px` : ""; + sizeWidth.value = width + GAP < offsetWidth ? `${width}px` : ""; + }; + __expose({ + handleScroll, + update + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [(0, vue.createVNode)(thumb_default, { + move: moveX.value, + ratio: ratioX.value, + size: sizeWidth.value, + always: __props.always + }, null, 8, [ + "move", + "ratio", + "size", + "always" + ]), (0, vue.createVNode)(thumb_default, { + move: moveY.value, + ratio: ratioY.value, + size: sizeHeight.value, + vertical: "", + always: __props.always + }, null, 8, [ + "move", + "ratio", + "size", + "always" + ])], 64); + }; + } + }); + +//#endregion +//#region ../../packages/components/scrollbar/src/bar.vue + var bar_default = bar_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/scrollbar/src/scrollbar.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$75 = ["tabindex"]; + const COMPONENT_NAME$17 = "ElScrollbar"; + var scrollbar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$17, + __name: "scrollbar", + props: scrollbarProps, + emits: scrollbarEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("scrollbar"); + let stopResizeObserver = void 0; + let stopWrapResizeObserver = void 0; + let stopResizeListener = void 0; + let wrapScrollTop = 0; + let wrapScrollLeft = 0; + let direction = ""; + const distanceScrollState = { + bottom: false, + top: false, + right: false, + left: false + }; + const scrollbarRef = (0, vue.ref)(); + const wrapRef = (0, vue.ref)(); + const resizeRef = (0, vue.ref)(); + const barRef = (0, vue.ref)(); + const wrapStyle = (0, vue.computed)(() => { + const style = {}; + const height = addUnit(props.height); + const maxHeight = addUnit(props.maxHeight); + if (height) style.height = height; + if (maxHeight) style.maxHeight = maxHeight; + return [props.wrapStyle, style]; + }); + const wrapKls = (0, vue.computed)(() => { + return [ + props.wrapClass, + ns.e("wrap"), + { [ns.em("wrap", "hidden-default")]: !props.native } + ]; + }); + const resizeKls = (0, vue.computed)(() => { + return [ns.e("view"), props.viewClass]; + }); + const shouldSkipDirection = (direction) => { + return distanceScrollState[direction] ?? false; + }; + const DIRECTION_PAIRS = { + top: "bottom", + bottom: "top", + left: "right", + right: "left" + }; + const updateTriggerStatus = (arrivedStates) => { + const oppositeDirection = DIRECTION_PAIRS[direction]; + if (!oppositeDirection) return; + const arrived = arrivedStates[direction]; + const oppositeArrived = arrivedStates[oppositeDirection]; + if (arrived && !distanceScrollState[direction]) distanceScrollState[direction] = true; + if (!oppositeArrived && distanceScrollState[oppositeDirection]) distanceScrollState[oppositeDirection] = false; + }; + const handleScroll = () => { + if (wrapRef.value) { + barRef.value?.handleScroll(wrapRef.value); + const prevTop = wrapScrollTop; + const prevLeft = wrapScrollLeft; + wrapScrollTop = wrapRef.value.scrollTop; + wrapScrollLeft = wrapRef.value.scrollLeft; + const arrivedStates = { + bottom: !isGreaterThan(wrapRef.value.scrollHeight - props.distance, wrapRef.value.clientHeight + wrapScrollTop), + top: wrapScrollTop <= props.distance && prevTop !== 0, + right: !isGreaterThan(wrapRef.value.scrollWidth - props.distance, wrapRef.value.clientWidth + wrapScrollLeft) && prevLeft !== wrapScrollLeft, + left: wrapScrollLeft <= props.distance && prevLeft !== 0 + }; + emit("scroll", { + scrollTop: wrapScrollTop, + scrollLeft: wrapScrollLeft + }); + if (prevTop !== wrapScrollTop) direction = wrapScrollTop > prevTop ? "bottom" : "top"; + if (prevLeft !== wrapScrollLeft) direction = wrapScrollLeft > prevLeft ? "right" : "left"; + if (props.distance > 0) { + if (shouldSkipDirection(direction)) return; + updateTriggerStatus(arrivedStates); + } + if (arrivedStates[direction]) emit("end-reached", direction); + } + }; + function scrollTo(arg1, arg2) { + if (isObject$1(arg1)) wrapRef.value.scrollTo(arg1); + else if (isNumber(arg1) && isNumber(arg2)) wrapRef.value.scrollTo(arg1, arg2); + } + const setScrollTop = (value) => { + if (!isNumber(value)) { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$17, "value must be a number"); + return; + } + wrapRef.value.scrollTop = value; + }; + const setScrollLeft = (value) => { + if (!isNumber(value)) { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$17, "value must be a number"); + return; + } + wrapRef.value.scrollLeft = value; + }; + const update = () => { + barRef.value?.update(); + distanceScrollState[direction] = false; + if (wrapRef.value) barRef.value?.handleScroll(wrapRef.value); + }; + (0, vue.watch)(() => props.noresize, (noresize) => { + if (noresize) { + stopResizeObserver?.(); + stopWrapResizeObserver?.(); + stopResizeListener?.(); + } else { + ({stop: stopResizeObserver} = useResizeObserver(resizeRef, update)); + ({stop: stopWrapResizeObserver} = useResizeObserver(wrapRef, update)); + stopResizeListener = useEventListener("resize", update); + } + }, { immediate: true }); + (0, vue.watch)(() => [props.maxHeight, props.height], () => { + if (!props.native) (0, vue.nextTick)(() => { + update(); + }); + }); + (0, vue.provide)(scrollbarContextKey, (0, vue.reactive)({ + scrollbarElement: scrollbarRef, + wrapElement: wrapRef + })); + (0, vue.onActivated)(() => { + if (wrapRef.value) { + wrapRef.value.scrollTop = wrapScrollTop; + wrapRef.value.scrollLeft = wrapScrollLeft; + } + }); + (0, vue.onMounted)(() => { + if (!props.native) (0, vue.nextTick)(() => { + update(); + }); + }); + (0, vue.onUpdated)(() => update()); + __expose({ + wrapRef, + update, + scrollTo, + setScrollTop, + setScrollLeft, + handleScroll + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "scrollbarRef", + ref: scrollbarRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) + }, [(0, vue.createElementVNode)("div", { + ref_key: "wrapRef", + ref: wrapRef, + class: (0, vue.normalizeClass)(wrapKls.value), + style: (0, vue.normalizeStyle)(wrapStyle.value), + tabindex: __props.tabindex, + onScroll: handleScroll + }, [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.tag), { + id: __props.id, + ref_key: "resizeRef", + ref: resizeRef, + class: (0, vue.normalizeClass)(resizeKls.value), + style: (0, vue.normalizeStyle)(__props.viewStyle), + role: __props.role, + "aria-label": __props.ariaLabel, + "aria-orientation": __props.ariaOrientation + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, [ + "id", + "class", + "style", + "role", + "aria-label", + "aria-orientation" + ]))], 46, _hoisted_1$75), !__props.native ? ((0, vue.openBlock)(), (0, vue.createBlock)(bar_default, { + key: 0, + ref_key: "barRef", + ref: barRef, + always: __props.always, + "min-size": __props.minSize + }, null, 8, ["always", "min-size"])) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/scrollbar/src/scrollbar.vue + var scrollbar_default = scrollbar_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/scrollbar/index.ts + const ElScrollbar = withInstall(scrollbar_default); + +//#endregion +//#region ../../packages/components/autocomplete/src/autocomplete.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$74 = ["aria-expanded", "aria-owns"]; + const _hoisted_2$41 = { key: 0 }; + const _hoisted_3$18 = [ + "id", + "aria-selected", + "onClick" + ]; + const COMPONENT_NAME$16 = "ElAutocomplete"; + var autocomplete_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$16, + inheritAttrs: false, + __name: "autocomplete", + props: autocompleteProps, + emits: autocompleteEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const passInputProps = (0, vue.computed)(() => { + const inputProps = ElInput.props ?? []; + return pick(props, isArray$1(inputProps) ? inputProps : Object.keys(inputProps)); + }); + const rawAttrs = (0, vue.useAttrs)(); + const disabled = useFormDisabled(); + const ns = useNamespace("autocomplete"); + const inputRef = (0, vue.ref)(); + const regionRef = (0, vue.ref)(); + const popperRef = (0, vue.ref)(); + const listboxRef = (0, vue.ref)(); + let readonly = false; + let ignoreFocusEvent = false; + const suggestions = (0, vue.ref)([]); + const highlightedIndex = (0, vue.ref)(-1); + const dropdownWidth = (0, vue.ref)(""); + const activated = (0, vue.ref)(false); + const suggestionDisabled = (0, vue.ref)(false); + const loading = (0, vue.ref)(false); + const listboxId = useId(); + const styles = (0, vue.computed)(() => rawAttrs.style); + const suggestionVisible = (0, vue.computed)(() => { + return (suggestions.value.length > 0 || loading.value) && activated.value; + }); + const suggestionLoading = (0, vue.computed)(() => !props.hideLoading && loading.value); + const refInput = (0, vue.computed)(() => { + if (inputRef.value) return Array.from(inputRef.value.$el.querySelectorAll("input")); + return []; + }); + const onSuggestionShow = () => { + if (suggestionVisible.value) dropdownWidth.value = `${inputRef.value.$el.offsetWidth}px`; + }; + const onHide = () => { + highlightedIndex.value = -1; + }; + const getData = async (queryString) => { + if (suggestionDisabled.value) return; + const cb = (suggestionList) => { + loading.value = false; + if (suggestionDisabled.value) return; + if (isArray$1(suggestionList)) { + suggestions.value = suggestionList; + highlightedIndex.value = props.highlightFirstItem ? 0 : -1; + } else throwError(COMPONENT_NAME$16, "autocomplete suggestions must be an array"); + }; + loading.value = true; + if (isArray$1(props.fetchSuggestions)) cb(props.fetchSuggestions); + else { + const result = await props.fetchSuggestions(queryString, cb); + if (isArray$1(result)) cb(result); + } + }; + const debouncedGetData = useDebounceFn(getData, (0, vue.computed)(() => props.debounce)); + const handleInput = (value) => { + const valuePresented = !!value; + emit(INPUT_EVENT, value); + emit(UPDATE_MODEL_EVENT, value); + suggestionDisabled.value = false; + activated.value ||= valuePresented; + if (!props.triggerOnFocus && !value) { + suggestionDisabled.value = true; + suggestions.value = []; + return; + } + debouncedGetData(value); + }; + const handleMouseDown = (event) => { + if (disabled.value) return; + if (event.target?.tagName !== "INPUT" || refInput.value.includes(document.activeElement)) activated.value = true; + }; + const handleChange = (value) => { + emit(CHANGE_EVENT, value); + }; + const handleFocus = (evt) => { + if (!ignoreFocusEvent) { + activated.value = true; + emit("focus", evt); + const queryString = props.modelValue ?? ""; + if (props.triggerOnFocus && !readonly) debouncedGetData(String(queryString)); + } else ignoreFocusEvent = false; + }; + const handleBlur = (evt) => { + setTimeout(() => { + if (popperRef.value?.isFocusInsideContent()) { + ignoreFocusEvent = true; + return; + } + activated.value && close(); + emit("blur", evt); + }); + }; + const handleClear = () => { + activated.value = false; + emit(UPDATE_MODEL_EVENT, ""); + emit("clear"); + }; + const handleKeyEnter = async () => { + if (inputRef.value?.isComposing) return; + if (suggestionVisible.value && highlightedIndex.value >= 0 && highlightedIndex.value < suggestions.value.length) handleSelect(suggestions.value[highlightedIndex.value]); + else { + if (props.selectWhenUnmatched) { + emit("select", { value: props.modelValue }); + suggestions.value = []; + highlightedIndex.value = -1; + } + activated.value = true; + debouncedGetData(String(props.modelValue)); + } + }; + const handleKeyEscape = (evt) => { + if (suggestionVisible.value) { + evt.preventDefault(); + evt.stopPropagation(); + close(); + } + }; + const close = () => { + activated.value = false; + }; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + inputRef.value?.blur(); + }; + const handleSelect = async (item) => { + emit(INPUT_EVENT, item[props.valueKey]); + emit(UPDATE_MODEL_EVENT, item[props.valueKey]); + emit("select", item); + suggestions.value = []; + highlightedIndex.value = -1; + }; + const highlight = (index) => { + if (!suggestionVisible.value || loading.value) return; + if (index < 0) { + if (!props.loopNavigation) { + highlightedIndex.value = -1; + return; + } + index = suggestions.value.length - 1; + } + if (index >= suggestions.value.length) index = props.loopNavigation ? 0 : suggestions.value.length - 1; + const [suggestion, suggestionList] = getSuggestionContext(); + const highlightItem = suggestionList[index]; + const scrollTop = suggestion.scrollTop; + const { offsetTop, scrollHeight } = highlightItem; + if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) suggestion.scrollTop = offsetTop + scrollHeight - suggestion.clientHeight; + if (offsetTop < scrollTop) suggestion.scrollTop = offsetTop; + highlightedIndex.value = index; + inputRef.value?.ref?.setAttribute("aria-activedescendant", `${listboxId.value}-item-${highlightedIndex.value}`); + }; + const getSuggestionContext = () => { + const suggestion = regionRef.value.querySelector(`.${ns.be("suggestion", "wrap")}`); + return [suggestion, suggestion.querySelectorAll(`.${ns.be("suggestion", "list")} li`)]; + }; + const stopHandle = onClickOutside(listboxRef, (event) => { + if (popperRef.value?.isFocusInsideContent()) return; + const hadIgnoredFocus = ignoreFocusEvent; + ignoreFocusEvent = false; + if (!suggestionVisible.value) return; + if (hadIgnoredFocus) handleBlur(new FocusEvent("blur", event)); + else close(); + }); + const handleKeydown = (e) => { + switch (getEventCode(e)) { + case EVENT_CODE.up: + e.preventDefault(); + highlight(highlightedIndex.value - 1); + break; + case EVENT_CODE.down: + e.preventDefault(); + highlight(highlightedIndex.value + 1); + break; + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + e.preventDefault(); + handleKeyEnter(); + break; + case EVENT_CODE.tab: + close(); + break; + case EVENT_CODE.esc: + handleKeyEscape(e); + break; + case EVENT_CODE.home: + e.preventDefault(); + highlight(0); + break; + case EVENT_CODE.end: + e.preventDefault(); + highlight(suggestions.value.length - 1); + break; + case EVENT_CODE.pageUp: + e.preventDefault(); + highlight(Math.max(0, highlightedIndex.value - 10)); + break; + case EVENT_CODE.pageDown: + e.preventDefault(); + highlight(Math.min(suggestions.value.length - 1, highlightedIndex.value + 10)); + break; + } + }; + (0, vue.onBeforeUnmount)(() => { + stopHandle?.(); + }); + (0, vue.onMounted)(() => { + const inputElement = inputRef.value?.ref; + if (!inputElement) return; + [ + { + key: "role", + value: "textbox" + }, + { + key: "aria-autocomplete", + value: "list" + }, + { + key: "aria-controls", + value: listboxId.value + }, + { + key: "aria-activedescendant", + value: `${listboxId.value}-item-${highlightedIndex.value}` + } + ].forEach(({ key, value }) => inputElement.setAttribute(key, value)); + readonly = inputElement.hasAttribute("readonly"); + }); + __expose({ + highlightedIndex, + activated, + loading, + inputRef, + popperRef, + suggestions, + handleSelect, + handleKeyEnter, + focus, + blur, + close, + highlight, + getData + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), { + ref_key: "popperRef", + ref: popperRef, + visible: suggestionVisible.value, + placement: __props.placement, + "fallback-placements": ["bottom-start", "top-start"], + "popper-class": [(0, vue.unref)(ns).e("popper"), __props.popperClass], + "popper-style": __props.popperStyle, + teleported: __props.teleported, + "append-to": __props.appendTo, + "gpu-acceleration": false, + pure: "", + "manual-mode": "", + effect: "light", + trigger: "click", + transition: `${(0, vue.unref)(ns).namespace.value}-zoom-in-top`, + persistent: "", + role: "listbox", + onBeforeShow: onSuggestionShow, + onHide + }, { + content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref_key: "regionRef", + ref: regionRef, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("suggestion"), (0, vue.unref)(ns).is("loading", suggestionLoading.value)]), + style: (0, vue.normalizeStyle)({ + [__props.fitInputWidth ? "width" : "minWidth"]: dropdownWidth.value, + outline: "none" + }), + role: "region" + }, [ + _ctx.$slots.header ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("suggestion", "header")), + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "header")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createVNode)((0, vue.unref)(ElScrollbar), { + id: (0, vue.unref)(listboxId), + tag: "ul", + "wrap-class": (0, vue.unref)(ns).be("suggestion", "wrap"), + "view-class": (0, vue.unref)(ns).be("suggestion", "list"), + role: "listbox" + }, { + default: (0, vue.withCtx)(() => [suggestionLoading.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("li", _hoisted_2$41, [(0, vue.renderSlot)(_ctx.$slots, "loading", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(ns).is("loading")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(loading_default))]), + _: 1 + }, 8, ["class"])])])) : ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, (0, vue.renderList)(suggestions.value, (item, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + id: `${(0, vue.unref)(listboxId)}-item-${index}`, + key: index, + class: (0, vue.normalizeClass)({ highlighted: highlightedIndex.value === index }), + role: "option", + "aria-selected": highlightedIndex.value === index, + onClick: ($event) => handleSelect(item) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", { item }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(item[__props.valueKey]), 1)])], 10, _hoisted_3$18); + }), 128))]), + _: 3 + }, 8, [ + "id", + "wrap-class", + "view-class" + ]), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("suggestion", "footer")), + onClick: _cache[1] || (_cache[1] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 6)]), + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref_key: "listboxRef", + ref: listboxRef, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), _ctx.$attrs.class]), + style: (0, vue.normalizeStyle)(styles.value), + role: "combobox", + "aria-haspopup": "listbox", + "aria-expanded": suggestionVisible.value, + "aria-owns": (0, vue.unref)(listboxId) + }, [(0, vue.createVNode)((0, vue.unref)(ElInput), (0, vue.mergeProps)({ + ref_key: "inputRef", + ref: inputRef + }, (0, vue.mergeProps)(passInputProps.value, _ctx.$attrs), { + "model-value": __props.modelValue, + disabled: (0, vue.unref)(disabled), + onInput: handleInput, + onChange: handleChange, + onFocus: handleFocus, + onBlur: handleBlur, + onClear: handleClear, + onKeydown: handleKeydown, + onMousedown: handleMouseDown + }), (0, vue.createSlots)({ _: 2 }, [ + _ctx.$slots.prepend ? { + name: "prepend", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "prepend")]), + key: "0" + } : void 0, + _ctx.$slots.append ? { + name: "append", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "append")]), + key: "1" + } : void 0, + _ctx.$slots.prefix ? { + name: "prefix", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "prefix")]), + key: "2" + } : void 0, + _ctx.$slots.suffix ? { + name: "suffix", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "suffix")]), + key: "3" + } : void 0 + ]), 1040, ["model-value", "disabled"])], 14, _hoisted_1$74)]), + _: 3 + }, 8, [ + "visible", + "placement", + "popper-class", + "popper-style", + "teleported", + "append-to", + "transition" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/autocomplete/src/autocomplete.vue + var autocomplete_default = autocomplete_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/autocomplete/index.ts + const ElAutocomplete = withInstall(autocomplete_default); + +//#endregion +//#region ../../packages/components/avatar/src/avatar.ts +/** + * @deprecated Removed after 3.0.0, Use `AvatarProps` instead. + */ + const avatarProps = buildProps({ + size: { + type: [Number, String], + values: componentSizes, + validator: (val) => isNumber(val) + }, + shape: { + type: String, + values: ["circle", "square"] + }, + icon: { type: iconPropType }, + src: { + type: String, + default: "" + }, + alt: String, + srcSet: String, + fit: { + type: definePropType(String), + default: "cover" + } + }); + const avatarEmits = { error: (evt) => evt instanceof Event }; + +//#endregion +//#region ../../packages/components/avatar/src/constants.ts + const avatarGroupContextKey = Symbol("avatarGroupContextKey"); + +//#endregion +//#region ../../packages/components/avatar/src/avatar.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$73 = [ + "src", + "alt", + "srcset" + ]; + var avatar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAvatar", + __name: "avatar", + props: avatarProps, + emits: avatarEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const avatarGroupContext = (0, vue.inject)(avatarGroupContextKey, void 0); + const ns = useNamespace("avatar"); + const hasLoadError = (0, vue.ref)(false); + const size = (0, vue.computed)(() => props.size ?? avatarGroupContext?.size); + const shape = (0, vue.computed)(() => props.shape ?? avatarGroupContext?.shape ?? "circle"); + const avatarClass = (0, vue.computed)(() => { + const { icon } = props; + const classList = [ns.b()]; + if (isString(size.value)) classList.push(ns.m(size.value)); + if (icon) classList.push(ns.m("icon")); + if (shape.value) classList.push(ns.m(shape.value)); + return classList; + }); + const sizeStyle = (0, vue.computed)(() => { + return isNumber(size.value) ? ns.cssVarBlock({ size: addUnit(size.value) }) : void 0; + }); + const fitStyle = (0, vue.computed)(() => ({ objectFit: props.fit })); + (0, vue.watch)(() => [props.src, props.srcSet], () => hasLoadError.value = false); + function handleError(e) { + hasLoadError.value = true; + emit("error", e); + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + class: (0, vue.normalizeClass)(avatarClass.value), + style: (0, vue.normalizeStyle)(sizeStyle.value) + }, [(__props.src || __props.srcSet) && !hasLoadError.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("img", { + key: 0, + src: __props.src, + alt: __props.alt, + srcset: __props.srcSet, + style: (0, vue.normalizeStyle)(fitStyle.value), + onError: handleError + }, null, 44, _hoisted_1$73)) : __props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 1 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + })) : (0, vue.renderSlot)(_ctx.$slots, "default", { key: 2 })], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/avatar/src/avatar.vue + var avatar_default = avatar_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/avatar/src/avatar-group-props.ts + const avatarGroupProps = { + size: { + type: definePropType([Number, String]), + values: componentSizes, + validator: (val) => isNumber(val) + }, + shape: { + type: definePropType(String), + values: ["circle", "square"] + }, + collapseAvatars: Boolean, + collapseAvatarsTooltip: Boolean, + maxCollapseAvatars: { + type: Number, + default: 1 + }, + effect: { + type: definePropType(String), + default: "light" + }, + placement: { + type: definePropType(String), + values: Ee, + default: "top" + }, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + collapseClass: String, + collapseStyle: { type: definePropType([ + String, + Array, + Object + ]) } + }; + +//#endregion +//#region ../../packages/components/avatar/src/avatar-group.tsx + var avatar_group_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAvatarGroup", + props: avatarGroupProps, + setup(props, { slots }) { + const ns = useNamespace("avatar-group"); + (0, vue.provide)(avatarGroupContextKey, (0, vue.reactive)({ + size: (0, vue.toRef)(props, "size"), + shape: (0, vue.toRef)(props, "shape") + })); + return () => { + const avatars = flattedChildren(slots.default?.() ?? []); + let visibleAvatars = avatars; + if (props.collapseAvatars && avatars.length > props.maxCollapseAvatars) { + visibleAvatars = avatars.slice(0, props.maxCollapseAvatars); + const hiddenAvatars = avatars.slice(props.maxCollapseAvatars); + visibleAvatars.push((0, vue.createVNode)(ElTooltip, { + "popperClass": props.popperClass, + "popperStyle": props.popperStyle, + "placement": props.placement, + "effect": props.effect, + "disabled": !props.collapseAvatarsTooltip + }, { + default: () => (0, vue.createVNode)(avatar_default, { + "size": props.size, + "shape": props.shape, + "class": props.collapseClass, + "style": props.collapseStyle + }, { default: () => [(0, vue.createTextVNode)("+ "), hiddenAvatars.length] }), + content: () => (0, vue.createVNode)("div", { "class": ns.e("collapse-avatars") }, [hiddenAvatars.map((node, idx) => (0, vue.isVNode)(node) ? (0, vue.cloneVNode)(node, { key: node.key ?? idx }) : node)]) + })); + } + return (0, vue.createVNode)("div", { "class": ns.b() }, [visibleAvatars]); + }; + } + }); + +//#endregion +//#region ../../packages/components/avatar/index.ts + const ElAvatar = withInstall(avatar_default, { AvatarGroup: avatar_group_default }); + const ElAvatarGroup = withNoopInstall(avatar_group_default); + +//#endregion +//#region ../../packages/components/backtop/src/backtop.ts +/** + * @deprecated Removed after 3.0.0, Use `BacktopProps` instead. + */ + const backtopProps = { + visibilityHeight: { + type: Number, + default: 200 + }, + target: { + type: String, + default: "" + }, + right: { + type: Number, + default: 40 + }, + bottom: { + type: Number, + default: 40 + } + }; + const backtopEmits = { click: (evt) => evt instanceof MouseEvent }; + +//#endregion +//#region ../../packages/components/backtop/src/use-backtop.ts + const useBackTop = (props, emit, componentName) => { + const el = (0, vue.shallowRef)(); + const container = (0, vue.shallowRef)(); + const visible = (0, vue.ref)(false); + const handleScroll = () => { + if (el.value) visible.value = el.value.scrollTop >= props.visibilityHeight; + }; + const handleClick = (event) => { + el.value?.scrollTo({ + top: 0, + behavior: "smooth" + }); + emit("click", event); + }; + useEventListener(container, "scroll", useThrottleFn(handleScroll, 300, true)); + (0, vue.onMounted)(() => { + container.value = document; + el.value = document.documentElement; + if (props.target) { + el.value = document.querySelector(props.target) ?? void 0; + if (!el.value) throwError(componentName, `target does not exist: ${props.target}`); + container.value = el.value; + } + handleScroll(); + }); + return { + visible, + handleClick + }; + }; + +//#endregion +//#region ../../packages/components/backtop/src/backtop.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$15 = "ElBacktop"; + var backtop_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$15, + __name: "backtop", + props: backtopProps, + emits: backtopEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("backtop"); + const { handleClick, visible } = useBackTop(props, emit, COMPONENT_NAME$15); + const backTopStyle = (0, vue.computed)(() => ({ + right: `${props.right}px`, + bottom: `${props.bottom}px` + })); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { name: `${(0, vue.unref)(ns).namespace.value}-fade-in` }, { + default: (0, vue.withCtx)(() => [(0, vue.unref)(visible) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + style: (0, vue.normalizeStyle)(backTopStyle.value), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)((...args) => (0, vue.unref)(handleClick) && (0, vue.unref)(handleClick)(...args), ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(caret_top_default))]), + _: 1 + }, 8, ["class"])])], 6)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, ["name"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/backtop/src/backtop.vue + var backtop_default = backtop_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/backtop/index.ts + const ElBacktop = withInstall(backtop_default); + +//#endregion +//#region ../../packages/components/badge/src/badge.ts +/** + * @deprecated Removed after 3.0.0, Use `BadgeProps` instead. + */ + const badgeProps = buildProps({ + 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: true + }, + color: String, + badgeStyle: { type: definePropType([ + String, + Object, + Array + ]) }, + offset: { + type: definePropType(Array), + default: () => [0, 0] + }, + badgeClass: { type: String } + }); + +//#endregion +//#region ../../packages/components/badge/src/badge.vue?vue&type=script&setup=true&lang.ts + var badge_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElBadge", + __name: "badge", + props: badgeProps, + setup(__props, { expose: __expose }) { + const props = __props; + const ns = useNamespace("badge"); + const content = (0, vue.computed)(() => { + if (props.isDot) return ""; + if (isNumber(props.value) && isNumber(props.max)) return props.max < props.value ? `${props.max}+` : `${props.value}`; + return `${props.value}`; + }); + const style = (0, vue.computed)(() => { + return [{ + backgroundColor: props.color, + marginRight: addUnit(-props.offset[0]), + marginTop: addUnit(props.offset[1]) + }, props.badgeStyle ?? {}]; + }); + __expose({ content }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [(0, vue.renderSlot)(_ctx.$slots, "default"), (0, vue.createVNode)(vue.Transition, { name: `${(0, vue.unref)(ns).namespace.value}-zoom-in-center` }, { + default: (0, vue.withCtx)(() => [!__props.hidden && (content.value || __props.isDot || _ctx.$slots.content) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("sup", { + key: 0, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("content"), + (0, vue.unref)(ns).em("content", __props.type), + (0, vue.unref)(ns).is("fixed", !!_ctx.$slots.default), + (0, vue.unref)(ns).is("dot", __props.isDot), + (0, vue.unref)(ns).is("hide-zero", !__props.showZero && __props.value === 0), + __props.badgeClass + ]), + style: (0, vue.normalizeStyle)(style.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "content", { value: content.value }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(content.value), 1)])], 6)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, ["name"])], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/badge/src/badge.vue + var badge_default = badge_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/badge/index.ts + const ElBadge = withInstall(badge_default); + +//#endregion +//#region ../../packages/components/breadcrumb/src/breadcrumb.ts +/** + * @deprecated Removed after 3.0.0, Use `BreadcrumbProps` instead. + */ + const breadcrumbProps = buildProps({ + separator: { + type: String, + default: "/" + }, + separatorIcon: { type: iconPropType } + }); + +//#endregion +//#region ../../packages/components/breadcrumb/src/constants.ts + const breadcrumbKey = Symbol("breadcrumbKey"); + +//#endregion +//#region ../../packages/components/breadcrumb/src/breadcrumb.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$72 = ["aria-label"]; + var breadcrumb_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElBreadcrumb", + __name: "breadcrumb", + props: breadcrumbProps, + setup(__props) { + const { t } = useLocale(); + const props = __props; + const ns = useNamespace("breadcrumb"); + const breadcrumb = (0, vue.ref)(); + (0, vue.provide)(breadcrumbKey, props); + (0, vue.onMounted)(() => { + const items = breadcrumb.value.querySelectorAll(`.${ns.e("item")}`); + if (items.length) items[items.length - 1].setAttribute("aria-current", "page"); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "breadcrumb", + ref: breadcrumb, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + "aria-label": (0, vue.unref)(t)("el.breadcrumb.label"), + role: "navigation" + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 10, _hoisted_1$72); + }; + } + }); + +//#endregion +//#region ../../packages/components/breadcrumb/src/breadcrumb.vue + var breadcrumb_default = breadcrumb_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/breadcrumb/src/breadcrumb-item.ts +/** + * @deprecated Removed after 3.0.0, Use `BreadcrumbItemProps` instead. + */ + const breadcrumbItemProps = buildProps({ + to: { + type: definePropType([String, Object]), + default: "" + }, + replace: Boolean + }); + +//#endregion +//#region ../../packages/components/breadcrumb/src/breadcrumb-item.vue?vue&type=script&setup=true&lang.ts + var breadcrumb_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElBreadcrumbItem", + __name: "breadcrumb-item", + props: breadcrumbItemProps, + setup(__props) { + const props = __props; + const instance = (0, vue.getCurrentInstance)(); + const breadcrumbContext = (0, vue.inject)(breadcrumbKey, void 0); + const ns = useNamespace("breadcrumb"); + const router = instance.appContext.config.globalProperties.$router; + const onClick = () => { + if (!props.to || !router) return; + props.replace ? router.replace(props.to) : router.push(props.to); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("item")) }, [(0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("inner"), (0, vue.unref)(ns).is("link", !!__props.to)]), + role: "link", + onClick + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2), (0, vue.unref)(breadcrumbContext)?.separatorIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("separator")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.unref)(breadcrumbContext).separatorIcon)))]), + _: 1 + }, 8, ["class"])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("separator")), + role: "presentation" + }, (0, vue.toDisplayString)((0, vue.unref)(breadcrumbContext)?.separator), 3))], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/breadcrumb/src/breadcrumb-item.vue + var breadcrumb_item_default = breadcrumb_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/breadcrumb/index.ts + const ElBreadcrumb = withInstall(breadcrumb_default, { BreadcrumbItem: breadcrumb_item_default }); + const ElBreadcrumbItem = withNoopInstall(breadcrumb_item_default); + +//#endregion +//#region ../../packages/components/button/src/button.ts + const buttonTypes = [ + "default", + "primary", + "success", + "warning", + "info", + "danger", + "text", + "" + ]; + const buttonNativeTypes = [ + "button", + "submit", + "reset" + ]; + /** + * @deprecated Removed after 3.0.0, Use `ButtonProps` instead. + */ + const buttonProps = buildProps({ + size: useSizeProp, + disabled: { + type: Boolean, + default: void 0 + }, + type: { + type: String, + values: buttonTypes, + default: "" + }, + icon: { type: iconPropType }, + nativeType: { + type: String, + values: buttonNativeTypes, + default: "button" + }, + loading: Boolean, + loadingIcon: { + type: iconPropType, + default: () => loading_default + }, + 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: definePropType([String, Object]), + default: "button" + } + }); + const buttonEmits = { click: (evt) => evt instanceof MouseEvent }; + +//#endregion +//#region ../../packages/components/button/src/constants.ts + const buttonGroupContextKey = Symbol("buttonGroupContextKey"); + +//#endregion +//#region ../../packages/components/button/src/use-button.ts + const useButton = (props, emit) => { + useDeprecated({ + from: "type.text", + replacement: "link", + version: "3.0.0", + scope: "props", + ref: "https://element-plus.org/en-US/component/button.html#button-attributes" + }, (0, vue.computed)(() => props.type === "text")); + const buttonGroupContext = (0, vue.inject)(buttonGroupContextKey, void 0); + const globalConfig = useGlobalConfig("button"); + const { form } = useFormItem(); + const _size = useFormSize((0, vue.computed)(() => buttonGroupContext?.size)); + const _disabled = useFormDisabled(); + const _ref = (0, vue.ref)(); + const slots = (0, vue.useSlots)(); + const _type = (0, vue.computed)(() => props.type || buttonGroupContext?.type || globalConfig.value?.type || ""); + const autoInsertSpace = (0, vue.computed)(() => props.autoInsertSpace ?? globalConfig.value?.autoInsertSpace ?? false); + const _plain = (0, vue.computed)(() => props.plain ?? globalConfig.value?.plain ?? false); + const _round = (0, vue.computed)(() => props.round ?? globalConfig.value?.round ?? false); + const _text = (0, vue.computed)(() => props.text ?? globalConfig.value?.text ?? false); + const _dashed = (0, vue.computed)(() => props.dashed ?? globalConfig.value?.dashed ?? false); + const _props = (0, vue.computed)(() => { + if (props.tag === "button") return { + ariaDisabled: _disabled.value || props.loading, + disabled: _disabled.value || props.loading, + autofocus: props.autofocus, + type: props.nativeType + }; + return {}; + }); + const shouldAddSpace = (0, vue.computed)(() => { + const defaultSlot = slots.default?.(); + if (autoInsertSpace.value && defaultSlot?.length === 1) { + const slot = defaultSlot[0]; + if (slot?.type === vue.Text) { + const text = slot.children; + return /^\p{Unified_Ideograph}{2}$/u.test(text.trim()); + } + } + return false; + }); + const handleClick = (evt) => { + if (_disabled.value || props.loading) { + evt.stopPropagation(); + return; + } + if (props.nativeType === "reset") form?.resetFields(); + emit("click", evt); + }; + return { + _disabled, + _size, + _type, + _ref, + _props, + _plain, + _round, + _text, + _dashed, + shouldAddSpace, + handleClick + }; + }; + +//#endregion +//#region ../../node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/module/util.js +/** + * Take input from [0, n] and return it as [0, 1] + * @hidden + */ + function bound01(n, max) { + if (isOnePointZero(n)) n = "100%"; + const isPercent = isPercentage(n); + n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n))); + if (isPercent) n = parseInt(String(n * max), 10) / 100; + if (Math.abs(n - max) < 1e-6) return 1; + if (max === 360) n = (n < 0 ? n % max + max : n % max) / parseFloat(String(max)); + else n = n % max / parseFloat(String(max)); + return n; + } + /** + * Force a number between 0 and 1 + * @hidden + */ + function clamp01(val) { + return Math.min(1, Math.max(0, val)); + } + /** + * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1 + * + * @hidden + */ + function isOnePointZero(n) { + return typeof n === "string" && n.indexOf(".") !== -1 && parseFloat(n) === 1; + } + /** + * Check to see if string passed in is a percentage + * @hidden + */ + function isPercentage(n) { + return typeof n === "string" && n.indexOf("%") !== -1; + } + /** + * Return a valid alpha value [0,1] with all invalid values being set to 1 + * @hidden + */ + function boundAlpha(a) { + a = parseFloat(a); + if (isNaN(a) || a < 0 || a > 1) a = 1; + return a; + } + /** + * Replace a decimal with it's percentage value + * @hidden + */ + function convertToPercentage(n) { + if (Number(n) <= 1) return `${Number(n) * 100}%`; + return n; + } + /** + * Force a hex value to have 2 characters + * @hidden + */ + function pad2(c) { + return c.length === 1 ? "0" + c : String(c); + } + +//#endregion +//#region ../../node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/module/conversion.js +/** + * Handle bounds / percentage checking to conform to CSS color spec + * + * *Assumes:* r, g, b in [0, 255] or [0, 1] + * *Returns:* { r, g, b } in [0, 255] + */ + function rgbToRgb(r, g, b) { + return { + r: bound01(r, 255) * 255, + g: bound01(g, 255) * 255, + b: bound01(b, 255) * 255 + }; + } + /** + * Converts an RGB color value to HSL. + * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1] + * *Returns:* { h, s, l } in [0,1] + */ + function rgbToHsl(r, g, b) { + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + const max = Math.max(r, g, b); + const min = Math.min(r, g, b); + let h = 0; + let s = 0; + const l = (max + min) / 2; + if (max === min) { + s = 0; + h = 0; + } else { + const d = max - min; + s = l > .5 ? d / (2 - max - min) : d / (max + min); + switch (max) { + case r: + h = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / d + 2; + break; + case b: + h = (r - g) / d + 4; + break; + default: break; + } + h /= 6; + } + return { + h, + s, + l + }; + } + function hue2rgb(p, q, t) { + if (t < 0) t += 1; + if (t > 1) t -= 1; + if (t < 1 / 6) return p + (q - p) * (6 * t); + if (t < 1 / 2) return q; + if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; + return p; + } + /** + * Converts an HSL color value to RGB. + * + * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100] + * *Returns:* { r, g, b } in the set [0, 255] + */ + function hslToRgb(h, s, l) { + let r; + let g; + let b; + h = bound01(h, 360); + s = bound01(s, 100); + l = bound01(l, 100); + if (s === 0) { + g = l; + b = l; + r = l; + } else { + const q = l < .5 ? l * (1 + s) : l + s - l * s; + const p = 2 * l - q; + r = hue2rgb(p, q, h + 1 / 3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1 / 3); + } + return { + r: r * 255, + g: g * 255, + b: b * 255 + }; + } + /** + * Converts an RGB color value to HSV + * + * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1] + * *Returns:* { h, s, v } in [0,1] + */ + function rgbToHsv(r, g, b) { + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + const max = Math.max(r, g, b); + const min = Math.min(r, g, b); + let h = 0; + const v = max; + const d = max - min; + const s = max === 0 ? 0 : d / max; + if (max === min) h = 0; + else { + switch (max) { + case r: + h = (g - b) / d + (g < b ? 6 : 0); + break; + case g: + h = (b - r) / d + 2; + break; + case b: + h = (r - g) / d + 4; + break; + default: break; + } + h /= 6; + } + return { + h, + s, + v + }; + } + /** + * Converts an HSV color value to RGB. + * + * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] + * *Returns:* { r, g, b } in the set [0, 255] + */ + function hsvToRgb(h, s, v) { + h = bound01(h, 360) * 6; + s = bound01(s, 100); + v = bound01(v, 100); + const i = Math.floor(h); + const f = h - i; + const p = v * (1 - s); + const q = v * (1 - f * s); + const t = v * (1 - (1 - f) * s); + const mod = i % 6; + const r = [ + v, + q, + p, + p, + t, + v + ][mod]; + const g = [ + t, + v, + v, + q, + p, + p + ][mod]; + const b = [ + p, + p, + t, + v, + v, + q + ][mod]; + return { + r: r * 255, + g: g * 255, + b: b * 255 + }; + } + /** + * Converts an RGB color to hex + * + * *Assumes:* r, g, and b are contained in the set [0, 255] + * *Returns:* a 3 or 6 character hex + */ + function rgbToHex(r, g, b, allow3Char) { + const hex = [ + pad2(Math.round(r).toString(16)), + pad2(Math.round(g).toString(16)), + pad2(Math.round(b).toString(16)) + ]; + if (allow3Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1))) return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); + return hex.join(""); + } + /** + * Converts an RGBA color plus alpha transparency to hex + * + * *Assumes:* r, g, b are contained in the set [0, 255] and a in [0, 1] + * *Returns:* a 4 or 8 character rgba hex + */ + function rgbaToHex(r, g, b, a, allow4Char) { + const hex = [ + pad2(Math.round(r).toString(16)), + pad2(Math.round(g).toString(16)), + pad2(Math.round(b).toString(16)), + pad2(convertDecimalToHex(a)) + ]; + if (allow4Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1)) && hex[3].startsWith(hex[3].charAt(1))) return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0); + return hex.join(""); + } + /** + * Converts CMYK to RBG + * Assumes c, m, y, k are in the set [0, 100] + */ + function cmykToRgb(c, m, y, k) { + const cConv = c / 100; + const mConv = m / 100; + const yConv = y / 100; + const kConv = k / 100; + return { + r: 255 * (1 - cConv) * (1 - kConv), + g: 255 * (1 - mConv) * (1 - kConv), + b: 255 * (1 - yConv) * (1 - kConv) + }; + } + function rgbToCmyk(r, g, b) { + let c = 1 - r / 255; + let m = 1 - g / 255; + let y = 1 - b / 255; + let k = Math.min(c, m, y); + if (k === 1) { + c = 0; + m = 0; + y = 0; + } else { + c = (c - k) / (1 - k) * 100; + m = (m - k) / (1 - k) * 100; + y = (y - k) / (1 - k) * 100; + } + k *= 100; + return { + c: Math.round(c), + m: Math.round(m), + y: Math.round(y), + k: Math.round(k) + }; + } + /** Converts a decimal to a hex value */ + function convertDecimalToHex(d) { + return Math.round(parseFloat(d) * 255).toString(16); + } + /** Converts a hex value to a decimal */ + function convertHexToDecimal(h) { + return parseIntFromHex(h) / 255; + } + /** Parse a base-16 hex value into a base-10 integer */ + function parseIntFromHex(val) { + return parseInt(val, 16); + } + function numberInputToObject(color) { + return { + r: color >> 16, + g: (color & 65280) >> 8, + b: color & 255 + }; + } + +//#endregion +//#region ../../node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/module/css-color-names.js +/** + * @hidden + */ + const names = { + 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" + }; + +//#endregion +//#region ../../node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/module/format-input.js +/** + * Given a string or object, convert that input to RGB + * + * Possible string inputs: + * ``` + * "red" + * "#f00" or "f00" + * "#ff0000" or "ff0000" + * "#ff000000" or "ff000000" + * "rgb 255 0 0" or "rgb (255, 0, 0)" + * "rgb 1.0 0 0" or "rgb (1, 0, 0)" + * "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1" + * "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1" + * "hsl(0, 100%, 50%)" or "hsl 0 100% 50%" + * "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1" + * "hsv(0, 100%, 100%)" or "hsv 0 100% 100%" + * "cmyk(0, 20, 0, 0)" or "cmyk 0 20 0 0" + * ``` + */ + function inputToRGB(color) { + let rgb = { + r: 0, + g: 0, + b: 0 + }; + let a = 1; + let s = null; + let v = null; + let l = null; + let ok = false; + let format = false; + if (typeof color === "string") color = stringInputToObject(color); + if (typeof color === "object") { + if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) { + rgb = rgbToRgb(color.r, color.g, color.b); + ok = true; + format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb"; + } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) { + s = convertToPercentage(color.s); + v = convertToPercentage(color.v); + rgb = hsvToRgb(color.h, s, v); + ok = true; + format = "hsv"; + } else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) { + s = convertToPercentage(color.s); + l = convertToPercentage(color.l); + rgb = hslToRgb(color.h, s, l); + ok = true; + format = "hsl"; + } else if (isValidCSSUnit(color.c) && isValidCSSUnit(color.m) && isValidCSSUnit(color.y) && isValidCSSUnit(color.k)) { + rgb = cmykToRgb(color.c, color.m, color.y, color.k); + ok = true; + format = "cmyk"; + } + if (Object.prototype.hasOwnProperty.call(color, "a")) a = color.a; + } + a = boundAlpha(a); + return { + ok, + format: color.format || format, + r: Math.min(255, Math.max(rgb.r, 0)), + g: Math.min(255, Math.max(rgb.g, 0)), + b: Math.min(255, Math.max(rgb.b, 0)), + a + }; + } + const CSS_UNIT = "(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)"; + const PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?"; + const PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?"; + const matchers = { + CSS_UNIT: new RegExp(CSS_UNIT), + rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), + rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), + hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), + hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), + hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), + hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), + cmyk: new RegExp("cmyk" + PERMISSIVE_MATCH4), + 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})$/ + }; + /** + * Permissive string parsing. Take in a number of formats, and output an object + * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}` or `{c, m, y, k}` or `{c, m, y, k, a}` + */ + function stringInputToObject(color) { + color = color.trim().toLowerCase(); + if (color.length === 0) return false; + let named = false; + if (names[color]) { + color = names[color]; + named = true; + } else if (color === "transparent") return { + r: 0, + g: 0, + b: 0, + a: 0, + format: "name" + }; + let match = matchers.rgb.exec(color); + if (match) return { + r: match[1], + g: match[2], + b: match[3] + }; + match = matchers.rgba.exec(color); + if (match) return { + r: match[1], + g: match[2], + b: match[3], + a: match[4] + }; + match = matchers.hsl.exec(color); + if (match) return { + h: match[1], + s: match[2], + l: match[3] + }; + match = matchers.hsla.exec(color); + if (match) return { + h: match[1], + s: match[2], + l: match[3], + a: match[4] + }; + match = matchers.hsv.exec(color); + if (match) return { + h: match[1], + s: match[2], + v: match[3] + }; + match = matchers.hsva.exec(color); + if (match) return { + h: match[1], + s: match[2], + v: match[3], + a: match[4] + }; + match = matchers.cmyk.exec(color); + if (match) return { + c: match[1], + m: match[2], + y: match[3], + k: match[4] + }; + match = matchers.hex8.exec(color); + if (match) return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + a: convertHexToDecimal(match[4]), + format: named ? "name" : "hex8" + }; + match = matchers.hex6.exec(color); + if (match) return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + format: named ? "name" : "hex" + }; + match = matchers.hex4.exec(color); + if (match) return { + r: parseIntFromHex(match[1] + match[1]), + g: parseIntFromHex(match[2] + match[2]), + b: parseIntFromHex(match[3] + match[3]), + a: convertHexToDecimal(match[4] + match[4]), + format: named ? "name" : "hex8" + }; + match = matchers.hex3.exec(color); + if (match) return { + r: parseIntFromHex(match[1] + match[1]), + g: parseIntFromHex(match[2] + match[2]), + b: parseIntFromHex(match[3] + match[3]), + format: named ? "name" : "hex" + }; + return false; + } + /** + * Check to see if it looks like a CSS unit + * (see `matchers` above for definition). + */ + function isValidCSSUnit(color) { + if (typeof color === "number") return !Number.isNaN(color); + return matchers.CSS_UNIT.test(color); + } + +//#endregion +//#region ../../node_modules/.pnpm/@ctrl+tinycolor@4.2.0/node_modules/@ctrl/tinycolor/dist/module/index.js + var TinyColor = class TinyColor { + constructor(color = "", opts = {}) { + if (color instanceof TinyColor) return color; + if (typeof color === "number") color = numberInputToObject(color); + this.originalInput = color; + const rgb = inputToRGB(color); + this.originalInput = color; + this.r = rgb.r; + this.g = rgb.g; + this.b = rgb.b; + this.a = rgb.a; + this.roundA = Math.round(100 * this.a) / 100; + this.format = opts.format ?? rgb.format; + this.gradientType = opts.gradientType; + if (this.r < 1) this.r = Math.round(this.r); + if (this.g < 1) this.g = Math.round(this.g); + if (this.b < 1) this.b = Math.round(this.b); + this.isValid = rgb.ok; + } + isDark() { + return this.getBrightness() < 128; + } + isLight() { + return !this.isDark(); + } + /** + * Returns the perceived brightness of the color, from 0-255. + */ + getBrightness() { + const rgb = this.toRgb(); + return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1e3; + } + /** + * Returns the perceived luminance of a color, from 0-1. + */ + getLuminance() { + const rgb = this.toRgb(); + let R; + let G; + let B; + const RsRGB = rgb.r / 255; + const GsRGB = rgb.g / 255; + const BsRGB = rgb.b / 255; + if (RsRGB <= .03928) R = RsRGB / 12.92; + else R = Math.pow((RsRGB + .055) / 1.055, 2.4); + if (GsRGB <= .03928) G = GsRGB / 12.92; + else G = Math.pow((GsRGB + .055) / 1.055, 2.4); + if (BsRGB <= .03928) B = BsRGB / 12.92; + else B = Math.pow((BsRGB + .055) / 1.055, 2.4); + return .2126 * R + .7152 * G + .0722 * B; + } + /** + * Returns the alpha value of a color, from 0-1. + */ + getAlpha() { + return this.a; + } + /** + * Sets the alpha value on the current color. + * + * @param alpha - The new alpha value. The accepted range is 0-1. + */ + setAlpha(alpha) { + this.a = boundAlpha(alpha); + this.roundA = Math.round(100 * this.a) / 100; + return this; + } + /** + * Returns whether the color is monochrome. + */ + isMonochrome() { + const { s } = this.toHsl(); + return s === 0; + } + /** + * Returns the object as a HSVA object. + */ + toHsv() { + const hsv = rgbToHsv(this.r, this.g, this.b); + return { + h: hsv.h * 360, + s: hsv.s, + v: hsv.v, + a: this.a + }; + } + /** + * Returns the hsva values interpolated into a string with the following format: + * "hsva(xxx, xxx, xxx, xx)". + */ + toHsvString() { + const hsv = rgbToHsv(this.r, this.g, this.b); + const h = Math.round(hsv.h * 360); + const s = Math.round(hsv.s * 100); + const v = Math.round(hsv.v * 100); + return this.a === 1 ? `hsv(${h}, ${s}%, ${v}%)` : `hsva(${h}, ${s}%, ${v}%, ${this.roundA})`; + } + /** + * Returns the object as a HSLA object. + */ + toHsl() { + const hsl = rgbToHsl(this.r, this.g, this.b); + return { + h: hsl.h * 360, + s: hsl.s, + l: hsl.l, + a: this.a + }; + } + /** + * Returns the hsla values interpolated into a string with the following format: + * "hsla(xxx, xxx, xxx, xx)". + */ + toHslString() { + const hsl = rgbToHsl(this.r, this.g, this.b); + const h = Math.round(hsl.h * 360); + const s = Math.round(hsl.s * 100); + const l = Math.round(hsl.l * 100); + return this.a === 1 ? `hsl(${h}, ${s}%, ${l}%)` : `hsla(${h}, ${s}%, ${l}%, ${this.roundA})`; + } + /** + * Returns the hex value of the color. + * @param allow3Char will shorten hex value to 3 char if possible + */ + toHex(allow3Char = false) { + return rgbToHex(this.r, this.g, this.b, allow3Char); + } + /** + * Returns the hex value of the color -with a # prefixed. + * @param allow3Char will shorten hex value to 3 char if possible + */ + toHexString(allow3Char = false) { + return "#" + this.toHex(allow3Char); + } + /** + * Returns the hex 8 value of the color. + * @param allow4Char will shorten hex value to 4 char if possible + */ + toHex8(allow4Char = false) { + return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char); + } + /** + * Returns the hex 8 value of the color -with a # prefixed. + * @param allow4Char will shorten hex value to 4 char if possible + */ + toHex8String(allow4Char = false) { + return "#" + this.toHex8(allow4Char); + } + /** + * Returns the shorter hex value of the color depends on its alpha -with a # prefixed. + * @param allowShortChar will shorten hex value to 3 or 4 char if possible + */ + toHexShortString(allowShortChar = false) { + return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar); + } + /** + * Returns the object as a RGBA object. + */ + toRgb() { + return { + r: Math.round(this.r), + g: Math.round(this.g), + b: Math.round(this.b), + a: this.a + }; + } + /** + * Returns the RGBA values interpolated into a string with the following format: + * "RGBA(xxx, xxx, xxx, xx)". + */ + toRgbString() { + const r = Math.round(this.r); + const g = Math.round(this.g); + const b = Math.round(this.b); + return this.a === 1 ? `rgb(${r}, ${g}, ${b})` : `rgba(${r}, ${g}, ${b}, ${this.roundA})`; + } + /** + * Returns the object as a RGBA object. + */ + toPercentageRgb() { + const fmt = (x) => `${Math.round(bound01(x, 255) * 100)}%`; + return { + r: fmt(this.r), + g: fmt(this.g), + b: fmt(this.b), + a: this.a + }; + } + /** + * Returns the RGBA relative values interpolated into a string + */ + toPercentageRgbString() { + const rnd = (x) => Math.round(bound01(x, 255) * 100); + return this.a === 1 ? `rgb(${rnd(this.r)}%, ${rnd(this.g)}%, ${rnd(this.b)}%)` : `rgba(${rnd(this.r)}%, ${rnd(this.g)}%, ${rnd(this.b)}%, ${this.roundA})`; + } + toCmyk() { + return { ...rgbToCmyk(this.r, this.g, this.b) }; + } + toCmykString() { + const { c, m, y, k } = rgbToCmyk(this.r, this.g, this.b); + return `cmyk(${c}, ${m}, ${y}, ${k})`; + } + /** + * The 'real' name of the color -if there is one. + */ + toName() { + if (this.a === 0) return "transparent"; + if (this.a < 1) return false; + const hex = "#" + rgbToHex(this.r, this.g, this.b, false); + for (const [key, value] of Object.entries(names)) if (hex === value) return key; + return false; + } + toString(format) { + const formatSet = Boolean(format); + format = format ?? this.format; + let formattedString = false; + const hasAlpha = this.a < 1 && this.a >= 0; + if (!formatSet && hasAlpha && (format.startsWith("hex") || format === "name")) { + if (format === "name" && this.a === 0) return this.toName(); + return this.toRgbString(); + } + if (format === "rgb") formattedString = this.toRgbString(); + if (format === "prgb") formattedString = this.toPercentageRgbString(); + if (format === "hex" || format === "hex6") formattedString = this.toHexString(); + if (format === "hex3") formattedString = this.toHexString(true); + if (format === "hex4") formattedString = this.toHex8String(true); + if (format === "hex8") formattedString = this.toHex8String(); + if (format === "name") formattedString = this.toName(); + if (format === "hsl") formattedString = this.toHslString(); + if (format === "hsv") formattedString = this.toHsvString(); + if (format === "cmyk") formattedString = this.toCmykString(); + return formattedString || this.toHexString(); + } + toNumber() { + return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b); + } + clone() { + return new TinyColor(this.toString()); + } + /** + * Lighten the color a given amount. Providing 100 will always return white. + * @param amount - valid between 1-100 + */ + lighten(amount = 10) { + const hsl = this.toHsl(); + hsl.l += amount / 100; + hsl.l = clamp01(hsl.l); + return new TinyColor(hsl); + } + /** + * Brighten the color a given amount, from 0 to 100. + * @param amount - valid between 1-100 + */ + brighten(amount = 10) { + const rgb = this.toRgb(); + rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100)))); + rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100)))); + rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100)))); + return new TinyColor(rgb); + } + /** + * Darken the color a given amount, from 0 to 100. + * Providing 100 will always return black. + * @param amount - valid between 1-100 + */ + darken(amount = 10) { + const hsl = this.toHsl(); + hsl.l -= amount / 100; + hsl.l = clamp01(hsl.l); + return new TinyColor(hsl); + } + /** + * Mix the color with pure white, from 0 to 100. + * Providing 0 will do nothing, providing 100 will always return white. + * @param amount - valid between 1-100 + */ + tint(amount = 10) { + return this.mix("white", amount); + } + /** + * Mix the color with pure black, from 0 to 100. + * Providing 0 will do nothing, providing 100 will always return black. + * @param amount - valid between 1-100 + */ + shade(amount = 10) { + return this.mix("black", amount); + } + /** + * Desaturate the color a given amount, from 0 to 100. + * Providing 100 will is the same as calling greyscale + * @param amount - valid between 1-100 + */ + desaturate(amount = 10) { + const hsl = this.toHsl(); + hsl.s -= amount / 100; + hsl.s = clamp01(hsl.s); + return new TinyColor(hsl); + } + /** + * Saturate the color a given amount, from 0 to 100. + * @param amount - valid between 1-100 + */ + saturate(amount = 10) { + const hsl = this.toHsl(); + hsl.s += amount / 100; + hsl.s = clamp01(hsl.s); + return new TinyColor(hsl); + } + /** + * Completely desaturates a color into greyscale. + * Same as calling `desaturate(100)` + */ + greyscale() { + return this.desaturate(100); + } + /** + * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue. + * Values outside of this range will be wrapped into this range. + */ + spin(amount) { + const hsl = this.toHsl(); + const hue = (hsl.h + amount) % 360; + hsl.h = hue < 0 ? 360 + hue : hue; + return new TinyColor(hsl); + } + /** + * Mix the current color a given amount with another color, from 0 to 100. + * 0 means no mixing (return current color). + */ + mix(color, amount = 50) { + const rgb1 = this.toRgb(); + const rgb2 = new TinyColor(color).toRgb(); + const p = amount / 100; + return new TinyColor({ + r: (rgb2.r - rgb1.r) * p + rgb1.r, + g: (rgb2.g - rgb1.g) * p + rgb1.g, + b: (rgb2.b - rgb1.b) * p + rgb1.b, + a: (rgb2.a - rgb1.a) * p + rgb1.a + }); + } + analogous(results = 6, slices = 30) { + const hsl = this.toHsl(); + const part = 360 / slices; + const ret = [this]; + for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results;) { + hsl.h = (hsl.h + part) % 360; + ret.push(new TinyColor(hsl)); + } + return ret; + } + /** + * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js + */ + complement() { + const hsl = this.toHsl(); + hsl.h = (hsl.h + 180) % 360; + return new TinyColor(hsl); + } + monochromatic(results = 6) { + const hsv = this.toHsv(); + const { h } = hsv; + const { s } = hsv; + let { v } = hsv; + const res = []; + const modification = 1 / results; + while (results--) { + res.push(new TinyColor({ + h, + s, + v + })); + v = (v + modification) % 1; + } + return res; + } + splitcomplement() { + const hsl = this.toHsl(); + const { h } = hsl; + return [ + this, + new TinyColor({ + h: (h + 72) % 360, + s: hsl.s, + l: hsl.l + }), + new TinyColor({ + h: (h + 216) % 360, + s: hsl.s, + l: hsl.l + }) + ]; + } + /** + * Compute how the color would appear on a background + */ + onBackground(background) { + const fg = this.toRgb(); + const bg = new TinyColor(background).toRgb(); + const alpha = fg.a + bg.a * (1 - fg.a); + return new TinyColor({ + r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha, + g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha, + b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha, + a: alpha + }); + } + /** + * Alias for `polyad(3)` + */ + triad() { + return this.polyad(3); + } + /** + * Alias for `polyad(4)` + */ + tetrad() { + return this.polyad(4); + } + /** + * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...) + * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc... + */ + polyad(n) { + const hsl = this.toHsl(); + const { h } = hsl; + const result = [this]; + const increment = 360 / n; + for (let i = 1; i < n; i++) result.push(new TinyColor({ + h: (h + i * increment) % 360, + s: hsl.s, + l: hsl.l + })); + return result; + } + /** + * compare color vs current color + */ + equals(color) { + const comparedColor = new TinyColor(color); + /** + * RGB and CMYK do not have the same color gamut, so a CMYK conversion will never be 100%. + * This means we need to compare CMYK to CMYK to ensure accuracy of the equals function. + */ + if (this.format === "cmyk" || comparedColor.format === "cmyk") return this.toCmykString() === comparedColor.toCmykString(); + return this.toRgbString() === comparedColor.toRgbString(); + } + }; + +//#endregion +//#region ../../packages/components/button/src/button-custom.ts + function darken(color, amount = 20) { + return color.mix("#141414", amount).toString(); + } + function useButtonCustomStyle(props) { + const _disabled = useFormDisabled(); + const ns = useNamespace("button"); + return (0, vue.computed)(() => { + let styles = {}; + let buttonColor = props.color; + if (buttonColor) { + const match = buttonColor.match(/var\((.*?)\)/); + if (match) buttonColor = window.getComputedStyle(window.document.documentElement).getPropertyValue(match[1]); + const color = new TinyColor(buttonColor); + const activeBgColor = props.dark ? color.tint(20).toString() : darken(color, 20); + if (props.plain) { + styles = ns.cssVarBlock({ + "bg-color": props.dark ? darken(color, 90) : color.tint(90).toString(), + "text-color": buttonColor, + "border-color": props.dark ? darken(color, 50) : color.tint(50).toString(), + "hover-text-color": `var(${ns.cssVarName("color-white")})`, + "hover-bg-color": buttonColor, + "hover-border-color": buttonColor, + "active-bg-color": activeBgColor, + "active-text-color": `var(${ns.cssVarName("color-white")})`, + "active-border-color": activeBgColor + }); + if (_disabled.value) { + styles[ns.cssVarBlockName("disabled-bg-color")] = props.dark ? darken(color, 90) : color.tint(90).toString(); + styles[ns.cssVarBlockName("disabled-text-color")] = props.dark ? darken(color, 50) : color.tint(50).toString(); + styles[ns.cssVarBlockName("disabled-border-color")] = props.dark ? darken(color, 80) : color.tint(80).toString(); + } + } else if (props.link || props.text) { + const hoverColor = props.dark ? darken(color, 30) : color.tint(30).toString(); + styles = ns.cssVarBlock({ + "text-color": buttonColor, + "hover-text-color": hoverColor, + "active-text-color": activeBgColor + }); + if (props.link) { + styles[ns.cssVarBlockName("hover-link-text-color")] = hoverColor; + styles[ns.cssVarBlockName("active-color")] = activeBgColor; + } + if (_disabled.value) { + const disabledColor = props.dark ? darken(color, 50) : color.tint(50).toString(); + styles[ns.cssVarBlockName("disabled-bg-color")] = "transparent"; + styles[ns.cssVarBlockName("disabled-text-color")] = disabledColor; + styles[ns.cssVarBlockName("disabled-border-color")] = "transparent"; + } + } else { + const hoverBgColor = props.dark ? darken(color, 30) : color.tint(30).toString(); + const textColor = color.isDark() ? `var(${ns.cssVarName("color-white")})` : `var(${ns.cssVarName("color-black")})`; + styles = ns.cssVarBlock({ + "bg-color": buttonColor, + "text-color": textColor, + "border-color": buttonColor, + "hover-bg-color": hoverBgColor, + "hover-text-color": textColor, + "hover-border-color": hoverBgColor, + "active-bg-color": activeBgColor, + "active-border-color": activeBgColor + }); + if (_disabled.value) { + const disabledButtonColor = props.dark ? darken(color, 50) : color.tint(50).toString(); + styles[ns.cssVarBlockName("disabled-bg-color")] = disabledButtonColor; + styles[ns.cssVarBlockName("disabled-text-color")] = props.dark ? "rgba(255, 255, 255, 0.5)" : `var(${ns.cssVarName("color-white")})`; + styles[ns.cssVarBlockName("disabled-border-color")] = disabledButtonColor; + } + } + } + return styles; + }); + } + +//#endregion +//#region ../../packages/components/button/src/button.vue?vue&type=script&setup=true&lang.ts + var button_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElButton", + __name: "button", + props: buttonProps, + emits: buttonEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const buttonStyle = useButtonCustomStyle(props); + const ns = useNamespace("button"); + const { _ref, _size, _type, _disabled, _props, _plain, _round, _text, _dashed, shouldAddSpace, handleClick } = useButton(props, emit); + const buttonKls = (0, vue.computed)(() => [ + ns.b(), + ns.m(_type.value), + ns.m(_size.value), + ns.is("disabled", _disabled.value), + ns.is("loading", props.loading), + ns.is("plain", _plain.value), + ns.is("round", _round.value), + ns.is("circle", props.circle), + ns.is("text", _text.value), + ns.is("dashed", _dashed.value), + ns.is("link", props.link), + ns.is("has-bg", props.bg) + ]); + __expose({ + ref: _ref, + size: _size, + type: _type, + disabled: _disabled, + shouldAddSpace + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.tag), (0, vue.mergeProps)({ + ref_key: "_ref", + ref: _ref + }, (0, vue.unref)(_props), { + class: buttonKls.value, + style: (0, vue.unref)(buttonStyle), + onClick: (0, vue.unref)(handleClick) + }), { + default: (0, vue.withCtx)(() => [__props.loading ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [_ctx.$slots.loading ? (0, vue.renderSlot)(_ctx.$slots, "loading", { key: 0 }) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).is("loading")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.loadingIcon)))]), + _: 1 + }, 8, ["class"]))], 64)) : __props.icon || _ctx.$slots.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 1 }, { + default: (0, vue.withCtx)(() => [__props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon), { key: 0 })) : (0, vue.renderSlot)(_ctx.$slots, "icon", { key: 1 })]), + _: 3 + })) : (0, vue.createCommentVNode)("v-if", true), _ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 2, + class: (0, vue.normalizeClass)({ [(0, vue.unref)(ns).em("text", "expand")]: (0, vue.unref)(shouldAddSpace) }) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 16, [ + "class", + "style", + "onClick" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/button/src/button.vue + var button_default$1 = button_vue_vue_type_script_setup_true_lang_default$1; + +//#endregion +//#region ../../packages/components/button/src/button-group.ts +/** + * @deprecated Removed after 3.0.0, Use `ButtonGroupProps` instead. + */ + const buttonGroupProps = { + size: buttonProps.size, + type: buttonProps.type, + direction: { + type: definePropType(String), + values: ["horizontal", "vertical"], + default: "horizontal" + } + }; + +//#endregion +//#region ../../packages/components/button/src/button-group.vue?vue&type=script&setup=true&lang.ts + var button_group_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElButtonGroup", + __name: "button-group", + props: buttonGroupProps, + setup(__props) { + const props = __props; + (0, vue.provide)(buttonGroupContextKey, (0, vue.reactive)({ + size: (0, vue.toRef)(props, "size"), + type: (0, vue.toRef)(props, "type") + })); + const ns = useNamespace("button"); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("group"), (0, vue.unref)(ns).bm("group", props.direction)]) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/button/src/button-group.vue + var button_group_default = button_group_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/button/index.ts + const ElButton = withInstall(button_default$1, { ButtonGroup: button_group_default }); + const ElButtonGroup = withNoopInstall(button_group_default); + +//#endregion +//#region ../../packages/components/calendar/src/calendar.ts + const isValidRange$1 = (range) => isArray$1(range) && range.length === 2 && range.every((item) => isDate(item)); + /** + * @deprecated Removed after 3.0.0, Use `CalendarProps` instead. + */ + const calendarProps = buildProps({ + modelValue: { type: Date }, + range: { + type: definePropType(Array), + validator: isValidRange$1 + }, + controllerType: { + type: String, + values: ["button", "select"], + default: "button" + }, + formatter: { type: definePropType(Function) } + }); + const calendarEmits = { + [UPDATE_MODEL_EVENT]: (value) => isDate(value), + [INPUT_EVENT]: (value) => isDate(value) + }; + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/dayjs.min.js + var require_dayjs_min = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(t, e) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).dayjs = e(); + })(exports, (function() { + "use strict"; + var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", c = "month", f = "quarter", h = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { + 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(t) { + var e = [ + "th", + "st", + "nd", + "rd" + ], n = t % 100; + return "[" + t + (e[(n - 20) % 10] || e[n] || e[0]) + "]"; + } + }, m = function(t, e, n) { + var r = String(t); + return !r || r.length >= e ? t : "" + Array(e + 1 - r.length).join(n) + t; + }, v = { + s: m, + z: function(t) { + var e = -t.utcOffset(), n = Math.abs(e), r = Math.floor(n / 60), i = n % 60; + return (e <= 0 ? "+" : "-") + m(r, 2, "0") + ":" + m(i, 2, "0"); + }, + m: function t(e, n) { + if (e.date() < n.date()) return -t(n, e); + var r = 12 * (n.year() - e.year()) + (n.month() - e.month()), i = e.clone().add(r, c), s = n - i < 0, u = e.clone().add(r + (s ? -1 : 1), c); + return +(-(r + (n - i) / (s ? i - u : u - i)) || 0); + }, + a: function(t) { + return t < 0 ? Math.ceil(t) || 0 : Math.floor(t); + }, + p: function(t) { + return { + M: c, + y: h, + w: o, + d: a, + D: d, + h: u, + m: s, + s: i, + ms: r, + Q: f + }[t] || String(t || "").toLowerCase().replace(/s$/, ""); + }, + u: function(t) { + return void 0 === t; + } + }, g = "en", D = {}; + D[g] = M; + var p = "$isDayjsObject", S = function(t) { + return t instanceof _ || !(!t || !t[p]); + }, w = function t(e, n, r) { + var i; + if (!e) return g; + if ("string" == typeof e) { + var s = e.toLowerCase(); + D[s] && (i = s), n && (D[s] = n, i = s); + var u = e.split("-"); + if (!i && u.length > 1) return t(u[0]); + } else { + var a = e.name; + D[a] = e, i = a; + } + return !r && i && (g = i), i || !r && g; + }, O = function(t, e) { + if (S(t)) return t.clone(); + var n = "object" == typeof e ? e : {}; + return n.date = t, n.args = arguments, new _(n); + }, b = v; + b.l = w, b.i = S, b.w = function(t, e) { + return O(t, { + locale: e.$L, + utc: e.$u, + x: e.$x, + $offset: e.$offset + }); + }; + var _ = function() { + function M(t) { + this.$L = w(t.locale, null, !0), this.parse(t), this.$x = this.$x || t.x || {}, this[p] = !0; + } + var m = M.prototype; + return m.parse = function(t) { + this.$d = function(t) { + var e = t.date, n = t.utc; + if (null === e) return /* @__PURE__ */ new Date(NaN); + if (b.u(e)) return /* @__PURE__ */ new Date(); + if (e instanceof Date) return new Date(e); + if ("string" == typeof e && !/Z$/i.test(e)) { + var r = e.match($); + if (r) { + var i = r[2] - 1 || 0, s = (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, s)) : new Date(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s); + } + } + return new Date(e); + }(t), this.init(); + }, m.init = function() { + var t = this.$d; + this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t.getDay(), this.$H = t.getHours(), this.$m = t.getMinutes(), this.$s = t.getSeconds(), this.$ms = t.getMilliseconds(); + }, m.$utils = function() { + return b; + }, m.isValid = function() { + return !(this.$d.toString() === l); + }, m.isSame = function(t, e) { + var n = O(t); + return this.startOf(e) <= n && n <= this.endOf(e); + }, m.isAfter = function(t, e) { + return O(t) < this.startOf(e); + }, m.isBefore = function(t, e) { + return this.endOf(e) < O(t); + }, m.$g = function(t, e, n) { + return b.u(t) ? this[e] : this.set(n, t); + }, m.unix = function() { + return Math.floor(this.valueOf() / 1e3); + }, m.valueOf = function() { + return this.$d.getTime(); + }, m.startOf = function(t, e) { + var n = this, r = !!b.u(e) || e, f = b.p(t), l = function(t, e) { + var i = b.w(n.$u ? Date.UTC(n.$y, e, t) : new Date(n.$y, e, t), n); + return r ? i : i.endOf(a); + }, $ = function(t, e) { + return b.w(n.toDate()[t].apply(n.toDate("s"), (r ? [ + 0, + 0, + 0, + 0 + ] : [ + 23, + 59, + 59, + 999 + ]).slice(e)), n); + }, y = this.$W, M = this.$M, m = this.$D, v = "set" + (this.$u ? "UTC" : ""); + switch (f) { + case h: return r ? l(1, 0) : l(31, 11); + case c: return r ? l(1, M) : l(0, M + 1); + case o: + var g = this.$locale().weekStart || 0, D = (y < g ? y + 7 : y) - g; + return l(r ? m - D : m + (6 - D), M); + case a: + case d: return $(v + "Hours", 0); + case u: return $(v + "Minutes", 1); + case s: return $(v + "Seconds", 2); + case i: return $(v + "Milliseconds", 3); + default: return this.clone(); + } + }, m.endOf = function(t) { + return this.startOf(t, !1); + }, m.$set = function(t, e) { + var n, o = b.p(t), f = "set" + (this.$u ? "UTC" : ""), l = (n = {}, n[a] = f + "Date", n[d] = f + "Date", n[c] = f + "Month", n[h] = f + "FullYear", n[u] = f + "Hours", n[s] = f + "Minutes", n[i] = f + "Seconds", n[r] = f + "Milliseconds", n)[o], $ = o === a ? this.$D + (e - this.$W) : e; + if (o === c || o === h) { + var y = this.clone().set(d, 1); + y.$d[l]($), y.init(), this.$d = y.set(d, Math.min(this.$D, y.daysInMonth())).$d; + } else l && this.$d[l]($); + return this.init(), this; + }, m.set = function(t, e) { + return this.clone().$set(t, e); + }, m.get = function(t) { + return this[b.p(t)](); + }, m.add = function(r, f) { + var d, l = this; + r = Number(r); + var $ = b.p(f), y = function(t) { + var e = O(l); + return b.w(e.date(e.date() + Math.round(t * r)), l); + }; + if ($ === c) return this.set(c, this.$M + r); + if ($ === h) return this.set(h, this.$y + r); + if ($ === a) return y(1); + if ($ === o) return y(7); + var M = (d = {}, d[s] = e, d[u] = n, d[i] = t, d)[$] || 1, m = this.$d.getTime() + r * M; + return b.w(m, this); + }, m.subtract = function(t, e) { + return this.add(-1 * t, e); + }, m.format = function(t) { + var e = this, n = this.$locale(); + if (!this.isValid()) return n.invalidDate || l; + var r = t || "YYYY-MM-DDTHH:mm:ssZ", i = b.z(this), s = this.$H, u = this.$m, a = this.$M, o = n.weekdays, c = n.months, f = n.meridiem, h = function(t, n, i, s) { + return t && (t[n] || t(e, r)) || i[n].slice(0, s); + }, d = function(t) { + return b.s(s % 12 || 12, t, "0"); + }, $ = f || function(t, e, n) { + var r = t < 12 ? "AM" : "PM"; + return n ? r.toLowerCase() : r; + }; + return r.replace(y, (function(t, r) { + return r || function(t) { + switch (t) { + case "YY": return String(e.$y).slice(-2); + case "YYYY": return b.s(e.$y, 4, "0"); + case "M": return a + 1; + case "MM": return b.s(a + 1, 2, "0"); + case "MMM": return h(n.monthsShort, a, c, 3); + case "MMMM": return h(c, a); + case "D": return e.$D; + case "DD": return b.s(e.$D, 2, "0"); + case "d": return String(e.$W); + case "dd": return h(n.weekdaysMin, e.$W, o, 2); + case "ddd": return h(n.weekdaysShort, e.$W, o, 3); + case "dddd": return o[e.$W]; + case "H": return String(s); + case "HH": return b.s(s, 2, "0"); + case "h": return d(1); + case "hh": return d(2); + case "a": return $(s, u, !0); + case "A": return $(s, u, !1); + case "m": return String(u); + case "mm": return b.s(u, 2, "0"); + case "s": return String(e.$s); + case "ss": return b.s(e.$s, 2, "0"); + case "SSS": return b.s(e.$ms, 3, "0"); + case "Z": return i; + } + return null; + }(t) || i.replace(":", ""); + })); + }, m.utcOffset = function() { + return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); + }, m.diff = function(r, d, l) { + var $, y = this, M = b.p(d), m = O(r), v = (m.utcOffset() - this.utcOffset()) * e, g = this - m, D = function() { + return b.m(y, m); + }; + switch (M) { + case h: + $ = D() / 12; + break; + case c: + $ = D(); + break; + case f: + $ = D() / 3; + break; + case o: + $ = (g - v) / 6048e5; + break; + case a: + $ = (g - v) / 864e5; + break; + case u: + $ = g / n; + break; + case s: + $ = g / e; + break; + case i: + $ = g / t; + break; + default: $ = g; + } + return l ? $ : b.a($); + }, m.daysInMonth = function() { + return this.endOf(c).$D; + }, m.$locale = function() { + return D[this.$L]; + }, m.locale = function(t, e) { + if (!t) return this.$L; + var n = this.clone(), r = w(t, e, !0); + return r && (n.$L = r), n; + }, m.clone = function() { + return b.w(this.$d, this); + }, m.toDate = function() { + return new Date(this.valueOf()); + }, m.toJSON = function() { + return this.isValid() ? this.toISOString() : null; + }, m.toISOString = function() { + return this.$d.toISOString(); + }, m.toString = function() { + return this.$d.toUTCString(); + }, M; + }(), k = _.prototype; + return O.prototype = k, [ + ["$ms", r], + ["$s", i], + ["$m", s], + ["$H", u], + ["$W", a], + ["$M", c], + ["$y", h], + ["$D", d] + ].forEach((function(t) { + k[t[1]] = function(e) { + return this.$g(e, t[0], t[1]); + }; + })), O.extend = function(t, e) { + return t.$i || (t(e, _, O), t.$i = !0), O; + }, O.locale = w, O.isDayjs = S, O.unix = function(t) { + return O(1e3 * t); + }, O.en = D[g], O.Ls = D, O.p = {}, O; + })); + })); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/customParseFormat.js + var require_customParseFormat = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, t) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_customParseFormat = t(); + })(exports, (function() { + "use strict"; + 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?/, o = /\d*[^-_:/,()\s\d]+/, s = {}, a = function(e) { + return (e = +e) + (e > 68 ? 1900 : 2e3); + }; + var f = function(e) { + return function(t) { + this[e] = +t; + }; + }, h = [/[+-]\d\d:?(\d\d)?|Z/, function(e) { + (this.zone || (this.zone = {})).offset = function(e) { + if (!e) return 0; + if ("Z" === e) return 0; + var t = e.match(/([+-]|\d\d)/g), n = 60 * t[1] + (+t[2] || 0); + return 0 === n ? 0 : "+" === t[0] ? -n : n; + }(e); + }], u = function(e) { + var t = s[e]; + return t && (t.indexOf ? t : t.s.concat(t.f)); + }, d = function(e, t) { + var n, r = s.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; + }, c = { + A: [o, function(e) { + this.afternoon = d(e, !1); + }], + a: [o, 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, f("seconds")], + ss: [i, f("seconds")], + m: [i, f("minutes")], + mm: [i, f("minutes")], + H: [i, f("hours")], + h: [i, f("hours")], + HH: [i, f("hours")], + hh: [i, f("hours")], + D: [i, f("day")], + DD: [r, f("day")], + Do: [o, function(e) { + var t = s.ordinal; + if (this.day = e.match(/\d+/)[0], t) for (var r = 1; r <= 31; r += 1) t(r).replace(/\[|\]/g, "") === e && (this.day = r); + }], + w: [i, f("week")], + ww: [r, f("week")], + M: [i, f("month")], + MM: [r, f("month")], + MMM: [o, 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 new Error(); + this.month = n % 12 || n; + }], + MMMM: [o, function(e) { + var t = u("months").indexOf(e) + 1; + if (t < 1) throw new Error(); + this.month = t % 12 || t; + }], + Y: [/[+-]?\d+/, f("year")], + YY: [r, function(e) { + this.year = a(e); + }], + YYYY: [/\d{4}/, f("year")], + Z: h, + ZZ: h + }; + function l(n) { + var r = n, i = s && s.formats; + for (var o = (n = r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, (function(t, n, r) { + var o = r && r.toUpperCase(); + return n || i[r] || e[r] || i[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, (function(e, t, n) { + return t || n.slice(1); + })); + }))).match(t), a = o.length, f = 0; f < a; f += 1) { + var h = o[f], u = c[h], d = u && u[0], l = u && u[1]; + o[f] = l ? { + regex: d, + parser: l + } : h.replace(/^\[|\]$/g, ""); + } + return function(e) { + for (var t = {}, n = 0, r = 0; n < a; n += 1) { + var i = o[n]; + if ("string" == typeof i) r += i.length; + else { + var s = i.regex, f = i.parser, h = e.slice(r), u = s.exec(h)[0]; + f.call(t, u), e = e.replace(u, ""); + } + } + return function(e) { + var t = e.afternoon; + if (void 0 !== t) { + var n = e.hours; + t ? n < 12 && (e.hours += 12) : 12 === n && (e.hours = 0), delete e.afternoon; + } + }(t), t; + }; + } + return function(e, t, n) { + n.p.customParseFormat = !0, e && e.parseTwoDigitYear && (a = e.parseTwoDigitYear); + var r = t.prototype, i = r.parse; + r.parse = function(e) { + var t = e.date, r = e.utc, o = e.args; + this.$u = r; + var a = o[1]; + if ("string" == typeof a) { + var f = !0 === o[2], h = !0 === o[3], u = f || h, d = o[2]; + h && (d = o[2]), s = this.$locale(), !f && d && (s = n.Ls[d]), this.$d = function(e, t, n, r) { + try { + if (["x", "X"].indexOf(t) > -1) return /* @__PURE__ */ new Date(("X" === t ? 1e3 : 1) * e); + var i = l(t)(e), o = i.year, s = i.month, a = i.day, f = i.hours, h = i.minutes, u = i.seconds, d = i.milliseconds, c = i.zone, m = i.week, M = /* @__PURE__ */ new Date(), Y = a || (o || s ? 1 : M.getDate()), p = o || M.getFullYear(), v = 0; + o && !s || (v = s > 0 ? s - 1 : M.getMonth()); + var D, w = f || 0, g = h || 0, y = u || 0, L = d || 0; + return c ? new Date(Date.UTC(p, v, Y, w, g, y, L + 60 * c.offset * 1e3)) : n ? new Date(Date.UTC(p, v, Y, w, g, y, L)) : (D = new Date(p, v, Y, w, g, y, L), m && (D = r(D).week(m).toDate()), D); + } catch (e) { + return /* @__PURE__ */ new Date(""); + } + }(t, a, r, n), this.init(), d && !0 !== d && (this.$L = this.locale(d).$L), u && t != this.format(a) && (this.$d = /* @__PURE__ */ new Date("")), s = {}; + } else if (a instanceof Array) for (var c = a.length, m = 1; m <= c; m += 1) { + o[1] = a[m - 1]; + var M = n.apply(this, o); + if (M.isValid()) { + this.$d = M.$d, this.$L = M.$L, this.init(); + break; + } + m === c && (this.$d = /* @__PURE__ */ new Date("")); + } + else i.call(this, e); + }; + }; + })); + })); + +//#endregion +//#region ../../packages/components/time-picker/src/constants.ts +var import_customParseFormat = /* @__PURE__ */ __toESM(require_customParseFormat()); +var import_dayjs_min = /* @__PURE__ */ __toESM(require_dayjs_min()); + const timeUnits = [ + "hours", + "minutes", + "seconds" + ]; + const PICKER_BASE_INJECTION_KEY = "EP_PICKER_BASE"; + const PICKER_POPPER_OPTIONS_INJECTION_KEY = "ElPopperOptions"; + const ROOT_COMMON_PICKER_INJECTION_KEY = Symbol("commonPickerContextKey"); + const DEFAULT_FORMATS_TIME = "HH:mm:ss"; + const DEFAULT_FORMATS_DATE = "YYYY-MM-DD"; + const DEFAULT_FORMATS_DATEPICKER = { + date: DEFAULT_FORMATS_DATE, + dates: DEFAULT_FORMATS_DATE, + week: "gggg[w]ww", + year: "YYYY", + years: "YYYY", + month: "YYYY-MM", + months: "YYYY-MM", + datetime: `${DEFAULT_FORMATS_DATE} ${DEFAULT_FORMATS_TIME}`, + monthrange: "YYYY-MM", + yearrange: "YYYY", + daterange: DEFAULT_FORMATS_DATE, + datetimerange: `${DEFAULT_FORMATS_DATE} ${DEFAULT_FORMATS_TIME}` + }; + +//#endregion +//#region ../../packages/components/time-picker/src/utils.ts + const buildTimeList = (value, bound) => { + return [ + value > 0 ? value - 1 : void 0, + value, + value < bound ? value + 1 : void 0 + ]; + }; + const rangeArr = (n) => Array.from(Array.from({ length: n }).keys()); + const extractDateFormat = (format) => { + return format.replace(/\W?m{1,2}|\W?ZZ/g, "").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, "").trim(); + }; + const extractTimeFormat = (format) => { + return format.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g, "").trim(); + }; + const dateEquals = function(a, b) { + const aIsDate = isDate(a); + const bIsDate = isDate(b); + if (aIsDate && bIsDate) return a.getTime() === b.getTime(); + if (!aIsDate && !bIsDate) return a === b; + return false; + }; + const valueEquals = function(a, b) { + const aIsArray = isArray$1(a); + const bIsArray = isArray$1(b); + if (aIsArray && bIsArray) { + if (a.length !== b.length) return false; + return a.every((item, index) => dateEquals(item, b[index])); + } + if (!aIsArray && !bIsArray) return dateEquals(a, b); + return false; + }; + const parseDate = function(date, format, lang) { + const day = isEmpty(format) || format === "x" ? (0, import_dayjs_min.default)(date).locale(lang) : (0, import_dayjs_min.default)(date, format).locale(lang); + return day.isValid() ? day : void 0; + }; + const formatter = function(date, format, lang) { + if (isEmpty(format)) return date; + if (format === "x") return +date; + return (0, import_dayjs_min.default)(date).locale(lang).format(format); + }; + const makeList = (total, method) => { + const arr = []; + const disabledArr = method?.(); + for (let i = 0; i < total; i++) arr.push(disabledArr?.includes(i) ?? false); + return arr; + }; + const dayOrDaysToDate = (dayOrDays) => { + return isArray$1(dayOrDays) ? dayOrDays.map((d) => d.toDate()) : dayOrDays.toDate(); + }; + +//#endregion +//#region ../../packages/components/time-picker/src/composables/use-common-picker.ts + const useCommonPicker = (props, emit) => { + const { lang } = useLocale(); + const pickerVisible = (0, vue.ref)(false); + const pickerActualVisible = (0, vue.ref)(false); + const userInput = (0, vue.ref)(null); + const valueIsEmpty = (0, vue.computed)(() => { + const { modelValue } = props; + return !modelValue || isArray$1(modelValue) && !modelValue.filter(Boolean).length; + }); + const emitInput = (input) => { + if (!valueEquals(props.modelValue, input)) { + let formatted; + if (isArray$1(input)) formatted = input.map((item) => formatter(item, props.valueFormat, lang.value)); + else if (input) formatted = formatter(input, props.valueFormat, lang.value); + emit(UPDATE_MODEL_EVENT, input ? formatted : input, lang.value); + } + }; + const parsedValue = (0, vue.computed)(() => { + let dayOrDays; + if (valueIsEmpty.value) { + if (pickerOptions.value.getDefaultValue) dayOrDays = pickerOptions.value.getDefaultValue(); + } else if (isArray$1(props.modelValue)) dayOrDays = props.modelValue.map((d) => parseDate(d, props.valueFormat, lang.value)); + else dayOrDays = parseDate(props.modelValue ?? "", props.valueFormat, lang.value); + if (pickerOptions.value.getRangeAvailableTime) { + const availableResult = pickerOptions.value.getRangeAvailableTime(dayOrDays); + if (!isEqual$1(availableResult, dayOrDays)) { + dayOrDays = availableResult; + if (!valueIsEmpty.value) emitInput(dayOrDaysToDate(dayOrDays)); + } + } + if (isArray$1(dayOrDays) && dayOrDays.some((day) => !day)) dayOrDays = []; + return dayOrDays; + }); + const pickerOptions = (0, vue.ref)({}); + const onSetPickerOption = (e) => { + pickerOptions.value[e[0]] = e[1]; + pickerOptions.value.panelReady = true; + }; + const onCalendarChange = (e) => { + emit("calendar-change", e); + }; + const onPanelChange = (value, mode, view) => { + emit("panel-change", value, mode, view); + }; + const onPick = (date = "", visible = false) => { + pickerVisible.value = visible; + let result; + if (isArray$1(date)) result = date.map((_) => _.toDate()); + else result = date ? date.toDate() : date; + userInput.value = null; + emitInput(result); + }; + return { + parsedValue, + pickerActualVisible, + pickerOptions, + pickerVisible, + userInput, + valueIsEmpty, + emitInput, + onCalendarChange, + onPanelChange, + onPick, + onSetPickerOption + }; + }; + +//#endregion +//#region ../../packages/components/time-picker/src/props/shared.ts + const disabledTimeListsProps = buildProps({ + disabledHours: { type: definePropType(Function) }, + disabledMinutes: { type: definePropType(Function) }, + disabledSeconds: { type: definePropType(Function) } + }); + const timePanelSharedProps = buildProps({ + visible: Boolean, + actualVisible: { + type: Boolean, + default: void 0 + }, + format: { + type: String, + default: "" + } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/common/props.ts + const timePickerDefaultProps = buildProps({ + automaticDropdown: { + type: Boolean, + default: true + }, + id: { type: definePropType([Array, String]) }, + name: { type: definePropType([Array, String]) }, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + format: String, + valueFormat: String, + dateFormat: String, + timeFormat: String, + type: { + type: String, + default: "" + }, + clearable: { + type: Boolean, + default: true + }, + clearIcon: { + type: definePropType([String, Object]), + default: circle_close_default + }, + editable: { + type: Boolean, + default: true + }, + saveOnBlur: { + type: Boolean, + default: true + }, + prefixIcon: { + type: definePropType([String, Object]), + default: "" + }, + size: useSizeProp, + readonly: Boolean, + disabled: { + type: Boolean, + default: void 0 + }, + placeholder: { + type: String, + default: "" + }, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + modelValue: { + type: definePropType([ + Date, + Array, + String, + Number + ]), + default: "" + }, + rangeSeparator: { + type: String, + default: "-" + }, + startPlaceholder: String, + endPlaceholder: String, + defaultValue: { type: definePropType([Date, Array]) }, + defaultTime: { type: definePropType([Date, Array]) }, + isRange: Boolean, + ...disabledTimeListsProps, + disabledDate: { type: Function }, + cellClassName: { type: Function }, + shortcuts: { + type: Array, + default: () => [] + }, + arrowControl: Boolean, + tabindex: { + type: definePropType([String, Number]), + default: 0 + }, + validateEvent: { + type: Boolean, + default: true + }, + unlinkPanels: Boolean, + placement: { + type: definePropType(String), + values: Ee, + default: "bottom" + }, + fallbackPlacements: { + type: definePropType(Array), + default: [ + "bottom", + "top", + "right", + "left" + ] + }, + ...useEmptyValuesProps, + ...useAriaProps(["ariaLabel"]), + showNow: { + type: Boolean, + default: true + }, + showConfirm: { + type: Boolean, + default: true + }, + showFooter: { + type: Boolean, + default: true + }, + showWeekNumber: Boolean + }); + const timePickerRangeTriggerProps = buildProps({ + id: { type: definePropType(Array) }, + name: { type: definePropType(Array) }, + modelValue: { type: definePropType([Array, String]) }, + startPlaceholder: String, + endPlaceholder: String, + disabled: Boolean + }); + /** + * @deprecated Use `timePickerRangeTriggerProps` instead. This will be removed in future versions. + */ + const timePickerRngeTriggerProps = timePickerRangeTriggerProps; + +//#endregion +//#region ../../packages/components/time-picker/src/common/picker-range-trigger.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$71 = [ + "id", + "name", + "placeholder", + "value", + "disabled" + ]; + const _hoisted_2$40 = [ + "id", + "name", + "placeholder", + "value", + "disabled" + ]; + var picker_range_trigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "PickerRangeTrigger", + inheritAttrs: false, + __name: "picker-range-trigger", + props: timePickerRangeTriggerProps, + emits: [ + "mouseenter", + "mouseleave", + "click", + "touchstart", + "focus", + "blur", + "startInput", + "endInput", + "startChange", + "endChange" + ], + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const { formItem } = useFormItem(); + const { inputId } = useFormItemInputId((0, vue.reactive)({ id: (0, vue.computed)(() => props.id?.[0]) }), { formItemContext: formItem }); + const attrs = useAttrs(); + const nsDate = useNamespace("date"); + const nsRange = useNamespace("range"); + const inputRef = (0, vue.ref)(); + const endInputRef = (0, vue.ref)(); + const { wrapperRef, isFocused } = useFocusController(inputRef, { disabled: (0, vue.computed)(() => props.disabled) }); + const handleClick = (evt) => { + emit("click", evt); + }; + const handleMouseEnter = (evt) => { + emit("mouseenter", evt); + }; + const handleMouseLeave = (evt) => { + emit("mouseleave", evt); + }; + const handleTouchStart = (evt) => { + emit("touchstart", evt); + }; + const handleStartInput = (evt) => { + emit("startInput", evt); + }; + const handleEndInput = (evt) => { + emit("endInput", evt); + }; + const handleStartChange = (evt) => { + emit("startChange", evt); + }; + const handleEndChange = (evt) => { + emit("endChange", evt); + }; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + inputRef.value?.blur(); + endInputRef.value?.blur(); + }; + __expose({ + focus, + blur + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "wrapperRef", + ref: wrapperRef, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsDate).is("active", (0, vue.unref)(isFocused)), _ctx.$attrs.class]), + style: (0, vue.normalizeStyle)(_ctx.$attrs.style), + onClick: handleClick, + onMouseenter: handleMouseEnter, + onMouseleave: handleMouseLeave, + onTouchstartPassive: handleTouchStart + }, [ + (0, vue.renderSlot)(_ctx.$slots, "prefix"), + (0, vue.createElementVNode)("input", (0, vue.mergeProps)((0, vue.unref)(attrs), { + id: (0, vue.unref)(inputId), + ref_key: "inputRef", + ref: inputRef, + name: _ctx.name && _ctx.name[0], + placeholder: _ctx.startPlaceholder, + value: _ctx.modelValue && _ctx.modelValue[0], + class: (0, vue.unref)(nsRange).b("input"), + disabled: _ctx.disabled, + onInput: handleStartInput, + onChange: handleStartChange + }), null, 16, _hoisted_1$71), + (0, vue.renderSlot)(_ctx.$slots, "range-separator"), + (0, vue.createElementVNode)("input", (0, vue.mergeProps)((0, vue.unref)(attrs), { + id: _ctx.id && _ctx.id[1], + ref_key: "endInputRef", + ref: endInputRef, + name: _ctx.name && _ctx.name[1], + placeholder: _ctx.endPlaceholder, + value: _ctx.modelValue && _ctx.modelValue[1], + class: (0, vue.unref)(nsRange).b("input"), + disabled: _ctx.disabled, + onInput: handleEndInput, + onChange: handleEndChange + }), null, 16, _hoisted_2$40), + (0, vue.renderSlot)(_ctx.$slots, "suffix") + ], 38); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/common/picker-range-trigger.vue + var picker_range_trigger_default = picker_range_trigger_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/time-picker/src/common/picker.vue?vue&type=script&setup=true&lang.ts + var picker_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "Picker", + __name: "picker", + props: timePickerDefaultProps, + emits: [ + UPDATE_MODEL_EVENT, + CHANGE_EVENT, + "focus", + "blur", + "clear", + "calendar-change", + "panel-change", + "visible-change", + "keydown" + ], + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const attrs = (0, vue.useAttrs)(); + const nsDate = useNamespace("date"); + const nsInput = useNamespace("input"); + const nsRange = useNamespace("range"); + const { formItem } = useFormItem(); + const elPopperOptions = (0, vue.inject)(PICKER_POPPER_OPTIONS_INJECTION_KEY, {}); + const emptyValues = useEmptyValues(props, null); + const refPopper = (0, vue.ref)(); + const inputRef = (0, vue.ref)(); + const valueOnOpen = (0, vue.ref)(null); + let hasJustTabExitedInput = false; + const pickerDisabled = useFormDisabled(); + const commonPicker = useCommonPicker(props, emit); + const { parsedValue, pickerActualVisible, userInput, pickerVisible, pickerOptions, valueIsEmpty, emitInput, onPick, onSetPickerOption, onCalendarChange, onPanelChange } = commonPicker; + const { isFocused, handleFocus, handleBlur } = useFocusController(inputRef, { + disabled: pickerDisabled, + beforeFocus() { + return props.readonly; + }, + afterFocus() { + if (!props.automaticDropdown) return; + pickerVisible.value = true; + }, + beforeBlur(event) { + return !hasJustTabExitedInput && refPopper.value?.isFocusInsideContent(event); + }, + afterBlur() { + if (isTimePicker.value && !props.saveOnBlur) { + if (!valueIsEmpty.value) pickerOptions.value.handleCancel?.(); + } else handleChange(); + pickerVisible.value = false; + hasJustTabExitedInput = false; + props.validateEvent && formItem?.validate("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const hovering = (0, vue.ref)(false); + const rangeInputKls = (0, vue.computed)(() => [ + nsDate.b("editor"), + nsDate.bm("editor", props.type), + nsInput.e("wrapper"), + nsDate.is("disabled", pickerDisabled.value), + nsDate.is("active", pickerVisible.value), + nsRange.b("editor"), + pickerSize ? nsRange.bm("editor", pickerSize.value) : "", + attrs.class + ]); + const clearIconKls = (0, vue.computed)(() => [ + nsInput.e("icon"), + nsRange.e("close-icon"), + !showClearBtn.value ? nsRange.em("close-icon", "hidden") : "" + ]); + (0, vue.watch)(pickerVisible, (val) => { + if (!val) { + userInput.value = null; + (0, vue.nextTick)(() => { + emitChange(props.modelValue); + }); + } else (0, vue.nextTick)(() => { + if (val) valueOnOpen.value = props.modelValue; + }); + }); + const emitChange = (val, isClear) => { + if (isClear || !valueEquals(val, valueOnOpen.value)) { + emit(CHANGE_EVENT, val); + isClear && (valueOnOpen.value = val); + props.validateEvent && formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }; + const emitKeydown = (e) => { + emit("keydown", e); + }; + const refInput = (0, vue.computed)(() => { + if (inputRef.value) return Array.from(inputRef.value.$el.querySelectorAll("input")); + return []; + }); + const setSelectionRange = (start, end, pos) => { + const _inputs = refInput.value; + if (!_inputs.length) return; + if (!pos || pos === "min") { + _inputs[0].setSelectionRange(start, end); + _inputs[0].focus(); + } else if (pos === "max") { + _inputs[1].setSelectionRange(start, end); + _inputs[1].focus(); + } + }; + const onBeforeShow = () => { + pickerActualVisible.value = true; + }; + const onShow = () => { + emit("visible-change", true); + }; + const onHide = () => { + pickerActualVisible.value = false; + pickerVisible.value = false; + emit("visible-change", false); + }; + const handleOpen = () => { + pickerVisible.value = true; + }; + const handleClose = () => { + pickerVisible.value = false; + }; + const displayValue = (0, vue.computed)(() => { + const formattedValue = formatToString(parsedValue.value); + if (isArray$1(userInput.value)) return [userInput.value[0] ?? (formattedValue && formattedValue[0]) ?? "", userInput.value[1] ?? (formattedValue && formattedValue[1]) ?? ""]; + else if (userInput.value !== null) return userInput.value; + if (isTimePicker.value && valueIsEmpty.value && !props.saveOnBlur) return ""; + if (!isTimePicker.value && valueIsEmpty.value) return ""; + if (!pickerVisible.value && valueIsEmpty.value) return ""; + if (formattedValue) return isDatesPicker.value || isMonthsPicker.value || isYearsPicker.value ? formattedValue.join(", ") : formattedValue; + return ""; + }); + const isTimeLikePicker = (0, vue.computed)(() => props.type.includes("time")); + const isTimePicker = (0, vue.computed)(() => props.type.startsWith("time")); + const isDatesPicker = (0, vue.computed)(() => props.type === "dates"); + const isMonthsPicker = (0, vue.computed)(() => props.type === "months"); + const isYearsPicker = (0, vue.computed)(() => props.type === "years"); + const triggerIcon = (0, vue.computed)(() => props.prefixIcon || (isTimeLikePicker.value ? clock_default : calendar_default$1)); + const showClearBtn = (0, vue.computed)(() => props.clearable && !pickerDisabled.value && !props.readonly && !valueIsEmpty.value && (hovering.value || isFocused.value)); + const onClear = (event) => { + if (props.readonly || pickerDisabled.value) return; + if (showClearBtn.value) { + event?.stopPropagation(); + if (pickerOptions.value.handleClear) pickerOptions.value.handleClear(); + else emitInput(emptyValues.valueOnClear.value); + emitChange(emptyValues.valueOnClear.value, true); + onHide(); + } + emit("clear"); + }; + const onMouseDownInput = async (event) => { + if (props.readonly || pickerDisabled.value) return; + if (event.target?.tagName !== "INPUT" || isFocused.value || !props.automaticDropdown) pickerVisible.value = true; + }; + const onMouseEnter = () => { + if (props.readonly || pickerDisabled.value) return; + if (!valueIsEmpty.value && props.clearable) hovering.value = true; + }; + const onMouseLeave = () => { + hovering.value = false; + }; + const onTouchStartInput = (event) => { + if (props.readonly || pickerDisabled.value) return; + if (event.touches[0].target?.tagName !== "INPUT" || isFocused.value || !props.automaticDropdown) pickerVisible.value = true; + }; + const isRangeInput = (0, vue.computed)(() => { + return props.type.includes("range"); + }); + const pickerSize = useFormSize(); + const popperEl = (0, vue.computed)(() => (0, vue.unref)(refPopper)?.popperRef?.contentRef); + const stophandle = onClickOutside(inputRef, (e) => { + const unrefedPopperEl = (0, vue.unref)(popperEl); + const inputEl = unrefElement(inputRef); + if (unrefedPopperEl && (e.target === unrefedPopperEl || e.composedPath().includes(unrefedPopperEl)) || e.target === inputEl || inputEl && e.composedPath().includes(inputEl)) return; + pickerVisible.value = false; + }); + (0, vue.onBeforeUnmount)(() => { + stophandle?.(); + }); + const handleChange = () => { + if (isTimePicker.value && !props.saveOnBlur) return; + const isRangeEmpty = isArray$1(userInput.value) && userInput.value.every((v) => v === ""); + if (userInput.value && !isRangeEmpty) { + const value = parseUserInputToDayjs(displayValue.value); + if (value) { + if (isValidValue(value)) emitInput(dayOrDaysToDate(value)); + userInput.value = null; + } + } + if (userInput.value === "" || isRangeEmpty) { + emitInput(emptyValues.valueOnClear.value); + emitChange(emptyValues.valueOnClear.value, true); + userInput.value = null; + } + }; + const parseUserInputToDayjs = (value) => { + if (!value) return null; + return pickerOptions.value.parseUserInput(value); + }; + const formatToString = (value) => { + if (!value) return null; + return isArray$1(value) ? value.map((_) => _.format(props.format)) : value.format(props.format); + }; + const isValidValue = (value) => { + return pickerOptions.value.isValidValue(value); + }; + const handleKeydownInput = async (event) => { + if (props.readonly || pickerDisabled.value) return; + const code = getEventCode(event); + emitKeydown(event); + if (code === EVENT_CODE.esc) { + if (pickerVisible.value === true) { + pickerVisible.value = false; + event.preventDefault(); + event.stopPropagation(); + } + return; + } + if (code === EVENT_CODE.down) { + if (pickerOptions.value.handleFocusPicker) { + event.preventDefault(); + event.stopPropagation(); + } + if (pickerVisible.value === false) { + pickerVisible.value = true; + await (0, vue.nextTick)(); + } + if (pickerOptions.value.handleFocusPicker) { + pickerOptions.value.handleFocusPicker(); + return; + } + } + if (code === EVENT_CODE.tab) { + hasJustTabExitedInput = true; + return; + } + if (code === EVENT_CODE.enter || code === EVENT_CODE.numpadEnter) { + if (!pickerVisible.value) pickerVisible.value = true; + else if (userInput.value === null || userInput.value === "" || isValidValue(parseUserInputToDayjs(displayValue.value))) { + handleChange(); + pickerVisible.value = false; + } + event.preventDefault(); + event.stopPropagation(); + return; + } + if (userInput.value) { + event.stopPropagation(); + return; + } + if (pickerOptions.value.handleKeydownInput) pickerOptions.value.handleKeydownInput(event); + }; + const onUserInput = (e) => { + userInput.value = e; + if (!pickerVisible.value) pickerVisible.value = true; + }; + const handleStartInput = (event) => { + const target = event.target; + if (userInput.value) userInput.value = [target.value, userInput.value[1]]; + else userInput.value = [target.value, null]; + }; + const handleEndInput = (event) => { + const target = event.target; + if (userInput.value) userInput.value = [userInput.value[0], target.value]; + else userInput.value = [null, target.value]; + }; + const handleStartChange = () => { + const values = userInput.value; + const value = parseUserInputToDayjs(values && values[0]); + const parsedVal = (0, vue.unref)(parsedValue); + if (value && value.isValid()) { + userInput.value = [formatToString(value), displayValue.value?.[1] || null]; + const newValue = [value, parsedVal && (parsedVal[1] || null)]; + if (isValidValue(newValue)) { + emitInput(dayOrDaysToDate(newValue)); + userInput.value = null; + } + } + }; + const handleEndChange = () => { + const values = (0, vue.unref)(userInput); + const value = parseUserInputToDayjs(values && values[1]); + const parsedVal = (0, vue.unref)(parsedValue); + if (value && value.isValid()) { + userInput.value = [(0, vue.unref)(displayValue)?.[0] || null, formatToString(value)]; + const newValue = [parsedVal && parsedVal[0], value]; + if (isValidValue(newValue)) { + emitInput(dayOrDaysToDate(newValue)); + userInput.value = null; + } + } + }; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + inputRef.value?.blur(); + }; + (0, vue.provide)(PICKER_BASE_INJECTION_KEY, { + props, + emptyValues + }); + (0, vue.provide)(ROOT_COMMON_PICKER_INJECTION_KEY, commonPicker); + __expose({ + focus, + blur, + handleOpen, + handleClose, + onPick + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), (0, vue.mergeProps)({ + ref_key: "refPopper", + ref: refPopper, + visible: (0, vue.unref)(pickerVisible), + effect: "light", + pure: "", + trigger: "click" + }, _ctx.$attrs, { + role: "dialog", + teleported: "", + transition: `${(0, vue.unref)(nsDate).namespace.value}-zoom-in-top`, + "popper-class": [`${(0, vue.unref)(nsDate).namespace.value}-picker__popper`, _ctx.popperClass], + "popper-style": _ctx.popperStyle, + "popper-options": (0, vue.unref)(elPopperOptions), + "fallback-placements": _ctx.fallbackPlacements, + "gpu-acceleration": false, + placement: _ctx.placement, + "stop-popper-mouse-event": false, + "hide-after": 0, + persistent: "", + onBeforeShow, + onShow, + onHide + }), { + default: (0, vue.withCtx)(() => [!isRangeInput.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElInput), { + key: 0, + id: _ctx.id, + ref_key: "inputRef", + ref: inputRef, + "container-role": "combobox", + "model-value": displayValue.value, + name: _ctx.name, + size: (0, vue.unref)(pickerSize), + disabled: (0, vue.unref)(pickerDisabled), + placeholder: _ctx.placeholder, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(nsDate).b("editor"), + (0, vue.unref)(nsDate).bm("editor", _ctx.type), + (0, vue.unref)(nsDate).is("focus", (0, vue.unref)(pickerVisible)), + _ctx.$attrs.class + ]), + style: (0, vue.normalizeStyle)(_ctx.$attrs.style), + readonly: !_ctx.editable || _ctx.readonly || isDatesPicker.value || isMonthsPicker.value || isYearsPicker.value || _ctx.type === "week", + "aria-label": _ctx.ariaLabel, + tabindex: _ctx.tabindex, + "validate-event": false, + onInput: onUserInput, + onFocus: (0, vue.unref)(handleFocus), + onBlur: (0, vue.unref)(handleBlur), + onKeydown: handleKeydownInput, + onChange: handleChange, + onMousedown: onMouseDownInput, + onMouseenter: onMouseEnter, + onMouseleave: onMouseLeave, + onTouchstartPassive: onTouchStartInput, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, { + prefix: (0, vue.withCtx)(() => [triggerIcon.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("icon")), + onMousedown: (0, vue.withModifiers)(onMouseDownInput, ["prevent"]), + onTouchstartPassive: onTouchStartInput + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(triggerIcon.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)]), + suffix: (0, vue.withCtx)(() => [showClearBtn.value && _ctx.clearIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)(`${(0, vue.unref)(nsInput).e("icon")} clear-icon`), + onMousedown: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]), + onClick: onClear + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.clearIcon)))]), + _: 1 + }, 8, ["class", "onMousedown"])) : (0, vue.createCommentVNode)("v-if", true)]), + _: 1 + }, 8, [ + "id", + "model-value", + "name", + "size", + "disabled", + "placeholder", + "class", + "style", + "readonly", + "aria-label", + "tabindex", + "onFocus", + "onBlur" + ])) : ((0, vue.openBlock)(), (0, vue.createBlock)(picker_range_trigger_default, { + key: 1, + id: _ctx.id, + ref_key: "inputRef", + ref: inputRef, + "model-value": displayValue.value, + name: _ctx.name, + disabled: (0, vue.unref)(pickerDisabled), + readonly: !_ctx.editable || _ctx.readonly, + "start-placeholder": _ctx.startPlaceholder, + "end-placeholder": _ctx.endPlaceholder, + class: (0, vue.normalizeClass)(rangeInputKls.value), + style: (0, vue.normalizeStyle)(_ctx.$attrs.style), + "aria-label": _ctx.ariaLabel, + tabindex: _ctx.tabindex, + autocomplete: "off", + role: "combobox", + onClick: onMouseDownInput, + onFocus: (0, vue.unref)(handleFocus), + onBlur: (0, vue.unref)(handleBlur), + onStartInput: handleStartInput, + onStartChange: handleStartChange, + onEndInput: handleEndInput, + onEndChange: handleEndChange, + onMousedown: onMouseDownInput, + onMouseenter: onMouseEnter, + onMouseleave: onMouseLeave, + onTouchstartPassive: onTouchStartInput, + onKeydown: handleKeydownInput + }, { + prefix: (0, vue.withCtx)(() => [triggerIcon.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("icon"), (0, vue.unref)(nsRange).e("icon")]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(triggerIcon.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)]), + "range-separator": (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "range-separator", {}, () => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(nsRange).b("separator")) }, (0, vue.toDisplayString)(_ctx.rangeSeparator), 3)])]), + suffix: (0, vue.withCtx)(() => [_ctx.clearIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)(clearIconKls.value), + onMousedown: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]), + onClick: onClear + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.clearIcon)))]), + _: 1 + }, 8, ["class", "onMousedown"])) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, [ + "id", + "model-value", + "name", + "disabled", + "readonly", + "start-placeholder", + "end-placeholder", + "class", + "style", + "aria-label", + "tabindex", + "onFocus", + "onBlur" + ]))]), + content: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", { + visible: (0, vue.unref)(pickerVisible), + actualVisible: (0, vue.unref)(pickerActualVisible), + parsedValue: (0, vue.unref)(parsedValue), + format: _ctx.format, + dateFormat: _ctx.dateFormat, + timeFormat: _ctx.timeFormat, + unlinkPanels: _ctx.unlinkPanels, + type: _ctx.type, + defaultValue: _ctx.defaultValue, + showNow: _ctx.showNow, + showConfirm: _ctx.showConfirm, + showFooter: _ctx.showFooter, + showWeekNumber: _ctx.showWeekNumber, + onPick: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(onPick) && (0, vue.unref)(onPick)(...args)), + onSelectRange: setSelectionRange, + onSetPickerOption: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(onSetPickerOption) && (0, vue.unref)(onSetPickerOption)(...args)), + onCalendarChange: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(onCalendarChange) && (0, vue.unref)(onCalendarChange)(...args)), + onClear, + onPanelChange: _cache[4] || (_cache[4] = (...args) => (0, vue.unref)(onPanelChange) && (0, vue.unref)(onPanelChange)(...args)), + onMousedown: _cache[5] || (_cache[5] = (0, vue.withModifiers)(() => {}, ["stop"])) + })]), + _: 3 + }, 16, [ + "visible", + "transition", + "popper-class", + "popper-style", + "popper-options", + "fallback-placements", + "placement" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/common/picker.vue + var picker_default = picker_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/time-picker/src/props/panel-time-picker.ts + const panelTimePickerProps = buildProps({ + ...timePanelSharedProps, + datetimeRole: String, + parsedValue: { type: definePropType(Object) } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/composables/use-time-panel.ts + const useTimePanel = ({ getAvailableHours, getAvailableMinutes, getAvailableSeconds }) => { + const getAvailableTime = (date, role, first, compareDate) => { + const availableTimeGetters = { + hour: getAvailableHours, + minute: getAvailableMinutes, + second: getAvailableSeconds + }; + let result = date; + [ + "hour", + "minute", + "second" + ].forEach((type) => { + if (availableTimeGetters[type]) { + let availableTimeSlots; + const method = availableTimeGetters[type]; + switch (type) { + case "minute": + availableTimeSlots = method(result.hour(), role, compareDate); + break; + case "second": + availableTimeSlots = method(result.hour(), result.minute(), role, compareDate); + break; + default: + availableTimeSlots = method(role, compareDate); + break; + } + if (availableTimeSlots?.length && !availableTimeSlots.includes(result[type]())) { + const pos = first ? 0 : availableTimeSlots.length - 1; + result = result[type](availableTimeSlots[pos]); + } + } + }); + return result; + }; + const timePickerOptions = {}; + const onSetOption = ([key, val]) => { + timePickerOptions[key] = val; + }; + return { + timePickerOptions, + getAvailableTime, + onSetOption + }; + }; + +//#endregion +//#region ../../packages/components/time-picker/src/composables/use-time-picker.ts + const makeAvailableArr = (disabledList) => { + const trueOrNumber = (isDisabled, index) => isDisabled || index; + const getNumber = (predicate) => predicate !== true; + return disabledList.map(trueOrNumber).filter(getNumber); + }; + const getTimeLists = (disabledHours, disabledMinutes, disabledSeconds) => { + const getHoursList = (role, compare) => { + return makeList(24, disabledHours && (() => disabledHours?.(role, compare))); + }; + const getMinutesList = (hour, role, compare) => { + return makeList(60, disabledMinutes && (() => disabledMinutes?.(hour, role, compare))); + }; + const getSecondsList = (hour, minute, role, compare) => { + return makeList(60, disabledSeconds && (() => disabledSeconds?.(hour, minute, role, compare))); + }; + return { + getHoursList, + getMinutesList, + getSecondsList + }; + }; + const buildAvailableTimeSlotGetter = (disabledHours, disabledMinutes, disabledSeconds) => { + const { getHoursList, getMinutesList, getSecondsList } = getTimeLists(disabledHours, disabledMinutes, disabledSeconds); + const getAvailableHours = (role, compare) => { + return makeAvailableArr(getHoursList(role, compare)); + }; + const getAvailableMinutes = (hour, role, compare) => { + return makeAvailableArr(getMinutesList(hour, role, compare)); + }; + const getAvailableSeconds = (hour, minute, role, compare) => { + return makeAvailableArr(getSecondsList(hour, minute, role, compare)); + }; + return { + getAvailableHours, + getAvailableMinutes, + getAvailableSeconds + }; + }; + const useOldValue = (props, options) => { + const oldValue = (0, vue.ref)(props.parsedValue); + (0, vue.watch)(() => props.visible, (val) => { + const modelValue = (0, vue.toValue)(options.modelValue); + const valueOnClear = (0, vue.toValue)(options.valueOnClear); + if (val && modelValue === valueOnClear) { + oldValue.value = valueOnClear; + return; + } + if (!val) oldValue.value = props.parsedValue; + }); + return oldValue; + }; + +//#endregion +//#region ../../packages/directives/click-outside/index.ts + const nodeList = /* @__PURE__ */ new Map(); + if (isClient) { + let startClick; + document.addEventListener("mousedown", (e) => startClick = e); + document.addEventListener("mouseup", (e) => { + if (startClick) { + for (const handlers of nodeList.values()) for (const { documentHandler } of handlers) documentHandler(e, startClick); + startClick = void 0; + } + }); + } + function createDocumentHandler(el, binding) { + let excludes = []; + if (isArray$1(binding.arg)) excludes = binding.arg; + else if (isElement$1(binding.arg)) excludes.push(binding.arg); + return function(mouseup, mousedown) { + const popperRef = binding.instance.popperRef; + const mouseUpTarget = mouseup.target; + const mouseDownTarget = mousedown?.target; + const isBound = !binding || !binding.instance; + const isTargetExists = !mouseUpTarget || !mouseDownTarget; + const isContainedByEl = el.contains(mouseUpTarget) || el.contains(mouseDownTarget); + const isSelf = el === mouseUpTarget; + const isTargetExcluded = excludes.length && excludes.some((item) => item?.contains(mouseUpTarget)) || excludes.length && excludes.includes(mouseDownTarget); + const isContainedByPopper = popperRef && (popperRef.contains(mouseUpTarget) || popperRef.contains(mouseDownTarget)); + if (isBound || isTargetExists || isContainedByEl || isSelf || isTargetExcluded || isContainedByPopper) return; + binding.value(mouseup, mousedown); + }; + } + const ClickOutside = { + beforeMount(el, binding) { + if (!nodeList.has(el)) nodeList.set(el, []); + nodeList.get(el).push({ + documentHandler: createDocumentHandler(el, binding), + bindingFn: binding.value + }); + }, + updated(el, binding) { + if (!nodeList.has(el)) nodeList.set(el, []); + const handlers = nodeList.get(el); + const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue); + const newHandler = { + documentHandler: createDocumentHandler(el, binding), + bindingFn: binding.value + }; + if (oldHandlerIndex >= 0) handlers.splice(oldHandlerIndex, 1, newHandler); + else handlers.push(newHandler); + }, + unmounted(el) { + nodeList.delete(el); + } + }; + +//#endregion +//#region ../../packages/directives/repeat-click/index.ts + const REPEAT_INTERVAL = 100; + const REPEAT_DELAY = 600; + const SCOPE$6 = "_RepeatClick"; + const vRepeatClick = { + beforeMount(el, binding) { + const value = binding.value; + const { interval = REPEAT_INTERVAL, delay = REPEAT_DELAY } = isFunction$1(value) ? {} : value; + let intervalId; + let delayId; + const handler = () => isFunction$1(value) ? value() : value.handler(); + const clear = () => { + if (delayId) { + clearTimeout(delayId); + delayId = void 0; + } + if (intervalId) { + clearInterval(intervalId); + intervalId = void 0; + } + }; + const start = (evt) => { + if (evt.button !== 0) return; + clear(); + handler(); + document.addEventListener("mouseup", clear, { once: true }); + delayId = setTimeout(() => { + intervalId = setInterval(() => { + handler(); + }, interval); + }, delay); + }; + el[SCOPE$6] = { + start, + clear + }; + el.addEventListener("mousedown", start); + }, + unmounted(el) { + if (!el[SCOPE$6]) return; + const { start, clear } = el[SCOPE$6]; + if (start) el.removeEventListener("mousedown", start); + if (clear) { + clear(); + document.removeEventListener("mouseup", clear); + } + el[SCOPE$6] = null; + } + }; + +//#endregion +//#region ../../packages/directives/trap-focus/index.ts + const FOCUSABLE_CHILDREN = "_trap-focus-children"; + const FOCUS_STACK = []; + const FOCUS_HANDLER = (e) => { + if (FOCUS_STACK.length === 0) return; + const code = getEventCode(e); + const focusableElement = FOCUS_STACK[FOCUS_STACK.length - 1][FOCUSABLE_CHILDREN]; + if (focusableElement.length > 0 && code === EVENT_CODE.tab) { + if (focusableElement.length === 1) { + e.preventDefault(); + if (document.activeElement !== focusableElement[0]) focusableElement[0].focus(); + return; + } + const goingBackward = e.shiftKey; + const isFirst = e.target === focusableElement[0]; + const isLast = e.target === focusableElement[focusableElement.length - 1]; + if (isFirst && goingBackward) { + e.preventDefault(); + focusableElement[focusableElement.length - 1].focus(); + } + if (isLast && !goingBackward) { + e.preventDefault(); + focusableElement[0].focus(); + } + } + }; + const TrapFocus = { + beforeMount(el) { + el[FOCUSABLE_CHILDREN] = obtainAllFocusableElements$1(el); + FOCUS_STACK.push(el); + if (FOCUS_STACK.length <= 1) document.addEventListener("keydown", FOCUS_HANDLER); + }, + updated(el) { + (0, vue.nextTick)(() => { + el[FOCUSABLE_CHILDREN] = obtainAllFocusableElements$1(el); + }); + }, + unmounted() { + FOCUS_STACK.shift(); + if (FOCUS_STACK.length === 0) document.removeEventListener("keydown", FOCUS_HANDLER); + } + }; + +//#endregion +//#region ../../node_modules/.pnpm/normalize-wheel-es@1.2.0/node_modules/normalize-wheel-es/dist/index.mjs + var v = !1, o, f, s, u, d, N, l, p, m, w, D, x, E, M, F; + function a() { + if (!v) { + v = !0; + var e = navigator.userAgent, n = /(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e), i = /(Mac OS X)|(Windows)|(Linux)/.exec(e); + if (x = /\b(iPhone|iP[ao]d)/.exec(e), E = /\b(iP[ao]d)/.exec(e), w = /Android/i.exec(e), M = /FBAN\/\w+;/i.exec(e), F = /Mobile/i.exec(e), D = !!/Win64/.exec(e), n) { + o = n[1] ? parseFloat(n[1]) : n[5] ? parseFloat(n[5]) : NaN, o && document && document.documentMode && (o = document.documentMode); + var r = /(?:Trident\/(\d+.\d+))/.exec(e); + N = r ? parseFloat(r[1]) + 4 : o, f = n[2] ? parseFloat(n[2]) : NaN, s = n[3] ? parseFloat(n[3]) : NaN, u = n[4] ? parseFloat(n[4]) : NaN, u ? (n = /(?:Chrome\/(\d+\.\d+))/.exec(e), d = n && n[1] ? parseFloat(n[1]) : NaN) : d = NaN; + } else o = f = s = d = u = NaN; + if (i) { + if (i[1]) { + var t = /(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e); + l = t ? parseFloat(t[1].replace("_", ".")) : !0; + } else l = !1; + p = !!i[2], m = !!i[3]; + } else l = p = m = !1; + } + } + var _ = { + ie: function() { + return a() || o; + }, + ieCompatibilityMode: function() { + return a() || N > o; + }, + ie64: function() { + return _.ie() && D; + }, + firefox: function() { + return a() || f; + }, + opera: function() { + return a() || s; + }, + webkit: function() { + return a() || u; + }, + safari: function() { + return _.webkit(); + }, + chrome: function() { + return a() || d; + }, + windows: function() { + return a() || p; + }, + osx: function() { + return a() || l; + }, + linux: function() { + return a() || m; + }, + iphone: function() { + return a() || x; + }, + mobile: function() { + return a() || x || E || w || F; + }, + nativeApp: function() { + return a() || M; + }, + android: function() { + return a() || w; + }, + ipad: function() { + return a() || E; + } + }, A = _; + var c = !!(typeof window < "u" && window.document && window.document.createElement), h$26 = { + canUseDOM: c, + canUseWorkers: typeof Worker < "u", + canUseEventListeners: c && !!(window.addEventListener || window.attachEvent), + canUseViewport: c && !!window.screen, + isInWorker: !c + }; + var X; + h$26.canUseDOM && (X = document.implementation && document.implementation.hasFeature && document.implementation.hasFeature("", "") !== !0); + function S(e, n) { + if (!h$26.canUseDOM || n && !("addEventListener" in document)) return !1; + var i = "on" + e, r = i in document; + if (!r) { + var t = document.createElement("div"); + t.setAttribute(i, "return;"), r = typeof t[i] == "function"; + } + return !r && X && e === "wheel" && (r = document.implementation.hasFeature("Events.wheel", "3.0")), r; + } + var b = S; + var O = 10, I = 40, P = 800; + function T(e) { + var n = 0, i = 0, r = 0, t = 0; + return "detail" in e && (i = e.detail), "wheelDelta" in e && (i = -e.wheelDelta / 120), "wheelDeltaY" in e && (i = -e.wheelDeltaY / 120), "wheelDeltaX" in e && (n = -e.wheelDeltaX / 120), "axis" in e && e.axis === e.HORIZONTAL_AXIS && (n = i, i = 0), r = n * O, t = i * O, "deltaY" in e && (t = e.deltaY), "deltaX" in e && (r = e.deltaX), (r || t) && e.deltaMode && (e.deltaMode == 1 ? (r *= I, t *= I) : (r *= P, t *= P)), r && !n && (n = r < 1 ? -1 : 1), t && !i && (i = t < 1 ? -1 : 1), { + spinX: n, + spinY: i, + pixelX: r, + pixelY: t + }; + } + T.getEventType = function() { + return A.firefox() ? "DOMMouseScroll" : b("wheel") ? "wheel" : "mousewheel"; + }; + var Y = T; + /** + * Checks if an event is supported in the current execution environment. + * + * NOTE: This will not work correctly for non-generic events such as `change`, + * `reset`, `load`, `error`, and `select`. + * + * Borrows from Modernizr. + * + * @param {string} eventNameSuffix Event name, e.g. "click". + * @param {?boolean} capture Check if the capture phase is supported. + * @return {boolean} True if the event is supported. + * @internal + * @license Modernizr 3.0.0pre (Custom Build) | MIT + */ + +//#endregion +//#region ../../packages/directives/mousewheel/index.ts + const SCOPE$5 = "_Mousewheel"; + const mousewheel = function(element, callback) { + if (element && element.addEventListener) { + removeWheelHandler(element); + const fn = function(event) { + const normalized = Y(event); + callback && Reflect.apply(callback, this, [event, normalized]); + }; + element[SCOPE$5] = { wheelHandler: fn }; + element.addEventListener("wheel", fn, { passive: true }); + } + }; + const removeWheelHandler = (element) => { + if (element[SCOPE$5]?.wheelHandler) { + element.removeEventListener("wheel", element[SCOPE$5].wheelHandler); + element[SCOPE$5] = null; + } + }; + const Mousewheel = { + beforeMount(el, binding) { + mousewheel(el, binding.value); + }, + unmounted(el) { + removeWheelHandler(el); + }, + updated(el, binding) { + if (binding.value !== binding.oldValue) mousewheel(el, binding.value); + } + }; + +//#endregion +//#region ../../packages/components/time-picker/src/props/basic-time-spinner.ts + const basicTimeSpinnerProps = buildProps({ + role: { + type: String, + required: true + }, + spinnerDate: { + type: definePropType(Object), + required: true + }, + showSeconds: { + type: Boolean, + default: true + }, + arrowControl: Boolean, + amPmMode: { + type: definePropType(String), + default: "" + }, + ...disabledTimeListsProps + }); + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker-com/basic-time-spinner.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$70 = ["onClick"]; + const _hoisted_2$39 = ["onMouseenter"]; + var basic_time_spinner_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "basic-time-spinner", + props: basicTimeSpinnerProps, + emits: [ + CHANGE_EVENT, + "select-range", + "set-option" + ], + setup(__props, { emit: __emit }) { + const props = __props; + const { isRange, format, saveOnBlur } = (0, vue.inject)(PICKER_BASE_INJECTION_KEY).props; + const emit = __emit; + const ns = useNamespace("time"); + const { getHoursList, getMinutesList, getSecondsList } = getTimeLists(props.disabledHours, props.disabledMinutes, props.disabledSeconds); + let isScrolling = false; + const ignoreScroll = { + hours: false, + minutes: false, + seconds: false + }; + const currentScrollbar = (0, vue.ref)(); + const listRefsMap = { + hours: (0, vue.ref)(), + minutes: (0, vue.ref)(), + seconds: (0, vue.ref)() + }; + const spinnerItems = (0, vue.computed)(() => { + return props.showSeconds ? timeUnits : timeUnits.slice(0, 2); + }); + const timePartials = (0, vue.computed)(() => { + const { spinnerDate } = props; + return { + hours: spinnerDate.hour(), + minutes: spinnerDate.minute(), + seconds: spinnerDate.second() + }; + }); + const timeList = (0, vue.computed)(() => { + const { hours, minutes } = (0, vue.unref)(timePartials); + const { role, spinnerDate } = props; + const compare = !isRange ? spinnerDate : void 0; + return { + hours: getHoursList(role, compare), + minutes: getMinutesList(hours, role, compare), + seconds: getSecondsList(hours, minutes, role, compare) + }; + }); + const arrowControlTimeList = (0, vue.computed)(() => { + const { hours, minutes, seconds } = (0, vue.unref)(timePartials); + return { + hours: buildTimeList(hours, 23), + minutes: buildTimeList(minutes, 59), + seconds: buildTimeList(seconds, 59) + }; + }); + const debouncedResetScroll = debounce((type) => { + isScrolling = false; + adjustCurrentSpinner(type); + }, 200); + const getAmPmFlag = (hour) => { + if (!!!props.amPmMode) return ""; + const isCapital = props.amPmMode === "A"; + let content = hour < 12 ? " am" : " pm"; + if (isCapital) content = content.toUpperCase(); + return content; + }; + const emitSelectRange = (type) => { + let range = [0, 0]; + const actualFormat = format || DEFAULT_FORMATS_TIME; + const hourIndex = actualFormat.indexOf("HH"); + const minuteIndex = actualFormat.indexOf("mm"); + const secondIndex = actualFormat.indexOf("ss"); + switch (type) { + case "hours": + if (hourIndex !== -1) range = [hourIndex, hourIndex + 2]; + break; + case "minutes": + if (minuteIndex !== -1) range = [minuteIndex, minuteIndex + 2]; + break; + case "seconds": + if (secondIndex !== -1) range = [secondIndex, secondIndex + 2]; + break; + } + const [left, right] = range; + emit("select-range", left, right); + currentScrollbar.value = type; + }; + const adjustCurrentSpinner = (type) => { + adjustSpinner(type, (0, vue.unref)(timePartials)[type]); + }; + const adjustSpinners = () => { + adjustCurrentSpinner("hours"); + adjustCurrentSpinner("minutes"); + adjustCurrentSpinner("seconds"); + }; + const getScrollbarElement = (el) => el.querySelector(`.${ns.namespace.value}-scrollbar__wrap`); + const adjustSpinner = (type, value) => { + if (props.arrowControl) return; + const scrollbar = (0, vue.unref)(listRefsMap[type]); + if (scrollbar && scrollbar.$el) { + if (!saveOnBlur) { + ignoreScroll[type] = true; + rAF(() => { + ignoreScroll[type] = false; + }); + } + getScrollbarElement(scrollbar.$el).scrollTop = Math.max(0, value * typeItemHeight(type)); + } + }; + const typeItemHeight = (type) => { + const listItem = (0, vue.unref)(listRefsMap[type])?.$el.querySelector("li"); + if (listItem) return Number.parseFloat(getStyle(listItem, "height")) || 0; + return 0; + }; + const onIncrement = () => { + scrollDown(1); + }; + const onDecrement = () => { + scrollDown(-1); + }; + const scrollDown = (step) => { + if (!currentScrollbar.value) emitSelectRange("hours"); + const label = currentScrollbar.value; + const now = (0, vue.unref)(timePartials)[label]; + const next = findNextUnDisabled(label, now, step, currentScrollbar.value === "hours" ? 24 : 60); + modifyDateField(label, next); + adjustSpinner(label, next); + (0, vue.nextTick)(() => emitSelectRange(label)); + }; + const findNextUnDisabled = (type, now, step, total) => { + let next = (now + step + total) % total; + const list = (0, vue.unref)(timeList)[type]; + while (list[next] && next !== now) next = (next + step + total) % total; + return next; + }; + const modifyDateField = (type, value) => { + if ((0, vue.unref)(timeList)[type][value]) return; + const { hours, minutes, seconds } = (0, vue.unref)(timePartials); + let changeTo; + switch (type) { + case "hours": + changeTo = props.spinnerDate.hour(value).minute(minutes).second(seconds); + break; + case "minutes": + changeTo = props.spinnerDate.hour(hours).minute(value).second(seconds); + break; + case "seconds": + changeTo = props.spinnerDate.hour(hours).minute(minutes).second(value); + break; + } + emit(CHANGE_EVENT, changeTo); + }; + const handleClick = (type, { value, disabled }) => { + if (!disabled) { + modifyDateField(type, value); + emitSelectRange(type); + adjustSpinner(type, value); + } + }; + const handleScroll = (type) => { + if (!saveOnBlur && ignoreScroll[type]) return; + const scrollbar = (0, vue.unref)(listRefsMap[type]); + if (!scrollbar) return; + isScrolling = true; + debouncedResetScroll(type); + modifyDateField(type, Math.min(Math.round((getScrollbarElement(scrollbar.$el).scrollTop - (scrollBarHeight(type) * .5 - 10) / typeItemHeight(type) + 3) / typeItemHeight(type)), type === "hours" ? 23 : 59)); + }; + const scrollBarHeight = (type) => { + return (0, vue.unref)(listRefsMap[type]).$el.offsetHeight; + }; + const bindScrollEvent = () => { + const bindFunction = (type) => { + const scrollbar = (0, vue.unref)(listRefsMap[type]); + if (scrollbar && scrollbar.$el) getScrollbarElement(scrollbar.$el).onscroll = () => { + handleScroll(type); + }; + }; + bindFunction("hours"); + bindFunction("minutes"); + bindFunction("seconds"); + }; + (0, vue.onMounted)(() => { + (0, vue.nextTick)(() => { + !props.arrowControl && bindScrollEvent(); + adjustSpinners(); + if (props.role === "start") emitSelectRange("hours"); + }); + }); + const setRef = (scrollbar, type) => { + listRefsMap[type].value = scrollbar ?? void 0; + }; + emit("set-option", [`${props.role}_scrollDown`, scrollDown]); + emit("set-option", [`${props.role}_emitSelectRange`, emitSelectRange]); + (0, vue.watch)(() => props.spinnerDate, () => { + if (isScrolling) return; + adjustSpinners(); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("spinner"), { "has-seconds": _ctx.showSeconds }]) }, [!_ctx.arrowControl ? ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, (0, vue.renderList)(spinnerItems.value, (item) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElScrollbar), { + key: item, + ref_for: true, + ref: (scrollbar) => setRef(scrollbar, item), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("spinner", "wrapper")), + "wrap-style": "max-height: inherit;", + "view-class": (0, vue.unref)(ns).be("spinner", "list"), + noresize: "", + tag: "ul", + onMouseenter: ($event) => emitSelectRange(item), + onMousemove: ($event) => adjustCurrentSpinner(item) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(timeList.value[item], (disabled, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).be("spinner", "item"), + (0, vue.unref)(ns).is("active", key === timePartials.value[item]), + (0, vue.unref)(ns).is("disabled", disabled) + ]), + onClick: ($event) => handleClick(item, { + value: key, + disabled + }) + }, [item === "hours" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(("0" + (_ctx.amPmMode ? key % 12 || 12 : key)).slice(-2)) + (0, vue.toDisplayString)(getAmPmFlag(key)), 1)], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(("0" + key).slice(-2)), 1)], 64))], 10, _hoisted_1$70); + }), 128))]), + _: 2 + }, 1032, [ + "class", + "view-class", + "onMouseenter", + "onMousemove" + ]); + }), 128)) : (0, vue.createCommentVNode)("v-if", true), _ctx.arrowControl ? ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, (0, vue.renderList)(spinnerItems.value, (item) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: item, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("spinner", "wrapper"), (0, vue.unref)(ns).is("arrow")]), + onMouseenter: ($event) => emitSelectRange(item) + }, [ + (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)(["arrow-up", (0, vue.unref)(ns).be("spinner", "arrow")]) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_up_default))]), + _: 1 + }, 8, ["class"])), [[(0, vue.unref)(vRepeatClick), onDecrement]]), + (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)(["arrow-down", (0, vue.unref)(ns).be("spinner", "arrow")]) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_down_default))]), + _: 1 + }, 8, ["class"])), [[(0, vue.unref)(vRepeatClick), onIncrement]]), + (0, vue.createElementVNode)("ul", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("spinner", "list")) }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(arrowControlTimeList.value[item], (time, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).be("spinner", "item"), + (0, vue.unref)(ns).is("active", time === timePartials.value[item]), + (0, vue.unref)(ns).is("disabled", timeList.value[item][time]) + ]) + }, [(0, vue.unref)(isNumber)(time) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [item === "hours" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(("0" + (_ctx.amPmMode ? time % 12 || 12 : time)).slice(-2)) + (0, vue.toDisplayString)(getAmPmFlag(time)), 1)], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(("0" + time).slice(-2)), 1)], 64))], 64)) : (0, vue.createCommentVNode)("v-if", true)], 2); + }), 128))], 2) + ], 42, _hoisted_2$39); + }), 128)) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker-com/basic-time-spinner.vue + var basic_time_spinner_default = basic_time_spinner_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker-com/panel-time-pick.vue?vue&type=script&setup=true&lang.ts + var panel_time_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "panel-time-pick", + props: panelTimePickerProps, + emits: [ + "pick", + "select-range", + "set-picker-option" + ], + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const pickerBase = (0, vue.inject)(PICKER_BASE_INJECTION_KEY); + const { arrowControl, disabledHours, disabledMinutes, disabledSeconds, defaultValue } = pickerBase.props; + const { getAvailableHours, getAvailableMinutes, getAvailableSeconds } = buildAvailableTimeSlotGetter(disabledHours, disabledMinutes, disabledSeconds); + const ns = useNamespace("time"); + const { t, lang } = useLocale(); + const selectionRange = (0, vue.ref)([0, 2]); + const oldValue = useOldValue(props, { + modelValue: (0, vue.computed)(() => pickerBase.props.modelValue), + valueOnClear: (0, vue.computed)(() => pickerBase?.emptyValues ? pickerBase.emptyValues.valueOnClear.value : null) + }); + const transitionName = (0, vue.computed)(() => { + return isUndefined(props.actualVisible) ? `${ns.namespace.value}-zoom-in-top` : ""; + }); + const showSeconds = (0, vue.computed)(() => { + return props.format.includes("ss"); + }); + const amPmMode = (0, vue.computed)(() => { + if (props.format.includes("A")) return "A"; + if (props.format.includes("a")) return "a"; + return ""; + }); + const isValidValue = (_date) => { + const parsedDate = (0, import_dayjs_min.default)(_date).locale(lang.value); + const result = getRangeAvailableTime(parsedDate); + return parsedDate.isSame(result); + }; + const handleCancel = () => { + const old = oldValue.value; + emit("pick", old, false); + (0, vue.nextTick)(() => { + oldValue.value = old; + }); + }; + const handleConfirm = (visible = false, first = false) => { + if (first) return; + emit("pick", props.parsedValue, visible); + }; + const handleChange = (_date) => { + if (!props.visible) return; + emit("pick", getRangeAvailableTime(_date).millisecond(0), true); + }; + const setSelectionRange = (start, end) => { + emit("select-range", start, end); + selectionRange.value = [start, end]; + }; + const changeSelectionRange = (step) => { + const actualFormat = props.format; + const hourIndex = actualFormat.indexOf("HH"); + const minuteIndex = actualFormat.indexOf("mm"); + const secondIndex = actualFormat.indexOf("ss"); + const list = []; + const mapping = []; + if (hourIndex !== -1) { + list.push(hourIndex); + mapping.push("hours"); + } + if (minuteIndex !== -1) { + list.push(minuteIndex); + mapping.push("minutes"); + } + if (secondIndex !== -1 && showSeconds.value) { + list.push(secondIndex); + mapping.push("seconds"); + } + const next = (list.indexOf(selectionRange.value[0]) + step + list.length) % list.length; + timePickerOptions["start_emitSelectRange"](mapping[next]); + }; + const handleKeydown = (event) => { + const code = getEventCode(event); + const { left, right, up, down } = EVENT_CODE; + if ([left, right].includes(code)) { + changeSelectionRange(code === left ? -1 : 1); + event.preventDefault(); + return; + } + if ([up, down].includes(code)) { + const step = code === up ? -1 : 1; + timePickerOptions["start_scrollDown"](step); + event.preventDefault(); + return; + } + }; + const { timePickerOptions, onSetOption, getAvailableTime } = useTimePanel({ + getAvailableHours, + getAvailableMinutes, + getAvailableSeconds + }); + const getRangeAvailableTime = (date) => { + return getAvailableTime(date, props.datetimeRole || "", true); + }; + const parseUserInput = (value) => { + if (!value) return null; + return (0, import_dayjs_min.default)(value, props.format).locale(lang.value); + }; + const getDefaultValue = () => { + return (0, import_dayjs_min.default)(defaultValue).locale(lang.value); + }; + emit("set-picker-option", ["isValidValue", isValidValue]); + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["handleKeydownInput", handleKeydown]); + emit("set-picker-option", ["getRangeAvailableTime", getRangeAvailableTime]); + emit("set-picker-option", ["getDefaultValue", getDefaultValue]); + emit("set-picker-option", ["handleCancel", handleCancel]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { name: transitionName.value }, { + default: (0, vue.withCtx)(() => [_ctx.actualVisible || _ctx.visible ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("panel")) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("panel", "content"), { "has-seconds": showSeconds.value }]) }, [(0, vue.createVNode)(basic_time_spinner_default, { + ref: "spinner", + role: _ctx.datetimeRole || "start", + "arrow-control": (0, vue.unref)(arrowControl), + "show-seconds": showSeconds.value, + "am-pm-mode": amPmMode.value, + "spinner-date": _ctx.parsedValue, + "disabled-hours": (0, vue.unref)(disabledHours), + "disabled-minutes": (0, vue.unref)(disabledMinutes), + "disabled-seconds": (0, vue.unref)(disabledSeconds), + onChange: handleChange, + onSetOption: (0, vue.unref)(onSetOption), + onSelectRange: setSelectionRange + }, null, 8, [ + "role", + "arrow-control", + "show-seconds", + "am-pm-mode", + "spinner-date", + "disabled-hours", + "disabled-minutes", + "disabled-seconds", + "onSetOption" + ])], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "footer")) }, [(0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("panel", "btn"), "cancel"]), + onClick: handleCancel + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.cancel")), 3), (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("panel", "btn"), "confirm"]), + onClick: _cache[0] || (_cache[0] = ($event) => handleConfirm()) + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.confirm")), 3)], 2)], 2)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 1 + }, 8, ["name"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker-com/panel-time-pick.vue + var panel_time_pick_default = panel_time_pick_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/time-picker/src/props/panel-time-range.ts + const panelTimeRangeProps = buildProps({ + ...timePanelSharedProps, + parsedValue: { type: definePropType(Array) } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker-com/panel-time-range.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$69 = ["disabled"]; + var panel_time_range_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "panel-time-range", + props: panelTimeRangeProps, + emits: [ + "pick", + "select-range", + "set-picker-option" + ], + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const makeSelectRange = (start, end) => { + const result = []; + for (let i = start; i <= end; i++) result.push(i); + return result; + }; + const { t, lang } = useLocale(); + const nsTime = useNamespace("time"); + const nsPicker = useNamespace("picker"); + const pickerBase = (0, vue.inject)(PICKER_BASE_INJECTION_KEY); + const { arrowControl, disabledHours, disabledMinutes, disabledSeconds, defaultValue } = pickerBase.props; + const startContainerKls = (0, vue.computed)(() => [ + nsTime.be("range-picker", "body"), + nsTime.be("panel", "content"), + nsTime.is("arrow", arrowControl), + showSeconds.value ? "has-seconds" : "" + ]); + const endContainerKls = (0, vue.computed)(() => [ + nsTime.be("range-picker", "body"), + nsTime.be("panel", "content"), + nsTime.is("arrow", arrowControl), + showSeconds.value ? "has-seconds" : "" + ]); + const startTime = (0, vue.computed)(() => props.parsedValue[0]); + const endTime = (0, vue.computed)(() => props.parsedValue[1]); + const oldValue = useOldValue(props, { + modelValue: (0, vue.computed)(() => pickerBase.props.modelValue), + valueOnClear: (0, vue.computed)(() => pickerBase?.emptyValues ? pickerBase.emptyValues.valueOnClear.value : null) + }); + const handleCancel = () => { + const old = oldValue.value; + emit("pick", old, false); + (0, vue.nextTick)(() => { + oldValue.value = old; + }); + }; + const showSeconds = (0, vue.computed)(() => { + return props.format.includes("ss"); + }); + const amPmMode = (0, vue.computed)(() => { + if (props.format.includes("A")) return "A"; + if (props.format.includes("a")) return "a"; + return ""; + }); + const handleConfirm = (visible = false) => { + emit("pick", [startTime.value, endTime.value], visible); + }; + const handleMinChange = (date) => { + handleChange(date.millisecond(0), endTime.value); + }; + const handleMaxChange = (date) => { + handleChange(startTime.value, date.millisecond(0)); + }; + const isValidValue = (_date) => { + const parsedDate = _date.map((_) => (0, import_dayjs_min.default)(_).locale(lang.value)); + const result = getRangeAvailableTime(parsedDate); + return parsedDate[0].isSame(result[0]) && parsedDate[1].isSame(result[1]); + }; + const handleChange = (start, end) => { + if (!props.visible) return; + emit("pick", [start, end], true); + }; + const btnConfirmDisabled = (0, vue.computed)(() => { + return startTime.value > endTime.value; + }); + const selectionRange = (0, vue.ref)([0, 2]); + const setMinSelectionRange = (start, end) => { + emit("select-range", start, end, "min"); + selectionRange.value = [start, end]; + }; + const offset = (0, vue.computed)(() => showSeconds.value ? 11 : 8); + const setMaxSelectionRange = (start, end) => { + emit("select-range", start, end, "max"); + const _offset = (0, vue.unref)(offset); + selectionRange.value = [start + _offset, end + _offset]; + }; + const changeSelectionRange = (step) => { + const list = showSeconds.value ? [ + 0, + 3, + 6, + 11, + 14, + 17 + ] : [ + 0, + 3, + 8, + 11 + ]; + const mapping = ["hours", "minutes"].concat(showSeconds.value ? ["seconds"] : []); + const next = (list.indexOf(selectionRange.value[0]) + step + list.length) % list.length; + const half = list.length / 2; + if (next < half) timePickerOptions["start_emitSelectRange"](mapping[next]); + else timePickerOptions["end_emitSelectRange"](mapping[next - half]); + }; + const handleKeydown = (event) => { + const code = getEventCode(event); + const { left, right, up, down } = EVENT_CODE; + if ([left, right].includes(code)) { + changeSelectionRange(code === left ? -1 : 1); + event.preventDefault(); + return; + } + if ([up, down].includes(code)) { + const step = code === up ? -1 : 1; + timePickerOptions[`${selectionRange.value[0] < offset.value ? "start" : "end"}_scrollDown`](step); + event.preventDefault(); + return; + } + }; + const disabledHours_ = (role, compare) => { + const defaultDisable = disabledHours ? disabledHours(role) : []; + const isStart = role === "start"; + const compareHour = (compare || (isStart ? endTime.value : startTime.value)).hour(); + return union(defaultDisable, isStart ? makeSelectRange(compareHour + 1, 23) : makeSelectRange(0, compareHour - 1)); + }; + const disabledMinutes_ = (hour, role, compare) => { + const defaultDisable = disabledMinutes ? disabledMinutes(hour, role) : []; + const isStart = role === "start"; + const compareDate = compare || (isStart ? endTime.value : startTime.value); + if (hour !== compareDate.hour()) return defaultDisable; + const compareMinute = compareDate.minute(); + return union(defaultDisable, isStart ? makeSelectRange(compareMinute + 1, 59) : makeSelectRange(0, compareMinute - 1)); + }; + const disabledSeconds_ = (hour, minute, role, compare) => { + const defaultDisable = disabledSeconds ? disabledSeconds(hour, minute, role) : []; + const isStart = role === "start"; + const compareDate = compare || (isStart ? endTime.value : startTime.value); + const compareHour = compareDate.hour(); + const compareMinute = compareDate.minute(); + if (hour !== compareHour || minute !== compareMinute) return defaultDisable; + const compareSecond = compareDate.second(); + return union(defaultDisable, isStart ? makeSelectRange(compareSecond + 1, 59) : makeSelectRange(0, compareSecond - 1)); + }; + const getRangeAvailableTime = ([start, end]) => { + return [getAvailableTime(start, "start", true, end), getAvailableTime(end, "end", false, start)]; + }; + const { getAvailableHours, getAvailableMinutes, getAvailableSeconds } = buildAvailableTimeSlotGetter(disabledHours_, disabledMinutes_, disabledSeconds_); + const { timePickerOptions, getAvailableTime, onSetOption } = useTimePanel({ + getAvailableHours, + getAvailableMinutes, + getAvailableSeconds + }); + const parseUserInput = (days) => { + if (!days) return null; + if (isArray$1(days)) return days.map((d) => (0, import_dayjs_min.default)(d, props.format).locale(lang.value)); + return (0, import_dayjs_min.default)(days, props.format).locale(lang.value); + }; + const getDefaultValue = () => { + if (isArray$1(defaultValue)) return defaultValue.map((d) => (0, import_dayjs_min.default)(d).locale(lang.value)); + const defaultDay = (0, import_dayjs_min.default)(defaultValue).locale(lang.value); + return [defaultDay, defaultDay.add(60, "m")]; + }; + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["isValidValue", isValidValue]); + emit("set-picker-option", ["handleKeydownInput", handleKeydown]); + emit("set-picker-option", ["getDefaultValue", getDefaultValue]); + emit("set-picker-option", ["getRangeAvailableTime", getRangeAvailableTime]); + emit("set-picker-option", ["handleCancel", handleCancel]); + return (_ctx, _cache) => { + return _ctx.actualVisible ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsTime).b("range-picker"), (0, vue.unref)(nsPicker).b("panel")]) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsTime).be("range-picker", "content")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsTime).be("range-picker", "cell")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsTime).be("range-picker", "header")) }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.startTime")), 3), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(startContainerKls.value) }, [(0, vue.createVNode)(basic_time_spinner_default, { + ref: "minSpinner", + role: "start", + "show-seconds": showSeconds.value, + "am-pm-mode": amPmMode.value, + "arrow-control": (0, vue.unref)(arrowControl), + "spinner-date": startTime.value, + "disabled-hours": disabledHours_, + "disabled-minutes": disabledMinutes_, + "disabled-seconds": disabledSeconds_, + onChange: handleMinChange, + onSetOption: (0, vue.unref)(onSetOption), + onSelectRange: setMinSelectionRange + }, null, 8, [ + "show-seconds", + "am-pm-mode", + "arrow-control", + "spinner-date", + "onSetOption" + ])], 2)], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsTime).be("range-picker", "cell")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsTime).be("range-picker", "header")) }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.endTime")), 3), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(endContainerKls.value) }, [(0, vue.createVNode)(basic_time_spinner_default, { + ref: "maxSpinner", + role: "end", + "show-seconds": showSeconds.value, + "am-pm-mode": amPmMode.value, + "arrow-control": (0, vue.unref)(arrowControl), + "spinner-date": endTime.value, + "disabled-hours": disabledHours_, + "disabled-minutes": disabledMinutes_, + "disabled-seconds": disabledSeconds_, + onChange: handleMaxChange, + onSetOption: (0, vue.unref)(onSetOption), + onSelectRange: setMaxSelectionRange + }, null, 8, [ + "show-seconds", + "am-pm-mode", + "arrow-control", + "spinner-date", + "onSetOption" + ])], 2)], 2)], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsTime).be("panel", "footer")) }, [(0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(nsTime).be("panel", "btn"), "cancel"]), + onClick: _cache[0] || (_cache[0] = ($event) => handleCancel()) + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.cancel")), 3), (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(nsTime).be("panel", "btn"), "confirm"]), + disabled: btnConfirmDisabled.value, + onClick: _cache[1] || (_cache[1] = ($event) => handleConfirm()) + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.confirm")), 11, _hoisted_1$69)], 2)], 2)) : (0, vue.createCommentVNode)("v-if", true); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker-com/panel-time-range.vue + var panel_time_range_default = panel_time_range_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/time-picker/src/time-picker.tsx + import_dayjs_min.default.extend(import_customParseFormat.default); + var time_picker_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTimePicker", + install: null, + props: { + ...timePickerDefaultProps, + isRange: Boolean + }, + emits: [UPDATE_MODEL_EVENT], + setup(props, ctx) { + const commonPicker = (0, vue.ref)(); + const [type, Panel] = props.isRange ? ["timerange", panel_time_range_default] : ["time", panel_time_pick_default]; + const modelUpdater = (value) => ctx.emit(UPDATE_MODEL_EVENT, value); + (0, vue.provide)(PICKER_POPPER_OPTIONS_INJECTION_KEY, props.popperOptions); + ctx.expose({ + focus: () => { + commonPicker.value?.focus(); + }, + blur: () => { + commonPicker.value?.blur(); + }, + handleOpen: () => { + commonPicker.value?.handleOpen(); + }, + handleClose: () => { + commonPicker.value?.handleClose(); + } + }); + return () => { + const format = props.format ?? DEFAULT_FORMATS_TIME; + return (0, vue.createVNode)(picker_default, (0, vue.mergeProps)(props, { + "ref": commonPicker, + "type": type, + "format": format, + "onUpdate:modelValue": modelUpdater + }), { default: (props) => (0, vue.createVNode)(Panel, props, null) }); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-picker/index.ts + const ElTimePicker = withInstall(time_picker_default); + +//#endregion +//#region ../../packages/components/calendar/src/date-table.ts + const getPrevMonthLastDays = (date, count) => { + const lastDay = date.subtract(1, "month").endOf("month").date(); + return rangeArr(count).map((_, index) => lastDay - (count - index - 1)); + }; + const getMonthDays = (date) => { + return rangeArr(date.daysInMonth()).map((_, index) => index + 1); + }; + const toNestedArr = (days) => rangeArr(days.length / 7).map((index) => { + const start = index * 7; + return days.slice(start, start + 7); + }); + /** + * @deprecated Removed after 3.0.0, Use `DateTableProps` instead. + */ + const dateTableProps = buildProps({ + selectedDay: { type: definePropType(Object) }, + range: { type: definePropType(Array) }, + date: { + type: definePropType(Object), + required: true + }, + hideHeader: { type: Boolean } + }); + const dateTableEmits = { pick: (value) => isObject$1(value) }; + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/localeData.js + var require_localeData = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(n, e) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : (n = "undefined" != typeof globalThis ? globalThis : n || self).dayjs_plugin_localeData = e(); + })(exports, (function() { + "use strict"; + return function(n, e, t) { + var r = e.prototype, o = function(n) { + return n && (n.indexOf ? n : n.s); + }, u = function(n, e, t, r, u) { + var i = n.name ? n : n.$locale(), a = o(i[e]), s = o(i[t]), f = a || s.map((function(n) { + return n.slice(0, r); + })); + if (!u) return f; + var d = i.weekStart; + return f.map((function(n, e) { + return f[(e + (d || 0)) % 7]; + })); + }, i = function() { + return t.Ls[t.locale()]; + }, a = function(n, e) { + return n.formats[e] || function(n) { + return n.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, (function(n, e, t) { + return e || t.slice(1); + })); + }(n.formats[e.toUpperCase()]); + }, s = function() { + var n = this; + return { + months: function(e) { + return e ? e.format("MMMM") : u(n, "months"); + }, + monthsShort: function(e) { + return e ? e.format("MMM") : u(n, "monthsShort", "months", 3); + }, + firstDayOfWeek: function() { + return n.$locale().weekStart || 0; + }, + weekdays: function(e) { + return e ? e.format("dddd") : u(n, "weekdays"); + }, + weekdaysMin: function(e) { + return e ? e.format("dd") : u(n, "weekdaysMin", "weekdays", 2); + }, + weekdaysShort: function(e) { + return e ? e.format("ddd") : u(n, "weekdaysShort", "weekdays", 3); + }, + longDateFormat: function(e) { + return a(n.$locale(), e); + }, + meridiem: this.$locale().meridiem, + ordinal: this.$locale().ordinal + }; + }; + r.localeData = function() { + return s.bind(this)(); + }, t.localeData = function() { + var n = i(); + return { + firstDayOfWeek: function() { + return n.weekStart || 0; + }, + weekdays: function() { + return t.weekdays(); + }, + weekdaysShort: function() { + return t.weekdaysShort(); + }, + weekdaysMin: function() { + return t.weekdaysMin(); + }, + months: function() { + return t.months(); + }, + monthsShort: function() { + return t.monthsShort(); + }, + longDateFormat: function(e) { + return a(n, e); + }, + meridiem: n.meridiem, + ordinal: n.ordinal + }; + }, t.months = function() { + return u(i(), "months"); + }, t.monthsShort = function() { + return u(i(), "monthsShort", "months", 3); + }, t.weekdays = function(n) { + return u(i(), "weekdays", null, null, n); + }, t.weekdaysShort = function(n) { + return u(i(), "weekdaysShort", "weekdays", 3, n); + }, t.weekdaysMin = function(n) { + return u(i(), "weekdaysMin", "weekdays", 2, n); + }; + }; + })); + })); + +//#endregion +//#region ../../packages/components/calendar/src/use-date-table.ts + var import_localeData = /* @__PURE__ */ __toESM(require_localeData()); + const useDateTable = (props, emit) => { + import_dayjs_min.default.extend(import_localeData.default); + const firstDayOfWeek = import_dayjs_min.default.localeData().firstDayOfWeek(); + const { t, lang } = useLocale(); + const now = (0, import_dayjs_min.default)().locale(lang.value); + const isInRange = (0, vue.computed)(() => !!props.range && !!props.range.length); + const rows = (0, vue.computed)(() => { + let days = []; + if (isInRange.value) { + const [start, end] = props.range; + const currentMonthRange = rangeArr(end.date() - start.date() + 1).map((index) => ({ + text: start.date() + index, + type: "current" + })); + let remaining = currentMonthRange.length % 7; + remaining = remaining === 0 ? 0 : 7 - remaining; + const nextMonthRange = rangeArr(remaining).map((_, index) => ({ + text: index + 1, + type: "next" + })); + days = currentMonthRange.concat(nextMonthRange); + } else { + const firstDay = props.date.startOf("month").day(); + const prevMonthDays = getPrevMonthLastDays(props.date, (firstDay - firstDayOfWeek + 7) % 7).map((day) => ({ + text: day, + type: "prev" + })); + const currentMonthDays = getMonthDays(props.date).map((day) => ({ + text: day, + type: "current" + })); + days = [...prevMonthDays, ...currentMonthDays]; + const nextMonthDays = rangeArr(7 - (days.length % 7 || 7)).map((_, index) => ({ + text: index + 1, + type: "next" + })); + days = days.concat(nextMonthDays); + } + return toNestedArr(days); + }); + const weekDays = (0, vue.computed)(() => { + const start = firstDayOfWeek; + if (start === 0) return WEEK_DAYS.map((_) => t(`el.datepicker.weeks.${_}`)); + else return WEEK_DAYS.slice(start).concat(WEEK_DAYS.slice(0, start)).map((_) => t(`el.datepicker.weeks.${_}`)); + }); + const getFormattedDate = (day, type) => { + switch (type) { + case "prev": return props.date.startOf("month").subtract(1, "month").date(day); + case "next": return props.date.startOf("month").add(1, "month").date(day); + case "current": return props.date.date(day); + } + }; + const handlePickDay = ({ text, type }) => { + emit("pick", getFormattedDate(text, type)); + }; + const getSlotData = ({ text, type }) => { + const day = getFormattedDate(text, type); + return { + isSelected: day.isSame(props.selectedDay), + type: `${type}-month`, + day: day.format(DEFAULT_FORMATS_DATE), + date: day.toDate() + }; + }; + return { + now, + isInRange, + rows, + weekDays, + getFormattedDate, + handlePickDay, + getSlotData + }; + }; + +//#endregion +//#region ../../packages/components/calendar/src/date-table.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$68 = { key: 0 }; + const _hoisted_2$38 = ["onClick"]; + var date_table_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "DateTable", + __name: "date-table", + props: dateTableProps, + emits: dateTableEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const { isInRange, now, rows, weekDays, getFormattedDate, handlePickDay, getSlotData } = useDateTable(props, __emit); + const nsTable = useNamespace("calendar-table"); + const nsDay = useNamespace("calendar-day"); + const getCellClass = ({ text, type }) => { + const classes = [type]; + if (type === "current") { + const date = getFormattedDate(text, type); + if (date.isSame(props.selectedDay, "day")) classes.push(nsDay.is("selected")); + if (date.isSame(now, "day")) classes.push(nsDay.is("today")); + } + return classes; + }; + __expose({ getFormattedDate }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("table", { + class: (0, vue.normalizeClass)([(0, vue.unref)(nsTable).b(), (0, vue.unref)(nsTable).is("range", (0, vue.unref)(isInRange))]), + cellspacing: "0", + cellpadding: "0" + }, [!__props.hideHeader ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("thead", _hoisted_1$68, [(0, vue.createElementVNode)("tr", null, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(weekDays), (day) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("th", { + key: day, + scope: "col" + }, (0, vue.toDisplayString)(day), 1); + }), 128))])])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("tbody", null, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(rows), (row, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("tr", { + key: index, + class: (0, vue.normalizeClass)({ + [(0, vue.unref)(nsTable).e("row")]: true, + [(0, vue.unref)(nsTable).em("row", "hide-border")]: index === 0 && __props.hideHeader + }) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(row, (cell, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("td", { + key, + class: (0, vue.normalizeClass)(getCellClass(cell)), + onClick: ($event) => (0, vue.unref)(handlePickDay)(cell) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsDay).b()) }, [(0, vue.renderSlot)(_ctx.$slots, "date-cell", { data: (0, vue.unref)(getSlotData)(cell) }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(cell.text), 1)])], 2)], 10, _hoisted_2$38); + }), 128))], 2); + }), 128))])], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/calendar/src/date-table.vue + var date_table_default = date_table_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/calendar/src/use-calendar.ts + const adjacentMonth = (start, end) => { + const firstMonthLastDay = start.endOf("month"); + const lastMonthFirstDay = end.startOf("month"); + const lastMonthStartDay = firstMonthLastDay.isSame(lastMonthFirstDay, "week") ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay; + return [[start, firstMonthLastDay], [lastMonthStartDay.startOf("week"), end]]; + }; + const threeConsecutiveMonth = (start, end) => { + const firstMonthLastDay = start.endOf("month"); + const secondMonthFirstDay = start.add(1, "month").startOf("month"); + const secondMonthStartDay = firstMonthLastDay.isSame(secondMonthFirstDay, "week") ? secondMonthFirstDay.add(1, "week") : secondMonthFirstDay; + const secondMonthLastDay = secondMonthStartDay.endOf("month"); + const lastMonthFirstDay = end.startOf("month"); + const lastMonthStartDay = secondMonthLastDay.isSame(lastMonthFirstDay, "week") ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay; + return [ + [start, firstMonthLastDay], + [secondMonthStartDay.startOf("week"), secondMonthLastDay], + [lastMonthStartDay.startOf("week"), end] + ]; + }; + const useCalendar = (props, emit, componentName) => { + const { lang } = useLocale(); + const selectedDay = (0, vue.ref)(); + const now = (0, import_dayjs_min.default)().locale(lang.value); + const realSelectedDay = (0, vue.computed)({ + get() { + if (!props.modelValue) return selectedDay.value; + return date.value; + }, + set(val) { + if (!val) return; + selectedDay.value = val; + const result = val.toDate(); + emit(INPUT_EVENT, result); + emit(UPDATE_MODEL_EVENT, result); + } + }); + const validatedRange = (0, vue.computed)(() => { + if (!props.range || !isArray$1(props.range) || props.range.length !== 2 || props.range.some((item) => !isDate(item))) return []; + const [startDayjs, endDayjs] = props.range.map((_) => (0, import_dayjs_min.default)(_).locale(lang.value)); + if (startDayjs.isAfter(endDayjs)) { + /* @__PURE__ */ debugWarn(componentName, "end time should be greater than start time"); + return []; + } + if (startDayjs.isSame(endDayjs, "month")) return calculateValidatedDateRange(startDayjs, endDayjs); + else { + if (startDayjs.add(1, "month").month() !== endDayjs.month()) { + /* @__PURE__ */ debugWarn(componentName, "start time and end time interval must not exceed two months"); + return []; + } + return calculateValidatedDateRange(startDayjs, endDayjs); + } + }); + const date = (0, vue.computed)(() => { + if (!props.modelValue) return realSelectedDay.value || (validatedRange.value.length ? validatedRange.value[0][0] : now); + else return (0, import_dayjs_min.default)(props.modelValue).locale(lang.value); + }); + const prevMonthDayjs = (0, vue.computed)(() => date.value.subtract(1, "month").date(1)); + const nextMonthDayjs = (0, vue.computed)(() => date.value.add(1, "month").date(1)); + const prevYearDayjs = (0, vue.computed)(() => date.value.subtract(1, "year").date(1)); + const nextYearDayjs = (0, vue.computed)(() => date.value.add(1, "year").date(1)); + const calculateValidatedDateRange = (startDayjs, endDayjs) => { + const firstDay = startDayjs.startOf("week"); + const lastDay = endDayjs.endOf("week"); + const firstMonth = firstDay.get("month"); + const lastMonth = lastDay.get("month"); + if (firstMonth === lastMonth) return [[firstDay, lastDay]]; + else if ((firstMonth + 1) % 12 === lastMonth) return adjacentMonth(firstDay, lastDay); + else if (firstMonth + 2 === lastMonth || (firstMonth + 1) % 11 === lastMonth) return threeConsecutiveMonth(firstDay, lastDay); + else { + /* @__PURE__ */ debugWarn(componentName, "start time and end time interval must not exceed two months"); + return []; + } + }; + const pickDay = (day) => { + realSelectedDay.value = day; + }; + const selectDate = (type) => { + const day = { + "prev-month": prevMonthDayjs.value, + "next-month": nextMonthDayjs.value, + "prev-year": prevYearDayjs.value, + "next-year": nextYearDayjs.value, + today: now + }[type]; + if (!day.isSame(date.value, "day")) pickDay(day); + }; + const handleDateChange = (date) => { + if (date === "today") selectDate("today"); + else pickDay(date); + }; + return { + calculateValidatedDateRange, + date, + realSelectedDay, + pickDay, + selectDate, + validatedRange, + handleDateChange + }; + }; + +//#endregion +//#region ../../packages/components/calendar/src/select-controller.ts +/** + * @deprecated Removed after 3.0.0, Use `SelectControllerProps` instead. + */ + const selectControllerProps = buildProps({ + date: { + type: definePropType(Object), + required: true + }, + formatter: { type: definePropType(Function) } + }); + const selectControllerEmits = { "date-change": (date) => isObject$1(date) || isString(date) }; + +//#endregion +//#region ../../packages/components/tag/src/tag.ts +/** + * @deprecated Removed after 3.0.0, Use `TagProps` instead. + */ + const tagProps = buildProps({ + type: { + type: String, + values: [ + "primary", + "success", + "info", + "warning", + "danger" + ], + default: "primary" + }, + closable: Boolean, + disableTransitions: Boolean, + hit: Boolean, + color: String, + size: { + type: String, + values: componentSizes + }, + effect: { + type: String, + values: [ + "dark", + "light", + "plain" + ], + default: "light" + }, + round: Boolean + }); + const tagEmits = { + close: (evt) => evt instanceof MouseEvent, + click: (evt) => evt instanceof MouseEvent + }; + +//#endregion +//#region ../../packages/components/tag/src/tag.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$67 = ["aria-label"]; + const _hoisted_2$37 = ["aria-label"]; + var tag_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTag", + __name: "tag", + props: tagProps, + emits: tagEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const tagSize = useFormSize(); + const { t } = useLocale(); + const ns = useNamespace("tag"); + const containerKls = (0, vue.computed)(() => { + const { type, hit, effect, closable, round } = props; + return [ + ns.b(), + ns.is("closable", closable), + ns.m(type || "primary"), + ns.m(tagSize.value), + ns.m(effect), + ns.is("hit", hit), + ns.is("round", round) + ]; + }); + const handleClose = (event) => { + emit("close", event); + }; + const handleClick = (event) => { + emit("click", event); + }; + const handleVNodeMounted = (vnode) => { + if (vnode?.component?.subTree?.component?.bum) vnode.component.subTree.component.bum = null; + }; + return (_ctx, _cache) => { + return __props.disableTransitions ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)(containerKls.value), + style: (0, vue.normalizeStyle)({ backgroundColor: __props.color }), + onClick: handleClick + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2), __props.closable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + "aria-label": (0, vue.unref)(t)("el.tag.close"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close")), + type: "button", + onClick: (0, vue.withModifiers)(handleClose, ["stop"]) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + })], 10, _hoisted_1$67)) : (0, vue.createCommentVNode)("v-if", true)], 6)) : ((0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + key: 1, + name: `${(0, vue.unref)(ns).namespace.value}-zoom-in-center`, + appear: "", + onVnodeMounted: handleVNodeMounted + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)(containerKls.value), + style: (0, vue.normalizeStyle)({ backgroundColor: __props.color }), + onClick: handleClick + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2), __props.closable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + "aria-label": (0, vue.unref)(t)("el.tag.close"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close")), + type: "button", + onClick: (0, vue.withModifiers)(handleClose, ["stop"]) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + })], 10, _hoisted_2$37)) : (0, vue.createCommentVNode)("v-if", true)], 6)]), + _: 3 + }, 8, ["name"])); + }; + } + }); + +//#endregion +//#region ../../packages/components/tag/src/tag.vue + var tag_default = tag_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tag/index.ts + const ElTag = withInstall(tag_default); + +//#endregion +//#region ../../packages/components/select-v2/src/useProps.ts + const defaultProps$2 = { + label: "label", + value: "value", + disabled: "disabled", + options: "options" + }; + function useProps(props) { + const aliasProps = (0, vue.ref)({ + ...defaultProps$2, + ...props.props + }); + let cache = { ...props.props }; + (0, vue.watch)(() => props.props, (val) => { + if (!isEqual$1(val, cache)) { + aliasProps.value = { + ...defaultProps$2, + ...val + }; + cache = { ...val }; + } + }, { deep: true }); + const getLabel = (option) => get(option, aliasProps.value.label); + const getValue = (option) => get(option, aliasProps.value.value); + const getDisabled = (option) => get(option, aliasProps.value.disabled); + const getOptions = (option) => get(option, aliasProps.value.options); + return { + aliasProps, + getLabel, + getValue, + getDisabled, + getOptions + }; + } + +//#endregion +//#region ../../packages/components/select/src/token.ts + const selectGroupKey = Symbol("ElSelectGroup"); + const selectKey = Symbol("ElSelect"); + +//#endregion +//#region ../../packages/components/select/src/option.ts + const COMPONENT_NAME$14 = "ElOption"; + const optionProps = buildProps({ + value: { + type: [ + String, + Number, + Boolean, + Object + ], + required: true + }, + label: { type: [String, Number] }, + created: Boolean, + disabled: Boolean + }); + +//#endregion +//#region ../../packages/components/select/src/useOption.ts + function useOption$1(props, states) { + const select = (0, vue.inject)(selectKey); + if (!select) throwError(COMPONENT_NAME$14, "usage: "); + const selectGroup = (0, vue.inject)(selectGroupKey, { disabled: false }); + const itemSelected = (0, vue.computed)(() => { + return contains(castArray$1(select.props.modelValue), props.value); + }); + const limitReached = (0, vue.computed)(() => { + if (select.props.multiple) { + const modelValue = castArray$1(select.props.modelValue ?? []); + return !itemSelected.value && modelValue.length >= select.props.multipleLimit && select.props.multipleLimit > 0; + } else return false; + }); + const currentLabel = (0, vue.computed)(() => { + return props.label ?? (isObject$1(props.value) ? "" : props.value); + }); + const currentValue = (0, vue.computed)(() => { + return props.value || props.label || ""; + }); + const isDisabled = (0, vue.computed)(() => { + return props.disabled || states.groupDisabled || limitReached.value; + }); + const instance = (0, vue.getCurrentInstance)(); + const contains = (arr = [], target) => { + if (!isObject$1(props.value)) return arr && arr.includes(target); + else { + const valueKey = select.props.valueKey; + return arr && arr.some((item) => { + return (0, vue.toRaw)(get(item, valueKey)) === get(target, valueKey); + }); + } + }; + const hoverItem = () => { + if (!isDisabled.value) select.states.hoveringIndex = select.optionsArray.indexOf(instance.proxy); + }; + const updateOption = (query) => { + states.visible = new RegExp(escapeStringRegexp(query), "i").test(String(currentLabel.value)) || props.created; + }; + (0, vue.watch)(() => currentLabel.value, () => { + if (!props.created && !select.props.remote) select.setSelected(); + }); + (0, vue.watch)(() => props.value, (val, oldVal) => { + const { remote, valueKey } = select.props; + if (remote ? val !== oldVal : !isEqual$1(val, oldVal)) { + select.onOptionDestroy(oldVal, instance.proxy); + select.onOptionCreate(instance.proxy); + } + if (!props.created && !remote) { + if (valueKey && isObject$1(val) && isObject$1(oldVal) && val[valueKey] === oldVal[valueKey]) return; + select.setSelected(); + } + }); + (0, vue.watch)(() => selectGroup.disabled, () => { + states.groupDisabled = selectGroup.disabled; + }, { immediate: true }); + return { + select, + currentLabel, + currentValue, + itemSelected, + isDisabled, + hoverItem, + updateOption + }; + } + +//#endregion +//#region ../../packages/components/select/src/option.vue?vue&type=script&lang.ts + var option_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: COMPONENT_NAME$14, + componentName: COMPONENT_NAME$14, + props: optionProps, + setup(props) { + const ns = useNamespace("select"); + const id = useId(); + const containerKls = (0, vue.computed)(() => [ + ns.be("dropdown", "item"), + ns.is("disabled", (0, vue.unref)(isDisabled)), + ns.is("selected", (0, vue.unref)(itemSelected)), + ns.is("hovering", (0, vue.unref)(hover)) + ]); + const states = (0, vue.reactive)({ + index: -1, + groupDisabled: false, + visible: true, + hover: false + }); + const { currentLabel, itemSelected, isDisabled, select, hoverItem, updateOption } = useOption$1(props, states); + const { visible, hover } = (0, vue.toRefs)(states); + const vm = (0, vue.getCurrentInstance)().proxy; + select.onOptionCreate(vm); + (0, vue.onBeforeUnmount)(() => { + const key = vm.value; + (0, vue.nextTick)(() => { + const { selected: selectedOptions } = select.states; + const doesSelected = selectedOptions.some((item) => { + return item.value === vm.value; + }); + if (select.states.cachedOptions.get(key) === vm && !doesSelected) select.states.cachedOptions.delete(key); + }); + select.onOptionDestroy(key, vm); + }); + function selectOptionClick() { + if (!isDisabled.value) select.handleOptionSelect(vm); + } + const handleMousedown = (event) => { + let target = event.target; + const currentTarget = event.currentTarget; + while (target && target !== currentTarget) { + if (isFocusable(target)) return; + target = target.parentElement; + } + event.preventDefault(); + }; + return { + ns, + id, + containerKls, + currentLabel, + itemSelected, + isDisabled, + select, + visible, + hover, + states, + hoverItem, + handleMousedown, + updateOption, + selectOptionClick + }; + } + }); + +//#endregion +//#region ../../packages/components/select/src/option.vue + const _hoisted_1$66 = [ + "id", + "aria-disabled", + "aria-selected" + ]; + function _sfc_render$20(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + id: _ctx.id, + class: (0, vue.normalizeClass)(_ctx.containerKls), + role: "option", + "aria-disabled": _ctx.isDisabled || void 0, + "aria-selected": _ctx.itemSelected, + onMousemove: _cache[0] || (_cache[0] = (...args) => _ctx.hoverItem && _ctx.hoverItem(...args)), + onMousedown: _cache[1] || (_cache[1] = (...args) => _ctx.handleMousedown && _ctx.handleMousedown(...args)), + onClick: _cache[2] || (_cache[2] = (0, vue.withModifiers)((...args) => _ctx.selectOptionClick && _ctx.selectOptionClick(...args), ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.currentLabel), 1)])], 42, _hoisted_1$66)), [[vue.vShow, _ctx.visible]]); + } + var option_default = /* @__PURE__ */ _plugin_vue_export_helper_default(option_vue_vue_type_script_lang_default, [["render", _sfc_render$20]]); + +//#endregion +//#region ../../packages/components/select/src/select-dropdown.vue?vue&type=script&lang.ts + var select_dropdown_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElSelectDropdown", + componentName: "ElSelectDropdown", + setup() { + const select = (0, vue.inject)(selectKey); + const ns = useNamespace("select"); + const popperClass = (0, vue.computed)(() => select.props.popperClass); + const isMultiple = (0, vue.computed)(() => select.props.multiple); + const isFitInputWidth = (0, vue.computed)(() => select.props.fitInputWidth); + const minWidth = (0, vue.ref)(""); + function updateMinWidth() { + const offsetWidth = select.selectRef?.offsetWidth; + if (offsetWidth) minWidth.value = `${offsetWidth - BORDER_HORIZONTAL_WIDTH}px`; + else minWidth.value = ""; + } + (0, vue.onMounted)(() => { + updateMinWidth(); + useResizeObserver(select.selectRef, updateMinWidth); + }); + return { + ns, + minWidth, + popperClass, + isMultiple, + isFitInputWidth + }; + } + }); + +//#endregion +//#region ../../packages/components/select/src/select-dropdown.vue + function _sfc_render$19(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([ + _ctx.ns.b("dropdown"), + _ctx.ns.is("multiple", _ctx.isMultiple), + _ctx.popperClass + ]), + style: (0, vue.normalizeStyle)({ [_ctx.isFitInputWidth ? "width" : "minWidth"]: _ctx.minWidth }) + }, [ + _ctx.$slots.header ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)(_ctx.ns.be("dropdown", "header")) + }, [(0, vue.renderSlot)(_ctx.$slots, "header")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.renderSlot)(_ctx.$slots, "default"), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)(_ctx.ns.be("dropdown", "footer")) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 6); + } + var select_dropdown_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(select_dropdown_vue_vue_type_script_lang_default, [["render", _sfc_render$19]]); + +//#endregion +//#region ../../packages/components/select/src/useSelect.ts + const useSelect$2 = (props, emit) => { + const { t } = useLocale(); + const slots = (0, vue.useSlots)(); + const contentId = useId(); + const nsSelect = useNamespace("select"); + const nsInput = useNamespace("input"); + const states = (0, vue.reactive)({ + inputValue: "", + options: /* @__PURE__ */ new Map(), + cachedOptions: /* @__PURE__ */ new Map(), + optionValues: [], + selected: [], + selectionWidth: 0, + collapseItemWidth: 0, + selectedLabel: "", + hoveringIndex: -1, + previousQuery: null, + inputHovering: false, + menuVisibleOnFocus: false, + isBeforeHide: false + }); + const selectRef = (0, vue.ref)(); + const selectionRef = (0, vue.ref)(); + const tooltipRef = (0, vue.ref)(); + const tagTooltipRef = (0, vue.ref)(); + const inputRef = (0, vue.ref)(); + const prefixRef = (0, vue.ref)(); + const suffixRef = (0, vue.ref)(); + const menuRef = (0, vue.ref)(); + const tagMenuRef = (0, vue.ref)(); + const collapseItemRef = (0, vue.ref)(); + const scrollbarRef = (0, vue.ref)(); + const expanded = (0, vue.ref)(false); + const hoverOption = (0, vue.ref)(); + const debouncing = (0, vue.ref)(false); + const { form, formItem } = useFormItem(); + const { inputId } = useFormItemInputId(props, { formItemContext: formItem }); + const { valueOnClear, isEmptyValue } = useEmptyValues(props); + const { isComposing, handleCompositionStart, handleCompositionUpdate, handleCompositionEnd } = useComposition({ afterComposition: (e) => onInput(e) }); + const selectDisabled = useFormDisabled(); + const { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, { + disabled: selectDisabled, + afterFocus() { + if (props.automaticDropdown && !expanded.value) { + expanded.value = true; + states.menuVisibleOnFocus = true; + } + }, + beforeBlur(event) { + return tooltipRef.value?.isFocusInsideContent(event) || tagTooltipRef.value?.isFocusInsideContent(event); + }, + afterBlur() { + expanded.value = false; + states.menuVisibleOnFocus = false; + if (props.validateEvent) formItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const hasModelValue = (0, vue.computed)(() => { + return isArray$1(props.modelValue) ? props.modelValue.length > 0 : !isEmptyValue(props.modelValue); + }); + const needStatusIcon = (0, vue.computed)(() => form?.statusIcon ?? false); + const showClearBtn = (0, vue.computed)(() => { + return props.clearable && !selectDisabled.value && hasModelValue.value && (isFocused.value || states.inputHovering); + }); + const iconComponent = (0, vue.computed)(() => props.remote && props.filterable && !props.remoteShowSuffix ? "" : props.suffixIcon); + const iconReverse = (0, vue.computed)(() => nsSelect.is("reverse", !!(iconComponent.value && expanded.value))); + const validateState = (0, vue.computed)(() => formItem?.validateState || ""); + const validateIcon = (0, vue.computed)(() => validateState.value && ValidateComponentsMap[validateState.value]); + const debounce = (0, vue.computed)(() => props.remote ? props.debounce : 0); + const isRemoteSearchEmpty = (0, vue.computed)(() => props.remote && !states.inputValue && states.options.size === 0); + const emptyText = (0, vue.computed)(() => { + if (props.loading) return props.loadingText || t("el.select.loading"); + else { + if (props.filterable && states.inputValue && states.options.size > 0 && filteredOptionsCount.value === 0) return props.noMatchText || t("el.select.noMatch"); + if (states.options.size === 0) return props.noDataText || t("el.select.noData"); + } + return null; + }); + const filteredOptionsCount = (0, vue.computed)(() => optionsArray.value.filter((option) => option.visible).length); + const optionsArray = (0, vue.computed)(() => { + const list = Array.from(states.options.values()); + const newList = []; + states.optionValues.forEach((item) => { + const index = list.findIndex((i) => i.value === item); + if (index > -1) newList.push(list[index]); + }); + return newList.length >= list.length ? newList : list; + }); + const cachedOptionsArray = (0, vue.computed)(() => Array.from(states.cachedOptions.values())); + const showNewOption = (0, vue.computed)(() => { + const hasExistingOption = optionsArray.value.filter((option) => { + return !option.created; + }).some((option) => { + return option.currentLabel === states.inputValue; + }); + return props.filterable && props.allowCreate && states.inputValue !== "" && !hasExistingOption; + }); + const updateOptions = () => { + if (props.filterable && isFunction$1(props.filterMethod)) return; + if (props.filterable && props.remote && isFunction$1(props.remoteMethod)) return; + optionsArray.value.forEach((option) => { + option.updateOption?.(states.inputValue); + }); + }; + const selectSize = useFormSize(); + const collapseTagSize = (0, vue.computed)(() => ["small"].includes(selectSize.value) ? "small" : "default"); + const dropdownMenuVisible = (0, vue.computed)({ + get() { + return expanded.value && (props.loading || !isRemoteSearchEmpty.value || props.remote && !!slots.empty) && (!debouncing.value || !isEmpty(states.previousQuery) || states.options.size > 0); + }, + set(val) { + expanded.value = val; + } + }); + const shouldShowPlaceholder = (0, vue.computed)(() => { + if (props.multiple && !isUndefined(props.modelValue)) return castArray$1(props.modelValue).length === 0 && !states.inputValue; + const value = isArray$1(props.modelValue) ? props.modelValue[0] : props.modelValue; + return props.filterable || isUndefined(value) ? !states.inputValue : true; + }); + const currentPlaceholder = (0, vue.computed)(() => { + const _placeholder = props.placeholder ?? t("el.select.placeholder"); + return props.multiple || !hasModelValue.value ? _placeholder : states.selectedLabel; + }); + const mouseEnterEventName = (0, vue.computed)(() => isIOS ? null : "mouseenter"); + (0, vue.watch)(() => props.modelValue, (val, oldVal) => { + if (props.multiple) { + if (props.filterable && !props.reserveKeyword) { + states.inputValue = ""; + handleQueryChange(""); + } + } + setSelected(); + if (!isEqual$1(val, oldVal) && props.validateEvent) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }, { + flush: "post", + deep: true + }); + (0, vue.watch)(() => expanded.value, (val) => { + if (val) handleQueryChange(states.inputValue); + else { + states.inputValue = ""; + states.previousQuery = null; + states.isBeforeHide = true; + states.menuVisibleOnFocus = false; + } + }); + (0, vue.watch)(() => states.options.entries(), () => { + if (!isClient) return; + setSelected(); + if (props.defaultFirstOption && (props.filterable || props.remote) && filteredOptionsCount.value) checkDefaultFirstOption(); + }, { flush: "post" }); + (0, vue.watch)([() => states.hoveringIndex, optionsArray], ([val]) => { + if (isNumber(val) && val > -1) hoverOption.value = optionsArray.value[val] || {}; + else hoverOption.value = {}; + optionsArray.value.forEach((option) => { + option.hover = hoverOption.value === option; + }); + }); + (0, vue.watchEffect)(() => { + if (states.isBeforeHide) return; + updateOptions(); + }); + const handleQueryChange = (val) => { + if (states.previousQuery === val || isComposing.value) return; + states.previousQuery = val; + if (props.filterable && isFunction$1(props.filterMethod)) props.filterMethod(val); + else if (props.filterable && props.remote && isFunction$1(props.remoteMethod)) props.remoteMethod(val); + if (props.defaultFirstOption && (props.filterable || props.remote) && filteredOptionsCount.value) (0, vue.nextTick)(checkDefaultFirstOption); + else (0, vue.nextTick)(updateHoveringIndex); + }; + /** + * find and highlight first option as default selected + * @remark + * - if the first option in dropdown list is user-created, + * it would be at the end of the optionsArray + * so find it and set hover. + * (NOTE: there must be only one user-created option in dropdown list with query) + * - if there's no user-created option in list, just find the first one as usual + * (NOTE: exclude options that are disabled or in disabled-group) + */ + const checkDefaultFirstOption = () => { + const optionsInDropdown = optionsArray.value.filter((n) => n.visible && !n.disabled && !n.states.groupDisabled); + const userCreatedOption = optionsInDropdown.find((n) => n.created); + const firstOriginOption = optionsInDropdown[0]; + states.hoveringIndex = getValueIndex(optionsArray.value.map((item) => item.value), userCreatedOption || firstOriginOption); + }; + const setSelected = () => { + if (!props.multiple) { + const option = getOption(isArray$1(props.modelValue) ? props.modelValue[0] : props.modelValue); + states.selectedLabel = option.currentLabel; + states.selected = [option]; + return; + } else states.selectedLabel = ""; + const result = []; + if (!isUndefined(props.modelValue)) castArray$1(props.modelValue).forEach((value) => { + result.push(getOption(value)); + }); + states.selected = result; + }; + const getOption = (value) => { + let option; + const isObjectValue = isPlainObject$1(value); + for (let i = states.cachedOptions.size - 1; i >= 0; i--) { + const cachedOption = cachedOptionsArray.value[i]; + if (isObjectValue ? get(cachedOption.value, props.valueKey) === get(value, props.valueKey) : cachedOption.value === value) { + option = { + index: optionsArray.value.filter((opt) => !opt.created).indexOf(cachedOption), + value, + currentLabel: cachedOption.currentLabel, + get isDisabled() { + return cachedOption.isDisabled; + } + }; + break; + } + } + if (option) return option; + return { + index: -1, + value, + currentLabel: isObjectValue ? value.label : value ?? "" + }; + }; + const updateHoveringIndex = () => { + const length = states.selected.length; + if (length > 0) { + const lastOption = states.selected[length - 1]; + states.hoveringIndex = optionsArray.value.findIndex((item) => getValueKey(lastOption) === getValueKey(item)); + } else states.hoveringIndex = -1; + }; + const resetSelectionWidth = () => { + states.selectionWidth = Number.parseFloat(window.getComputedStyle(selectionRef.value).width); + }; + const resetCollapseItemWidth = () => { + states.collapseItemWidth = collapseItemRef.value.getBoundingClientRect().width; + }; + const updateTooltip = () => { + tooltipRef.value?.updatePopper?.(); + }; + const updateTagTooltip = () => { + tagTooltipRef.value?.updatePopper?.(); + }; + const onInputChange = () => { + if (states.inputValue.length > 0 && !expanded.value) expanded.value = true; + handleQueryChange(states.inputValue); + }; + const onInput = (event) => { + states.inputValue = event.target.value; + if (props.remote) { + debouncing.value = true; + debouncedOnInputChange(); + } else return onInputChange(); + }; + const debouncedOnInputChange = useDebounceFn(() => { + onInputChange(); + debouncing.value = false; + }, debounce); + const emitChange = (val) => { + if (!isEqual$1(props.modelValue, val)) emit(CHANGE_EVENT, val); + }; + const getLastNotDisabledIndex = (value) => findLastIndex(value, (it) => { + const option = states.cachedOptions.get(it); + return !option?.disabled && !option?.states.groupDisabled; + }); + const deletePrevTag = (e) => { + const code = getEventCode(e); + if (!props.multiple) return; + if (code === EVENT_CODE.delete) return; + if (e.target.value.length <= 0) { + const value = castArray$1(props.modelValue).slice(); + const lastNotDisabledIndex = getLastNotDisabledIndex(value); + if (lastNotDisabledIndex < 0) return; + const removeTagValue = value[lastNotDisabledIndex]; + value.splice(lastNotDisabledIndex, 1); + emit(UPDATE_MODEL_EVENT, value); + emitChange(value); + emit("remove-tag", removeTagValue); + } + }; + const deleteTag = (event, tag) => { + const index = states.selected.indexOf(tag); + if (index > -1 && !selectDisabled.value) { + const value = castArray$1(props.modelValue).slice(); + value.splice(index, 1); + emit(UPDATE_MODEL_EVENT, value); + emitChange(value); + emit("remove-tag", tag.value); + } + event.stopPropagation(); + focus(); + }; + const deleteSelected = (event) => { + event.stopPropagation(); + const value = props.multiple ? [] : valueOnClear.value; + if (props.multiple) { + for (const item of states.selected) if (item.isDisabled) value.push(item.value); + } + emit(UPDATE_MODEL_EVENT, value); + emitChange(value); + states.hoveringIndex = -1; + expanded.value = false; + emit("clear"); + focus(); + }; + const handleOptionSelect = (option) => { + if (props.multiple) { + const value = castArray$1(props.modelValue ?? []).slice(); + const optionIndex = getValueIndex(value, option); + if (optionIndex > -1) value.splice(optionIndex, 1); + else if (props.multipleLimit <= 0 || value.length < props.multipleLimit) value.push(option.value); + emit(UPDATE_MODEL_EVENT, value); + emitChange(value); + if (option.created) handleQueryChange(""); + if (props.filterable && (option.created || !props.reserveKeyword)) states.inputValue = ""; + } else { + !isEqual$1(props.modelValue, option.value) && emit(UPDATE_MODEL_EVENT, option.value); + emitChange(option.value); + expanded.value = false; + } + focus(); + if (expanded.value) return; + (0, vue.nextTick)(() => { + scrollToOption(option); + }); + }; + const getValueIndex = (arr, option) => { + if (isUndefined(option)) return -1; + if (!isObject$1(option.value)) return arr.indexOf(option.value); + return arr.findIndex((item) => { + return isEqual$1(get(item, props.valueKey), getValueKey(option)); + }); + }; + const scrollToOption = (option) => { + const targetOption = isArray$1(option) ? option[option.length - 1] : option; + let target = null; + if (!isNil(targetOption?.value)) { + const options = optionsArray.value.filter((item) => item.value === targetOption.value); + if (options.length > 0) target = options[0].$el; + } + if (tooltipRef.value && target) { + const menu = tooltipRef.value?.popperRef?.contentRef?.querySelector?.(`.${nsSelect.be("dropdown", "wrap")}`); + if (menu) scrollIntoView(menu, target); + } + scrollbarRef.value?.handleScroll(); + }; + const onOptionCreate = (vm) => { + states.options.set(vm.value, vm); + states.cachedOptions.set(vm.value, vm); + }; + const onOptionDestroy = (key, vm) => { + if (states.options.get(key) === vm) states.options.delete(key); + }; + const popperRef = (0, vue.computed)(() => { + return tooltipRef.value?.popperRef?.contentRef; + }); + const handleMenuEnter = () => { + states.isBeforeHide = false; + (0, vue.nextTick)(() => { + scrollbarRef.value?.update(); + scrollToOption(states.selected); + }); + }; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + if (expanded.value) { + expanded.value = false; + (0, vue.nextTick)(() => inputRef.value?.blur()); + return; + } + inputRef.value?.blur(); + }; + const handleClearClick = (event) => { + deleteSelected(event); + }; + const handleClickOutside = (event) => { + expanded.value = false; + if (isFocused.value) { + const _event = new FocusEvent("blur", event); + (0, vue.nextTick)(() => handleBlur(_event)); + } + }; + const handleEsc = () => { + if (states.inputValue.length > 0) states.inputValue = ""; + else expanded.value = false; + }; + const toggleMenu = (event) => { + if (selectDisabled.value || props.filterable && expanded.value && event && !suffixRef.value?.contains(event.target)) return; + if (isIOS) states.inputHovering = true; + if (states.menuVisibleOnFocus) states.menuVisibleOnFocus = false; + else expanded.value = !expanded.value; + }; + const selectOption = () => { + if (!expanded.value) toggleMenu(); + else { + const option = optionsArray.value[states.hoveringIndex]; + if (option && !option.isDisabled) handleOptionSelect(option); + } + }; + const getValueKey = (item) => { + return isObject$1(item.value) ? get(item.value, props.valueKey) : item.value; + }; + const optionsAllDisabled = (0, vue.computed)(() => optionsArray.value.filter((option) => option.visible).every((option) => option.isDisabled)); + const showTagList = (0, vue.computed)(() => { + if (!props.multiple) return []; + return props.collapseTags ? states.selected.slice(0, props.maxCollapseTags) : states.selected; + }); + const collapseTagList = (0, vue.computed)(() => { + if (!props.multiple) return []; + return props.collapseTags ? states.selected.slice(props.maxCollapseTags) : []; + }); + const navigateOptions = (direction) => { + if (!expanded.value) { + expanded.value = true; + return; + } + if (states.options.size === 0 || filteredOptionsCount.value === 0 || isComposing.value) return; + if (!optionsAllDisabled.value) { + if (direction === "next") { + states.hoveringIndex++; + if (states.hoveringIndex === states.options.size) states.hoveringIndex = 0; + } else if (direction === "prev") { + states.hoveringIndex--; + if (states.hoveringIndex < 0) states.hoveringIndex = states.options.size - 1; + } + const option = optionsArray.value[states.hoveringIndex]; + if (option.isDisabled || !option.visible) navigateOptions(direction); + (0, vue.nextTick)(() => scrollToOption(hoverOption.value)); + } + }; + const findFocusableIndex = (arr, start, step, len) => { + for (let i = start; i >= 0 && i < len; i += step) { + const obj = arr[i]; + if (!obj?.isDisabled && obj?.visible) return i; + } + return null; + }; + const focusOption = (targetIndex, mode) => { + const len = states.options.size; + if (len === 0) return; + const start = clamp$1(targetIndex, 0, len - 1); + const options = optionsArray.value; + const direction = mode === "up" ? -1 : 1; + const newIndex = findFocusableIndex(options, start, direction, len) ?? findFocusableIndex(options, start - direction, -direction, len); + if (newIndex != null) { + states.hoveringIndex = newIndex; + (0, vue.nextTick)(() => scrollToOption(hoverOption.value)); + } + }; + const handleKeydown = (e) => { + const code = getEventCode(e); + let isPreventDefault = true; + switch (code) { + case EVENT_CODE.up: + navigateOptions("prev"); + break; + case EVENT_CODE.down: + navigateOptions("next"); + break; + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + if (!isComposing.value) selectOption(); + break; + case EVENT_CODE.esc: + handleEsc(); + break; + case EVENT_CODE.backspace: + isPreventDefault = false; + deletePrevTag(e); + return; + case EVENT_CODE.home: + if (!expanded.value) return; + focusOption(0, "down"); + break; + case EVENT_CODE.end: + if (!expanded.value) return; + focusOption(states.options.size - 1, "up"); + break; + case EVENT_CODE.pageUp: + if (!expanded.value) return; + focusOption(states.hoveringIndex - 10, "up"); + break; + case EVENT_CODE.pageDown: + if (!expanded.value) return; + focusOption(states.hoveringIndex + 10, "down"); + break; + default: + isPreventDefault = false; + break; + } + if (isPreventDefault) { + e.preventDefault(); + e.stopPropagation(); + } + }; + const getGapWidth = () => { + if (!selectionRef.value) return 0; + const style = window.getComputedStyle(selectionRef.value); + return Number.parseFloat(style.gap || "6px"); + }; + const tagStyle = (0, vue.computed)(() => { + const gapWidth = getGapWidth(); + const inputSlotWidth = props.filterable ? gapWidth + MINIMUM_INPUT_WIDTH : 0; + return { maxWidth: `${collapseItemRef.value && props.maxCollapseTags === 1 ? states.selectionWidth - states.collapseItemWidth - gapWidth - inputSlotWidth : states.selectionWidth - inputSlotWidth}px` }; + }); + const collapseTagStyle = (0, vue.computed)(() => { + return { maxWidth: `${states.selectionWidth}px` }; + }); + const popupScroll = (data) => { + emit("popup-scroll", data); + }; + useResizeObserver(selectionRef, resetSelectionWidth); + useResizeObserver(wrapperRef, updateTooltip); + useResizeObserver(tagMenuRef, updateTagTooltip); + useResizeObserver(collapseItemRef, resetCollapseItemWidth); + let stop; + (0, vue.watch)(() => dropdownMenuVisible.value, (newVal) => { + if (newVal) stop = useResizeObserver(menuRef, updateTooltip).stop; + else { + stop?.(); + stop = void 0; + } + emit("visible-change", newVal); + }); + (0, vue.onMounted)(() => { + setSelected(); + }); + return { + inputId, + contentId, + nsSelect, + nsInput, + states, + isFocused, + expanded, + optionsArray, + hoverOption, + selectSize, + filteredOptionsCount, + updateTooltip, + updateTagTooltip, + debouncedOnInputChange, + onInput, + deletePrevTag, + deleteTag, + deleteSelected, + handleOptionSelect, + scrollToOption, + hasModelValue, + shouldShowPlaceholder, + currentPlaceholder, + mouseEnterEventName, + needStatusIcon, + showClearBtn, + iconComponent, + iconReverse, + validateState, + validateIcon, + showNewOption, + updateOptions, + collapseTagSize, + setSelected, + selectDisabled, + emptyText, + handleCompositionStart, + handleCompositionUpdate, + handleCompositionEnd, + handleKeydown, + onOptionCreate, + onOptionDestroy, + handleMenuEnter, + focus, + blur, + handleClearClick, + handleClickOutside, + handleEsc, + toggleMenu, + selectOption, + getValueKey, + navigateOptions, + dropdownMenuVisible, + showTagList, + collapseTagList, + popupScroll, + getOption, + tagStyle, + collapseTagStyle, + popperRef, + inputRef, + tooltipRef, + tagTooltipRef, + prefixRef, + suffixRef, + selectRef, + wrapperRef, + selectionRef, + scrollbarRef, + menuRef, + tagMenuRef, + collapseItemRef + }; + }; + +//#endregion +//#region ../../packages/components/select/src/options.ts + var options_default = (0, vue.defineComponent)({ + name: "ElOptions", + setup(_, { slots }) { + const select = (0, vue.inject)(selectKey); + let cachedValueList = []; + return () => { + const children = slots.default?.(); + const valueList = []; + function filterOptions(children) { + if (!isArray$1(children)) return; + children.forEach((item) => { + const name = (item?.type || {})?.name; + if (name === "ElOptionGroup") filterOptions(!isString(item.children) && !isArray$1(item.children) && isFunction$1(item.children?.default) ? item.children?.default() : item.children); + else if (name === "ElOption") valueList.push(item.props?.value); + else if (isArray$1(item.children)) filterOptions(item.children); + }); + } + if (children.length) filterOptions(children[0]?.children); + if (!isEqual$1(valueList, cachedValueList)) { + cachedValueList = valueList; + if (select) select.states.optionValues = valueList; + } + return children; + }; + } + }); + +//#endregion +//#region ../../packages/components/select/src/select.ts + const selectProps = buildProps({ + name: String, + id: String, + modelValue: { + type: definePropType([ + Array, + String, + Number, + Boolean, + Object + ]), + default: void 0 + }, + autocomplete: { + type: String, + default: "off" + }, + automaticDropdown: Boolean, + size: useSizeProp, + effect: { + type: definePropType(String), + default: "light" + }, + disabled: { + type: Boolean, + default: void 0 + }, + clearable: Boolean, + filterable: Boolean, + allowCreate: Boolean, + loading: Boolean, + popperClass: { + type: String, + default: "" + }, + popperStyle: { type: definePropType([String, Object]) }, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + remote: Boolean, + debounce: { + type: Number, + default: 300 + }, + loadingText: String, + noMatchText: String, + noDataText: String, + remoteMethod: { type: definePropType(Function) }, + filterMethod: { type: definePropType(Function) }, + multiple: Boolean, + multipleLimit: { + type: Number, + default: 0 + }, + placeholder: { type: String }, + defaultFirstOption: Boolean, + reserveKeyword: { + type: Boolean, + default: true + }, + valueKey: { + type: String, + default: "value" + }, + collapseTags: Boolean, + collapseTagsTooltip: Boolean, + tagTooltip: { + type: definePropType(Object), + default: () => ({}) + }, + maxCollapseTags: { + type: Number, + default: 1 + }, + teleported: useTooltipContentProps.teleported, + persistent: { + type: Boolean, + default: true + }, + clearIcon: { + type: iconPropType, + default: circle_close_default + }, + fitInputWidth: Boolean, + suffixIcon: { + type: iconPropType, + default: arrow_down_default + }, + tagType: { + ...tagProps.type, + default: "info" + }, + tagEffect: { + ...tagProps.effect, + default: "light" + }, + validateEvent: { + type: Boolean, + default: true + }, + remoteShowSuffix: Boolean, + showArrow: { + type: Boolean, + default: true + }, + offset: { + type: Number, + default: 12 + }, + placement: { + type: definePropType(String), + values: Ee, + default: "bottom-start" + }, + fallbackPlacements: { + type: definePropType(Array), + default: [ + "bottom-start", + "top-start", + "right", + "left" + ] + }, + tabindex: { + type: [String, Number], + default: 0 + }, + appendTo: useTooltipContentProps.appendTo, + options: { type: definePropType(Array) }, + props: { + type: definePropType(Object), + default: () => defaultProps$2 + }, + ...useEmptyValuesProps, + ...useAriaProps(["ariaLabel"]) + }); + const selectEmits = { + [UPDATE_MODEL_EVENT]: (val) => true, + [CHANGE_EVENT]: (val) => true, + "popup-scroll": scrollbarEmits.scroll, + "remove-tag": (val) => true, + "visible-change": (visible) => true, + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true + }; + +//#endregion +//#region ../../packages/components/select/src/option-group.vue?vue&type=script&lang.ts + var option_group_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElOptionGroup", + componentName: "ElOptionGroup", + props: { + label: String, + disabled: Boolean + }, + setup(props) { + const ns = useNamespace("select"); + const groupRef = (0, vue.ref)(); + const instance = (0, vue.getCurrentInstance)(); + const children = (0, vue.ref)([]); + (0, vue.provide)(selectGroupKey, (0, vue.reactive)({ ...(0, vue.toRefs)(props) })); + const visible = (0, vue.computed)(() => children.value.some((option) => option.visible === true)); + const isOption = (node) => node.type.name === "ElOption" && !!node.component?.proxy; + const flattedChildren = (node) => { + const nodes = castArray$1(node); + const children = []; + nodes.forEach((child) => { + if (!(0, vue.isVNode)(child)) return; + if (isOption(child)) children.push(child.component.proxy); + else if (isArray$1(child.children) && child.children.length) children.push(...flattedChildren(child.children)); + else if (child.component?.subTree) children.push(...flattedChildren(child.component.subTree)); + }); + return children; + }; + const updateChildren = () => { + children.value = flattedChildren(instance.subTree); + }; + (0, vue.onMounted)(() => { + updateChildren(); + }); + useMutationObserver(groupRef, updateChildren, { + attributes: true, + subtree: true, + childList: true + }); + return { + groupRef, + visible, + ns + }; + } + }); + +//#endregion +//#region ../../packages/components/select/src/option-group.vue + function _sfc_render$18(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("ul", { + ref: "groupRef", + class: (0, vue.normalizeClass)(_ctx.ns.be("group", "wrap")) + }, [(0, vue.createElementVNode)("li", { class: (0, vue.normalizeClass)(_ctx.ns.be("group", "title")) }, (0, vue.toDisplayString)(_ctx.label), 3), (0, vue.createElementVNode)("li", null, [(0, vue.createElementVNode)("ul", { class: (0, vue.normalizeClass)(_ctx.ns.b("group")) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)])], 2)), [[vue.vShow, _ctx.visible]]); + } + var option_group_default = /* @__PURE__ */ _plugin_vue_export_helper_default(option_group_vue_vue_type_script_lang_default, [["render", _sfc_render$18]]); + +//#endregion +//#region ../../packages/components/select/src/select.vue?vue&type=script&lang.ts + const COMPONENT_NAME$13 = "ElSelect"; + const warnHandlerMap = /* @__PURE__ */ new WeakMap(); + const createSelectWarnHandler = (appContext) => { + return (...args) => { + const message = args[0]; + if (!message || message.includes("Slot \"default\" invoked outside of the render function") && args[2]?.includes("ElTreeSelect")) return; + const original = warnHandlerMap.get(appContext)?.originalWarnHandler; + if (original) { + original(...args); + return; + } + console.warn(...args); + }; + }; + const getWarnHandlerRecord = (appContext) => { + let record = warnHandlerMap.get(appContext); + if (!record) { + record = { + originalWarnHandler: appContext.config.warnHandler, + handler: createSelectWarnHandler(appContext), + count: 0 + }; + warnHandlerMap.set(appContext, record); + } + return record; + }; + var select_vue_vue_type_script_lang_default$1 = (0, vue.defineComponent)({ + name: COMPONENT_NAME$13, + componentName: COMPONENT_NAME$13, + components: { + ElSelectMenu: select_dropdown_default$1, + ElOption: option_default, + ElOptions: options_default, + ElOptionGroup: option_group_default, + ElTag, + ElScrollbar, + ElTooltip, + ElIcon + }, + directives: { ClickOutside }, + props: selectProps, + emits: [ + UPDATE_MODEL_EVENT, + CHANGE_EVENT, + "remove-tag", + "clear", + "visible-change", + "focus", + "blur", + "popup-scroll" + ], + setup(props, { emit, slots }) { + const instance = (0, vue.getCurrentInstance)(); + const warnRecord = getWarnHandlerRecord(instance.appContext); + warnRecord.count += 1; + instance.appContext.config.warnHandler = warnRecord.handler; + const modelValue = (0, vue.computed)(() => { + const { modelValue: rawModelValue, multiple } = props; + const fallback = multiple ? [] : void 0; + if (isArray$1(rawModelValue)) return multiple ? rawModelValue : fallback; + return multiple ? fallback : rawModelValue; + }); + const _props = (0, vue.reactive)({ + ...(0, vue.toRefs)(props), + modelValue + }); + const API = useSelect$2(_props, emit); + const { calculatorRef, inputStyle } = useCalcInputWidth(); + const { getLabel, getValue, getOptions, getDisabled } = useProps(props); + const getOptionProps = (option) => ({ + label: getLabel(option), + value: getValue(option), + disabled: getDisabled(option) + }); + const flatTreeSelectData = (data) => { + return data.reduce((acc, item) => { + acc.push(item); + if (item.children && item.children.length > 0) acc.push(...flatTreeSelectData(item.children)); + return acc; + }, []); + }; + const manuallyRenderSlots = (vnodes) => { + flattedChildren(vnodes || []).forEach((item) => { + if (isObject$1(item) && (item.type.name === "ElOption" || item.type.name === "ElTree")) { + const _name = item.type.name; + if (_name === "ElTree") flatTreeSelectData(item.props?.data || []).forEach((treeItem) => { + treeItem.currentLabel = treeItem.label ?? (isObject$1(treeItem.value) ? "" : treeItem.value); + API.onOptionCreate(treeItem); + }); + else if (_name === "ElOption") { + const obj = { ...item.props }; + obj.currentLabel = obj.label ?? (isObject$1(obj.value) ? "" : obj.value); + API.onOptionCreate(obj); + } + } + }); + }; + (0, vue.watch)(() => [props.persistent || API.expanded.value || !slots.default ? void 0 : slots.default?.(), modelValue.value], () => { + if (props.persistent || API.expanded.value) return; + if (!slots.default) return; + API.states.options.clear(); + manuallyRenderSlots(slots.default?.()); + }, { immediate: true }); + (0, vue.provide)(selectKey, (0, vue.reactive)({ + props: _props, + states: API.states, + selectRef: API.selectRef, + optionsArray: API.optionsArray, + setSelected: API.setSelected, + handleOptionSelect: API.handleOptionSelect, + onOptionCreate: API.onOptionCreate, + onOptionDestroy: API.onOptionDestroy + })); + const selectedLabel = (0, vue.computed)(() => { + if (!props.multiple) return API.states.selectedLabel; + return API.states.selected.map((i) => i.currentLabel); + }); + (0, vue.onBeforeUnmount)(() => { + const record = warnHandlerMap.get(instance.appContext); + if (!record) return; + record.count -= 1; + if (record.count <= 0) { + instance.appContext.config.warnHandler = record.originalWarnHandler; + warnHandlerMap.delete(instance.appContext); + } + }); + return { + ...API, + modelValue, + selectedLabel, + calculatorRef, + inputStyle, + getLabel, + getValue, + getOptions, + getDisabled, + getOptionProps + }; + } + }); + +//#endregion +//#region ../../packages/components/select/src/select.vue + const _hoisted_1$65 = [ + "id", + "value", + "name", + "disabled", + "autocomplete", + "tabindex", + "readonly", + "aria-activedescendant", + "aria-controls", + "aria-expanded", + "aria-label" + ]; + const _hoisted_2$36 = ["textContent"]; + const _hoisted_3$17 = { key: 1 }; + function _sfc_render$17(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_tag = (0, vue.resolveComponent)("el-tag"); + const _component_el_tooltip = (0, vue.resolveComponent)("el-tooltip"); + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + const _component_el_option = (0, vue.resolveComponent)("el-option"); + const _component_el_option_group = (0, vue.resolveComponent)("el-option-group"); + const _component_el_options = (0, vue.resolveComponent)("el-options"); + const _component_el_scrollbar = (0, vue.resolveComponent)("el-scrollbar"); + const _component_el_select_menu = (0, vue.resolveComponent)("el-select-menu"); + const _directive_click_outside = (0, vue.resolveDirective)("click-outside"); + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", (0, vue.mergeProps)({ + ref: "selectRef", + class: [_ctx.nsSelect.b(), _ctx.nsSelect.m(_ctx.selectSize)] + }, { [(0, vue.toHandlerKey)(_ctx.mouseEnterEventName)]: _cache[11] || (_cache[11] = ($event) => _ctx.states.inputHovering = true) }, { onMouseleave: _cache[12] || (_cache[12] = ($event) => _ctx.states.inputHovering = false) }), [(0, vue.createVNode)(_component_el_tooltip, { + ref: "tooltipRef", + visible: _ctx.dropdownMenuVisible, + placement: _ctx.placement, + teleported: _ctx.teleported, + "popper-class": [_ctx.nsSelect.e("popper"), _ctx.popperClass], + "popper-style": _ctx.popperStyle, + "popper-options": _ctx.popperOptions, + "fallback-placements": _ctx.fallbackPlacements, + effect: _ctx.effect, + pure: "", + trigger: "click", + transition: `${_ctx.nsSelect.namespace.value}-zoom-in-top`, + "stop-popper-mouse-event": false, + "gpu-acceleration": false, + persistent: _ctx.persistent, + "append-to": _ctx.appendTo, + "show-arrow": _ctx.showArrow, + offset: _ctx.offset, + onBeforeShow: _ctx.handleMenuEnter, + onHide: _cache[10] || (_cache[10] = ($event) => _ctx.states.isBeforeHide = false) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "wrapperRef", + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("wrapper"), + _ctx.nsSelect.is("focused", _ctx.isFocused), + _ctx.nsSelect.is("hovering", _ctx.states.inputHovering), + _ctx.nsSelect.is("filterable", _ctx.filterable), + _ctx.nsSelect.is("disabled", _ctx.selectDisabled) + ]), + onClick: _cache[7] || (_cache[7] = (0, vue.withModifiers)((...args) => _ctx.toggleMenu && _ctx.toggleMenu(...args), ["prevent"])) + }, [ + _ctx.$slots.prefix ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref: "prefixRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("prefix")) + }, [(0, vue.renderSlot)(_ctx.$slots, "prefix")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + ref: "selectionRef", + class: (0, vue.normalizeClass)([_ctx.nsSelect.e("selection"), _ctx.nsSelect.is("near", _ctx.multiple && !_ctx.$slots.prefix && !!_ctx.states.selected.length)]) + }, [ + _ctx.multiple ? (0, vue.renderSlot)(_ctx.$slots, "tag", { + key: 0, + data: _ctx.states.selected, + deleteTag: _ctx.deleteTag, + selectDisabled: _ctx.selectDisabled + }, () => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.showTagList, (item) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: _ctx.getValueKey(item), + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selected-item")) + }, [(0, vue.createVNode)(_component_el_tag, { + closable: !_ctx.selectDisabled && !item.isDisabled, + size: _ctx.collapseTagSize, + type: _ctx.tagType, + effect: _ctx.tagEffect, + "disable-transitions": "", + style: (0, vue.normalizeStyle)(_ctx.tagStyle), + onClose: ($event) => _ctx.deleteTag($event, item) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.nsSelect.e("tags-text")) }, [(0, vue.renderSlot)(_ctx.$slots, "label", { + index: item.index, + label: item.currentLabel, + value: item.value + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(item.currentLabel), 1)])], 2)]), + _: 2 + }, 1032, [ + "closable", + "size", + "type", + "effect", + "style", + "onClose" + ])], 2); + }), 128)), _ctx.collapseTags && _ctx.states.selected.length > _ctx.maxCollapseTags ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_tooltip, { + key: 0, + ref: "tagTooltipRef", + disabled: _ctx.dropdownMenuVisible || !_ctx.collapseTagsTooltip, + "fallback-placements": _ctx.tagTooltip?.fallbackPlacements ?? [ + "bottom", + "top", + "right", + "left" + ], + effect: _ctx.tagTooltip?.effect ?? _ctx.effect, + placement: _ctx.tagTooltip?.placement ?? "bottom", + "popper-class": _ctx.tagTooltip?.popperClass ?? _ctx.popperClass, + "popper-style": _ctx.tagTooltip?.popperStyle ?? _ctx.popperStyle, + teleported: _ctx.tagTooltip?.teleported ?? _ctx.teleported, + "append-to": _ctx.tagTooltip?.appendTo ?? _ctx.appendTo, + "popper-options": _ctx.tagTooltip?.popperOptions ?? _ctx.popperOptions, + transition: _ctx.tagTooltip?.transition, + "show-after": _ctx.tagTooltip?.showAfter, + "hide-after": _ctx.tagTooltip?.hideAfter, + "auto-close": _ctx.tagTooltip?.autoClose, + offset: _ctx.tagTooltip?.offset + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "collapseItemRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selected-item")) + }, [(0, vue.createVNode)(_component_el_tag, { + closable: false, + size: _ctx.collapseTagSize, + type: _ctx.tagType, + effect: _ctx.tagEffect, + "disable-transitions": "", + style: (0, vue.normalizeStyle)(_ctx.collapseTagStyle) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.nsSelect.e("tags-text")) }, " + " + (0, vue.toDisplayString)(_ctx.states.selected.length - _ctx.maxCollapseTags), 3)]), + _: 1 + }, 8, [ + "size", + "type", + "effect", + "style" + ])], 2)]), + content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "tagMenuRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selection")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.collapseTagList, (item) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: _ctx.getValueKey(item), + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selected-item")) + }, [(0, vue.createVNode)(_component_el_tag, { + class: "in-tooltip", + closable: !_ctx.selectDisabled && !item.isDisabled, + size: _ctx.collapseTagSize, + type: _ctx.tagType, + effect: _ctx.tagEffect, + "disable-transitions": "", + onClose: ($event) => _ctx.deleteTag($event, item) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.nsSelect.e("tags-text")) }, [(0, vue.renderSlot)(_ctx.$slots, "label", { + index: item.index, + label: item.currentLabel, + value: item.value + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(item.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" + ])) : (0, vue.createCommentVNode)("v-if", true)]) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("selected-item"), + _ctx.nsSelect.e("input-wrapper"), + _ctx.nsSelect.is("hidden", !_ctx.filterable || _ctx.selectDisabled || !_ctx.states.inputValue && !_ctx.isFocused) + ]) }, [(0, vue.createElementVNode)("input", { + id: _ctx.inputId, + ref: "inputRef", + value: _ctx.states.inputValue, + type: "text", + name: _ctx.name, + class: (0, vue.normalizeClass)([_ctx.nsSelect.e("input"), _ctx.nsSelect.is(_ctx.selectSize)]), + disabled: _ctx.selectDisabled, + autocomplete: _ctx.autocomplete, + style: (0, vue.normalizeStyle)(_ctx.inputStyle), + tabindex: _ctx.tabindex, + role: "combobox", + readonly: !_ctx.filterable, + spellcheck: "false", + "aria-activedescendant": _ctx.hoverOption?.id || "", + "aria-controls": _ctx.contentId, + "aria-expanded": _ctx.dropdownMenuVisible, + "aria-label": _ctx.ariaLabel, + "aria-autocomplete": "none", + "aria-haspopup": "listbox", + onKeydown: _cache[0] || (_cache[0] = (...args) => _ctx.handleKeydown && _ctx.handleKeydown(...args)), + onCompositionstart: _cache[1] || (_cache[1] = (...args) => _ctx.handleCompositionStart && _ctx.handleCompositionStart(...args)), + onCompositionupdate: _cache[2] || (_cache[2] = (...args) => _ctx.handleCompositionUpdate && _ctx.handleCompositionUpdate(...args)), + onCompositionend: _cache[3] || (_cache[3] = (...args) => _ctx.handleCompositionEnd && _ctx.handleCompositionEnd(...args)), + onInput: _cache[4] || (_cache[4] = (...args) => _ctx.onInput && _ctx.onInput(...args)), + onChange: _cache[5] || (_cache[5] = (0, vue.withModifiers)(() => {}, ["stop"])), + onClick: _cache[6] || (_cache[6] = (0, vue.withModifiers)((...args) => _ctx.toggleMenu && _ctx.toggleMenu(...args), ["stop"])) + }, null, 46, _hoisted_1$65), _ctx.filterable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + ref: "calculatorRef", + "aria-hidden": "true", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("input-calculator")), + textContent: (0, vue.toDisplayString)(_ctx.states.inputValue) + }, null, 10, _hoisted_2$36)) : (0, vue.createCommentVNode)("v-if", true)], 2), + _ctx.shouldShowPlaceholder ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("selected-item"), + _ctx.nsSelect.e("placeholder"), + _ctx.nsSelect.is("transparent", !_ctx.hasModelValue || _ctx.expanded && !_ctx.states.inputValue) + ]) + }, [_ctx.hasModelValue ? (0, vue.renderSlot)(_ctx.$slots, "label", { + key: 0, + index: _ctx.getOption(_ctx.modelValue).index, + label: _ctx.currentPlaceholder, + value: _ctx.modelValue + }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.currentPlaceholder), 1)]) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$17, (0, vue.toDisplayString)(_ctx.currentPlaceholder), 1))], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2), + (0, vue.createElementVNode)("div", { + ref: "suffixRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("suffix")) + }, [ + _ctx.iconComponent && !_ctx.showClearBtn ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 0, + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("caret"), + _ctx.nsSelect.e("icon"), + _ctx.iconReverse + ]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.iconComponent)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), + _ctx.showClearBtn && _ctx.clearIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 1, + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("caret"), + _ctx.nsSelect.e("icon"), + _ctx.nsSelect.e("clear") + ]), + onClick: _ctx.handleClearClick + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.clearIcon)))]), + _: 1 + }, 8, ["class", "onClick"])) : (0, vue.createCommentVNode)("v-if", true), + _ctx.validateState && _ctx.validateIcon && _ctx.needStatusIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 2, + class: (0, vue.normalizeClass)([ + _ctx.nsInput.e("icon"), + _ctx.nsInput.e("validateIcon"), + _ctx.nsInput.is("loading", _ctx.validateState === "validating") + ]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.validateIcon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true) + ], 2) + ], 2)]), + content: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_select_menu, { ref: "menuRef" }, { + default: (0, vue.withCtx)(() => [ + _ctx.$slots.header ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "header")), + onClick: _cache[8] || (_cache[8] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "header")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.withDirectives)((0, vue.createVNode)(_component_el_scrollbar, { + id: _ctx.contentId, + ref: "scrollbarRef", + tag: "ul", + "wrap-class": _ctx.nsSelect.be("dropdown", "wrap"), + "view-class": _ctx.nsSelect.be("dropdown", "list"), + class: (0, vue.normalizeClass)([_ctx.nsSelect.is("empty", _ctx.filteredOptionsCount === 0)]), + role: "listbox", + "aria-label": _ctx.ariaLabel, + "aria-orientation": "vertical", + onScroll: _ctx.popupScroll + }, { + default: (0, vue.withCtx)(() => [_ctx.showNewOption ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_option, { + key: 0, + value: _ctx.states.inputValue, + created: true + }, null, 8, ["value"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createVNode)(_component_el_options, null, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.options, (option, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: index }, [_ctx.getOptions(option)?.length ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_option_group, { + key: 0, + label: _ctx.getLabel(option), + disabled: _ctx.getDisabled(option) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.getOptions(option), (item) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_option, (0, vue.mergeProps)({ key: _ctx.getValue(item) }, { ref_for: true }, _ctx.getOptionProps(item)), null, 16); + }), 128))]), + _: 2 + }, 1032, ["label", "disabled"])) : ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_option, (0, vue.mergeProps)({ + key: 1, + ref_for: true + }, _ctx.getOptionProps(option)), null, 16))], 64); + }), 128))])]), + _: 3 + })]), + _: 3 + }, 8, [ + "id", + "wrap-class", + "view-class", + "class", + "aria-label", + "onScroll" + ]), [[vue.vShow, _ctx.states.options.size > 0 && !_ctx.loading]]), + _ctx.$slots.loading && _ctx.loading ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "loading")) + }, [(0, vue.renderSlot)(_ctx.$slots, "loading")], 2)) : _ctx.loading || _ctx.filteredOptionsCount === 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "empty")) + }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.emptyText), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 3, + class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "footer")), + onClick: _cache[9] || (_cache[9] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ]), + _: 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)), [[ + _directive_click_outside, + _ctx.handleClickOutside, + _ctx.popperRef + ]]); + } + var select_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(select_vue_vue_type_script_lang_default$1, [["render", _sfc_render$17]]); + +//#endregion +//#region ../../packages/components/select/index.ts + const ElSelect = withInstall(select_default$1, { + Option: option_default, + OptionGroup: option_group_default + }); + const ElOption = withNoopInstall(option_default); + const ElOptionGroup = withNoopInstall(option_group_default); + +//#endregion +//#region ../../packages/components/calendar/src/select-controller.vue?vue&type=script&setup=true&lang.ts + var select_controller_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "SelectController", + __name: "select-controller", + props: selectControllerProps, + emits: selectControllerEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const nsSelect = useNamespace("calendar-select"); + const { t, lang } = useLocale(); + const monthOptions = Array.from({ length: 12 }, (_, index) => { + const actualMonth = index + 1; + return { + value: actualMonth, + label: isFunction$1(props.formatter) ? props.formatter(actualMonth, "month") : actualMonth + }; + }); + const yearValue = (0, vue.computed)(() => props.date.year()); + const monthValue = (0, vue.computed)(() => props.date.month() + 1); + const yearOptions = (0, vue.computed)(() => { + const years = []; + for (let i = -10; i < 10; i++) { + const year = yearValue.value + i; + if (year > 0) { + const label = isFunction$1(props.formatter) ? props.formatter(year, "year") : year; + years.push({ + value: year, + label + }); + } + } + return years; + }); + const handleYearChange = (year) => { + emit("date-change", (0, import_dayjs_min.default)(new Date(year, monthValue.value - 1, 1)).locale(lang.value)); + }; + const handleMonthChange = (month) => { + emit("date-change", (0, import_dayjs_min.default)(new Date(yearValue.value, month - 1, 1)).locale(lang.value)); + }; + const selectToday = () => { + emit("date-change", "today"); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [ + (0, vue.createVNode)((0, vue.unref)(ElSelect), { + "model-value": yearValue.value, + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(nsSelect).e("year")), + "validate-event": false, + options: yearOptions.value, + onChange: handleYearChange + }, null, 8, [ + "model-value", + "class", + "options" + ]), + (0, vue.createVNode)((0, vue.unref)(ElSelect), { + "model-value": monthValue.value, + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(nsSelect).e("month")), + "validate-event": false, + options: (0, vue.unref)(monthOptions), + onChange: handleMonthChange + }, null, 8, [ + "model-value", + "class", + "options" + ]), + (0, vue.createVNode)((0, vue.unref)(ElButton), { + size: "small", + onClick: selectToday + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.today")), 1)]), + _: 1 + }) + ], 64); + }; + } + }); + +//#endregion +//#region ../../packages/components/calendar/src/select-controller.vue + var select_controller_default = select_controller_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/calendar/src/calendar.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$12 = "ElCalendar"; + var calendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$12, + __name: "calendar", + props: calendarProps, + emits: calendarEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const ns = useNamespace("calendar"); + const { calculateValidatedDateRange, date, pickDay, realSelectedDay, selectDate, validatedRange, handleDateChange } = useCalendar(__props, __emit, COMPONENT_NAME$12); + const { t } = useLocale(); + const i18nDate = (0, vue.computed)(() => { + const pickedMonth = `el.datepicker.month${date.value.format("M")}`; + return `${date.value.year()} ${t("el.datepicker.year")} ${t(pickedMonth)}`; + }); + __expose({ + selectedDay: realSelectedDay, + pickDay, + selectDate, + calculateValidatedDateRange + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("header")) }, [(0, vue.renderSlot)(_ctx.$slots, "header", { date: i18nDate.value }, () => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) }, (0, vue.toDisplayString)(i18nDate.value), 3), (0, vue.unref)(validatedRange).length === 0 && __props.controllerType === "button" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("button-group")) + }, [(0, vue.createVNode)((0, vue.unref)(ElButtonGroup), null, { + default: (0, vue.withCtx)(() => [ + (0, vue.createVNode)((0, vue.unref)(ElButton), { + size: "small", + onClick: _cache[0] || (_cache[0] = ($event) => (0, vue.unref)(selectDate)("prev-month")) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.prevMonth")), 1)]), + _: 1 + }), + (0, vue.createVNode)((0, vue.unref)(ElButton), { + size: "small", + onClick: _cache[1] || (_cache[1] = ($event) => (0, vue.unref)(selectDate)("today")) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.today")), 1)]), + _: 1 + }), + (0, vue.createVNode)((0, vue.unref)(ElButton), { + size: "small", + onClick: _cache[2] || (_cache[2] = ($event) => (0, vue.unref)(selectDate)("next-month")) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.nextMonth")), 1)]), + _: 1 + }) + ]), + _: 1 + })], 2)) : (0, vue.unref)(validatedRange).length === 0 && __props.controllerType === "select" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("select-controller")) + }, [(0, vue.createVNode)(select_controller_default, { + date: (0, vue.unref)(date), + formatter: __props.formatter, + onDateChange: (0, vue.unref)(handleDateChange) + }, null, 8, [ + "date", + "formatter", + "onDateChange" + ])], 2)) : (0, vue.createCommentVNode)("v-if", true)])], 2), (0, vue.unref)(validatedRange).length === 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("body")) + }, [(0, vue.createVNode)(date_table_default, { + date: (0, vue.unref)(date), + "selected-day": (0, vue.unref)(realSelectedDay), + onPick: (0, vue.unref)(pickDay) + }, (0, vue.createSlots)({ _: 2 }, [_ctx.$slots["date-cell"] ? { + name: "date-cell", + fn: (0, vue.withCtx)((data) => [(0, vue.renderSlot)(_ctx.$slots, "date-cell", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(data)))]), + key: "0" + } : void 0]), 1032, [ + "date", + "selected-day", + "onPick" + ])], 2)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("body")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(validatedRange), (range_, index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(date_table_default, { + key: index, + date: range_[0], + "selected-day": (0, vue.unref)(realSelectedDay), + range: range_, + "hide-header": index !== 0, + onPick: (0, vue.unref)(pickDay) + }, (0, vue.createSlots)({ _: 2 }, [_ctx.$slots["date-cell"] ? { + name: "date-cell", + fn: (0, vue.withCtx)((data) => [(0, vue.renderSlot)(_ctx.$slots, "date-cell", (0, vue.mergeProps)({ ref_for: true }, data))]), + key: "0" + } : void 0]), 1032, [ + "date", + "selected-day", + "range", + "hide-header", + "onPick" + ]); + }), 128))], 2))], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/calendar/src/calendar.vue + var calendar_default = calendar_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/calendar/index.ts + const ElCalendar = withInstall(calendar_default); + +//#endregion +//#region ../../packages/components/card/src/card.ts +/** + * @deprecated Removed after 3.0.0, Use `CardProps` instead. + */ + const cardProps = buildProps({ + header: { + type: String, + default: "" + }, + footer: { + type: String, + default: "" + }, + bodyStyle: { + type: definePropType([ + String, + Object, + Array + ]), + default: "" + }, + headerClass: String, + bodyClass: String, + footerClass: String, + shadow: { + type: String, + values: [ + "always", + "hover", + "never" + ], + default: void 0 + } + }); + const cardContextKey = Symbol("cardContextKey"); + +//#endregion +//#region ../../packages/components/card/src/card.vue?vue&type=script&setup=true&lang.ts + var card_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCard", + __name: "card", + props: cardProps, + setup(__props) { + const globalConfig = useGlobalConfig("card"); + const ns = useNamespace("card"); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), (0, vue.unref)(ns).is(`${__props.shadow || (0, vue.unref)(globalConfig)?.shadow || "always"}-shadow`)]) }, [ + _ctx.$slots.header || __props.header ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("header"), __props.headerClass]) + }, [(0, vue.renderSlot)(_ctx.$slots, "header", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.header), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("body"), __props.bodyClass]), + style: (0, vue.normalizeStyle)(__props.bodyStyle) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 6), + _ctx.$slots.footer || __props.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("footer"), __props.footerClass]) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.footer), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/card/src/card.vue + var card_default = card_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/card/index.ts + const ElCard = withInstall(card_default); + +//#endregion +//#region ../../packages/components/carousel/src/carousel.ts +/** + * @deprecated Removed after 3.0.0, Use `CarouselProps` instead. + */ + const carouselProps = buildProps({ + initialIndex: { + type: Number, + default: 0 + }, + height: { + type: String, + default: "" + }, + trigger: { + type: String, + values: ["hover", "click"], + default: "hover" + }, + autoplay: { + type: Boolean, + default: true + }, + 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: true + }, + direction: { + type: String, + values: ["horizontal", "vertical"], + default: "horizontal" + }, + pauseOnHover: { + type: Boolean, + default: true + }, + motionBlur: Boolean + }); + const carouselEmits = { change: (current, prev) => [current, prev].every(isNumber) }; + +//#endregion +//#region ../../packages/components/carousel/src/constants.ts + const carouselContextKey = Symbol("carouselContextKey"); + const CAROUSEL_ITEM_NAME = "ElCarouselItem"; + +//#endregion +//#region ../../packages/components/carousel/src/use-carousel.ts + const THROTTLE_TIME = 300; + const useCarousel = (props, emit, componentName) => { + const { children: items, addChild: addItem, removeChild: removeItem, ChildrenSorter: ItemsSorter } = useOrderedChildren((0, vue.getCurrentInstance)(), CAROUSEL_ITEM_NAME); + const slots = (0, vue.useSlots)(); + const activeIndex = (0, vue.ref)(-1); + const timer = (0, vue.ref)(null); + const hover = (0, vue.ref)(false); + const root = (0, vue.ref)(); + const containerHeight = (0, vue.ref)(0); + const isItemsTwoLength = (0, vue.ref)(true); + const arrowDisplay = (0, vue.computed)(() => props.arrow !== "never" && !(0, vue.unref)(isVertical)); + const hasLabel = (0, vue.computed)(() => { + return items.value.some((item) => item.props.label.toString().length > 0); + }); + const isCardType = (0, vue.computed)(() => props.type === "card"); + const isVertical = (0, vue.computed)(() => props.direction === "vertical"); + const containerStyle = (0, vue.computed)(() => { + if (props.height !== "auto") return { height: props.height }; + return { + height: `${containerHeight.value}px`, + overflow: "hidden" + }; + }); + const throttledArrowClick = throttle((index) => { + setActiveItem(index); + }, THROTTLE_TIME, { trailing: true }); + const throttledIndicatorHover = throttle((index) => { + handleIndicatorHover(index); + }, THROTTLE_TIME); + const isTwoLengthShow = (index) => { + if (!isItemsTwoLength.value) return true; + return activeIndex.value <= 1 ? index <= 1 : index > 1; + }; + function pauseTimer() { + if (timer.value) { + clearInterval(timer.value); + timer.value = null; + } + } + function startTimer() { + if (props.interval <= 0 || !props.autoplay || timer.value) return; + timer.value = setInterval(() => playSlides(), props.interval); + } + const playSlides = () => { + if (activeIndex.value < items.value.length - 1) activeIndex.value = activeIndex.value + 1; + else if (props.loop) activeIndex.value = 0; + }; + function setActiveItem(index) { + if (isString(index)) { + const filteredItems = items.value.filter((item) => item.props.name === index); + if (filteredItems.length > 0) index = items.value.indexOf(filteredItems[0]); + } + index = Number(index); + if (Number.isNaN(index) || index !== Math.floor(index)) { + /* @__PURE__ */ debugWarn(componentName, "index must be integer."); + return; + } + const itemCount = items.value.length; + const oldIndex = activeIndex.value; + if (index < 0) activeIndex.value = props.loop ? itemCount - 1 : 0; + else if (index >= itemCount) activeIndex.value = props.loop ? 0 : itemCount - 1; + else activeIndex.value = index; + if (oldIndex === activeIndex.value) resetItemPosition(oldIndex); + resetTimer(); + } + function resetItemPosition(oldIndex) { + items.value.forEach((item, index) => { + item.translateItem(index, activeIndex.value, oldIndex); + }); + } + function itemInStage(item, index) { + const _items = (0, vue.unref)(items); + const itemCount = _items.length; + if (itemCount === 0 || !item.states.inStage) return false; + const nextItemIndex = index + 1; + const prevItemIndex = index - 1; + const lastItemIndex = itemCount - 1; + const isLastItemActive = _items[lastItemIndex].states.active; + const isFirstItemActive = _items[0].states.active; + const isNextItemActive = _items[nextItemIndex]?.states?.active; + const isPrevItemActive = _items[prevItemIndex]?.states?.active; + if (index === lastItemIndex && isFirstItemActive || isNextItemActive) return "left"; + else if (index === 0 && isLastItemActive || isPrevItemActive) return "right"; + return false; + } + function handleMouseEnter() { + hover.value = true; + if (props.pauseOnHover) pauseTimer(); + } + function handleMouseLeave() { + hover.value = false; + startTimer(); + } + function handleButtonEnter(arrow) { + if ((0, vue.unref)(isVertical)) return; + items.value.forEach((item, index) => { + if (arrow === itemInStage(item, index)) item.states.hover = true; + }); + } + function handleButtonLeave() { + if ((0, vue.unref)(isVertical)) return; + items.value.forEach((item) => { + item.states.hover = false; + }); + } + function handleIndicatorClick(index) { + activeIndex.value = index; + } + function handleIndicatorHover(index) { + if (props.trigger === "hover" && index !== activeIndex.value) activeIndex.value = index; + } + function prev() { + setActiveItem(activeIndex.value - 1); + } + function next() { + setActiveItem(activeIndex.value + 1); + } + function resetTimer() { + pauseTimer(); + if (!props.pauseOnHover || !hover.value) startTimer(); + } + function setContainerHeight(height) { + if (props.height !== "auto") return; + containerHeight.value = height; + } + function PlaceholderItem() { + const defaultSlots = slots.default?.(); + if (!defaultSlots) return null; + const normalizeSlots = flattedChildren(defaultSlots).filter((slot) => { + return (0, vue.isVNode)(slot) && slot.type.name === CAROUSEL_ITEM_NAME; + }); + if (normalizeSlots?.length === 2 && props.loop && !isCardType.value) { + isItemsTwoLength.value = true; + return normalizeSlots; + } + isItemsTwoLength.value = false; + return null; + } + (0, vue.watch)(() => activeIndex.value, (current, prev) => { + resetItemPosition(prev); + if (isItemsTwoLength.value) { + current = current % 2; + prev = prev % 2; + } + if (prev > -1) emit(CHANGE_EVENT, current, prev); + }); + const exposeActiveIndex = (0, vue.computed)({ + get: () => { + return isItemsTwoLength.value ? activeIndex.value % 2 : activeIndex.value; + }, + set: (value) => activeIndex.value = value + }); + (0, vue.watch)(() => props.autoplay, (autoplay) => { + autoplay ? startTimer() : pauseTimer(); + }); + (0, vue.watch)(() => props.loop, () => { + setActiveItem(activeIndex.value); + }); + (0, vue.watch)(() => props.interval, () => { + resetTimer(); + }); + const resizeObserver = (0, vue.shallowRef)(); + (0, vue.onMounted)(() => { + (0, vue.watch)(() => items.value, () => { + if (items.value.length > 0) setActiveItem(props.initialIndex); + }, { immediate: true }); + resizeObserver.value = useResizeObserver(root.value, () => { + resetItemPosition(); + }); + startTimer(); + }); + (0, vue.onBeforeUnmount)(() => { + pauseTimer(); + if (root.value && resizeObserver.value) resizeObserver.value.stop(); + }); + (0, vue.provide)(carouselContextKey, { + root, + isCardType, + isVertical, + items, + loop: props.loop, + cardScale: props.cardScale, + addItem, + removeItem, + setActiveItem, + setContainerHeight + }); + return { + root, + activeIndex, + exposeActiveIndex, + arrowDisplay, + hasLabel, + hover, + isCardType, + items, + isVertical, + containerStyle, + isItemsTwoLength, + handleButtonEnter, + handleButtonLeave, + handleIndicatorClick, + handleMouseEnter, + handleMouseLeave, + setActiveItem, + prev, + next, + PlaceholderItem, + isTwoLengthShow, + ItemsSorter, + throttledArrowClick, + throttledIndicatorHover + }; + }; + +//#endregion +//#region ../../packages/components/carousel/src/carousel.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$64 = ["aria-label"]; + const _hoisted_2$35 = ["aria-label"]; + const _hoisted_3$16 = ["onMouseenter", "onClick"]; + const _hoisted_4$12 = ["aria-label"]; + const _hoisted_5$9 = { key: 0 }; + const _hoisted_6$4 = { + key: 2, + xmlns: "http://www.w3.org/2000/svg", + version: "1.1", + style: { "display": "none" } + }; + const COMPONENT_NAME$11 = "ElCarousel"; + var carousel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$11, + __name: "carousel", + props: carouselProps, + emits: carouselEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const { root, activeIndex, exposeActiveIndex, arrowDisplay, hasLabel, hover, isCardType, items, isVertical, containerStyle, handleButtonEnter, handleButtonLeave, handleIndicatorClick, handleMouseEnter, handleMouseLeave, setActiveItem, prev, next, PlaceholderItem, isTwoLengthShow, ItemsSorter, throttledArrowClick, throttledIndicatorHover } = useCarousel(props, __emit, COMPONENT_NAME$11); + const ns = useNamespace("carousel"); + const { t } = useLocale(); + const carouselClasses = (0, vue.computed)(() => { + const classes = [ns.b(), ns.m(props.direction)]; + if ((0, vue.unref)(isCardType)) classes.push(ns.m("card")); + classes.push(ns.is("vertical-outside", (0, vue.unref)(isVertical) && props.indicatorPosition === "outside")); + return classes; + }); + const indicatorsClasses = (0, vue.computed)(() => { + const classes = [ns.e("indicators"), ns.em("indicators", props.direction)]; + if ((0, vue.unref)(hasLabel)) classes.push(ns.em("indicators", "labels")); + if (props.indicatorPosition === "outside") classes.push(ns.em("indicators", "outside")); + if ((0, vue.unref)(isVertical)) classes.push(ns.em("indicators", "right")); + return classes; + }); + function handleTransitionStart(e) { + if (!props.motionBlur) return; + const kls = (0, vue.unref)(isVertical) ? `${ns.namespace.value}-transitioning-vertical` : `${ns.namespace.value}-transitioning`; + e.currentTarget.classList.add(kls); + } + function handleTransitionEnd(e) { + if (!props.motionBlur) return; + const kls = (0, vue.unref)(isVertical) ? `${ns.namespace.value}-transitioning-vertical` : `${ns.namespace.value}-transitioning`; + e.currentTarget.classList.remove(kls); + } + __expose({ + activeIndex: exposeActiveIndex, + setActiveItem, + prev, + next + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "root", + ref: root, + class: (0, vue.normalizeClass)(carouselClasses.value), + onMouseenter: _cache[6] || (_cache[6] = (0, vue.withModifiers)((...args) => (0, vue.unref)(handleMouseEnter) && (0, vue.unref)(handleMouseEnter)(...args), ["stop"])), + onMouseleave: _cache[7] || (_cache[7] = (0, vue.withModifiers)((...args) => (0, vue.unref)(handleMouseLeave) && (0, vue.unref)(handleMouseLeave)(...args), ["stop"])) + }, [ + (0, vue.unref)(arrowDisplay) ? ((0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + key: 0, + name: "carousel-arrow-left", + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("arrow"), (0, vue.unref)(ns).em("arrow", "left")]), + "aria-label": (0, vue.unref)(t)("el.carousel.leftArrow"), + onMouseenter: _cache[0] || (_cache[0] = ($event) => (0, vue.unref)(handleButtonEnter)("left")), + onMouseleave: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleButtonLeave) && (0, vue.unref)(handleButtonLeave)(...args)), + onClick: _cache[2] || (_cache[2] = (0, vue.withModifiers)(($event) => (0, vue.unref)(throttledArrowClick)((0, vue.unref)(activeIndex) - 1), ["stop"])) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_left_default))]), + _: 1 + })], 42, _hoisted_1$64), [[vue.vShow, (__props.arrow === "always" || (0, vue.unref)(hover)) && (__props.loop || (0, vue.unref)(activeIndex) > 0)]])]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(arrowDisplay) ? ((0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + key: 1, + name: "carousel-arrow-right", + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("arrow"), (0, vue.unref)(ns).em("arrow", "right")]), + "aria-label": (0, vue.unref)(t)("el.carousel.rightArrow"), + onMouseenter: _cache[3] || (_cache[3] = ($event) => (0, vue.unref)(handleButtonEnter)("right")), + onMouseleave: _cache[4] || (_cache[4] = (...args) => (0, vue.unref)(handleButtonLeave) && (0, vue.unref)(handleButtonLeave)(...args)), + onClick: _cache[5] || (_cache[5] = (0, vue.withModifiers)(($event) => (0, vue.unref)(throttledArrowClick)((0, vue.unref)(activeIndex) + 1), ["stop"])) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })], 42, _hoisted_2$35), [[vue.vShow, (__props.arrow === "always" || (0, vue.unref)(hover)) && (__props.loop || (0, vue.unref)(activeIndex) < (0, vue.unref)(items).length - 1)]])]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("container")), + style: (0, vue.normalizeStyle)((0, vue.unref)(containerStyle)), + onTransitionstart: handleTransitionStart, + onTransitionend: handleTransitionEnd + }, [(0, vue.createVNode)((0, vue.unref)(PlaceholderItem)), (0, vue.renderSlot)(_ctx.$slots, "default")], 38), + (0, vue.createVNode)((0, vue.unref)(ItemsSorter), null, { + default: (0, vue.withCtx)(() => [__props.indicatorPosition !== "none" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("ul", { + key: 0, + class: (0, vue.normalizeClass)(indicatorsClasses.value) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(items), (item, index) => { + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: index, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("indicator"), + (0, vue.unref)(ns).em("indicator", __props.direction), + (0, vue.unref)(ns).is("active", index === (0, vue.unref)(activeIndex)) + ]), + onMouseenter: ($event) => (0, vue.unref)(throttledIndicatorHover)(index), + onClick: (0, vue.withModifiers)(($event) => (0, vue.unref)(handleIndicatorClick)(index), ["stop"]) + }, [(0, vue.createElementVNode)("button", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("button")), + "aria-label": (0, vue.unref)(t)("el.carousel.indicator", { index: index + 1 }) + }, [(0, vue.unref)(hasLabel) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_5$9, (0, vue.toDisplayString)(item.props.label), 1)) : (0, vue.createCommentVNode)("v-if", true)], 10, _hoisted_4$12)], 42, _hoisted_3$16)), [[vue.vShow, (0, vue.unref)(isTwoLengthShow)(index)]]); + }), 128))], 2)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 1 + }), + __props.motionBlur ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", _hoisted_6$4, [..._cache[8] || (_cache[8] = [(0, vue.createElementVNode)("defs", null, [(0, vue.createElementVNode)("filter", { id: "elCarouselHorizontal" }, [(0, vue.createElementVNode)("feGaussianBlur", { + in: "SourceGraphic", + stdDeviation: "12,0" + })]), (0, vue.createElementVNode)("filter", { id: "elCarouselVertical" }, [(0, vue.createElementVNode)("feGaussianBlur", { + in: "SourceGraphic", + stdDeviation: "0,10" + })])], -1)])])) : (0, vue.createCommentVNode)("v-if", true) + ], 34); + }; + } + }); + +//#endregion +//#region ../../packages/components/carousel/src/carousel.vue + var carousel_default = carousel_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/carousel/src/carousel-item.ts +/** + * @deprecated Removed after 3.0.0, Use `CarouselItemProps` instead. + */ + const carouselItemProps = buildProps({ + name: { + type: String, + default: "" + }, + label: { + type: [String, Number], + default: "" + } + }); + +//#endregion +//#region ../../packages/components/carousel/src/use-carousel-item.ts + const useCarouselItem = (props) => { + const carouselContext = (0, vue.inject)(carouselContextKey); + const instance = (0, vue.getCurrentInstance)(); + if (!carouselContext) /* @__PURE__ */ debugWarn(CAROUSEL_ITEM_NAME, "usage: "); + if (!instance) /* @__PURE__ */ debugWarn(CAROUSEL_ITEM_NAME, "compositional hook can only be invoked inside setups"); + const carouselItemRef = (0, vue.ref)(); + const hover = (0, vue.ref)(false); + const translate = (0, vue.ref)(0); + const scale = (0, vue.ref)(1); + const active = (0, vue.ref)(false); + const ready = (0, vue.ref)(false); + const inStage = (0, vue.ref)(false); + const animating = (0, vue.ref)(false); + const { isCardType, isVertical, cardScale } = carouselContext; + function processIndex(index, activeIndex, length) { + const lastItemIndex = length - 1; + const prevItemIndex = activeIndex - 1; + const nextItemIndex = activeIndex + 1; + const halfItemIndex = length / 2; + if (activeIndex === 0 && index === lastItemIndex) return -1; + else if (activeIndex === lastItemIndex && index === 0) return length; + else if (index < prevItemIndex && activeIndex - index >= halfItemIndex) return length + 1; + else if (index > nextItemIndex && index - activeIndex >= halfItemIndex) return -2; + return index; + } + function calcCardTranslate(index, activeIndex) { + const parentWidth = (0, vue.unref)(isVertical) ? carouselContext.root.value?.offsetHeight || 0 : carouselContext.root.value?.offsetWidth || 0; + if (inStage.value) return parentWidth * ((2 - cardScale) * (index - activeIndex) + 1) / 4; + else if (index < activeIndex) return -(1 + cardScale) * parentWidth / 4; + else return (3 + cardScale) * parentWidth / 4; + } + function calcTranslate(index, activeIndex, isVertical) { + const rootEl = carouselContext.root.value; + if (!rootEl) return 0; + return ((isVertical ? rootEl.offsetHeight : rootEl.offsetWidth) || 0) * (index - activeIndex); + } + const translateItem = (index, activeIndex, oldIndex) => { + const _isCardType = (0, vue.unref)(isCardType); + const carouselItemLength = carouselContext.items.value.length ?? NaN; + const isActive = index === activeIndex; + if (!_isCardType && !isUndefined(oldIndex)) animating.value = isActive || index === oldIndex; + if (!isActive && carouselItemLength > 2 && carouselContext.loop) index = processIndex(index, activeIndex, carouselItemLength); + const _isVertical = (0, vue.unref)(isVertical); + active.value = isActive; + if (_isCardType) { + inStage.value = Math.round(Math.abs(index - activeIndex)) <= 1; + translate.value = calcCardTranslate(index, activeIndex); + scale.value = (0, vue.unref)(active) ? 1 : cardScale; + } else translate.value = calcTranslate(index, activeIndex, _isVertical); + ready.value = true; + if (isActive && carouselItemRef.value) carouselContext.setContainerHeight(carouselItemRef.value.offsetHeight); + }; + function handleItemClick() { + if (carouselContext && (0, vue.unref)(isCardType)) { + const index = carouselContext.items.value.findIndex(({ uid }) => uid === instance.uid); + carouselContext.setActiveItem(index); + } + } + const carouselItemContext = { + props, + states: (0, vue.reactive)({ + hover, + translate, + scale, + active, + ready, + inStage, + animating + }), + uid: instance.uid, + getVnode: () => instance.vnode, + translateItem + }; + carouselContext.addItem(carouselItemContext); + (0, vue.onBeforeUnmount)(() => { + carouselContext.removeItem(carouselItemContext); + }); + return { + carouselItemRef, + active, + animating, + hover, + inStage, + isVertical, + translate, + isCardType, + scale, + ready, + handleItemClick + }; + }; + +//#endregion +//#region ../../packages/components/carousel/src/carousel-item.vue?vue&type=script&setup=true&lang.ts + var carousel_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: CAROUSEL_ITEM_NAME, + __name: "carousel-item", + props: carouselItemProps, + setup(__props) { + const props = __props; + const ns = useNamespace("carousel"); + const { carouselItemRef, active, animating, hover, inStage, isVertical, translate, isCardType, scale, ready, handleItemClick } = useCarouselItem(props); + const itemKls = (0, vue.computed)(() => [ + ns.e("item"), + ns.is("active", active.value), + ns.is("in-stage", inStage.value), + ns.is("hover", hover.value), + ns.is("animating", animating.value), + { + [ns.em("item", "card")]: isCardType.value, + [ns.em("item", "card-vertical")]: isCardType.value && isVertical.value + } + ]); + const itemStyle = (0, vue.computed)(() => { + return { transform: [`${`translate${(0, vue.unref)(isVertical) ? "Y" : "X"}`}(${(0, vue.unref)(translate)}px)`, `scale(${(0, vue.unref)(scale)})`].join(" ") }; + }); + return (_ctx, _cache) => { + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "carouselItemRef", + ref: carouselItemRef, + class: (0, vue.normalizeClass)(itemKls.value), + style: (0, vue.normalizeStyle)(itemStyle.value), + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleItemClick) && (0, vue.unref)(handleItemClick)(...args)) + }, [(0, vue.unref)(isCardType) ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("mask")) + }, null, 2)), [[vue.vShow, !(0, vue.unref)(active)]]) : (0, vue.createCommentVNode)("v-if", true), (0, vue.renderSlot)(_ctx.$slots, "default")], 6)), [[vue.vShow, (0, vue.unref)(ready)]]); + }; + } + }); + +//#endregion +//#region ../../packages/components/carousel/src/carousel-item.vue + var carousel_item_default = carousel_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/carousel/index.ts + const ElCarousel = withInstall(carousel_default, { CarouselItem: carousel_item_default }); + const ElCarouselItem = withNoopInstall(carousel_item_default); + +//#endregion +//#region ../../packages/components/cascader-panel/src/config.ts + const CommonProps = buildProps({ + modelValue: { type: definePropType([ + Number, + String, + Array, + Object + ]) }, + options: { + type: definePropType(Array), + default: () => [] + }, + props: { + type: definePropType(Object), + default: () => ({}) + } + }); + const DefaultProps = { + expandTrigger: "click", + multiple: false, + checkStrictly: false, + emitPath: true, + lazy: false, + lazyLoad: NOOP, + value: "value", + label: "label", + children: "children", + leaf: "leaf", + disabled: "disabled", + hoverThreshold: 500, + checkOnClickNode: false, + checkOnClickLeaf: true, + showPrefix: true + }; + /** + * @deprecated Removed after 3.0.0, Use `CascaderPanelProps` instead. + */ + const cascaderPanelProps = buildProps({ + ...CommonProps, + border: { + type: Boolean, + default: true + }, + renderLabel: { type: Function } + }); + const emitChangeFn$2 = (value) => true; + const cascaderPanelEmits = { + [UPDATE_MODEL_EVENT]: emitChangeFn$2, + [CHANGE_EVENT]: emitChangeFn$2, + close: () => true, + "expand-change": (value) => value + }; + const useCascaderConfig = (props) => { + return (0, vue.computed)(() => ({ + ...DefaultProps, + ...props.props + })); + }; + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox.ts +/** + * @deprecated Removed after 3.0.0, Use `CheckboxProps` instead. + */ + const checkboxProps = { + 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: useSizeProp, + tabindex: [String, Number], + validateEvent: { + type: Boolean, + default: true + }, + ariaLabel: String, + ...useAriaProps(["ariaControls"]) + }; + const checkboxEmits = { + [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val), + change: (val) => isString(val) || isNumber(val) || isBoolean(val) + }; + const checkboxPropsDefaults = { + modelValue: void 0, + label: void 0, + value: void 0, + disabled: void 0, + name: void 0, + trueValue: void 0, + falseValue: void 0, + trueLabel: void 0, + falseLabel: void 0, + id: void 0, + validateEvent: true + }; + +//#endregion +//#region ../../packages/components/checkbox/src/constants.ts + const checkboxGroupContextKey = Symbol("checkboxGroupContextKey"); + +//#endregion +//#region ../../packages/components/checkbox/src/composables/use-checkbox-disabled.ts + const useCheckboxDisabled = ({ model, isChecked }) => { + const checkboxGroup = (0, vue.inject)(checkboxGroupContextKey, void 0); + const formContext = (0, vue.inject)(formContextKey, void 0); + const isLimitDisabled = (0, vue.computed)(() => { + const max = checkboxGroup?.max?.value; + const min = checkboxGroup?.min?.value; + return !isUndefined(max) && model.value.length >= max && !isChecked.value || !isUndefined(min) && model.value.length <= min && isChecked.value; + }); + return { + isDisabled: useFormDisabled((0, vue.computed)(() => { + if (checkboxGroup === void 0) return formContext?.disabled ?? isLimitDisabled.value; + else return checkboxGroup.disabled?.value || isLimitDisabled.value; + })), + isLimitDisabled + }; + }; + +//#endregion +//#region ../../packages/components/checkbox/src/composables/use-checkbox-event.ts + const useCheckboxEvent = (props, { model, isLimitExceeded, hasOwnLabel, isDisabled, isLabeledByFormItem }) => { + const checkboxGroup = (0, vue.inject)(checkboxGroupContextKey, void 0); + const { formItem } = useFormItem(); + const { emit } = (0, vue.getCurrentInstance)(); + function getLabeledValue(value) { + return [ + true, + props.trueValue, + props.trueLabel + ].includes(value) ? props.trueValue ?? props.trueLabel ?? true : props.falseValue ?? props.falseLabel ?? false; + } + function emitChangeEvent(checked, e) { + emit(CHANGE_EVENT, getLabeledValue(checked), e); + } + function handleChange(e) { + if (isLimitExceeded.value) return; + const target = e.target; + emit(CHANGE_EVENT, getLabeledValue(target.checked), e); + } + async function onClickRoot(e) { + if (isLimitExceeded.value) return; + if (!hasOwnLabel.value && !isDisabled.value && isLabeledByFormItem.value) { + if (!e.composedPath().some((item) => item.tagName === "LABEL")) { + model.value = getLabeledValue([ + false, + props.falseValue, + props.falseLabel + ].includes(model.value)); + await (0, vue.nextTick)(); + emitChangeEvent(model.value, e); + } + } + } + const validateEvent = (0, vue.computed)(() => checkboxGroup?.validateEvent || props.validateEvent); + (0, vue.watch)(() => props.modelValue, () => { + if (validateEvent.value) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + return { + handleChange, + onClickRoot + }; + }; + +//#endregion +//#region ../../packages/components/checkbox/src/composables/use-checkbox-model.ts + const useCheckboxModel = (props) => { + const selfModel = (0, vue.ref)(false); + const { emit, vnode } = (0, vue.getCurrentInstance)(); + const checkboxGroup = (0, vue.inject)(checkboxGroupContextKey, void 0); + const isGroup = (0, vue.computed)(() => isUndefined(checkboxGroup) === false); + const isLimitExceeded = (0, vue.ref)(false); + const isControlled = (0, vue.computed)(() => { + const rawProps = vnode.props ?? {}; + return "modelValue" in rawProps || "model-value" in rawProps; + }); + const model = (0, vue.computed)({ + get() { + return isGroup.value ? checkboxGroup?.modelValue?.value : !isControlled.value ? selfModel.value : props.modelValue; + }, + set(val) { + if (isGroup.value && isArray$1(val)) { + isLimitExceeded.value = checkboxGroup?.max?.value !== void 0 && val.length > checkboxGroup?.max.value && val.length > model.value.length; + isLimitExceeded.value === false && checkboxGroup?.changeEvent?.(val); + } else { + emit(UPDATE_MODEL_EVENT, val); + selfModel.value = val; + } + } + }); + return { + model, + isGroup, + isLimitExceeded + }; + }; + +//#endregion +//#region ../../packages/components/checkbox/src/composables/use-checkbox-status.ts + const useCheckboxStatus = (props, slots, { model }) => { + const checkboxGroup = (0, vue.inject)(checkboxGroupContextKey, void 0); + const isFocused = (0, vue.ref)(false); + const actualValue = (0, vue.computed)(() => { + if (!isPropAbsent(props.value)) return props.value; + return props.label; + }); + const isChecked = (0, vue.computed)(() => { + const value = model.value; + if (isBoolean(value)) return value; + else if (isArray$1(value)) if (isObject$1(actualValue.value)) return value.map(vue.toRaw).some((o) => isEqual$1(o, actualValue.value)); + else return value.map(vue.toRaw).includes(actualValue.value); + else if (value !== null && value !== void 0) return value === props.trueValue || value === props.trueLabel; + else return !!value; + }); + return { + checkboxButtonSize: useFormSize((0, vue.computed)(() => checkboxGroup?.size?.value), { prop: true }), + isChecked, + isFocused, + checkboxSize: useFormSize((0, vue.computed)(() => checkboxGroup?.size?.value)), + hasOwnLabel: (0, vue.computed)(() => { + return !!slots.default || !isPropAbsent(actualValue.value); + }), + actualValue + }; + }; + +//#endregion +//#region ../../packages/components/checkbox/src/composables/use-checkbox.ts + const useCheckbox = (props, slots) => { + const { formItem: elFormItem } = useFormItem(); + const { model, isGroup, isLimitExceeded } = useCheckboxModel(props); + const { isFocused, isChecked, checkboxButtonSize, checkboxSize, hasOwnLabel, actualValue } = useCheckboxStatus(props, slots, { model }); + const { isDisabled } = useCheckboxDisabled({ + model, + isChecked + }); + const { inputId, isLabeledByFormItem } = useFormItemInputId(props, { + formItemContext: elFormItem, + disableIdGeneration: hasOwnLabel, + disableIdManagement: isGroup + }); + const { handleChange, onClickRoot } = useCheckboxEvent(props, { + model, + isLimitExceeded, + hasOwnLabel, + isDisabled, + isLabeledByFormItem + }); + const setStoreValue = () => { + function addToStore() { + if (isArray$1(model.value) && !model.value.includes(actualValue.value)) model.value.push(actualValue.value); + else model.value = props.trueValue ?? props.trueLabel ?? true; + } + props.checked && addToStore(); + }; + setStoreValue(); + useDeprecated({ + from: "label act as value", + replacement: "value", + version: "3.0.0", + scope: "el-checkbox", + ref: "https://element-plus.org/en-US/component/checkbox.html" + }, (0, vue.computed)(() => isGroup.value && isPropAbsent(props.value))); + useDeprecated({ + from: "true-label", + replacement: "true-value", + version: "3.0.0", + scope: "el-checkbox", + ref: "https://element-plus.org/en-US/component/checkbox.html" + }, (0, vue.computed)(() => !!props.trueLabel)); + useDeprecated({ + from: "false-label", + replacement: "false-value", + version: "3.0.0", + scope: "el-checkbox", + ref: "https://element-plus.org/en-US/component/checkbox.html" + }, (0, vue.computed)(() => !!props.falseLabel)); + return { + inputId, + isLabeledByFormItem, + isChecked, + isDisabled, + isFocused, + checkboxButtonSize, + checkboxSize, + hasOwnLabel, + model, + actualValue, + handleChange, + onClickRoot + }; + }; + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$63 = [ + "id", + "indeterminate", + "name", + "tabindex", + "disabled" + ]; + var checkbox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCheckbox", + __name: "checkbox", + props: checkboxProps, + emits: checkboxEmits, + setup(__props) { + const props = __props; + const { inputId, isLabeledByFormItem, isChecked, isDisabled, isFocused, checkboxSize, hasOwnLabel, model, actualValue, handleChange, onClickRoot } = useCheckbox(props, (0, vue.useSlots)()); + const inputBindings = (0, vue.computed)(() => { + if (props.trueValue || props.falseValue || props.trueLabel || props.falseLabel) return { + "true-value": props.trueValue ?? props.trueLabel ?? true, + "false-value": props.falseValue ?? props.falseLabel ?? false + }; + return { value: actualValue.value }; + }); + const ns = useNamespace("checkbox"); + const compKls = (0, vue.computed)(() => { + return [ + ns.b(), + ns.m(checkboxSize.value), + ns.is("disabled", isDisabled.value), + ns.is("bordered", props.border), + ns.is("checked", isChecked.value) + ]; + }); + const spanKls = (0, vue.computed)(() => { + return [ + ns.e("input"), + ns.is("disabled", isDisabled.value), + ns.is("checked", isChecked.value), + ns.is("indeterminate", props.indeterminate), + ns.is("focus", isFocused.value) + ]; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(!(0, vue.unref)(hasOwnLabel) && (0, vue.unref)(isLabeledByFormItem) ? "span" : "label"), { + for: !(0, vue.unref)(hasOwnLabel) && (0, vue.unref)(isLabeledByFormItem) ? null : (0, vue.unref)(inputId), + class: (0, vue.normalizeClass)(compKls.value), + "aria-controls": __props.indeterminate ? __props.ariaControls : null, + "aria-checked": __props.indeterminate ? "mixed" : void 0, + "aria-label": __props.ariaLabel, + onClick: (0, vue.unref)(onClickRoot) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(spanKls.value) }, [(0, vue.withDirectives)((0, vue.createElementVNode)("input", (0, vue.mergeProps)({ + id: (0, vue.unref)(inputId), + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => (0, vue.isRef)(model) ? model.value = $event : null), + class: (0, vue.unref)(ns).e("original"), + type: "checkbox", + indeterminate: __props.indeterminate, + name: __props.name, + tabindex: __props.tabindex, + disabled: (0, vue.unref)(isDisabled) + }, inputBindings.value, { + onChange: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleChange) && (0, vue.unref)(handleChange)(...args)), + onFocus: _cache[2] || (_cache[2] = ($event) => isFocused.value = true), + onBlur: _cache[3] || (_cache[3] = ($event) => isFocused.value = false), + onClick: _cache[4] || (_cache[4] = (0, vue.withModifiers)(() => {}, ["stop"])) + }), null, 16, _hoisted_1$63), [[vue.vModelCheckbox, (0, vue.unref)(model)]]), (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("inner")) }, null, 2)], 2), (0, vue.unref)(hasOwnLabel) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("label")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default"), !_ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.label), 1)], 64)) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, [ + "for", + "class", + "aria-controls", + "aria-checked", + "aria-label", + "onClick" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox.vue + var checkbox_default = checkbox_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox-button.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$62 = [ + "name", + "tabindex", + "disabled" + ]; + var checkbox_button_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCheckboxButton", + __name: "checkbox-button", + props: checkboxProps, + emits: checkboxEmits, + setup(__props) { + const props = __props; + const { isFocused, isChecked, isDisabled, checkboxButtonSize, model, actualValue, handleChange } = useCheckbox(props, (0, vue.useSlots)()); + const inputBindings = (0, vue.computed)(() => { + if (props.trueValue || props.falseValue || props.trueLabel || props.falseLabel) return { + "true-value": props.trueValue ?? props.trueLabel ?? true, + "false-value": props.falseValue ?? props.falseLabel ?? false + }; + return { value: actualValue.value }; + }); + const checkboxGroup = (0, vue.inject)(checkboxGroupContextKey, void 0); + const ns = useNamespace("checkbox"); + const activeStyle = (0, vue.computed)(() => { + const fillValue = checkboxGroup?.fill?.value ?? ""; + return { + backgroundColor: fillValue, + borderColor: fillValue, + color: checkboxGroup?.textColor?.value ?? "", + boxShadow: fillValue ? `-1px 0 0 0 ${fillValue}` : void 0 + }; + }); + const labelKls = (0, vue.computed)(() => { + return [ + ns.b("button"), + ns.bm("button", checkboxButtonSize.value), + ns.is("disabled", isDisabled.value), + ns.is("checked", isChecked.value), + ns.is("focus", isFocused.value) + ]; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("label", { class: (0, vue.normalizeClass)(labelKls.value) }, [(0, vue.withDirectives)((0, vue.createElementVNode)("input", (0, vue.mergeProps)({ + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => (0, vue.isRef)(model) ? model.value = $event : null), + class: (0, vue.unref)(ns).be("button", "original"), + type: "checkbox", + name: __props.name, + tabindex: __props.tabindex, + disabled: (0, vue.unref)(isDisabled) + }, inputBindings.value, { + onChange: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleChange) && (0, vue.unref)(handleChange)(...args)), + onFocus: _cache[2] || (_cache[2] = ($event) => isFocused.value = true), + onBlur: _cache[3] || (_cache[3] = ($event) => isFocused.value = false), + onClick: _cache[4] || (_cache[4] = (0, vue.withModifiers)(() => {}, ["stop"])) + }), null, 16, _hoisted_1$62), [[vue.vModelCheckbox, (0, vue.unref)(model)]]), _ctx.$slots.default || __props.label ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("button", "inner")), + style: (0, vue.normalizeStyle)((0, vue.unref)(isChecked) ? activeStyle.value : void 0) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.label), 1)])], 6)) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox-button.vue + var checkbox_button_default = checkbox_button_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox-group.ts +/** + * @deprecated Removed after 3.0.0, Use `CheckboxGroupProps` instead. + */ + const checkboxGroupProps = buildProps({ + modelValue: { + type: definePropType(Array), + default: () => [] + }, + disabled: { + type: Boolean, + default: void 0 + }, + min: Number, + max: Number, + size: useSizeProp, + fill: String, + textColor: String, + tag: { + type: String, + default: "div" + }, + validateEvent: { + type: Boolean, + default: true + }, + options: { type: definePropType(Array) }, + props: { + type: definePropType(Object), + default: () => checkboxDefaultProps + }, + type: { + type: String, + values: ["checkbox", "button"], + default: "checkbox" + }, + ...useAriaProps(["ariaLabel"]) + }); + const checkboxGroupEmits = { + [UPDATE_MODEL_EVENT]: (val) => isArray$1(val), + change: (val) => isArray$1(val) + }; + const checkboxDefaultProps = { + label: "label", + value: "value", + disabled: "disabled" + }; + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox-group.vue?vue&type=script&setup=true&lang.ts + var checkbox_group_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCheckboxGroup", + __name: "checkbox-group", + props: checkboxGroupProps, + emits: checkboxGroupEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("checkbox"); + const checkboxDisabled = useFormDisabled(); + const { formItem } = useFormItem(); + const { inputId: groupId, isLabeledByFormItem } = useFormItemInputId(props, { formItemContext: formItem }); + const changeEvent = async (value) => { + emit(UPDATE_MODEL_EVENT, value); + await (0, vue.nextTick)(); + emit(CHANGE_EVENT, value); + }; + const modelValue = (0, vue.computed)({ + get() { + return props.modelValue; + }, + set(val) { + changeEvent(val); + } + }); + const aliasProps = (0, vue.computed)(() => ({ + ...checkboxDefaultProps, + ...props.props + })); + const getOptionProps = (option) => { + const { label, value, disabled } = aliasProps.value; + const base = { + label: option[label], + value: option[value], + disabled: option[disabled] + }; + return { + ...omit(option, [ + label, + value, + disabled + ]), + ...base + }; + }; + const optionComponent = (0, vue.computed)(() => props.type === "button" ? checkbox_button_default : checkbox_default); + (0, vue.provide)(checkboxGroupContextKey, { + ...pick((0, vue.toRefs)(props), [ + "size", + "min", + "max", + "validateEvent", + "fill", + "textColor" + ]), + disabled: checkboxDisabled, + modelValue, + changeEvent + }); + (0, vue.watch)(() => props.modelValue, (newVal, oldValue) => { + if (props.validateEvent && !isEqual$1(newVal, oldValue)) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.tag), { + id: (0, vue.unref)(groupId), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("group")), + role: "group", + "aria-label": !(0, vue.unref)(isLabeledByFormItem) ? __props.ariaLabel || "checkbox-group" : void 0, + "aria-labelledby": (0, vue.unref)(isLabeledByFormItem) ? (0, vue.unref)(formItem)?.labelId : void 0 + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.options, (item, index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(optionComponent.value), (0, vue.mergeProps)({ key: index }, { ref_for: true }, getOptionProps(item)), null, 16); + }), 128))])]), + _: 3 + }, 8, [ + "id", + "class", + "aria-label", + "aria-labelledby" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/checkbox/src/checkbox-group.vue + var checkbox_group_default = checkbox_group_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/checkbox/index.ts + const ElCheckbox = withInstall(checkbox_default, { + CheckboxButton: checkbox_button_default, + CheckboxGroup: checkbox_group_default + }); + const ElCheckboxButton = withNoopInstall(checkbox_button_default); + const ElCheckboxGroup = withNoopInstall(checkbox_group_default); + +//#endregion +//#region ../../packages/components/radio/src/radio.ts +/** + * @deprecated Removed after 3.0.0, Use `RadioPropsBase` instead. + */ + const radioPropsBase = buildProps({ + modelValue: { + type: [ + String, + Number, + Boolean + ], + default: void 0 + }, + size: useSizeProp, + 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 + } + }); + /** + * @deprecated Removed after 3.0.0, Use `RadioProps` instead. + */ + const radioProps = buildProps({ + ...radioPropsBase, + border: Boolean + }); + const radioEmits = { + [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val), + [CHANGE_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val) + }; + /** + * @description default values for RadioProps + */ + const radioPropsDefaults = { + modelValue: void 0, + disabled: void 0, + label: void 0, + value: void 0, + name: void 0, + border: false + }; + +//#endregion +//#region ../../packages/components/radio/src/constants.ts + const radioGroupKey = Symbol("radioGroupKey"); + +//#endregion +//#region ../../packages/components/radio/src/use-radio.ts + const useRadio = (props, emit) => { + const radioRef = (0, vue.ref)(); + const radioGroup = (0, vue.inject)(radioGroupKey, void 0); + const isGroup = (0, vue.computed)(() => !!radioGroup); + const actualValue = (0, vue.computed)(() => { + if (!isPropAbsent(props.value)) return props.value; + return props.label; + }); + const modelValue = (0, vue.computed)({ + get() { + return isGroup.value ? radioGroup.modelValue : props.modelValue; + }, + set(val) { + if (isGroup.value) radioGroup.changeEvent(val); + else emit && emit(UPDATE_MODEL_EVENT, val); + radioRef.value.checked = props.modelValue === actualValue.value; + } + }); + const size = useFormSize((0, vue.computed)(() => radioGroup?.size)); + const disabled = useFormDisabled((0, vue.computed)(() => radioGroup?.disabled)); + const focus = (0, vue.ref)(false); + const tabIndex = (0, vue.computed)(() => { + return disabled.value || isGroup.value && modelValue.value !== actualValue.value ? -1 : 0; + }); + useDeprecated({ + from: "label act as value", + replacement: "value", + version: "3.0.0", + scope: "el-radio", + ref: "https://element-plus.org/en-US/component/radio.html" + }, (0, vue.computed)(() => isGroup.value && isPropAbsent(props.value))); + return { + radioRef, + isGroup, + radioGroup, + focus, + size, + disabled, + tabIndex, + modelValue, + actualValue + }; + }; + +//#endregion +//#region ../../packages/components/radio/src/radio.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$61 = [ + "value", + "name", + "disabled", + "checked" + ]; + var radio_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElRadio", + __name: "radio", + props: radioProps, + emits: radioEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("radio"); + const { radioRef, radioGroup, focus, size, disabled, modelValue, actualValue } = useRadio(props, emit); + function handleChange() { + (0, vue.nextTick)(() => emit(CHANGE_EVENT, modelValue.value)); + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("label", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(disabled)), + (0, vue.unref)(ns).is("focus", (0, vue.unref)(focus)), + (0, vue.unref)(ns).is("bordered", __props.border), + (0, vue.unref)(ns).is("checked", (0, vue.unref)(modelValue) === (0, vue.unref)(actualValue)), + (0, vue.unref)(ns).m((0, vue.unref)(size)) + ]) }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("input"), + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(disabled)), + (0, vue.unref)(ns).is("checked", (0, vue.unref)(modelValue) === (0, vue.unref)(actualValue)) + ]) }, [(0, vue.withDirectives)((0, vue.createElementVNode)("input", { + ref_key: "radioRef", + ref: radioRef, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => (0, vue.isRef)(modelValue) ? modelValue.value = $event : null), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("original")), + value: (0, vue.unref)(actualValue), + name: __props.name || (0, vue.unref)(radioGroup)?.name, + disabled: (0, vue.unref)(disabled), + checked: (0, vue.unref)(modelValue) === (0, vue.unref)(actualValue), + type: "radio", + onFocus: _cache[1] || (_cache[1] = ($event) => focus.value = true), + onBlur: _cache[2] || (_cache[2] = ($event) => focus.value = false), + onChange: handleChange, + onClick: _cache[3] || (_cache[3] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, null, 42, _hoisted_1$61), [[vue.vModelRadio, (0, vue.unref)(modelValue)]]), (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("inner")) }, null, 2)], 2), (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("label")), + onKeydown: _cache[4] || (_cache[4] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.label), 1)])], 34)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/radio/src/radio.vue + var radio_default = radio_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/radio/src/radio-button.ts +/** + * @deprecated Removed after 3.0.0, Use `RadioButtonProps` instead. + */ + const radioButtonProps = buildProps({ ...radioPropsBase }); + /** + * @description default values for RadioButtonProps + */ + const radioButtonPropsDefaults = { + modelValue: void 0, + disabled: void 0, + label: void 0, + value: void 0, + name: void 0 + }; + +//#endregion +//#region ../../packages/components/radio/src/radio-button.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$60 = [ + "value", + "name", + "disabled" + ]; + var radio_button_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElRadioButton", + __name: "radio-button", + props: radioButtonProps, + setup(__props) { + const props = __props; + const ns = useNamespace("radio"); + const { radioRef, focus, size, disabled, modelValue, radioGroup, actualValue } = useRadio(props); + const activeStyle = (0, vue.computed)(() => { + return { + backgroundColor: radioGroup?.fill || "", + borderColor: radioGroup?.fill || "", + boxShadow: radioGroup?.fill ? `-1px 0 0 0 ${radioGroup.fill}` : "", + color: radioGroup?.textColor || "" + }; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("label", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b("button"), + (0, vue.unref)(ns).is("active", (0, vue.unref)(modelValue) === (0, vue.unref)(actualValue)), + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(disabled)), + (0, vue.unref)(ns).is("focus", (0, vue.unref)(focus)), + (0, vue.unref)(ns).bm("button", (0, vue.unref)(size)) + ]) }, [(0, vue.withDirectives)((0, vue.createElementVNode)("input", { + ref_key: "radioRef", + ref: radioRef, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => (0, vue.isRef)(modelValue) ? modelValue.value = $event : null), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("button", "original-radio")), + value: (0, vue.unref)(actualValue), + type: "radio", + name: __props.name || (0, vue.unref)(radioGroup)?.name, + disabled: (0, vue.unref)(disabled), + onFocus: _cache[1] || (_cache[1] = ($event) => focus.value = true), + onBlur: _cache[2] || (_cache[2] = ($event) => focus.value = false), + onClick: _cache[3] || (_cache[3] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, null, 42, _hoisted_1$60), [[vue.vModelRadio, (0, vue.unref)(modelValue)]]), (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("button", "inner")), + style: (0, vue.normalizeStyle)((0, vue.unref)(modelValue) === (0, vue.unref)(actualValue) ? activeStyle.value : {}), + onKeydown: _cache[4] || (_cache[4] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.label), 1)])], 38)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/radio/src/radio-button.vue + var radio_button_default = radio_button_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/radio/src/radio-group.ts + const radioDefaultProps = { + label: "label", + value: "value", + disabled: "disabled" + }; + /** + * @deprecated Removed after 3.0.0, Use `RadioGroupProps` instead. + */ + const radioGroupProps = buildProps({ + id: { + type: String, + default: void 0 + }, + size: useSizeProp, + 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: true + }, + options: { type: definePropType(Array) }, + props: { + type: definePropType(Object), + default: () => radioDefaultProps + }, + type: { + type: String, + values: ["radio", "button"], + default: "radio" + }, + ...useAriaProps(["ariaLabel"]) + }); + const radioGroupEmits = radioEmits; + /** + * @description default values for RadioGroupProps + */ + const radioGroupPropsDefaults = { + id: void 0, + disabled: void 0, + modelValue: void 0, + fill: "", + textColor: "", + name: void 0, + validateEvent: true, + props: () => radioDefaultProps, + type: "radio" + }; + +//#endregion +//#region ../../packages/components/radio/src/radio-group.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$59 = [ + "id", + "aria-label", + "aria-labelledby" + ]; + var radio_group_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElRadioGroup", + __name: "radio-group", + props: radioGroupProps, + emits: radioGroupEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("radio"); + const radioId = useId(); + const radioGroupRef = (0, vue.ref)(); + const { formItem } = useFormItem(); + const { inputId: groupId, isLabeledByFormItem } = useFormItemInputId(props, { formItemContext: formItem }); + const changeEvent = (value) => { + emit(UPDATE_MODEL_EVENT, value); + (0, vue.nextTick)(() => emit(CHANGE_EVENT, value)); + }; + (0, vue.onMounted)(() => { + const radios = radioGroupRef.value.querySelectorAll("[type=radio]"); + const firstLabel = radios[0]; + if (!Array.from(radios).some((radio) => radio.checked) && firstLabel) firstLabel.tabIndex = 0; + }); + const name = (0, vue.computed)(() => { + return props.name || radioId.value; + }); + const aliasProps = (0, vue.computed)(() => ({ + ...radioDefaultProps, + ...props.props + })); + const getOptionProps = (option) => { + const { label, value, disabled } = aliasProps.value; + const base = { + label: option[label], + value: option[value], + disabled: option[disabled] + }; + return { + ...omit(option, [ + label, + value, + disabled + ]), + ...base + }; + }; + const optionComponent = (0, vue.computed)(() => props.type === "button" ? radio_button_default : radio_default); + (0, vue.provide)(radioGroupKey, (0, vue.reactive)({ + ...(0, vue.toRefs)(props), + changeEvent, + name + })); + (0, vue.watch)(() => props.modelValue, (newVal, oldValue) => { + if (props.validateEvent && !isEqual$1(newVal, oldValue)) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + id: (0, vue.unref)(groupId), + ref_key: "radioGroupRef", + ref: radioGroupRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("group")), + role: "radiogroup", + "aria-label": !(0, vue.unref)(isLabeledByFormItem) ? __props.ariaLabel || "radio-group" : void 0, + "aria-labelledby": (0, vue.unref)(isLabeledByFormItem) ? (0, vue.unref)(formItem).labelId : void 0 + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.options, (item, index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(optionComponent.value), (0, vue.mergeProps)({ key: index }, { ref_for: true }, getOptionProps(item)), null, 16); + }), 128))])], 10, _hoisted_1$59); + }; + } + }); + +//#endregion +//#region ../../packages/components/radio/src/radio-group.vue + var radio_group_default = radio_group_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/radio/index.ts + const ElRadio = withInstall(radio_default, { + RadioButton: radio_button_default, + RadioGroup: radio_group_default + }); + const ElRadioGroup = withNoopInstall(radio_group_default); + const ElRadioButton = withNoopInstall(radio_button_default); + +//#endregion +//#region ../../packages/components/cascader-panel/src/types.ts + const CASCADER_PANEL_INJECTION_KEY = Symbol(); + +//#endregion +//#region ../../packages/components/cascader-panel/src/node-content.tsx + function isVNodeEmpty(vnodes) { + return !!(isArray$1(vnodes) ? vnodes.every(({ type }) => type === vue.Comment) : vnodes?.type === vue.Comment); + } + var node_content_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "NodeContent", + props: { node: { + type: Object, + required: true + } }, + setup(props) { + const ns = useNamespace("cascader-node"); + const { renderLabelFn } = (0, vue.inject)(CASCADER_PANEL_INJECTION_KEY); + const { node } = props; + const { data, label: nodeLabel } = node; + const label = () => { + const renderLabel = renderLabelFn?.({ + node, + data + }); + return isVNodeEmpty(renderLabel) ? nodeLabel : renderLabel ?? nodeLabel; + }; + return () => (0, vue.createVNode)("span", { "class": ns.e("label") }, [label()]); + } + }); + +//#endregion +//#region ../../packages/components/cascader-panel/src/node.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$58 = [ + "id", + "aria-haspopup", + "aria-owns", + "aria-expanded", + "tabindex" + ]; + var node_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCascaderNode", + __name: "node", + props: { + node: { + type: Object, + required: true + }, + menuId: String + }, + emits: ["expand"], + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const panel = (0, vue.inject)(CASCADER_PANEL_INJECTION_KEY); + const ns = useNamespace("cascader-node"); + const isHoverMenu = (0, vue.computed)(() => panel.isHoverMenu); + const multiple = (0, vue.computed)(() => panel.config.multiple); + const checkStrictly = (0, vue.computed)(() => panel.config.checkStrictly); + const showPrefix = (0, vue.computed)(() => panel.config.showPrefix); + const checkedNodeId = (0, vue.computed)(() => panel.checkedNodes[0]?.uid); + const isDisabled = (0, vue.computed)(() => props.node.isDisabled); + const isLeaf = (0, vue.computed)(() => props.node.isLeaf); + const expandable = (0, vue.computed)(() => checkStrictly.value && !isLeaf.value || !isDisabled.value); + const inExpandingPath = (0, vue.computed)(() => isInPath(panel.expandingNode)); + const inCheckedPath = (0, vue.computed)(() => checkStrictly.value && panel.checkedNodes.some(isInPath)); + const isInPath = (node) => { + const { level, uid } = props.node; + return node?.pathNodes[level - 1]?.uid === uid; + }; + const doExpand = () => { + if (inExpandingPath.value) return; + panel.expandNode(props.node); + }; + const doCheck = (checked) => { + const { node } = props; + if (checked === node.checked) return; + panel.handleCheckChange(node, checked); + }; + const doLoad = () => { + panel.lazyLoad(props.node, () => { + if (!isLeaf.value) doExpand(); + }); + }; + const handleHoverExpand = (e) => { + if (!isHoverMenu.value) return; + handleExpand(); + !isLeaf.value && emit("expand", e); + }; + const handleExpand = () => { + const { node } = props; + if (!expandable.value || node.loading) return; + node.loaded ? doExpand() : doLoad(); + }; + const handleClick = () => { + if (isLeaf.value && !isDisabled.value && !checkStrictly.value && !multiple.value) handleCheck(true); + else if ((panel.config.checkOnClickNode && (multiple.value || checkStrictly.value) || isLeaf.value && panel.config.checkOnClickLeaf) && !isDisabled.value) handleSelectCheck(!props.node.checked); + else if (!isHoverMenu.value) handleExpand(); + }; + const handleSelectCheck = (checked) => { + if (checkStrictly.value) { + doCheck(checked); + if (props.node.loaded) doExpand(); + } else handleCheck(checked); + }; + const handleCheck = (checked) => { + if (!props.node.loaded) doLoad(); + else { + doCheck(checked); + !checkStrictly.value && doExpand(); + } + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + id: `${__props.menuId}-${__props.node.uid}`, + role: "menuitem", + "aria-haspopup": !isLeaf.value, + "aria-owns": isLeaf.value ? void 0 : __props.menuId, + "aria-expanded": inExpandingPath.value, + tabindex: expandable.value ? -1 : void 0, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).is("selectable", checkStrictly.value), + (0, vue.unref)(ns).is("active", __props.node.checked), + (0, vue.unref)(ns).is("disabled", !expandable.value), + inExpandingPath.value && "in-active-path", + inCheckedPath.value && "in-checked-path" + ]), + onMouseenter: handleHoverExpand, + onFocus: handleHoverExpand, + onClick: handleClick + }, [ + (0, vue.createCommentVNode)(" prefix "), + multiple.value && showPrefix.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElCheckbox), { + key: 0, + "model-value": __props.node.checked, + indeterminate: __props.node.indeterminate, + disabled: isDisabled.value, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])), + "onUpdate:modelValue": handleSelectCheck + }, null, 8, [ + "model-value", + "indeterminate", + "disabled" + ])) : checkStrictly.value && showPrefix.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElRadio), { + key: 1, + "model-value": checkedNodeId.value, + label: __props.node.uid, + disabled: isDisabled.value, + "onUpdate:modelValue": handleSelectCheck, + onClick: _cache[1] || (_cache[1] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createCommentVNode)("\n Add an empty element to avoid render label,\n do not use empty fragment here for https://github.com/vuejs/vue-next/pull/2485\n "), _cache[2] || (_cache[2] = (0, vue.createElementVNode)("span", null, null, -1))]), + _: 1 + }, 8, [ + "model-value", + "label", + "disabled" + ])) : isLeaf.value && __props.node.checked ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("prefix")) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(check_default))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createCommentVNode)(" content "), + (0, vue.createVNode)((0, vue.unref)(node_content_default), { node: __props.node }, null, 8, ["node"]), + (0, vue.createCommentVNode)(" postfix "), + !isLeaf.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 3 }, [__props.node.loading ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).is("loading"), (0, vue.unref)(ns).e("postfix")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(loading_default))]), + _: 1 + }, 8, ["class"])) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)(["arrow-right", (0, vue.unref)(ns).e("postfix")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + }, 8, ["class"]))], 64)) : (0, vue.createCommentVNode)("v-if", true) + ], 42, _hoisted_1$58); + }; + } + }); + +//#endregion +//#region ../../packages/components/cascader-panel/src/node.vue + var node_default = node_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/cascader-panel/src/menu.vue?vue&type=script&setup=true&lang.ts + var menu_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCascaderMenu", + __name: "menu", + props: { + nodes: { + type: Array, + required: true + }, + index: { + type: Number, + required: true + } + }, + setup(__props) { + const props = __props; + const instance = (0, vue.getCurrentInstance)(); + const ns = useNamespace("cascader-menu"); + const { t } = useLocale(); + const id = useId(); + let activeNode; + let hoverTimer; + const panel = (0, vue.inject)(CASCADER_PANEL_INJECTION_KEY); + const hoverZone = (0, vue.ref)(); + const isEmpty = (0, vue.computed)(() => !props.nodes.length); + const isLoading = (0, vue.computed)(() => !panel.initialLoaded); + const menuId = (0, vue.computed)(() => `${id.value}-${props.index}`); + const handleExpand = (e) => { + activeNode = e.target; + }; + const handleMouseMove = (e) => { + if (!panel.isHoverMenu || !activeNode || !hoverZone.value) return; + if (activeNode.contains(e.target)) { + clearHoverTimer(); + const el = instance.vnode.el; + const { left } = el.getBoundingClientRect(); + const { offsetWidth, offsetHeight } = el; + const startX = e.clientX - left; + const top = activeNode.offsetTop; + const bottom = top + activeNode.offsetHeight; + const scrollTop = el.querySelector(`.${ns.e("wrap")}`)?.scrollTop || 0; + hoverZone.value.innerHTML = ` + + + `; + } else if (!hoverTimer) hoverTimer = window.setTimeout(clearHoverZone, panel.config.hoverThreshold); + }; + const clearHoverTimer = () => { + if (!hoverTimer) return; + clearTimeout(hoverTimer); + hoverTimer = void 0; + }; + const clearHoverZone = () => { + if (!hoverZone.value) return; + hoverZone.value.innerHTML = ""; + clearHoverTimer(); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElScrollbar), { + key: menuId.value, + tag: "ul", + role: "menu", + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + "wrap-class": (0, vue.unref)(ns).e("wrap"), + "view-class": [(0, vue.unref)(ns).e("list"), (0, vue.unref)(ns).is("empty", isEmpty.value)], + onMousemove: handleMouseMove, + onMouseleave: clearHoverZone + }, { + default: (0, vue.withCtx)(() => [ + ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.nodes, (node) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(node_default, { + key: node.uid, + node, + "menu-id": menuId.value, + onExpand: handleExpand + }, null, 8, ["node", "menu-id"]); + }), 128)), + isLoading.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("empty-text")) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { + size: "14", + class: (0, vue.normalizeClass)((0, vue.unref)(ns).is("loading")) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(loading_default))]), + _: 1 + }, 8, ["class"]), (0, vue.createTextVNode)(" " + (0, vue.toDisplayString)((0, vue.unref)(t)("el.cascader.loading")), 1)], 2)) : isEmpty.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("empty-text")) + }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.cascader.noData")), 1)])], 2)) : (0, vue.unref)(panel)?.isHoverMenu ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [(0, vue.createCommentVNode)(" eslint-disable vue/html-self-closing "), ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", { + ref_key: "hoverZone", + ref: hoverZone, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("hover-zone")) + }, null, 2))], 2112)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createCommentVNode)(" eslint-enable vue/html-self-closing ") + ]), + _: 3 + }, 8, [ + "class", + "wrap-class", + "view-class" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/cascader-panel/src/menu.vue + var menu_default$1 = menu_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/cascader-panel/src/node.ts + let uid = 0; + const calculatePathNodes = (node) => { + const nodes = [node]; + let { parent } = node; + while (parent) { + nodes.unshift(parent); + parent = parent.parent; + } + return nodes; + }; + var Node$2 = class Node$2 { + constructor(data, config, parent, root = false) { + this.data = data; + this.config = config; + this.parent = parent; + this.root = root; + this.uid = uid++; + this.checked = false; + this.indeterminate = false; + this.loading = false; + const { value: valueKey, label: labelKey, children: childrenKey } = config; + const childrenData = data[childrenKey]; + const pathNodes = calculatePathNodes(this); + this.level = root ? 0 : parent ? parent.level + 1 : 1; + this.value = data[valueKey]; + this.label = data[labelKey]; + this.pathNodes = pathNodes; + this.pathValues = pathNodes.map((node) => node.value); + this.pathLabels = pathNodes.map((node) => node.label); + this.childrenData = childrenData; + this.children = (childrenData || []).map((child) => new Node$2(child, config, this)); + this.loaded = !config.lazy || this.isLeaf || !isEmpty(childrenData); + this.text = ""; + } + get isDisabled() { + const { data, parent, config } = this; + const { disabled, checkStrictly } = config; + return (isFunction$1(disabled) ? disabled(data, this) : !!data[disabled]) || !checkStrictly && !!parent?.isDisabled; + } + get isLeaf() { + const { data, config, childrenData, loaded } = this; + const { lazy, leaf } = config; + const isLeaf = isFunction$1(leaf) ? leaf(data, this) : data[leaf]; + return isUndefined(isLeaf) ? lazy && !loaded ? false : !(isArray$1(childrenData) && childrenData.length) : !!isLeaf; + } + get valueByOption() { + return this.config.emitPath ? this.pathValues : this.value; + } + appendChild(childData) { + const { childrenData, children } = this; + const node = new Node$2(childData, this.config, this); + if (isArray$1(childrenData)) childrenData.push(childData); + else this.childrenData = [childData]; + children.push(node); + return node; + } + calcText(allLevels, separator) { + const text = allLevels ? this.pathLabels.join(separator) : this.label; + this.text = text; + return text; + } + broadcast(checked) { + this.children.forEach((child) => { + if (child) { + child.broadcast(checked); + child.onParentCheck?.(checked); + } + }); + } + emit() { + const { parent } = this; + if (parent) { + parent.onChildCheck?.(); + parent.emit(); + } + } + onParentCheck(checked) { + if (!this.isDisabled) this.setCheckState(checked); + } + onChildCheck() { + const { children } = this; + const validChildren = children.filter((child) => !child.isDisabled); + const checked = validChildren.length ? validChildren.every((child) => child.checked) : false; + this.setCheckState(checked); + } + setCheckState(checked) { + const totalNum = this.children.length; + const checkedNum = this.children.reduce((c, p) => { + return c + (p.checked ? 1 : p.indeterminate ? .5 : 0); + }, 0); + this.checked = this.loaded && this.children.filter((child) => !child.isDisabled).every((child) => child.loaded && child.checked) && checked; + this.indeterminate = this.loaded && checkedNum !== totalNum && checkedNum > 0; + } + doCheck(checked) { + if (this.checked === checked) return; + const { checkStrictly, multiple } = this.config; + if (checkStrictly || !multiple) this.checked = checked; + else { + this.broadcast(checked); + this.setCheckState(checked); + this.emit(); + } + } + }; + +//#endregion +//#region ../../packages/components/cascader-panel/src/store.ts + const flatNodes = (nodes, leafOnly) => { + return nodes.reduce((res, node) => { + if (node.isLeaf) res.push(node); + else { + !leafOnly && res.push(node); + res = res.concat(flatNodes(node.children, leafOnly)); + } + return res; + }, []); + }; + var Store = class { + constructor(data, config) { + this.config = config; + const nodes = (data || []).map((nodeData) => new Node$2(nodeData, this.config)); + this.nodes = nodes; + this.allNodes = flatNodes(nodes, false); + this.leafNodes = flatNodes(nodes, true); + } + getNodes() { + return this.nodes; + } + getFlattedNodes(leafOnly) { + return leafOnly ? this.leafNodes : this.allNodes; + } + appendNode(nodeData, parentNode) { + const node = parentNode ? parentNode.appendChild(nodeData) : new Node$2(nodeData, this.config); + if (!parentNode) this.nodes.push(node); + this.appendAllNodesAndLeafNodes(node); + } + appendNodes(nodeDataList, parentNode) { + if (nodeDataList.length > 0) nodeDataList.forEach((nodeData) => this.appendNode(nodeData, parentNode)); + else parentNode && parentNode.isLeaf && this.leafNodes.push(parentNode); + } + appendAllNodesAndLeafNodes(node) { + this.allNodes.push(node); + node.isLeaf && this.leafNodes.push(node); + if (node.children) node.children.forEach((subNode) => { + this.appendAllNodesAndLeafNodes(subNode); + }); + } + getNodeByValue(value, leafOnly = false) { + if (isPropAbsent(value)) return null; + return this.getFlattedNodes(leafOnly).find((node) => isEqual$1(node.value, value) || isEqual$1(node.pathValues, value)) || null; + } + getSameNode(node) { + if (!node) return null; + return this.getFlattedNodes(false).find(({ value, level }) => isEqual$1(node.value, value) && node.level === level) || null; + } + }; + +//#endregion +//#region ../../packages/components/cascader-panel/src/utils.ts + const getMenuIndex = (el) => { + if (!el) return 0; + const pieces = el.id.split("-"); + return Number(pieces[pieces.length - 2]); + }; + const checkNode = (el) => { + if (!el) return; + const input = el.querySelector("input"); + if (input) input.click(); + else if (isLeaf(el)) el.click(); + }; + const sortByOriginalOrder = (oldNodes, newNodes) => { + const newNodesCopy = newNodes.slice(0); + const newIds = newNodesCopy.map((node) => node.uid); + const res = oldNodes.reduce((acc, item) => { + const index = newIds.indexOf(item.uid); + if (index > -1) { + acc.push(item); + newNodesCopy.splice(index, 1); + newIds.splice(index, 1); + } + return acc; + }, []); + res.push(...newNodesCopy); + return res; + }; + +//#endregion +//#region ../../packages/components/cascader-panel/src/index.vue?vue&type=script&setup=true&lang.ts + var index_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCascaderPanel", + __name: "index", + props: cascaderPanelProps, + emits: cascaderPanelEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + let manualChecked = false; + const ns = useNamespace("cascader"); + const config = useCascaderConfig(props); + const slots = (0, vue.useSlots)(); + let store; + const initialLoaded = (0, vue.ref)(true); + const initialLoadedOnce = (0, vue.ref)(false); + const menuList = (0, vue.ref)([]); + const checkedValue = (0, vue.ref)(); + const menus = (0, vue.ref)([]); + const expandingNode = (0, vue.ref)(); + const checkedNodes = (0, vue.ref)([]); + const isHoverMenu = (0, vue.computed)(() => config.value.expandTrigger === "hover"); + const renderLabelFn = (0, vue.computed)(() => props.renderLabel || slots.default); + const initStore = () => { + const { options } = props; + const cfg = config.value; + manualChecked = false; + store = new Store(options, cfg); + menus.value = [store.getNodes()]; + if (cfg.lazy && isEmpty(props.options)) { + initialLoaded.value = false; + lazyLoad(void 0, (list) => { + if (list) { + store = new Store(list, cfg); + menus.value = [store.getNodes()]; + } + initialLoaded.value = true; + syncCheckedValue(false, true); + }); + } else syncCheckedValue(false, true); + }; + const lazyLoad = (node, cb) => { + const cfg = config.value; + node = node || new Node$2({}, cfg, void 0, true); + node.loading = true; + const resolve = (dataList) => { + const _node = node; + const parent = _node.root ? null : _node; + _node.loading = false; + _node.loaded = true; + _node.childrenData = _node.childrenData || []; + dataList && store?.appendNodes(dataList, parent); + dataList && cb?.(dataList); + if (node.level === 0) initialLoadedOnce.value = true; + }; + const reject = () => { + node.loading = false; + node.loaded = false; + if (node.level === 0) initialLoaded.value = true; + }; + cfg.lazyLoad(node, resolve, reject); + }; + const expandNode = (node, silent) => { + const { level } = node; + const newMenus = menus.value.slice(0, level); + let newExpandingNode; + if (node.isLeaf) newExpandingNode = node.pathNodes[level - 2]; + else { + newExpandingNode = node; + newMenus.push(node.children); + } + if (expandingNode.value?.uid !== newExpandingNode?.uid) { + expandingNode.value = node; + menus.value = newMenus; + !silent && emit("expand-change", node?.pathValues || []); + } + }; + const handleCheckChange = (node, checked, emitClose = true) => { + const { checkStrictly, multiple } = config.value; + const oldNode = checkedNodes.value[0]; + manualChecked = true; + !multiple && oldNode?.doCheck(false); + node.doCheck(checked); + calculateCheckedValue(); + emitClose && !multiple && !checkStrictly && emit("close"); + !emitClose && !multiple && expandParentNode(node); + }; + const expandParentNode = (node) => { + if (!node) return; + node = node.parent; + expandParentNode(node); + node && expandNode(node); + }; + const getFlattedNodes = (leafOnly) => store?.getFlattedNodes(leafOnly); + const getCheckedNodes = (leafOnly) => { + return getFlattedNodes(leafOnly)?.filter(({ checked }) => checked !== false); + }; + const clearCheckedNodes = () => { + checkedNodes.value.forEach((node) => node.doCheck(false)); + calculateCheckedValue(); + menus.value = menus.value.slice(0, 1); + expandingNode.value = void 0; + emit("expand-change", []); + }; + const calculateCheckedValue = () => { + const { checkStrictly, multiple } = config.value; + const oldNodes = checkedNodes.value; + const nodes = sortByOriginalOrder(oldNodes, getCheckedNodes(!checkStrictly)); + const values = nodes.map((node) => node.valueByOption); + checkedNodes.value = nodes; + checkedValue.value = multiple ? values : values[0] ?? null; + }; + const syncCheckedValue = (loaded = false, forced = false) => { + const { modelValue } = props; + const { lazy, multiple, checkStrictly } = config.value; + const leafOnly = !checkStrictly; + if (!initialLoaded.value || manualChecked || !forced && isEqual$1(modelValue, checkedValue.value)) return; + if (lazy && !loaded) { + const nodes = unique(flattenDeep(castArray(modelValue))).map((val) => store?.getNodeByValue(val)).filter((node) => !!node && !node.loaded && !node.loading); + if (nodes.length) nodes.forEach((node) => { + lazyLoad(node, () => syncCheckedValue(false, forced)); + }); + else syncCheckedValue(true, forced); + } else { + syncMenuState(unique((multiple ? castArray(modelValue) : [modelValue]).map((val) => store?.getNodeByValue(val, leafOnly))), forced); + checkedValue.value = cloneDeep(modelValue ?? void 0); + } + }; + const syncMenuState = (newCheckedNodes, reserveExpandingState = true) => { + const { checkStrictly } = config.value; + const oldNodes = checkedNodes.value; + const newNodes = newCheckedNodes.filter((node) => !!node && (checkStrictly || node.isLeaf)); + const oldExpandingNode = store?.getSameNode(expandingNode.value); + const newExpandingNode = reserveExpandingState && oldExpandingNode || newNodes[0]; + if (newExpandingNode) newExpandingNode.pathNodes.forEach((node) => expandNode(node, true)); + else expandingNode.value = void 0; + oldNodes.forEach((node) => node.doCheck(false)); + (0, vue.reactive)(newNodes).forEach((node) => node.doCheck(true)); + checkedNodes.value = newNodes; + (0, vue.nextTick)(scrollToExpandingNode); + }; + const scrollToExpandingNode = () => { + if (!isClient) return; + menuList.value.forEach((menu) => { + const menuElement = menu?.$el; + if (menuElement) { + const container = menuElement.querySelector(`.${ns.namespace.value}-scrollbar__wrap`); + let activeNode = menuElement.querySelector(`.${ns.b("node")}.in-active-path`); + if (!activeNode) { + const activeElements = menuElement.querySelectorAll(`.${ns.b("node")}.${ns.is("active")}`); + activeNode = activeElements[activeElements.length - 1]; + } + scrollIntoView(container, activeNode); + } + }); + }; + const handleKeyDown = (e) => { + const target = e.target; + const code = getEventCode(e); + switch (code) { + case EVENT_CODE.up: + case EVENT_CODE.down: + e.preventDefault(); + focusNode(getSibling(target, code === EVENT_CODE.up ? -1 : 1, `.${ns.b("node")}[tabindex="-1"]`)); + break; + case EVENT_CODE.left: { + e.preventDefault(); + const expandedNode = menuList.value[getMenuIndex(target) - 1]?.$el.querySelector(`.${ns.b("node")}[aria-expanded="true"]`); + focusNode(expandedNode); + break; + } + case EVENT_CODE.right: { + e.preventDefault(); + const firstNode = menuList.value[getMenuIndex(target) + 1]?.$el.querySelector(`.${ns.b("node")}[tabindex="-1"]`); + focusNode(firstNode); + break; + } + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + checkNode(target); + break; + } + }; + (0, vue.provide)(CASCADER_PANEL_INJECTION_KEY, (0, vue.reactive)({ + config, + expandingNode, + checkedNodes, + isHoverMenu, + initialLoaded, + renderLabelFn, + lazyLoad, + expandNode, + handleCheckChange + })); + (0, vue.watch)(config, (newVal, oldVal) => { + if (isEqual$1(newVal, oldVal)) return; + initStore(); + }, { immediate: true }); + (0, vue.watch)(() => props.options, initStore, { deep: true }); + (0, vue.watch)(() => props.modelValue, () => { + manualChecked = false; + syncCheckedValue(); + }, { deep: true }); + (0, vue.watch)(() => checkedValue.value, (val) => { + if (!isEqual$1(val, props.modelValue)) { + emit(UPDATE_MODEL_EVENT, val); + emit(CHANGE_EVENT, val); + } + }); + const loadLazyRootNodes = () => { + if (initialLoadedOnce.value) return; + initStore(); + }; + (0, vue.onBeforeUpdate)(() => menuList.value = []); + (0, vue.onMounted)(() => !isEmpty(props.modelValue) && syncCheckedValue()); + __expose({ + menuList, + menus, + checkedNodes, + handleKeyDown, + handleCheckChange, + getFlattedNodes, + getCheckedNodes, + clearCheckedNodes, + calculateCheckedValue, + scrollToExpandingNode, + loadLazyRootNodes + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("panel"), (0, vue.unref)(ns).is("bordered", __props.border)]), + onKeydown: handleKeyDown + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(menus.value, (menu, index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(menu_default$1, { + key: index, + ref_for: true, + ref: (item) => menuList.value[index] = item, + index, + nodes: [...menu] + }, { + empty: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "empty")]), + _: 3 + }, 8, ["index", "nodes"]); + }), 128))], 34); + }; + } + }); + +//#endregion +//#region ../../packages/components/cascader-panel/src/index.vue + var src_default$1 = index_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/cascader-panel/index.ts + const ElCascaderPanel = withInstall(src_default$1); + +//#endregion +//#region ../../packages/components/cascader/src/cascader.ts +/** + * @deprecated Removed after 3.0.0, Use `CascaderComponentProps` instead. + */ + const cascaderProps = buildProps({ + ...CommonProps, + size: useSizeProp, + placeholder: String, + disabled: { + type: Boolean, + default: void 0 + }, + clearable: Boolean, + clearIcon: { + type: iconPropType, + default: circle_close_default + }, + filterable: Boolean, + filterMethod: { + type: definePropType(Function), + default: (node, keyword) => node.text.includes(keyword) + }, + separator: { + type: String, + default: " / " + }, + showAllLevels: { + type: Boolean, + default: true + }, + collapseTags: Boolean, + maxCollapseTags: { + type: Number, + default: 1 + }, + collapseTagsTooltip: Boolean, + maxCollapseTagsTooltipHeight: { type: [String, Number] }, + debounce: { + type: Number, + default: 300 + }, + beforeFilter: { + type: definePropType(Function), + default: () => true + }, + placement: { + type: definePropType(String), + values: Ee, + default: "bottom-start" + }, + fallbackPlacements: { + type: definePropType(Array), + default: [ + "bottom-start", + "bottom", + "top-start", + "top", + "right", + "left" + ] + }, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + teleported: useTooltipContentProps.teleported, + effect: { + type: definePropType(String), + default: "light" + }, + tagType: { + ...tagProps.type, + default: "info" + }, + tagEffect: { + ...tagProps.effect, + default: "light" + }, + validateEvent: { + type: Boolean, + default: true + }, + persistent: { + type: Boolean, + default: true + }, + showCheckedStrategy: { + type: String, + values: ["parent", "child"], + default: "child" + }, + checkOnClickNode: Boolean, + showPrefix: { + type: Boolean, + default: true + }, + ...useEmptyValuesProps + }); + const emitChangeFn$1 = (value) => true; + const cascaderEmits = { + [UPDATE_MODEL_EVENT]: emitChangeFn$1, + [CHANGE_EVENT]: emitChangeFn$1, + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true, + visibleChange: (val) => isBoolean(val), + expandChange: (val) => !!val, + removeTag: (val) => !!val + }; + +//#endregion +//#region ../../packages/components/cascader/src/cascader.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$57 = ["placeholder"]; + const _hoisted_2$34 = ["onClick"]; + var cascader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCascader", + __name: "cascader", + props: cascaderProps, + emits: cascaderEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const popperOptions = { modifiers: [{ + name: "arrowPosition", + enabled: true, + phase: "main", + fn: ({ state }) => { + const { modifiersData, placement } = state; + if ([ + "right", + "left", + "bottom", + "top" + ].includes(placement)) return; + if (modifiersData.arrow) modifiersData.arrow.x = 35; + }, + requires: ["arrow"] + }] }; + const props = __props; + const emit = __emit; + const attrs = (0, vue.useAttrs)(); + const slots = (0, vue.useSlots)(); + let inputInitialHeight = 0; + let pressDeleteCount = 0; + const nsCascader = useNamespace("cascader"); + const nsInput = useNamespace("input"); + const sizeMapPadding = { + small: 7, + default: 11, + large: 15 + }; + const { t } = useLocale(); + const { formItem } = useFormItem(); + const isDisabled = useFormDisabled(); + const { valueOnClear } = useEmptyValues(props); + const { isComposing, handleComposition } = useComposition({ afterComposition(event) { + const text = event.target?.value; + handleInput(text); + } }); + const tooltipRef = (0, vue.ref)(); + const tagTooltipRef = (0, vue.ref)(); + const inputRef = (0, vue.ref)(); + const tagWrapper = (0, vue.ref)(); + const cascaderPanelRef = (0, vue.ref)(); + const suggestionPanel = (0, vue.ref)(); + const popperVisible = (0, vue.ref)(false); + const inputHover = (0, vue.ref)(false); + const filtering = (0, vue.ref)(false); + const inputValue = (0, vue.ref)(""); + const searchInputValue = (0, vue.ref)(""); + const tags = (0, vue.ref)([]); + const suggestions = (0, vue.ref)([]); + const showTagList = (0, vue.computed)(() => { + if (!props.props.multiple) return []; + return props.collapseTags ? tags.value.slice(0, props.maxCollapseTags) : tags.value; + }); + const collapseTagList = (0, vue.computed)(() => { + if (!props.props.multiple) return []; + return props.collapseTags ? tags.value.slice(props.maxCollapseTags) : []; + }); + const cascaderStyle = (0, vue.computed)(() => { + return attrs.style; + }); + const inputPlaceholder = (0, vue.computed)(() => props.placeholder ?? t("el.cascader.placeholder")); + const currentPlaceholder = (0, vue.computed)(() => searchInputValue.value || tags.value.length > 0 || isComposing.value ? "" : inputPlaceholder.value); + const realSize = useFormSize(); + const tagSize = (0, vue.computed)(() => realSize.value === "small" ? "small" : "default"); + const multiple = (0, vue.computed)(() => !!props.props.multiple); + const readonly = (0, vue.computed)(() => !props.filterable || multiple.value); + const searchKeyword = (0, vue.computed)(() => multiple.value ? searchInputValue.value : inputValue.value); + const checkedNodes = (0, vue.computed)(() => cascaderPanelRef.value?.checkedNodes || []); + const { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, { + disabled: isDisabled, + beforeBlur(event) { + return tooltipRef.value?.isFocusInsideContent(event) || tagTooltipRef.value?.isFocusInsideContent(event); + }, + afterBlur() { + if (props.validateEvent) formItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const clearBtnVisible = (0, vue.computed)(() => { + if (!props.clearable || isDisabled.value || filtering.value || !inputHover.value && !isFocused.value) return false; + return !!checkedNodes.value.length; + }); + const presentText = (0, vue.computed)(() => { + const { showAllLevels, separator } = props; + const nodes = checkedNodes.value; + return nodes.length ? multiple.value ? "" : nodes[0].calcText(showAllLevels, separator) : ""; + }); + const validateState = (0, vue.computed)(() => formItem?.validateState || ""); + const checkedValue = (0, vue.computed)({ + get() { + return cloneDeep(props.modelValue); + }, + set(val) { + const value = val ?? valueOnClear.value; + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value); + if (props.validateEvent) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const cascaderKls = (0, vue.computed)(() => { + return [ + nsCascader.b(), + nsCascader.m(realSize.value), + nsCascader.is("disabled", isDisabled.value), + attrs.class + ]; + }); + const cascaderIconKls = (0, vue.computed)(() => { + return [ + nsInput.e("icon"), + "icon-arrow-down", + nsCascader.is("reverse", popperVisible.value) + ]; + }); + const inputClass = (0, vue.computed)(() => nsCascader.is("focus", isFocused.value)); + const contentRef = (0, vue.computed)(() => { + return tooltipRef.value?.popperRef?.contentRef; + }); + const handleClickOutside = (event) => { + if (isFocused.value) handleBlur(new FocusEvent("blur", event)); + togglePopperVisible(false); + }; + const togglePopperVisible = (visible) => { + if (isDisabled.value) return; + visible = visible ?? !popperVisible.value; + if (visible !== popperVisible.value) { + popperVisible.value = visible; + inputRef.value?.input?.setAttribute("aria-expanded", `${visible}`); + if (visible) { + updatePopperPosition(); + cascaderPanelRef.value && (0, vue.nextTick)(cascaderPanelRef.value.scrollToExpandingNode); + } else if (props.filterable) syncPresentTextValue(); + emit("visibleChange", visible); + } + }; + const updatePopperPosition = () => { + (0, vue.nextTick)(() => { + tooltipRef.value?.updatePopper(); + }); + }; + const hideSuggestionPanel = () => { + filtering.value = false; + }; + const genTag = (node) => { + const { showAllLevels, separator } = props; + return { + node, + key: node.uid, + text: node.calcText(showAllLevels, separator), + hitState: false, + closable: !isDisabled.value && !node.isDisabled + }; + }; + const deleteTag = (tag) => { + const node = tag.node; + node.doCheck(false); + cascaderPanelRef.value?.calculateCheckedValue(); + emit("removeTag", node.valueByOption); + }; + const getStrategyCheckedNodes = () => { + switch (props.showCheckedStrategy) { + case "child": return checkedNodes.value; + case "parent": { + const clickedNodes = getCheckedNodes(false); + const clickedNodesValue = clickedNodes.map((o) => o.value); + return clickedNodes.filter((o) => !o.parent || !clickedNodesValue.includes(o.parent.value)); + } + default: return []; + } + }; + const calculatePresentTags = () => { + if (!multiple.value) return; + const nodes = getStrategyCheckedNodes(); + const allTags = []; + nodes.forEach((node) => allTags.push(genTag(node))); + tags.value = allTags; + }; + const calculateSuggestions = () => { + const { filterMethod, showAllLevels, separator } = props; + const res = cascaderPanelRef.value?.getFlattedNodes(!props.props.checkStrictly)?.filter((node) => { + if (node.isDisabled) return false; + node.calcText(showAllLevels, separator); + return filterMethod(node, searchKeyword.value); + }); + if (multiple.value) tags.value.forEach((tag) => { + tag.hitState = false; + }); + filtering.value = true; + suggestions.value = res; + updatePopperPosition(); + }; + const focusFirstNode = () => { + let firstNode; + if (filtering.value && suggestionPanel.value) firstNode = suggestionPanel.value.$el.querySelector(`.${nsCascader.e("suggestion-item")}`); + else firstNode = cascaderPanelRef.value?.$el.querySelector(`.${nsCascader.b("node")}[tabindex="-1"]`); + if (firstNode) { + firstNode.focus(); + if (!filtering.value && firstNode.getAttribute("aria-haspopup") === "true") firstNode.click(); + } + }; + const updateStyle = () => { + const inputInner = inputRef.value?.input; + const tagWrapperEl = tagWrapper.value; + const suggestionPanelEl = suggestionPanel.value?.$el; + if (!isClient || !inputInner) return; + if (suggestionPanelEl) { + const suggestionList = suggestionPanelEl.querySelector(`.${nsCascader.e("suggestion-list")}`); + suggestionList.style.minWidth = `${inputInner.offsetWidth}px`; + } + if (tagWrapperEl) { + const { offsetHeight } = tagWrapperEl; + const height = tags.value.length > 0 ? `${Math.max(offsetHeight, inputInitialHeight) - 2}px` : `${inputInitialHeight}px`; + inputInner.style.height = height; + if (slots.prefix) { + const prefix = inputRef.value?.$el.querySelector(`.${nsInput.e("prefix")}`); + let left = 0; + if (prefix) { + left = prefix.offsetWidth; + if (left > 0) left += sizeMapPadding[realSize.value || "default"]; + } + tagWrapperEl.style.left = `${left}px`; + } else tagWrapperEl.style.left = `0`; + updatePopperPosition(); + } + }; + const getCheckedNodes = (leafOnly) => { + return cascaderPanelRef.value?.getCheckedNodes(leafOnly); + }; + const handleExpandChange = (value) => { + updatePopperPosition(); + emit("expandChange", value); + }; + const handleKeyDown = (e) => { + if (isComposing.value) return; + switch (getEventCode(e)) { + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + togglePopperVisible(); + break; + case EVENT_CODE.down: + togglePopperVisible(true); + (0, vue.nextTick)(focusFirstNode); + e.preventDefault(); + break; + case EVENT_CODE.esc: + if (popperVisible.value === true) { + e.preventDefault(); + e.stopPropagation(); + togglePopperVisible(false); + } + break; + case EVENT_CODE.tab: + togglePopperVisible(false); + break; + } + }; + const handleClear = () => { + cascaderPanelRef.value?.clearCheckedNodes(); + if (!popperVisible.value && props.filterable) syncPresentTextValue(); + togglePopperVisible(false); + emit("clear"); + }; + const syncPresentTextValue = () => { + const { value } = presentText; + inputValue.value = value; + searchInputValue.value = value; + }; + const handleSuggestionClick = (node) => { + const { checked } = node; + if (multiple.value) cascaderPanelRef.value?.handleCheckChange(node, !checked, false); + else { + !checked && cascaderPanelRef.value?.handleCheckChange(node, true, false); + togglePopperVisible(false); + } + }; + const handleSuggestionKeyDown = (e) => { + const target = e.target; + const code = getEventCode(e); + switch (code) { + case EVENT_CODE.up: + case EVENT_CODE.down: + e.preventDefault(); + focusNode(getSibling(target, code === EVENT_CODE.up ? -1 : 1, `.${nsCascader.e("suggestion-item")}[tabindex="-1"]`)); + break; + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + target.click(); + break; + } + }; + const handleDelete = () => { + const lastTag = tags.value[tags.value.length - 1]; + pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1; + if (!lastTag || !pressDeleteCount || props.collapseTags && tags.value.length > 1) return; + if (lastTag.hitState) deleteTag(lastTag); + else lastTag.hitState = true; + }; + const handleFilter = useDebounceFn(() => { + const { value } = searchKeyword; + if (!value) return; + const passed = props.beforeFilter(value); + if (isPromise(passed)) passed.then(calculateSuggestions).catch(() => {}); + else if (passed !== false) calculateSuggestions(); + else hideSuggestionPanel(); + }, (0, vue.computed)(() => props.debounce)); + const handleInput = (val, e) => { + !popperVisible.value && togglePopperVisible(true); + if (e?.isComposing) return; + if (val) handleFilter(); + else { + const passed = props.beforeFilter(""); + if (isPromise(passed)) passed.catch(() => {}); + hideSuggestionPanel(); + } + }; + const getInputInnerHeight = (inputInner) => Number.parseFloat(useCssVar(nsInput.cssVarName("input-height"), inputInner).value) - 2; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + inputRef.value?.blur(); + }; + (0, vue.watch)(filtering, updatePopperPosition); + (0, vue.watch)([ + checkedNodes, + isDisabled, + () => props.collapseTags, + () => props.maxCollapseTags + ], calculatePresentTags); + (0, vue.watch)(tags, () => { + (0, vue.nextTick)(() => updateStyle()); + }); + (0, vue.watch)(realSize, async () => { + await (0, vue.nextTick)(); + const inputInner = inputRef.value.input; + inputInitialHeight = getInputInnerHeight(inputInner) || inputInitialHeight; + updateStyle(); + }); + (0, vue.watch)(presentText, syncPresentTextValue, { immediate: true }); + (0, vue.watch)(() => popperVisible.value, (val) => { + if (val && props.props.lazy && props.props.lazyLoad) cascaderPanelRef.value?.loadLazyRootNodes(); + }); + (0, vue.onMounted)(() => { + const inputInner = inputRef.value.input; + const inputInnerHeight = getInputInnerHeight(inputInner); + inputInitialHeight = inputInner.offsetHeight || inputInnerHeight; + useResizeObserver(inputInner, updateStyle); + }); + __expose({ + getCheckedNodes, + cascaderPanelRef, + togglePopperVisible, + contentRef, + presentText, + focus, + blur + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), { + ref_key: "tooltipRef", + ref: tooltipRef, + visible: popperVisible.value, + teleported: __props.teleported, + "popper-class": [(0, vue.unref)(nsCascader).e("dropdown"), __props.popperClass], + "popper-style": __props.popperStyle, + "popper-options": popperOptions, + "fallback-placements": __props.fallbackPlacements, + "stop-popper-mouse-event": false, + "gpu-acceleration": false, + placement: __props.placement, + transition: `${(0, vue.unref)(nsCascader).namespace.value}-zoom-in-top`, + effect: __props.effect, + pure: "", + persistent: __props.persistent, + onHide: hideSuggestionPanel + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "wrapperRef", + ref: wrapperRef, + class: (0, vue.normalizeClass)(cascaderKls.value), + style: (0, vue.normalizeStyle)(cascaderStyle.value), + onClick: _cache[8] || (_cache[8] = () => togglePopperVisible(readonly.value ? void 0 : true)), + onKeydown: handleKeyDown, + onMouseenter: _cache[9] || (_cache[9] = ($event) => inputHover.value = true), + onMouseleave: _cache[10] || (_cache[10] = ($event) => inputHover.value = false) + }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + ref_key: "inputRef", + ref: inputRef, + modelValue: inputValue.value, + "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => inputValue.value = $event), + placeholder: currentPlaceholder.value, + readonly: readonly.value, + disabled: (0, vue.unref)(isDisabled), + "validate-event": false, + size: (0, vue.unref)(realSize), + class: (0, vue.normalizeClass)(inputClass.value), + tabindex: multiple.value && __props.filterable && !(0, vue.unref)(isDisabled) ? -1 : void 0, + onCompositionstart: (0, vue.unref)(handleComposition), + onCompositionupdate: (0, vue.unref)(handleComposition), + onCompositionend: (0, vue.unref)(handleComposition), + onInput: handleInput + }, (0, vue.createSlots)({ + suffix: (0, vue.withCtx)(() => [clearBtnVisible.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: "clear", + class: (0, vue.normalizeClass)([(0, vue.unref)(nsInput).e("icon"), "icon-circle-close"]), + onClick: (0, vue.withModifiers)(handleClear, ["stop"]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.clearIcon)))]), + _: 1 + }, 8, ["class"])) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: "arrow-down", + class: (0, vue.normalizeClass)(cascaderIconKls.value), + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(($event) => togglePopperVisible(), ["stop"])) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_down_default))]), + _: 1 + }, 8, ["class"]))]), + _: 2 + }, [_ctx.$slots.prefix ? { + name: "prefix", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "prefix")]), + key: "0" + } : void 0]), 1032, [ + "modelValue", + "placeholder", + "readonly", + "disabled", + "size", + "class", + "tabindex", + "onCompositionstart", + "onCompositionupdate", + "onCompositionend" + ]), multiple.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref_key: "tagWrapper", + ref: tagWrapper, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsCascader).e("tags"), (0, vue.unref)(nsCascader).is("validate", Boolean(validateState.value))]) + }, [ + (0, vue.renderSlot)(_ctx.$slots, "tag", { + data: tags.value, + deleteTag + }, () => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(showTagList.value, (tag) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTag), { + key: tag.key, + type: __props.tagType, + size: tagSize.value, + effect: __props.tagEffect, + hit: tag.hitState, + closable: tag.closable, + "disable-transitions": "", + onClose: ($event) => deleteTag(tag) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(tag.text), 1)]), + _: 2 + }, 1032, [ + "type", + "size", + "effect", + "hit", + "closable", + "onClose" + ]); + }), 128))]), + __props.collapseTags && tags.value.length > __props.maxCollapseTags ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), { + key: 0, + ref_key: "tagTooltipRef", + ref: tagTooltipRef, + disabled: popperVisible.value || !__props.collapseTagsTooltip, + "fallback-placements": [ + "bottom", + "top", + "right", + "left" + ], + placement: "bottom", + "popper-class": __props.popperClass, + "popper-style": __props.popperStyle, + effect: __props.effect, + persistent: __props.persistent + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(ElTag), { + closable: false, + size: tagSize.value, + type: __props.tagType, + effect: __props.tagEffect, + "disable-transitions": "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("tags-text")) }, " + " + (0, vue.toDisplayString)(tags.value.length - __props.maxCollapseTags), 3)]), + _: 1 + }, 8, [ + "size", + "type", + "effect" + ])]), + content: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(ElScrollbar), { "max-height": __props.maxCollapseTagsTooltipHeight }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("collapse-tags")) }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(collapseTagList.value, (tag, idx) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: idx, + class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("collapse-tag")) + }, [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTag), { + key: tag.key, + class: "in-tooltip", + type: __props.tagType, + size: tagSize.value, + effect: __props.tagEffect, + hit: tag.hitState, + closable: tag.closable, + "disable-transitions": "", + onClose: ($event) => deleteTag(tag) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(tag.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" + ])) : (0, vue.createCommentVNode)("v-if", true), + __props.filterable && !(0, vue.unref)(isDisabled) ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("input", { + key: 1, + "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => searchInputValue.value = $event), + type: "text", + class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("search-input")), + placeholder: presentText.value ? "" : inputPlaceholder.value, + onInput: _cache[3] || (_cache[3] = (e) => handleInput(searchInputValue.value, e)), + onClick: _cache[4] || (_cache[4] = (0, vue.withModifiers)(($event) => togglePopperVisible(true), ["stop"])), + onKeydown: (0, vue.withKeys)(handleDelete, ["delete"]), + onCompositionstart: _cache[5] || (_cache[5] = (...args) => (0, vue.unref)(handleComposition) && (0, vue.unref)(handleComposition)(...args)), + onCompositionupdate: _cache[6] || (_cache[6] = (...args) => (0, vue.unref)(handleComposition) && (0, vue.unref)(handleComposition)(...args)), + onCompositionend: _cache[7] || (_cache[7] = (...args) => (0, vue.unref)(handleComposition) && (0, vue.unref)(handleComposition)(...args)) + }, null, 42, _hoisted_1$57)), [[vue.vModelText, searchInputValue.value]]) : (0, vue.createCommentVNode)("v-if", true) + ], 2)) : (0, vue.createCommentVNode)("v-if", true)], 38)), [[ + (0, vue.unref)(ClickOutside), + handleClickOutside, + contentRef.value + ]])]), + content: (0, vue.withCtx)(() => [ + _ctx.$slots.header ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("header")), + onClick: _cache[11] || (_cache[11] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "header")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElCascaderPanel), { + ref_key: "cascaderPanelRef", + ref: cascaderPanelRef, + modelValue: checkedValue.value, + "onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => checkedValue.value = $event), + options: __props.options, + props: props.props, + border: false, + "render-label": _ctx.$slots.default, + onExpandChange: handleExpandChange, + onClose: _cache[13] || (_cache[13] = ($event) => _ctx.$nextTick(() => togglePopperVisible(false))) + }, { + empty: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "empty")]), + _: 3 + }, 8, [ + "modelValue", + "options", + "props", + "render-label" + ]), [[vue.vShow, !filtering.value]]), + __props.filterable ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElScrollbar), { + key: 1, + ref_key: "suggestionPanel", + ref: suggestionPanel, + tag: "ul", + class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("suggestion-panel")), + "view-class": (0, vue.unref)(nsCascader).e("suggestion-list"), + onKeydown: handleSuggestionKeyDown + }, { + default: (0, vue.withCtx)(() => [suggestions.value.length ? ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, (0, vue.renderList)(suggestions.value, (item) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: item.uid, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsCascader).e("suggestion-item"), (0, vue.unref)(nsCascader).is("checked", item.checked)]), + tabindex: -1, + onClick: ($event) => handleSuggestionClick(item) + }, [(0, vue.renderSlot)(_ctx.$slots, "suggestion-item", { item }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(item.text), 1), item.checked ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(check_default))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true)])], 10, _hoisted_2$34); + }), 128)) : (0, vue.renderSlot)(_ctx.$slots, "empty", { key: 1 }, () => [(0, vue.createElementVNode)("li", { class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("empty-text")) }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.cascader.noMatch")), 3)])]), + _: 3 + }, 8, ["class", "view-class"])), [[vue.vShow, filtering.value]]) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(nsCascader).e("footer")), + onClick: _cache[14] || (_cache[14] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ]), + _: 3 + }, 8, [ + "visible", + "teleported", + "popper-class", + "popper-style", + "fallback-placements", + "placement", + "transition", + "effect", + "persistent" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/cascader/src/cascader.vue + var cascader_default = cascader_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/cascader/index.ts + const ElCascader = withInstall(cascader_default); + +//#endregion +//#region ../../packages/components/check-tag/src/check-tag.ts +/** + * @deprecated Removed after 3.0.0, Use `CheckTagProps` instead. + */ + const checkTagProps = buildProps({ + checked: Boolean, + disabled: Boolean, + type: { + type: String, + values: [ + "primary", + "success", + "info", + "warning", + "danger" + ], + default: "primary" + } + }); + const checkTagEmits = { + "update:checked": (value) => isBoolean(value), + [CHANGE_EVENT]: (value) => isBoolean(value) + }; + +//#endregion +//#region ../../packages/components/check-tag/src/check-tag.vue?vue&type=script&setup=true&lang.ts + var check_tag_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCheckTag", + __name: "check-tag", + props: checkTagProps, + emits: checkTagEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("check-tag"); + const containerKls = (0, vue.computed)(() => [ + ns.b(), + ns.is("checked", props.checked), + ns.is("disabled", props.disabled), + ns.m(props.type || "primary") + ]); + const handleChange = () => { + if (props.disabled) return; + const checked = !props.checked; + emit(CHANGE_EVENT, checked); + emit("update:checked", checked); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + class: (0, vue.normalizeClass)(containerKls.value), + onClick: handleChange + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/check-tag/src/check-tag.vue + var check_tag_default = check_tag_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/check-tag/index.ts + const ElCheckTag = withInstall(check_tag_default); + +//#endregion +//#region ../../packages/components/col/src/col.ts +/** + * @deprecated Removed after 3.0.0, Use `ColProps` instead. + */ + const colProps = buildProps({ + 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: definePropType([Number, Object]), + default: () => mutable({}) + }, + sm: { + type: definePropType([Number, Object]), + default: () => mutable({}) + }, + md: { + type: definePropType([Number, Object]), + default: () => mutable({}) + }, + lg: { + type: definePropType([Number, Object]), + default: () => mutable({}) + }, + xl: { + type: definePropType([Number, Object]), + default: () => mutable({}) + } + }); + +//#endregion +//#region ../../packages/components/row/src/row.ts + const RowJustify = [ + "start", + "center", + "end", + "space-around", + "space-between", + "space-evenly" + ]; + const RowAlign = [ + "top", + "middle", + "bottom" + ]; + /** + * @deprecated Removed after 3.0.0, Use `RowProps` instead. + */ + const rowProps = buildProps({ + tag: { + type: String, + default: "div" + }, + gutter: { + type: Number, + default: 0 + }, + justify: { + type: String, + values: RowJustify, + default: "start" + }, + align: { + type: String, + values: RowAlign + } + }); + +//#endregion +//#region ../../packages/components/row/src/constants.ts + const rowContextKey = Symbol("rowContextKey"); + +//#endregion +//#region ../../packages/components/row/src/row.vue?vue&type=script&setup=true&lang.ts + var row_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElRow", + __name: "row", + props: rowProps, + setup(__props) { + const props = __props; + const ns = useNamespace("row"); + (0, vue.provide)(rowContextKey, { gutter: (0, vue.computed)(() => props.gutter) }); + const style = (0, vue.computed)(() => { + const styles = {}; + if (!props.gutter) return styles; + styles.marginRight = styles.marginLeft = `-${props.gutter / 2}px`; + return styles; + }); + const rowKls = (0, vue.computed)(() => [ + ns.b(), + ns.is(`justify-${props.justify}`, props.justify !== "start"), + ns.is(`align-${props.align}`, !!props.align) + ]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.tag), { + class: (0, vue.normalizeClass)(rowKls.value), + style: (0, vue.normalizeStyle)(style.value) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["class", "style"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/row/src/row.vue + var row_default = row_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/row/index.ts + const ElRow = withInstall(row_default); + +//#endregion +//#region ../../packages/components/col/src/col.vue?vue&type=script&setup=true&lang.ts + var col_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCol", + __name: "col", + props: colProps, + setup(__props) { + const props = __props; + const { gutter } = (0, vue.inject)(rowContextKey, { gutter: (0, vue.computed)(() => 0) }); + const ns = useNamespace("col"); + const style = (0, vue.computed)(() => { + const styles = {}; + if (gutter.value) styles.paddingLeft = styles.paddingRight = `${gutter.value / 2}px`; + return styles; + }); + const colKls = (0, vue.computed)(() => { + const classes = []; + [ + "span", + "offset", + "pull", + "push" + ].forEach((prop) => { + const size = props[prop]; + if (isNumber(size)) { + if (prop === "span") classes.push(ns.b(`${props[prop]}`)); + else if (size > 0) classes.push(ns.b(`${prop}-${props[prop]}`)); + } + }); + [ + "xs", + "sm", + "md", + "lg", + "xl" + ].forEach((size) => { + if (isNumber(props[size])) classes.push(ns.b(`${size}-${props[size]}`)); + else if (isObject$1(props[size])) Object.entries(props[size]).forEach(([prop, sizeProp]) => { + classes.push(prop !== "span" ? ns.b(`${size}-${prop}-${sizeProp}`) : ns.b(`${size}-${sizeProp}`)); + }); + }); + if (gutter.value) classes.push(ns.is("guttered")); + return [ns.b(), classes]; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.tag), { + class: (0, vue.normalizeClass)(colKls.value), + style: (0, vue.normalizeStyle)(style.value) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["class", "style"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/col/src/col.vue + var col_default = col_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/col/index.ts + const ElCol = withInstall(col_default); + +//#endregion +//#region ../../packages/components/collapse/src/collapse.ts + const emitChangeFn = (value) => isNumber(value) || isString(value) || isArray$1(value); + /** + * @deprecated Removed after 3.0.0, Use `CollapseProps` instead. + */ + const collapseProps = buildProps({ + accordion: Boolean, + modelValue: { + type: definePropType([ + Array, + String, + Number + ]), + default: () => mutable([]) + }, + expandIconPosition: { + type: definePropType([String]), + default: "right" + }, + beforeCollapse: { type: definePropType(Function) } + }); + const collapseEmits = { + [UPDATE_MODEL_EVENT]: emitChangeFn, + [CHANGE_EVENT]: emitChangeFn + }; + +//#endregion +//#region ../../packages/components/collapse/src/constants.ts + const collapseContextKey = Symbol("collapseContextKey"); + +//#endregion +//#region ../../packages/components/collapse/src/use-collapse.ts + const SCOPE$4 = "ElCollapse"; + const useCollapse = (props, emit) => { + const activeNames = (0, vue.ref)(castArray$1(props.modelValue)); + const setActiveNames = (_activeNames) => { + activeNames.value = _activeNames; + const value = props.accordion ? activeNames.value[0] : activeNames.value; + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value); + }; + const handleChange = (name) => { + if (props.accordion) setActiveNames([activeNames.value[0] === name ? "" : name]); + else { + const _activeNames = [...activeNames.value]; + const index = _activeNames.indexOf(name); + if (index > -1) _activeNames.splice(index, 1); + else _activeNames.push(name); + setActiveNames(_activeNames); + } + }; + const handleItemClick = async (name) => { + const { beforeCollapse } = props; + if (!beforeCollapse) { + handleChange(name); + return; + } + const shouldChange = beforeCollapse(name); + if (![isPromise(shouldChange), isBoolean(shouldChange)].includes(true)) throwError(SCOPE$4, "beforeCollapse must return type `Promise` or `boolean`"); + if (isPromise(shouldChange)) shouldChange.then((result) => { + if (result !== false) handleChange(name); + }).catch((e) => { + /* @__PURE__ */ debugWarn(SCOPE$4, `some error occurred: ${e}`); + }); + else if (shouldChange) handleChange(name); + }; + (0, vue.watch)(() => props.modelValue, () => activeNames.value = castArray$1(props.modelValue), { deep: true }); + (0, vue.provide)(collapseContextKey, { + activeNames, + handleItemClick + }); + return { + activeNames, + setActiveNames + }; + }; + const useCollapseDOM = (props) => { + const ns = useNamespace("collapse"); + return { rootKls: (0, vue.computed)(() => [ns.b(), ns.b(`icon-position-${props.expandIconPosition}`)]) }; + }; + +//#endregion +//#region ../../packages/components/collapse/src/collapse.vue?vue&type=script&setup=true&lang.ts + var collapse_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCollapse", + __name: "collapse", + props: collapseProps, + emits: collapseEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const { activeNames, setActiveNames } = useCollapse(props, __emit); + const { rootKls } = useCollapseDOM(props); + __expose({ + activeNames, + setActiveNames + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/collapse/src/collapse.vue + var collapse_default = collapse_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/collapse/src/collapse-item.ts +/** + * @deprecated Removed after 3.0.0, Use `CollapseItemProps` instead. + */ + const collapseItemProps = buildProps({ + title: { + type: String, + default: "" + }, + name: { + type: definePropType([String, Number]), + default: void 0 + }, + icon: { + type: iconPropType, + default: arrow_right_default + }, + disabled: Boolean + }); + +//#endregion +//#region ../../packages/components/collapse-transition/src/collapse-transition.vue?vue&type=script&setup=true&lang.ts + var collapse_transition_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCollapseTransition", + __name: "collapse-transition", + setup(__props) { + const ns = useNamespace("collapse-transition"); + const reset = (el) => { + el.style.maxHeight = ""; + el.style.overflow = el.dataset.oldOverflow; + el.style.paddingTop = el.dataset.oldPaddingTop; + el.style.paddingBottom = el.dataset.oldPaddingBottom; + }; + const on = { + beforeEnter(el) { + if (!el.dataset) el.dataset = {}; + el.dataset.oldPaddingTop = el.style.paddingTop; + el.dataset.oldPaddingBottom = el.style.paddingBottom; + if (el.style.height) el.dataset.elExistsHeight = el.style.height; + el.style.maxHeight = 0; + el.style.paddingTop = 0; + el.style.paddingBottom = 0; + }, + enter(el) { + requestAnimationFrame(() => { + el.dataset.oldOverflow = el.style.overflow; + if (el.dataset.elExistsHeight) el.style.maxHeight = el.dataset.elExistsHeight; + else if (el.scrollHeight !== 0) el.style.maxHeight = `${el.scrollHeight}px`; + else el.style.maxHeight = 0; + el.style.paddingTop = el.dataset.oldPaddingTop; + el.style.paddingBottom = el.dataset.oldPaddingBottom; + el.style.overflow = "hidden"; + }); + }, + afterEnter(el) { + el.style.maxHeight = ""; + el.style.overflow = el.dataset.oldOverflow; + }, + enterCancelled(el) { + reset(el); + }, + beforeLeave(el) { + if (!el.dataset) el.dataset = {}; + el.dataset.oldPaddingTop = el.style.paddingTop; + el.dataset.oldPaddingBottom = el.style.paddingBottom; + el.dataset.oldOverflow = el.style.overflow; + el.style.maxHeight = `${el.scrollHeight}px`; + el.style.overflow = "hidden"; + }, + leave(el) { + if (el.scrollHeight !== 0) { + el.style.maxHeight = 0; + el.style.paddingTop = 0; + el.style.paddingBottom = 0; + } + }, + afterLeave(el) { + reset(el); + }, + leaveCancelled(el) { + reset(el); + } + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, (0, vue.mergeProps)({ name: (0, vue.unref)(ns).b() }, (0, vue.toHandlers)(on)), { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 16, ["name"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/collapse-transition/src/collapse-transition.vue + var collapse_transition_default = collapse_transition_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/collapse-transition/index.ts + const ElCollapseTransition = withInstall(collapse_transition_default); + +//#endregion +//#region ../../packages/components/collapse/src/use-collapse-item.ts + const useCollapseItem = (props) => { + const collapse = (0, vue.inject)(collapseContextKey); + const { namespace } = useNamespace("collapse"); + const focusing = (0, vue.ref)(false); + const isClick = (0, vue.ref)(false); + const idInjection = useIdInjection(); + const id = (0, vue.computed)(() => idInjection.current++); + const name = (0, vue.computed)(() => { + return props.name ?? `${namespace.value}-id-${idInjection.prefix}-${(0, vue.unref)(id)}`; + }); + const isActive = (0, vue.computed)(() => collapse?.activeNames.value.includes((0, vue.unref)(name))); + const handleFocus = () => { + setTimeout(() => { + if (!isClick.value) focusing.value = true; + else isClick.value = false; + }, 50); + }; + const handleHeaderClick = (e) => { + if (props.disabled) return; + if (e.target?.closest("input, textarea, select")) return; + collapse?.handleItemClick((0, vue.unref)(name)); + focusing.value = false; + isClick.value = true; + }; + const handleEnterClick = (e) => { + if (e.target?.closest("input, textarea, select")) return; + e.preventDefault(); + collapse?.handleItemClick((0, vue.unref)(name)); + }; + return { + focusing, + id, + isActive, + handleFocus, + handleHeaderClick, + handleEnterClick + }; + }; + const useCollapseItemDOM = (props, { focusing, isActive, id }) => { + const ns = useNamespace("collapse"); + const rootKls = (0, vue.computed)(() => [ + ns.b("item"), + ns.is("active", (0, vue.unref)(isActive)), + ns.is("disabled", props.disabled) + ]); + const headKls = (0, vue.computed)(() => [ + ns.be("item", "header"), + ns.is("active", (0, vue.unref)(isActive)), + { focusing: (0, vue.unref)(focusing) && !props.disabled } + ]); + const arrowKls = (0, vue.computed)(() => [ns.be("item", "arrow"), ns.is("active", (0, vue.unref)(isActive))]); + return { + itemTitleKls: (0, vue.computed)(() => [ns.be("item", "title")]), + arrowKls, + headKls, + rootKls, + itemWrapperKls: (0, vue.computed)(() => ns.be("item", "wrap")), + itemContentKls: (0, vue.computed)(() => ns.be("item", "content")), + scopedContentId: (0, vue.computed)(() => ns.b(`content-${(0, vue.unref)(id)}`)), + scopedHeadId: (0, vue.computed)(() => ns.b(`head-${(0, vue.unref)(id)}`)) + }; + }; + +//#endregion +//#region ../../packages/components/collapse/src/collapse-item.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$56 = [ + "id", + "aria-expanded", + "aria-controls", + "aria-describedby", + "tabindex", + "aria-disabled" + ]; + const _hoisted_2$33 = [ + "id", + "aria-hidden", + "aria-labelledby" + ]; + var collapse_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCollapseItem", + __name: "collapse-item", + props: collapseItemProps, + setup(__props, { expose: __expose }) { + const props = __props; + const { focusing, id, isActive, handleFocus, handleHeaderClick, handleEnterClick } = useCollapseItem(props); + const { arrowKls, headKls, rootKls, itemTitleKls, itemWrapperKls, itemContentKls, scopedContentId, scopedHeadId } = useCollapseItemDOM(props, { + focusing, + isActive, + id + }); + __expose({ isActive }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)) }, [(0, vue.createElementVNode)("div", { + id: (0, vue.unref)(scopedHeadId), + class: (0, vue.normalizeClass)((0, vue.unref)(headKls)), + "aria-expanded": (0, vue.unref)(isActive), + "aria-controls": (0, vue.unref)(scopedContentId), + "aria-describedby": (0, vue.unref)(scopedContentId), + tabindex: __props.disabled ? void 0 : 0, + "aria-disabled": __props.disabled, + role: "button", + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleHeaderClick) && (0, vue.unref)(handleHeaderClick)(...args)), + onKeydown: _cache[1] || (_cache[1] = (0, vue.withKeys)((0, vue.withModifiers)((...args) => (0, vue.unref)(handleEnterClick) && (0, vue.unref)(handleEnterClick)(...args), ["stop"]), ["space", "enter"])), + onFocus: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(handleFocus) && (0, vue.unref)(handleFocus)(...args)), + onBlur: _cache[3] || (_cache[3] = ($event) => focusing.value = false) + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(itemTitleKls)) }, [(0, vue.renderSlot)(_ctx.$slots, "title", { isActive: (0, vue.unref)(isActive) }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 2), (0, vue.renderSlot)(_ctx.$slots, "icon", { isActive: (0, vue.unref)(isActive) }, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(arrowKls)) }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + }, 8, ["class"])])], 42, _hoisted_1$56), (0, vue.createVNode)((0, vue.unref)(ElCollapseTransition), null, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("div", { + id: (0, vue.unref)(scopedContentId), + role: "region", + class: (0, vue.normalizeClass)((0, vue.unref)(itemWrapperKls)), + "aria-hidden": !(0, vue.unref)(isActive), + "aria-labelledby": (0, vue.unref)(scopedHeadId) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(itemContentKls)) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)], 10, _hoisted_2$33), [[vue.vShow, (0, vue.unref)(isActive)]])]), + _: 3 + })], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/collapse/src/collapse-item.vue + var collapse_item_default = collapse_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/collapse/index.ts + const ElCollapse = withInstall(collapse_default, { CollapseItem: collapse_item_default }); + const ElCollapseItem = withNoopInstall(collapse_item_default); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/color-picker-panel.ts +/** + * @deprecated Removed after 3.0.0, Use `ColorPickerPanelProps` instead. + */ + const colorPickerPanelProps = buildProps({ + modelValue: { + type: definePropType(String), + default: void 0 + }, + border: { + type: Boolean, + default: true + }, + showAlpha: Boolean, + colorFormat: { type: definePropType(String) }, + disabled: Boolean, + predefine: { type: definePropType(Array) }, + validateEvent: { + type: Boolean, + default: true + }, + hueSliderClass: { type: definePropType([ + String, + Array, + Object + ]) }, + hueSliderStyle: { type: definePropType([ + String, + Array, + Object + ]) } + }); + const colorPickerPanelEmits = { [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNil(val) }; + const ROOT_COMMON_COLOR_INJECTION_KEY = Symbol("colorCommonPickerKey"); + const colorPickerPanelContextKey = Symbol("colorPickerPanelContextKey"); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/props/slider.ts +/** + * @deprecated Removed after 3.0.0, Use `AlphaSliderProps` instead. + */ + const alphaSliderProps = buildProps({ + color: { + type: definePropType(Object), + required: true + }, + vertical: Boolean, + disabled: Boolean + }); + /** + * @deprecated Removed after 3.0.0, Use `HueSliderProps` instead. + */ + const hueSliderProps = alphaSliderProps; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/utils/draggable.ts + let isDragging = false; + function draggable(element, options) { + if (!isClient) return; + const moveFn = function(event) { + options.drag?.(event); + }; + const upFn = function(event) { + document.removeEventListener("mousemove", moveFn); + document.removeEventListener("mouseup", upFn); + document.removeEventListener("touchmove", moveFn); + document.removeEventListener("touchend", upFn); + document.onselectstart = null; + document.ondragstart = null; + isDragging = false; + options.end?.(event); + }; + const downFn = function(event) { + if (isDragging) return; + document.onselectstart = () => false; + document.ondragstart = () => false; + document.addEventListener("mousemove", moveFn); + document.addEventListener("mouseup", upFn); + document.addEventListener("touchmove", moveFn); + document.addEventListener("touchend", upFn); + isDragging = true; + options.start?.(event); + }; + element.addEventListener("mousedown", downFn); + element.addEventListener("touchstart", downFn, { passive: false }); + } + +//#endregion +//#region ../../packages/components/color-picker-panel/src/composables/use-slider.ts + const useSlider = (props, { key, minValue, maxValue }) => { + const instance = (0, vue.getCurrentInstance)(); + const thumb = (0, vue.shallowRef)(); + const bar = (0, vue.shallowRef)(); + const currentValue = (0, vue.computed)(() => props.color.get(key)); + function handleClick(event) { + if (props.disabled) return; + if (event.target !== thumb.value) handleDrag(event); + thumb.value?.focus(); + } + function handleDrag(event) { + if (!bar.value || !thumb.value || props.disabled) return; + const rect = instance.vnode.el.getBoundingClientRect(); + const { clientX, clientY } = getClientXY(event); + let value; + if (!props.vertical) { + let left = clientX - rect.left; + left = Math.max(thumb.value.offsetWidth / 2, left); + left = Math.min(left, rect.width - thumb.value.offsetWidth / 2); + value = Math.round((left - thumb.value.offsetWidth / 2) / (rect.width - thumb.value.offsetWidth) * maxValue); + } else { + let top = clientY - rect.top; + top = Math.max(thumb.value.offsetHeight / 2, top); + top = Math.min(top, rect.height - thumb.value.offsetHeight / 2); + value = Math.round((top - thumb.value.offsetHeight / 2) / (rect.height - thumb.value.offsetHeight) * maxValue); + } + props.color.set(key, value); + } + function handleKeydown(event) { + if (props.disabled) return; + const { shiftKey } = event; + const code = getEventCode(event); + const step = shiftKey ? 10 : 1; + const reverse = key === "hue" ? -1 : 1; + let isPreventDefault = true; + switch (code) { + case EVENT_CODE.left: + case EVENT_CODE.down: + incrementPosition(-step * reverse); + break; + case EVENT_CODE.right: + case EVENT_CODE.up: + incrementPosition(step * reverse); + break; + case EVENT_CODE.home: + props.color.set(key, key === "hue" ? maxValue : minValue); + break; + case EVENT_CODE.end: + props.color.set(key, key === "hue" ? minValue : maxValue); + break; + case EVENT_CODE.pageDown: + incrementPosition(-4 * reverse); + break; + case EVENT_CODE.pageUp: + incrementPosition(4 * reverse); + break; + default: + isPreventDefault = false; + break; + } + isPreventDefault && event.preventDefault(); + } + function incrementPosition(step) { + let next = currentValue.value + step; + next = next < minValue ? minValue : next > maxValue ? maxValue : next; + props.color.set(key, next); + } + return { + thumb, + bar, + currentValue, + handleDrag, + handleClick, + handleKeydown + }; + }; + const useSliderDOM = (props, { namespace, maxValue, bar, thumb, currentValue, handleDrag, getBackground }) => { + const instance = (0, vue.getCurrentInstance)(); + const ns = useNamespace(namespace); + const thumbLeft = (0, vue.ref)(0); + const thumbTop = (0, vue.ref)(0); + const background = (0, vue.ref)(); + function getThumbLeft() { + if (!thumb.value) return 0; + if (props.vertical) return 0; + const el = instance.vnode.el; + const value = currentValue.value; + if (!el) return 0; + return Math.round(value * (el.offsetWidth - thumb.value.offsetWidth / 2) / maxValue); + } + function getThumbTop() { + if (!thumb.value) return 0; + const el = instance.vnode.el; + if (!props.vertical) return 0; + const value = currentValue.value; + if (!el) return 0; + return Math.round(value * (el.offsetHeight - thumb.value.offsetHeight / 2) / maxValue); + } + function update() { + thumbLeft.value = getThumbLeft(); + thumbTop.value = getThumbTop(); + background.value = getBackground?.(); + } + (0, vue.onMounted)(() => { + if (!bar.value || !thumb.value) return; + const dragConfig = { + drag: (event) => { + handleDrag(event); + }, + end: (event) => { + handleDrag(event); + } + }; + draggable(bar.value, dragConfig); + draggable(thumb.value, dragConfig); + update(); + }); + (0, vue.watch)(currentValue, () => update()); + (0, vue.watch)(() => props.color.value, () => update()); + const rootKls = (0, vue.computed)(() => [ + ns.b(), + ns.is("vertical", props.vertical), + ns.is("disabled", props.disabled) + ]); + const barKls = (0, vue.computed)(() => ns.e("bar")); + const thumbKls = (0, vue.computed)(() => ns.e("thumb")); + return { + rootKls, + barKls, + barStyle: (0, vue.computed)(() => ({ background: background.value })), + thumbKls, + thumbStyle: (0, vue.computed)(() => ({ + left: addUnit(thumbLeft.value), + top: addUnit(thumbTop.value) + })), + thumbLeft, + thumbTop, + update + }; + }; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/alpha-slider.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$55 = [ + "aria-label", + "aria-valuenow", + "aria-valuetext", + "aria-orientation", + "tabindex", + "aria-disabled" + ]; + const minValue$1 = 0; + const maxValue$1 = 100; + var alpha_slider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElColorAlphaSlider", + __name: "alpha-slider", + props: alphaSliderProps, + setup(__props, { expose: __expose }) { + const props = __props; + const { currentValue, bar, thumb, handleDrag, handleClick, handleKeydown } = useSlider(props, { + key: "alpha", + minValue: minValue$1, + maxValue: maxValue$1 + }); + const { rootKls, barKls, barStyle, thumbKls, thumbStyle, update } = useSliderDOM(props, { + namespace: "color-alpha-slider", + maxValue: maxValue$1, + currentValue, + bar, + thumb, + handleDrag, + getBackground + }); + const { t } = useLocale(); + const ariaLabel = (0, vue.computed)(() => t("el.colorpicker.alphaLabel")); + const ariaValuetext = (0, vue.computed)(() => { + return t("el.colorpicker.alphaDescription", { + alpha: currentValue.value, + color: props.color.value + }); + }); + function getBackground() { + if (props.color && props.color.value) { + const { r, g, b } = props.color.toRgb(); + return `linear-gradient(to right, rgba(${r}, ${g}, ${b}, 0) 0%, rgba(${r}, ${g}, ${b}, 1) 100%)`; + } + return ""; + } + __expose({ + update, + bar, + thumb + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)) }, [(0, vue.createElementVNode)("div", { + ref_key: "bar", + ref: bar, + class: (0, vue.normalizeClass)((0, vue.unref)(barKls)), + style: (0, vue.normalizeStyle)((0, vue.unref)(barStyle)), + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleClick) && (0, vue.unref)(handleClick)(...args)) + }, null, 6), (0, vue.createElementVNode)("div", { + ref_key: "thumb", + ref: thumb, + class: (0, vue.normalizeClass)((0, vue.unref)(thumbKls)), + style: (0, vue.normalizeStyle)((0, vue.unref)(thumbStyle)), + "aria-label": ariaLabel.value, + "aria-valuenow": (0, vue.unref)(currentValue), + "aria-valuetext": ariaValuetext.value, + "aria-orientation": __props.vertical ? "vertical" : "horizontal", + "aria-valuemin": minValue$1, + "aria-valuemax": maxValue$1, + role: "slider", + tabindex: __props.disabled ? void 0 : 0, + "aria-disabled": __props.disabled, + onKeydown: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleKeydown) && (0, vue.unref)(handleKeydown)(...args)) + }, null, 46, _hoisted_1$55)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/alpha-slider.vue + var alpha_slider_default = alpha_slider_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/hue-slider.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$54 = [ + "aria-label", + "aria-valuenow", + "aria-valuetext", + "aria-orientation", + "tabindex", + "aria-disabled" + ]; + const minValue = 0; + const maxValue = 360; + var hue_slider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElColorHueSlider", + __name: "hue-slider", + props: hueSliderProps, + setup(__props, { expose: __expose }) { + const props = __props; + const { currentValue, bar, thumb, handleDrag, handleClick, handleKeydown } = useSlider(props, { + key: "hue", + minValue, + maxValue + }); + const { rootKls, barKls, thumbKls, thumbStyle, thumbTop, update } = useSliderDOM(props, { + namespace: "color-hue-slider", + maxValue, + currentValue, + bar, + thumb, + handleDrag + }); + const { t } = useLocale(); + const ariaLabel = (0, vue.computed)(() => t("el.colorpicker.hueLabel")); + const ariaValuetext = (0, vue.computed)(() => { + return t("el.colorpicker.hueDescription", { + hue: currentValue.value, + color: props.color.value + }); + }); + __expose({ + bar, + thumb, + thumbTop, + update + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)) }, [(0, vue.createElementVNode)("div", { + ref_key: "bar", + ref: bar, + class: (0, vue.normalizeClass)((0, vue.unref)(barKls)), + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleClick) && (0, vue.unref)(handleClick)(...args)) + }, null, 2), (0, vue.createElementVNode)("div", { + ref_key: "thumb", + ref: thumb, + class: (0, vue.normalizeClass)((0, vue.unref)(thumbKls)), + style: (0, vue.normalizeStyle)((0, vue.unref)(thumbStyle)), + "aria-label": ariaLabel.value, + "aria-valuenow": (0, vue.unref)(currentValue), + "aria-valuetext": ariaValuetext.value, + "aria-orientation": __props.vertical ? "vertical" : "horizontal", + "aria-valuemin": minValue, + "aria-valuemax": maxValue, + role: "slider", + tabindex: __props.disabled ? void 0 : 0, + "aria-disabled": __props.disabled, + onKeydown: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleKeydown) && (0, vue.unref)(handleKeydown)(...args)) + }, null, 46, _hoisted_1$54)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/hue-slider.vue + var hue_slider_default = hue_slider_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/props/predefine.ts +/** + * @deprecated Removed after 3.0.0, Use `PredefineProps` instead. + */ + const predefineProps = buildProps({ + colors: { + type: definePropType(Array), + required: true + }, + color: { + type: definePropType(Object), + required: true + }, + enableAlpha: { + type: Boolean, + required: true + }, + disabled: Boolean + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/utils/color.ts + var Color = class { + constructor(options = {}) { + this._hue = 0; + this._saturation = 100; + this._value = 100; + this._alpha = 100; + this._tiny = new TinyColor(); + this._isValid = false; + this.enableAlpha = false; + this.format = ""; + this.value = ""; + for (const option in options) if (hasOwn(options, option)) this[option] = options[option]; + if (options.value) this.fromString(options.value); + else this.doOnChange(); + } + set(prop, value) { + if (arguments.length === 1 && typeof prop === "object") { + for (const p in prop) if (hasOwn(prop, p)) this.set(p, prop[p]); + return; + } + this[`_${prop}`] = value; + this._isValid = true; + this.doOnChange(); + } + get(prop) { + if ([ + "hue", + "saturation", + "value", + "alpha" + ].includes(prop)) return Math.round(this[`_${prop}`]); + return this[`_${prop}`]; + } + toRgb() { + return this._isValid ? this._tiny.toRgb() : { + r: 255, + g: 255, + b: 255, + a: 0 + }; + } + fromString(value) { + const color = new TinyColor(value); + this._isValid = color.isValid; + if (color.isValid) { + const { h, s, v, a } = color.toHsv(); + this._hue = h; + this._saturation = s * 100; + this._value = v * 100; + this._alpha = a * 100; + } else { + this._hue = 0; + this._saturation = 100; + this._value = 100; + this._alpha = 100; + } + this.doOnChange(); + } + clear() { + this._isValid = false; + this.value = ""; + this._hue = 0; + this._saturation = 100; + this._value = 100; + this._alpha = 100; + } + compare(color) { + const compareColor = new TinyColor({ + h: color._hue, + s: color._saturation / 100, + v: color._value / 100, + a: color._alpha / 100 + }); + return this._tiny.equals(compareColor); + } + doOnChange() { + const { _hue, _saturation, _value, _alpha, format, enableAlpha } = this; + let _format = format || (enableAlpha ? "rgb" : "hex"); + if (format === "hex" && enableAlpha) _format = "hex8"; + this._tiny = new TinyColor({ + h: _hue, + s: _saturation / 100, + v: _value / 100, + a: _alpha / 100 + }); + this.value = this._isValid ? this._tiny.toString(_format) : ""; + } + }; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/composables/use-predefine.ts + const usePredefine = (props) => { + const { currentColor } = (0, vue.inject)(colorPickerPanelContextKey); + const rgbaColors = (0, vue.ref)(parseColors(props.colors, props.color)); + (0, vue.watch)(() => currentColor.value, (val) => { + const color = new Color({ + value: val, + enableAlpha: props.enableAlpha + }); + rgbaColors.value.forEach((item) => { + item.selected = color.compare(item); + }); + }); + (0, vue.watchEffect)(() => { + rgbaColors.value = parseColors(props.colors, props.color); + }); + function handleSelect(index) { + props.color.fromString(props.colors[index]); + } + function parseColors(colors, color) { + return colors.map((value) => { + const c = new Color({ + value, + enableAlpha: props.enableAlpha + }); + c.selected = c.compare(color); + return c; + }); + } + return { + rgbaColors, + handleSelect + }; + }; + const usePredefineDOM = (props) => { + const ns = useNamespace("color-predefine"); + const rootKls = (0, vue.computed)(() => [ns.b(), ns.is("disabled", props.disabled)]); + const colorsKls = (0, vue.computed)(() => ns.e("colors")); + function colorSelectorKls(item) { + return [ + ns.e("color-selector"), + ns.is("alpha", item.get("alpha") < 100), + { selected: item.selected } + ]; + } + return { + rootKls, + colorsKls, + colorSelectorKls + }; + }; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/predefine.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$53 = [ + "disabled", + "aria-label", + "onClick" + ]; + var predefine_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElColorPredefine", + __name: "predefine", + props: predefineProps, + setup(__props) { + const props = __props; + const { rgbaColors, handleSelect } = usePredefine(props); + const { rootKls, colorsKls, colorSelectorKls } = usePredefineDOM(props); + const { t } = useLocale(); + const ariaLabel = (value) => { + return t("el.colorpicker.predefineDescription", { value }); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(colorsKls)) }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(rgbaColors), (item, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: __props.colors[index], + type: "button", + disabled: __props.disabled, + "aria-label": ariaLabel(item.value), + class: (0, vue.normalizeClass)((0, vue.unref)(colorSelectorKls)(item)), + onClick: ($event) => (0, vue.unref)(handleSelect)(index) + }, [(0, vue.createElementVNode)("div", { style: (0, vue.normalizeStyle)({ backgroundColor: item.value }) }, null, 4)], 10, _hoisted_1$53); + }), 128))], 2)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/predefine.vue + var predefine_default = predefine_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/props/sv-panel.ts +/** + * @deprecated Removed after 3.0.0, Use `SvPanelProps` instead. + */ + const svPanelProps = buildProps({ + color: { + type: definePropType(Object), + required: true + }, + disabled: Boolean + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/composables/use-sv-panel.ts + const useSvPanel = (props) => { + const instance = (0, vue.getCurrentInstance)(); + const cursorRef = (0, vue.ref)(); + const cursorTop = (0, vue.ref)(0); + const cursorLeft = (0, vue.ref)(0); + const background = (0, vue.ref)("hsl(0, 100%, 50%)"); + const saturation = (0, vue.computed)(() => props.color.get("saturation")); + const brightness = (0, vue.computed)(() => props.color.get("value")); + const hue = (0, vue.computed)(() => props.color.get("hue")); + function handleClick(event) { + if (props.disabled) return; + if (event.target !== cursorRef.value) handleDrag(event); + cursorRef.value?.focus({ preventScroll: true }); + } + function handleDrag(event) { + if (props.disabled) return; + const rect = instance.vnode.el.getBoundingClientRect(); + const { clientX, clientY } = getClientXY(event); + let left = clientX - rect.left; + let top = clientY - rect.top; + left = Math.max(0, left); + left = Math.min(left, rect.width); + top = Math.max(0, top); + top = Math.min(top, rect.height); + cursorLeft.value = left; + cursorTop.value = top; + props.color.set({ + saturation: left / rect.width * 100, + value: 100 - top / rect.height * 100 + }); + } + function handleKeydown(event) { + if (props.disabled) return; + const { shiftKey } = event; + const code = getEventCode(event); + const step = shiftKey ? 10 : 1; + let isPreventDefault = true; + switch (code) { + case EVENT_CODE.left: + incrementSaturation(-step); + break; + case EVENT_CODE.right: + incrementSaturation(step); + break; + case EVENT_CODE.up: + incrementBrightness(step); + break; + case EVENT_CODE.down: + incrementBrightness(-step); + break; + default: + isPreventDefault = false; + break; + } + isPreventDefault && event.preventDefault(); + } + function incrementSaturation(step) { + let next = saturation.value + step; + next = next < 0 ? 0 : next > 100 ? 100 : next; + props.color.set("saturation", next); + } + function incrementBrightness(step) { + let next = brightness.value + step; + next = next < 0 ? 0 : next > 100 ? 100 : next; + props.color.set("value", next); + } + return { + cursorRef, + cursorTop, + cursorLeft, + background, + saturation, + brightness, + hue, + handleClick, + handleDrag, + handleKeydown + }; + }; + const useSvPanelDOM = (props, { cursorTop, cursorLeft, background, handleDrag }) => { + const instance = (0, vue.getCurrentInstance)(); + const ns = useNamespace("color-svpanel"); + function update() { + const saturation = props.color.get("saturation"); + const brightness = props.color.get("value"); + const { clientWidth: width, clientHeight: height } = instance.vnode.el; + cursorLeft.value = saturation * width / 100; + cursorTop.value = (100 - brightness) * height / 100; + background.value = `hsl(${props.color.get("hue")}, 100%, 50%)`; + } + (0, vue.onMounted)(() => { + draggable(instance.vnode.el, { + drag: (event) => { + handleDrag(event); + }, + end: (event) => { + handleDrag(event); + } + }); + update(); + }); + (0, vue.watch)([ + () => props.color.get("hue"), + () => props.color.get("value"), + () => props.color.value + ], () => update()); + return { + rootKls: (0, vue.computed)(() => ns.b()), + cursorKls: (0, vue.computed)(() => ns.e("cursor")), + rootStyle: (0, vue.computed)(() => ({ backgroundColor: background.value })), + cursorStyle: (0, vue.computed)(() => ({ + top: addUnit(cursorTop.value), + left: addUnit(cursorLeft.value) + })), + update + }; + }; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/sv-panel.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$52 = [ + "tabindex", + "aria-disabled", + "aria-label", + "aria-valuenow", + "aria-valuetext" + ]; + var sv_panel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSvPanel", + __name: "sv-panel", + props: svPanelProps, + setup(__props, { expose: __expose }) { + const props = __props; + const { cursorRef, cursorTop, cursorLeft, background, saturation, brightness, handleClick, handleDrag, handleKeydown } = useSvPanel(props); + const { rootKls, cursorKls, rootStyle, cursorStyle, update } = useSvPanelDOM(props, { + cursorTop, + cursorLeft, + background, + handleDrag + }); + const { t } = useLocale(); + const ariaLabel = (0, vue.computed)(() => t("el.colorpicker.svLabel")); + const ariaValuetext = (0, vue.computed)(() => { + return t("el.colorpicker.svDescription", { + saturation: saturation.value, + brightness: brightness.value, + color: props.color.value + }); + }); + __expose({ update }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(rootKls)), + style: (0, vue.normalizeStyle)((0, vue.unref)(rootStyle)), + onClick: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleClick) && (0, vue.unref)(handleClick)(...args)) + }, [(0, vue.createElementVNode)("div", { + ref_key: "cursorRef", + ref: cursorRef, + class: (0, vue.normalizeClass)((0, vue.unref)(cursorKls)), + style: (0, vue.normalizeStyle)((0, vue.unref)(cursorStyle)), + tabindex: __props.disabled ? void 0 : 0, + "aria-disabled": __props.disabled, + role: "slider", + "aria-valuemin": "0,0", + "aria-valuemax": "100,100", + "aria-label": ariaLabel.value, + "aria-valuenow": `${(0, vue.unref)(saturation)},${(0, vue.unref)(brightness)}`, + "aria-valuetext": ariaValuetext.value, + onKeydown: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleKeydown) && (0, vue.unref)(handleKeydown)(...args)) + }, null, 46, _hoisted_1$52)], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/components/sv-panel.vue + var sv_panel_default = sv_panel_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/composables/use-common-color.ts + const useCommonColor = (props, emit) => { + const color = (0, vue.reactive)(new Color({ + enableAlpha: props.showAlpha, + format: props.colorFormat || "", + value: props.modelValue + })); + (0, vue.watch)(() => [props.colorFormat, props.showAlpha], () => { + color.enableAlpha = props.showAlpha; + color.format = props.colorFormat || color.format; + color.doOnChange(); + emit(UPDATE_MODEL_EVENT, color.value); + }); + return { color }; + }; + +//#endregion +//#region ../../packages/components/color-picker-panel/src/color-picker-panel.vue?vue&type=script&setup=true&lang.ts + var color_picker_panel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElColorPickerPanel", + __name: "color-picker-panel", + props: colorPickerPanelProps, + emits: colorPickerPanelEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("color-picker-panel"); + const { formItem } = useFormItem(); + const disabled = useFormDisabled(); + const hueRef = (0, vue.ref)(); + const svRef = (0, vue.ref)(); + const alphaRef = (0, vue.ref)(); + const inputRef = (0, vue.ref)(); + const customInput = (0, vue.ref)(""); + const { color } = (0, vue.inject)(ROOT_COMMON_COLOR_INJECTION_KEY, () => useCommonColor(props, emit), true); + function handleConfirm() { + color.fromString(customInput.value); + if (color.value !== customInput.value) customInput.value = color.value; + } + function handleFocusout() { + if (props.validateEvent) formItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + function update() { + hueRef.value?.update(); + svRef.value?.update(); + alphaRef.value?.update(); + } + (0, vue.onMounted)(() => { + if (props.modelValue) customInput.value = color.value; + (0, vue.nextTick)(update); + }); + (0, vue.watch)(() => props.modelValue, (newVal) => { + if (newVal !== color.value) newVal ? color.fromString(newVal) : color.clear(); + }); + (0, vue.watch)(() => color.value, (val) => { + emit(UPDATE_MODEL_EVENT, val); + customInput.value = val; + if (props.validateEvent) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + (0, vue.provide)(colorPickerPanelContextKey, { currentColor: (0, vue.computed)(() => color.value) }); + __expose({ + color, + inputRef, + update + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(disabled)), + (0, vue.unref)(ns).is("border", __props.border) + ]), + onFocusout: handleFocusout + }, [ + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("wrapper")) }, [(0, vue.createVNode)(hue_slider_default, { + ref_key: "hueRef", + ref: hueRef, + color: (0, vue.unref)(color), + vertical: "", + disabled: (0, vue.unref)(disabled), + class: (0, vue.normalizeClass)(["hue-slider", __props.hueSliderClass]), + style: (0, vue.normalizeStyle)(__props.hueSliderStyle) + }, null, 8, [ + "color", + "disabled", + "class", + "style" + ]), (0, vue.createVNode)(sv_panel_default, { + ref_key: "svRef", + ref: svRef, + color: (0, vue.unref)(color), + disabled: (0, vue.unref)(disabled) + }, null, 8, ["color", "disabled"])], 2), + __props.showAlpha ? ((0, vue.openBlock)(), (0, vue.createBlock)(alpha_slider_default, { + key: 0, + ref_key: "alphaRef", + ref: alphaRef, + color: (0, vue.unref)(color), + disabled: (0, vue.unref)(disabled) + }, null, 8, ["color", "disabled"])) : (0, vue.createCommentVNode)("v-if", true), + __props.predefine ? ((0, vue.openBlock)(), (0, vue.createBlock)(predefine_default, { + key: 1, + ref: "predefine", + "enable-alpha": __props.showAlpha, + color: (0, vue.unref)(color), + colors: __props.predefine, + disabled: (0, vue.unref)(disabled) + }, null, 8, [ + "enable-alpha", + "color", + "colors", + "disabled" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("footer")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + ref_key: "inputRef", + ref: inputRef, + modelValue: customInput.value, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => customInput.value = $event), + "validate-event": false, + size: "small", + disabled: (0, vue.unref)(disabled), + onChange: handleConfirm + }, null, 8, ["modelValue", "disabled"]), (0, vue.renderSlot)(_ctx.$slots, "footer")], 2) + ], 34); + }; + } + }); + +//#endregion +//#region ../../packages/components/color-picker-panel/src/color-picker-panel.vue + var color_picker_panel_default = color_picker_panel_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/color-picker-panel/index.ts + const ElColorPickerPanel = withInstall(color_picker_panel_default); + +//#endregion +//#region ../../packages/components/color-picker/src/color-picker.ts +/** + * @deprecated Removed after 3.0.0, Use `ColorPickerProps` instead. + */ + const colorPickerProps = buildProps({ + persistent: { + type: Boolean, + default: true + }, + modelValue: { + type: definePropType(String), + default: void 0 + }, + id: String, + showAlpha: Boolean, + colorFormat: { type: definePropType(String) }, + disabled: { + type: Boolean, + default: void 0 + }, + clearable: { + type: Boolean, + default: true + }, + size: useSizeProp, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + tabindex: { + type: [String, Number], + default: 0 + }, + teleported: useTooltipContentProps.teleported, + appendTo: useTooltipContentProps.appendTo, + predefine: { type: definePropType(Array) }, + validateEvent: { + type: Boolean, + default: true + }, + ...useEmptyValuesProps, + ...useAriaProps(["ariaLabel"]) + }); + const colorPickerEmits = { + [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNil(val), + [CHANGE_EVENT]: (val) => isString(val) || isNil(val), + activeChange: (val) => isString(val) || isNil(val), + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true + }; + /** + * @description default values for ColorPickerProps, used in components that extend ColorPickerProps + */ + const colorPickerPropsDefaults = { + persistent: true, + modelValue: void 0, + disabled: void 0, + clearable: true, + popperStyle: void 0, + tabindex: 0, + teleported: true, + validateEvent: true, + valueOnClear: void 0 + }; + +//#endregion +//#region ../../packages/components/color-picker/src/color-picker.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$51 = [ + "id", + "aria-label", + "aria-labelledby", + "aria-description", + "aria-disabled", + "tabindex" + ]; + var color_picker_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElColorPicker", + __name: "color-picker", + props: colorPickerProps, + emits: colorPickerEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const { t } = useLocale(); + const ns = useNamespace("color"); + const { formItem } = useFormItem(); + const colorSize = useFormSize(); + const colorDisabled = useFormDisabled(); + const { valueOnClear, isEmptyValue } = useEmptyValues(props, null); + const commonColor = useCommonColor(props, emit); + const { inputId: buttonId, isLabeledByFormItem } = useFormItemInputId(props, { formItemContext: formItem }); + const popper = (0, vue.ref)(); + const triggerRef = (0, vue.ref)(); + const pickerPanelRef = (0, vue.ref)(); + const showPicker = (0, vue.ref)(false); + const showPanelColor = (0, vue.ref)(false); + let shouldActiveChange = true; + const { isFocused, handleFocus, handleBlur } = useFocusController(triggerRef, { + disabled: colorDisabled, + beforeBlur(event) { + return popper.value?.isFocusInsideContent(event); + }, + afterBlur() { + setShowPicker(false); + resetColor(); + if (props.validateEvent) formItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const color = reactiveComputed(() => pickerPanelRef.value?.color ?? commonColor.color); + const panelProps = (0, vue.computed)(() => pick(props, Object.keys(colorPickerPanelProps))); + const displayedColor = (0, vue.computed)(() => { + if (!props.modelValue && !showPanelColor.value) return "transparent"; + return displayedRgb(color, props.showAlpha); + }); + const currentColor = (0, vue.computed)(() => { + return !props.modelValue && !showPanelColor.value ? "" : color.value; + }); + const buttonAriaLabel = (0, vue.computed)(() => { + return !isLabeledByFormItem.value ? props.ariaLabel || t("el.colorpicker.defaultLabel") : void 0; + }); + const buttonAriaLabelledby = (0, vue.computed)(() => { + return isLabeledByFormItem.value ? formItem?.labelId : void 0; + }); + const btnKls = (0, vue.computed)(() => { + return [ + ns.b("picker"), + ns.is("disabled", colorDisabled.value), + ns.bm("picker", colorSize.value), + ns.is("focused", isFocused.value) + ]; + }); + function displayedRgb(color, showAlpha) { + const { r, g, b, a } = color.toRgb(); + return showAlpha ? `rgba(${r}, ${g}, ${b}, ${a})` : `rgb(${r}, ${g}, ${b})`; + } + function setShowPicker(value) { + showPicker.value = value; + } + const debounceSetShowPicker = debounce(setShowPicker, 100, { leading: true }); + function show() { + if (colorDisabled.value) return; + setShowPicker(true); + } + function hide() { + debounceSetShowPicker(false); + resetColor(); + } + function resetColor() { + (0, vue.nextTick)(() => { + if (props.modelValue) color.fromString(props.modelValue); + else { + color.value = ""; + (0, vue.nextTick)(() => { + showPanelColor.value = false; + }); + } + }); + } + function handleTrigger() { + if (colorDisabled.value) return; + if (showPicker.value) resetColor(); + debounceSetShowPicker(!showPicker.value); + } + function confirmValue() { + const value = isEmptyValue(color.value) ? valueOnClear.value : color.value; + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value); + if (props.validateEvent) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + debounceSetShowPicker(false); + (0, vue.nextTick)(() => { + const newColor = new Color({ + enableAlpha: props.showAlpha, + format: props.colorFormat || "", + value: props.modelValue + }); + if (!color.compare(newColor)) resetColor(); + }); + } + function clear() { + debounceSetShowPicker(false); + emit(UPDATE_MODEL_EVENT, valueOnClear.value); + emit(CHANGE_EVENT, valueOnClear.value); + if (props.modelValue !== valueOnClear.value && props.validateEvent) formItem?.validate("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + resetColor(); + emit("clear"); + } + function handleShowTooltip() { + pickerPanelRef?.value?.inputRef?.focus(); + } + function handleClickOutside() { + if (!showPicker.value) return; + hide(); + isFocused.value && focus(); + } + function handleEsc(event) { + event.preventDefault(); + event.stopPropagation(); + setShowPicker(false); + resetColor(); + } + function handleKeyDown(event) { + switch (getEventCode(event)) { + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + case EVENT_CODE.space: + event.preventDefault(); + event.stopPropagation(); + show(); + break; + case EVENT_CODE.esc: + handleEsc(event); + break; + } + } + function focus() { + triggerRef.value.focus(); + } + function blur() { + triggerRef.value.blur(); + } + (0, vue.watch)(() => currentColor.value, (val) => { + shouldActiveChange && emit("activeChange", val); + shouldActiveChange = true; + }); + (0, vue.watch)(() => color.value, () => { + if (!props.modelValue && !showPanelColor.value) showPanelColor.value = true; + }); + (0, vue.watch)(() => props.modelValue, (newVal) => { + if (!newVal) showPanelColor.value = false; + else if (newVal && newVal !== color.value) { + shouldActiveChange = false; + color.fromString(newVal); + } + }); + (0, vue.watch)(() => showPicker.value, () => { + pickerPanelRef.value && (0, vue.nextTick)(pickerPanelRef.value.update); + }); + (0, vue.provide)(ROOT_COMMON_COLOR_INJECTION_KEY, commonColor); + __expose({ + color, + show, + hide, + focus, + blur + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), { + ref_key: "popper", + ref: popper, + visible: showPicker.value, + "show-arrow": false, + "fallback-placements": [ + "bottom", + "top", + "right", + "left" + ], + offset: 0, + "gpu-acceleration": false, + "popper-class": [(0, vue.unref)(ns).be("picker", "panel"), __props.popperClass], + "popper-style": __props.popperStyle, + "stop-popper-mouse-event": false, + pure: "", + loop: "", + role: "dialog", + effect: "light", + trigger: "click", + teleported: __props.teleported, + transition: `${(0, vue.unref)(ns).namespace.value}-zoom-in-top`, + persistent: __props.persistent, + "append-to": __props.appendTo, + onShow: handleShowTooltip, + onHide: _cache[2] || (_cache[2] = ($event) => setShowPicker(false)) + }, { + content: (0, vue.withCtx)(() => [(0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElColorPickerPanel), (0, vue.mergeProps)({ + ref_key: "pickerPanelRef", + ref: pickerPanelRef + }, panelProps.value, { + border: false, + "validate-event": false, + onKeydown: (0, vue.withKeys)(handleEsc, ["esc"]) + }), { + footer: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", null, [__props.clearable ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElButton), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("footer", "link-btn")), + text: "", + size: "small", + onClick: clear + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.colorpicker.clear")), 1)]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createVNode)((0, vue.unref)(ElButton), { + plain: "", + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("footer", "btn")), + onClick: confirmValue + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.colorpicker.confirm")), 1)]), + _: 1 + }, 8, ["class"])])]), + _: 1 + }, 16)), [[ + (0, vue.unref)(ClickOutside), + handleClickOutside, + triggerRef.value + ]])]), + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", (0, vue.mergeProps)({ + id: (0, vue.unref)(buttonId), + ref_key: "triggerRef", + ref: triggerRef + }, _ctx.$attrs, { + class: btnKls.value, + role: "button", + "aria-label": buttonAriaLabel.value, + "aria-labelledby": buttonAriaLabelledby.value, + "aria-description": (0, vue.unref)(t)("el.colorpicker.description", { color: __props.modelValue || "" }), + "aria-disabled": (0, vue.unref)(colorDisabled), + tabindex: (0, vue.unref)(colorDisabled) ? void 0 : __props.tabindex, + onKeydown: handleKeyDown, + onFocus: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleFocus) && (0, vue.unref)(handleFocus)(...args)), + onBlur: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleBlur) && (0, vue.unref)(handleBlur)(...args)) + }), [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("picker", "trigger")), + onClick: handleTrigger + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("picker", "color"), (0, vue.unref)(ns).is("alpha", __props.showAlpha)]) }, [(0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("picker", "color-inner")), + style: (0, vue.normalizeStyle)({ backgroundColor: displayedColor.value }) + }, [(0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("picker", "icon"), (0, vue.unref)(ns).is("icon-arrow-down")]) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_down_default))]), + _: 1 + }, 8, ["class"]), [[vue.vShow, __props.modelValue || showPanelColor.value]]), (0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("picker", "empty"), (0, vue.unref)(ns).is("icon-close")]) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + }, 8, ["class"]), [[vue.vShow, !__props.modelValue && !showPanelColor.value]])], 6)], 2)], 2)], 16, _hoisted_1$51)]), + _: 1 + }, 8, [ + "visible", + "popper-class", + "popper-style", + "teleported", + "transition", + "persistent", + "append-to" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/color-picker/src/color-picker.vue + var color_picker_default = color_picker_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/color-picker/index.ts + const ElColorPicker = withInstall(color_picker_default); + +//#endregion +//#region ../../packages/components/container/src/container.vue?vue&type=script&setup=true&lang.ts + var container_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElContainer", + __name: "container", + props: { direction: { + type: String, + required: false + } }, + setup(__props) { + const props = __props; + const slots = (0, vue.useSlots)(); + const ns = useNamespace("container"); + const isVertical = (0, vue.computed)(() => { + if (props.direction === "vertical") return true; + else if (props.direction === "horizontal") return false; + if (slots && slots.default) return slots.default().some((vNode) => { + const tag = vNode.type.name; + return tag === "ElHeader" || tag === "ElFooter"; + }); + else return false; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("section", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), (0, vue.unref)(ns).is("vertical", isVertical.value)]) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/container/src/container.vue + var container_default = container_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/container/src/aside.vue?vue&type=script&setup=true&lang.ts + var aside_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAside", + __name: "aside", + props: { width: { + type: [String, null], + required: false, + default: null + } }, + setup(__props) { + const props = __props; + const ns = useNamespace("aside"); + const style = (0, vue.computed)(() => props.width ? ns.cssVarBlock({ width: props.width }) : {}); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("aside", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + style: (0, vue.normalizeStyle)(style.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/container/src/aside.vue + var aside_default = aside_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/container/src/footer.vue?vue&type=script&setup=true&lang.ts + var footer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElFooter", + __name: "footer", + props: { height: { + type: [String, null], + required: false, + default: null + } }, + setup(__props) { + const props = __props; + const ns = useNamespace("footer"); + const style = (0, vue.computed)(() => props.height ? ns.cssVarBlock({ height: props.height }) : {}); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("footer", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + style: (0, vue.normalizeStyle)(style.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/container/src/footer.vue + var footer_default = footer_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/container/src/header.vue?vue&type=script&setup=true&lang.ts + var header_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElHeader", + __name: "header", + props: { height: { + type: [String, null], + required: false, + default: null + } }, + setup(__props) { + const props = __props; + const ns = useNamespace("header"); + const style = (0, vue.computed)(() => { + return props.height ? ns.cssVarBlock({ height: props.height }) : {}; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("header", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + style: (0, vue.normalizeStyle)(style.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/container/src/header.vue + var header_default = header_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/container/src/main.vue?vue&type=script&setup=true&lang.ts + var main_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElMain", + __name: "main", + setup(__props) { + const ns = useNamespace("main"); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("main", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/container/src/main.vue + var main_default = main_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/container/index.ts + const ElContainer = withInstall(container_default, { + Aside: aside_default, + Footer: footer_default, + Header: header_default, + Main: main_default + }); + const ElAside = withNoopInstall(aside_default); + const ElFooter = withNoopInstall(footer_default); + const ElHeader = withNoopInstall(header_default); + const ElMain = withNoopInstall(main_default); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/advancedFormat.js + var require_advancedFormat = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, t) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_advancedFormat = t(); + })(exports, (function() { + "use strict"; + return function(e, t) { + var r = t.prototype, n = r.format; + r.format = function(e) { + var t = this, r = this.$locale(); + if (!this.isValid()) return n.bind(this)(e); + var s = 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 r.ordinal(t.$D); + case "gggg": return t.weekYear(); + case "GGGG": return t.isoWeekYear(); + case "wo": return r.ordinal(t.week(), "W"); + case "w": + case "ww": return s.s(t.week(), "w" === e ? 1 : 2, "0"); + case "W": + case "WW": return s.s(t.isoWeek(), "W" === e ? 1 : 2, "0"); + case "k": + case "kk": return s.s(String(0 === t.$H ? 24 : t.$H), "k" === e ? 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 n.bind(this)(a); + }; + }; + })); + })); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/weekOfYear.js + var require_weekOfYear = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, t) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_weekOfYear = t(); + })(exports, (function() { + "use strict"; + var e = "week", t = "year"; + return function(i, n, r) { + var f = n.prototype; + f.week = function(i) { + if (void 0 === i && (i = null), null !== i) return this.add(7 * (i - this.week()), "day"); + var n = this.$locale().yearStart || 1; + if (11 === this.month() && this.date() > 25) { + var f = r(this).startOf(t).add(1, t).date(n), s = r(this).endOf(e); + if (f.isBefore(s)) return 1; + } + var a = r(this).startOf(t).date(n).startOf(e).subtract(1, "millisecond"), o = this.diff(a, e, !0); + return o < 0 ? r(this).startOf("week").week() : Math.ceil(o); + }, f.weeks = function(e) { + return void 0 === e && (e = null), this.week(e); + }; + }; + })); + })); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/weekYear.js + var require_weekYear = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, t) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_weekYear = t(); + })(exports, (function() { + "use strict"; + return function(e, t) { + t.prototype.weekYear = function() { + var e = this.month(), t = this.week(), n = this.year(); + return 1 === t && 11 === e ? n + 1 : 0 === e && t >= 52 ? n - 1 : n; + }; + }; + })); + })); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/dayOfYear.js + var require_dayOfYear = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, t) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_dayOfYear = t(); + })(exports, (function() { + "use strict"; + 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 null == e ? t : this.add(e - t, "day"); + }; + }; + })); + })); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isSameOrAfter.js + var require_isSameOrAfter = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, t) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_isSameOrAfter = t(); + })(exports, (function() { + "use strict"; + return function(e, t) { + t.prototype.isSameOrAfter = function(e, t) { + return this.isSame(e, t) || this.isAfter(e, t); + }; + }; + })); + })); + +//#endregion +//#region ../../node_modules/.pnpm/dayjs@1.11.19/node_modules/dayjs/plugin/isSameOrBefore.js + var require_isSameOrBefore = /* @__PURE__ */ __commonJSMin(((exports, module) => { + (function(e, i) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = i() : "function" == typeof define && define.amd ? define(i) : (e = "undefined" != typeof globalThis ? globalThis : e || self).dayjs_plugin_isSameOrBefore = i(); + })(exports, (function() { + "use strict"; + return function(e, i) { + i.prototype.isSameOrBefore = function(e, i) { + return this.isSame(e, i) || this.isBefore(e, i); + }; + }; + })); + })); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/date-picker-panel.ts +var import_isSameOrBefore = /* @__PURE__ */ __toESM(require_isSameOrBefore()); +var import_isSameOrAfter = /* @__PURE__ */ __toESM(require_isSameOrAfter()); +var import_dayOfYear = /* @__PURE__ */ __toESM(require_dayOfYear()); +var import_weekYear = /* @__PURE__ */ __toESM(require_weekYear()); +var import_weekOfYear = /* @__PURE__ */ __toESM(require_weekOfYear()); +var import_advancedFormat = /* @__PURE__ */ __toESM(require_advancedFormat()); + const datePickerPanelProps = buildProps({ + valueFormat: String, + dateFormat: String, + timeFormat: String, + disabled: { + type: Boolean, + default: void 0 + }, + modelValue: { + type: definePropType([ + Date, + Array, + String, + Number + ]), + default: "" + }, + defaultValue: { type: definePropType([Date, Array]) }, + defaultTime: { type: definePropType([Date, Array]) }, + isRange: Boolean, + ...disabledTimeListsProps, + disabledDate: { type: Function }, + cellClassName: { type: Function }, + shortcuts: { + type: Array, + default: () => [] + }, + arrowControl: Boolean, + unlinkPanels: Boolean, + showNow: { + type: Boolean, + default: true + }, + showConfirm: Boolean, + showFooter: Boolean, + showWeekNumber: Boolean, + type: { + type: definePropType(String), + default: "date" + }, + clearable: { + type: Boolean, + default: true + }, + border: { + type: Boolean, + default: true + }, + editable: { + type: Boolean, + default: true + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/constants.ts + const ROOT_PICKER_INJECTION_KEY = Symbol("rootPickerContextKey"); + const ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY = "ElIsDefaultFormat"; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/shared.ts + const selectionModes = [ + "date", + "dates", + "year", + "years", + "month", + "months", + "week", + "range" + ]; + const datePickerSharedProps = buildProps({ + cellClassName: { type: definePropType(Function) }, + disabledDate: { type: definePropType(Function) }, + date: { + type: definePropType(Object), + required: true + }, + minDate: { type: definePropType(Object) }, + maxDate: { type: definePropType(Object) }, + parsedValue: { type: definePropType([Object, Array]) }, + rangeState: { + type: definePropType(Object), + default: () => ({ + endDate: null, + selecting: false + }) + }, + disabled: Boolean + }); + const panelSharedProps = buildProps({ + type: { + type: definePropType(String), + required: true, + values: datePickTypes + }, + dateFormat: String, + timeFormat: String, + showNow: { + type: Boolean, + default: true + }, + showConfirm: Boolean, + showFooter: { + type: Boolean, + default: true + }, + showWeekNumber: Boolean, + border: Boolean, + disabled: Boolean, + editable: { + type: Boolean, + default: true + } + }); + const panelRangeSharedProps = buildProps({ + unlinkPanels: Boolean, + visible: { + type: Boolean, + default: true + }, + showConfirm: Boolean, + showFooter: { + type: Boolean, + default: true + }, + border: Boolean, + disabled: Boolean, + parsedValue: { type: definePropType(Array) } + }); + const selectionModeWithDefault = (mode) => { + return { + type: String, + values: selectionModes, + default: mode + }; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/panel-date-pick.ts + const panelDatePickProps = buildProps({ + ...panelSharedProps, + parsedValue: { type: definePropType([Object, Array]) }, + visible: { + type: Boolean, + default: true + }, + format: { + type: String, + default: "" + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/utils.ts + const isValidRange = (range) => { + if (!isArray$1(range)) return false; + const [left, right] = range; + return import_dayjs_min.default.isDayjs(left) && import_dayjs_min.default.isDayjs(right) && (0, import_dayjs_min.default)(left).isValid() && (0, import_dayjs_min.default)(right).isValid() && left.isSameOrBefore(right); + }; + const getDefaultValue = (defaultValue, { lang, step = 1, unit, unlinkPanels }) => { + let start; + if (isArray$1(defaultValue)) { + let [left, right] = defaultValue.map((d) => (0, import_dayjs_min.default)(d).locale(lang)); + if (!unlinkPanels) right = left.add(step, unit); + return [left, right]; + } else if (defaultValue) start = (0, import_dayjs_min.default)(defaultValue); + else start = (0, import_dayjs_min.default)(); + start = start.locale(lang); + return [start, start.add(step, unit)]; + }; + const buildPickerTable = (dimension, rows, { columnIndexOffset, startDate, nextEndDate, now, unit, relativeDateGetter, setCellMetadata, setRowMetadata }) => { + for (let rowIndex = 0; rowIndex < dimension.row; rowIndex++) { + const row = rows[rowIndex]; + for (let columnIndex = 0; columnIndex < dimension.column; columnIndex++) { + let cell = row[columnIndex + columnIndexOffset]; + if (!cell) cell = { + row: rowIndex, + column: columnIndex, + type: "normal", + inRange: false, + start: false, + end: false + }; + const nextStartDate = relativeDateGetter(rowIndex * dimension.column + columnIndex); + cell.dayjs = nextStartDate; + cell.date = nextStartDate.toDate(); + cell.timestamp = nextStartDate.valueOf(); + cell.type = "normal"; + cell.inRange = !!(startDate && nextStartDate.isSameOrAfter(startDate, unit) && nextEndDate && nextStartDate.isSameOrBefore(nextEndDate, unit)) || !!(startDate && nextStartDate.isSameOrBefore(startDate, unit) && nextEndDate && nextStartDate.isSameOrAfter(nextEndDate, unit)); + if (startDate?.isSameOrAfter(nextEndDate)) { + cell.start = !!nextEndDate && nextStartDate.isSame(nextEndDate, unit); + cell.end = startDate && nextStartDate.isSame(startDate, unit); + } else { + cell.start = !!startDate && nextStartDate.isSame(startDate, unit); + cell.end = !!nextEndDate && nextStartDate.isSame(nextEndDate, unit); + } + if (nextStartDate.isSame(now, unit)) cell.type = "today"; + setCellMetadata?.(cell, { + rowIndex, + columnIndex + }); + row[columnIndex + columnIndexOffset] = cell; + } + setRowMetadata?.(row); + } + }; + const datesInMonth = (date, year, month, lang) => { + const firstDay = (0, import_dayjs_min.default)().locale(lang).startOf("month").month(month).year(year).hour(date.hour()).minute(date.minute()).second(date.second()); + return rangeArr(firstDay.daysInMonth()).map((n) => firstDay.add(n, "day").toDate()); + }; + const getValidDateOfMonth = (date, year, month, lang, disabledDate) => { + const _value = (0, import_dayjs_min.default)().year(year).month(month).startOf("month").hour(date.hour()).minute(date.minute()).second(date.second()); + const _date = datesInMonth(date, year, month, lang).find((date) => { + return !disabledDate?.(date); + }); + if (_date) return (0, import_dayjs_min.default)(_date).locale(lang); + return _value.locale(lang); + }; + const getValidDateOfYear = (value, lang, disabledDate) => { + const year = value.year(); + if (!disabledDate?.(value.toDate())) return value.locale(lang); + const month = value.month(); + if (!datesInMonth(value, year, month, lang).every(disabledDate)) return getValidDateOfMonth(value, year, month, lang, disabledDate); + for (let i = 0; i < 12; i++) if (!datesInMonth(value, year, i, lang).every(disabledDate)) return getValidDateOfMonth(value, year, i, lang, disabledDate); + return value; + }; + const correctlyParseUserInput = (value, format, lang, defaultFormat) => { + if (isArray$1(value)) return value.map((v) => correctlyParseUserInput(v, format, lang, defaultFormat)); + if (isString(value)) { + const dayjsValue = defaultFormat?.value ? (0, import_dayjs_min.default)(value) : (0, import_dayjs_min.default)(value, format); + if (!dayjsValue.isValid()) return dayjsValue; + } + return (0, import_dayjs_min.default)(value, format).locale(lang); + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/basic-date-table.ts + const basicDateTableProps = buildProps({ + ...datePickerSharedProps, + showWeekNumber: Boolean, + selectionMode: selectionModeWithDefault("date") + }); + const basicDateTableEmits = [ + "changerange", + "pick", + "select" + ]; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/composables/use-basic-date-table.ts + const isNormalDay = (type = "") => { + return ["normal", "today"].includes(type); + }; + const useBasicDateTable = (props, emit) => { + const { lang } = useLocale(); + const tbodyRef = (0, vue.ref)(); + const currentCellRef = (0, vue.ref)(); + const lastRow = (0, vue.ref)(); + const lastColumn = (0, vue.ref)(); + const tableRows = (0, vue.ref)([ + [], + [], + [], + [], + [], + [] + ]); + let focusWithClick = false; + const firstDayOfWeek = props.date.$locale().weekStart || 7; + const WEEKS_CONSTANT = props.date.locale("en").localeData().weekdaysShort().map((_) => _.toLowerCase()); + const offsetDay = (0, vue.computed)(() => { + return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek; + }); + const startDate = (0, vue.computed)(() => { + const startDayOfMonth = props.date.startOf("month"); + return startDayOfMonth.subtract(startDayOfMonth.day() || 7, "day"); + }); + const WEEKS = (0, vue.computed)(() => { + return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(firstDayOfWeek, firstDayOfWeek + 7); + }); + const hasCurrent = (0, vue.computed)(() => { + return flatten((0, vue.unref)(rows)).some((row) => { + return row.isCurrent; + }); + }); + const days = (0, vue.computed)(() => { + const startOfMonth = props.date.startOf("month"); + return { + startOfMonthDay: startOfMonth.day() || 7, + dateCountOfMonth: startOfMonth.daysInMonth(), + dateCountOfLastMonth: startOfMonth.subtract(1, "month").daysInMonth() + }; + }); + const selectedDate = (0, vue.computed)(() => { + return props.selectionMode === "dates" ? castArray(props.parsedValue) : []; + }); + const setDateText = (cell, { count, rowIndex, columnIndex }) => { + const { startOfMonthDay, dateCountOfMonth, dateCountOfLastMonth } = (0, vue.unref)(days); + const offset = (0, vue.unref)(offsetDay); + if (rowIndex >= 0 && rowIndex <= 1) { + const numberOfDaysFromPreviousMonth = startOfMonthDay + offset < 0 ? 7 + startOfMonthDay + offset : startOfMonthDay + offset; + if (columnIndex + rowIndex * 7 >= numberOfDaysFromPreviousMonth) { + cell.text = count; + return true; + } else { + cell.text = dateCountOfLastMonth - (numberOfDaysFromPreviousMonth - columnIndex % 7) + 1 + rowIndex * 7; + cell.type = "prev-month"; + } + } else { + if (count <= dateCountOfMonth) cell.text = count; + else { + cell.text = count - dateCountOfMonth; + cell.type = "next-month"; + } + return true; + } + return false; + }; + const setCellMetadata = (cell, { columnIndex, rowIndex }, count) => { + const { disabledDate, cellClassName } = props; + const _selectedDate = (0, vue.unref)(selectedDate); + const shouldIncrement = setDateText(cell, { + count, + rowIndex, + columnIndex + }); + const cellDate = cell.dayjs.toDate(); + cell.selected = _selectedDate.find((d) => d.isSame(cell.dayjs, "day")); + cell.isSelected = !!cell.selected; + cell.isCurrent = isCurrent(cell); + cell.disabled = disabledDate?.(cellDate); + cell.customClass = cellClassName?.(cellDate); + return shouldIncrement; + }; + const setRowMetadata = (row) => { + if (props.selectionMode === "week") { + const [start, end] = props.showWeekNumber ? [1, 7] : [0, 6]; + const isActive = isWeekActive(row[start + 1]); + row[start].inRange = isActive; + row[start].start = isActive; + row[end].inRange = isActive; + row[end].end = isActive; + } + }; + const rows = (0, vue.computed)(() => { + const { minDate, maxDate, rangeState, showWeekNumber } = props; + const offset = (0, vue.unref)(offsetDay); + const rows_ = (0, vue.unref)(tableRows); + const dateUnit = "day"; + let count = 1; + buildPickerTable({ + row: 6, + column: 7 + }, rows_, { + startDate: minDate, + columnIndexOffset: showWeekNumber ? 1 : 0, + nextEndDate: rangeState.endDate || maxDate || rangeState.selecting && minDate || null, + now: (0, import_dayjs_min.default)().locale((0, vue.unref)(lang)).startOf(dateUnit), + unit: dateUnit, + relativeDateGetter: (idx) => (0, vue.unref)(startDate).add(idx - offset, dateUnit), + setCellMetadata: (...args) => { + if (setCellMetadata(...args, count)) count += 1; + }, + setRowMetadata + }); + if (showWeekNumber) { + for (let rowIndex = 0; rowIndex < 6; rowIndex++) if (rows_[rowIndex][1].dayjs) rows_[rowIndex][0] = { + type: "week", + text: rows_[rowIndex][1].dayjs.week() + }; + } + return rows_; + }); + (0, vue.watch)(() => props.date, async () => { + if ((0, vue.unref)(tbodyRef)?.contains(document.activeElement)) { + await (0, vue.nextTick)(); + await focus(); + } + }); + const focus = async () => (0, vue.unref)(currentCellRef)?.focus(); + const isCurrent = (cell) => { + return props.selectionMode === "date" && isNormalDay(cell.type) && cellMatchesDate(cell, props.parsedValue); + }; + const cellMatchesDate = (cell, date) => { + if (!date) return false; + return (0, import_dayjs_min.default)(date).locale((0, vue.unref)(lang)).isSame(props.date.date(Number(cell.text)), "day"); + }; + const getDateOfCell = (row, column) => { + const startOfMonthDay = (0, vue.unref)(days).startOfMonthDay; + const offset = (0, vue.unref)(offsetDay); + const numberOfDaysFromPreviousMonth = startOfMonthDay + offset < 0 ? 7 + startOfMonthDay + offset : startOfMonthDay + offset; + const offsetFromStart = row * 7 + (column - (props.showWeekNumber ? 1 : 0)); + return props.date.startOf("month").subtract(numberOfDaysFromPreviousMonth, "day").add(offsetFromStart, "day"); + }; + const handleMouseMove = (event) => { + if (!props.rangeState.selecting) return; + let target = event.target; + if (target.tagName === "SPAN") target = target.parentNode?.parentNode; + if (target.tagName === "DIV") target = target.parentNode; + if (target.tagName !== "TD") return; + const row = target.parentNode.rowIndex - 1; + const column = target.cellIndex; + if ((0, vue.unref)(rows)[row][column].disabled) return; + if (row !== (0, vue.unref)(lastRow) || column !== (0, vue.unref)(lastColumn)) { + lastRow.value = row; + lastColumn.value = column; + emit("changerange", { + selecting: true, + endDate: getDateOfCell(row, column) + }); + } + }; + const isSelectedCell = (cell) => { + return !(0, vue.unref)(hasCurrent) && cell?.text === 1 && isNormalDay(cell.type) || cell.isCurrent; + }; + const handleFocus = (event) => { + if (focusWithClick || (0, vue.unref)(hasCurrent) || props.selectionMode !== "date") return; + handlePickDate(event, true); + }; + const handleMouseDown = (event) => { + if (!event.target.closest("td")) return; + focusWithClick = true; + }; + const handleMouseUp = (event) => { + if (!event.target.closest("td")) return; + focusWithClick = false; + }; + const handleRangePick = (newDate) => { + if (!props.rangeState.selecting || !props.minDate) { + emit("pick", { + minDate: newDate, + maxDate: null + }); + emit("select", true); + } else { + if (newDate >= props.minDate) emit("pick", { + minDate: props.minDate, + maxDate: newDate + }); + else emit("pick", { + minDate: newDate, + maxDate: props.minDate + }); + emit("select", false); + } + }; + const handleWeekPick = (newDate) => { + const weekNumber = newDate.week(); + const value = `${newDate.year()}w${weekNumber}`; + emit("pick", { + year: newDate.year(), + week: weekNumber, + value, + date: newDate.startOf("week") + }); + }; + const handleDatesPick = (newDate, selected) => { + emit("pick", selected ? castArray(props.parsedValue).filter((d) => d?.valueOf() !== newDate.valueOf()) : castArray(props.parsedValue).concat([newDate])); + }; + const handlePickDate = (event, isKeyboardMovement = false) => { + if (props.disabled) return; + const target = event.target.closest("td"); + if (!target) return; + const row = target.parentNode.rowIndex - 1; + const column = target.cellIndex; + const cell = (0, vue.unref)(rows)[row][column]; + if (cell.disabled || cell.type === "week") return; + const newDate = getDateOfCell(row, column); + switch (props.selectionMode) { + case "range": + handleRangePick(newDate); + break; + case "date": + emit("pick", newDate, isKeyboardMovement); + break; + case "week": + handleWeekPick(newDate); + break; + case "dates": + handleDatesPick(newDate, !!cell.selected); + break; + default: break; + } + }; + const isWeekActive = (cell) => { + if (props.selectionMode !== "week") return false; + let newDate = props.date.startOf("day"); + if (cell.type === "prev-month") newDate = newDate.subtract(1, "month"); + if (cell.type === "next-month") newDate = newDate.add(1, "month"); + newDate = newDate.date(Number.parseInt(cell.text, 10)); + if (props.parsedValue && !isArray$1(props.parsedValue)) { + const dayOffset = (props.parsedValue.day() - firstDayOfWeek + 7) % 7 - 1; + return props.parsedValue.subtract(dayOffset, "day").isSame(newDate, "day"); + } + return false; + }; + return { + WEEKS, + rows, + tbodyRef, + currentCellRef, + focus, + isCurrent, + isWeekActive, + isSelectedCell, + handlePickDate, + handleMouseUp, + handleMouseDown, + handleMouseMove, + handleFocus + }; + }; + const useBasicDateTableDOM = (props, { isCurrent, isWeekActive }) => { + const ns = useNamespace("date-table"); + const { t } = useLocale(); + const tableKls = (0, vue.computed)(() => [ns.b(), ns.is("week-mode", props.selectionMode === "week" && !props.disabled)]); + const tableLabel = (0, vue.computed)(() => t("el.datepicker.dateTablePrompt")); + const getCellClasses = (cell) => { + const classes = []; + if (isNormalDay(cell.type) && !cell.disabled) { + classes.push("available"); + if (cell.type === "today") classes.push("today"); + } else classes.push(cell.type); + if (isCurrent(cell)) classes.push("current"); + if (cell.inRange && (isNormalDay(cell.type) || props.selectionMode === "week")) { + classes.push("in-range"); + if (cell.start) classes.push("start-date"); + if (cell.end) classes.push("end-date"); + } + if (cell.disabled || props.disabled) classes.push("disabled"); + if (cell.selected) classes.push("selected"); + if (cell.customClass) classes.push(cell.customClass); + return classes.join(" "); + }; + const getRowKls = (cell) => [ns.e("row"), { current: isWeekActive(cell) }]; + return { + tableKls, + tableLabel, + weekHeaderClass: ns.e("week-header"), + getCellClasses, + getRowKls, + t + }; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/basic-cell.ts + const basicCellProps = buildProps({ cell: { type: definePropType(Object) } }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-cell-render.tsx + var basic_cell_render_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDatePickerCell", + props: basicCellProps, + setup(props) { + const ns = useNamespace("date-table-cell"); + const { slots } = (0, vue.inject)(ROOT_PICKER_INJECTION_KEY); + return () => { + const { cell } = props; + return (0, vue.renderSlot)(slots, "default", { ...cell }, () => [(0, vue.createVNode)("div", { "class": ns.b() }, [(0, vue.createVNode)("span", { "class": ns.e("text") }, [cell?.renderText ?? cell?.text])])]); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-date-table.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$50 = ["aria-label"]; + const _hoisted_2$32 = ["aria-label"]; + const _hoisted_3$15 = [ + "aria-current", + "aria-selected", + "tabindex", + "aria-disabled" + ]; + var basic_date_table_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "basic-date-table", + props: basicDateTableProps, + emits: basicDateTableEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const { WEEKS, rows, tbodyRef, currentCellRef, focus, isCurrent, isWeekActive, isSelectedCell, handlePickDate, handleMouseUp, handleMouseDown, handleMouseMove, handleFocus } = useBasicDateTable(props, __emit); + const { tableLabel, tableKls, getCellClasses, getRowKls, weekHeaderClass, t } = useBasicDateTableDOM(props, { + isCurrent, + isWeekActive + }); + let isUnmounting = false; + (0, vue.onBeforeUnmount)(() => { + isUnmounting = true; + }); + __expose({ focus }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("table", { + "aria-label": (0, vue.unref)(tableLabel), + class: (0, vue.normalizeClass)((0, vue.unref)(tableKls)), + cellspacing: "0", + cellpadding: "0", + role: "grid", + onClick: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handlePickDate) && (0, vue.unref)(handlePickDate)(...args)), + onMousemove: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(handleMouseMove) && (0, vue.unref)(handleMouseMove)(...args)), + onMousedown: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(handleMouseDown) && (0, vue.unref)(handleMouseDown)(...args)), + onMouseup: _cache[4] || (_cache[4] = (...args) => (0, vue.unref)(handleMouseUp) && (0, vue.unref)(handleMouseUp)(...args)) + }, [(0, vue.createElementVNode)("tbody", { + ref_key: "tbodyRef", + ref: tbodyRef + }, [(0, vue.createElementVNode)("tr", null, [_ctx.showWeekNumber ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("th", { + key: 0, + scope: "col", + class: (0, vue.normalizeClass)((0, vue.unref)(weekHeaderClass)) + }, null, 2)) : (0, vue.createCommentVNode)("v-if", true), ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(WEEKS), (week, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("th", { + key, + "aria-label": (0, vue.unref)(t)("el.datepicker.weeksFull." + week), + scope: "col" + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.weeks." + week)), 9, _hoisted_2$32); + }), 128))]), ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(rows), (row, rowKey) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("tr", { + key: rowKey, + class: (0, vue.normalizeClass)((0, vue.unref)(getRowKls)(_ctx.showWeekNumber ? row[2] : row[1])) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(row, (cell, columnKey) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("td", { + key: `${rowKey}.${columnKey}`, + ref_for: true, + ref: (el) => !(0, vue.unref)(isUnmounting) && (0, vue.unref)(isSelectedCell)(cell) && (currentCellRef.value = el), + class: (0, vue.normalizeClass)((0, vue.unref)(getCellClasses)(cell)), + "aria-current": cell.isCurrent ? "date" : void 0, + "aria-selected": cell.isCurrent, + tabindex: _ctx.disabled ? void 0 : (0, vue.unref)(isSelectedCell)(cell) ? 0 : -1, + "aria-disabled": _ctx.disabled, + onFocus: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleFocus) && (0, vue.unref)(handleFocus)(...args)) + }, [(0, vue.createVNode)((0, vue.unref)(basic_cell_render_default), { cell }, null, 8, ["cell"])], 42, _hoisted_3$15); + }), 128))], 2); + }), 128))], 512)], 42, _hoisted_1$50); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-date-table.vue + var basic_date_table_default = basic_date_table_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/basic-month-table.ts + const basicMonthTableProps = buildProps({ + ...datePickerSharedProps, + selectionMode: selectionModeWithDefault("month") + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-month-table.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$49 = ["aria-label"]; + const _hoisted_2$31 = [ + "aria-selected", + "aria-label", + "tabindex", + "onKeydown" + ]; + var basic_month_table_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "basic-month-table", + props: basicMonthTableProps, + emits: [ + "changerange", + "pick", + "select" + ], + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("month-table"); + const { t, lang } = useLocale(); + const tbodyRef = (0, vue.ref)(); + const currentCellRef = (0, vue.ref)(); + const months = (0, vue.ref)(props.date.locale("en").localeData().monthsShort().map((_) => _.toLowerCase())); + const tableRows = (0, vue.ref)([ + [], + [], + [] + ]); + const lastRow = (0, vue.ref)(); + const lastColumn = (0, vue.ref)(); + const rows = (0, vue.computed)(() => { + const rows = tableRows.value; + const now = (0, import_dayjs_min.default)().locale(lang.value).startOf("month"); + for (let i = 0; i < 3; i++) { + const row = rows[i]; + for (let j = 0; j < 4; j++) { + const cell = row[j] ||= { + row: i, + column: j, + type: "normal", + inRange: false, + start: false, + end: false, + text: -1, + disabled: false, + isSelected: false, + customClass: void 0, + date: void 0, + dayjs: void 0, + isCurrent: void 0, + selected: void 0, + renderText: void 0, + timestamp: void 0 + }; + cell.type = "normal"; + const index = i * 4 + j; + const calTime = props.date.startOf("year").month(index); + const calEndDate = props.rangeState.endDate || props.maxDate || props.rangeState.selecting && props.minDate || null; + cell.inRange = !!(props.minDate && calTime.isSameOrAfter(props.minDate, "month") && calEndDate && calTime.isSameOrBefore(calEndDate, "month")) || !!(props.minDate && calTime.isSameOrBefore(props.minDate, "month") && calEndDate && calTime.isSameOrAfter(calEndDate, "month")); + if (props.minDate?.isSameOrAfter(calEndDate)) { + cell.start = !!(calEndDate && calTime.isSame(calEndDate, "month")); + cell.end = props.minDate && calTime.isSame(props.minDate, "month"); + } else { + cell.start = !!(props.minDate && calTime.isSame(props.minDate, "month")); + cell.end = !!(calEndDate && calTime.isSame(calEndDate, "month")); + } + if (now.isSame(calTime)) cell.type = "today"; + const cellDate = calTime.toDate(); + cell.text = index; + cell.disabled = props.disabledDate?.(cellDate) || false; + cell.date = cellDate; + cell.customClass = props.cellClassName?.(cellDate); + cell.dayjs = calTime; + cell.timestamp = calTime.valueOf(); + cell.isSelected = isSelectedCell(cell); + } + } + return rows; + }); + const focus = () => { + currentCellRef.value?.focus(); + }; + const getCellStyle = (cell) => { + const style = {}; + const year = props.date.year(); + const today = /* @__PURE__ */ new Date(); + const month = cell.text; + style.disabled = props.disabled || (props.disabledDate ? datesInMonth(props.date, year, month, lang.value).every(props.disabledDate) : false); + style.current = castArray(props.parsedValue).some((date) => import_dayjs_min.default.isDayjs(date) && date.year() === year && date.month() === month); + style.today = today.getFullYear() === year && today.getMonth() === month; + if (cell.customClass) style[cell.customClass] = true; + if (cell.inRange) { + style["in-range"] = true; + if (cell.start) style["start-date"] = true; + if (cell.end) style["end-date"] = true; + } + return style; + }; + const isSelectedCell = (cell) => { + const year = props.date.year(); + const month = cell.text; + return castArray(props.date).some((date) => date.year() === year && date.month() === month); + }; + const handleMouseMove = (event) => { + if (!props.rangeState.selecting) return; + let target = event.target; + if (target.tagName === "SPAN") target = target.parentNode?.parentNode; + if (target.tagName === "DIV") target = target.parentNode; + if (target.tagName !== "TD") return; + const row = target.parentNode.rowIndex; + const column = target.cellIndex; + if (rows.value[row][column].disabled) return; + if (row !== lastRow.value || column !== lastColumn.value) { + lastRow.value = row; + lastColumn.value = column; + emit("changerange", { + selecting: true, + endDate: props.date.startOf("year").month(row * 4 + column) + }); + } + }; + const handleMonthTableClick = (event) => { + if (props.disabled) return; + const target = event.target?.closest("td"); + if (target?.tagName !== "TD") return; + if (hasClass(target, "disabled")) return; + const column = target.cellIndex; + const month = target.parentNode.rowIndex * 4 + column; + const newDate = props.date.startOf("year").month(month); + if (props.selectionMode === "months") { + if (event.type === "keydown") { + emit("pick", castArray(props.parsedValue), false); + return; + } + const newMonth = getValidDateOfMonth(props.date, props.date.year(), month, lang.value, props.disabledDate); + emit("pick", hasClass(target, "current") ? castArray(props.parsedValue).filter((d) => d?.year() !== newMonth.year() || d?.month() !== newMonth.month()) : castArray(props.parsedValue).concat([(0, import_dayjs_min.default)(newMonth)])); + } else if (props.selectionMode === "range") if (!props.rangeState.selecting) { + emit("pick", { + minDate: newDate, + maxDate: null + }); + emit("select", true); + } else { + if (props.minDate && newDate >= props.minDate) emit("pick", { + minDate: props.minDate, + maxDate: newDate + }); + else emit("pick", { + minDate: newDate, + maxDate: props.minDate + }); + emit("select", false); + } + else emit("pick", month); + }; + (0, vue.watch)(() => props.date, async () => { + if (tbodyRef.value?.contains(document.activeElement)) { + await (0, vue.nextTick)(); + currentCellRef.value?.focus(); + } + }); + __expose({ focus }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("table", { + role: "grid", + "aria-label": (0, vue.unref)(t)("el.datepicker.monthTablePrompt"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + onClick: handleMonthTableClick, + onMousemove: handleMouseMove + }, [(0, vue.createElementVNode)("tbody", { + ref_key: "tbodyRef", + ref: tbodyRef + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(rows.value, (row, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("tr", { key }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(row, (cell, key_) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("td", { + key: key_, + ref_for: true, + ref: (el) => cell.isSelected && (currentCellRef.value = el), + class: (0, vue.normalizeClass)(getCellStyle(cell)), + "aria-selected": !!cell.isSelected, + "aria-label": (0, vue.unref)(t)(`el.datepicker.month${+cell.text + 1}`), + tabindex: cell.isSelected ? 0 : -1, + onKeydown: [(0, vue.withKeys)((0, vue.withModifiers)(handleMonthTableClick, ["prevent", "stop"]), ["space"]), (0, vue.withKeys)((0, vue.withModifiers)(handleMonthTableClick, ["prevent", "stop"]), ["enter"])] + }, [(0, vue.createVNode)((0, vue.unref)(basic_cell_render_default), { cell: { + ...cell, + renderText: (0, vue.unref)(t)("el.datepicker.months." + months.value[cell.text]) + } }, null, 8, ["cell"])], 42, _hoisted_2$31); + }), 128))]); + }), 128))], 512)], 42, _hoisted_1$49); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-month-table.vue + var basic_month_table_default = basic_month_table_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/basic-year-table.ts + const basicYearTableProps = buildProps({ + ...datePickerSharedProps, + selectionMode: selectionModeWithDefault("year") + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-year-table.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$48 = ["aria-label"]; + const _hoisted_2$30 = [ + "aria-selected", + "aria-label", + "tabindex", + "onKeydown" + ]; + var basic_year_table_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "basic-year-table", + props: basicYearTableProps, + emits: [ + "changerange", + "pick", + "select" + ], + setup(__props, { expose: __expose, emit: __emit }) { + const datesInYear = (year, lang) => { + const firstDay = (0, import_dayjs_min.default)(String(year)).locale(lang).startOf("year"); + return rangeArr(firstDay.endOf("year").dayOfYear()).map((n) => firstDay.add(n, "day").toDate()); + }; + const props = __props; + const emit = __emit; + const ns = useNamespace("year-table"); + const { t, lang } = useLocale(); + const tbodyRef = (0, vue.ref)(); + const currentCellRef = (0, vue.ref)(); + const startYear = (0, vue.computed)(() => { + return Math.floor(props.date.year() / 10) * 10; + }); + const tableRows = (0, vue.ref)([ + [], + [], + [] + ]); + const lastRow = (0, vue.ref)(); + const lastColumn = (0, vue.ref)(); + const rows = (0, vue.computed)(() => { + const rows = tableRows.value; + const now = (0, import_dayjs_min.default)().locale(lang.value).startOf("year"); + for (let i = 0; i < 3; i++) { + const row = rows[i]; + for (let j = 0; j < 4; j++) { + if (i * 4 + j >= 10) break; + let cell = row[j]; + if (!cell) cell = { + row: i, + column: j, + type: "normal", + inRange: false, + start: false, + end: false, + text: -1, + disabled: false, + isSelected: false, + customClass: void 0, + date: void 0, + dayjs: void 0, + isCurrent: void 0, + selected: void 0, + renderText: void 0, + timestamp: void 0 + }; + cell.type = "normal"; + const index = i * 4 + j + startYear.value; + const calTime = (0, import_dayjs_min.default)().year(index); + const calEndDate = props.rangeState.endDate || props.maxDate || props.rangeState.selecting && props.minDate || null; + cell.inRange = !!(props.minDate && calTime.isSameOrAfter(props.minDate, "year") && calEndDate && calTime.isSameOrBefore(calEndDate, "year")) || !!(props.minDate && calTime.isSameOrBefore(props.minDate, "year") && calEndDate && calTime.isSameOrAfter(calEndDate, "year")); + if (props.minDate?.isSameOrAfter(calEndDate)) { + cell.start = !!(calEndDate && calTime.isSame(calEndDate, "year")); + cell.end = !!(props.minDate && calTime.isSame(props.minDate, "year")); + } else { + cell.start = !!(props.minDate && calTime.isSame(props.minDate, "year")); + cell.end = !!(calEndDate && calTime.isSame(calEndDate, "year")); + } + if (now.isSame(calTime)) cell.type = "today"; + cell.text = index; + const cellDate = calTime.toDate(); + cell.disabled = props.disabledDate?.(cellDate) || false; + cell.date = cellDate; + cell.customClass = props.cellClassName?.(cellDate); + cell.dayjs = calTime; + cell.timestamp = calTime.valueOf(); + cell.isSelected = isSelectedCell(cell); + row[j] = cell; + } + } + return rows; + }); + const focus = () => { + currentCellRef.value?.focus(); + }; + const getCellKls = (cell) => { + const kls = {}; + const today = (0, import_dayjs_min.default)().locale(lang.value); + const year = cell.text; + kls.disabled = props.disabled || (props.disabledDate ? datesInYear(year, lang.value).every(props.disabledDate) : false); + kls.today = today.year() === year; + kls.current = castArray(props.parsedValue).some((d) => d.year() === year); + if (cell.customClass) kls[cell.customClass] = true; + if (cell.inRange) { + kls["in-range"] = true; + if (cell.start) kls["start-date"] = true; + if (cell.end) kls["end-date"] = true; + } + return kls; + }; + const isSelectedCell = (cell) => { + const year = cell.text; + return castArray(props.date).some((date) => date.year() === year); + }; + const handleYearTableClick = (event) => { + if (props.disabled) return; + const target = event.target?.closest("td"); + if (!target || !target.textContent || hasClass(target, "disabled")) return; + const column = target.cellIndex; + const selectedYear = target.parentNode.rowIndex * 4 + column + startYear.value; + const newDate = (0, import_dayjs_min.default)().year(selectedYear); + if (props.selectionMode === "range") if (!props.rangeState.selecting) { + emit("pick", { + minDate: newDate, + maxDate: null + }); + emit("select", true); + } else { + if (props.minDate && newDate >= props.minDate) emit("pick", { + minDate: props.minDate, + maxDate: newDate + }); + else emit("pick", { + minDate: newDate, + maxDate: props.minDate + }); + emit("select", false); + } + else if (props.selectionMode === "years") { + if (event.type === "keydown") { + emit("pick", castArray(props.parsedValue), false); + return; + } + const vaildYear = getValidDateOfYear(newDate.startOf("year"), lang.value, props.disabledDate); + emit("pick", hasClass(target, "current") ? castArray(props.parsedValue).filter((d) => d?.year() !== selectedYear) : castArray(props.parsedValue).concat([vaildYear])); + } else emit("pick", selectedYear); + }; + const handleMouseMove = (event) => { + if (!props.rangeState.selecting) return; + const target = event.target?.closest("td"); + if (!target) return; + const row = target.parentNode.rowIndex; + const column = target.cellIndex; + if (rows.value[row][column].disabled) return; + if (row !== lastRow.value || column !== lastColumn.value) { + lastRow.value = row; + lastColumn.value = column; + emit("changerange", { + selecting: true, + endDate: (0, import_dayjs_min.default)().year(startYear.value).add(row * 4 + column, "year") + }); + } + }; + (0, vue.watch)(() => props.date, async () => { + if (tbodyRef.value?.contains(document.activeElement)) { + await (0, vue.nextTick)(); + currentCellRef.value?.focus(); + } + }); + __expose({ focus }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("table", { + role: "grid", + "aria-label": (0, vue.unref)(t)("el.datepicker.yearTablePrompt"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + onClick: handleYearTableClick, + onMousemove: handleMouseMove + }, [(0, vue.createElementVNode)("tbody", { + ref_key: "tbodyRef", + ref: tbodyRef + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(rows.value, (row, rowKey) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("tr", { key: rowKey }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(row, (cell, cellKey) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("td", { + key: `${rowKey}_${cellKey}`, + ref_for: true, + ref: (el) => cell.isSelected && (currentCellRef.value = el), + class: (0, vue.normalizeClass)(["available", getCellKls(cell)]), + "aria-selected": cell.isSelected, + "aria-label": String(cell.text), + tabindex: cell.isSelected ? 0 : -1, + onKeydown: [(0, vue.withKeys)((0, vue.withModifiers)(handleYearTableClick, ["prevent", "stop"]), ["space"]), (0, vue.withKeys)((0, vue.withModifiers)(handleYearTableClick, ["prevent", "stop"]), ["enter"])] + }, [(0, vue.createVNode)((0, vue.unref)(basic_cell_render_default), { cell }, null, 8, ["cell"])], 42, _hoisted_2$30); + }), 128))]); + }), 128))], 512)], 42, _hoisted_1$48); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/basic-year-table.vue + var basic_year_table_default = basic_year_table_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$47 = ["disabled", "onClick"]; + const _hoisted_2$29 = ["aria-label", "disabled"]; + const _hoisted_3$14 = ["aria-label", "disabled"]; + const _hoisted_4$11 = ["tabindex", "aria-disabled"]; + const _hoisted_5$8 = ["tabindex", "aria-disabled"]; + const _hoisted_6$3 = ["aria-label", "disabled"]; + const _hoisted_7$2 = ["aria-label", "disabled"]; + var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "panel-date-pick", + props: panelDatePickProps, + emits: [ + "pick", + "set-picker-option", + "panel-change" + ], + setup(__props, { emit: __emit }) { + const timeWithinRange = (_, __, ___) => true; + const props = __props; + const contextEmit = __emit; + const ppNs = useNamespace("picker-panel"); + const dpNs = useNamespace("date-picker"); + const attrs = (0, vue.useAttrs)(); + const slots = (0, vue.useSlots)(); + const { t, lang } = useLocale(); + const pickerBase = (0, vue.inject)(PICKER_BASE_INJECTION_KEY); + const isDefaultFormat = (0, vue.inject)(ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY, void 0); + const { shortcuts, disabledDate, cellClassName, defaultTime } = pickerBase.props; + const defaultValue = (0, vue.toRef)(pickerBase.props, "defaultValue"); + const currentViewRef = (0, vue.ref)(); + const innerDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value)); + const isChangeToNow = (0, vue.ref)(false); + let isShortcut = false; + const defaultTimeD = (0, vue.computed)(() => { + return (0, import_dayjs_min.default)(defaultTime).locale(lang.value); + }); + const month = (0, vue.computed)(() => { + return innerDate.value.month(); + }); + const year = (0, vue.computed)(() => { + return innerDate.value.year(); + }); + const selectableRange = (0, vue.ref)([]); + const userInputDate = (0, vue.ref)(null); + const userInputTime = (0, vue.ref)(null); + const checkDateWithinRange = (date) => { + return selectableRange.value.length > 0 ? timeWithinRange(date, selectableRange.value, props.format || DEFAULT_FORMATS_TIME) : true; + }; + const formatEmit = (emitDayjs) => { + if (defaultTime && !visibleTime.value && !isChangeToNow.value && !isShortcut) return defaultTimeD.value.year(emitDayjs.year()).month(emitDayjs.month()).date(emitDayjs.date()); + if (showTime.value) return emitDayjs.millisecond(0); + return emitDayjs.startOf("day"); + }; + const emit = (value, ...args) => { + if (!value) contextEmit("pick", value, ...args); + else if (isArray$1(value)) contextEmit("pick", value.map(formatEmit), ...args); + else contextEmit("pick", formatEmit(value), ...args); + userInputDate.value = null; + userInputTime.value = null; + isChangeToNow.value = false; + isShortcut = false; + }; + const handleDatePick = async (value, keepOpen) => { + if (selectionMode.value === "date" && import_dayjs_min.default.isDayjs(value)) { + const parsedDateValue = extractFirst(props.parsedValue); + let newDate = parsedDateValue ? parsedDateValue.year(value.year()).month(value.month()).date(value.date()) : value; + if (!checkDateWithinRange(newDate)) newDate = selectableRange.value[0][0].year(value.year()).month(value.month()).date(value.date()); + innerDate.value = newDate; + emit(newDate, showTime.value || keepOpen); + } else if (selectionMode.value === "week") emit(value.date); + else if (selectionMode.value === "dates") emit(value, true); + }; + const moveByMonth = (forward) => { + const action = forward ? "add" : "subtract"; + innerDate.value = innerDate.value[action](1, "month"); + handlePanelChange("month"); + }; + const moveByYear = (forward) => { + const currentDate = innerDate.value; + const action = forward ? "add" : "subtract"; + innerDate.value = currentView.value === "year" ? currentDate[action](10, "year") : currentDate[action](1, "year"); + handlePanelChange("year"); + }; + const currentView = (0, vue.ref)("date"); + const yearLabel = (0, vue.computed)(() => { + const yearTranslation = t("el.datepicker.year"); + if (currentView.value === "year") { + const startYear = Math.floor(year.value / 10) * 10; + if (yearTranslation) return `${startYear} ${yearTranslation} - ${startYear + 9} ${yearTranslation}`; + return `${startYear} - ${startYear + 9}`; + } + return `${year.value} ${yearTranslation}`; + }); + const handleShortcutClick = (shortcut) => { + const shortcutValue = isFunction$1(shortcut.value) ? shortcut.value() : shortcut.value; + if (shortcutValue) { + isShortcut = true; + emit((0, import_dayjs_min.default)(shortcutValue).locale(lang.value)); + return; + } + if (shortcut.onClick) shortcut.onClick({ + attrs, + slots, + emit: contextEmit + }); + }; + const selectionMode = (0, vue.computed)(() => { + const { type } = props; + if ([ + "week", + "month", + "months", + "year", + "years", + "dates" + ].includes(type)) return type; + return "date"; + }); + const isMultipleType = (0, vue.computed)(() => { + return selectionMode.value === "dates" || selectionMode.value === "months" || selectionMode.value === "years"; + }); + const keyboardMode = (0, vue.computed)(() => { + return selectionMode.value === "date" ? currentView.value : selectionMode.value; + }); + const hasShortcuts = (0, vue.computed)(() => !!shortcuts.length); + const handleMonthPick = async (month, keepOpen) => { + if (selectionMode.value === "month") { + innerDate.value = getValidDateOfMonth(innerDate.value, innerDate.value.year(), month, lang.value, disabledDate); + emit(innerDate.value, false); + } else if (selectionMode.value === "months") emit(month, keepOpen ?? true); + else { + innerDate.value = getValidDateOfMonth(innerDate.value, innerDate.value.year(), month, lang.value, disabledDate); + currentView.value = "date"; + if ([ + "month", + "year", + "date", + "week" + ].includes(selectionMode.value)) { + emit(innerDate.value, true); + await (0, vue.nextTick)(); + handleFocusPicker(); + } + } + handlePanelChange("month"); + }; + const handleYearPick = async (year, keepOpen) => { + if (selectionMode.value === "year") { + innerDate.value = getValidDateOfYear(innerDate.value.startOf("year").year(year), lang.value, disabledDate); + emit(innerDate.value, false); + } else if (selectionMode.value === "years") emit(year, keepOpen ?? true); + else { + innerDate.value = getValidDateOfYear(innerDate.value.year(year), lang.value, disabledDate); + currentView.value = "month"; + if ([ + "month", + "year", + "date", + "week" + ].includes(selectionMode.value)) { + emit(innerDate.value, true); + await (0, vue.nextTick)(); + handleFocusPicker(); + } + } + handlePanelChange("year"); + }; + const dateDisabled = useFormDisabled(); + const showPicker = async (view) => { + if (dateDisabled.value) return; + currentView.value = view; + await (0, vue.nextTick)(); + handleFocusPicker(); + }; + const showTime = (0, vue.computed)(() => props.type === "datetime" || props.type === "datetimerange"); + const footerVisible = (0, vue.computed)(() => { + const showDateFooter = showTime.value || selectionMode.value === "dates"; + const showYearFooter = selectionMode.value === "years"; + const showMonthFooter = selectionMode.value === "months"; + const isDateView = currentView.value === "date"; + const isYearView = currentView.value === "year"; + const isMonthView = currentView.value === "month"; + return showDateFooter && isDateView || showYearFooter && isYearView || showMonthFooter && isMonthView; + }); + const footerFilled = (0, vue.computed)(() => !isMultipleType.value && props.showNow || props.showConfirm); + const disabledConfirm = (0, vue.computed)(() => { + if (!disabledDate) return false; + if (!props.parsedValue) return true; + if (isArray$1(props.parsedValue)) return disabledDate(props.parsedValue[0].toDate()); + return disabledDate(props.parsedValue.toDate()); + }); + const onConfirm = () => { + if (isMultipleType.value) emit(props.parsedValue); + else { + let result = extractFirst(props.parsedValue); + if (!result) { + const defaultTimeD = (0, import_dayjs_min.default)(defaultTime).locale(lang.value); + const defaultValueD = getDefaultValue(); + result = defaultTimeD.year(defaultValueD.year()).month(defaultValueD.month()).date(defaultValueD.date()); + } + innerDate.value = result; + emit(result); + } + }; + const disabledNow = (0, vue.computed)(() => { + if (!disabledDate) return false; + return disabledDate((0, import_dayjs_min.default)().locale(lang.value).toDate()); + }); + const changeToNow = () => { + const nowDate = (0, import_dayjs_min.default)().locale(lang.value).toDate(); + isChangeToNow.value = true; + if ((!disabledDate || !disabledDate(nowDate)) && checkDateWithinRange(nowDate)) { + innerDate.value = (0, import_dayjs_min.default)().locale(lang.value); + emit(innerDate.value); + } + }; + const timeFormat = (0, vue.computed)(() => { + return props.timeFormat || extractTimeFormat(props.format) || DEFAULT_FORMATS_TIME; + }); + const dateFormat = (0, vue.computed)(() => { + return props.dateFormat || extractDateFormat(props.format) || DEFAULT_FORMATS_DATE; + }); + const visibleTime = (0, vue.computed)(() => { + if (userInputTime.value) return userInputTime.value; + if (!props.parsedValue && !defaultValue.value) return; + return (extractFirst(props.parsedValue) || innerDate.value).format(timeFormat.value); + }); + const visibleDate = (0, vue.computed)(() => { + if (userInputDate.value) return userInputDate.value; + if (!props.parsedValue && !defaultValue.value) return; + return (extractFirst(props.parsedValue) || innerDate.value).format(dateFormat.value); + }); + const timePickerVisible = (0, vue.ref)(false); + const onTimePickerInputFocus = () => { + timePickerVisible.value = true; + }; + const handleTimePickClose = () => { + timePickerVisible.value = false; + }; + const getUnits = (date) => { + return { + hour: date.hour(), + minute: date.minute(), + second: date.second(), + year: date.year(), + month: date.month(), + date: date.date() + }; + }; + const handleTimePick = (value, visible, first) => { + const { hour, minute, second } = getUnits(value); + const parsedDateValue = extractFirst(props.parsedValue); + innerDate.value = parsedDateValue ? parsedDateValue.hour(hour).minute(minute).second(second) : value; + emit(innerDate.value, true); + if (!first) timePickerVisible.value = visible; + }; + const handleVisibleTimeChange = (value) => { + const newDate = (0, import_dayjs_min.default)(value, timeFormat.value).locale(lang.value); + if (newDate.isValid() && checkDateWithinRange(newDate)) { + const { year, month, date } = getUnits(innerDate.value); + innerDate.value = newDate.year(year).month(month).date(date); + userInputTime.value = null; + timePickerVisible.value = false; + emit(innerDate.value, true); + } + }; + const handleVisibleDateChange = (value) => { + const newDate = correctlyParseUserInput(value, dateFormat.value, lang.value, isDefaultFormat); + if (newDate.isValid()) { + if (disabledDate && disabledDate(newDate.toDate())) return; + const { hour, minute, second } = getUnits(innerDate.value); + innerDate.value = newDate.hour(hour).minute(minute).second(second); + userInputDate.value = null; + emit(innerDate.value, true); + } + }; + const isValidValue = (date) => { + return import_dayjs_min.default.isDayjs(date) && date.isValid() && (disabledDate ? !disabledDate(date.toDate()) : true); + }; + const parseUserInput = (value) => { + return correctlyParseUserInput(value, props.format, lang.value, isDefaultFormat); + }; + const getDefaultValue = () => { + const parseDate = (0, import_dayjs_min.default)(defaultValue.value).locale(lang.value); + if (!defaultValue.value) { + const defaultTimeDValue = defaultTimeD.value; + return (0, import_dayjs_min.default)().hour(defaultTimeDValue.hour()).minute(defaultTimeDValue.minute()).second(defaultTimeDValue.second()).locale(lang.value); + } + return parseDate; + }; + const handleFocusPicker = () => { + if ([ + "week", + "month", + "year", + "date" + ].includes(selectionMode.value)) currentViewRef.value?.focus(); + }; + const _handleFocusPicker = () => { + handleFocusPicker(); + if (selectionMode.value === "week") handleKeyControl(EVENT_CODE.down); + }; + const handleKeydownTable = (event) => { + const code = getEventCode(event); + if ([ + EVENT_CODE.up, + EVENT_CODE.down, + EVENT_CODE.left, + EVENT_CODE.right, + EVENT_CODE.home, + EVENT_CODE.end, + EVENT_CODE.pageUp, + EVENT_CODE.pageDown + ].includes(code)) { + handleKeyControl(code); + event.stopPropagation(); + event.preventDefault(); + } + if ([ + EVENT_CODE.enter, + EVENT_CODE.space, + EVENT_CODE.numpadEnter + ].includes(code) && userInputDate.value === null && userInputTime.value === null) { + event.preventDefault(); + emit(innerDate.value, false); + } + }; + const handleKeyControl = (code) => { + const { up, down, left, right, home, end, pageUp, pageDown } = EVENT_CODE; + const mapping = { + year: { + [up]: -4, + [down]: 4, + [left]: -1, + [right]: 1, + offset: (date, step) => date.setFullYear(date.getFullYear() + step) + }, + month: { + [up]: -4, + [down]: 4, + [left]: -1, + [right]: 1, + offset: (date, step) => date.setMonth(date.getMonth() + step) + }, + week: { + [up]: -1, + [down]: 1, + [left]: -1, + [right]: 1, + offset: (date, step) => date.setDate(date.getDate() + step * 7) + }, + date: { + [up]: -7, + [down]: 7, + [left]: -1, + [right]: 1, + [home]: (date) => -date.getDay(), + [end]: (date) => -date.getDay() + 6, + [pageUp]: (date) => -new Date(date.getFullYear(), date.getMonth(), 0).getDate(), + [pageDown]: (date) => new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate(), + offset: (date, step) => date.setDate(date.getDate() + step) + } + }; + const newDate = innerDate.value.toDate(); + while (Math.abs(innerDate.value.diff(newDate, "year", true)) < 1) { + const map = mapping[keyboardMode.value]; + if (!map) return; + map.offset(newDate, isFunction$1(map[code]) ? map[code](newDate) : map[code] ?? 0); + if (disabledDate && disabledDate(newDate)) break; + const result = (0, import_dayjs_min.default)(newDate).locale(lang.value); + innerDate.value = result; + contextEmit("pick", result, true); + break; + } + }; + const handlePanelChange = (mode) => { + contextEmit("panel-change", innerDate.value.toDate(), mode, currentView.value); + }; + (0, vue.watch)(() => selectionMode.value, (val) => { + if (["month", "year"].includes(val)) { + currentView.value = val; + return; + } else if (val === "years") { + currentView.value = "year"; + return; + } else if (val === "months") { + currentView.value = "month"; + return; + } + currentView.value = "date"; + }, { immediate: true }); + (0, vue.watch)(() => defaultValue.value, (val) => { + if (val) innerDate.value = getDefaultValue(); + }, { immediate: true }); + (0, vue.watch)(() => props.parsedValue, (val) => { + if (val) { + if (isMultipleType.value) return; + if (isArray$1(val)) return; + innerDate.value = val; + } else innerDate.value = getDefaultValue(); + }, { immediate: true }); + contextEmit("set-picker-option", ["isValidValue", isValidValue]); + contextEmit("set-picker-option", ["parseUserInput", parseUserInput]); + contextEmit("set-picker-option", ["handleFocusPicker", _handleFocusPicker]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ppNs).b(), + (0, vue.unref)(dpNs).b(), + (0, vue.unref)(ppNs).is("border", _ctx.border), + (0, vue.unref)(ppNs).is("disabled", (0, vue.unref)(dateDisabled)), + { + "has-sidebar": _ctx.$slots.sidebar || hasShortcuts.value, + "has-time": showTime.value + } + ]) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body-wrapper")) }, [ + (0, vue.renderSlot)(_ctx.$slots, "sidebar", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) }), + hasShortcuts.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(shortcuts), (shortcut, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key, + type: "button", + disabled: (0, vue.unref)(dateDisabled), + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("shortcut")), + onClick: ($event) => handleShortcutClick(shortcut) + }, (0, vue.toDisplayString)(shortcut.text), 11, _hoisted_1$47); + }), 128))], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body")) }, [ + showTime.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(dpNs).e("time-header")) + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(dpNs).e("editor-wrap")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + placeholder: (0, vue.unref)(t)("el.datepicker.selectDate"), + "model-value": visibleDate.value, + size: "small", + "validate-event": false, + disabled: (0, vue.unref)(dateDisabled), + readonly: !_ctx.editable, + onInput: _cache[0] || (_cache[0] = (val) => userInputDate.value = val), + onChange: handleVisibleDateChange + }, null, 8, [ + "placeholder", + "model-value", + "disabled", + "readonly" + ])], 2), (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(dpNs).e("editor-wrap")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + placeholder: (0, vue.unref)(t)("el.datepicker.selectTime"), + "model-value": visibleTime.value, + size: "small", + "validate-event": false, + disabled: (0, vue.unref)(dateDisabled), + readonly: !_ctx.editable, + onFocus: onTimePickerInputFocus, + onInput: _cache[1] || (_cache[1] = (val) => userInputTime.value = val), + onChange: handleVisibleTimeChange + }, null, 8, [ + "placeholder", + "model-value", + "disabled", + "readonly" + ]), (0, vue.createVNode)((0, vue.unref)(panel_time_pick_default), { + visible: timePickerVisible.value, + format: timeFormat.value, + "parsed-value": innerDate.value, + onPick: handleTimePick + }, null, 8, [ + "visible", + "format", + "parsed-value" + ])], 2)), [[(0, vue.unref)(ClickOutside), handleTimePickClose]])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.withDirectives)((0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(dpNs).e("header"), (currentView.value === "year" || currentView.value === "month") && (0, vue.unref)(dpNs).em("header", "bordered")]) }, [ + (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(dpNs).e("prev-btn")) }, [(0, vue.createElementVNode)("button", { + type: "button", + "aria-label": (0, vue.unref)(t)(`el.datepicker.prevYear`), + class: (0, vue.normalizeClass)(["d-arrow-left", (0, vue.unref)(ppNs).e("icon-btn")]), + disabled: (0, vue.unref)(dateDisabled), + onClick: _cache[2] || (_cache[2] = ($event) => moveByYear(false)) + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_2$29), (0, vue.withDirectives)((0, vue.createElementVNode)("button", { + type: "button", + "aria-label": (0, vue.unref)(t)(`el.datepicker.prevMonth`), + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "arrow-left"]), + disabled: (0, vue.unref)(dateDisabled), + onClick: _cache[3] || (_cache[3] = ($event) => moveByMonth(false)) + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-month", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_left_default))]), + _: 1 + })])], 10, _hoisted_3$14), [[vue.vShow, currentView.value === "date"]])], 2), + (0, vue.createElementVNode)("span", { + role: "button", + class: (0, vue.normalizeClass)((0, vue.unref)(dpNs).e("header-label")), + "aria-live": "polite", + tabindex: _ctx.disabled ? void 0 : 0, + "aria-disabled": _ctx.disabled, + onKeydown: _cache[4] || (_cache[4] = (0, vue.withKeys)(($event) => showPicker("year"), ["enter"])), + onClick: _cache[5] || (_cache[5] = ($event) => showPicker("year")) + }, (0, vue.toDisplayString)(yearLabel.value), 43, _hoisted_4$11), + (0, vue.withDirectives)((0, vue.createElementVNode)("span", { + role: "button", + "aria-live": "polite", + tabindex: _ctx.disabled ? void 0 : 0, + "aria-disabled": _ctx.disabled, + class: (0, vue.normalizeClass)([(0, vue.unref)(dpNs).e("header-label"), { active: currentView.value === "month" }]), + onKeydown: _cache[6] || (_cache[6] = (0, vue.withKeys)(($event) => showPicker("month"), ["enter"])), + onClick: _cache[7] || (_cache[7] = ($event) => showPicker("month")) + }, (0, vue.toDisplayString)((0, vue.unref)(t)(`el.datepicker.month${month.value + 1}`)), 43, _hoisted_5$8), [[vue.vShow, currentView.value === "date"]]), + (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(dpNs).e("next-btn")) }, [(0, vue.withDirectives)((0, vue.createElementVNode)("button", { + type: "button", + "aria-label": (0, vue.unref)(t)(`el.datepicker.nextMonth`), + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "arrow-right"]), + disabled: (0, vue.unref)(dateDisabled), + onClick: _cache[8] || (_cache[8] = ($event) => moveByMonth(true)) + }, [(0, vue.renderSlot)(_ctx.$slots, "next-month", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })])], 10, _hoisted_6$3), [[vue.vShow, currentView.value === "date"]]), (0, vue.createElementVNode)("button", { + type: "button", + "aria-label": (0, vue.unref)(t)(`el.datepicker.nextYear`), + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "d-arrow-right"]), + disabled: (0, vue.unref)(dateDisabled), + onClick: _cache[9] || (_cache[9] = ($event) => moveByYear(true)) + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_7$2)], 2) + ], 2), [[vue.vShow, currentView.value !== "time"]]), + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("content")), + onKeydown: handleKeydownTable + }, [ + currentView.value === "date" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_date_table_default, { + key: 0, + ref_key: "currentViewRef", + ref: currentViewRef, + "selection-mode": selectionMode.value, + date: innerDate.value, + "parsed-value": _ctx.parsedValue, + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(dateDisabled), + "cell-class-name": (0, vue.unref)(cellClassName), + "show-week-number": _ctx.showWeekNumber, + onPick: handleDatePick + }, null, 8, [ + "selection-mode", + "date", + "parsed-value", + "disabled-date", + "disabled", + "cell-class-name", + "show-week-number" + ])) : (0, vue.createCommentVNode)("v-if", true), + currentView.value === "year" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_year_table_default, { + key: 1, + ref_key: "currentViewRef", + ref: currentViewRef, + "selection-mode": selectionMode.value, + date: innerDate.value, + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(dateDisabled), + "parsed-value": _ctx.parsedValue, + "cell-class-name": (0, vue.unref)(cellClassName), + onPick: handleYearPick + }, null, 8, [ + "selection-mode", + "date", + "disabled-date", + "disabled", + "parsed-value", + "cell-class-name" + ])) : (0, vue.createCommentVNode)("v-if", true), + currentView.value === "month" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_month_table_default, { + key: 2, + ref_key: "currentViewRef", + ref: currentViewRef, + "selection-mode": selectionMode.value, + date: innerDate.value, + "parsed-value": _ctx.parsedValue, + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(dateDisabled), + "cell-class-name": (0, vue.unref)(cellClassName), + onPick: handleMonthPick + }, null, 8, [ + "selection-mode", + "date", + "parsed-value", + "disabled-date", + "disabled", + "cell-class-name" + ])) : (0, vue.createCommentVNode)("v-if", true) + ], 34) + ], 2) + ], 2), _ctx.showFooter && footerVisible.value && footerFilled.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("footer")) + }, [(0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElButton), { + text: "", + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("link-btn")), + disabled: disabledNow.value, + onClick: changeToNow + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.now")), 1)]), + _: 1 + }, 8, ["class", "disabled"]), [[vue.vShow, !isMultipleType.value && _ctx.showNow]]), _ctx.showConfirm ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElButton), { + key: 0, + plain: "", + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("link-btn")), + disabled: disabledConfirm.value, + onClick: onConfirm + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.confirm")), 1)]), + _: 1 + }, 8, ["class", "disabled"])) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue + var panel_date_pick_default = panel_date_pick_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/panel-date-range.ts + const panelDateRangeProps = buildProps({ + ...panelSharedProps, + ...panelRangeSharedProps + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/composables/use-shortcut.ts + const useShortcut = (lang) => { + const { emit } = (0, vue.getCurrentInstance)(); + const attrs = (0, vue.useAttrs)(); + const slots = (0, vue.useSlots)(); + const handleShortcutClick = (shortcut) => { + const shortcutValues = isFunction$1(shortcut.value) ? shortcut.value() : shortcut.value; + if (shortcutValues) { + emit("pick", [(0, import_dayjs_min.default)(shortcutValues[0]).locale(lang.value), (0, import_dayjs_min.default)(shortcutValues[1]).locale(lang.value)]); + return; + } + if (shortcut.onClick) shortcut.onClick({ + attrs, + slots, + emit + }); + }; + return handleShortcutClick; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/composables/use-range-picker.ts + const useRangePicker = (props, { defaultValue, defaultTime, leftDate, rightDate, step, unit, sortDates }) => { + const { emit } = (0, vue.getCurrentInstance)(); + const { pickerNs } = (0, vue.inject)(ROOT_PICKER_INJECTION_KEY); + const drpNs = useNamespace("date-range-picker"); + const { t, lang } = useLocale(); + const handleShortcutClick = useShortcut(lang); + const minDate = (0, vue.ref)(); + const maxDate = (0, vue.ref)(); + const rangeState = (0, vue.ref)({ + endDate: null, + selecting: false + }); + const handleChangeRange = (val) => { + rangeState.value = val; + }; + const handleRangeConfirm = (visible = false) => { + const _minDate = (0, vue.unref)(minDate); + const _maxDate = (0, vue.unref)(maxDate); + if (isValidRange([_minDate, _maxDate])) emit("pick", [_minDate, _maxDate], visible); + }; + const onSelect = (selecting) => { + rangeState.value.selecting = selecting; + if (!selecting) rangeState.value.endDate = null; + }; + const parseValue = (parsedValue) => { + if (isArray$1(parsedValue) && parsedValue.length === 2) { + const [start, end] = parsedValue; + minDate.value = start; + leftDate.value = start; + maxDate.value = end; + sortDates((0, vue.unref)(minDate), (0, vue.unref)(maxDate)); + } else restoreDefault(); + }; + const restoreDefault = () => { + let [start, end] = getDefaultValue((0, vue.unref)(defaultValue), { + lang: (0, vue.unref)(lang), + step, + unit, + unlinkPanels: props.unlinkPanels + }); + const getShift = (day) => { + return day.diff(day.startOf("d"), "ms"); + }; + const maybeTimes = (0, vue.unref)(defaultTime); + if (maybeTimes) { + let leftShift = 0; + let rightShift = 0; + if (isArray$1(maybeTimes)) { + const [timeStart, timeEnd] = maybeTimes.map(import_dayjs_min.default); + leftShift = getShift(timeStart); + rightShift = getShift(timeEnd); + } else { + const shift = getShift((0, import_dayjs_min.default)(maybeTimes)); + leftShift = shift; + rightShift = shift; + } + start = start.startOf("d").add(leftShift, "ms"); + end = end.startOf("d").add(rightShift, "ms"); + } + minDate.value = void 0; + maxDate.value = void 0; + leftDate.value = start; + rightDate.value = end; + }; + (0, vue.watch)(defaultValue, (val) => { + if (val) restoreDefault(); + }, { immediate: true }); + (0, vue.watch)(() => props.parsedValue, (parsedValue) => { + if (!parsedValue?.length || !isEqual$1(parsedValue, [minDate.value, maxDate.value])) parseValue(parsedValue); + }, { immediate: true }); + (0, vue.watch)(() => props.visible, () => { + if (props.visible) parseValue(props.parsedValue); + }, { immediate: true }); + return { + minDate, + maxDate, + rangeState, + lang, + ppNs: pickerNs, + drpNs, + handleChangeRange, + handleRangeConfirm, + handleShortcutClick, + onSelect, + parseValue, + t + }; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/composables/use-panel-date-range.ts + const usePanelDateRange = (props, emit, leftDate, rightDate) => { + const leftCurrentView = (0, vue.ref)("date"); + const leftCurrentViewRef = (0, vue.ref)(); + const rightCurrentView = (0, vue.ref)("date"); + const rightCurrentViewRef = (0, vue.ref)(); + const { disabledDate } = (0, vue.inject)(PICKER_BASE_INJECTION_KEY).props; + const { t, lang } = useLocale(); + const leftYear = (0, vue.computed)(() => { + return leftDate.value.year(); + }); + const leftMonth = (0, vue.computed)(() => { + return leftDate.value.month(); + }); + const rightYear = (0, vue.computed)(() => { + return rightDate.value.year(); + }); + const rightMonth = (0, vue.computed)(() => { + return rightDate.value.month(); + }); + function computedYearLabel(currentView, yearValue) { + const yearTranslation = t("el.datepicker.year"); + if (currentView.value === "year") { + const startYear = Math.floor(yearValue.value / 10) * 10; + return yearTranslation ? `${startYear} ${yearTranslation} - ${startYear + 9} ${yearTranslation}` : `${startYear} - ${startYear + 9}`; + } + return `${yearValue.value} ${yearTranslation}`; + } + function focusPicker(currentViewRef) { + currentViewRef?.focus(); + } + async function showPicker(pickerType, view) { + if (props.disabled) return; + const currentView = pickerType === "left" ? leftCurrentView : rightCurrentView; + const currentViewRef = pickerType === "left" ? leftCurrentViewRef : rightCurrentViewRef; + currentView.value = view; + await (0, vue.nextTick)(); + focusPicker(currentViewRef.value); + } + async function handlePick(mode, pickerType, value) { + if (props.disabled) return; + const isLeftPicker = pickerType === "left"; + const startDate = isLeftPicker ? leftDate : rightDate; + const endDate = isLeftPicker ? rightDate : leftDate; + const currentView = isLeftPicker ? leftCurrentView : rightCurrentView; + const currentViewRef = isLeftPicker ? leftCurrentViewRef : rightCurrentViewRef; + if (mode === "year") startDate.value = getValidDateOfYear(startDate.value.year(value), lang.value, disabledDate); + if (mode === "month") startDate.value = getValidDateOfMonth(startDate.value, startDate.value.year(), value, lang.value, disabledDate); + if (!props.unlinkPanels) endDate.value = pickerType === "left" ? startDate.value.add(1, "month") : startDate.value.subtract(1, "month"); + currentView.value = mode === "year" ? "month" : "date"; + await (0, vue.nextTick)(); + focusPicker(currentViewRef.value); + handlePanelChange(mode); + } + function handlePanelChange(mode) { + emit("panel-change", [leftDate.value.toDate(), rightDate.value.toDate()], mode); + } + function adjustDateByView(currentView, date, forward) { + const action = forward ? "add" : "subtract"; + return currentView === "year" ? date[action](10, "year") : date[action](1, "year"); + } + return { + leftCurrentView, + rightCurrentView, + leftCurrentViewRef, + rightCurrentViewRef, + leftYear, + rightYear, + leftMonth, + rightMonth, + leftYearLabel: (0, vue.computed)(() => computedYearLabel(leftCurrentView, leftYear)), + rightYearLabel: (0, vue.computed)(() => computedYearLabel(rightCurrentView, rightYear)), + showLeftPicker: (view) => showPicker("left", view), + showRightPicker: (view) => showPicker("right", view), + handleLeftYearPick: (year) => handlePick("year", "left", year), + handleRightYearPick: (year) => handlePick("year", "right", year), + handleLeftMonthPick: (month) => handlePick("month", "left", month), + handleRightMonthPick: (month) => handlePick("month", "right", month), + handlePanelChange, + adjustDateByView + }; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-date-range.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$46 = ["disabled", "onClick"]; + const _hoisted_2$28 = ["aria-label", "disabled"]; + const _hoisted_3$13 = ["aria-label", "disabled"]; + const _hoisted_4$10 = ["disabled", "aria-label"]; + const _hoisted_5$7 = ["disabled", "aria-label"]; + const _hoisted_6$2 = ["tabindex", "aria-disabled"]; + const _hoisted_7$1 = ["tabindex", "aria-disabled"]; + const _hoisted_8$1 = ["disabled", "aria-label"]; + const _hoisted_9$1 = ["disabled", "aria-label"]; + const _hoisted_10$1 = ["aria-label", "disabled"]; + const _hoisted_11$1 = ["disabled", "aria-label"]; + const _hoisted_12$1 = ["tabindex", "aria-disabled"]; + const _hoisted_13$1 = ["tabindex", "aria-disabled"]; + const unit$2 = "month"; + var panel_date_range_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + __name: "panel-date-range", + props: panelDateRangeProps, + emits: [ + "pick", + "set-picker-option", + "calendar-change", + "panel-change", + "clear" + ], + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const pickerBase = (0, vue.inject)(PICKER_BASE_INJECTION_KEY); + const isDefaultFormat = (0, vue.inject)(ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY, void 0); + const { disabledDate, cellClassName, defaultTime, clearable } = pickerBase.props; + const format = (0, vue.toRef)(pickerBase.props, "format"); + const shortcuts = (0, vue.toRef)(pickerBase.props, "shortcuts"); + const defaultValue = (0, vue.toRef)(pickerBase.props, "defaultValue"); + const { lang } = useLocale(); + const leftDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value)); + const rightDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value).add(1, unit$2)); + const { minDate, maxDate, rangeState, ppNs, drpNs, handleChangeRange, handleRangeConfirm, handleShortcutClick, onSelect, parseValue, t } = useRangePicker(props, { + defaultValue, + defaultTime, + leftDate, + rightDate, + unit: unit$2, + sortDates + }); + (0, vue.watch)(() => props.visible, (visible) => { + if (!visible && rangeState.value.selecting) { + parseValue(props.parsedValue); + onSelect(false); + } + }); + const dateUserInput = (0, vue.ref)({ + min: null, + max: null + }); + const timeUserInput = (0, vue.ref)({ + min: null, + max: null + }); + const { leftCurrentView, rightCurrentView, leftCurrentViewRef, rightCurrentViewRef, leftYear, rightYear, leftMonth, rightMonth, leftYearLabel, rightYearLabel, showLeftPicker, showRightPicker, handleLeftYearPick, handleRightYearPick, handleLeftMonthPick, handleRightMonthPick, handlePanelChange, adjustDateByView } = usePanelDateRange(props, emit, leftDate, rightDate); + const hasShortcuts = (0, vue.computed)(() => !!shortcuts.value.length); + const minVisibleDate = (0, vue.computed)(() => { + if (dateUserInput.value.min !== null) return dateUserInput.value.min; + if (minDate.value) return minDate.value.format(dateFormat.value); + return ""; + }); + const maxVisibleDate = (0, vue.computed)(() => { + if (dateUserInput.value.max !== null) return dateUserInput.value.max; + if (maxDate.value || minDate.value) return (maxDate.value || minDate.value).format(dateFormat.value); + return ""; + }); + const minVisibleTime = (0, vue.computed)(() => { + if (timeUserInput.value.min !== null) return timeUserInput.value.min; + if (minDate.value) return minDate.value.format(timeFormat.value); + return ""; + }); + const maxVisibleTime = (0, vue.computed)(() => { + if (timeUserInput.value.max !== null) return timeUserInput.value.max; + if (maxDate.value || minDate.value) return (maxDate.value || minDate.value).format(timeFormat.value); + return ""; + }); + const timeFormat = (0, vue.computed)(() => { + return props.timeFormat || extractTimeFormat(format.value || "") || DEFAULT_FORMATS_TIME; + }); + const dateFormat = (0, vue.computed)(() => { + return props.dateFormat || extractDateFormat(format.value || "") || DEFAULT_FORMATS_DATE; + }); + const isValidValue = (date) => { + return isValidRange(date) && (disabledDate ? !disabledDate(date[0].toDate()) && !disabledDate(date[1].toDate()) : true); + }; + const leftPrevYear = () => { + leftDate.value = adjustDateByView(leftCurrentView.value, leftDate.value, false); + if (!props.unlinkPanels) rightDate.value = leftDate.value.add(1, "month"); + handlePanelChange("year"); + }; + const leftPrevMonth = () => { + leftDate.value = leftDate.value.subtract(1, "month"); + if (!props.unlinkPanels) rightDate.value = leftDate.value.add(1, "month"); + handlePanelChange("month"); + }; + const rightNextYear = () => { + if (!props.unlinkPanels) { + leftDate.value = adjustDateByView(rightCurrentView.value, leftDate.value, true); + rightDate.value = leftDate.value.add(1, "month"); + } else rightDate.value = adjustDateByView(rightCurrentView.value, rightDate.value, true); + handlePanelChange("year"); + }; + const rightNextMonth = () => { + if (!props.unlinkPanels) { + leftDate.value = leftDate.value.add(1, "month"); + rightDate.value = leftDate.value.add(1, "month"); + } else rightDate.value = rightDate.value.add(1, "month"); + handlePanelChange("month"); + }; + const leftNextYear = () => { + leftDate.value = adjustDateByView(leftCurrentView.value, leftDate.value, true); + handlePanelChange("year"); + }; + const leftNextMonth = () => { + leftDate.value = leftDate.value.add(1, "month"); + handlePanelChange("month"); + }; + const rightPrevYear = () => { + rightDate.value = adjustDateByView(rightCurrentView.value, rightDate.value, false); + handlePanelChange("year"); + }; + const rightPrevMonth = () => { + rightDate.value = rightDate.value.subtract(1, "month"); + handlePanelChange("month"); + }; + const enableMonthArrow = (0, vue.computed)(() => { + const nextMonth = (leftMonth.value + 1) % 12; + const yearOffset = leftMonth.value + 1 >= 12 ? 1 : 0; + return props.unlinkPanels && new Date(leftYear.value + yearOffset, nextMonth) < new Date(rightYear.value, rightMonth.value); + }); + const enableYearArrow = (0, vue.computed)(() => { + return props.unlinkPanels && rightYear.value * 12 + rightMonth.value - (leftYear.value * 12 + leftMonth.value + 1) >= 12; + }); + const dateRangeDisabled = useFormDisabled(); + const btnDisabled = (0, vue.computed)(() => { + return !(minDate.value && maxDate.value && !rangeState.value.selecting && isValidRange([minDate.value, maxDate.value]) && !dateRangeDisabled.value); + }); + const showTime = (0, vue.computed)(() => props.type === "datetime" || props.type === "datetimerange"); + const formatEmit = (emitDayjs, index) => { + if (!emitDayjs) return; + if (defaultTime) return (0, import_dayjs_min.default)(defaultTime[index] || defaultTime).locale(lang.value).year(emitDayjs.year()).month(emitDayjs.month()).date(emitDayjs.date()); + return emitDayjs; + }; + const handleRangePick = (val, close = true) => { + const min_ = val.minDate; + const max_ = val.maxDate; + const minDate_ = formatEmit(min_, 0); + const maxDate_ = formatEmit(max_, 1); + if (maxDate.value === maxDate_ && minDate.value === minDate_) return; + emit("calendar-change", [min_.toDate(), max_ && max_.toDate()]); + maxDate.value = maxDate_; + minDate.value = minDate_; + if (!showTime.value && close) close = !minDate_ || !maxDate_; + handleRangeConfirm(close); + }; + const minTimePickerVisible = (0, vue.ref)(false); + const maxTimePickerVisible = (0, vue.ref)(false); + const handleMinTimeClose = () => { + minTimePickerVisible.value = false; + }; + const handleMaxTimeClose = () => { + maxTimePickerVisible.value = false; + }; + const handleDateInput = (value, type) => { + dateUserInput.value[type] = value; + const parsedValueD = (0, import_dayjs_min.default)(value, dateFormat.value).locale(lang.value); + if (parsedValueD.isValid()) { + if (disabledDate && disabledDate(parsedValueD.toDate())) return; + if (type === "min") { + leftDate.value = parsedValueD; + minDate.value = (minDate.value || leftDate.value).year(parsedValueD.year()).month(parsedValueD.month()).date(parsedValueD.date()); + if (!props.unlinkPanels && (!maxDate.value || maxDate.value.isBefore(minDate.value))) { + rightDate.value = parsedValueD.add(1, "month"); + maxDate.value = minDate.value.add(1, "month"); + } + } else { + rightDate.value = parsedValueD; + maxDate.value = (maxDate.value || rightDate.value).year(parsedValueD.year()).month(parsedValueD.month()).date(parsedValueD.date()); + if (!props.unlinkPanels && (!minDate.value || minDate.value.isAfter(maxDate.value))) { + leftDate.value = parsedValueD.subtract(1, "month"); + minDate.value = maxDate.value.subtract(1, "month"); + } + } + sortDates(minDate.value, maxDate.value); + handleRangeConfirm(true); + } + }; + const handleDateChange = (_, type) => { + dateUserInput.value[type] = null; + }; + const handleTimeInput = (value, type) => { + timeUserInput.value[type] = value; + const parsedValueD = (0, import_dayjs_min.default)(value, timeFormat.value).locale(lang.value); + if (parsedValueD.isValid()) if (type === "min") { + minTimePickerVisible.value = true; + minDate.value = (minDate.value || leftDate.value).hour(parsedValueD.hour()).minute(parsedValueD.minute()).second(parsedValueD.second()); + leftDate.value = minDate.value; + } else { + maxTimePickerVisible.value = true; + maxDate.value = (maxDate.value || rightDate.value).hour(parsedValueD.hour()).minute(parsedValueD.minute()).second(parsedValueD.second()); + rightDate.value = maxDate.value; + } + }; + const handleTimeChange = (_value, type) => { + timeUserInput.value[type] = null; + if (type === "min") { + leftDate.value = minDate.value; + minTimePickerVisible.value = false; + if (!maxDate.value || maxDate.value.isBefore(minDate.value)) maxDate.value = minDate.value; + } else { + rightDate.value = maxDate.value; + maxTimePickerVisible.value = false; + if (maxDate.value && maxDate.value.isBefore(minDate.value)) minDate.value = maxDate.value; + } + handleRangeConfirm(true); + }; + const handleMinTimePick = (value, visible, first) => { + if (timeUserInput.value.min) return; + if (value) minDate.value = (minDate.value || leftDate.value).hour(value.hour()).minute(value.minute()).second(value.second()); + if (!first) minTimePickerVisible.value = visible; + if (!maxDate.value || maxDate.value.isBefore(minDate.value)) { + maxDate.value = minDate.value; + rightDate.value = value; + (0, vue.nextTick)(() => { + parseValue(props.parsedValue); + }); + } + handleRangeConfirm(true); + }; + const handleMaxTimePick = (value, visible, first) => { + if (timeUserInput.value.max) return; + if (value) maxDate.value = (maxDate.value || rightDate.value).hour(value.hour()).minute(value.minute()).second(value.second()); + if (!first) maxTimePickerVisible.value = visible; + if (maxDate.value && maxDate.value.isBefore(minDate.value)) minDate.value = maxDate.value; + handleRangeConfirm(true); + }; + const onClear = () => { + handleClear(); + emit("clear"); + }; + const handleClear = () => { + let valueOnClear = null; + if (pickerBase?.emptyValues) valueOnClear = pickerBase.emptyValues.valueOnClear.value; + leftDate.value = getDefaultValue((0, vue.unref)(defaultValue), { + lang: (0, vue.unref)(lang), + unit: "month", + unlinkPanels: props.unlinkPanels + })[0]; + rightDate.value = leftDate.value.add(1, "month"); + maxDate.value = void 0; + minDate.value = void 0; + handleRangeConfirm(true); + emit("pick", valueOnClear); + }; + const parseUserInput = (value) => { + return correctlyParseUserInput(value, format.value || "", lang.value, isDefaultFormat); + }; + function sortDates(minDate, maxDate) { + if (props.unlinkPanels && maxDate) { + const minDateYear = minDate?.year() || 0; + const minDateMonth = minDate?.month() || 0; + const maxDateYear = maxDate.year(); + const maxDateMonth = maxDate.month(); + rightDate.value = minDateYear === maxDateYear && minDateMonth === maxDateMonth ? maxDate.add(1, unit$2) : maxDate; + } else { + rightDate.value = leftDate.value.add(1, unit$2); + if (maxDate) rightDate.value = rightDate.value.hour(maxDate.hour()).minute(maxDate.minute()).second(maxDate.second()); + } + } + emit("set-picker-option", ["isValidValue", isValidValue]); + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["handleClear", handleClear]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ppNs).b(), + (0, vue.unref)(drpNs).b(), + (0, vue.unref)(ppNs).is("border", _ctx.border), + (0, vue.unref)(ppNs).is("disabled", (0, vue.unref)(dateRangeDisabled)), + { + "has-sidebar": _ctx.$slots.sidebar || hasShortcuts.value, + "has-time": showTime.value + } + ]) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body-wrapper")) }, [ + (0, vue.renderSlot)(_ctx.$slots, "sidebar", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) }), + hasShortcuts.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(shortcuts.value, (shortcut, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key, + type: "button", + disabled: (0, vue.unref)(dateRangeDisabled), + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("shortcut")), + onClick: ($event) => (0, vue.unref)(handleShortcutClick)(shortcut) + }, (0, vue.toDisplayString)(shortcut.text), 11, _hoisted_1$46); + }), 128))], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body")) }, [ + showTime.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("time-header")) + }, [ + (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("editors-wrap")) }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("time-picker-wrap")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + size: "small", + disabled: (0, vue.unref)(rangeState).selecting || (0, vue.unref)(dateRangeDisabled), + placeholder: (0, vue.unref)(t)("el.datepicker.startDate"), + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("editor")), + "model-value": minVisibleDate.value, + "validate-event": false, + readonly: !_ctx.editable, + onInput: _cache[0] || (_cache[0] = (val) => handleDateInput(val, "min")), + onChange: _cache[1] || (_cache[1] = (val) => handleDateChange(val, "min")) + }, null, 8, [ + "disabled", + "placeholder", + "class", + "model-value", + "readonly" + ])], 2), (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("time-picker-wrap")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("editor")), + disabled: (0, vue.unref)(rangeState).selecting || (0, vue.unref)(dateRangeDisabled), + placeholder: (0, vue.unref)(t)("el.datepicker.startTime"), + "model-value": minVisibleTime.value, + "validate-event": false, + readonly: !_ctx.editable, + onFocus: _cache[2] || (_cache[2] = ($event) => minTimePickerVisible.value = true), + onInput: _cache[3] || (_cache[3] = (val) => handleTimeInput(val, "min")), + onChange: _cache[4] || (_cache[4] = (val) => handleTimeChange(val, "min")) + }, null, 8, [ + "class", + "disabled", + "placeholder", + "model-value", + "readonly" + ]), (0, vue.createVNode)((0, vue.unref)(panel_time_pick_default), { + visible: minTimePickerVisible.value, + format: timeFormat.value, + "datetime-role": "start", + "parsed-value": (0, vue.unref)(minDate) || leftDate.value, + onPick: handleMinTimePick + }, null, 8, [ + "visible", + "format", + "parsed-value" + ])], 2)), [[(0, vue.unref)(ClickOutside), handleMinTimeClose]])], 2), + (0, vue.createElementVNode)("span", null, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })]), + (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)([(0, vue.unref)(drpNs).e("editors-wrap"), "is-right"]) }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("time-picker-wrap")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("editor")), + disabled: (0, vue.unref)(rangeState).selecting || (0, vue.unref)(dateRangeDisabled), + placeholder: (0, vue.unref)(t)("el.datepicker.endDate"), + "model-value": maxVisibleDate.value, + readonly: !(0, vue.unref)(minDate) || !_ctx.editable, + "validate-event": false, + onInput: _cache[5] || (_cache[5] = (val) => handleDateInput(val, "max")), + onChange: _cache[6] || (_cache[6] = (val) => handleDateChange(val, "max")) + }, null, 8, [ + "class", + "disabled", + "placeholder", + "model-value", + "readonly" + ])], 2), (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("time-picker-wrap")) }, [(0, vue.createVNode)((0, vue.unref)(ElInput), { + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("editor")), + disabled: (0, vue.unref)(rangeState).selecting || (0, vue.unref)(dateRangeDisabled), + placeholder: (0, vue.unref)(t)("el.datepicker.endTime"), + "model-value": maxVisibleTime.value, + readonly: !(0, vue.unref)(minDate) || !_ctx.editable, + "validate-event": false, + onFocus: _cache[7] || (_cache[7] = ($event) => (0, vue.unref)(minDate) && (maxTimePickerVisible.value = true)), + onInput: _cache[8] || (_cache[8] = (val) => handleTimeInput(val, "max")), + onChange: _cache[9] || (_cache[9] = (val) => handleTimeChange(val, "max")) + }, null, 8, [ + "class", + "disabled", + "placeholder", + "model-value", + "readonly" + ]), (0, vue.createVNode)((0, vue.unref)(panel_time_pick_default), { + "datetime-role": "end", + visible: maxTimePickerVisible.value, + format: timeFormat.value, + "parsed-value": (0, vue.unref)(maxDate) || rightDate.value, + onPick: handleMaxTimePick + }, null, 8, [ + "visible", + "format", + "parsed-value" + ])], 2)), [[(0, vue.unref)(ClickOutside), handleMaxTimeClose]])], 2) + ], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("content"), (0, vue.unref)(drpNs).e("content")], "is-left"]) }, [ + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header")) }, [ + (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "d-arrow-left"]), + "aria-label": (0, vue.unref)(t)(`el.datepicker.prevYear`), + disabled: (0, vue.unref)(dateRangeDisabled), + onClick: leftPrevYear + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_2$28), + (0, vue.withDirectives)((0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "arrow-left"]), + "aria-label": (0, vue.unref)(t)(`el.datepicker.prevMonth`), + disabled: (0, vue.unref)(dateRangeDisabled), + onClick: leftPrevMonth + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-month", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_left_default))]), + _: 1 + })])], 10, _hoisted_3$13), [[vue.vShow, (0, vue.unref)(leftCurrentView) === "date"]]), + _ctx.unlinkPanels ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + disabled: !enableYearArrow.value || (0, vue.unref)(dateRangeDisabled), + class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("icon-btn"), (0, vue.unref)(ppNs).is("disabled", !enableYearArrow.value || (0, vue.unref)(dateRangeDisabled))], "d-arrow-right"]), + "aria-label": (0, vue.unref)(t)(`el.datepicker.nextYear`), + onClick: leftNextYear + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_4$10)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.unlinkPanels && (0, vue.unref)(leftCurrentView) === "date" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 1, + type: "button", + disabled: !enableMonthArrow.value || (0, vue.unref)(dateRangeDisabled), + class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("icon-btn"), (0, vue.unref)(ppNs).is("disabled", !enableMonthArrow.value || (0, vue.unref)(dateRangeDisabled))], "arrow-right"]), + "aria-label": (0, vue.unref)(t)(`el.datepicker.nextMonth`), + onClick: leftNextMonth + }, [(0, vue.renderSlot)(_ctx.$slots, "next-month", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })])], 10, _hoisted_5$7)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", null, [(0, vue.createElementVNode)("span", { + role: "button", + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header-label")), + "aria-live": "polite", + tabindex: _ctx.disabled ? void 0 : 0, + "aria-disabled": _ctx.disabled, + onKeydown: _cache[10] || (_cache[10] = (0, vue.withKeys)(($event) => (0, vue.unref)(showLeftPicker)("year"), ["enter"])), + onClick: _cache[11] || (_cache[11] = ($event) => (0, vue.unref)(showLeftPicker)("year")) + }, (0, vue.toDisplayString)((0, vue.unref)(leftYearLabel)), 43, _hoisted_6$2), (0, vue.withDirectives)((0, vue.createElementVNode)("span", { + role: "button", + "aria-live": "polite", + tabindex: _ctx.disabled ? void 0 : 0, + "aria-disabled": _ctx.disabled, + class: (0, vue.normalizeClass)([(0, vue.unref)(drpNs).e("header-label"), { active: (0, vue.unref)(leftCurrentView) === "month" }]), + onKeydown: _cache[12] || (_cache[12] = (0, vue.withKeys)(($event) => (0, vue.unref)(showLeftPicker)("month"), ["enter"])), + onClick: _cache[13] || (_cache[13] = ($event) => (0, vue.unref)(showLeftPicker)("month")) + }, (0, vue.toDisplayString)((0, vue.unref)(t)(`el.datepicker.month${leftDate.value.month() + 1}`)), 43, _hoisted_7$1), [[vue.vShow, (0, vue.unref)(leftCurrentView) === "date"]])]) + ], 2), + (0, vue.unref)(leftCurrentView) === "date" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_date_table_default, { + key: 0, + ref_key: "leftCurrentViewRef", + ref: leftCurrentViewRef, + "selection-mode": "range", + date: leftDate.value, + "min-date": (0, vue.unref)(minDate), + "max-date": (0, vue.unref)(maxDate), + "range-state": (0, vue.unref)(rangeState), + "disabled-date": (0, vue.unref)(disabledDate), + "cell-class-name": (0, vue.unref)(cellClassName), + "show-week-number": _ctx.showWeekNumber, + disabled: (0, vue.unref)(dateRangeDisabled), + onChangerange: (0, vue.unref)(handleChangeRange), + onPick: handleRangePick, + onSelect: (0, vue.unref)(onSelect) + }, null, 8, [ + "date", + "min-date", + "max-date", + "range-state", + "disabled-date", + "cell-class-name", + "show-week-number", + "disabled", + "onChangerange", + "onSelect" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(leftCurrentView) === "year" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_year_table_default, { + key: 1, + ref_key: "leftCurrentViewRef", + ref: leftCurrentViewRef, + "selection-mode": "year", + date: leftDate.value, + "disabled-date": (0, vue.unref)(disabledDate), + "parsed-value": _ctx.parsedValue, + disabled: (0, vue.unref)(dateRangeDisabled), + onPick: (0, vue.unref)(handleLeftYearPick) + }, null, 8, [ + "date", + "disabled-date", + "parsed-value", + "disabled", + "onPick" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(leftCurrentView) === "month" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_month_table_default, { + key: 2, + ref_key: "leftCurrentViewRef", + ref: leftCurrentViewRef, + "selection-mode": "month", + date: leftDate.value, + "parsed-value": _ctx.parsedValue, + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(dateRangeDisabled), + onPick: (0, vue.unref)(handleLeftMonthPick) + }, null, 8, [ + "date", + "parsed-value", + "disabled-date", + "disabled", + "onPick" + ])) : (0, vue.createCommentVNode)("v-if", true) + ], 2), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("content"), (0, vue.unref)(drpNs).e("content")], "is-right"]) }, [ + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header")) }, [ + _ctx.unlinkPanels ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + disabled: !enableYearArrow.value || (0, vue.unref)(dateRangeDisabled), + class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("icon-btn"), (0, vue.unref)(ppNs).is("disabled", !enableYearArrow.value || (0, vue.unref)(dateRangeDisabled))], "d-arrow-left"]), + "aria-label": (0, vue.unref)(t)(`el.datepicker.prevYear`), + onClick: rightPrevYear + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_8$1)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.unlinkPanels && (0, vue.unref)(rightCurrentView) === "date" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 1, + type: "button", + disabled: !enableMonthArrow.value || (0, vue.unref)(dateRangeDisabled), + class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("icon-btn"), (0, vue.unref)(ppNs).is("disabled", !enableMonthArrow.value || (0, vue.unref)(dateRangeDisabled))], "arrow-left"]), + "aria-label": (0, vue.unref)(t)(`el.datepicker.prevMonth`), + onClick: rightPrevMonth + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-month", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_left_default))]), + _: 1 + })])], 10, _hoisted_9$1)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("button", { + type: "button", + "aria-label": (0, vue.unref)(t)(`el.datepicker.nextYear`), + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "d-arrow-right"]), + disabled: (0, vue.unref)(dateRangeDisabled), + onClick: rightNextYear + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_10$1), + (0, vue.withDirectives)((0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "arrow-right"]), + disabled: (0, vue.unref)(dateRangeDisabled), + "aria-label": (0, vue.unref)(t)(`el.datepicker.nextMonth`), + onClick: rightNextMonth + }, [(0, vue.renderSlot)(_ctx.$slots, "next-month", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })])], 10, _hoisted_11$1), [[vue.vShow, (0, vue.unref)(rightCurrentView) === "date"]]), + (0, vue.createElementVNode)("div", null, [(0, vue.createElementVNode)("span", { + role: "button", + class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header-label")), + "aria-live": "polite", + tabindex: _ctx.disabled ? void 0 : 0, + "aria-disabled": _ctx.disabled, + onKeydown: _cache[14] || (_cache[14] = (0, vue.withKeys)(($event) => (0, vue.unref)(showRightPicker)("year"), ["enter"])), + onClick: _cache[15] || (_cache[15] = ($event) => (0, vue.unref)(showRightPicker)("year")) + }, (0, vue.toDisplayString)((0, vue.unref)(rightYearLabel)), 43, _hoisted_12$1), (0, vue.withDirectives)((0, vue.createElementVNode)("span", { + role: "button", + "aria-live": "polite", + tabindex: _ctx.disabled ? void 0 : 0, + "aria-disabled": _ctx.disabled, + class: (0, vue.normalizeClass)([(0, vue.unref)(drpNs).e("header-label"), { active: (0, vue.unref)(rightCurrentView) === "month" }]), + onKeydown: _cache[16] || (_cache[16] = (0, vue.withKeys)(($event) => (0, vue.unref)(showRightPicker)("month"), ["enter"])), + onClick: _cache[17] || (_cache[17] = ($event) => (0, vue.unref)(showRightPicker)("month")) + }, (0, vue.toDisplayString)((0, vue.unref)(t)(`el.datepicker.month${rightDate.value.month() + 1}`)), 43, _hoisted_13$1), [[vue.vShow, (0, vue.unref)(rightCurrentView) === "date"]])]) + ], 2), + (0, vue.unref)(rightCurrentView) === "date" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_date_table_default, { + key: 0, + ref_key: "rightCurrentViewRef", + ref: rightCurrentViewRef, + "selection-mode": "range", + date: rightDate.value, + "min-date": (0, vue.unref)(minDate), + "max-date": (0, vue.unref)(maxDate), + "range-state": (0, vue.unref)(rangeState), + "disabled-date": (0, vue.unref)(disabledDate), + "cell-class-name": (0, vue.unref)(cellClassName), + "show-week-number": _ctx.showWeekNumber, + disabled: (0, vue.unref)(dateRangeDisabled), + onChangerange: (0, vue.unref)(handleChangeRange), + onPick: handleRangePick, + onSelect: (0, vue.unref)(onSelect) + }, null, 8, [ + "date", + "min-date", + "max-date", + "range-state", + "disabled-date", + "cell-class-name", + "show-week-number", + "disabled", + "onChangerange", + "onSelect" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(rightCurrentView) === "year" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_year_table_default, { + key: 1, + ref_key: "rightCurrentViewRef", + ref: rightCurrentViewRef, + "selection-mode": "year", + date: rightDate.value, + "disabled-date": (0, vue.unref)(disabledDate), + "parsed-value": _ctx.parsedValue, + disabled: (0, vue.unref)(dateRangeDisabled), + onPick: (0, vue.unref)(handleRightYearPick) + }, null, 8, [ + "date", + "disabled-date", + "parsed-value", + "disabled", + "onPick" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(rightCurrentView) === "month" ? ((0, vue.openBlock)(), (0, vue.createBlock)(basic_month_table_default, { + key: 2, + ref_key: "rightCurrentViewRef", + ref: rightCurrentViewRef, + "selection-mode": "month", + date: rightDate.value, + "parsed-value": _ctx.parsedValue, + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(dateRangeDisabled), + onPick: (0, vue.unref)(handleRightMonthPick) + }, null, 8, [ + "date", + "parsed-value", + "disabled-date", + "disabled", + "onPick" + ])) : (0, vue.createCommentVNode)("v-if", true) + ], 2) + ], 2) + ], 2), _ctx.showFooter && showTime.value && (_ctx.showConfirm || (0, vue.unref)(clearable)) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("footer")) + }, [(0, vue.unref)(clearable) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElButton), { + key: 0, + text: "", + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("link-btn")), + onClick: onClear + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.clear")), 1)]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), _ctx.showConfirm ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElButton), { + key: 1, + plain: "", + size: "small", + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("link-btn")), + disabled: btnDisabled.value, + onClick: _cache[18] || (_cache[18] = ($event) => (0, vue.unref)(handleRangeConfirm)(false)) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.datepicker.confirm")), 1)]), + _: 1 + }, 8, ["class", "disabled"])) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-date-range.vue + var panel_date_range_default = panel_date_range_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/panel-month-range.ts + const panelMonthRangeProps = buildProps({ ...panelRangeSharedProps }); + const panelMonthRangeEmits = [ + "pick", + "set-picker-option", + "calendar-change" + ]; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/composables/use-month-range-header.ts + const useMonthRangeHeader = ({ unlinkPanels, leftDate, rightDate }) => { + const { t } = useLocale(); + const leftPrevYear = () => { + leftDate.value = leftDate.value.subtract(1, "year"); + if (!unlinkPanels.value) rightDate.value = rightDate.value.subtract(1, "year"); + }; + const rightNextYear = () => { + if (!unlinkPanels.value) leftDate.value = leftDate.value.add(1, "year"); + rightDate.value = rightDate.value.add(1, "year"); + }; + const leftNextYear = () => { + leftDate.value = leftDate.value.add(1, "year"); + }; + const rightPrevYear = () => { + rightDate.value = rightDate.value.subtract(1, "year"); + }; + return { + leftPrevYear, + rightNextYear, + leftNextYear, + rightPrevYear, + leftLabel: (0, vue.computed)(() => { + return `${leftDate.value.year()} ${t("el.datepicker.year")}`; + }), + rightLabel: (0, vue.computed)(() => { + return `${rightDate.value.year()} ${t("el.datepicker.year")}`; + }), + leftYear: (0, vue.computed)(() => { + return leftDate.value.year(); + }), + rightYear: (0, vue.computed)(() => { + return rightDate.value.year() === leftDate.value.year() ? leftDate.value.year() + 1 : rightDate.value.year(); + }) + }; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-month-range.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$45 = ["disabled", "onClick"]; + const _hoisted_2$27 = ["disabled"]; + const _hoisted_3$12 = ["disabled"]; + const _hoisted_4$9 = ["disabled"]; + const _hoisted_5$6 = ["disabled"]; + const unit$1 = "year"; + var panel_month_range_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "DatePickerMonthRange", + __name: "panel-month-range", + props: panelMonthRangeProps, + emits: panelMonthRangeEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const { lang } = useLocale(); + const pickerBase = (0, vue.inject)(PICKER_BASE_INJECTION_KEY); + const isDefaultFormat = (0, vue.inject)(ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY, void 0); + const { shortcuts, disabledDate, cellClassName } = pickerBase.props; + const format = (0, vue.toRef)(pickerBase.props, "format"); + const defaultValue = (0, vue.toRef)(pickerBase.props, "defaultValue"); + const leftDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value)); + const rightDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value).add(1, unit$1)); + const { minDate, maxDate, rangeState, ppNs, drpNs, handleChangeRange, handleRangeConfirm, handleShortcutClick, onSelect, parseValue } = useRangePicker(props, { + defaultValue, + leftDate, + rightDate, + unit: unit$1, + sortDates + }); + const hasShortcuts = (0, vue.computed)(() => !!shortcuts.length); + const { leftPrevYear, rightNextYear, leftNextYear, rightPrevYear, leftLabel, rightLabel, leftYear, rightYear } = useMonthRangeHeader({ + unlinkPanels: (0, vue.toRef)(props, "unlinkPanels"), + leftDate, + rightDate + }); + const enableYearArrow = (0, vue.computed)(() => { + return props.unlinkPanels && rightYear.value > leftYear.value + 1; + }); + const handleRangePick = (val, close = true) => { + const minDate_ = val.minDate; + const maxDate_ = val.maxDate; + if (maxDate.value === maxDate_ && minDate.value === minDate_) return; + emit("calendar-change", [minDate_.toDate(), maxDate_ && maxDate_.toDate()]); + maxDate.value = maxDate_; + minDate.value = minDate_; + if (!close) return; + handleRangeConfirm(); + }; + const handleClear = () => { + let valueOnClear = null; + if (pickerBase?.emptyValues) valueOnClear = pickerBase.emptyValues.valueOnClear.value; + leftDate.value = getDefaultValue((0, vue.unref)(defaultValue), { + lang: (0, vue.unref)(lang), + unit: "year", + unlinkPanels: props.unlinkPanels + })[0]; + rightDate.value = leftDate.value.add(1, "year"); + emit("pick", valueOnClear); + }; + const parseUserInput = (value) => { + return correctlyParseUserInput(value, format.value, lang.value, isDefaultFormat); + }; + function sortDates(minDate, maxDate) { + if (props.unlinkPanels && maxDate) rightDate.value = (minDate?.year() || 0) === maxDate.year() ? maxDate.add(1, unit$1) : maxDate; + else rightDate.value = leftDate.value.add(1, unit$1); + } + const monthRangeDisabled = useFormDisabled(); + (0, vue.watch)(() => props.visible, (visible) => { + if (!visible && rangeState.value.selecting) { + parseValue(props.parsedValue); + onSelect(false); + } + }); + emit("set-picker-option", ["isValidValue", isValidRange]); + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["handleClear", handleClear]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ppNs).b(), + (0, vue.unref)(drpNs).b(), + (0, vue.unref)(ppNs).is("border", _ctx.border), + (0, vue.unref)(ppNs).is("disabled", (0, vue.unref)(monthRangeDisabled)), + { "has-sidebar": Boolean(_ctx.$slots.sidebar) || hasShortcuts.value } + ]) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body-wrapper")) }, [ + (0, vue.renderSlot)(_ctx.$slots, "sidebar", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) }), + hasShortcuts.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(shortcuts), (shortcut, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key, + type: "button", + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("shortcut")), + disabled: (0, vue.unref)(monthRangeDisabled), + onClick: ($event) => (0, vue.unref)(handleShortcutClick)(shortcut) + }, (0, vue.toDisplayString)(shortcut.text), 11, _hoisted_1$45); + }), 128))], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("content"), (0, vue.unref)(drpNs).e("content")], "is-left"]) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header")) }, [ + (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "d-arrow-left"]), + disabled: (0, vue.unref)(monthRangeDisabled), + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(leftPrevYear) && (0, vue.unref)(leftPrevYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_2$27), + _ctx.unlinkPanels ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + disabled: !enableYearArrow.value || (0, vue.unref)(monthRangeDisabled), + class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("icon-btn"), (0, vue.unref)(ppNs).is("disabled", !enableYearArrow.value || (0, vue.unref)(monthRangeDisabled))], "d-arrow-right"]), + onClick: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(leftNextYear) && (0, vue.unref)(leftNextYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_3$12)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", null, (0, vue.toDisplayString)((0, vue.unref)(leftLabel)), 1) + ], 2), (0, vue.createVNode)(basic_month_table_default, { + "selection-mode": "range", + date: leftDate.value, + "min-date": (0, vue.unref)(minDate), + "max-date": (0, vue.unref)(maxDate), + "range-state": (0, vue.unref)(rangeState), + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(monthRangeDisabled), + "cell-class-name": (0, vue.unref)(cellClassName), + onChangerange: (0, vue.unref)(handleChangeRange), + onPick: handleRangePick, + onSelect: (0, vue.unref)(onSelect) + }, null, 8, [ + "date", + "min-date", + "max-date", + "range-state", + "disabled-date", + "disabled", + "cell-class-name", + "onChangerange", + "onSelect" + ])], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("content"), (0, vue.unref)(drpNs).e("content")], "is-right"]) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header")) }, [ + _ctx.unlinkPanels ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + disabled: !enableYearArrow.value || (0, vue.unref)(monthRangeDisabled), + class: (0, vue.normalizeClass)([[(0, vue.unref)(ppNs).e("icon-btn"), (0, vue.unref)(ppNs).is("disabled", !enableYearArrow.value || (0, vue.unref)(monthRangeDisabled))], "d-arrow-left"]), + onClick: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(rightPrevYear) && (0, vue.unref)(rightPrevYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_4$9)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)([(0, vue.unref)(ppNs).e("icon-btn"), "d-arrow-right"]), + disabled: (0, vue.unref)(monthRangeDisabled), + onClick: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(rightNextYear) && (0, vue.unref)(rightNextYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_5$6), + (0, vue.createElementVNode)("div", null, (0, vue.toDisplayString)((0, vue.unref)(rightLabel)), 1) + ], 2), (0, vue.createVNode)(basic_month_table_default, { + "selection-mode": "range", + date: rightDate.value, + "min-date": (0, vue.unref)(minDate), + "max-date": (0, vue.unref)(maxDate), + "range-state": (0, vue.unref)(rangeState), + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(monthRangeDisabled), + "cell-class-name": (0, vue.unref)(cellClassName), + onChangerange: (0, vue.unref)(handleChangeRange), + onPick: handleRangePick, + onSelect: (0, vue.unref)(onSelect) + }, null, 8, [ + "date", + "min-date", + "max-date", + "range-state", + "disabled-date", + "disabled", + "cell-class-name", + "onChangerange", + "onSelect" + ])], 2)], 2) + ], 2)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-month-range.vue + var panel_month_range_default = panel_month_range_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/props/panel-year-range.ts + const panelYearRangeProps = buildProps({ ...panelRangeSharedProps }); + const panelYearRangeEmits = [ + "pick", + "set-picker-option", + "calendar-change" + ]; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/composables/use-year-range-header.ts + const useYearRangeHeader = ({ unlinkPanels, leftDate, rightDate }) => { + const leftPrevYear = () => { + leftDate.value = leftDate.value.subtract(10, "year"); + if (!unlinkPanels.value) rightDate.value = rightDate.value.subtract(10, "year"); + }; + const rightNextYear = () => { + if (!unlinkPanels.value) leftDate.value = leftDate.value.add(10, "year"); + rightDate.value = rightDate.value.add(10, "year"); + }; + const leftNextYear = () => { + leftDate.value = leftDate.value.add(10, "year"); + }; + const rightPrevYear = () => { + rightDate.value = rightDate.value.subtract(10, "year"); + }; + return { + leftPrevYear, + rightNextYear, + leftNextYear, + rightPrevYear, + leftLabel: (0, vue.computed)(() => { + const leftStartDate = Math.floor(leftDate.value.year() / 10) * 10; + return `${leftStartDate}-${leftStartDate + 9}`; + }), + rightLabel: (0, vue.computed)(() => { + const rightStartDate = Math.floor(rightDate.value.year() / 10) * 10; + return `${rightStartDate}-${rightStartDate + 9}`; + }), + leftYear: (0, vue.computed)(() => { + return Math.floor(leftDate.value.year() / 10) * 10 + 9; + }), + rightYear: (0, vue.computed)(() => { + return Math.floor(rightDate.value.year() / 10) * 10; + }) + }; + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-year-range.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$44 = ["disabled", "onClick"]; + const _hoisted_2$26 = ["disabled"]; + const _hoisted_3$11 = ["disabled"]; + const _hoisted_4$8 = ["disabled"]; + const _hoisted_5$5 = ["disabled"]; + const step = 10; + const unit = "year"; + var panel_year_range_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "DatePickerYearRange", + __name: "panel-year-range", + props: panelYearRangeProps, + emits: panelYearRangeEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const { lang } = useLocale(); + const leftDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value)); + const rightDate = (0, vue.ref)((0, import_dayjs_min.default)().locale(lang.value).add(step, unit)); + const isDefaultFormat = (0, vue.inject)(ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY, void 0); + const pickerBase = (0, vue.inject)(PICKER_BASE_INJECTION_KEY); + const { shortcuts, disabledDate, cellClassName } = pickerBase.props; + const format = (0, vue.toRef)(pickerBase.props, "format"); + const defaultValue = (0, vue.toRef)(pickerBase.props, "defaultValue"); + const { minDate, maxDate, rangeState, ppNs, drpNs, handleChangeRange, handleRangeConfirm, handleShortcutClick, onSelect, parseValue } = useRangePicker(props, { + defaultValue, + leftDate, + rightDate, + step, + unit, + sortDates + }); + const { leftPrevYear, rightNextYear, leftNextYear, rightPrevYear, leftLabel, rightLabel, leftYear, rightYear } = useYearRangeHeader({ + unlinkPanels: (0, vue.toRef)(props, "unlinkPanels"), + leftDate, + rightDate + }); + const yearRangeDisabled = useFormDisabled(); + const hasShortcuts = (0, vue.computed)(() => !!shortcuts.length); + const panelKls = (0, vue.computed)(() => [ + ppNs.b(), + drpNs.b(), + ppNs.is("border", props.border), + ppNs.is("disabled", yearRangeDisabled.value), + { "has-sidebar": Boolean((0, vue.useSlots)().sidebar) || hasShortcuts.value } + ]); + const leftPanelKls = (0, vue.computed)(() => { + return { + content: [ + ppNs.e("content"), + drpNs.e("content"), + "is-left" + ], + arrowLeftBtn: [ppNs.e("icon-btn"), "d-arrow-left"], + arrowRightBtn: [ + ppNs.e("icon-btn"), + ppNs.is("disabled", !enableYearArrow.value || yearRangeDisabled.value), + "d-arrow-right" + ] + }; + }); + const rightPanelKls = (0, vue.computed)(() => { + return { + content: [ + ppNs.e("content"), + drpNs.e("content"), + "is-right" + ], + arrowLeftBtn: [ + ppNs.e("icon-btn"), + ppNs.is("disabled", !enableYearArrow.value || yearRangeDisabled.value), + "d-arrow-left" + ], + arrowRightBtn: [ppNs.e("icon-btn"), "d-arrow-right"] + }; + }); + const enableYearArrow = (0, vue.computed)(() => { + return props.unlinkPanels && rightYear.value > leftYear.value + 1; + }); + const handleRangePick = (val, close = true) => { + const minDate_ = val.minDate; + const maxDate_ = val.maxDate; + if (maxDate.value === maxDate_ && minDate.value === minDate_) return; + emit("calendar-change", [minDate_.toDate(), maxDate_ && maxDate_.toDate()]); + maxDate.value = maxDate_; + minDate.value = minDate_; + if (!close) return; + handleRangeConfirm(); + }; + const parseUserInput = (value) => { + return correctlyParseUserInput(value, format.value, lang.value, isDefaultFormat); + }; + const isValidValue = (date) => { + return isValidRange(date) && (disabledDate ? !disabledDate(date[0].toDate()) && !disabledDate(date[1].toDate()) : true); + }; + const handleClear = () => { + let valueOnClear = null; + if (pickerBase?.emptyValues) valueOnClear = pickerBase.emptyValues.valueOnClear.value; + const defaultArr = getDefaultValue((0, vue.unref)(defaultValue), { + lang: (0, vue.unref)(lang), + step, + unit, + unlinkPanels: props.unlinkPanels + }); + leftDate.value = defaultArr[0]; + rightDate.value = defaultArr[1]; + emit("pick", valueOnClear); + }; + function sortDates(minDate, maxDate) { + if (props.unlinkPanels && maxDate) { + const minDateYear = minDate?.year() || 0; + const maxDateYear = maxDate.year(); + rightDate.value = minDateYear + step > maxDateYear ? maxDate.add(step, unit) : maxDate; + } else rightDate.value = leftDate.value.add(step, unit); + } + (0, vue.watch)(() => props.visible, (visible) => { + if (!visible && rangeState.value.selecting) { + parseValue(props.parsedValue); + onSelect(false); + } + }); + emit("set-picker-option", ["isValidValue", isValidValue]); + emit("set-picker-option", ["parseUserInput", parseUserInput]); + emit("set-picker-option", ["handleClear", handleClear]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)(panelKls.value) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body-wrapper")) }, [ + (0, vue.renderSlot)(_ctx.$slots, "sidebar", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) }), + hasShortcuts.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("sidebar")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(shortcuts), (shortcut, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key, + type: "button", + class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("shortcut")), + disabled: (0, vue.unref)(yearRangeDisabled), + onClick: ($event) => (0, vue.unref)(handleShortcutClick)(shortcut) + }, (0, vue.toDisplayString)(shortcut.text), 11, _hoisted_1$44); + }), 128))], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ppNs).e("body")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(leftPanelKls.value.content) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header")) }, [ + (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)(leftPanelKls.value.arrowLeftBtn), + disabled: (0, vue.unref)(yearRangeDisabled), + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(leftPrevYear) && (0, vue.unref)(leftPrevYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_2$26), + _ctx.unlinkPanels ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + disabled: !enableYearArrow.value || (0, vue.unref)(yearRangeDisabled), + class: (0, vue.normalizeClass)(leftPanelKls.value.arrowRightBtn), + onClick: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(leftNextYear) && (0, vue.unref)(leftNextYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_3$11)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", null, (0, vue.toDisplayString)((0, vue.unref)(leftLabel)), 1) + ], 2), (0, vue.createVNode)(basic_year_table_default, { + "selection-mode": "range", + date: leftDate.value, + "min-date": (0, vue.unref)(minDate), + "max-date": (0, vue.unref)(maxDate), + "range-state": (0, vue.unref)(rangeState), + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(yearRangeDisabled), + "cell-class-name": (0, vue.unref)(cellClassName), + onChangerange: (0, vue.unref)(handleChangeRange), + onPick: handleRangePick, + onSelect: (0, vue.unref)(onSelect) + }, null, 8, [ + "date", + "min-date", + "max-date", + "range-state", + "disabled-date", + "disabled", + "cell-class-name", + "onChangerange", + "onSelect" + ])], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(rightPanelKls.value.content) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(drpNs).e("header")) }, [ + _ctx.unlinkPanels ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + disabled: !enableYearArrow.value || (0, vue.unref)(yearRangeDisabled), + class: (0, vue.normalizeClass)(rightPanelKls.value.arrowLeftBtn), + onClick: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(rightPrevYear) && (0, vue.unref)(rightPrevYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "prev-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_left_default))]), + _: 1 + })])], 10, _hoisted_4$8)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)(rightPanelKls.value.arrowRightBtn), + disabled: (0, vue.unref)(yearRangeDisabled), + onClick: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(rightNextYear) && (0, vue.unref)(rightNextYear)(...args)) + }, [(0, vue.renderSlot)(_ctx.$slots, "next-year", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(d_arrow_right_default))]), + _: 1 + })])], 10, _hoisted_5$5), + (0, vue.createElementVNode)("div", null, (0, vue.toDisplayString)((0, vue.unref)(rightLabel)), 1) + ], 2), (0, vue.createVNode)(basic_year_table_default, { + "selection-mode": "range", + date: rightDate.value, + "min-date": (0, vue.unref)(minDate), + "max-date": (0, vue.unref)(maxDate), + "range-state": (0, vue.unref)(rangeState), + "disabled-date": (0, vue.unref)(disabledDate), + disabled: (0, vue.unref)(yearRangeDisabled), + "cell-class-name": (0, vue.unref)(cellClassName), + onChangerange: (0, vue.unref)(handleChangeRange), + onPick: handleRangePick, + onSelect: (0, vue.unref)(onSelect) + }, null, 8, [ + "date", + "min-date", + "max-date", + "range-state", + "disabled-date", + "disabled", + "cell-class-name", + "onChangerange", + "onSelect" + ])], 2)], 2) + ], 2)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-com/panel-year-range.vue + var panel_year_range_default = panel_year_range_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/panel-utils.ts + const getPanel = function(type) { + switch (type) { + case "daterange": + case "datetimerange": return panel_date_range_default; + case "monthrange": return panel_month_range_default; + case "yearrange": return panel_year_range_default; + default: return panel_date_pick_default; + } + }; + +//#endregion +//#region ../../packages/components/date-picker-panel/src/date-picker-panel.tsx + function _isSlot$7(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + import_dayjs_min.default.extend(import_localeData.default); + import_dayjs_min.default.extend(import_advancedFormat.default); + import_dayjs_min.default.extend(import_customParseFormat.default); + import_dayjs_min.default.extend(import_weekOfYear.default); + import_dayjs_min.default.extend(import_weekYear.default); + import_dayjs_min.default.extend(import_dayOfYear.default); + import_dayjs_min.default.extend(import_isSameOrAfter.default); + import_dayjs_min.default.extend(import_isSameOrBefore.default); + var date_picker_panel_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDatePickerPanel", + install: null, + inheritAttrs: false, + props: datePickerPanelProps, + emits: [ + UPDATE_MODEL_EVENT, + "calendar-change", + "panel-change", + "visible-change", + "clear" + ], + setup(props, { slots, emit, attrs }) { + const ns = useNamespace("picker-panel"); + if (isUndefined((0, vue.inject)(PICKER_BASE_INJECTION_KEY, void 0))) (0, vue.provide)(PICKER_BASE_INJECTION_KEY, { props: (0, vue.reactive)({ ...(0, vue.toRefs)(props) }) }); + (0, vue.provide)(ROOT_PICKER_INJECTION_KEY, { + slots, + pickerNs: ns + }); + const { parsedValue, onCalendarChange, onPanelChange, onSetPickerOption, onPick } = (0, vue.inject)(ROOT_COMMON_PICKER_INJECTION_KEY, () => useCommonPicker(props, emit), true); + return () => { + return (0, vue.createVNode)(getPanel(props.type), (0, vue.mergeProps)(omit(attrs, "onPick"), props, { + "parsedValue": parsedValue.value, + "onSet-picker-option": onSetPickerOption, + "onCalendar-change": onCalendarChange, + "onPanel-change": onPanelChange, + "onClear": () => emit("clear"), + "onPick": onPick + }), _isSlot$7(slots) ? slots : { default: () => [slots] }); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker-panel/index.ts + const ElDatePickerPanel = withInstall(date_picker_panel_default); + +//#endregion +//#region ../../packages/components/date-picker/src/props.ts + const datePickerProps = buildProps({ + ...timePickerDefaultProps, + type: { + type: definePropType(String), + default: "date" + } + }); + +//#endregion +//#region ../../packages/components/date-picker/src/date-picker.tsx + function _isSlot$6(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + var date_picker_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDatePicker", + install: null, + props: datePickerProps, + emits: [UPDATE_MODEL_EVENT], + setup(props, { expose, emit, slots }) { + (0, vue.provide)(ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY, (0, vue.computed)(() => { + return !props.format; + })); + (0, vue.provide)(PICKER_POPPER_OPTIONS_INJECTION_KEY, (0, vue.reactive)((0, vue.toRef)(props, "popperOptions"))); + const commonPicker = (0, vue.ref)(); + expose({ + focus: () => { + commonPicker.value?.focus(); + }, + blur: () => { + commonPicker.value?.blur(); + }, + handleOpen: () => { + commonPicker.value?.handleOpen(); + }, + handleClose: () => { + commonPicker.value?.handleClose(); + } + }); + const onModelValueUpdated = (val) => { + emit(UPDATE_MODEL_EVENT, val); + }; + return () => { + const format = props.format ?? (DEFAULT_FORMATS_DATEPICKER[props.type] || DEFAULT_FORMATS_DATE); + return (0, vue.createVNode)(picker_default, (0, vue.mergeProps)(props, { + "format": format, + "type": props.type, + "ref": commonPicker, + "onUpdate:modelValue": onModelValueUpdated + }), { + default: (scopedProps) => (0, vue.createVNode)(ElDatePickerPanel, (0, vue.mergeProps)({ + "disabled": props.disabled, + "editable": props.editable, + "border": false + }, scopedProps), _isSlot$6(slots) ? slots : { default: () => [slots] }), + "range-separator": slots["range-separator"] + }); + }; + } + }); + +//#endregion +//#region ../../packages/components/date-picker/index.ts + const ElDatePicker = withInstall(date_picker_default); + +//#endregion +//#region ../../packages/components/descriptions/src/description.ts +/** + * @deprecated Removed after 3.0.0, Use `DescriptionProps` instead. + */ + const descriptionProps = buildProps({ + border: Boolean, + column: { + type: Number, + default: 3 + }, + direction: { + type: String, + values: ["horizontal", "vertical"], + default: "horizontal" + }, + size: useSizeProp, + title: { + type: String, + default: "" + }, + extra: { + type: String, + default: "" + }, + labelWidth: { type: [String, Number] } + }); + +//#endregion +//#region ../../packages/components/descriptions/src/descriptions-row.ts +/** + * @deprecated Removed after 3.0.0, Use `DescriptionsRowProps` instead. + */ + const descriptionsRowProps = buildProps({ row: { + type: definePropType(Array), + default: () => [] + } }); + +//#endregion +//#region ../../packages/components/descriptions/src/token.ts + const descriptionsKey = Symbol("elDescriptions"); + +//#endregion +//#region ../../packages/components/descriptions/src/descriptions-cell.ts + var descriptions_cell_default = (0, vue.defineComponent)({ + name: "ElDescriptionsCell", + props: { + cell: { type: Object }, + tag: { + type: String, + default: "td" + }, + type: { type: String } + }, + setup() { + return { descriptions: (0, vue.inject)(descriptionsKey, {}) }; + }, + render() { + const item = getNormalizedProps(this.cell); + const directives = (this.cell?.dirs || []).map((dire) => { + const { dir, arg, modifiers, value } = dire; + return [ + dir, + value, + arg, + modifiers + ]; + }); + const { border, direction } = this.descriptions; + const isVertical = direction === "vertical"; + const renderLabel = () => this.cell?.children?.label?.() || item.label; + const renderContent = () => this.cell?.children?.default?.(); + const span = item.span; + const rowspan = item.rowspan; + const align = item.align ? `is-${item.align}` : ""; + const labelAlign = item.labelAlign ? `is-${item.labelAlign}` : align; + const className = item.className; + const labelClassName = item.labelClassName; + const style = { + width: addUnit(this.type === "label" ? item.labelWidth ?? this.descriptions.labelWidth ?? item.width : item.width), + minWidth: addUnit(item.minWidth) + }; + const ns = useNamespace("descriptions"); + switch (this.type) { + case "label": return (0, vue.withDirectives)((0, vue.h)(this.tag, { + style, + class: [ + ns.e("cell"), + ns.e("label"), + ns.is("bordered-label", border), + ns.is("vertical-label", isVertical), + labelAlign, + labelClassName + ], + colSpan: isVertical ? span : 1, + rowspan: isVertical ? 1 : rowspan + }, renderLabel()), directives); + case "content": return (0, vue.withDirectives)((0, vue.h)(this.tag, { + style, + class: [ + ns.e("cell"), + ns.e("content"), + ns.is("bordered-content", border), + ns.is("vertical-content", isVertical), + align, + className + ], + colSpan: isVertical ? span : span * 2 - 1, + rowspan: isVertical ? rowspan * 2 - 1 : rowspan + }, renderContent()), directives); + default: { + const label = renderLabel(); + const labelStyle = {}; + const width = addUnit(item.labelWidth ?? this.descriptions.labelWidth); + if (width) { + labelStyle.width = width; + labelStyle.display = "inline-block"; + } + return (0, vue.withDirectives)((0, vue.h)("td", { + style, + class: [ns.e("cell"), align], + colSpan: span, + rowspan + }, [!isNil(label) ? (0, vue.h)("span", { + style: labelStyle, + class: [ns.e("label"), labelClassName] + }, label) : void 0, (0, vue.h)("span", { class: [ns.e("content"), className] }, renderContent())]), directives); + } + } + } + }); + +//#endregion +//#region ../../packages/components/descriptions/src/descriptions-row.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$43 = { key: 1 }; + var descriptions_row_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDescriptionsRow", + __name: "descriptions-row", + props: descriptionsRowProps, + setup(__props) { + const descriptions = (0, vue.inject)(descriptionsKey, {}); + return (_ctx, _cache) => { + return (0, vue.unref)(descriptions).direction === "vertical" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createElementVNode)("tr", null, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.row, (cell, _index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(descriptions_cell_default), { + key: `tr1-${_index}`, + cell, + tag: "th", + type: "label" + }, null, 8, ["cell"]); + }), 128))]), (0, vue.createElementVNode)("tr", null, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.row, (cell, _index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(descriptions_cell_default), { + key: `tr2-${_index}`, + cell, + tag: "td", + type: "content" + }, null, 8, ["cell"]); + }), 128))])], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("tr", _hoisted_1$43, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.row, (cell, _index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: `tr3-${_index}` }, [(0, vue.unref)(descriptions).border ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createVNode)((0, vue.unref)(descriptions_cell_default), { + cell, + tag: "td", + type: "label" + }, null, 8, ["cell"]), (0, vue.createVNode)((0, vue.unref)(descriptions_cell_default), { + cell, + tag: "td", + type: "content" + }, null, 8, ["cell"])], 64)) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(descriptions_cell_default), { + key: 1, + cell, + tag: "td", + type: "both" + }, null, 8, ["cell"]))], 64); + }), 128))])); + }; + } + }); + +//#endregion +//#region ../../packages/components/descriptions/src/descriptions-row.vue + var descriptions_row_default = descriptions_row_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/descriptions/src/constants.ts + const COMPONENT_NAME$10 = "ElDescriptionsItem"; + +//#endregion +//#region ../../packages/components/descriptions/src/description.vue?vue&type=script&setup=true&lang.ts + var description_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDescriptions", + __name: "description", + props: descriptionProps, + setup(__props) { + const props = __props; + const ns = useNamespace("descriptions"); + const descriptionsSize = useFormSize(); + const slots = (0, vue.useSlots)(); + (0, vue.provide)(descriptionsKey, props); + const descriptionKls = (0, vue.computed)(() => [ns.b(), ns.m(descriptionsSize.value)]); + const filledNode = (node, span, count, isLast = false) => { + if (!node.props) node.props = {}; + if (span > count) node.props.span = count; + if (isLast) node.props.span = span; + return node; + }; + const getRows = () => { + if (!slots.default) return []; + const children = flattedChildren(slots.default()).filter((node) => node?.type?.name === COMPONENT_NAME$10); + const rows = []; + let temp = []; + let count = props.column; + let totalSpan = 0; + const rowspanTemp = []; + children.forEach((node, index) => { + const span = node.props?.span || 1; + const rowspan = node.props?.rowspan || 1; + const rowNo = rows.length; + rowspanTemp[rowNo] ||= 0; + if (rowspan > 1) for (let i = 1; i < rowspan; i++) { + rowspanTemp[rowNo + i] ||= 0; + rowspanTemp[rowNo + i]++; + totalSpan++; + } + if (rowspanTemp[rowNo] > 0) { + count -= rowspanTemp[rowNo]; + rowspanTemp[rowNo] = 0; + } + if (index < children.length - 1) totalSpan += span > count ? count : span; + if (index === children.length - 1) { + const lastSpan = props.column - totalSpan % props.column; + temp.push(filledNode(node, lastSpan, count, true)); + rows.push(temp); + return; + } + if (span < count) { + count -= span; + temp.push(node); + } else { + temp.push(filledNode(node, span, count)); + rows.push(temp); + count = props.column; + temp = []; + } + }); + return rows; + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)(descriptionKls.value) }, [__props.title || __props.extra || _ctx.$slots.title || _ctx.$slots.extra ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("header")) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) }, [(0, vue.renderSlot)(_ctx.$slots, "title", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("extra")) }, [(0, vue.renderSlot)(_ctx.$slots, "extra", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.extra), 1)])], 2)], 2)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("body")) }, [(0, vue.createElementVNode)("table", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("table"), (0, vue.unref)(ns).is("bordered", __props.border)]) }, [(0, vue.createElementVNode)("tbody", null, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(getRows(), (row, _index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(descriptions_row_default, { + key: _index, + row + }, null, 8, ["row"]); + }), 128))])], 2)], 2)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/descriptions/src/description.vue + var description_default = description_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/descriptions/src/description-item.ts + const descriptionItemProps = buildProps({ + 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: columnAlignment, + default: "left" + }, + labelAlign: { + type: String, + values: columnAlignment + }, + className: { + type: String, + default: "" + }, + labelClassName: { + type: String, + default: "" + } + }); + const DescriptionItem = (0, vue.defineComponent)({ + name: COMPONENT_NAME$10, + props: descriptionItemProps + }); + +//#endregion +//#region ../../packages/components/descriptions/index.ts + const ElDescriptions = withInstall(description_default, { DescriptionsItem: DescriptionItem }); + const ElDescriptionsItem = withNoopInstall(DescriptionItem); + +//#endregion +//#region ../../packages/components/dialog/src/dialog-content.ts +/** + * @deprecated Removed after 3.0.0, Use `DialogContentProps` instead. + */ + const dialogContentProps = buildProps({ + center: Boolean, + alignCenter: { + type: Boolean, + default: void 0 + }, + closeIcon: { type: iconPropType }, + draggable: { + type: Boolean, + default: void 0 + }, + overflow: { + type: Boolean, + default: void 0 + }, + fullscreen: Boolean, + headerClass: String, + bodyClass: String, + footerClass: String, + showClose: { + type: Boolean, + default: true + }, + title: { + type: String, + default: "" + }, + ariaLevel: { + type: String, + default: "2" + } + }); + const dialogContentEmits = { close: () => true }; + const dialogContentPropsDefaults = { + alignCenter: void 0, + draggable: void 0, + overflow: void 0, + showClose: true, + title: "", + ariaLevel: "2" + }; + +//#endregion +//#region ../../packages/components/dialog/src/dialog.ts +/** + * @deprecated Removed after 3.0.0, Use `DialogProps` instead. + */ + const dialogProps = buildProps({ + ...dialogContentProps, + appendToBody: Boolean, + appendTo: { + type: teleportProps.to.type, + default: "body" + }, + beforeClose: { type: definePropType(Function) }, + destroyOnClose: Boolean, + closeOnClickModal: { + type: Boolean, + default: true + }, + closeOnPressEscape: { + type: Boolean, + default: true + }, + lockScroll: { + type: Boolean, + default: true + }, + modal: { + type: Boolean, + default: true + }, + 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: definePropType([String, Object]), + default: void 0 + } + }); + const dialogEmits = { + open: () => true, + opened: () => true, + close: () => true, + closed: () => true, + [UPDATE_MODEL_EVENT]: (value) => isBoolean(value), + openAutoFocus: () => true, + closeAutoFocus: () => true + }; + const dialogContextKey = Symbol("dialogContextKey"); + const dialogPropsDefaults = { + ...dialogContentPropsDefaults, + appendTo: "body", + closeOnClickModal: true, + closeOnPressEscape: true, + lockScroll: true, + modal: true, + openDelay: 0, + closeDelay: 0, + headerAriaLevel: "2", + transition: void 0 + }; + +//#endregion +//#region ../../packages/components/overlay/src/overlay.ts + const overlayProps = buildProps({ + mask: { + type: Boolean, + default: true + }, + customMaskEvent: Boolean, + overlayClass: { type: definePropType([ + String, + Array, + Object + ]) }, + zIndex: { type: definePropType([String, Number]) } + }); + const overlayEmits = { click: (evt) => evt instanceof MouseEvent }; + const BLOCK = "overlay"; + var overlay_default = (0, vue.defineComponent)({ + name: "ElOverlay", + props: overlayProps, + emits: overlayEmits, + setup(props, { slots, emit }) { + const ns = useNamespace(BLOCK); + const onMaskClick = (e) => { + emit("click", e); + }; + const { onClick, onMousedown, onMouseup } = useSameTarget(props.customMaskEvent ? void 0 : onMaskClick); + return () => { + return props.mask ? (0, vue.createVNode)("div", { + class: [ns.b(), props.overlayClass], + style: { zIndex: props.zIndex }, + onClick, + onMousedown, + onMouseup + }, [(0, vue.renderSlot)(slots, "default")], PatchFlags.STYLE | PatchFlags.CLASS | PatchFlags.PROPS, [ + "onClick", + "onMouseup", + "onMousedown" + ]) : (0, vue.h)("div", { + class: props.overlayClass, + style: { + zIndex: props.zIndex, + position: "fixed", + top: "0px", + right: "0px", + bottom: "0px", + left: "0px" + } + }, [(0, vue.renderSlot)(slots, "default")]); + }; + } + }); + +//#endregion +//#region ../../packages/components/overlay/index.ts + const ElOverlay = overlay_default; + +//#endregion +//#region ../../packages/components/dialog/src/constants.ts + const dialogInjectionKey = Symbol("dialogInjectionKey"); + const DEFAULT_DIALOG_TRANSITION = "dialog-fade"; + +//#endregion +//#region ../../packages/components/dialog/src/dialog-content.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$42 = ["aria-level"]; + const _hoisted_2$25 = ["aria-label"]; + const _hoisted_3$10 = ["id"]; + var dialog_content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDialogContent", + __name: "dialog-content", + props: dialogContentProps, + emits: dialogContentEmits, + setup(__props, { expose: __expose }) { + const { t } = useLocale(); + const { Close } = CloseComponents; + const props = __props; + const { dialogRef, headerRef, bodyId, ns, style } = (0, vue.inject)(dialogInjectionKey); + const { focusTrapRef } = (0, vue.inject)(FOCUS_TRAP_INJECTION_KEY); + const composedDialogRef = composeRefs(focusTrapRef, dialogRef); + const draggable = (0, vue.computed)(() => !!props.draggable); + const { resetPosition, updatePosition, isDragging } = useDraggable(dialogRef, headerRef, draggable, (0, vue.computed)(() => !!props.overflow)); + const dialogKls = (0, vue.computed)(() => [ + ns.b(), + ns.is("fullscreen", props.fullscreen), + ns.is("draggable", draggable.value), + ns.is("dragging", isDragging.value), + ns.is("align-center", !!props.alignCenter), + { [ns.m("center")]: props.center } + ]); + __expose({ + resetPosition, + updatePosition + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref: (0, vue.unref)(composedDialogRef), + class: (0, vue.normalizeClass)(dialogKls.value), + style: (0, vue.normalizeStyle)((0, vue.unref)(style)), + tabindex: "-1" + }, [ + (0, vue.createElementVNode)("header", { + ref_key: "headerRef", + ref: headerRef, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("header"), + __props.headerClass, + { "show-close": __props.showClose } + ]) + }, [(0, vue.renderSlot)(_ctx.$slots, "header", {}, () => [(0, vue.createElementVNode)("span", { + role: "heading", + "aria-level": __props.ariaLevel, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) + }, (0, vue.toDisplayString)(__props.title), 11, _hoisted_1$42)]), __props.showClose ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + "aria-label": (0, vue.unref)(t)("el.dialog.close"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("headerbtn")), + type: "button", + onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close")) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close")) }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.closeIcon || (0, vue.unref)(Close))))]), + _: 1 + }, 8, ["class"])], 10, _hoisted_2$25)) : (0, vue.createCommentVNode)("v-if", true)], 2), + (0, vue.createElementVNode)("div", { + id: (0, vue.unref)(bodyId), + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("body"), __props.bodyClass]) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 10, _hoisted_3$10), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("footer", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("footer"), __props.footerClass]) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/dialog/src/dialog-content.vue + var dialog_content_default = dialog_content_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/dialog/src/use-dialog.ts + const COMPONENT_NAME$9 = "ElDialog"; + const useDialog = (props, targetRef) => { + const emit = (0, vue.getCurrentInstance)().emit; + const { nextZIndex } = useZIndex(); + let lastPosition = ""; + const titleId = useId(); + const bodyId = useId(); + const visible = (0, vue.ref)(false); + const closed = (0, vue.ref)(false); + const rendered = (0, vue.ref)(false); + const zIndex = (0, vue.ref)(props.zIndex ?? nextZIndex()); + const closing = (0, vue.ref)(false); + let openTimer = void 0; + let closeTimer = void 0; + const config = useGlobalConfig(); + const namespace = (0, vue.computed)(() => config.value?.namespace ?? defaultNamespace); + const globalConfig = (0, vue.computed)(() => config.value?.dialog); + const style = (0, vue.computed)(() => { + const style = {}; + const varPrefix = `--${namespace.value}-dialog`; + if (!props.fullscreen) { + if (props.top) style[`${varPrefix}-margin-top`] = props.top; + const width = addUnit(props.width); + if (width) style[`${varPrefix}-width`] = width; + } + return style; + }); + const _draggable = (0, vue.computed)(() => (props.draggable ?? globalConfig.value?.draggable ?? false) && !props.fullscreen); + const _alignCenter = (0, vue.computed)(() => props.alignCenter ?? globalConfig.value?.alignCenter ?? false); + const _overflow = (0, vue.computed)(() => props.overflow ?? globalConfig.value?.overflow ?? false); + const penetrable = (0, vue.computed)(() => props.modalPenetrable && !props.modal && !props.fullscreen); + const overlayDialogStyle = (0, vue.computed)(() => { + if (_alignCenter.value) return { display: "flex" }; + return {}; + }); + const transitionConfig = (0, vue.computed)(() => { + const transition = props.transition ?? globalConfig.value?.transition ?? DEFAULT_DIALOG_TRANSITION; + const baseConfig = { + name: transition, + onAfterEnter: afterEnter, + onBeforeLeave: beforeLeave, + onAfterLeave: afterLeave + }; + if (isObject$1(transition)) { + const config = { ...transition }; + const _mergeHook = (userHook, defaultHook) => { + return (el) => { + if (isArray$1(userHook)) userHook.forEach((fn) => { + if (isFunction$1(fn)) fn(el); + }); + else if (isFunction$1(userHook)) userHook(el); + defaultHook(); + }; + }; + config.onAfterEnter = _mergeHook(config.onAfterEnter, afterEnter); + config.onBeforeLeave = _mergeHook(config.onBeforeLeave, beforeLeave); + config.onAfterLeave = _mergeHook(config.onAfterLeave, afterLeave); + if (!config.name) { + config.name = DEFAULT_DIALOG_TRANSITION; + /* @__PURE__ */ debugWarn(COMPONENT_NAME$9, `transition.name is missing when using object syntax, fallback to '${DEFAULT_DIALOG_TRANSITION}'`); + } + return config; + } + return baseConfig; + }); + function afterEnter() { + emit("opened"); + } + function afterLeave() { + emit("closed"); + emit(UPDATE_MODEL_EVENT, false); + if (props.destroyOnClose) rendered.value = false; + closing.value = false; + } + function beforeLeave() { + closing.value = true; + emit("close"); + } + function open() { + closeTimer?.(); + openTimer?.(); + if (props.openDelay && props.openDelay > 0) ({stop: openTimer} = useTimeoutFn(() => doOpen(), props.openDelay)); + else doOpen(); + } + function close() { + openTimer?.(); + closeTimer?.(); + if (props.closeDelay && props.closeDelay > 0) ({stop: closeTimer} = useTimeoutFn(() => doClose(), props.closeDelay)); + else doClose(); + } + function handleClose() { + function hide(shouldCancel) { + if (shouldCancel) return; + closed.value = true; + visible.value = false; + } + if (props.beforeClose) props.beforeClose(hide); + else close(); + } + function onModalClick() { + if (props.closeOnClickModal) handleClose(); + } + function doOpen() { + if (!isClient) return; + visible.value = true; + } + function doClose() { + visible.value = false; + } + function onOpenAutoFocus() { + emit("openAutoFocus"); + } + function onCloseAutoFocus() { + emit("closeAutoFocus"); + } + function onFocusoutPrevented(event) { + if (event.detail?.focusReason === "pointer") event.preventDefault(); + } + if (props.lockScroll) useLockscreen(visible); + function onCloseRequested() { + if (props.closeOnPressEscape) handleClose(); + } + function bringToFront() { + if (!visible.value || !penetrable.value || props.zIndex !== void 0) return; + zIndex.value = nextZIndex(); + } + (0, vue.watch)(() => props.zIndex, () => { + zIndex.value = props.zIndex ?? nextZIndex(); + }); + (0, vue.watch)(() => props.modelValue, (val) => { + if (val) { + closed.value = false; + closing.value = false; + open(); + rendered.value = true; + zIndex.value = props.zIndex ?? nextZIndex(); + (0, vue.nextTick)(() => { + emit("open"); + if (targetRef.value) { + targetRef.value.parentElement.scrollTop = 0; + targetRef.value.parentElement.scrollLeft = 0; + targetRef.value.scrollTop = 0; + } + }); + } else if (visible.value) close(); + }); + (0, vue.watch)(() => props.fullscreen, (val) => { + if (!targetRef.value) return; + if (val) { + lastPosition = targetRef.value.style.transform; + targetRef.value.style.transform = ""; + } else targetRef.value.style.transform = lastPosition; + }); + (0, vue.onMounted)(() => { + if (props.modelValue) { + visible.value = true; + rendered.value = true; + open(); + } + }); + return { + afterEnter, + afterLeave, + beforeLeave, + handleClose, + onModalClick, + close, + doClose, + onOpenAutoFocus, + onCloseAutoFocus, + onCloseRequested, + onFocusoutPrevented, + bringToFront, + titleId, + bodyId, + closed, + style, + overlayDialogStyle, + rendered, + visible, + zIndex, + transitionConfig, + _draggable, + _alignCenter, + _overflow, + closing, + penetrable + }; + }; + +//#endregion +//#region ../../packages/components/dialog/src/dialog.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$41 = [ + "aria-label", + "aria-labelledby", + "aria-describedby" + ]; + var dialog_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDialog", + inheritAttrs: false, + __name: "dialog", + props: dialogProps, + emits: dialogEmits, + setup(__props, { expose: __expose }) { + const props = __props; + const slots = (0, vue.useSlots)(); + useDeprecated({ + 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" + }, (0, vue.computed)(() => !!slots.title)); + const ns = useNamespace("dialog"); + const dialogRef = (0, vue.ref)(); + const headerRef = (0, vue.ref)(); + const dialogContentRef = (0, vue.ref)(); + const { visible, titleId, bodyId, style, overlayDialogStyle, rendered, transitionConfig, zIndex, _draggable, _alignCenter, _overflow, penetrable, handleClose, onModalClick, onOpenAutoFocus, onCloseAutoFocus, onCloseRequested, onFocusoutPrevented, bringToFront, closing } = useDialog(props, dialogRef); + (0, vue.provide)(dialogInjectionKey, { + dialogRef, + headerRef, + bodyId, + ns, + rendered, + style + }); + const overlayEvent = useSameTarget(onModalClick); + const resetPosition = () => { + dialogContentRef.value?.resetPosition(); + }; + __expose({ + visible, + dialogContentRef, + resetPosition, + handleClose + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTeleport), { + to: __props.appendTo, + disabled: __props.appendTo !== "body" ? false : !__props.appendToBody + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(vue.Transition, (0, vue.mergeProps)((0, vue.unref)(transitionConfig), { persisted: "" }), { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElOverlay), { + "custom-mask-event": "", + mask: __props.modal, + "overlay-class": [ + __props.modalClass ?? "", + `${(0, vue.unref)(ns).namespace.value}-modal-dialog`, + (0, vue.unref)(ns).is("penetrable", (0, vue.unref)(penetrable)) + ], + "z-index": (0, vue.unref)(zIndex) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + role: "dialog", + "aria-modal": "true", + "aria-label": __props.title || void 0, + "aria-labelledby": !__props.title ? (0, vue.unref)(titleId) : void 0, + "aria-describedby": (0, vue.unref)(bodyId), + class: (0, vue.normalizeClass)([`${(0, vue.unref)(ns).namespace.value}-overlay-dialog`, (0, vue.unref)(ns).is("closing", (0, vue.unref)(closing))]), + style: (0, vue.normalizeStyle)((0, vue.unref)(overlayDialogStyle)), + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(overlayEvent).onClick && (0, vue.unref)(overlayEvent).onClick(...args)), + onMousedown: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(overlayEvent).onMousedown && (0, vue.unref)(overlayEvent).onMousedown(...args)), + onMouseup: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(overlayEvent).onMouseup && (0, vue.unref)(overlayEvent).onMouseup(...args)) + }, [(0, vue.createVNode)((0, vue.unref)(focus_trap_default), { + loop: "", + trapped: (0, vue.unref)(visible), + "focus-start-el": "container", + onFocusAfterTrapped: (0, vue.unref)(onOpenAutoFocus), + onFocusAfterReleased: (0, vue.unref)(onCloseAutoFocus), + onFocusoutPrevented: (0, vue.unref)(onFocusoutPrevented), + onReleaseRequested: (0, vue.unref)(onCloseRequested) + }, { + default: (0, vue.withCtx)(() => [(0, vue.unref)(rendered) ? ((0, vue.openBlock)(), (0, vue.createBlock)(dialog_content_default, (0, vue.mergeProps)({ + key: 0, + ref_key: "dialogContentRef", + ref: dialogContentRef + }, _ctx.$attrs, { + center: __props.center, + "align-center": (0, vue.unref)(_alignCenter), + "close-icon": __props.closeIcon, + draggable: (0, vue.unref)(_draggable), + overflow: (0, vue.unref)(_overflow), + fullscreen: __props.fullscreen, + "header-class": __props.headerClass, + "body-class": __props.bodyClass, + "footer-class": __props.footerClass, + "show-close": __props.showClose, + title: __props.title, + "aria-level": __props.headerAriaLevel, + onClose: (0, vue.unref)(handleClose), + onMousedown: (0, vue.unref)(bringToFront) + }), (0, vue.createSlots)({ + header: (0, vue.withCtx)(() => [!_ctx.$slots.title ? (0, vue.renderSlot)(_ctx.$slots, "header", { + key: 0, + close: (0, vue.unref)(handleClose), + titleId: (0, vue.unref)(titleId), + titleClass: (0, vue.unref)(ns).e("title") + }) : (0, vue.renderSlot)(_ctx.$slots, "title", { key: 1 })]), + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 2 + }, [_ctx.$slots.footer ? { + name: "footer", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$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" + ])) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 8, [ + "trapped", + "onFocusAfterTrapped", + "onFocusAfterReleased", + "onFocusoutPrevented", + "onReleaseRequested" + ])], 46, _hoisted_1$41)]), + _: 3 + }, 8, [ + "mask", + "overlay-class", + "z-index" + ]), [[vue.vShow, (0, vue.unref)(visible)]])]), + _: 3 + }, 16)]), + _: 3 + }, 8, ["to", "disabled"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/dialog/src/dialog.vue + var dialog_default = dialog_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/dialog/index.ts + const ElDialog = withInstall(dialog_default); + +//#endregion +//#region ../../packages/components/divider/src/divider.ts +/** + * @deprecated Removed after 3.0.0, Use `DividerProps` instead. + */ + const dividerProps = buildProps({ + direction: { + type: String, + values: ["horizontal", "vertical"], + default: "horizontal" + }, + contentPosition: { + type: String, + values: [ + "left", + "center", + "right" + ], + default: "center" + }, + borderStyle: { + type: definePropType(String), + default: "solid" + } + }); + +//#endregion +//#region ../../packages/components/divider/src/divider.vue?vue&type=script&setup=true&lang.ts + var divider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDivider", + __name: "divider", + props: dividerProps, + setup(__props) { + const props = __props; + const ns = useNamespace("divider"); + const dividerStyle = (0, vue.computed)(() => { + return ns.cssVar({ "border-style": props.borderStyle }); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), (0, vue.unref)(ns).m(__props.direction)]), + style: (0, vue.normalizeStyle)(dividerStyle.value), + role: "separator" + }, [_ctx.$slots.default && __props.direction !== "vertical" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("text"), (0, vue.unref)(ns).is(__props.contentPosition)]) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)) : (0, vue.createCommentVNode)("v-if", true)], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/divider/src/divider.vue + var divider_default = divider_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/divider/index.ts + const ElDivider = withInstall(divider_default); + +//#endregion +//#region ../../packages/components/drawer/src/drawer.ts +/** + * @deprecated Removed after 3.0.0, Use `DrawerProps` instead. + */ + const drawerProps = buildProps({ + ...dialogProps, + direction: { + type: String, + default: "rtl", + values: [ + "ltr", + "rtl", + "ttb", + "btt" + ] + }, + resizable: Boolean, + size: { + type: [String, Number], + default: "30%" + }, + withHeader: { + type: Boolean, + default: true + }, + modalFade: { + type: Boolean, + default: true + }, + headerAriaLevel: { + type: String, + default: "2" + } + }); + const drawerEmits = { + ...dialogEmits, + "resize-start": (evt, size) => evt instanceof MouseEvent && typeof size === "number", + resize: (evt, size) => evt instanceof MouseEvent && typeof size === "number", + "resize-end": (evt, size) => evt instanceof MouseEvent && typeof size === "number" + }; + +//#endregion +//#region ../../packages/components/drawer/src/composables/useResizable.ts + function useResizable(props, target, emit) { + const { width, height } = useWindowSize(); + const isHorizontal = (0, vue.computed)(() => ["ltr", "rtl"].includes(props.direction)); + const sign = (0, vue.computed)(() => ["ltr", "ttb"].includes(props.direction) ? 1 : -1); + const windowSize = (0, vue.computed)(() => isHorizontal.value ? width.value : height.value); + const getSize = (0, vue.computed)(() => { + return clamp$2(startSize.value + sign.value * offset.value, 4, windowSize.value); + }); + const startSize = (0, vue.ref)(0); + const offset = (0, vue.ref)(0); + const isResizing = (0, vue.ref)(false); + const hasStartedDragging = (0, vue.ref)(false); + let startPos = []; + let cleanups = []; + const getActualSize = () => { + const drawerEl = target.value?.closest("[aria-modal=\"true\"]"); + if (drawerEl) return isHorizontal.value ? drawerEl.offsetWidth : drawerEl.offsetHeight; + return 100; + }; + (0, vue.watch)(() => [props.size, props.resizable], () => { + hasStartedDragging.value = false; + startSize.value = 0; + offset.value = 0; + onMouseUp(); + }); + const onMousedown = (e) => { + if (!props.resizable) return; + if (!hasStartedDragging.value) { + startSize.value = getActualSize(); + hasStartedDragging.value = true; + } + startPos = [e.pageX, e.pageY]; + isResizing.value = true; + emit("resize-start", e, startSize.value); + cleanups.push(useEventListener(window, "mouseup", onMouseUp), useEventListener(window, "mousemove", onMouseMove)); + }; + const onMouseMove = (e) => { + const { pageX, pageY } = e; + const offsetX = pageX - startPos[0]; + const offsetY = pageY - startPos[1]; + offset.value = isHorizontal.value ? offsetX : offsetY; + emit("resize", e, getSize.value); + }; + const onMouseUp = (e) => { + if (!isResizing.value) return; + startPos = []; + startSize.value = getSize.value; + offset.value = 0; + isResizing.value = false; + cleanups.forEach((cleanup) => cleanup?.()); + cleanups = []; + if (e) emit("resize-end", e, startSize.value); + }; + const cleanup = useEventListener(target, "mousedown", onMousedown); + (0, vue.onBeforeUnmount)(() => { + cleanup(); + onMouseUp(); + }); + return { + size: (0, vue.computed)(() => { + return hasStartedDragging.value ? `${getSize.value}px` : addUnit(props.size); + }), + isResizing, + isHorizontal + }; + } + +//#endregion +//#region ../../packages/components/drawer/src/drawer.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$40 = [ + "aria-label", + "aria-labelledby", + "aria-describedby" + ]; + const _hoisted_2$24 = ["id", "aria-level"]; + const _hoisted_3$9 = ["aria-label"]; + const _hoisted_4$7 = ["id"]; + var drawer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElDrawer", + inheritAttrs: false, + __name: "drawer", + props: drawerProps, + emits: drawerEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const slots = (0, vue.useSlots)(); + useDeprecated({ + 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" + }, (0, vue.computed)(() => !!slots.title)); + const drawerRef = (0, vue.ref)(); + const focusStartRef = (0, vue.ref)(); + const draggerRef = (0, vue.ref)(); + const ns = useNamespace("drawer"); + const { t } = useLocale(); + const { afterEnter, afterLeave, beforeLeave, visible, rendered, titleId, bodyId, zIndex, onModalClick, onOpenAutoFocus, onCloseAutoFocus, onFocusoutPrevented, onCloseRequested, handleClose } = useDialog(props, drawerRef); + const { isHorizontal, size, isResizing } = useResizable(props, draggerRef, emit); + const penetrable = (0, vue.computed)(() => props.modalPenetrable && !props.modal); + __expose({ + handleClose, + afterEnter, + afterLeave + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTeleport), { + to: __props.appendTo, + disabled: __props.appendTo !== "body" ? false : !__props.appendToBody + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(vue.Transition, { + name: (0, vue.unref)(ns).b("fade"), + onAfterEnter: (0, vue.unref)(afterEnter), + onAfterLeave: (0, vue.unref)(afterLeave), + onBeforeLeave: (0, vue.unref)(beforeLeave), + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElOverlay), { + mask: __props.modal, + "overlay-class": [ + (0, vue.unref)(ns).is("drawer"), + __props.modalClass ?? "", + `${(0, vue.unref)(ns).namespace.value}-modal-drawer`, + (0, vue.unref)(ns).is("penetrable", penetrable.value) + ], + "z-index": (0, vue.unref)(zIndex), + onClick: (0, vue.unref)(onModalClick) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(focus_trap_default), { + loop: "", + trapped: (0, vue.unref)(visible), + "focus-trap-el": drawerRef.value, + "focus-start-el": focusStartRef.value, + onFocusAfterTrapped: (0, vue.unref)(onOpenAutoFocus), + onFocusAfterReleased: (0, vue.unref)(onCloseAutoFocus), + onFocusoutPrevented: (0, vue.unref)(onFocusoutPrevented), + onReleaseRequested: (0, vue.unref)(onCloseRequested) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", (0, vue.mergeProps)({ + ref_key: "drawerRef", + ref: drawerRef, + "aria-modal": "true", + "aria-label": __props.title || void 0, + "aria-labelledby": !__props.title ? (0, vue.unref)(titleId) : void 0, + "aria-describedby": (0, vue.unref)(bodyId) + }, _ctx.$attrs, { + class: [ + (0, vue.unref)(ns).b(), + __props.direction, + (0, vue.unref)(visible) && "open", + (0, vue.unref)(ns).is("dragging", (0, vue.unref)(isResizing)) + ], + style: { [(0, vue.unref)(isHorizontal) ? "width" : "height"]: (0, vue.unref)(size) }, + role: "dialog", + onClick: _cache[1] || (_cache[1] = (0, vue.withModifiers)(() => {}, ["stop"])) + }), [ + (0, vue.createElementVNode)("span", { + ref_key: "focusStartRef", + ref: focusStartRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("sr-focus")), + tabindex: "-1" + }, null, 2), + __props.withHeader ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("header", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("header"), __props.headerClass]) + }, [!_ctx.$slots.title ? (0, vue.renderSlot)(_ctx.$slots, "header", { + key: 0, + close: (0, vue.unref)(handleClose), + titleId: (0, vue.unref)(titleId), + titleClass: (0, vue.unref)(ns).e("title") + }, () => [(0, vue.createElementVNode)("span", { + id: (0, vue.unref)(titleId), + role: "heading", + "aria-level": __props.headerAriaLevel, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) + }, (0, vue.toDisplayString)(__props.title), 11, _hoisted_2$24)]) : (0, vue.renderSlot)(_ctx.$slots, "title", { key: 1 }, () => [(0, vue.createCommentVNode)(" DEPRECATED SLOT ")]), __props.showClose ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 2, + "aria-label": (0, vue.unref)(t)("el.drawer.close"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close-btn")), + type: "button", + onClick: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleClose) && (0, vue.unref)(handleClose)(...args)) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + }, 8, ["class"])], 10, _hoisted_3$9)) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(rendered) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + id: (0, vue.unref)(bodyId), + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("body"), __props.bodyClass]) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 10, _hoisted_4$7)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("footer"), __props.footerClass]) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true), + __props.resizable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 3, + ref_key: "draggerRef", + ref: draggerRef, + style: (0, vue.normalizeStyle)({ zIndex: (0, vue.unref)(zIndex) }), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("dragger")) + }, null, 6)) : (0, vue.createCommentVNode)("v-if", true) + ], 16, _hoisted_1$40)]), + _: 3 + }, 8, [ + "trapped", + "focus-trap-el", + "focus-start-el", + "onFocusAfterTrapped", + "onFocusAfterReleased", + "onFocusoutPrevented", + "onReleaseRequested" + ])]), + _: 3 + }, 8, [ + "mask", + "overlay-class", + "z-index", + "onClick" + ]), [[vue.vShow, (0, vue.unref)(visible)]])]), + _: 3 + }, 8, [ + "name", + "onAfterEnter", + "onAfterLeave", + "onBeforeLeave" + ])]), + _: 3 + }, 8, ["to", "disabled"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/drawer/src/drawer.vue + var drawer_default = drawer_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/drawer/index.ts + const ElDrawer = withInstall(drawer_default); + +//#endregion +//#region ../../packages/components/collection/src/collection.vue?vue&type=script&lang.ts + var collection_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ inheritAttrs: false }); + +//#endregion +//#region ../../packages/components/collection/src/collection.vue + function _sfc_render$16(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.renderSlot)(_ctx.$slots, "default"); + } + var collection_default = /* @__PURE__ */ _plugin_vue_export_helper_default(collection_vue_vue_type_script_lang_default, [["render", _sfc_render$16]]); + +//#endregion +//#region ../../packages/components/collection/src/collection-item.vue?vue&type=script&lang.ts + var collection_item_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElCollectionItem", + inheritAttrs: false + }); + +//#endregion +//#region ../../packages/components/collection/src/collection-item.vue + function _sfc_render$15(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.renderSlot)(_ctx.$slots, "default"); + } + var collection_item_default = /* @__PURE__ */ _plugin_vue_export_helper_default(collection_item_vue_vue_type_script_lang_default, [["render", _sfc_render$15]]); + +//#endregion +//#region ../../packages/components/collection/src/collection.ts + const COLLECTION_ITEM_SIGN = `data-el-collection-item`; + const createCollectionWithScope = (name) => { + const COLLECTION_NAME = `El${name}Collection`; + const COLLECTION_ITEM_NAME = `${COLLECTION_NAME}Item`; + const COLLECTION_INJECTION_KEY = Symbol(COLLECTION_NAME); + const COLLECTION_ITEM_INJECTION_KEY = Symbol(COLLECTION_ITEM_NAME); + return { + COLLECTION_INJECTION_KEY, + COLLECTION_ITEM_INJECTION_KEY, + ElCollection: Object.assign({}, collection_default, { + name: COLLECTION_NAME, + setup() { + const collectionRef = (0, vue.ref)(); + const itemMap = /* @__PURE__ */ new Map(); + const getItems = (() => { + const collectionEl = (0, vue.unref)(collectionRef); + if (!collectionEl) return []; + const orderedNodes = Array.from(collectionEl.querySelectorAll(`[${COLLECTION_ITEM_SIGN}]`)); + return [...itemMap.values()].sort((a, b) => orderedNodes.indexOf(a.ref) - orderedNodes.indexOf(b.ref)); + }); + (0, vue.provide)(COLLECTION_INJECTION_KEY, { + itemMap, + getItems, + collectionRef + }); + } + }), + ElCollectionItem: Object.assign({}, collection_item_default, { + name: COLLECTION_ITEM_NAME, + setup(_, { attrs }) { + const collectionItemRef = (0, vue.ref)(); + const collectionInjection = (0, vue.inject)(COLLECTION_INJECTION_KEY, void 0); + (0, vue.provide)(COLLECTION_ITEM_INJECTION_KEY, { collectionItemRef }); + (0, vue.onMounted)(() => { + const collectionItemEl = (0, vue.unref)(collectionItemRef); + if (collectionItemEl) collectionInjection.itemMap.set(collectionItemEl, { + ref: collectionItemEl, + ...attrs + }); + }); + (0, vue.onBeforeUnmount)(() => { + const collectionItemEl = (0, vue.unref)(collectionItemRef); + collectionInjection.itemMap.delete(collectionItemEl); + }); + } + }) + }; + }; + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-group.ts + const rovingFocusGroupProps = buildProps({ + style: { type: definePropType([ + String, + Array, + Object + ]) }, + currentTabId: { type: definePropType(String) }, + defaultCurrentTabId: String, + loop: Boolean, + dir: { + type: String, + values: ["ltr", "rtl"], + default: "ltr" + }, + orientation: { type: definePropType(String) }, + onBlur: Function, + onFocus: Function, + onMousedown: Function + }); + const { ElCollection, ElCollectionItem, COLLECTION_INJECTION_KEY, COLLECTION_ITEM_INJECTION_KEY } = createCollectionWithScope("RovingFocusGroup"); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/tokens.ts + const ROVING_FOCUS_GROUP_INJECTION_KEY = Symbol("elRovingFocusGroup"); + const ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY = Symbol("elRovingFocusGroupItem"); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/utils.ts + const MAP_KEY_TO_FOCUS_INTENT = { + ArrowLeft: "prev", + ArrowUp: "prev", + ArrowRight: "next", + ArrowDown: "next", + PageUp: "first", + Home: "first", + PageDown: "last", + End: "last" + }; + const getDirectionAwareKey = (key, dir) => { + if (dir !== "rtl") return key; + switch (key) { + case EVENT_CODE.right: return EVENT_CODE.left; + case EVENT_CODE.left: return EVENT_CODE.right; + default: return key; + } + }; + const getFocusIntent = (event, orientation, dir) => { + const key = getDirectionAwareKey(getEventCode(event), dir); + if (orientation === "vertical" && [EVENT_CODE.left, EVENT_CODE.right].includes(key)) return void 0; + if (orientation === "horizontal" && [EVENT_CODE.up, EVENT_CODE.down].includes(key)) return void 0; + return MAP_KEY_TO_FOCUS_INTENT[key]; + }; + const reorderArray = (array, atIdx) => { + return array.map((_, idx) => array[(idx + atIdx) % array.length]); + }; + const focusFirst = (elements) => { + const { activeElement: prevActive } = document; + for (const element of elements) { + if (element === prevActive) return; + element.focus(); + if (prevActive !== document.activeElement) return; + } + }; + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-group-impl.vue?vue&type=script&lang.ts + const CURRENT_TAB_ID_CHANGE_EVT = "currentTabIdChange"; + const ENTRY_FOCUS_EVT = "rovingFocusGroup.entryFocus"; + const EVT_OPTS = { + bubbles: false, + cancelable: true + }; + var roving_focus_group_impl_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElRovingFocusGroupImpl", + inheritAttrs: false, + props: rovingFocusGroupProps, + emits: [CURRENT_TAB_ID_CHANGE_EVT, "entryFocus"], + setup(props, { emit }) { + const currentTabbedId = (0, vue.ref)((props.currentTabId || props.defaultCurrentTabId) ?? null); + const isBackingOut = (0, vue.ref)(false); + const isClickFocus = (0, vue.ref)(false); + const rovingFocusGroupRef = (0, vue.ref)(); + const { getItems } = (0, vue.inject)(COLLECTION_INJECTION_KEY, void 0); + const rovingFocusGroupRootStyle = (0, vue.computed)(() => { + return [{ outline: "none" }, props.style]; + }); + const onItemFocus = (tabbedId) => { + emit(CURRENT_TAB_ID_CHANGE_EVT, tabbedId); + }; + const onItemShiftTab = () => { + isBackingOut.value = true; + }; + const onMousedown = composeEventHandlers((e) => { + props.onMousedown?.(e); + }, () => { + isClickFocus.value = true; + }); + const onFocus = composeEventHandlers((e) => { + props.onFocus?.(e); + }, (e) => { + const isKeyboardFocus = !(0, vue.unref)(isClickFocus); + const { target, currentTarget } = e; + if (target === currentTarget && isKeyboardFocus && !(0, vue.unref)(isBackingOut)) { + const entryFocusEvt = new Event(ENTRY_FOCUS_EVT, EVT_OPTS); + currentTarget?.dispatchEvent(entryFocusEvt); + if (!entryFocusEvt.defaultPrevented) { + const items = getItems().filter((item) => item.focusable); + focusFirst([ + items.find((item) => item.active), + items.find((item) => item.id === (0, vue.unref)(currentTabbedId)), + ...items + ].filter(Boolean).map((item) => item.ref)); + } + } + isClickFocus.value = false; + }); + const onBlur = composeEventHandlers((e) => { + props.onBlur?.(e); + }, () => { + isBackingOut.value = false; + }); + const handleEntryFocus = (...args) => { + emit("entryFocus", ...args); + }; + const onKeydown = (e) => { + const focusIntent = getFocusIntent(e); + if (focusIntent) { + e.preventDefault(); + let elements = getItems().filter((item) => item.focusable).map((item) => item.ref); + switch (focusIntent) { + case "last": + elements.reverse(); + break; + case "prev": + case "next": { + if (focusIntent === "prev") elements.reverse(); + const currentIdx = elements.indexOf(e.currentTarget); + elements = props.loop ? reorderArray(elements, currentIdx + 1) : elements.slice(currentIdx + 1); + break; + } + default: break; + } + (0, vue.nextTick)(() => { + focusFirst(elements); + }); + } + }; + (0, vue.provide)(ROVING_FOCUS_GROUP_INJECTION_KEY, { + currentTabbedId: (0, vue.readonly)(currentTabbedId), + loop: (0, vue.toRef)(props, "loop"), + tabIndex: (0, vue.computed)(() => { + return (0, vue.unref)(isBackingOut) ? -1 : 0; + }), + rovingFocusGroupRef, + rovingFocusGroupRootStyle, + orientation: (0, vue.toRef)(props, "orientation"), + dir: (0, vue.toRef)(props, "dir"), + onItemFocus, + onItemShiftTab, + onBlur, + onFocus, + onMousedown, + onKeydown + }); + (0, vue.watch)(() => props.currentTabId, (val) => { + currentTabbedId.value = val ?? null; + }); + useEventListener(rovingFocusGroupRef, ENTRY_FOCUS_EVT, handleEntryFocus); + } + }); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-group-impl.vue + function _sfc_render$14(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.renderSlot)(_ctx.$slots, "default"); + } + var roving_focus_group_impl_default = /* @__PURE__ */ _plugin_vue_export_helper_default(roving_focus_group_impl_vue_vue_type_script_lang_default, [["render", _sfc_render$14]]); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-group.vue?vue&type=script&lang.ts + var roving_focus_group_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElRovingFocusGroup", + components: { + ElFocusGroupCollection: ElCollection, + ElRovingFocusGroupImpl: roving_focus_group_impl_default + } + }); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-group.vue + function _sfc_render$13(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_roving_focus_group_impl = (0, vue.resolveComponent)("el-roving-focus-group-impl"); + const _component_el_focus_group_collection = (0, vue.resolveComponent)("el-focus-group-collection"); + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_focus_group_collection, null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_roving_focus_group_impl, (0, vue.normalizeProps)((0, vue.guardReactiveProps)(_ctx.$attrs)), { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 16)]), + _: 3 + }); + } + var roving_focus_group_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(roving_focus_group_vue_vue_type_script_lang_default, [["render", _sfc_render$13]]); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-item.vue?vue&type=script&lang.ts + var roving_focus_item_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + components: { ElRovingFocusCollectionItem: ElCollectionItem }, + props: { + focusable: { + type: Boolean, + default: true + }, + active: Boolean + }, + emits: [ + "mousedown", + "focus", + "keydown" + ], + setup(props, { emit }) { + const { currentTabbedId, onItemFocus, onItemShiftTab, onKeydown } = (0, vue.inject)(ROVING_FOCUS_GROUP_INJECTION_KEY, void 0); + const id = useId(); + const rovingFocusGroupItemRef = (0, vue.ref)(); + const handleMousedown = composeEventHandlers((e) => { + emit("mousedown", e); + }, (e) => { + if (!props.focusable) e.preventDefault(); + else onItemFocus((0, vue.unref)(id)); + }); + const handleFocus = composeEventHandlers((e) => { + emit("focus", e); + }, () => { + onItemFocus((0, vue.unref)(id)); + }); + const handleKeydown = composeEventHandlers((e) => { + emit("keydown", e); + }, (e) => { + const { shiftKey, target, currentTarget } = e; + if (getEventCode(e) === EVENT_CODE.tab && shiftKey) { + onItemShiftTab(); + return; + } + if (target !== currentTarget) return; + onKeydown(e); + }); + const isCurrentTab = (0, vue.computed)(() => currentTabbedId.value === (0, vue.unref)(id)); + (0, vue.provide)(ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY, { + rovingFocusGroupItemRef, + tabIndex: (0, vue.computed)(() => (0, vue.unref)(isCurrentTab) ? 0 : -1), + handleMousedown, + handleFocus, + handleKeydown + }); + return { + id, + handleKeydown, + handleFocus, + handleMousedown + }; + } + }); + +//#endregion +//#region ../../packages/components/roving-focus-group/src/roving-focus-item.vue + function _sfc_render$12(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_roving_focus_collection_item = (0, vue.resolveComponent)("el-roving-focus-collection-item"); + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_roving_focus_collection_item, { + id: _ctx.id, + focusable: _ctx.focusable, + active: _ctx.active + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, [ + "id", + "focusable", + "active" + ]); + } + var roving_focus_item_default = /* @__PURE__ */ _plugin_vue_export_helper_default(roving_focus_item_vue_vue_type_script_lang_default, [["render", _sfc_render$12]]); + +//#endregion +//#region ../../packages/components/roving-focus-group/index.ts + var roving_focus_group_default = roving_focus_group_default$1; + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown.ts + const dropdownProps = buildProps({ + trigger: { + ...useTooltipTriggerProps.trigger, + type: definePropType([String, Array]) + }, + triggerKeys: { + type: definePropType(Array), + default: () => [ + EVENT_CODE.enter, + EVENT_CODE.numpadEnter, + EVENT_CODE.space, + EVENT_CODE.down + ] + }, + virtualTriggering: useTooltipTriggerProps.virtualTriggering, + virtualRef: useTooltipTriggerProps.virtualRef, + effect: { + ...useTooltipContentProps.effect, + default: "light" + }, + type: { type: definePropType(String) }, + placement: { + type: definePropType(String), + default: "bottom" + }, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + id: String, + size: { + type: String, + default: "" + }, + splitButton: Boolean, + hideOnClick: { + type: Boolean, + default: true + }, + loop: { + type: Boolean, + default: true + }, + showArrow: { + type: Boolean, + default: true + }, + showTimeout: { + type: Number, + default: 150 + }, + hideTimeout: { + type: Number, + default: 150 + }, + tabindex: { + type: definePropType([Number, String]), + default: 0 + }, + maxHeight: { + type: definePropType([Number, String]), + default: "" + }, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + disabled: Boolean, + role: { + type: String, + values: roleTypes, + default: "menu" + }, + buttonProps: { type: definePropType(Object) }, + teleported: useTooltipContentProps.teleported, + appendTo: useTooltipContentProps.appendTo, + persistent: { + type: Boolean, + default: true + } + }); + const dropdownItemProps = buildProps({ + command: { + type: [ + Object, + String, + Number + ], + default: () => ({}) + }, + disabled: Boolean, + divided: Boolean, + textValue: String, + icon: { type: iconPropType } + }); + const dropdownMenuProps = buildProps({ onKeydown: { type: definePropType(Function) } }); + const FIRST_KEYS = [ + EVENT_CODE.down, + EVENT_CODE.pageDown, + EVENT_CODE.home + ]; + const LAST_KEYS = [ + EVENT_CODE.up, + EVENT_CODE.pageUp, + EVENT_CODE.end + ]; + const FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS]; + +//#endregion +//#region ../../packages/components/dropdown/src/tokens.ts + const DROPDOWN_INJECTION_KEY = Symbol("elDropdown"); + const DROPDOWN_INSTANCE_INJECTION_KEY = "elDropdown"; + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown.vue?vue&type=script&lang.ts + const { ButtonGroup: ElButtonGroup$1 } = ElButton; + var dropdown_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElDropdown", + components: { + ElButton, + ElButtonGroup: ElButtonGroup$1, + ElScrollbar, + ElTooltip, + ElRovingFocusGroup: roving_focus_group_default, + ElOnlyChild: OnlyChild, + ElIcon, + ArrowDown: arrow_down_default + }, + props: dropdownProps, + emits: [ + "visible-change", + "click", + "command" + ], + setup(props, { emit }) { + const _instance = (0, vue.getCurrentInstance)(); + const ns = useNamespace("dropdown"); + const { t } = useLocale(); + const triggeringElementRef = (0, vue.ref)(); + const referenceElementRef = (0, vue.ref)(); + const popperRef = (0, vue.ref)(); + const contentRef = (0, vue.ref)(); + const scrollbar = (0, vue.ref)(null); + const currentTabId = (0, vue.ref)(null); + const isUsingKeyboard = (0, vue.ref)(false); + const wrapStyle = (0, vue.computed)(() => ({ maxHeight: addUnit(props.maxHeight) })); + const dropdownTriggerKls = (0, vue.computed)(() => [ns.m(dropdownSize.value)]); + const trigger = (0, vue.computed)(() => castArray$1(props.trigger)); + const defaultTriggerId = useId().value; + const triggerId = (0, vue.computed)(() => props.id || defaultTriggerId); + function handleClick() { + popperRef.value?.onClose(void 0, 0); + } + function handleClose() { + popperRef.value?.onClose(); + } + function handleOpen() { + popperRef.value?.onOpen(); + } + const dropdownSize = useFormSize(); + function commandHandler(...args) { + emit("command", ...args); + } + function onItemEnter() {} + function onItemLeave() { + const contentEl = (0, vue.unref)(contentRef); + trigger.value.includes("hover") && contentEl?.focus({ preventScroll: true }); + currentTabId.value = null; + } + function handleCurrentTabIdChange(id) { + currentTabId.value = id; + } + function handleBeforeShowTooltip() { + emit("visible-change", true); + } + function handleShowTooltip(event) { + isUsingKeyboard.value = event?.type === "keydown"; + contentRef.value?.focus(); + } + function handleBeforeHideTooltip() { + emit("visible-change", false); + } + (0, vue.provide)(DROPDOWN_INJECTION_KEY, { + contentRef, + role: (0, vue.computed)(() => props.role), + triggerId, + isUsingKeyboard, + onItemEnter, + onItemLeave, + handleClose + }); + (0, vue.provide)(DROPDOWN_INSTANCE_INJECTION_KEY, { + instance: _instance, + dropdownSize, + handleClick, + commandHandler, + trigger: (0, vue.toRef)(props, "trigger"), + hideOnClick: (0, vue.toRef)(props, "hideOnClick") + }); + const handlerMainButtonClick = (event) => { + emit("click", event); + }; + return { + t, + ns, + scrollbar, + wrapStyle, + dropdownTriggerKls, + dropdownSize, + triggerId, + currentTabId, + handleCurrentTabIdChange, + handlerMainButtonClick, + handleClose, + handleOpen, + handleBeforeShowTooltip, + handleShowTooltip, + handleBeforeHideTooltip, + popperRef, + contentRef, + triggeringElementRef, + referenceElementRef + }; + } + }); + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown.vue + function _sfc_render$11(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_roving_focus_group = (0, vue.resolveComponent)("el-roving-focus-group"); + const _component_el_scrollbar = (0, vue.resolveComponent)("el-scrollbar"); + const _component_el_only_child = (0, vue.resolveComponent)("el-only-child"); + const _component_el_tooltip = (0, vue.resolveComponent)("el-tooltip"); + const _component_el_button = (0, vue.resolveComponent)("el-button"); + const _component_arrow_down = (0, vue.resolveComponent)("arrow-down"); + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + const _component_el_button_group = (0, vue.resolveComponent)("el-button-group"); + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([_ctx.ns.b(), _ctx.ns.is("disabled", _ctx.disabled)]) }, [(0, vue.createVNode)(_component_el_tooltip, { + ref: "popperRef", + role: _ctx.role, + effect: _ctx.effect, + "fallback-placements": ["bottom", "top"], + "popper-options": _ctx.popperOptions, + "gpu-acceleration": false, + placement: _ctx.placement, + "popper-class": [_ctx.ns.e("popper"), _ctx.popperClass], + "popper-style": _ctx.popperStyle, + trigger: _ctx.trigger, + "trigger-keys": _ctx.triggerKeys, + "trigger-target-el": _ctx.contentRef, + "show-arrow": _ctx.showArrow, + "show-after": _ctx.trigger === "hover" ? _ctx.showTimeout : 0, + "hide-after": _ctx.trigger === "hover" ? _ctx.hideTimeout : 0, + "virtual-ref": _ctx.virtualRef ?? _ctx.triggeringElementRef, + "virtual-triggering": _ctx.virtualTriggering || _ctx.splitButton, + disabled: _ctx.disabled, + transition: `${_ctx.ns.namespace.value}-zoom-in-top`, + teleported: _ctx.teleported, + "append-to": _ctx.appendTo, + pure: "", + "focus-on-target": "", + persistent: _ctx.persistent, + onBeforeShow: _ctx.handleBeforeShowTooltip, + onShow: _ctx.handleShowTooltip, + onBeforeHide: _ctx.handleBeforeHideTooltip + }, (0, vue.createSlots)({ + content: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_scrollbar, { + ref: "scrollbar", + "wrap-style": _ctx.wrapStyle, + tag: "div", + "view-class": _ctx.ns.e("list") + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_roving_focus_group, { + loop: _ctx.loop, + "current-tab-id": _ctx.currentTabId, + orientation: "horizontal", + onCurrentTabIdChange: _ctx.handleCurrentTabIdChange + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "dropdown")]), + _: 3 + }, 8, [ + "loop", + "current-tab-id", + "onCurrentTabIdChange" + ])]), + _: 3 + }, 8, ["wrap-style", "view-class"])]), + _: 2 + }, [!_ctx.splitButton ? { + name: "default", + fn: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_only_child, { + id: _ctx.triggerId, + ref: "triggeringElementRef", + role: "button", + tabindex: _ctx.tabindex + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["id", "tabindex"])]), + key: "0" + } : void 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" + ]), _ctx.splitButton ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_button_group, { key: 0 }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_button, (0, vue.mergeProps)({ ref: "referenceElementRef" }, _ctx.buttonProps, { + size: _ctx.dropdownSize, + type: _ctx.type, + disabled: _ctx.disabled, + tabindex: _ctx.tabindex, + onClick: _ctx.handlerMainButtonClick + }), { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 16, [ + "size", + "type", + "disabled", + "tabindex", + "onClick" + ]), (0, vue.createVNode)(_component_el_button, (0, vue.mergeProps)({ + id: _ctx.triggerId, + ref: "triggeringElementRef" + }, _ctx.buttonProps, { + role: "button", + size: _ctx.dropdownSize, + type: _ctx.type, + class: _ctx.ns.e("caret-button"), + disabled: _ctx.disabled, + tabindex: _ctx.tabindex, + "aria-label": _ctx.t("el.dropdown.toggleDropdown") + }), { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_icon, { class: (0, vue.normalizeClass)(_ctx.ns.e("icon")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_arrow_down)]), + _: 1 + }, 8, ["class"])]), + _: 1 + }, 16, [ + "id", + "size", + "type", + "class", + "disabled", + "tabindex", + "aria-label" + ])]), + _: 3 + })) : (0, vue.createCommentVNode)("v-if", true)], 2); + } + var dropdown_default = /* @__PURE__ */ _plugin_vue_export_helper_default(dropdown_vue_vue_type_script_lang_default, [["render", _sfc_render$11]]); + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown-item-impl.vue?vue&type=script&lang.ts + var dropdown_item_impl_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "DropdownItemImpl", + components: { ElIcon }, + props: dropdownItemProps, + emits: [ + "pointermove", + "pointerleave", + "click", + "clickimpl" + ], + setup(_, { emit }) { + const ns = useNamespace("dropdown"); + const { role: menuRole } = (0, vue.inject)(DROPDOWN_INJECTION_KEY, void 0); + const { collectionItemRef: rovingFocusCollectionItemRef } = (0, vue.inject)(COLLECTION_ITEM_INJECTION_KEY, void 0); + const { rovingFocusGroupItemRef, tabIndex, handleFocus, handleKeydown: handleItemKeydown, handleMousedown } = (0, vue.inject)(ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY, void 0); + const itemRef = composeRefs(rovingFocusCollectionItemRef, rovingFocusGroupItemRef); + const role = (0, vue.computed)(() => { + if (menuRole.value === "menu") return "menuitem"; + else if (menuRole.value === "navigation") return "link"; + return "button"; + }); + const handleKeydown = composeEventHandlers((e) => { + const code = getEventCode(e); + if ([ + EVENT_CODE.enter, + EVENT_CODE.numpadEnter, + EVENT_CODE.space + ].includes(code)) { + e.preventDefault(); + e.stopImmediatePropagation(); + emit("clickimpl", e); + return true; + } + }, handleItemKeydown); + return { + ns, + itemRef, + dataset: { [COLLECTION_ITEM_SIGN]: "" }, + role, + tabIndex, + handleFocus, + handleKeydown, + handleMousedown + }; + } + }); + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown-item-impl.vue + const _hoisted_1$39 = [ + "aria-disabled", + "tabindex", + "role" + ]; + function _sfc_render$10(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [_ctx.divided ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: 0, + role: "separator", + class: (0, vue.normalizeClass)(_ctx.ns.bem("menu", "item", "divided")) + }, null, 2)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("li", (0, vue.mergeProps)({ ref: _ctx.itemRef }, { + ..._ctx.dataset, + ..._ctx.$attrs + }, { + "aria-disabled": _ctx.disabled, + class: [_ctx.ns.be("menu", "item"), _ctx.ns.is("disabled", _ctx.disabled)], + tabindex: _ctx.tabIndex, + role: _ctx.role, + onClick: _cache[0] || (_cache[0] = (e) => _ctx.$emit("clickimpl", e)), + onFocus: _cache[1] || (_cache[1] = (...args) => _ctx.handleFocus && _ctx.handleFocus(...args)), + onKeydown: _cache[2] || (_cache[2] = (0, vue.withModifiers)((...args) => _ctx.handleKeydown && _ctx.handleKeydown(...args), ["self"])), + onMousedown: _cache[3] || (_cache[3] = (...args) => _ctx.handleMousedown && _ctx.handleMousedown(...args)), + onPointermove: _cache[4] || (_cache[4] = (e) => _ctx.$emit("pointermove", e)), + onPointerleave: _cache[5] || (_cache[5] = (e) => _ctx.$emit("pointerleave", e)) + }), [_ctx.icon || _ctx.$slots.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { key: 0 }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "icon", {}, () => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.icon)))])]), + _: 3 + })) : (0, vue.createCommentVNode)("v-if", true), (0, vue.renderSlot)(_ctx.$slots, "default")], 16, _hoisted_1$39)], 64); + } + var dropdown_item_impl_default = /* @__PURE__ */ _plugin_vue_export_helper_default(dropdown_item_impl_vue_vue_type_script_lang_default, [["render", _sfc_render$10]]); + +//#endregion +//#region ../../packages/components/dropdown/src/useDropdown.ts + const useDropdown = () => { + const elDropdown = (0, vue.inject)(DROPDOWN_INSTANCE_INJECTION_KEY, {}); + return { + elDropdown, + _elDropdownSize: (0, vue.computed)(() => elDropdown?.dropdownSize) + }; + }; + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown-item.vue?vue&type=script&lang.ts + var dropdown_item_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElDropdownItem", + components: { + ElRovingFocusItem: roving_focus_item_default, + ElDropdownItemImpl: dropdown_item_impl_default + }, + inheritAttrs: false, + props: dropdownItemProps, + emits: [ + "pointermove", + "pointerleave", + "click" + ], + setup(props, { emit, attrs }) { + const { elDropdown } = useDropdown(); + const _instance = (0, vue.getCurrentInstance)(); + const { onItemEnter, onItemLeave } = (0, vue.inject)(DROPDOWN_INJECTION_KEY, void 0); + const handlePointerMove = composeEventHandlers((e) => { + emit("pointermove", e); + return e.defaultPrevented; + }, whenMouse((e) => { + if (props.disabled) { + onItemLeave(e); + return; + } + const target = e.currentTarget; + /** + * This handles the following scenario: + * when the item contains a form element such as input element + * when the mouse is moving over the element itself which is contained by + * the item, the default focusing logic should be prevented so that + * it won't cause weird action. + */ + if (target === document.activeElement || target.contains(document.activeElement)) return; + onItemEnter(e); + if (!e.defaultPrevented) target?.focus({ preventScroll: true }); + })); + const handlePointerLeave = composeEventHandlers((e) => { + emit("pointerleave", e); + return e.defaultPrevented; + }, whenMouse(onItemLeave)); + return { + handleClick: composeEventHandlers((e) => { + if (props.disabled) return; + emit("click", e); + return e.type !== "keydown" && e.defaultPrevented; + }, (e) => { + if (props.disabled) { + e.stopImmediatePropagation(); + return; + } + if (elDropdown?.hideOnClick?.value) elDropdown.handleClick?.(); + elDropdown.commandHandler?.(props.command, _instance, e); + }), + handlePointerMove, + handlePointerLeave, + propsAndAttrs: (0, vue.computed)(() => ({ + ...props, + ...attrs + })) + }; + } + }); + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown-item.vue + function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_dropdown_item_impl = (0, vue.resolveComponent)("el-dropdown-item-impl"); + const _component_el_roving_focus_item = (0, vue.resolveComponent)("el-roving-focus-item"); + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_roving_focus_item, { focusable: !_ctx.disabled }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_dropdown_item_impl, (0, vue.mergeProps)(_ctx.propsAndAttrs, { + onPointerleave: _ctx.handlePointerLeave, + onPointermove: _ctx.handlePointerMove, + onClickimpl: _ctx.handleClick + }), (0, vue.createSlots)({ + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 2 + }, [_ctx.$slots.icon ? { + name: "icon", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "icon")]), + key: "0" + } : void 0]), 1040, [ + "onPointerleave", + "onPointermove", + "onClickimpl" + ])]), + _: 3 + }, 8, ["focusable"]); + } + var dropdown_item_default = /* @__PURE__ */ _plugin_vue_export_helper_default(dropdown_item_vue_vue_type_script_lang_default, [["render", _sfc_render$9]]); + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown-menu.vue?vue&type=script&lang.ts + var dropdown_menu_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElDropdownMenu", + props: dropdownMenuProps, + setup(props) { + const ns = useNamespace("dropdown"); + const { _elDropdownSize } = useDropdown(); + const size = _elDropdownSize.value; + const { contentRef, role, triggerId, isUsingKeyboard, handleClose } = (0, vue.inject)(DROPDOWN_INJECTION_KEY, void 0); + const { rovingFocusGroupRef, rovingFocusGroupRootStyle, onBlur, onFocus, onKeydown, onMousedown } = (0, vue.inject)(ROVING_FOCUS_GROUP_INJECTION_KEY, void 0); + const { collectionRef: rovingFocusGroupCollectionRef } = (0, vue.inject)(COLLECTION_INJECTION_KEY, void 0); + const dropdownKls = (0, vue.computed)(() => { + return [ns.b("menu"), ns.bm("menu", size?.value)]; + }); + const dropdownListWrapperRef = composeRefs(contentRef, rovingFocusGroupRef, rovingFocusGroupCollectionRef); + const handleKeydown = composeEventHandlers((e) => { + props.onKeydown?.(e); + }, (e) => { + const { currentTarget, target } = e; + const code = getEventCode(e); + if (currentTarget.contains(target)) {} + if (EVENT_CODE.tab === code) return handleClose(); + onKeydown(e); + }); + function handleFocus(e) { + isUsingKeyboard.value && onFocus(e); + } + return { + size, + rovingFocusGroupRootStyle, + dropdownKls, + role, + triggerId, + dropdownListWrapperRef, + handleKeydown, + onBlur, + handleFocus, + onMousedown + }; + } + }); + +//#endregion +//#region ../../packages/components/dropdown/src/dropdown-menu.vue + const _hoisted_1$38 = ["role", "aria-labelledby"]; + function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("ul", { + ref: _ctx.dropdownListWrapperRef, + class: (0, vue.normalizeClass)(_ctx.dropdownKls), + style: (0, vue.normalizeStyle)(_ctx.rovingFocusGroupRootStyle), + tabindex: -1, + role: _ctx.role, + "aria-labelledby": _ctx.triggerId, + onFocusin: _cache[0] || (_cache[0] = (...args) => _ctx.handleFocus && _ctx.handleFocus(...args)), + onFocusout: _cache[1] || (_cache[1] = (...args) => _ctx.onBlur && _ctx.onBlur(...args)), + onKeydown: _cache[2] || (_cache[2] = (0, vue.withModifiers)((...args) => _ctx.handleKeydown && _ctx.handleKeydown(...args), ["self"])), + onMousedown: _cache[3] || (_cache[3] = (0, vue.withModifiers)((...args) => _ctx.onMousedown && _ctx.onMousedown(...args), ["self"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 46, _hoisted_1$38); + } + var dropdown_menu_default = /* @__PURE__ */ _plugin_vue_export_helper_default(dropdown_menu_vue_vue_type_script_lang_default, [["render", _sfc_render$8]]); + +//#endregion +//#region ../../packages/components/dropdown/index.ts + const ElDropdown = withInstall(dropdown_default, { + DropdownItem: dropdown_item_default, + DropdownMenu: dropdown_menu_default + }); + const ElDropdownItem = withNoopInstall(dropdown_item_default); + const ElDropdownMenu = withNoopInstall(dropdown_menu_default); + +//#endregion +//#region ../../packages/components/empty/src/empty.ts +/** + * @deprecated Removed after 3.0.0, Use `EmptyProps` instead. + */ + const emptyProps = buildProps({ + image: { + type: String, + default: "" + }, + imageSize: Number, + description: { + type: String, + default: "" + } + }); + +//#endregion +//#region ../../packages/components/empty/src/img-empty.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$37 = { + viewBox: "0 0 79 86", + version: "1.1", + xmlns: "http://www.w3.org/2000/svg", + "xmlns:xlink": "http://www.w3.org/1999/xlink" + }; + const _hoisted_2$23 = ["id"]; + const _hoisted_3$8 = ["stop-color"]; + const _hoisted_4$6 = ["stop-color"]; + const _hoisted_5$4 = ["id"]; + const _hoisted_6$1 = ["stop-color"]; + const _hoisted_7 = ["stop-color"]; + const _hoisted_8 = ["id"]; + const _hoisted_9 = { + stroke: "none", + "stroke-width": "1", + fill: "none", + "fill-rule": "evenodd" + }; + const _hoisted_10 = { transform: "translate(-1268.000000, -535.000000)" }; + const _hoisted_11 = { transform: "translate(1268.000000, 535.000000)" }; + const _hoisted_12 = ["fill"]; + const _hoisted_13 = ["fill"]; + const _hoisted_14 = { transform: "translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)" }; + const _hoisted_15 = ["fill"]; + const _hoisted_16 = ["fill"]; + const _hoisted_17 = ["fill"]; + const _hoisted_18 = ["fill"]; + const _hoisted_19 = ["fill"]; + const _hoisted_20 = { transform: "translate(53.000000, 45.000000)" }; + const _hoisted_21 = ["fill", "xlink:href"]; + const _hoisted_22 = ["fill", "mask"]; + const _hoisted_23 = ["fill"]; + var img_empty_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ImgEmpty", + __name: "img-empty", + setup(__props) { + const ns = useNamespace("empty"); + const id = useId(); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("svg", _hoisted_1$37, [(0, vue.createElementVNode)("defs", null, [ + (0, vue.createElementVNode)("linearGradient", { + id: `linearGradient-1-${(0, vue.unref)(id)}`, + x1: "38.8503086%", + y1: "0%", + x2: "61.1496914%", + y2: "100%" + }, [(0, vue.createElementVNode)("stop", { + "stop-color": `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-1")})`, + offset: "0%" + }, null, 8, _hoisted_3$8), (0, vue.createElementVNode)("stop", { + "stop-color": `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-4")})`, + offset: "100%" + }, null, 8, _hoisted_4$6)], 8, _hoisted_2$23), + (0, vue.createElementVNode)("linearGradient", { + id: `linearGradient-2-${(0, vue.unref)(id)}`, + x1: "0%", + y1: "9.5%", + x2: "100%", + y2: "90.5%" + }, [(0, vue.createElementVNode)("stop", { + "stop-color": `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-1")})`, + offset: "0%" + }, null, 8, _hoisted_6$1), (0, vue.createElementVNode)("stop", { + "stop-color": `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-6")})`, + offset: "100%" + }, null, 8, _hoisted_7)], 8, _hoisted_5$4), + (0, vue.createElementVNode)("rect", { + id: `path-3-${(0, vue.unref)(id)}`, + x: "0", + y: "0", + width: "17", + height: "36" + }, null, 8, _hoisted_8) + ]), (0, vue.createElementVNode)("g", _hoisted_9, [(0, vue.createElementVNode)("g", _hoisted_10, [(0, vue.createElementVNode)("g", _hoisted_11, [ + (0, vue.createElementVNode)("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(${(0, vue.unref)(ns).cssVarBlockName("fill-color-3")})` + }, null, 8, _hoisted_12), + (0, vue.createElementVNode)("polygon", { + fill: `var(${(0, vue.unref)(ns).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, _hoisted_13), + (0, vue.createElementVNode)("g", _hoisted_14, [ + (0, vue.createElementVNode)("polygon", { + fill: `var(${(0, vue.unref)(ns).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, _hoisted_15), + (0, vue.createElementVNode)("polygon", { + fill: `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-5")})`, + points: "-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43" + }, null, 8, _hoisted_16), + (0, vue.createElementVNode)("rect", { + fill: `url(#linearGradient-1-${(0, vue.unref)(id)})`, + transform: "translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ", + x: "38", + y: "7", + width: "17", + height: "36" + }, null, 8, _hoisted_17), + (0, vue.createElementVNode)("polygon", { + fill: `var(${(0, vue.unref)(ns).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, _hoisted_18) + ]), + (0, vue.createElementVNode)("rect", { + fill: `url(#linearGradient-2-${(0, vue.unref)(id)})`, + x: "13", + y: "45", + width: "40", + height: "36" + }, null, 8, _hoisted_19), + (0, vue.createElementVNode)("g", _hoisted_20, [(0, vue.createElementVNode)("use", { + fill: `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-8")})`, + transform: "translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ", + "xlink:href": `#path-3-${(0, vue.unref)(id)}` + }, null, 8, _hoisted_21), (0, vue.createElementVNode)("polygon", { + fill: `var(${(0, vue.unref)(ns).cssVarBlockName("fill-color-9")})`, + mask: `url(#mask-4-${(0, vue.unref)(id)})`, + 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, _hoisted_22)]), + (0, vue.createElementVNode)("polygon", { + fill: `var(${(0, vue.unref)(ns).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, _hoisted_23) + ])])])]); + }; + } + }); + +//#endregion +//#region ../../packages/components/empty/src/img-empty.vue + var img_empty_default = img_empty_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/empty/src/empty.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$36 = ["src"]; + const _hoisted_2$22 = { key: 1 }; + var empty_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElEmpty", + __name: "empty", + props: emptyProps, + setup(__props) { + const props = __props; + const { t } = useLocale(); + const ns = useNamespace("empty"); + const emptyDescription = (0, vue.computed)(() => props.description || t("el.table.emptyText")); + const imageStyle = (0, vue.computed)(() => ({ width: addUnit(props.imageSize) })); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [ + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("image")), + style: (0, vue.normalizeStyle)(imageStyle.value) + }, [__props.image ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("img", { + key: 0, + src: __props.image, + ondragstart: "return false" + }, null, 8, _hoisted_1$36)) : (0, vue.renderSlot)(_ctx.$slots, "image", { key: 1 }, () => [(0, vue.createVNode)(img_empty_default)])], 6), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("description")) }, [_ctx.$slots.description ? (0, vue.renderSlot)(_ctx.$slots, "description", { key: 0 }) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", _hoisted_2$22, (0, vue.toDisplayString)(emptyDescription.value), 1))], 2), + _ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("bottom")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/empty/src/empty.vue + var empty_default = empty_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/empty/index.ts + const ElEmpty = withInstall(empty_default); + +//#endregion +//#region ../../packages/components/image/src/image.ts +/** + * @deprecated Removed after 3.0.0, Use `ImageProps` instead. + */ + const imageProps = buildProps({ + 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: definePropType([String, Object]) }, + previewSrcList: { + type: definePropType(Array), + default: () => mutable([]) + }, + previewTeleported: Boolean, + zIndex: { type: Number }, + initialIndex: { + type: Number, + default: 0 + }, + infinite: { + type: Boolean, + default: true + }, + closeOnPressEscape: { + type: Boolean, + default: true + }, + 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: definePropType(String) } + }); + const imageEmits = { + load: (evt) => evt instanceof Event, + error: (evt) => evt instanceof Event, + switch: (val) => isNumber(val), + close: () => true, + show: () => true + }; + +//#endregion +//#region ../../packages/components/image-viewer/src/image-viewer.ts +/** + * @deprecated Removed after 3.0.0, Use `ImageViewerProps` instead. + */ + const imageViewerProps = buildProps({ + urlList: { + type: definePropType(Array), + default: () => mutable([]) + }, + zIndex: { type: Number }, + initialIndex: { + type: Number, + default: 0 + }, + infinite: { + type: Boolean, + default: true + }, + hideOnClickModal: Boolean, + teleported: Boolean, + closeOnPressEscape: { + type: Boolean, + default: true + }, + 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: definePropType(String) } + }); + const imageViewerEmits = { + close: () => true, + error: (evt) => evt instanceof Event, + switch: (index) => isNumber(index), + rotate: (deg) => isNumber(deg) + }; + +//#endregion +//#region ../../packages/components/image-viewer/src/image-viewer.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$35 = ["src", "crossorigin"]; + var image_viewer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElImageViewer", + __name: "image-viewer", + props: imageViewerProps, + emits: imageViewerEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const modes = { + CONTAIN: { + name: "contain", + icon: (0, vue.markRaw)(full_screen_default) + }, + ORIGINAL: { + name: "original", + icon: (0, vue.markRaw)(scale_to_original_default) + } + }; + const props = __props; + const emit = __emit; + let stopWheelListener; + const { t } = useLocale(); + const ns = useNamespace("image-viewer"); + const { nextZIndex } = useZIndex(); + const wrapper = (0, vue.ref)(); + const imgRef = (0, vue.ref)(); + const scopeEventListener = (0, vue.effectScope)(); + const scaleClamped = (0, vue.computed)(() => { + const { scale, minScale, maxScale } = props; + return clamp$2(scale, minScale, maxScale); + }); + const loading = (0, vue.ref)(true); + const loadError = (0, vue.ref)(false); + const visible = (0, vue.ref)(false); + const activeIndex = (0, vue.ref)(props.initialIndex); + const mode = (0, vue.shallowRef)(modes.CONTAIN); + const transform = (0, vue.ref)({ + scale: scaleClamped.value, + deg: 0, + offsetX: 0, + offsetY: 0, + enableTransition: false + }); + const zIndex = (0, vue.ref)(props.zIndex ?? nextZIndex()); + useLockscreen(visible, { ns }); + const isSingle = (0, vue.computed)(() => { + const { urlList } = props; + return urlList.length <= 1; + }); + const isFirst = (0, vue.computed)(() => activeIndex.value === 0); + const isLast = (0, vue.computed)(() => activeIndex.value === props.urlList.length - 1); + const currentImg = (0, vue.computed)(() => props.urlList[activeIndex.value]); + const arrowPrevKls = (0, vue.computed)(() => [ + ns.e("btn"), + ns.e("prev"), + ns.is("disabled", !props.infinite && isFirst.value) + ]); + const arrowNextKls = (0, vue.computed)(() => [ + ns.e("btn"), + ns.e("next"), + ns.is("disabled", !props.infinite && isLast.value) + ]); + const imgStyle = (0, vue.computed)(() => { + const { scale, deg, offsetX, offsetY, enableTransition } = transform.value; + let translateX = offsetX / scale; + let translateY = offsetY / scale; + const radian = deg * Math.PI / 180; + const cosRadian = Math.cos(radian); + const sinRadian = Math.sin(radian); + translateX = translateX * cosRadian + translateY * sinRadian; + translateY = translateY * cosRadian - offsetX / scale * sinRadian; + const style = { + transform: `scale(${scale}) rotate(${deg}deg) translate(${translateX}px, ${translateY}px)`, + transition: enableTransition ? "transform .3s" : "" + }; + if (mode.value.name === modes.CONTAIN.name) style.maxWidth = style.maxHeight = "100%"; + return style; + }); + const progress = (0, vue.computed)(() => `${activeIndex.value + 1} / ${props.urlList.length}`); + function hide() { + unregisterEventListener(); + stopWheelListener?.(); + visible.value = false; + emit("close"); + } + function registerEventListener() { + const keydownHandler = throttle((e) => { + switch (getEventCode(e)) { + case EVENT_CODE.esc: + props.closeOnPressEscape && hide(); + break; + case EVENT_CODE.space: + toggleMode(); + break; + case EVENT_CODE.left: + prev(); + break; + case EVENT_CODE.up: + handleActions("zoomIn"); + break; + case EVENT_CODE.right: + next(); + break; + case EVENT_CODE.down: + handleActions("zoomOut"); + break; + } + }); + const mousewheelHandler = throttle((e) => { + handleActions((e.deltaY || e.deltaX) < 0 ? "zoomIn" : "zoomOut", { + zoomRate: props.zoomRate, + enableTransition: false + }); + }); + scopeEventListener.run(() => { + useEventListener(document, "keydown", keydownHandler); + useEventListener(wrapper, "wheel", mousewheelHandler); + }); + } + function unregisterEventListener() { + scopeEventListener.stop(); + } + function handleImgLoad() { + loading.value = false; + } + function handleImgError(e) { + loadError.value = true; + loading.value = false; + emit("error", e); + e.target.alt = t("el.image.error"); + } + function handleMouseDown(e) { + if (loading.value || e.button !== 0 || !wrapper.value) return; + transform.value.enableTransition = false; + const { offsetX, offsetY } = transform.value; + const startX = e.pageX; + const startY = e.pageY; + const dragHandler = throttle((ev) => { + transform.value = { + ...transform.value, + offsetX: offsetX + ev.pageX - startX, + offsetY: offsetY + ev.pageY - startY + }; + }); + const removeMousemove = useEventListener(document, "mousemove", dragHandler); + const removeMouseup = useEventListener(document, "mouseup", () => { + removeMousemove(); + removeMouseup(); + }); + e.preventDefault(); + } + function handleTouchStart(e) { + if (loading.value || !wrapper.value || e.touches.length !== 1) return; + transform.value.enableTransition = false; + const { offsetX, offsetY } = transform.value; + const { pageX: startX, pageY: startY } = e.touches[0]; + const dragHandler = throttle((ev) => { + const targetTouch = ev.touches[0]; + transform.value = { + ...transform.value, + offsetX: offsetX + targetTouch.pageX - startX, + offsetY: offsetY + targetTouch.pageY - startY + }; + }); + const removeTouchmove = useEventListener(document, "touchmove", dragHandler); + const removeTouchend = useEventListener(document, "touchend", () => { + removeTouchmove(); + removeTouchend(); + }); + e.preventDefault(); + } + function reset() { + transform.value = { + scale: scaleClamped.value, + deg: 0, + offsetX: 0, + offsetY: 0, + enableTransition: false + }; + } + function toggleMode() { + if (loading.value || loadError.value) return; + const modeNames = keysOf(modes); + const modeValues = Object.values(modes); + const currentMode = mode.value.name; + mode.value = modes[modeNames[(modeValues.findIndex((i) => i.name === currentMode) + 1) % modeNames.length]]; + reset(); + } + function setActiveItem(index) { + loadError.value = false; + const len = props.urlList.length; + activeIndex.value = (index + len) % len; + } + function prev() { + if (isFirst.value && !props.infinite) return; + setActiveItem(activeIndex.value - 1); + } + function next() { + if (isLast.value && !props.infinite) return; + setActiveItem(activeIndex.value + 1); + } + function handleActions(action, options = {}) { + if (loading.value || loadError.value) return; + const { minScale, maxScale } = props; + const { zoomRate, rotateDeg, enableTransition } = { + zoomRate: props.zoomRate, + rotateDeg: 90, + enableTransition: true, + ...options + }; + switch (action) { + case "zoomOut": + if (transform.value.scale > minScale) transform.value.scale = Number.parseFloat((transform.value.scale / zoomRate).toFixed(3)); + break; + case "zoomIn": + if (transform.value.scale < maxScale) transform.value.scale = Number.parseFloat((transform.value.scale * zoomRate).toFixed(3)); + break; + case "clockwise": + transform.value.deg += rotateDeg; + emit("rotate", transform.value.deg); + break; + case "anticlockwise": + transform.value.deg -= rotateDeg; + emit("rotate", transform.value.deg); + break; + } + transform.value.enableTransition = enableTransition; + } + function onFocusoutPrevented(event) { + if (event.detail?.focusReason === "pointer") event.preventDefault(); + } + function onCloseRequested() { + if (props.closeOnPressEscape) hide(); + } + function wheelHandler(e) { + if (!e.ctrlKey) return; + if (e.deltaY < 0) { + e.preventDefault(); + return false; + } else if (e.deltaY > 0) { + e.preventDefault(); + return false; + } + } + (0, vue.watch)(() => scaleClamped.value, (val) => { + transform.value.scale = val; + }); + (0, vue.watch)(currentImg, () => { + (0, vue.nextTick)(() => { + if (!imgRef.value?.complete) loading.value = true; + }); + }); + (0, vue.watch)(activeIndex, (val) => { + reset(); + emit("switch", val); + }); + (0, vue.onMounted)(() => { + visible.value = true; + registerEventListener(); + stopWheelListener = useEventListener("wheel", wheelHandler, { passive: false }); + }); + __expose({ setActiveItem }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTeleport), { + to: "body", + disabled: !__props.teleported + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(vue.Transition, { + name: "viewer-fade", + appear: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref_key: "wrapper", + ref: wrapper, + tabindex: -1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("wrapper")), + style: (0, vue.normalizeStyle)({ zIndex: zIndex.value }) + }, [(0, vue.createVNode)((0, vue.unref)(focus_trap_default), { + loop: "", + trapped: "", + "focus-trap-el": wrapper.value, + "focus-start-el": "container", + onFocusoutPrevented, + onReleaseRequested: onCloseRequested + }, { + default: (0, vue.withCtx)(() => [ + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("mask")), + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(($event) => __props.hideOnClickModal && hide(), ["self"])) + }, null, 2), + (0, vue.createCommentVNode)(" CLOSE "), + (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("btn"), (0, vue.unref)(ns).e("close")]), + onClick: hide + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + })], 2), + (0, vue.createCommentVNode)(" ARROW "), + !isSingle.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)(arrowPrevKls.value), + onClick: prev + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_left_default))]), + _: 1 + })], 2), (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)(arrowNextKls.value), + onClick: next + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })], 2)], 64)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.progress || __props.showProgress ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("btn"), (0, vue.unref)(ns).e("progress")]) + }, [(0, vue.renderSlot)(_ctx.$slots, "progress", { + activeIndex: activeIndex.value, + total: __props.urlList.length + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(progress.value), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createCommentVNode)(" ACTIONS "), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("btn"), (0, vue.unref)(ns).e("actions")]) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("actions__inner")) }, [(0, vue.renderSlot)(_ctx.$slots, "toolbar", { + actions: handleActions, + prev, + next, + reset: toggleMode, + activeIndex: activeIndex.value, + setActiveItem + }, () => [ + (0, vue.createVNode)((0, vue.unref)(ElIcon), { onClick: _cache[1] || (_cache[1] = ($event) => handleActions("zoomOut")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(zoom_out_default))]), + _: 1 + }), + (0, vue.createVNode)((0, vue.unref)(ElIcon), { onClick: _cache[2] || (_cache[2] = ($event) => handleActions("zoomIn")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(zoom_in_default))]), + _: 1 + }), + (0, vue.createElementVNode)("i", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("actions__divider")) }, null, 2), + (0, vue.createVNode)((0, vue.unref)(ElIcon), { onClick: toggleMode }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(mode.value.icon)))]), + _: 1 + }), + (0, vue.createElementVNode)("i", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("actions__divider")) }, null, 2), + (0, vue.createVNode)((0, vue.unref)(ElIcon), { onClick: _cache[3] || (_cache[3] = ($event) => handleActions("anticlockwise")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(refresh_left_default))]), + _: 1 + }), + (0, vue.createVNode)((0, vue.unref)(ElIcon), { onClick: _cache[4] || (_cache[4] = ($event) => handleActions("clockwise")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(refresh_right_default))]), + _: 1 + }) + ])], 2)], 2), + (0, vue.createCommentVNode)(" CANVAS "), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("canvas")) }, [loadError.value && _ctx.$slots["viewer-error"] ? (0, vue.renderSlot)(_ctx.$slots, "viewer-error", { + key: 0, + activeIndex: activeIndex.value, + src: currentImg.value + }) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("img", { + ref_key: "imgRef", + ref: imgRef, + key: currentImg.value, + src: currentImg.value, + style: (0, vue.normalizeStyle)(imgStyle.value), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("img")), + crossorigin: __props.crossorigin, + onLoad: handleImgLoad, + onError: handleImgError, + onMousedown: handleMouseDown, + onTouchstart: handleTouchStart + }, null, 46, _hoisted_1$35))], 2), + (0, vue.renderSlot)(_ctx.$slots, "default") + ]), + _: 3 + }, 8, ["focus-trap-el"])], 6)]), + _: 3 + })]), + _: 3 + }, 8, ["disabled"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/image-viewer/src/image-viewer.vue + var image_viewer_default = image_viewer_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/image-viewer/index.ts + const ElImageViewer = withInstall(image_viewer_default); + +//#endregion +//#region ../../packages/components/image/src/image.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$34 = [ + "src", + "loading", + "crossorigin" + ]; + const _hoisted_2$21 = { key: 0 }; + var image_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElImage", + inheritAttrs: false, + __name: "image", + props: imageProps, + emits: imageEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const { t } = useLocale(); + const ns = useNamespace("image"); + const rawAttrs = (0, vue.useAttrs)(); + const containerAttrs = (0, vue.computed)(() => { + return fromPairs(Object.entries(rawAttrs).filter(([key]) => /^(data-|on[A-Z])/i.test(key) || ["id", "style"].includes(key))); + }); + const imgAttrs = useAttrs({ + excludeListeners: true, + excludeKeys: (0, vue.computed)(() => { + return Object.keys(containerAttrs.value); + }) + }); + const imageSrc = (0, vue.ref)(); + const hasLoadError = (0, vue.ref)(false); + const isLoading = (0, vue.ref)(true); + const showViewer = (0, vue.ref)(false); + const container = (0, vue.ref)(); + const _scrollContainer = (0, vue.ref)(); + const supportLoading = isClient && "loading" in HTMLImageElement.prototype; + let stopScrollListener; + const imageKls = (0, vue.computed)(() => [ + ns.e("inner"), + preview.value && ns.e("preview"), + isLoading.value && ns.is("loading") + ]); + const imageStyle = (0, vue.computed)(() => { + const { fit } = props; + if (isClient && fit) return { objectFit: fit }; + return {}; + }); + const preview = (0, vue.computed)(() => { + const { previewSrcList } = props; + return isArray$1(previewSrcList) && previewSrcList.length > 0; + }); + const imageIndex = (0, vue.computed)(() => { + const { previewSrcList, initialIndex } = props; + let previewIndex = initialIndex; + if (initialIndex > previewSrcList.length - 1) previewIndex = 0; + return previewIndex; + }); + const isManual = (0, vue.computed)(() => { + if (props.loading === "eager") return false; + return !supportLoading && props.loading === "lazy" || props.lazy; + }); + const loadImage = () => { + if (!isClient) return; + isLoading.value = true; + hasLoadError.value = false; + imageSrc.value = props.src; + }; + function handleLoad(event) { + isLoading.value = false; + hasLoadError.value = false; + emit("load", event); + } + function handleError(event) { + isLoading.value = false; + hasLoadError.value = true; + emit("error", event); + } + function handleLazyLoad(isIntersecting) { + if (isIntersecting) { + loadImage(); + removeLazyLoadListener(); + } + } + const lazyLoadHandler = useThrottleFn(handleLazyLoad, 200, true); + async function addLazyLoadListener() { + if (!isClient) return; + await (0, vue.nextTick)(); + const { scrollContainer } = props; + if (isElement$1(scrollContainer)) _scrollContainer.value = scrollContainer; + else if (isString(scrollContainer) && scrollContainer !== "") _scrollContainer.value = document.querySelector(scrollContainer) ?? void 0; + else if (container.value) { + const scrollContainer = getScrollContainer(container.value); + _scrollContainer.value = isWindow(scrollContainer) ? void 0 : scrollContainer; + } + const { stop } = useIntersectionObserver(container, ([entry]) => { + lazyLoadHandler(entry.isIntersecting); + }, { root: _scrollContainer }); + stopScrollListener = stop; + } + function removeLazyLoadListener() { + if (!isClient || !lazyLoadHandler) return; + stopScrollListener?.(); + _scrollContainer.value = void 0; + stopScrollListener = void 0; + } + function clickHandler() { + if (!preview.value) return; + showViewer.value = true; + emit("show"); + } + function closeViewer() { + showViewer.value = false; + emit("close"); + } + function switchViewer(val) { + emit("switch", val); + } + (0, vue.watch)(() => props.src, () => { + if (isManual.value) { + isLoading.value = true; + hasLoadError.value = false; + removeLazyLoadListener(); + addLazyLoadListener(); + } else loadImage(); + }); + (0, vue.onMounted)(() => { + if (isManual.value) addLazyLoadListener(); + else loadImage(); + }); + __expose({ showPreview: clickHandler }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", (0, vue.mergeProps)({ + ref_key: "container", + ref: container + }, containerAttrs.value, { class: [(0, vue.unref)(ns).b(), _ctx.$attrs.class] }), [hasLoadError.value ? (0, vue.renderSlot)(_ctx.$slots, "error", { key: 0 }, () => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("error")) }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.image.error")), 3)]) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [imageSrc.value !== void 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("img", (0, vue.mergeProps)({ key: 0 }, (0, vue.unref)(imgAttrs), { + src: imageSrc.value, + loading: __props.loading, + style: imageStyle.value, + class: imageKls.value, + crossorigin: __props.crossorigin, + onClick: clickHandler, + onLoad: handleLoad, + onError: handleError + }), null, 16, _hoisted_1$34)) : (0, vue.createCommentVNode)("v-if", true), isLoading.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("wrapper")) + }, [(0, vue.renderSlot)(_ctx.$slots, "placeholder", {}, () => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("placeholder")) }, null, 2)])], 2)) : (0, vue.createCommentVNode)("v-if", true)], 64)), preview.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [showViewer.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElImageViewer), { + key: 0, + "z-index": __props.zIndex, + "initial-index": imageIndex.value, + infinite: __props.infinite, + "zoom-rate": __props.zoomRate, + "min-scale": __props.minScale, + "max-scale": __props.maxScale, + "show-progress": __props.showProgress, + "url-list": __props.previewSrcList, + scale: __props.scale, + crossorigin: __props.crossorigin, + "hide-on-click-modal": __props.hideOnClickModal, + teleported: __props.previewTeleported, + "close-on-press-escape": __props.closeOnPressEscape, + onClose: closeViewer, + onSwitch: switchViewer + }, (0, vue.createSlots)({ + toolbar: (0, vue.withCtx)((toolbar) => [(0, vue.renderSlot)(_ctx.$slots, "toolbar", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(toolbar)))]), + default: (0, vue.withCtx)(() => [_ctx.$slots.viewer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_2$21, [(0, vue.renderSlot)(_ctx.$slots, "viewer")])) : (0, vue.createCommentVNode)("v-if", true)]), + _: 2 + }, [_ctx.$slots.progress ? { + name: "progress", + fn: (0, vue.withCtx)((progress) => [(0, vue.renderSlot)(_ctx.$slots, "progress", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(progress)))]), + key: "0" + } : void 0, _ctx.$slots["viewer-error"] ? { + name: "viewer-error", + fn: (0, vue.withCtx)((viewerError) => [(0, vue.renderSlot)(_ctx.$slots, "viewer-error", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(viewerError)))]), + 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" + ])) : (0, vue.createCommentVNode)("v-if", true)], 64)) : (0, vue.createCommentVNode)("v-if", true)], 16); + }; + } + }); + +//#endregion +//#region ../../packages/components/image/src/image.vue + var image_default = image_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/image/index.ts + const ElImage = withInstall(image_default); + +//#endregion +//#region ../../packages/components/input-number/src/input-number.ts +/** + * @deprecated Removed after 3.0.0, Use `InputNumberProps` instead. + */ + const inputNumberProps = buildProps({ + id: { + type: String, + default: void 0 + }, + step: { + type: Number, + default: 1 + }, + stepStrictly: Boolean, + max: { + type: Number, + default: Number.MAX_SAFE_INTEGER + }, + min: { + type: Number, + default: Number.MIN_SAFE_INTEGER + }, + modelValue: { type: [Number, null] }, + readonly: Boolean, + disabled: { + type: Boolean, + default: void 0 + }, + size: useSizeProp, + controls: { + type: Boolean, + default: true + }, + controlsPosition: { + type: String, + default: "", + values: ["", "right"] + }, + valueOnClear: { + type: definePropType([ + String, + Number, + null + ]), + validator: (val) => val === null || isNumber(val) || ["min", "max"].includes(val), + default: null + }, + name: String, + placeholder: String, + precision: { + type: Number, + validator: (val) => val >= 0 && val === Number.parseInt(`${val}`, 10) + }, + validateEvent: { + type: Boolean, + default: true + }, + ...useAriaProps(["ariaLabel"]), + inputmode: { + type: definePropType(String), + default: void 0 + }, + align: { + type: definePropType(String), + default: "center" + }, + disabledScientific: Boolean + }); + const inputNumberEmits = { + [CHANGE_EVENT]: (cur, prev) => prev !== cur, + blur: (e) => e instanceof FocusEvent, + focus: (e) => e instanceof FocusEvent, + [INPUT_EVENT]: (val) => isNumber(val) || isNil(val), + [UPDATE_MODEL_EVENT]: (val) => isNumber(val) || isNil(val) + }; + +//#endregion +//#region ../../packages/components/input-number/src/input-number.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$33 = ["aria-label"]; + const _hoisted_2$20 = ["aria-label"]; + var input_number_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElInputNumber", + __name: "input-number", + props: inputNumberProps, + emits: inputNumberEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const { t } = useLocale(); + const ns = useNamespace("input-number"); + const input = (0, vue.ref)(); + const data = (0, vue.reactive)({ + currentValue: props.modelValue, + userInput: null + }); + const { formItem } = useFormItem(); + const minDisabled = (0, vue.computed)(() => isNumber(props.modelValue) && props.modelValue <= props.min); + const maxDisabled = (0, vue.computed)(() => isNumber(props.modelValue) && props.modelValue >= props.max); + const numPrecision = (0, vue.computed)(() => { + const stepPrecision = getPrecision(props.step); + if (!isUndefined(props.precision)) { + if (stepPrecision > props.precision) /* @__PURE__ */ debugWarn("InputNumber", "precision should not be less than the decimal places of step"); + return props.precision; + } else return Math.max(getPrecision(props.modelValue), stepPrecision); + }); + const controlsAtRight = (0, vue.computed)(() => { + return props.controls && props.controlsPosition === "right"; + }); + const inputNumberSize = useFormSize(); + const inputNumberDisabled = useFormDisabled(); + const displayValue = (0, vue.computed)(() => { + if (data.userInput !== null) return data.userInput; + let currentValue = data.currentValue; + if (isNil(currentValue)) return ""; + if (isNumber(currentValue)) { + if (Number.isNaN(currentValue)) return ""; + if (!isUndefined(props.precision)) currentValue = currentValue.toFixed(props.precision); + } + return currentValue; + }); + const toPrecision = (num, pre) => { + if (isUndefined(pre)) pre = numPrecision.value; + if (pre === 0) return Math.round(num); + let snum = String(num); + const pointPos = snum.indexOf("."); + if (pointPos === -1) return num; + if (!snum.replace(".", "").split("")[pointPos + pre]) return num; + const length = snum.length; + if (snum.charAt(length - 1) === "5") snum = `${snum.slice(0, Math.max(0, length - 1))}6`; + return Number.parseFloat(Number(snum).toFixed(pre)); + }; + const getPrecision = (value) => { + if (isNil(value)) return 0; + const valueString = value.toString(); + const dotPosition = valueString.indexOf("."); + let precision = 0; + if (dotPosition !== -1) precision = valueString.length - dotPosition - 1; + return precision; + }; + const ensurePrecision = (val, coefficient = 1) => { + if (!isNumber(val)) return data.currentValue; + if (val >= Number.MAX_SAFE_INTEGER && coefficient === 1) { + /* @__PURE__ */ debugWarn("InputNumber", "The value has reached the maximum safe integer limit."); + return val; + } else if (val <= Number.MIN_SAFE_INTEGER && coefficient === -1) { + /* @__PURE__ */ debugWarn("InputNumber", "The value has reached the minimum safe integer limit."); + return val; + } + return toPrecision(val + props.step * coefficient); + }; + const handleKeydown = (event) => { + const code = getEventCode(event); + const key = getEventKey(event); + if (props.disabledScientific && ["e", "E"].includes(key)) { + event.preventDefault(); + return; + } + switch (code) { + case EVENT_CODE.up: + event.preventDefault(); + increase(); + break; + case EVENT_CODE.down: + event.preventDefault(); + decrease(); + break; + } + }; + const increase = () => { + if (props.readonly || inputNumberDisabled.value || maxDisabled.value) return; + setCurrentValue(ensurePrecision(Number(displayValue.value) || 0)); + emit(INPUT_EVENT, data.currentValue); + setCurrentValueToModelValue(); + }; + const decrease = () => { + if (props.readonly || inputNumberDisabled.value || minDisabled.value) return; + setCurrentValue(ensurePrecision(Number(displayValue.value) || 0, -1)); + emit(INPUT_EVENT, data.currentValue); + setCurrentValueToModelValue(); + }; + const verifyValue = (value, update) => { + const { max, min, step, precision, stepStrictly, valueOnClear } = props; + if (max < min) throwError("InputNumber", "min should not be greater than max."); + let newVal = Number(value); + if (isNil(value) || Number.isNaN(newVal)) return null; + if (value === "") { + if (valueOnClear === null) return null; + newVal = isString(valueOnClear) ? { + min, + max + }[valueOnClear] : valueOnClear; + } + if (stepStrictly) { + newVal = toPrecision(Math.round(toPrecision(newVal / step)) * step, precision); + if (newVal !== value) update && emit(UPDATE_MODEL_EVENT, newVal); + } + if (!isUndefined(precision)) newVal = toPrecision(newVal, precision); + if (newVal > max || newVal < min) { + newVal = newVal > max ? max : min; + update && emit(UPDATE_MODEL_EVENT, newVal); + } + return newVal; + }; + const setCurrentValue = (value, emitChange = true) => { + const oldVal = data.currentValue; + const newVal = verifyValue(value); + if (!emitChange) { + emit(UPDATE_MODEL_EVENT, newVal); + return; + } + data.userInput = null; + if (oldVal === newVal && value) return; + emit(UPDATE_MODEL_EVENT, newVal); + if (oldVal !== newVal) emit(CHANGE_EVENT, newVal, oldVal); + if (props.validateEvent) formItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + data.currentValue = newVal; + }; + const handleInput = (value) => { + data.userInput = value; + const newVal = value === "" ? null : Number(value); + emit(INPUT_EVENT, newVal); + setCurrentValue(newVal, false); + }; + const handleInputChange = (value) => { + const newVal = value !== "" ? Number(value) : ""; + if (isNumber(newVal) && !Number.isNaN(newVal) || value === "") setCurrentValue(newVal); + setCurrentValueToModelValue(); + data.userInput = null; + }; + const focus = () => { + input.value?.focus?.(); + }; + const blur = () => { + input.value?.blur?.(); + }; + const handleFocus = (event) => { + emit("focus", event); + }; + const handleBlur = (event) => { + data.userInput = null; + if (data.currentValue === null && input.value?.input) input.value.input.value = ""; + emit("blur", event); + if (props.validateEvent) formItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + }; + const setCurrentValueToModelValue = () => { + if (data.currentValue !== props.modelValue) data.currentValue = props.modelValue; + }; + const handleWheel = (e) => { + if (document.activeElement === e.target) e.preventDefault(); + }; + (0, vue.watch)(() => props.modelValue, (value, oldValue) => { + const newValue = verifyValue(value, true); + if (data.userInput === null && newValue !== oldValue) data.currentValue = newValue; + }, { immediate: true }); + (0, vue.watch)(() => props.precision, () => { + data.currentValue = verifyValue(props.modelValue); + }); + (0, vue.onMounted)(() => { + const { min, max, modelValue } = props; + const innerInput = input.value?.input; + innerInput.setAttribute("role", "spinbutton"); + if (Number.isFinite(max)) innerInput.setAttribute("aria-valuemax", String(max)); + else innerInput.removeAttribute("aria-valuemax"); + if (Number.isFinite(min)) innerInput.setAttribute("aria-valuemin", String(min)); + else innerInput.removeAttribute("aria-valuemin"); + innerInput.setAttribute("aria-valuenow", data.currentValue || data.currentValue === 0 ? String(data.currentValue) : ""); + innerInput.setAttribute("aria-disabled", String(inputNumberDisabled.value)); + if (!isNumber(modelValue) && modelValue != null) { + let val = Number(modelValue); + if (Number.isNaN(val)) val = null; + emit(UPDATE_MODEL_EVENT, val); + } + innerInput.addEventListener("wheel", handleWheel, { passive: false }); + }); + (0, vue.onUpdated)(() => { + (input.value?.input)?.setAttribute("aria-valuenow", `${data.currentValue ?? ""}`); + }); + __expose({ + focus, + blur + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).m((0, vue.unref)(inputNumberSize)), + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(inputNumberDisabled)), + (0, vue.unref)(ns).is("without-controls", !__props.controls), + (0, vue.unref)(ns).is("controls-right", controlsAtRight.value), + (0, vue.unref)(ns).is(__props.align, !!__props.align) + ]), + onDragstart: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["prevent"])) + }, [ + __props.controls ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + role: "button", + "aria-label": (0, vue.unref)(t)("el.inputNumber.decrease"), + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("decrease"), (0, vue.unref)(ns).is("disabled", minDisabled.value)]), + onKeydown: (0, vue.withKeys)(decrease, ["enter"]) + }, [(0, vue.renderSlot)(_ctx.$slots, "decrease-icon", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [controlsAtRight.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(arrow_down_default), { key: 0 })) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(minus_default), { key: 1 }))]), + _: 1 + })])], 42, _hoisted_1$33)), [[(0, vue.unref)(vRepeatClick), decrease]]) : (0, vue.createCommentVNode)("v-if", true), + __props.controls ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + role: "button", + "aria-label": (0, vue.unref)(t)("el.inputNumber.increase"), + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("increase"), (0, vue.unref)(ns).is("disabled", maxDisabled.value)]), + onKeydown: (0, vue.withKeys)(increase, ["enter"]) + }, [(0, vue.renderSlot)(_ctx.$slots, "increase-icon", {}, () => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [controlsAtRight.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(arrow_up_default), { key: 0 })) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(plus_default), { key: 1 }))]), + _: 1 + })])], 42, _hoisted_2$20)), [[(0, vue.unref)(vRepeatClick), increase]]) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createVNode)((0, vue.unref)(ElInput), { + id: __props.id, + ref_key: "input", + ref: input, + type: "number", + step: __props.step, + "model-value": displayValue.value, + placeholder: __props.placeholder, + readonly: __props.readonly, + disabled: (0, vue.unref)(inputNumberDisabled), + size: (0, vue.unref)(inputNumberSize), + max: __props.max, + min: __props.min, + name: __props.name, + "aria-label": __props.ariaLabel, + "validate-event": false, + inputmode: __props.inputmode, + onKeydown: handleKeydown, + onBlur: handleBlur, + onFocus: handleFocus, + onInput: handleInput, + onChange: handleInputChange + }, (0, vue.createSlots)({ _: 2 }, [_ctx.$slots.prefix ? { + name: "prefix", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "prefix")]), + key: "0" + } : void 0, _ctx.$slots.suffix ? { + name: "suffix", + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "suffix")]), + key: "1" + } : void 0]), 1032, [ + "id", + "step", + "model-value", + "placeholder", + "readonly", + "disabled", + "size", + "max", + "min", + "name", + "aria-label", + "inputmode" + ]) + ], 34); + }; + } + }); + +//#endregion +//#region ../../packages/components/input-number/src/input-number.vue + var input_number_default = input_number_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/input-number/index.ts + const ElInputNumber = withInstall(input_number_default); + +//#endregion +//#region ../../packages/components/input-tag/src/input-tag.ts +/** + * @deprecated Removed after 3.0.0, Use `InputTagProps` instead. + */ + const inputTagProps = buildProps({ + modelValue: { type: definePropType(Array) }, + max: Number, + tagType: { + ...tagProps.type, + default: "info" + }, + tagEffect: tagProps.effect, + effect: { + type: definePropType(String), + default: "light" + }, + trigger: { + type: definePropType(String), + default: EVENT_CODE.enter + }, + draggable: Boolean, + delimiter: { + type: [String, RegExp], + default: "" + }, + size: useSizeProp, + clearable: Boolean, + clearIcon: { + type: iconPropType, + default: circle_close_default + }, + disabled: { + type: Boolean, + default: void 0 + }, + validateEvent: { + type: Boolean, + default: true + }, + 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: definePropType(String), + default: "off" + }, + saveOnBlur: { + type: Boolean, + default: true + }, + collapseTags: Boolean, + collapseTagsTooltip: Boolean, + maxCollapseTags: { + type: Number, + default: 1 + }, + ariaLabel: String + }); + const inputTagEmits = { + [UPDATE_MODEL_EVENT]: (value) => isArray$1(value) || isUndefined(value), + [CHANGE_EVENT]: (value) => isArray$1(value) || isUndefined(value), + [INPUT_EVENT]: (value) => isString(value), + "add-tag": (value) => isString(value) || isArray$1(value), + "remove-tag": (value, index) => isString(value) && isNumber(index), + "drag-tag": (oldIndex, newIndex, value) => isNumber(oldIndex) && isNumber(newIndex) && isString(value), + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true + }; + +//#endregion +//#region ../../packages/components/input-tag/src/composables/use-drag-tag.ts + function useDragTag({ wrapperRef, handleDragged, afterDragged }) { + const ns = useNamespace("input-tag"); + const dropIndicatorRef = (0, vue.shallowRef)(); + const showDropIndicator = (0, vue.ref)(false); + let draggingIndex; + let draggingTag; + let dropIndex; + let dropType; + function getTagClassName(index) { + return `.${ns.e("inner")} .${ns.namespace.value}-tag:nth-child(${index + 1})`; + } + function handleDragStart(event, index) { + draggingIndex = index; + draggingTag = wrapperRef.value.querySelector(getTagClassName(index)); + if (draggingTag) draggingTag.style.opacity = "0.5"; + event.dataTransfer.effectAllowed = "move"; + } + function handleDragOver(event, index) { + dropIndex = index; + event.preventDefault(); + event.dataTransfer.dropEffect = "move"; + if (isUndefined(draggingIndex) || draggingIndex === index) { + showDropIndicator.value = false; + return; + } + const dropPosition = wrapperRef.value.querySelector(getTagClassName(index)).getBoundingClientRect(); + const dropPrev = !(draggingIndex + 1 === index); + const dropNext = !(draggingIndex - 1 === index); + const distance = event.clientX - dropPosition.left; + const prevPercent = dropPrev ? dropNext ? .5 : 1 : -1; + const nextPercent = dropNext ? dropPrev ? .5 : 0 : 1; + if (distance <= dropPosition.width * prevPercent) dropType = "before"; + else if (distance > dropPosition.width * nextPercent) dropType = "after"; + else dropType = void 0; + const innerEl = wrapperRef.value.querySelector(`.${ns.e("inner")}`); + const innerPosition = innerEl.getBoundingClientRect(); + const gap = Number.parseFloat(getStyle(innerEl, "gap")) / 2; + const indicatorTop = dropPosition.top - innerPosition.top; + let indicatorLeft = -9999; + if (dropType === "before") indicatorLeft = Math.max(dropPosition.left - innerPosition.left - gap, Math.floor(-gap / 2)); + else if (dropType === "after") { + const left = dropPosition.right - innerPosition.left; + indicatorLeft = left + (innerPosition.width === left ? Math.floor(gap / 2) : gap); + } + setStyle(dropIndicatorRef.value, { + top: `${indicatorTop}px`, + left: `${indicatorLeft}px` + }); + showDropIndicator.value = !!dropType; + } + function handleDragEnd(event) { + event.preventDefault(); + if (draggingTag) draggingTag.style.opacity = ""; + if (dropType && !isUndefined(draggingIndex) && !isUndefined(dropIndex) && draggingIndex !== dropIndex) handleDragged(draggingIndex, dropIndex, dropType); + showDropIndicator.value = false; + draggingIndex = void 0; + draggingTag = null; + dropIndex = void 0; + dropType = void 0; + afterDragged?.(); + } + return { + dropIndicatorRef, + showDropIndicator, + handleDragStart, + handleDragOver, + handleDragEnd + }; + } + +//#endregion +//#region ../../packages/components/input-tag/src/composables/use-hovering.ts + function useHovering() { + const hovering = (0, vue.ref)(false); + const handleMouseEnter = () => { + hovering.value = true; + }; + const handleMouseLeave = () => { + hovering.value = false; + }; + return { + hovering, + handleMouseEnter, + handleMouseLeave + }; + } + +//#endregion +//#region ../../packages/components/input-tag/src/composables/use-input-tag.ts + function useInputTag({ props, emit, formItem }) { + const disabled = useFormDisabled(); + const size = useFormSize(); + const inputRef = (0, vue.shallowRef)(); + const inputValue = (0, vue.ref)(); + const tagTooltipRef = (0, vue.ref)(); + const tagSize = (0, vue.computed)(() => { + return ["small"].includes(size.value) ? "small" : "default"; + }); + const placeholder = (0, vue.computed)(() => { + return props.modelValue?.length ? void 0 : props.placeholder; + }); + const closable = (0, vue.computed)(() => !(props.readonly || disabled.value)); + const inputLimit = (0, vue.computed)(() => { + return isUndefined(props.max) ? false : (props.modelValue?.length ?? 0) >= props.max; + }); + const showTagList = (0, vue.computed)(() => { + return props.collapseTags ? props.modelValue?.slice(0, props.maxCollapseTags) : props.modelValue; + }); + const collapseTagList = (0, vue.computed)(() => { + return props.collapseTags ? props.modelValue?.slice(props.maxCollapseTags) : []; + }); + const addTagsEmit = (value) => { + const list = [...props.modelValue ?? [], ...castArray$1(value)]; + emit(UPDATE_MODEL_EVENT, list); + emit(CHANGE_EVENT, list); + emit("add-tag", value); + inputValue.value = void 0; + }; + const getDelimitedTags = (input) => { + const parts = input.split(props.delimiter); + const tags = parts.length > 1 ? parts.map((val) => val.trim()).filter(Boolean) : []; + if (props.max) { + const maxInsert = props.max - (props.modelValue?.length ?? 0); + tags.splice(maxInsert); + } + return tags.length === 1 ? tags[0] : tags; + }; + const handlePaste = (event) => { + const pasted = event.clipboardData?.getData("text"); + if (props.readonly || inputLimit.value || !props.delimiter || !pasted) return; + const { selectionStart = 0, selectionEnd = 0, value } = event.target; + const nextValue = value.slice(0, selectionStart) + pasted + value.slice(selectionEnd); + const tags = getDelimitedTags(nextValue); + if (tags.length) { + addTagsEmit(tags); + emit(INPUT_EVENT, nextValue); + event.preventDefault(); + } + }; + const handleInput = (event) => { + if (inputLimit.value) { + inputValue.value = void 0; + return; + } + if (isComposing.value) return; + if (props.delimiter && inputValue.value) { + const tags = getDelimitedTags(inputValue.value); + if (tags.length) addTagsEmit(tags); + } + emit(INPUT_EVENT, event.target.value); + }; + const handleKeydown = (event) => { + if (isComposing.value) return; + switch (getEventCode(event)) { + case props.trigger: + event.preventDefault(); + event.stopPropagation(); + handleAddTag(); + break; + case EVENT_CODE.numpadEnter: + if (props.trigger === EVENT_CODE.enter) { + event.preventDefault(); + event.stopPropagation(); + handleAddTag(); + } + break; + case EVENT_CODE.backspace: + if (!inputValue.value && props.modelValue?.length) { + event.preventDefault(); + event.stopPropagation(); + handleRemoveTag(props.modelValue.length - 1); + } + break; + } + }; + const handleKeyup = (event) => { + if (isComposing.value || !isAndroid()) return; + switch (getEventCode(event)) { + case EVENT_CODE.space: + if (props.trigger === EVENT_CODE.space) { + event.preventDefault(); + event.stopPropagation(); + handleAddTag(); + } + break; + } + }; + const handleAddTag = () => { + const value = inputValue.value?.trim(); + if (!value || inputLimit.value) return; + addTagsEmit(value); + }; + const handleRemoveTag = (index) => { + const value = (props.modelValue ?? []).slice(); + const [item] = value.splice(index, 1); + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value); + emit("remove-tag", item, index); + }; + const handleClear = () => { + inputValue.value = void 0; + emit(UPDATE_MODEL_EVENT, void 0); + emit(CHANGE_EVENT, void 0); + emit("clear"); + }; + const handleDragged = (draggingIndex, dropIndex, type) => { + const value = (props.modelValue ?? []).slice(); + const [draggedItem] = value.splice(draggingIndex, 1); + const step = dropIndex > draggingIndex && type === "before" ? -1 : dropIndex < draggingIndex && type === "after" ? 1 : 0; + value.splice(dropIndex + step, 0, draggedItem); + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value); + emit("drag-tag", draggingIndex, dropIndex + step, draggedItem); + }; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + inputRef.value?.blur(); + }; + const { wrapperRef, isFocused } = useFocusController(inputRef, { + disabled, + beforeBlur(event) { + return tagTooltipRef.value?.isFocusInsideContent(event); + }, + afterBlur() { + if (props.saveOnBlur) handleAddTag(); + else inputValue.value = void 0; + if (props.validateEvent) formItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const { isComposing, handleCompositionStart, handleCompositionUpdate, handleCompositionEnd } = useComposition({ afterComposition: handleInput }); + (0, vue.watch)(() => props.modelValue, () => { + if (props.validateEvent) formItem?.validate?.(CHANGE_EVENT).catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + return { + inputRef, + wrapperRef, + tagTooltipRef, + isFocused, + isComposing, + inputValue, + size, + tagSize, + placeholder, + closable, + disabled, + inputLimit, + showTagList, + collapseTagList, + handleDragged, + handlePaste, + handleInput, + handleKeydown, + handleKeyup, + handleAddTag, + handleRemoveTag, + handleClear, + handleCompositionStart, + handleCompositionUpdate, + handleCompositionEnd, + focus, + blur + }; + } + +//#endregion +//#region ../../packages/components/input-tag/src/composables/use-input-tag-dom.ts + function useInputTagDom({ props, isFocused, hovering, disabled, inputValue, size, validateState, validateIcon, needStatusIcon }) { + const attrs = (0, vue.useAttrs)(); + const slots = (0, vue.useSlots)(); + const ns = useNamespace("input-tag"); + const nsInput = useNamespace("input"); + const collapseItemRef = (0, vue.ref)(); + const innerRef = (0, vue.ref)(); + const containerKls = (0, vue.computed)(() => [ + ns.b(), + ns.is("focused", isFocused.value), + ns.is("hovering", hovering.value), + ns.is("disabled", disabled.value), + ns.m(size.value), + ns.e("wrapper"), + attrs.class + ]); + const containerStyle = (0, vue.computed)(() => [attrs.style]); + const innerKls = (0, vue.computed)(() => [ + ns.e("inner"), + ns.is("draggable", props.draggable), + ns.is("left-space", !props.modelValue?.length && !slots.prefix), + ns.is("right-space", !props.modelValue?.length && !showSuffix.value) + ]); + const showClear = (0, vue.computed)(() => { + return props.clearable && !disabled.value && !props.readonly && (props.modelValue?.length || inputValue.value) && (isFocused.value || hovering.value); + }); + const showSuffix = (0, vue.computed)(() => { + return slots.suffix || showClear.value || validateState.value && validateIcon.value && needStatusIcon.value; + }); + const states = (0, vue.reactive)({ + innerWidth: 0, + collapseItemWidth: 0 + }); + const getGapWidth = () => { + if (!innerRef.value) return 0; + const style = window.getComputedStyle(innerRef.value); + return Number.parseFloat(style.gap || "6px"); + }; + const resetInnerWidth = () => { + states.innerWidth = Number.parseFloat(window.getComputedStyle(innerRef.value).width); + }; + const resetCollapseItemWidth = () => { + states.collapseItemWidth = collapseItemRef.value.getBoundingClientRect().width; + }; + const tagStyle = (0, vue.computed)(() => { + if (!props.collapseTags) return {}; + const gapWidth = getGapWidth(); + const inputSlotWidth = gapWidth + MINIMUM_INPUT_WIDTH; + const maxWidth = collapseItemRef.value && props.maxCollapseTags === 1 ? states.innerWidth - states.collapseItemWidth - gapWidth - inputSlotWidth : states.innerWidth - inputSlotWidth; + return { maxWidth: `${Math.max(maxWidth, 0)}px` }; + }); + useResizeObserver(innerRef, resetInnerWidth); + useResizeObserver(collapseItemRef, resetCollapseItemWidth); + return { + ns, + nsInput, + containerKls, + containerStyle, + innerKls, + showClear, + showSuffix, + tagStyle, + collapseItemRef, + innerRef + }; + } + +//#endregion +//#region ../../packages/components/input-tag/src/input-tag.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$32 = [ + "id", + "minlength", + "maxlength", + "disabled", + "readonly", + "autocomplete", + "tabindex", + "placeholder", + "autofocus", + "ariaLabel" + ]; + const _hoisted_2$19 = ["textContent"]; + var input_tag_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElInputTag", + inheritAttrs: false, + __name: "input-tag", + props: inputTagProps, + emits: inputTagEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const attrs = useAttrs(); + const slots = (0, vue.useSlots)(); + const { form, formItem } = useFormItem(); + const { inputId } = useFormItemInputId(props, { formItemContext: formItem }); + const needStatusIcon = (0, vue.computed)(() => form?.statusIcon ?? false); + const validateState = (0, vue.computed)(() => formItem?.validateState || ""); + const validateIcon = (0, vue.computed)(() => { + return validateState.value && ValidateComponentsMap[validateState.value]; + }); + const { inputRef, wrapperRef, tagTooltipRef, isFocused, inputValue, size, tagSize, placeholder, closable, disabled, showTagList, collapseTagList, handleDragged, handlePaste, handleInput, handleKeydown, handleKeyup, handleRemoveTag, handleClear, handleCompositionStart, handleCompositionUpdate, handleCompositionEnd, focus, blur } = useInputTag({ + props, + emit, + formItem + }); + const { hovering, handleMouseEnter, handleMouseLeave } = useHovering(); + const { calculatorRef, inputStyle } = useCalcInputWidth(); + const { dropIndicatorRef, showDropIndicator, handleDragStart, handleDragOver, handleDragEnd } = useDragTag({ + wrapperRef, + handleDragged, + afterDragged: focus + }); + const { ns, nsInput, containerKls, containerStyle, innerKls, showClear, showSuffix, tagStyle, collapseItemRef, innerRef } = useInputTagDom({ + props, + hovering, + isFocused, + inputValue, + disabled, + size, + validateState, + validateIcon, + needStatusIcon + }); + __expose({ + focus, + blur + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "wrapperRef", + ref: wrapperRef, + class: (0, vue.normalizeClass)((0, vue.unref)(containerKls)), + style: (0, vue.normalizeStyle)((0, vue.unref)(containerStyle)), + onMouseenter: _cache[9] || (_cache[9] = (...args) => (0, vue.unref)(handleMouseEnter) && (0, vue.unref)(handleMouseEnter)(...args)), + onMouseleave: _cache[10] || (_cache[10] = (...args) => (0, vue.unref)(handleMouseLeave) && (0, vue.unref)(handleMouseLeave)(...args)) + }, [ + (0, vue.unref)(slots).prefix ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("prefix")) + }, [(0, vue.renderSlot)(_ctx.$slots, "prefix")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + ref_key: "innerRef", + ref: innerRef, + class: (0, vue.normalizeClass)((0, vue.unref)(innerKls)) + }, [ + ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(showTagList), (item, index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTag), { + key: index, + size: (0, vue.unref)(tagSize), + closable: (0, vue.unref)(closable), + type: __props.tagType, + effect: __props.tagEffect, + draggable: (0, vue.unref)(closable) && __props.draggable, + style: (0, vue.normalizeStyle)((0, vue.unref)(tagStyle)), + "disable-transitions": "", + onClose: ($event) => (0, vue.unref)(handleRemoveTag)(index), + onDragstart: (event) => (0, vue.unref)(handleDragStart)(event, index), + onDragover: (event) => (0, vue.unref)(handleDragOver)(event, index), + onDragend: (0, vue.unref)(handleDragEnd), + onDrop: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "tag", { + value: item, + index + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(item), 1)])]), + _: 2 + }, 1032, [ + "size", + "closable", + "type", + "effect", + "draggable", + "style", + "onClose", + "onDragstart", + "onDragover", + "onDragend" + ]); + }), 128)), + __props.collapseTags && __props.modelValue && __props.modelValue.length > __props.maxCollapseTags ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), { + key: 0, + ref_key: "tagTooltipRef", + ref: tagTooltipRef, + disabled: !__props.collapseTagsTooltip, + "fallback-placements": [ + "bottom", + "top", + "right", + "left" + ], + effect: __props.effect, + placement: "bottom" + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref_key: "collapseItemRef", + ref: collapseItemRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("collapse-tag")) + }, [(0, vue.createVNode)((0, vue.unref)(ElTag), { + closable: false, + size: (0, vue.unref)(tagSize), + type: __props.tagType, + effect: __props.tagEffect, + "disable-transitions": "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)(" + " + (0, vue.toDisplayString)(__props.modelValue.length - __props.maxCollapseTags), 1)]), + _: 1 + }, 8, [ + "size", + "type", + "effect" + ])], 2)]), + content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("input-tag-list")) }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(collapseTagList), (item, index) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTag), { + key: index, + size: (0, vue.unref)(tagSize), + closable: (0, vue.unref)(closable), + type: __props.tagType, + effect: __props.tagEffect, + "disable-transitions": "", + onClose: ($event) => (0, vue.unref)(handleRemoveTag)(index + __props.maxCollapseTags) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "tag", { + value: item, + index: index + __props.maxCollapseTags + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(item), 1)])]), + _: 2 + }, 1032, [ + "size", + "closable", + "type", + "effect", + "onClose" + ]); + }), 128))], 2)]), + _: 3 + }, 8, ["disabled", "effect"])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("input-wrapper")) }, [(0, vue.withDirectives)((0, vue.createElementVNode)("input", (0, vue.mergeProps)({ + id: (0, vue.unref)(inputId), + ref_key: "inputRef", + ref: inputRef, + "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => (0, vue.isRef)(inputValue) ? inputValue.value = $event : null) + }, (0, vue.unref)(attrs), { + type: "text", + minlength: __props.minlength, + maxlength: __props.maxlength, + disabled: (0, vue.unref)(disabled), + readonly: __props.readonly, + autocomplete: __props.autocomplete, + tabindex: __props.tabindex, + placeholder: (0, vue.unref)(placeholder), + autofocus: __props.autofocus, + ariaLabel: __props.ariaLabel, + class: (0, vue.unref)(ns).e("input"), + style: (0, vue.unref)(inputStyle), + onCompositionstart: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(handleCompositionStart) && (0, vue.unref)(handleCompositionStart)(...args)), + onCompositionupdate: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(handleCompositionUpdate) && (0, vue.unref)(handleCompositionUpdate)(...args)), + onCompositionend: _cache[4] || (_cache[4] = (...args) => (0, vue.unref)(handleCompositionEnd) && (0, vue.unref)(handleCompositionEnd)(...args)), + onPaste: _cache[5] || (_cache[5] = (...args) => (0, vue.unref)(handlePaste) && (0, vue.unref)(handlePaste)(...args)), + onInput: _cache[6] || (_cache[6] = (...args) => (0, vue.unref)(handleInput) && (0, vue.unref)(handleInput)(...args)), + onKeydown: _cache[7] || (_cache[7] = (...args) => (0, vue.unref)(handleKeydown) && (0, vue.unref)(handleKeydown)(...args)), + onKeyup: _cache[8] || (_cache[8] = (...args) => (0, vue.unref)(handleKeyup) && (0, vue.unref)(handleKeyup)(...args)) + }), null, 16, _hoisted_1$32), [[vue.vModelText, (0, vue.unref)(inputValue)]]), (0, vue.createElementVNode)("span", { + ref_key: "calculatorRef", + ref: calculatorRef, + "aria-hidden": "true", + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("input-calculator")), + textContent: (0, vue.toDisplayString)((0, vue.unref)(inputValue)) + }, null, 10, _hoisted_2$19)], 2), + (0, vue.withDirectives)((0, vue.createElementVNode)("div", { + ref_key: "dropIndicatorRef", + ref: dropIndicatorRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("drop-indicator")) + }, null, 2), [[vue.vShow, (0, vue.unref)(showDropIndicator)]]) + ], 2), + (0, vue.unref)(showSuffix) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("suffix")) + }, [ + (0, vue.renderSlot)(_ctx.$slots, "suffix"), + (0, vue.unref)(showClear) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon"), (0, vue.unref)(ns).e("clear")]), + onMousedown: (0, vue.withModifiers)((0, vue.unref)(NOOP), ["prevent"]), + onClick: (0, vue.unref)(handleClear) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.clearIcon)))]), + _: 1 + }, 8, [ + "class", + "onMousedown", + "onClick" + ])) : (0, vue.createCommentVNode)("v-if", true), + validateState.value && validateIcon.value && needStatusIcon.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(nsInput).e("icon"), + (0, vue.unref)(nsInput).e("validateIcon"), + (0, vue.unref)(nsInput).is("loading", validateState.value === "validating") + ]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(validateIcon.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true) + ], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 38); + }; + } + }); + +//#endregion +//#region ../../packages/components/input-tag/src/input-tag.vue + var input_tag_default = input_tag_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/input-tag/index.ts + const ElInputTag = withInstall(input_tag_default); + +//#endregion +//#region ../../packages/components/link/src/link.ts +/** + * @deprecated Removed after 3.0.0, Use `LinkProps` instead. + */ + const linkProps = buildProps({ + type: { + type: String, + values: [ + "primary", + "success", + "warning", + "info", + "danger", + "default" + ], + default: void 0 + }, + underline: { + type: [Boolean, String], + values: [ + true, + false, + "always", + "never", + "hover" + ], + default: void 0 + }, + disabled: Boolean, + href: { + type: String, + default: "" + }, + target: { + type: String, + default: "_self" + }, + icon: { type: iconPropType } + }); + const linkEmits = { click: (evt) => evt instanceof MouseEvent }; + +//#endregion +//#region ../../packages/components/link/src/link.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$31 = ["href", "target"]; + var link_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElLink", + __name: "link", + props: linkProps, + emits: linkEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const globalConfig = useGlobalConfig("link"); + useDeprecated({ + 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" + }, (0, vue.computed)(() => isBoolean(props.underline))); + const ns = useNamespace("link"); + const linkKls = (0, vue.computed)(() => [ + ns.b(), + ns.m(props.type ?? globalConfig.value?.type ?? "default"), + ns.is("disabled", props.disabled), + ns.is("underline", underline.value === "always"), + ns.is("hover-underline", underline.value === "hover" && !props.disabled) + ]); + const underline = (0, vue.computed)(() => { + if (isBoolean(props.underline)) return props.underline ? "hover" : "never"; + else return props.underline ?? globalConfig.value?.underline ?? "hover"; + }); + function handleClick(event) { + if (!props.disabled) emit("click", event); + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("a", { + class: (0, vue.normalizeClass)(linkKls.value), + href: __props.disabled || !__props.href ? void 0 : __props.href, + target: __props.disabled || !__props.href ? void 0 : __props.target, + onClick: handleClick + }, [ + __props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("inner")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.icon ? (0, vue.renderSlot)(_ctx.$slots, "icon", { key: 2 }) : (0, vue.createCommentVNode)("v-if", true) + ], 10, _hoisted_1$31); + }; + } + }); + +//#endregion +//#region ../../packages/components/link/src/link.vue + var link_default = link_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/link/index.ts + const ElLink = withInstall(link_default); + +//#endregion +//#region ../../packages/components/menu/src/utils/submenu.ts + var SubMenu = class { + constructor(parent, domNode) { + this.parent = parent; + this.domNode = domNode; + this.subIndex = 0; + this.subIndex = 0; + this.init(); + } + init() { + this.subMenuItems = this.domNode.querySelectorAll("li"); + this.addListeners(); + } + gotoSubIndex(idx) { + if (idx === this.subMenuItems.length) idx = 0; + else if (idx < 0) idx = this.subMenuItems.length - 1; + this.subMenuItems[idx].focus(); + this.subIndex = idx; + } + addListeners() { + const parentNode = this.parent.domNode; + Array.prototype.forEach.call(this.subMenuItems, (el) => { + el.addEventListener("keydown", (event) => { + const code = getEventCode(event); + let prevDef = false; + switch (code) { + case EVENT_CODE.down: + this.gotoSubIndex(this.subIndex + 1); + prevDef = true; + break; + case EVENT_CODE.up: + this.gotoSubIndex(this.subIndex - 1); + prevDef = true; + break; + case EVENT_CODE.tab: + triggerEvent(parentNode, "mouseleave"); + break; + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + case EVENT_CODE.space: + prevDef = true; + event.currentTarget.click(); + break; + } + if (prevDef) { + event.preventDefault(); + event.stopPropagation(); + } + return false; + }); + }); + } + }; + +//#endregion +//#region ../../packages/components/menu/src/utils/menu-item.ts + var MenuItem = class { + constructor(domNode, namespace) { + this.domNode = domNode; + this.submenu = null; + this.submenu = null; + this.init(namespace); + } + init(namespace) { + this.domNode.setAttribute("tabindex", "0"); + const menuChild = this.domNode.querySelector(`.${namespace}-menu`); + if (menuChild) this.submenu = new SubMenu(this, menuChild); + this.addListeners(); + } + addListeners() { + this.domNode.addEventListener("keydown", (event) => { + const code = getEventCode(event); + let prevDef = false; + switch (code) { + case EVENT_CODE.down: + triggerEvent(event.currentTarget, "mouseenter"); + this.submenu && this.submenu.gotoSubIndex(0); + prevDef = true; + break; + case EVENT_CODE.up: + triggerEvent(event.currentTarget, "mouseenter"); + this.submenu && this.submenu.gotoSubIndex(this.submenu.subMenuItems.length - 1); + prevDef = true; + break; + case EVENT_CODE.tab: + triggerEvent(event.currentTarget, "mouseleave"); + break; + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + case EVENT_CODE.space: + prevDef = true; + event.currentTarget.click(); + break; + } + if (prevDef) event.preventDefault(); + }); + } + }; + +//#endregion +//#region ../../packages/components/menu/src/utils/menu-bar.ts + var Menu = class { + constructor(domNode, namespace) { + this.domNode = domNode; + this.init(namespace); + } + init(namespace) { + const menuChildren = this.domNode.childNodes; + Array.from(menuChildren).forEach((child) => { + if (child.nodeType === 1) new MenuItem(child, namespace); + }); + } + }; + +//#endregion +//#region ../../packages/components/menu/src/menu-collapse-transition.vue?vue&type=script&setup=true&lang.ts + var menu_collapse_transition_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElMenuCollapseTransition", + __name: "menu-collapse-transition", + setup(__props) { + const ns = useNamespace("menu"); + const listeners = { + onBeforeEnter: (el) => el.style.opacity = "0.2", + onEnter(el, done) { + addClass(el, `${ns.namespace.value}-opacity-transition`); + el.style.opacity = "1"; + done(); + }, + onAfterEnter(el) { + removeClass(el, `${ns.namespace.value}-opacity-transition`); + el.style.opacity = ""; + }, + onBeforeLeave(el) { + if (!el.dataset) el.dataset = {}; + if (hasClass(el, ns.m("collapse"))) { + removeClass(el, ns.m("collapse")); + el.dataset.oldOverflow = el.style.overflow; + el.dataset.scrollWidth = el.clientWidth.toString(); + addClass(el, ns.m("collapse")); + } else { + addClass(el, ns.m("collapse")); + el.dataset.oldOverflow = el.style.overflow; + el.dataset.scrollWidth = el.clientWidth.toString(); + removeClass(el, ns.m("collapse")); + } + el.style.width = `${el.scrollWidth}px`; + el.style.overflow = "hidden"; + }, + onLeave(el) { + addClass(el, "horizontal-collapse-transition"); + el.style.width = `${el.dataset.scrollWidth}px`; + } + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, (0, vue.mergeProps)({ mode: "out-in" }, listeners), { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 16); + }; + } + }); + +//#endregion +//#region ../../packages/components/menu/src/menu-collapse-transition.vue + var menu_collapse_transition_default = menu_collapse_transition_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/menu/src/use-menu.ts + function useMenu(instance, currentIndex) { + const indexPath = (0, vue.computed)(() => { + let parent = instance.parent; + const path = [currentIndex.value]; + while (parent.type.name !== "ElMenu") { + if (parent.props.index) path.unshift(parent.props.index); + parent = parent.parent; + } + return path; + }); + return { + parentMenu: (0, vue.computed)(() => { + let parent = instance.parent; + while (parent && !["ElMenu", "ElSubMenu"].includes(parent.type.name)) parent = parent.parent; + return parent; + }), + indexPath + }; + } + +//#endregion +//#region ../../packages/components/menu/src/use-menu-color.ts + function useMenuColor(props) { + return (0, vue.computed)(() => { + const color = props.backgroundColor; + return color ? new TinyColor(color).shade(20).toString() : ""; + }); + } + +//#endregion +//#region ../../packages/components/menu/src/use-menu-css-var.ts + const useMenuCssVar = (props, level) => { + const ns = useNamespace("menu"); + return (0, vue.computed)(() => ns.cssVarBlock({ + "text-color": props.textColor || "", + "hover-text-color": props.textColor || "", + "bg-color": props.backgroundColor || "", + "hover-bg-color": useMenuColor(props).value || "", + "active-color": props.activeTextColor || "", + level: `${level}` + })); + }; + +//#endregion +//#region ../../packages/components/menu/src/tokens.ts + const MENU_INJECTION_KEY = "rootMenu"; + const SUB_MENU_INJECTION_KEY = "subMenu:"; + +//#endregion +//#region ../../packages/components/menu/src/sub-menu.ts + const subMenuProps = buildProps({ + index: { + type: String, + required: true + }, + showTimeout: Number, + hideTimeout: Number, + popperClass: String, + popperStyle: { type: definePropType([String, Object]) }, + disabled: Boolean, + teleported: { + type: Boolean, + default: void 0 + }, + popperOffset: Number, + expandCloseIcon: { type: iconPropType }, + expandOpenIcon: { type: iconPropType }, + collapseCloseIcon: { type: iconPropType }, + collapseOpenIcon: { type: iconPropType } + }); + const COMPONENT_NAME$8 = "ElSubMenu"; + var sub_menu_default = (0, vue.defineComponent)({ + name: COMPONENT_NAME$8, + props: subMenuProps, + setup(props, { slots, expose }) { + const instance = (0, vue.getCurrentInstance)(); + const { indexPath, parentMenu } = useMenu(instance, (0, vue.computed)(() => props.index)); + const nsMenu = useNamespace("menu"); + const nsSubMenu = useNamespace("sub-menu"); + const rootMenu = (0, vue.inject)(MENU_INJECTION_KEY); + if (!rootMenu) throwError(COMPONENT_NAME$8, "can not inject root menu"); + const subMenu = (0, vue.inject)(`${SUB_MENU_INJECTION_KEY}${parentMenu.value.uid}`); + if (!subMenu) throwError(COMPONENT_NAME$8, "can not inject sub menu"); + const items = (0, vue.ref)({}); + const subMenus = (0, vue.ref)({}); + let timeout; + const mouseInChild = (0, vue.ref)(false); + const verticalTitleRef = (0, vue.ref)(); + const vPopper = (0, vue.ref)(); + const isFirstLevel = (0, vue.computed)(() => subMenu.level === 0); + const currentPlacement = (0, vue.computed)(() => mode.value === "horizontal" && isFirstLevel.value ? "bottom-start" : "right-start"); + const subMenuTitleIcon = (0, vue.computed)(() => { + if (mode.value === "horizontal" && isFirstLevel.value || mode.value === "vertical" && !rootMenu.props.collapse) { + if (props.expandCloseIcon && props.expandOpenIcon) return opened.value ? props.expandOpenIcon : props.expandCloseIcon; + return arrow_down_default; + } else { + if (props.collapseCloseIcon && props.collapseOpenIcon) return opened.value ? props.collapseOpenIcon : props.collapseCloseIcon; + return arrow_right_default; + } + }); + const appendToBody = (0, vue.computed)(() => { + const value = props.teleported; + return isUndefined(value) ? isFirstLevel.value : value; + }); + const menuTransitionName = (0, vue.computed)(() => rootMenu.props.collapse ? `${nsMenu.namespace.value}-zoom-in-left` : `${nsMenu.namespace.value}-zoom-in-top`); + const fallbackPlacements = (0, vue.computed)(() => mode.value === "horizontal" && isFirstLevel.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" + ]); + const opened = (0, vue.computed)(() => rootMenu.openedMenus.includes(props.index)); + const active = (0, vue.computed)(() => [...Object.values(items.value), ...Object.values(subMenus.value)].some(({ active }) => active)); + const mode = (0, vue.computed)(() => rootMenu.props.mode); + const persistent = (0, vue.computed)(() => rootMenu.props.persistent); + const item = (0, vue.reactive)({ + index: props.index, + indexPath, + active + }); + const ulStyle = useMenuCssVar(rootMenu.props, subMenu.level + 1); + const subMenuPopperOffset = (0, vue.computed)(() => props.popperOffset ?? rootMenu.props.popperOffset); + const subMenuPopperClass = (0, vue.computed)(() => props.popperClass ?? rootMenu.props.popperClass); + const subMenuPopperStyle = (0, vue.computed)(() => props.popperStyle ?? rootMenu.props.popperStyle); + const subMenuShowTimeout = (0, vue.computed)(() => props.showTimeout ?? rootMenu.props.showTimeout); + const subMenuHideTimeout = (0, vue.computed)(() => props.hideTimeout ?? rootMenu.props.hideTimeout); + const doDestroy = () => vPopper.value?.popperRef?.popperInstanceRef?.destroy(); + const handleCollapseToggle = (value) => { + if (!value) doDestroy(); + }; + const handleClick = () => { + if (rootMenu.props.menuTrigger === "hover" && rootMenu.props.mode === "horizontal" || rootMenu.props.collapse && rootMenu.props.mode === "vertical" || props.disabled) return; + rootMenu.handleSubMenuClick({ + index: props.index, + indexPath: indexPath.value, + active: active.value + }); + }; + const handleMouseenter = (event, showTimeout = subMenuShowTimeout.value) => { + if (event.type === "focus") return; + if (rootMenu.props.menuTrigger === "click" && rootMenu.props.mode === "horizontal" || !rootMenu.props.collapse && rootMenu.props.mode === "vertical" || props.disabled) { + subMenu.mouseInChild.value = true; + return; + } + subMenu.mouseInChild.value = true; + timeout?.(); + ({stop: timeout} = useTimeoutFn(() => { + rootMenu.openMenu(props.index, indexPath.value); + }, showTimeout)); + if (appendToBody.value) parentMenu.value.vnode.el?.dispatchEvent(new MouseEvent("mouseenter")); + if (event.type === "mouseenter" && event.target) (0, vue.nextTick)(() => { + focusElement(event.target, { preventScroll: true }); + }); + }; + const handleMouseleave = (deepDispatch = false) => { + if (rootMenu.props.menuTrigger === "click" && rootMenu.props.mode === "horizontal" || !rootMenu.props.collapse && rootMenu.props.mode === "vertical") { + subMenu.mouseInChild.value = false; + return; + } + timeout?.(); + subMenu.mouseInChild.value = false; + ({stop: timeout} = useTimeoutFn(() => !mouseInChild.value && rootMenu.closeMenu(props.index, indexPath.value), subMenuHideTimeout.value)); + if (appendToBody.value && deepDispatch) subMenu.handleMouseleave?.(true); + }; + (0, vue.watch)(() => rootMenu.props.collapse, (value) => handleCollapseToggle(Boolean(value))); + { + const addSubMenu = (item) => { + subMenus.value[item.index] = item; + }; + const removeSubMenu = (item) => { + delete subMenus.value[item.index]; + }; + (0, vue.provide)(`${SUB_MENU_INJECTION_KEY}${instance.uid}`, { + addSubMenu, + removeSubMenu, + handleMouseleave, + mouseInChild, + level: subMenu.level + 1 + }); + } + expose({ opened }); + (0, vue.onMounted)(() => { + rootMenu.addSubMenu(item); + subMenu.addSubMenu(item); + }); + (0, vue.onBeforeUnmount)(() => { + subMenu.removeSubMenu(item); + rootMenu.removeSubMenu(item); + }); + return () => { + const titleTag = [slots.title?.(), (0, vue.h)(ElIcon, { + class: nsSubMenu.e("icon-arrow"), + style: { transform: opened.value ? props.expandCloseIcon && props.expandOpenIcon || props.collapseCloseIcon && props.collapseOpenIcon && rootMenu.props.collapse ? "none" : "rotateZ(180deg)" : "none" } + }, { default: () => isString(subMenuTitleIcon.value) ? (0, vue.h)(instance.appContext.components[subMenuTitleIcon.value]) : (0, vue.h)(subMenuTitleIcon.value) })]; + const child = rootMenu.isMenuPopup ? (0, vue.h)(ElTooltip, { + ref: vPopper, + visible: opened.value, + effect: "light", + pure: true, + offset: subMenuPopperOffset.value, + showArrow: false, + persistent: persistent.value, + popperClass: subMenuPopperClass.value, + popperStyle: subMenuPopperStyle.value, + placement: currentPlacement.value, + teleported: appendToBody.value, + fallbackPlacements: fallbackPlacements.value, + transition: menuTransitionName.value, + gpuAcceleration: false + }, { + content: () => (0, vue.h)("div", { + class: [ + nsMenu.m(mode.value), + nsMenu.m("popup-container"), + subMenuPopperClass.value + ], + onMouseenter: (evt) => handleMouseenter(evt, 100), + onMouseleave: () => handleMouseleave(true), + onFocus: (evt) => handleMouseenter(evt, 100) + }, [(0, vue.h)("ul", { + class: [ + nsMenu.b(), + nsMenu.m("popup"), + nsMenu.m(`popup-${currentPlacement.value}`) + ], + style: ulStyle.value + }, [slots.default?.()])]), + default: () => (0, vue.h)("div", { + class: nsSubMenu.e("title"), + onClick: handleClick + }, titleTag) + }) : (0, vue.h)(vue.Fragment, {}, [(0, vue.h)("div", { + class: nsSubMenu.e("title"), + ref: verticalTitleRef, + onClick: handleClick + }, titleTag), (0, vue.h)(ElCollapseTransition, {}, { default: () => (0, vue.withDirectives)((0, vue.h)("ul", { + role: "menu", + class: [nsMenu.b(), nsMenu.m("inline")], + style: ulStyle.value + }, [slots.default?.()]), [[vue.vShow, opened.value]]) })]); + return (0, vue.h)("li", { + class: [ + nsSubMenu.b(), + nsSubMenu.is("active", active.value), + nsSubMenu.is("opened", opened.value), + nsSubMenu.is("disabled", props.disabled) + ], + role: "menuitem", + ariaHaspopup: true, + ariaExpanded: opened.value, + onMouseenter: handleMouseenter, + onMouseleave: () => handleMouseleave(), + onFocus: handleMouseenter + }, [child]); + }; + } + }); + +//#endregion +//#region ../../packages/components/menu/src/menu.ts + const menuProps = buildProps({ + mode: { + type: String, + values: ["horizontal", "vertical"], + default: "vertical" + }, + defaultActive: { + type: String, + default: "" + }, + defaultOpeneds: { + type: definePropType(Array), + default: () => mutable([]) + }, + 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: true + }, + ellipsis: { + type: Boolean, + default: true + }, + popperOffset: { + type: Number, + default: 6 + }, + ellipsisIcon: { + type: iconPropType, + default: () => more_default + }, + popperEffect: { + type: definePropType(String), + default: "dark" + }, + popperClass: String, + popperStyle: { type: definePropType([String, Object]) }, + showTimeout: { + type: Number, + default: 300 + }, + hideTimeout: { + type: Number, + default: 300 + }, + persistent: { + type: Boolean, + default: true + } + }); + const checkIndexPath = (indexPath) => isArray$1(indexPath) && indexPath.every((path) => isString(path)); + const menuEmits = { + close: (index, indexPath) => isString(index) && checkIndexPath(indexPath), + open: (index, indexPath) => isString(index) && checkIndexPath(indexPath), + select: (index, indexPath, item, routerResult) => isString(index) && checkIndexPath(indexPath) && isObject$1(item) && (isUndefined(routerResult) || routerResult instanceof Promise) + }; + const DEFAULT_MORE_ITEM_WIDTH = 64; + var menu_default = (0, vue.defineComponent)({ + name: "ElMenu", + props: menuProps, + emits: menuEmits, + setup(props, { emit, slots, expose }) { + const instance = (0, vue.getCurrentInstance)(); + const router = instance.appContext.config.globalProperties.$router; + const menu = (0, vue.ref)(); + const subMenu = (0, vue.ref)(); + const nsMenu = useNamespace("menu"); + const nsSubMenu = useNamespace("sub-menu"); + let moreItemWidth = DEFAULT_MORE_ITEM_WIDTH; + const sliceIndex = (0, vue.ref)(-1); + const openedMenus = (0, vue.ref)(props.defaultOpeneds && !props.collapse ? props.defaultOpeneds.slice(0) : []); + const activeIndex = (0, vue.ref)(props.defaultActive); + const items = (0, vue.ref)({}); + const subMenus = (0, vue.ref)({}); + const isMenuPopup = (0, vue.computed)(() => props.mode === "horizontal" || props.mode === "vertical" && props.collapse); + const initMenu = () => { + const activeItem = activeIndex.value && items.value[activeIndex.value]; + if (!activeItem || props.mode === "horizontal" || props.collapse) return; + activeItem.indexPath.forEach((index) => { + const subMenu = subMenus.value[index]; + subMenu && openMenu(index, subMenu.indexPath); + }); + }; + const openMenu = (index, indexPath) => { + if (openedMenus.value.includes(index)) return; + if (props.uniqueOpened) openedMenus.value = openedMenus.value.filter((index) => indexPath.includes(index)); + openedMenus.value.push(index); + emit("open", index, indexPath); + }; + const close = (index) => { + const i = openedMenus.value.indexOf(index); + if (i !== -1) openedMenus.value.splice(i, 1); + }; + const closeMenu = (index, indexPath) => { + close(index); + emit("close", index, indexPath); + }; + const handleSubMenuClick = ({ index, indexPath }) => { + openedMenus.value.includes(index) ? closeMenu(index, indexPath) : openMenu(index, indexPath); + }; + const handleMenuItemClick = (menuItem) => { + if (props.mode === "horizontal" || props.collapse) openedMenus.value = []; + const { index, indexPath } = menuItem; + if (isNil(index) || isNil(indexPath)) return; + if (props.router && router) { + const route = menuItem.route || index; + const routerResult = router.push(route).then((res) => { + if (!res) activeIndex.value = index; + return res; + }); + emit("select", index, indexPath, { + index, + indexPath, + route + }, routerResult); + } else { + activeIndex.value = index; + emit("select", index, indexPath, { + index, + indexPath + }); + } + }; + const updateActiveIndex = (val) => { + const itemsInData = items.value; + activeIndex.value = (itemsInData[val] || activeIndex.value && itemsInData[activeIndex.value] || itemsInData[props.defaultActive])?.index ?? val; + }; + const calcMenuItemWidth = (menuItem) => { + const computedStyle = getComputedStyle(menuItem); + const marginLeft = Number.parseInt(computedStyle.marginLeft, 10); + const marginRight = Number.parseInt(computedStyle.marginRight, 10); + return menuItem.offsetWidth + marginLeft + marginRight || 0; + }; + const calcSliceIndex = () => { + if (!menu.value) return -1; + const items = Array.from(menu.value.childNodes).filter((item) => item.nodeName !== "#comment" && (item.nodeName !== "#text" || item.nodeValue)); + const computedMenuStyle = getComputedStyle(menu.value); + const paddingLeft = Number.parseInt(computedMenuStyle.paddingLeft, 10); + const paddingRight = Number.parseInt(computedMenuStyle.paddingRight, 10); + const menuWidth = menu.value.clientWidth - paddingLeft - paddingRight; + let calcWidth = 0; + let sliceIndex = 0; + items.forEach((item, index) => { + calcWidth += calcMenuItemWidth(item); + if (calcWidth <= menuWidth - moreItemWidth) sliceIndex = index + 1; + }); + return sliceIndex === items.length ? -1 : sliceIndex; + }; + const getIndexPath = (index) => subMenus.value[index].indexPath; + const debounce = (fn, wait = 33.34) => { + let timer; + return () => { + timer && clearTimeout(timer); + timer = setTimeout(() => { + fn(); + }, wait); + }; + }; + let isFirstTimeRender = true; + const handleResize = () => { + const el = unrefElement(subMenu); + if (el) moreItemWidth = calcMenuItemWidth(el) || DEFAULT_MORE_ITEM_WIDTH; + if (sliceIndex.value === calcSliceIndex()) return; + const callback = () => { + sliceIndex.value = -1; + (0, vue.nextTick)(() => { + sliceIndex.value = calcSliceIndex(); + }); + }; + isFirstTimeRender ? callback() : debounce(callback)(); + isFirstTimeRender = false; + }; + (0, vue.watch)(() => props.defaultActive, (currentActive) => { + if (!items.value[currentActive]) activeIndex.value = ""; + updateActiveIndex(currentActive); + }); + (0, vue.watch)(() => props.collapse, (value) => { + if (value) openedMenus.value = []; + }); + (0, vue.watch)(items.value, initMenu); + let resizeStopper; + (0, vue.watchEffect)(() => { + if (props.mode === "horizontal" && props.ellipsis) resizeStopper = useResizeObserver(menu, handleResize).stop; + else resizeStopper?.(); + }); + const mouseInChild = (0, vue.ref)(false); + { + const addSubMenu = (item) => { + subMenus.value[item.index] = item; + }; + const removeSubMenu = (item) => { + delete subMenus.value[item.index]; + }; + const addMenuItem = (item) => { + items.value[item.index] = item; + }; + const removeMenuItem = (item) => { + delete items.value[item.index]; + }; + (0, vue.provide)(MENU_INJECTION_KEY, (0, vue.reactive)({ + props, + openedMenus, + items, + subMenus, + activeIndex, + isMenuPopup, + addMenuItem, + removeMenuItem, + addSubMenu, + removeSubMenu, + openMenu, + closeMenu, + handleMenuItemClick, + handleSubMenuClick + })); + (0, vue.provide)(`${SUB_MENU_INJECTION_KEY}${instance.uid}`, { + addSubMenu, + removeSubMenu, + mouseInChild, + level: 0 + }); + } + (0, vue.onMounted)(() => { + if (props.mode === "horizontal") new Menu(instance.vnode.el, nsMenu.namespace.value); + }); + { + const open = (index) => { + const { indexPath } = subMenus.value[index]; + indexPath.forEach((i) => openMenu(i, indexPath)); + }; + expose({ + open, + close, + updateActiveIndex, + handleResize + }); + } + const ulStyle = useMenuCssVar(props, 0); + return () => { + let slot = slots.default?.() ?? []; + const vShowMore = []; + if (props.mode === "horizontal" && menu.value) { + const originalSlot = flattedChildren(slot).filter((vnode) => { + return vnode?.shapeFlag !== 8; + }); + const slotDefault = sliceIndex.value === -1 ? originalSlot : originalSlot.slice(0, sliceIndex.value); + const slotMore = sliceIndex.value === -1 ? [] : originalSlot.slice(sliceIndex.value); + if (slotMore?.length && props.ellipsis) { + slot = slotDefault; + vShowMore.push((0, vue.h)(sub_menu_default, { + ref: subMenu, + index: "sub-menu-more", + class: nsSubMenu.e("hide-arrow"), + popperOffset: props.popperOffset + }, { + title: () => (0, vue.h)(ElIcon, { class: nsSubMenu.e("icon-more") }, { default: () => (0, vue.h)(props.ellipsisIcon) }), + default: () => slotMore + })); + } + } + const directives = props.closeOnClickOutside ? [[ClickOutside, () => { + if (!openedMenus.value.length) return; + if (!mouseInChild.value) { + openedMenus.value.forEach((openedMenu) => emit("close", openedMenu, getIndexPath(openedMenu))); + openedMenus.value = []; + } + }]] : []; + const vMenu = (0, vue.withDirectives)((0, vue.h)("ul", { + key: String(props.collapse), + role: "menubar", + ref: menu, + style: ulStyle.value, + class: { + [nsMenu.b()]: true, + [nsMenu.m(props.mode)]: true, + [nsMenu.m("collapse")]: props.collapse + } + }, [...slot, ...vShowMore]), directives); + if (props.collapseTransition && props.mode === "vertical") return (0, vue.h)(menu_collapse_transition_default, () => vMenu); + return vMenu; + }; + } + }); + +//#endregion +//#region ../../packages/components/menu/src/menu-item.ts +/** + * @deprecated Removed after 3.0.0, Use `MenuItemProps` instead. + */ + const menuItemProps = buildProps({ + index: { + type: definePropType([String, null]), + default: null + }, + route: { type: definePropType([String, Object]) }, + disabled: Boolean + }); + const menuItemEmits = { click: (item) => isString(item.index) && isArray$1(item.indexPath) }; + +//#endregion +//#region ../../packages/components/menu/src/menu-item.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$7 = "ElMenuItem"; + var menu_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$7, + __name: "menu-item", + props: menuItemProps, + emits: menuItemEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + isPropAbsent(props.index) && /* @__PURE__ */ debugWarn(COMPONENT_NAME$7, "Missing required prop: \"index\""); + const instance = (0, vue.getCurrentInstance)(); + const rootMenu = (0, vue.inject)(MENU_INJECTION_KEY); + const nsMenu = useNamespace("menu"); + const nsMenuItem = useNamespace("menu-item"); + if (!rootMenu) throwError(COMPONENT_NAME$7, "can not inject root menu"); + const { parentMenu, indexPath } = useMenu(instance, (0, vue.toRef)(props, "index")); + const subMenu = (0, vue.inject)(`${SUB_MENU_INJECTION_KEY}${parentMenu.value.uid}`); + if (!subMenu) throwError(COMPONENT_NAME$7, "can not inject sub menu"); + const active = (0, vue.computed)(() => props.index === rootMenu.activeIndex); + const item = (0, vue.reactive)({ + index: props.index, + indexPath, + active + }); + const handleClick = () => { + if (!props.disabled) { + rootMenu.handleMenuItemClick({ + index: props.index, + indexPath: indexPath.value, + route: props.route + }); + emit("click", item); + } + }; + (0, vue.onMounted)(() => { + subMenu.addSubMenu(item); + rootMenu.addMenuItem(item); + }); + (0, vue.onBeforeUnmount)(() => { + subMenu.removeSubMenu(item); + rootMenu.removeMenuItem(item); + }); + __expose({ + parentMenu, + rootMenu, + active, + nsMenu, + nsMenuItem, + handleClick + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(nsMenuItem).b(), + (0, vue.unref)(nsMenuItem).is("active", active.value), + (0, vue.unref)(nsMenuItem).is("disabled", __props.disabled) + ]), + role: "menuitem", + tabindex: "-1", + onClick: handleClick + }, [(0, vue.unref)(parentMenu).type.name === "ElMenu" && (0, vue.unref)(rootMenu).props.collapse && _ctx.$slots.title ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), { + key: 0, + effect: (0, vue.unref)(rootMenu).props.popperEffect, + placement: "right", + "fallback-placements": ["left"], + "popper-class": (0, vue.unref)(rootMenu).props.popperClass, + "popper-style": (0, vue.unref)(rootMenu).props.popperStyle, + persistent: (0, vue.unref)(rootMenu).props.persistent, + "focus-on-target": "" + }, { + content: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "title")]), + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(nsMenu).be("tooltip", "trigger")) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)]), + _: 3 + }, 8, [ + "effect", + "popper-class", + "popper-style", + "persistent" + ])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.renderSlot)(_ctx.$slots, "default"), (0, vue.renderSlot)(_ctx.$slots, "title")], 64))], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/menu/src/menu-item.vue + var menu_item_default = menu_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/menu/src/menu-item-group.ts +/** + * @deprecated Removed after 3.0.0, Use `MenuItemGroupProps` instead. + */ + const menuItemGroupProps = { title: String }; + +//#endregion +//#region ../../packages/components/menu/src/menu-item-group.vue?vue&type=script&setup=true&lang.ts + var menu_item_group_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElMenuItemGroup", + __name: "menu-item-group", + props: menuItemGroupProps, + setup(__props) { + const ns = useNamespace("menu-item-group"); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) }, [!_ctx.$slots.title ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)], 64)) : (0, vue.renderSlot)(_ctx.$slots, "title", { key: 1 })], 2), (0, vue.createElementVNode)("ul", null, [(0, vue.renderSlot)(_ctx.$slots, "default")])], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/menu/src/menu-item-group.vue + var menu_item_group_default = menu_item_group_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/menu/index.ts + const ElMenu = withInstall(menu_default, { + MenuItem: menu_item_default, + MenuItemGroup: menu_item_group_default, + SubMenu: sub_menu_default + }); + const ElMenuItem = withNoopInstall(menu_item_default); + const ElMenuItemGroup = withNoopInstall(menu_item_group_default); + const ElSubMenu = withNoopInstall(sub_menu_default); + +//#endregion +//#region ../../packages/components/page-header/src/page-header.ts +/** + * @deprecated Removed after 3.0.0, Use `PageHeaderProps` instead. + */ + const pageHeaderProps = buildProps({ + icon: { + type: iconPropType, + default: () => back_default + }, + title: String, + content: { + type: String, + default: "" + } + }); + const pageHeaderEmits = { back: () => true }; + +//#endregion +//#region ../../packages/components/page-header/src/page-header.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$30 = ["aria-label"]; + var page_header_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPageHeader", + __name: "page-header", + props: pageHeaderProps, + emits: pageHeaderEmits, + setup(__props, { emit: __emit }) { + const emit = __emit; + const { t } = useLocale(); + const ns = useNamespace("page-header"); + function handleClick() { + emit("back"); + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).is("contentful", !!_ctx.$slots.default), + { + [(0, vue.unref)(ns).m("has-breadcrumb")]: !!_ctx.$slots.breadcrumb, + [(0, vue.unref)(ns).m("has-extra")]: !!_ctx.$slots.extra + } + ]) }, [ + _ctx.$slots.breadcrumb ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("breadcrumb")) + }, [(0, vue.renderSlot)(_ctx.$slots, "breadcrumb")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("header")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("left")) }, [ + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("back")), + role: "button", + tabindex: "0", + onClick: handleClick + }, [__props.icon || _ctx.$slots.icon ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + "aria-label": __props.title || (0, vue.unref)(t)("el.pageHeader.title"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon")) + }, [(0, vue.renderSlot)(_ctx.$slots, "icon", {}, () => [__props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true)])], 10, _hoisted_1$30)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) }, [(0, vue.renderSlot)(_ctx.$slots, "title", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title || (0, vue.unref)(t)("el.pageHeader.title")), 1)])], 2)], 2), + (0, vue.createVNode)((0, vue.unref)(ElDivider), { direction: "vertical" }), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) }, [(0, vue.renderSlot)(_ctx.$slots, "content", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.content), 1)])], 2) + ], 2), _ctx.$slots.extra ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("extra")) + }, [(0, vue.renderSlot)(_ctx.$slots, "extra")], 2)) : (0, vue.createCommentVNode)("v-if", true)], 2), + _ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("main")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/page-header/src/page-header.vue + var page_header_default = page_header_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/page-header/index.ts + const ElPageHeader = withInstall(page_header_default); + +//#endregion +//#region ../../packages/components/pagination/src/constants.ts + const elPaginationKey = Symbol("elPaginationKey"); + +//#endregion +//#region ../../packages/components/pagination/src/components/prev.ts + const paginationPrevProps = buildProps({ + disabled: Boolean, + currentPage: { + type: Number, + default: 1 + }, + prevText: { type: String }, + prevIcon: { type: iconPropType } + }); + const paginationPrevEmits = { click: (evt) => evt instanceof MouseEvent }; + +//#endregion +//#region ../../packages/components/pagination/src/components/prev.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$29 = [ + "disabled", + "aria-label", + "aria-disabled" + ]; + const _hoisted_2$18 = { key: 0 }; + var prev_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPaginationPrev", + __name: "prev", + props: paginationPrevProps, + emits: paginationPrevEmits, + setup(__props) { + const props = __props; + const { t } = useLocale(); + const internalDisabled = (0, vue.computed)(() => props.disabled || props.currentPage <= 1); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + type: "button", + class: "btn-prev", + disabled: internalDisabled.value, + "aria-label": _ctx.prevText || (0, vue.unref)(t)("el.pagination.prev"), + "aria-disabled": internalDisabled.value, + onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click", $event)) + }, [_ctx.prevText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2$18, (0, vue.toDisplayString)(_ctx.prevText), 1)) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 1 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.prevIcon)))]), + _: 1 + }))], 8, _hoisted_1$29); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/prev.vue + var prev_default = prev_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/pagination/src/components/next.ts + const paginationNextProps = buildProps({ + disabled: Boolean, + currentPage: { + type: Number, + default: 1 + }, + pageCount: { + type: Number, + default: 50 + }, + nextText: { type: String }, + nextIcon: { type: iconPropType } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/next.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$28 = [ + "disabled", + "aria-label", + "aria-disabled" + ]; + const _hoisted_2$17 = { key: 0 }; + var next_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPaginationNext", + __name: "next", + props: paginationNextProps, + emits: ["click"], + setup(__props) { + const props = __props; + const { t } = useLocale(); + const internalDisabled = (0, vue.computed)(() => props.disabled || props.currentPage === props.pageCount || props.pageCount === 0); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + type: "button", + class: "btn-next", + disabled: internalDisabled.value, + "aria-label": _ctx.nextText || (0, vue.unref)(t)("el.pagination.next"), + "aria-disabled": internalDisabled.value, + onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click", $event)) + }, [_ctx.nextText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2$17, (0, vue.toDisplayString)(_ctx.nextText), 1)) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 1 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.nextIcon)))]), + _: 1 + }))], 8, _hoisted_1$28); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/next.vue + var next_default = next_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/pagination/src/usePagination.ts + const usePagination = () => (0, vue.inject)(elPaginationKey, {}); + +//#endregion +//#region ../../packages/components/pagination/src/components/sizes.ts + const paginationSizesProps = buildProps({ + pageSize: { + type: Number, + required: true + }, + pageSizes: { + type: definePropType(Array), + default: () => mutable([ + 10, + 20, + 30, + 40, + 50, + 100 + ]) + }, + popperClass: { type: String }, + popperStyle: { type: definePropType([String, Object]) }, + disabled: Boolean, + teleported: Boolean, + size: { + type: String, + values: componentSizes + }, + appendSizeTo: String + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/sizes.vue?vue&type=script&setup=true&lang.ts + var sizes_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPaginationSizes", + __name: "sizes", + props: paginationSizesProps, + emits: ["page-size-change"], + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const { t } = useLocale(); + const ns = useNamespace("pagination"); + const pagination = usePagination(); + const innerPageSize = (0, vue.ref)(props.pageSize); + (0, vue.watch)(() => props.pageSizes, (newVal, oldVal) => { + if (isEqual$1(newVal, oldVal)) return; + if (isArray$1(newVal)) emit("page-size-change", newVal.includes(props.pageSize) ? props.pageSize : props.pageSizes[0]); + }); + (0, vue.watch)(() => props.pageSize, (newVal) => { + innerPageSize.value = newVal; + }); + const innerPageSizes = (0, vue.computed)(() => props.pageSizes); + function handleChange(val) { + if (val !== innerPageSize.value) { + innerPageSize.value = val; + pagination.handleSizeChange?.(Number(val)); + } + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("sizes")) }, [(0, vue.createVNode)((0, vue.unref)(ElSelect), { + "model-value": innerPageSize.value, + disabled: _ctx.disabled, + "popper-class": _ctx.popperClass, + "popper-style": _ctx.popperStyle, + size: _ctx.size, + teleported: _ctx.teleported, + "validate-event": false, + "append-to": _ctx.appendSizeTo, + onChange: handleChange + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(innerPageSizes.value, (item) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElOption), { + key: item, + value: item, + label: item + (0, vue.unref)(t)("el.pagination.pagesize") + }, null, 8, ["value", "label"]); + }), 128))]), + _: 1 + }, 8, [ + "model-value", + "disabled", + "popper-class", + "popper-style", + "size", + "teleported", + "append-to" + ])], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/sizes.vue + var sizes_default = sizes_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/pagination/src/components/jumper.ts + const paginationJumperProps = buildProps({ size: { + type: String, + values: componentSizes + } }); + +//#endregion +//#region ../../packages/components/pagination/src/components/jumper.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$27 = ["disabled"]; + var jumper_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPaginationJumper", + __name: "jumper", + props: paginationJumperProps, + setup(__props) { + const { t } = useLocale(); + const ns = useNamespace("pagination"); + const { pageCount, disabled, currentPage, changeEvent } = usePagination(); + const userInput = (0, vue.ref)(); + const innerValue = (0, vue.computed)(() => userInput.value ?? currentPage?.value); + function handleInput(val) { + userInput.value = val ? +val : ""; + } + function handleChange(val) { + val = Math.trunc(+val); + changeEvent?.(val); + userInput.value = void 0; + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("jump")), + disabled: (0, vue.unref)(disabled) + }, [ + (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("goto")]) }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.pagination.goto")), 3), + (0, vue.createVNode)((0, vue.unref)(ElInput), { + size: _ctx.size, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("editor"), (0, vue.unref)(ns).is("in-pagination")]), + min: 1, + max: (0, vue.unref)(pageCount), + disabled: (0, vue.unref)(disabled), + "model-value": innerValue.value, + "validate-event": false, + "aria-label": (0, vue.unref)(t)("el.pagination.page"), + type: "number", + "onUpdate:modelValue": handleInput, + onChange: handleChange + }, null, 8, [ + "size", + "class", + "max", + "disabled", + "model-value", + "aria-label" + ]), + (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("classifier")]) }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.pagination.pageClassifier")), 3) + ], 10, _hoisted_1$27); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/jumper.vue + var jumper_default = jumper_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/pagination/src/components/total.ts + const paginationTotalProps = buildProps({ total: { + type: Number, + default: 1e3 + } }); + +//#endregion +//#region ../../packages/components/pagination/src/components/total.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$26 = ["disabled"]; + var total_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPaginationTotal", + __name: "total", + props: paginationTotalProps, + setup(__props) { + const { t } = useLocale(); + const ns = useNamespace("pagination"); + const { disabled } = usePagination(); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("total")), + disabled: (0, vue.unref)(disabled) + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.pagination.total", { total: _ctx.total })), 11, _hoisted_1$26); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/total.vue + var total_default = total_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/pagination/src/components/pager.ts + const paginationPagerProps = buildProps({ + currentPage: { + type: Number, + default: 1 + }, + pageCount: { + type: Number, + required: true + }, + pagerCount: { + type: Number, + default: 7 + }, + disabled: Boolean + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/pager.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$25 = [ + "aria-current", + "aria-label", + "tabindex" + ]; + const _hoisted_2$16 = ["tabindex", "aria-label"]; + const _hoisted_3$7 = [ + "aria-current", + "aria-label", + "tabindex" + ]; + const _hoisted_4$5 = ["tabindex", "aria-label"]; + const _hoisted_5$3 = [ + "aria-current", + "aria-label", + "tabindex" + ]; + var pager_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPaginationPager", + __name: "pager", + props: paginationPagerProps, + emits: [CHANGE_EVENT], + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const nsPager = useNamespace("pager"); + const nsIcon = useNamespace("icon"); + const { t } = useLocale(); + const showPrevMore = (0, vue.ref)(false); + const showNextMore = (0, vue.ref)(false); + const quickPrevHover = (0, vue.ref)(false); + const quickNextHover = (0, vue.ref)(false); + const quickPrevFocus = (0, vue.ref)(false); + const quickNextFocus = (0, vue.ref)(false); + const pagers = (0, vue.computed)(() => { + const pagerCount = props.pagerCount; + const halfPagerCount = (pagerCount - 1) / 2; + const currentPage = Number(props.currentPage); + const pageCount = Number(props.pageCount); + let showPrevMore = false; + let showNextMore = false; + if (pageCount > pagerCount) { + if (currentPage > pagerCount - halfPagerCount) showPrevMore = true; + if (currentPage < pageCount - halfPagerCount) showNextMore = true; + } + const array = []; + if (showPrevMore && !showNextMore) { + const startPage = pageCount - (pagerCount - 2); + for (let i = startPage; i < pageCount; i++) array.push(i); + } else if (!showPrevMore && showNextMore) for (let i = 2; i < pagerCount; i++) array.push(i); + else if (showPrevMore && showNextMore) { + const offset = Math.floor(pagerCount / 2) - 1; + for (let i = currentPage - offset; i <= currentPage + offset; i++) array.push(i); + } else for (let i = 2; i < pageCount; i++) array.push(i); + return array; + }); + const prevMoreKls = (0, vue.computed)(() => [ + "more", + "btn-quickprev", + nsIcon.b(), + nsPager.is("disabled", props.disabled) + ]); + const nextMoreKls = (0, vue.computed)(() => [ + "more", + "btn-quicknext", + nsIcon.b(), + nsPager.is("disabled", props.disabled) + ]); + const tabindex = (0, vue.computed)(() => props.disabled ? -1 : 0); + (0, vue.watch)(() => [ + props.pageCount, + props.pagerCount, + props.currentPage + ], ([pageCount, pagerCount, currentPage]) => { + const halfPagerCount = (pagerCount - 1) / 2; + let showPrev = false; + let showNext = false; + if (pageCount > pagerCount) { + showPrev = currentPage > pagerCount - halfPagerCount; + showNext = currentPage < pageCount - halfPagerCount; + } + quickPrevHover.value &&= showPrev; + quickNextHover.value &&= showNext; + showPrevMore.value = showPrev; + showNextMore.value = showNext; + }, { immediate: true }); + function onMouseEnter(forward = false) { + if (props.disabled) return; + if (forward) quickPrevHover.value = true; + else quickNextHover.value = true; + } + function onFocus(forward = false) { + if (forward) quickPrevFocus.value = true; + else quickNextFocus.value = true; + } + function onEnter(e) { + const target = e.target; + if (target.tagName.toLowerCase() === "li" && Array.from(target.classList).includes("number")) { + const newPage = Number(target.textContent); + if (newPage !== props.currentPage) emit(CHANGE_EVENT, newPage); + } else if (target.tagName.toLowerCase() === "li" && Array.from(target.classList).includes("more")) onPagerClick(e); + } + function onPagerClick(event) { + const target = event.target; + if (target.tagName.toLowerCase() === "ul" || props.disabled) return; + let newPage = Number(target.textContent); + const pageCount = props.pageCount; + const currentPage = props.currentPage; + const pagerCountOffset = props.pagerCount - 2; + if (target.className.includes("more")) { + if (target.className.includes("quickprev")) newPage = currentPage - pagerCountOffset; + else if (target.className.includes("quicknext")) newPage = currentPage + pagerCountOffset; + } + if (!Number.isNaN(+newPage)) { + if (newPage < 1) newPage = 1; + if (newPage > pageCount) newPage = pageCount; + } + if (newPage !== currentPage) emit(CHANGE_EVENT, newPage); + } + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("ul", { + class: (0, vue.normalizeClass)((0, vue.unref)(nsPager).b()), + onClick: onPagerClick, + onKeyup: (0, vue.withKeys)(onEnter, ["enter"]) + }, [ + _ctx.pageCount > 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: 0, + class: (0, vue.normalizeClass)([[(0, vue.unref)(nsPager).is("active", _ctx.currentPage === 1), (0, vue.unref)(nsPager).is("disabled", _ctx.disabled)], "number"]), + "aria-current": _ctx.currentPage === 1, + "aria-label": (0, vue.unref)(t)("el.pagination.currentPage", { pager: 1 }), + tabindex: tabindex.value + }, " 1 ", 10, _hoisted_1$25)) : (0, vue.createCommentVNode)("v-if", true), + showPrevMore.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: 1, + class: (0, vue.normalizeClass)(prevMoreKls.value), + tabindex: tabindex.value, + "aria-label": (0, vue.unref)(t)("el.pagination.prevPages", { pager: _ctx.pagerCount - 2 }), + onMouseenter: _cache[0] || (_cache[0] = ($event) => onMouseEnter(true)), + onMouseleave: _cache[1] || (_cache[1] = ($event) => quickPrevHover.value = false), + onFocus: _cache[2] || (_cache[2] = ($event) => onFocus(true)), + onBlur: _cache[3] || (_cache[3] = ($event) => quickPrevFocus.value = false) + }, [(quickPrevHover.value || quickPrevFocus.value) && !_ctx.disabled ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(d_arrow_left_default), { key: 0 })) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(more_filled_default), { key: 1 }))], 42, _hoisted_2$16)) : (0, vue.createCommentVNode)("v-if", true), + ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(pagers.value, (pager) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: pager, + class: (0, vue.normalizeClass)([[(0, vue.unref)(nsPager).is("active", _ctx.currentPage === pager), (0, vue.unref)(nsPager).is("disabled", _ctx.disabled)], "number"]), + "aria-current": _ctx.currentPage === pager, + "aria-label": (0, vue.unref)(t)("el.pagination.currentPage", { pager }), + tabindex: tabindex.value + }, (0, vue.toDisplayString)(pager), 11, _hoisted_3$7); + }), 128)), + showNextMore.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: 2, + class: (0, vue.normalizeClass)(nextMoreKls.value), + tabindex: tabindex.value, + "aria-label": (0, vue.unref)(t)("el.pagination.nextPages", { pager: _ctx.pagerCount - 2 }), + onMouseenter: _cache[4] || (_cache[4] = ($event) => onMouseEnter()), + onMouseleave: _cache[5] || (_cache[5] = ($event) => quickNextHover.value = false), + onFocus: _cache[6] || (_cache[6] = ($event) => onFocus()), + onBlur: _cache[7] || (_cache[7] = ($event) => quickNextFocus.value = false) + }, [(quickNextHover.value || quickNextFocus.value) && !_ctx.disabled ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(d_arrow_right_default), { key: 0 })) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(more_filled_default), { key: 1 }))], 42, _hoisted_4$5)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.pageCount > 1 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: 3, + class: (0, vue.normalizeClass)([[(0, vue.unref)(nsPager).is("active", _ctx.currentPage === _ctx.pageCount), (0, vue.unref)(nsPager).is("disabled", _ctx.disabled)], "number"]), + "aria-current": _ctx.currentPage === _ctx.pageCount, + "aria-label": (0, vue.unref)(t)("el.pagination.currentPage", { pager: _ctx.pageCount }), + tabindex: tabindex.value + }, (0, vue.toDisplayString)(_ctx.pageCount), 11, _hoisted_5$3)) : (0, vue.createCommentVNode)("v-if", true) + ], 34); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/src/components/pager.vue + var pager_default = pager_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/pagination/src/pagination.ts +/** + * It it user's responsibility to guarantee that the value of props.total... is number + * (same as pageSize, defaultPageSize, currentPage, defaultCurrentPage, pageCount) + * Otherwise we can reasonable infer that the corresponding field is absent + */ + const isAbsent = (v) => typeof v !== "number"; + const paginationProps = buildProps({ + pageSize: Number, + defaultPageSize: Number, + total: Number, + pageCount: Number, + pagerCount: { + type: Number, + validator: (value) => { + return isNumber(value) && Math.trunc(value) === value && value > 4 && value < 22 && value % 2 === 1; + }, + default: 7 + }, + currentPage: Number, + defaultCurrentPage: Number, + layout: { + type: String, + default: [ + "prev", + "pager", + "next", + "jumper", + "->", + "total" + ].join(", ") + }, + pageSizes: { + type: definePropType(Array), + default: () => mutable([ + 10, + 20, + 30, + 40, + 50, + 100 + ]) + }, + popperClass: { + type: String, + default: "" + }, + popperStyle: { type: definePropType([String, Object]) }, + prevText: { + type: String, + default: "" + }, + prevIcon: { + type: iconPropType, + default: () => arrow_left_default + }, + nextText: { + type: String, + default: "" + }, + nextIcon: { + type: iconPropType, + default: () => arrow_right_default + }, + teleported: { + type: Boolean, + default: true + }, + small: Boolean, + size: useSizeProp, + background: Boolean, + disabled: Boolean, + hideOnSinglePage: Boolean, + appendSizeTo: String + }); + const paginationEmits = { + "update:current-page": (val) => isNumber(val), + "update:page-size": (val) => isNumber(val), + "size-change": (val) => isNumber(val), + change: (currentPage, pageSize) => isNumber(currentPage) && isNumber(pageSize), + "current-change": (val) => isNumber(val), + "prev-click": (val) => isNumber(val), + "next-click": (val) => isNumber(val) + }; + const componentName = "ElPagination"; + var pagination_default = (0, vue.defineComponent)({ + name: componentName, + props: paginationProps, + emits: paginationEmits, + setup(props, { emit, slots }) { + const { t } = useLocale(); + const ns = useNamespace("pagination"); + const vnodeProps = (0, vue.getCurrentInstance)().vnode.props || {}; + const _globalSize = useGlobalSize(); + const _size = (0, vue.computed)(() => props.small ? "small" : props.size ?? _globalSize.value); + useDeprecated({ + from: "small", + replacement: "size", + version: "3.0.0", + scope: "el-pagination", + ref: "https://element-plus.org/zh-CN/component/pagination.html" + }, (0, vue.computed)(() => !!props.small)); + const hasCurrentPageListener = "onUpdate:currentPage" in vnodeProps || "onUpdate:current-page" in vnodeProps || "onCurrentChange" in vnodeProps; + const hasPageSizeListener = "onUpdate:pageSize" in vnodeProps || "onUpdate:page-size" in vnodeProps || "onSizeChange" in vnodeProps; + const assertValidUsage = (0, vue.computed)(() => { + if (isAbsent(props.total) && isAbsent(props.pageCount)) return false; + if (!isAbsent(props.currentPage) && !hasCurrentPageListener) return false; + if (props.layout.includes("sizes")) { + if (!isAbsent(props.pageCount)) { + if (!hasPageSizeListener) return false; + } else if (!isAbsent(props.total)) { + if (!isAbsent(props.pageSize)) { + if (!hasPageSizeListener) return false; + } + } + } + return true; + }); + const innerPageSize = (0, vue.ref)(isAbsent(props.defaultPageSize) ? 10 : props.defaultPageSize); + const innerCurrentPage = (0, vue.ref)(isAbsent(props.defaultCurrentPage) ? 1 : props.defaultCurrentPage); + const pageSizeBridge = (0, vue.computed)({ + get() { + return isAbsent(props.pageSize) ? innerPageSize.value : props.pageSize; + }, + set(v) { + if (isAbsent(props.pageSize)) innerPageSize.value = v; + if (hasPageSizeListener) { + emit("update:page-size", v); + emit("size-change", v); + } + } + }); + const pageCountBridge = (0, vue.computed)(() => { + let pageCount = 0; + if (!isAbsent(props.pageCount)) pageCount = props.pageCount; + else if (!isAbsent(props.total)) pageCount = Math.max(1, Math.ceil(props.total / pageSizeBridge.value)); + return pageCount; + }); + const currentPageBridge = (0, vue.computed)({ + get() { + return isAbsent(props.currentPage) ? innerCurrentPage.value : props.currentPage; + }, + set(v) { + let newCurrentPage = v; + if (v < 1) newCurrentPage = 1; + else if (v > pageCountBridge.value) newCurrentPage = pageCountBridge.value; + if (isAbsent(props.currentPage)) innerCurrentPage.value = newCurrentPage; + if (hasCurrentPageListener) { + emit("update:current-page", newCurrentPage); + emit("current-change", newCurrentPage); + } + } + }); + (0, vue.watch)(pageCountBridge, (val) => { + if (currentPageBridge.value > val) currentPageBridge.value = val; + }); + (0, vue.watch)([currentPageBridge, pageSizeBridge], (value) => { + emit(CHANGE_EVENT, ...value); + }, { flush: "post" }); + function handleCurrentChange(val) { + currentPageBridge.value = val; + } + function handleSizeChange(val) { + pageSizeBridge.value = val; + const newPageCount = pageCountBridge.value; + if (currentPageBridge.value > newPageCount) currentPageBridge.value = newPageCount; + } + function prev() { + if (props.disabled) return; + currentPageBridge.value -= 1; + emit("prev-click", currentPageBridge.value); + } + function next() { + if (props.disabled) return; + currentPageBridge.value += 1; + emit("next-click", currentPageBridge.value); + } + function addClass(element, cls) { + if (element) { + if (!element.props) element.props = {}; + element.props.class = [element.props.class, cls].join(" "); + } + } + (0, vue.provide)(elPaginationKey, { + pageCount: pageCountBridge, + disabled: (0, vue.computed)(() => props.disabled), + currentPage: currentPageBridge, + changeEvent: handleCurrentChange, + handleSizeChange + }); + return () => { + if (!assertValidUsage.value) { + /* @__PURE__ */ debugWarn(componentName, t("el.pagination.deprecationWarning")); + return null; + } + if (!props.layout) return null; + if (props.hideOnSinglePage && pageCountBridge.value <= 1) return null; + const rootChildren = []; + const rightWrapperChildren = []; + const rightWrapperRoot = (0, vue.h)("div", { class: ns.e("rightwrapper") }, rightWrapperChildren); + const TEMPLATE_MAP = { + prev: (0, vue.h)(prev_default, { + disabled: props.disabled, + currentPage: currentPageBridge.value, + prevText: props.prevText, + prevIcon: props.prevIcon, + onClick: prev + }), + jumper: (0, vue.h)(jumper_default, { size: _size.value }), + pager: (0, vue.h)(pager_default, { + currentPage: currentPageBridge.value, + pageCount: pageCountBridge.value, + pagerCount: props.pagerCount, + onChange: handleCurrentChange, + disabled: props.disabled + }), + next: (0, vue.h)(next_default, { + disabled: props.disabled, + currentPage: currentPageBridge.value, + pageCount: pageCountBridge.value, + nextText: props.nextText, + nextIcon: props.nextIcon, + onClick: next + }), + sizes: (0, vue.h)(sizes_default, { + pageSize: pageSizeBridge.value, + pageSizes: props.pageSizes, + popperClass: props.popperClass, + popperStyle: props.popperStyle, + disabled: props.disabled, + teleported: props.teleported, + size: _size.value, + appendSizeTo: props.appendSizeTo + }), + slot: slots?.default?.() ?? null, + total: (0, vue.h)(total_default, { total: isAbsent(props.total) ? 0 : props.total }) + }; + const components = props.layout.split(",").map((item) => item.trim()); + let haveRightWrapper = false; + components.forEach((c) => { + if (c === "->") { + haveRightWrapper = true; + return; + } + if (!haveRightWrapper) rootChildren.push(TEMPLATE_MAP[c]); + else rightWrapperChildren.push(TEMPLATE_MAP[c]); + }); + addClass(rootChildren[0], ns.is("first")); + addClass(rootChildren[rootChildren.length - 1], ns.is("last")); + if (haveRightWrapper && rightWrapperChildren.length > 0) { + addClass(rightWrapperChildren[0], ns.is("first")); + addClass(rightWrapperChildren[rightWrapperChildren.length - 1], ns.is("last")); + rootChildren.push(rightWrapperRoot); + } + return (0, vue.h)("div", { class: [ + ns.b(), + ns.is("background", props.background), + ns.m(_size.value) + ] }, rootChildren); + }; + } + }); + +//#endregion +//#region ../../packages/components/pagination/index.ts + const ElPagination = withInstall(pagination_default); + +//#endregion +//#region ../../packages/components/popconfirm/src/popconfirm.ts +/** + * @deprecated Removed after 3.0.0, Use `PopconfirmProps` instead. + */ + const popconfirmProps = buildProps({ + title: String, + confirmButtonText: String, + cancelButtonText: String, + confirmButtonType: { + type: String, + values: buttonTypes, + default: "primary" + }, + cancelButtonType: { + type: String, + values: buttonTypes, + default: "text" + }, + icon: { + type: iconPropType, + default: () => question_filled_default + }, + iconColor: { + type: String, + default: "#f90" + }, + hideIcon: Boolean, + hideAfter: { + type: Number, + default: 200 + }, + effect: { + ...useTooltipContentProps.effect, + default: "light" + }, + teleported: useTooltipContentProps.teleported, + persistent: useTooltipContentProps.persistent, + width: { + type: [String, Number], + default: 150 + }, + virtualTriggering: useTooltipTriggerProps.virtualTriggering, + virtualRef: useTooltipTriggerProps.virtualRef + }); + const popconfirmEmits = { + confirm: (e) => e instanceof MouseEvent, + cancel: (e) => e instanceof MouseEvent + }; + +//#endregion +//#region ../../packages/components/popconfirm/src/popconfirm.vue?vue&type=script&setup=true&lang.ts + var popconfirm_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPopconfirm", + __name: "popconfirm", + props: popconfirmProps, + emits: popconfirmEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const { t } = useLocale(); + const ns = useNamespace("popconfirm"); + const tooltipRef = (0, vue.ref)(); + const rootRef = (0, vue.ref)(); + const popperRef = (0, vue.computed)(() => { + return (0, vue.unref)(tooltipRef)?.popperRef; + }); + const showPopper = () => { + rootRef.value?.focus?.(); + }; + const hidePopper = () => { + tooltipRef.value?.onClose?.(); + }; + const style = (0, vue.computed)(() => { + return { width: addUnit(props.width) }; + }); + const confirm = (e) => { + emit("confirm", e); + hidePopper(); + }; + const cancel = (e) => { + emit("cancel", e); + hidePopper(); + }; + const finalConfirmButtonText = (0, vue.computed)(() => props.confirmButtonText || t("el.popconfirm.confirmButtonText")); + const finalCancelButtonText = (0, vue.computed)(() => props.cancelButtonText || t("el.popconfirm.cancelButtonText")); + __expose({ + popperRef, + hide: hidePopper + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), (0, vue.mergeProps)({ + ref_key: "tooltipRef", + ref: tooltipRef, + trigger: "click", + effect: __props.effect + }, _ctx.$attrs, { + "virtual-triggering": __props.virtualTriggering, + "virtual-ref": __props.virtualRef, + "popper-class": `${(0, vue.unref)(ns).namespace.value}-popover`, + "popper-style": style.value, + teleported: __props.teleported, + "fallback-placements": [ + "bottom", + "top", + "right", + "left" + ], + "hide-after": __props.hideAfter, + persistent: __props.persistent, + loop: "", + onShow: showPopper + }), { + content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref_key: "rootRef", + ref: rootRef, + tabindex: "-1", + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("main")) }, [!__props.hideIcon && __props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon")), + style: (0, vue.normalizeStyle)({ color: __props.iconColor }) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + }, 8, ["class", "style"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createTextVNode)(" " + (0, vue.toDisplayString)(__props.title), 1)], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("action")) }, [(0, vue.renderSlot)(_ctx.$slots, "actions", { + confirm, + cancel + }, () => [(0, vue.createVNode)((0, vue.unref)(ElButton), { + size: "small", + type: __props.cancelButtonType === "text" ? "" : __props.cancelButtonType, + text: __props.cancelButtonType === "text", + onClick: cancel + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(finalCancelButtonText.value), 1)]), + _: 1 + }, 8, ["type", "text"]), (0, vue.createVNode)((0, vue.unref)(ElButton), { + size: "small", + type: __props.confirmButtonType === "text" ? "" : __props.confirmButtonType, + text: __props.confirmButtonType === "text", + onClick: confirm + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(finalConfirmButtonText.value), 1)]), + _: 1 + }, 8, ["type", "text"])])], 2)], 2)]), + default: (0, vue.withCtx)(() => [_ctx.$slots.reference ? (0, vue.renderSlot)(_ctx.$slots, "reference", { key: 0 }) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 16, [ + "effect", + "virtual-triggering", + "virtual-ref", + "popper-class", + "popper-style", + "teleported", + "hide-after", + "persistent" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/popconfirm/src/popconfirm.vue + var popconfirm_default = popconfirm_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/popconfirm/index.ts + const ElPopconfirm = withInstall(popconfirm_default); + +//#endregion +//#region ../../packages/components/popover/src/popover.ts +/** + * @deprecated Removed after 3.0.0, Use `PopoverProps` instead. + */ + const popoverProps = buildProps({ + trigger: useTooltipTriggerProps.trigger, + triggerKeys: useTooltipTriggerProps.triggerKeys, + placement: dropdownProps.placement, + disabled: useTooltipTriggerProps.disabled, + visible: useTooltipContentProps.visible, + transition: useTooltipContentProps.transition, + popperOptions: dropdownProps.popperOptions, + tabindex: dropdownProps.tabindex, + content: useTooltipContentProps.content, + popperStyle: useTooltipContentProps.popperStyle, + popperClass: useTooltipContentProps.popperClass, + enterable: { + ...useTooltipContentProps.enterable, + default: true + }, + effect: { + ...useTooltipContentProps.effect, + default: "light" + }, + teleported: useTooltipContentProps.teleported, + appendTo: useTooltipContentProps.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: true + }, + persistent: { + type: Boolean, + default: true + }, + "onUpdate:visible": { type: Function } + }); + const popoverEmits = { + "update:visible": (value) => isBoolean(value), + "before-enter": () => true, + "before-leave": () => true, + "after-enter": () => true, + "after-leave": () => true + }; + /** + * @description default values for PopoverProps + */ + const popoverPropsDefaults = { + trigger: "hover", + triggerKeys: () => [ + EVENT_CODE.enter, + EVENT_CODE.numpadEnter, + EVENT_CODE.space + ], + placement: "bottom", + visible: null, + popperOptions: () => ({}), + tabindex: 0, + content: "", + popperStyle: void 0, + enterable: true, + effect: "light", + teleported: true, + width: 150, + offset: void 0, + showAfter: 0, + hideAfter: 200, + autoClose: 0, + showArrow: true, + persistent: true + }; + +//#endregion +//#region ../../packages/components/popover/src/popover.vue?vue&type=script&setup=true&lang.ts + const updateEventKeyRaw = `onUpdate:visible`; + var popover_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElPopover", + __name: "popover", + props: popoverProps, + emits: popoverEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const onUpdateVisible = (0, vue.computed)(() => { + return props[updateEventKeyRaw]; + }); + const ns = useNamespace("popover"); + const tooltipRef = (0, vue.ref)(); + const popperRef = (0, vue.computed)(() => { + return (0, vue.unref)(tooltipRef)?.popperRef; + }); + const style = (0, vue.computed)(() => { + return [{ width: addUnit(props.width) }, props.popperStyle]; + }); + const kls = (0, vue.computed)(() => { + return [ + ns.b(), + props.popperClass, + { [ns.m("plain")]: !!props.content } + ]; + }); + const gpuAcceleration = (0, vue.computed)(() => { + return props.transition === `${ns.namespace.value}-fade-in-linear`; + }); + const hide = () => { + tooltipRef.value?.hide(); + }; + const beforeEnter = () => { + emit("before-enter"); + }; + const beforeLeave = () => { + emit("before-leave"); + }; + const afterEnter = () => { + emit("after-enter"); + }; + const afterLeave = () => { + emit("update:visible", false); + emit("after-leave"); + }; + __expose({ + popperRef, + hide + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElTooltip), (0, vue.mergeProps)({ + ref_key: "tooltipRef", + ref: tooltipRef + }, _ctx.$attrs, { + trigger: __props.trigger, + "trigger-keys": __props.triggerKeys, + placement: __props.placement, + disabled: __props.disabled, + visible: __props.visible, + transition: __props.transition, + "popper-options": __props.popperOptions, + tabindex: __props.tabindex, + content: __props.content, + offset: __props.offset, + "show-after": __props.showAfter, + "hide-after": __props.hideAfter, + "auto-close": __props.autoClose, + "show-arrow": __props.showArrow, + "aria-label": __props.title, + effect: __props.effect, + enterable: __props.enterable, + "popper-class": kls.value, + "popper-style": style.value, + teleported: __props.teleported, + "append-to": __props.appendTo, + persistent: __props.persistent, + "gpu-acceleration": gpuAcceleration.value, + "onUpdate:visible": onUpdateVisible.value, + onBeforeShow: beforeEnter, + onBeforeHide: beforeLeave, + onShow: afterEnter, + onHide: afterLeave + }), { + content: (0, vue.withCtx)(() => [__props.title ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")), + role: "title" + }, (0, vue.toDisplayString)(__props.title), 3)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.renderSlot)(_ctx.$slots, "default", { hide }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.content), 1)])]), + default: (0, vue.withCtx)(() => [_ctx.$slots.reference ? (0, vue.renderSlot)(_ctx.$slots, "reference", { key: 0 }) : (0, vue.createCommentVNode)("v-if", true)]), + _: 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" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/popover/src/popover.vue + var popover_default = popover_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/popover/src/directive.ts + const attachEvents = (el, binding) => { + const popover = (binding.arg || binding.value)?.popperRef; + if (popover) popover.triggerRef = el; + }; + var directive_default = { + mounted(el, binding) { + attachEvents(el, binding); + }, + updated(el, binding) { + attachEvents(el, binding); + } + }; + const VPopover = "popover"; + +//#endregion +//#region ../../packages/components/popover/index.ts + const ElPopoverDirective = withInstallDirective(directive_default, VPopover); + const ElPopover = withInstall(popover_default, { directive: ElPopoverDirective }); + +//#endregion +//#region ../../packages/components/progress/src/progress.ts +/** + * @deprecated Removed after 3.0.0, Use `ProgressProps` instead. + */ + const progressProps = buildProps({ + type: { + type: String, + default: "line", + values: [ + "line", + "circle", + "dashboard" + ] + }, + percentage: { + type: Number, + default: 0, + validator: (val) => val >= 0 && val <= 100 + }, + status: { + type: String, + default: "", + values: [ + "", + "success", + "exception", + "warning" + ] + }, + indeterminate: Boolean, + duration: { + type: Number, + default: 3 + }, + strokeWidth: { + type: Number, + default: 6 + }, + strokeLinecap: { + type: definePropType(String), + default: "round" + }, + textInside: Boolean, + width: { + type: Number, + default: 126 + }, + showText: { + type: Boolean, + default: true + }, + color: { + type: definePropType([ + String, + Array, + Function + ]), + default: "" + }, + striped: Boolean, + stripedFlow: Boolean, + format: { + type: definePropType(Function), + default: (percentage) => `${percentage}%` + } + }); + +//#endregion +//#region ../../packages/components/progress/src/progress.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$24 = ["aria-valuenow"]; + const _hoisted_2$15 = { viewBox: "0 0 100 100" }; + const _hoisted_3$6 = [ + "d", + "stroke", + "stroke-linecap", + "stroke-width" + ]; + const _hoisted_4$4 = [ + "d", + "stroke", + "opacity", + "stroke-linecap", + "stroke-width" + ]; + const _hoisted_5$2 = { key: 0 }; + var progress_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElProgress", + __name: "progress", + props: progressProps, + setup(__props) { + const STATUS_COLOR_MAP = { + success: "#13ce66", + exception: "#ff4949", + warning: "#e6a23c", + default: "#20a0ff" + }; + const props = __props; + const ns = useNamespace("progress"); + const barStyle = (0, vue.computed)(() => { + const barStyle = { + width: `${props.percentage}%`, + animationDuration: `${props.duration}s` + }; + const color = getCurrentColor(props.percentage); + if (color.includes("gradient")) barStyle.background = color; + else barStyle.backgroundColor = color; + return barStyle; + }); + const relativeStrokeWidth = (0, vue.computed)(() => (props.strokeWidth / props.width * 100).toFixed(1)); + const radius = (0, vue.computed)(() => { + if (["circle", "dashboard"].includes(props.type)) return Number.parseInt(`${50 - Number.parseFloat(relativeStrokeWidth.value) / 2}`, 10); + return 0; + }); + const trackPath = (0, vue.computed)(() => { + const r = radius.value; + const isDashboard = props.type === "dashboard"; + return ` + M 50 50 + m 0 ${isDashboard ? "" : "-"}${r} + a ${r} ${r} 0 1 1 0 ${isDashboard ? "-" : ""}${r * 2} + a ${r} ${r} 0 1 1 0 ${isDashboard ? "" : "-"}${r * 2} + `; + }); + const perimeter = (0, vue.computed)(() => 2 * Math.PI * radius.value); + const rate = (0, vue.computed)(() => props.type === "dashboard" ? .75 : 1); + const strokeDashoffset = (0, vue.computed)(() => { + return `${-1 * perimeter.value * (1 - rate.value) / 2}px`; + }); + const trailPathStyle = (0, vue.computed)(() => ({ + strokeDasharray: `${perimeter.value * rate.value}px, ${perimeter.value}px`, + strokeDashoffset: strokeDashoffset.value + })); + const circlePathStyle = (0, vue.computed)(() => ({ + strokeDasharray: `${perimeter.value * rate.value * (props.percentage / 100)}px, ${perimeter.value}px`, + strokeDashoffset: strokeDashoffset.value, + transition: "stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s" + })); + const stroke = (0, vue.computed)(() => { + let ret; + if (props.color) ret = getCurrentColor(props.percentage); + else ret = STATUS_COLOR_MAP[props.status] || STATUS_COLOR_MAP.default; + return ret; + }); + const statusIcon = (0, vue.computed)(() => { + if (props.status === "warning") return warning_filled_default; + if (props.type === "line") return props.status === "success" ? circle_check_default : circle_close_default; + else return props.status === "success" ? check_default : close_default; + }); + const progressTextSize = (0, vue.computed)(() => { + return props.type === "line" ? 12 + props.strokeWidth * .4 : props.width * .111111 + 2; + }); + const content = (0, vue.computed)(() => props.format(props.percentage)); + function getColors(color) { + const span = 100 / color.length; + return color.map((seriesColor, index) => { + if (isString(seriesColor)) return { + color: seriesColor, + percentage: (index + 1) * span + }; + return seriesColor; + }).sort((a, b) => a.percentage - b.percentage); + } + const getCurrentColor = (percentage) => { + const { color } = props; + if (isFunction$1(color)) return color(percentage); + else if (isString(color)) return color; + else { + const colors = getColors(color); + for (const color of colors) if (color.percentage > percentage) return color.color; + return colors[colors.length - 1]?.color; + } + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).m(__props.type), + (0, vue.unref)(ns).is(__props.status), + { + [(0, vue.unref)(ns).m("without-text")]: !__props.showText, + [(0, vue.unref)(ns).m("text-inside")]: __props.textInside + } + ]), + role: "progressbar", + "aria-valuenow": __props.percentage, + "aria-valuemin": "0", + "aria-valuemax": "100" + }, [__props.type === "line" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("bar")) + }, [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("bar", "outer")), + style: (0, vue.normalizeStyle)({ height: `${__props.strokeWidth}px` }) + }, [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).be("bar", "inner"), + { [(0, vue.unref)(ns).bem("bar", "inner", "indeterminate")]: __props.indeterminate }, + { [(0, vue.unref)(ns).bem("bar", "inner", "striped")]: __props.striped }, + { [(0, vue.unref)(ns).bem("bar", "inner", "striped-flow")]: __props.stripedFlow } + ]), + style: (0, vue.normalizeStyle)(barStyle.value) + }, [(__props.showText || _ctx.$slots.default) && __props.textInside ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("bar", "innerText")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", { percentage: __props.percentage }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(content.value), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true)], 6)], 6)], 2)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("circle")), + style: (0, vue.normalizeStyle)({ + height: `${__props.width}px`, + width: `${__props.width}px` + }) + }, [((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", _hoisted_2$15, [(0, vue.createElementVNode)("path", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("circle", "track")), + d: trackPath.value, + stroke: `var(${(0, vue.unref)(ns).cssVarName("fill-color-light")}, #e5e9f2)`, + "stroke-linecap": __props.strokeLinecap, + "stroke-width": relativeStrokeWidth.value, + fill: "none", + style: (0, vue.normalizeStyle)(trailPathStyle.value) + }, null, 14, _hoisted_3$6), (0, vue.createElementVNode)("path", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("circle", "path")), + d: trackPath.value, + stroke: stroke.value, + fill: "none", + opacity: __props.percentage ? 1 : 0, + "stroke-linecap": __props.strokeLinecap, + "stroke-width": relativeStrokeWidth.value, + style: (0, vue.normalizeStyle)(circlePathStyle.value) + }, null, 14, _hoisted_4$4)]))], 6)), (__props.showText || _ctx.$slots.default) && !__props.textInside ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("text")), + style: (0, vue.normalizeStyle)({ fontSize: `${progressTextSize.value}px` }) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", { percentage: __props.percentage }, () => [!__props.status ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_5$2, (0, vue.toDisplayString)(content.value), 1)) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 1 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(statusIcon.value)))]), + _: 1 + }))])], 6)) : (0, vue.createCommentVNode)("v-if", true)], 10, _hoisted_1$24); + }; + } + }); + +//#endregion +//#region ../../packages/components/progress/src/progress.vue + var progress_default = progress_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/progress/index.ts + const ElProgress = withInstall(progress_default); + +//#endregion +//#region ../../packages/components/rate/src/rate.ts +/** + * @deprecated Removed after 3.0.0, Use `RateProps` instead. + */ + const rateProps = buildProps({ + 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: definePropType([Array, Object]), + default: () => mutable([ + "", + "", + "" + ]) + }, + voidColor: { + type: String, + default: "" + }, + disabledVoidColor: { + type: String, + default: "" + }, + icons: { + type: definePropType([Array, Object]), + default: () => [ + star_filled_default, + star_filled_default, + star_filled_default + ] + }, + voidIcon: { + type: iconPropType, + default: () => star_default + }, + disabledVoidIcon: { + type: iconPropType, + default: () => star_filled_default + }, + disabled: { + type: Boolean, + default: void 0 + }, + allowHalf: Boolean, + showText: Boolean, + showScore: Boolean, + textColor: { + type: String, + default: "" + }, + texts: { + type: definePropType(Array), + default: () => mutable([ + "Extremely bad", + "Disappointed", + "Fair", + "Satisfied", + "Surprise" + ]) + }, + scoreTemplate: { + type: String, + default: "{value}" + }, + size: useSizeProp, + clearable: Boolean, + ...useAriaProps(["ariaLabel"]) + }); + const rateEmits = { + [CHANGE_EVENT]: (value) => isNumber(value), + [UPDATE_MODEL_EVENT]: (value) => isNumber(value) + }; + +//#endregion +//#region ../../packages/components/rate/src/rate.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$23 = [ + "id", + "aria-label", + "aria-labelledby", + "aria-valuenow", + "aria-valuetext", + "aria-valuemax", + "tabindex", + "aria-disabled" + ]; + const _hoisted_2$14 = ["onMousemove", "onClick"]; + var rate_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElRate", + __name: "rate", + props: rateProps, + emits: rateEmits, + setup(__props, { expose: __expose, emit: __emit }) { + function getValueFromMap(value, map) { + const isExcludedObject = (val) => isObject$1(val); + const matchedValue = map[Object.keys(map).map((key) => +key).filter((key) => { + const val = map[key]; + return (isExcludedObject(val) ? val.excluded : false) ? value < key : value <= key; + }).sort((a, b) => a - b)[0]]; + return isExcludedObject(matchedValue) && matchedValue.value || matchedValue; + } + const props = __props; + const emit = __emit; + const formItemContext = (0, vue.inject)(formItemContextKey, void 0); + const rateSize = useFormSize(); + const ns = useNamespace("rate"); + const { inputId, isLabeledByFormItem } = useFormItemInputId(props, { formItemContext }); + const currentValue = (0, vue.ref)(clamp$1(props.modelValue, 0, props.max)); + const hoverIndex = (0, vue.ref)(-1); + const pointerAtLeftHalf = (0, vue.ref)(true); + const iconRefs = (0, vue.ref)([]); + const iconClientWidths = (0, vue.computed)(() => iconRefs.value.map((icon) => icon.$el.clientWidth)); + const rateClasses = (0, vue.computed)(() => [ns.b(), ns.m(rateSize.value)]); + const rateDisabled = useFormDisabled(); + const rateStyles = (0, vue.computed)(() => { + return ns.cssVarBlock({ + "void-color": props.voidColor, + "disabled-void-color": props.disabledVoidColor, + "fill-color": activeColor.value + }); + }); + const text = (0, vue.computed)(() => { + let result = ""; + if (props.showScore) result = props.scoreTemplate.replace(/\{\s*value\s*\}/, rateDisabled.value ? `${props.modelValue}` : `${currentValue.value}`); + else if (props.showText) result = props.texts[Math.ceil(currentValue.value) - 1]; + return result; + }); + const valueDecimal = (0, vue.computed)(() => props.modelValue * 100 - Math.floor(props.modelValue) * 100); + const colorMap = (0, vue.computed)(() => isArray$1(props.colors) ? { + [props.lowThreshold]: props.colors[0], + [props.highThreshold]: { + value: props.colors[1], + excluded: true + }, + [props.max]: props.colors[2] + } : props.colors); + const activeColor = (0, vue.computed)(() => { + const color = getValueFromMap(currentValue.value, colorMap.value); + return isObject$1(color) ? "" : color; + }); + const decimalStyle = (0, vue.computed)(() => { + let width = ""; + if (rateDisabled.value) width = `${valueDecimal.value}%`; + else if (props.allowHalf) width = "50%"; + return { + color: activeColor.value, + width + }; + }); + const componentMap = (0, vue.computed)(() => { + let icons = isArray$1(props.icons) ? [...props.icons] : { ...props.icons }; + icons = (0, vue.markRaw)(icons); + return isArray$1(icons) ? { + [props.lowThreshold]: icons[0], + [props.highThreshold]: { + value: icons[1], + excluded: true + }, + [props.max]: icons[2] + } : icons; + }); + const decimalIconComponent = (0, vue.computed)(() => getValueFromMap(props.modelValue, componentMap.value)); + const voidComponent = (0, vue.computed)(() => rateDisabled.value ? isString(props.disabledVoidIcon) ? props.disabledVoidIcon : (0, vue.markRaw)(props.disabledVoidIcon) : isString(props.voidIcon) ? props.voidIcon : (0, vue.markRaw)(props.voidIcon)); + const activeComponent = (0, vue.computed)(() => getValueFromMap(currentValue.value, componentMap.value)); + function showDecimalIcon(item) { + const showWhenDisabled = rateDisabled.value && valueDecimal.value > 0 && item - 1 < props.modelValue && item > props.modelValue; + const showWhenAllowHalf = props.allowHalf && pointerAtLeftHalf.value && item - .5 <= currentValue.value && item > currentValue.value; + return showWhenDisabled || showWhenAllowHalf; + } + function emitValue(value) { + if (props.clearable && value === props.modelValue) value = 0; + emit(UPDATE_MODEL_EVENT, value); + if (props.modelValue !== value) emit(CHANGE_EVENT, value); + } + function selectValue(value) { + if (rateDisabled.value) return; + if (props.allowHalf && pointerAtLeftHalf.value) emitValue(currentValue.value); + else emitValue(value); + } + function handleKey(e) { + if (rateDisabled.value) return; + const code = getEventCode(e); + const step = props.allowHalf ? .5 : 1; + let _currentValue = currentValue.value; + switch (code) { + case EVENT_CODE.up: + case EVENT_CODE.right: + _currentValue += step; + break; + case EVENT_CODE.left: + case EVENT_CODE.down: + _currentValue -= step; + break; + } + _currentValue = clamp$1(_currentValue, 0, props.max); + if (_currentValue === currentValue.value) return; + e.stopPropagation(); + e.preventDefault(); + emit(UPDATE_MODEL_EVENT, _currentValue); + emit(CHANGE_EVENT, _currentValue); + return _currentValue; + } + function setCurrentValue(value, event) { + if (rateDisabled.value) return; + if (props.allowHalf && event) { + pointerAtLeftHalf.value = event.offsetX * 2 <= iconClientWidths.value[value - 1]; + currentValue.value = pointerAtLeftHalf.value ? value - .5 : value; + } else currentValue.value = value; + hoverIndex.value = value; + } + function resetCurrentValue() { + if (rateDisabled.value) return; + if (props.allowHalf) pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue); + currentValue.value = clamp$1(props.modelValue, 0, props.max); + hoverIndex.value = -1; + } + (0, vue.watch)(() => props.modelValue, (val) => { + currentValue.value = clamp$1(val, 0, props.max); + pointerAtLeftHalf.value = props.modelValue !== Math.floor(props.modelValue); + }); + if (!props.modelValue) emit(UPDATE_MODEL_EVENT, 0); + __expose({ + setCurrentValue, + resetCurrentValue + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + id: (0, vue.unref)(inputId), + class: (0, vue.normalizeClass)([rateClasses.value, (0, vue.unref)(ns).is("disabled", (0, vue.unref)(rateDisabled))]), + role: "slider", + "aria-label": !(0, vue.unref)(isLabeledByFormItem) ? __props.ariaLabel || "rating" : void 0, + "aria-labelledby": (0, vue.unref)(isLabeledByFormItem) ? (0, vue.unref)(formItemContext)?.labelId : void 0, + "aria-valuenow": currentValue.value, + "aria-valuetext": text.value || void 0, + "aria-valuemin": "0", + "aria-valuemax": __props.max, + style: (0, vue.normalizeStyle)(rateStyles.value), + tabindex: (0, vue.unref)(rateDisabled) ? void 0 : 0, + "aria-disabled": (0, vue.unref)(rateDisabled), + onKeydown: handleKey + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.max, (item, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("item")), + onMousemove: ($event) => setCurrentValue(item, $event), + onMouseleave: resetCurrentValue, + onClick: ($event) => selectValue(item) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { + ref_for: true, + ref_key: "iconRefs", + ref: iconRefs, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("icon"), + { hover: hoverIndex.value === item }, + (0, vue.unref)(ns).is("active", item <= currentValue.value), + (0, vue.unref)(ns).is("focus-visible", item === Math.ceil(currentValue.value || 1)) + ]) + }, { + default: (0, vue.withCtx)(() => [ + (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(activeComponent.value), null, null, 512)), [[vue.vShow, !showDecimalIcon(item) && item <= currentValue.value]]), + (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(voidComponent.value), null, null, 512)), [[vue.vShow, !showDecimalIcon(item) && item > currentValue.value]]), + (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(voidComponent.value), { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).em("decimal", "box")]) }, null, 8, ["class"])), [[vue.vShow, showDecimalIcon(item)]]), + (0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElIcon), { + style: (0, vue.normalizeStyle)(decimalStyle.value), + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon"), (0, vue.unref)(ns).e("decimal")]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(decimalIconComponent.value)))]), + _: 1 + }, 8, ["style", "class"]), [[vue.vShow, showDecimalIcon(item)]]) + ]), + _: 2 + }, 1032, ["class"])], 42, _hoisted_2$14); + }), 128)), __props.showText || __props.showScore ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("text")), + style: (0, vue.normalizeStyle)({ color: __props.textColor }) + }, (0, vue.toDisplayString)(text.value), 7)) : (0, vue.createCommentVNode)("v-if", true)], 46, _hoisted_1$23); + }; + } + }); + +//#endregion +//#region ../../packages/components/rate/src/rate.vue + var rate_default = rate_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/rate/index.ts + const ElRate = withInstall(rate_default); + +//#endregion +//#region ../../packages/components/result/src/result.ts + const IconMap = { + primary: "icon-primary", + success: "icon-success", + warning: "icon-warning", + error: "icon-error", + info: "icon-info" + }; + const IconComponentMap = { + [IconMap.primary]: info_filled_default, + [IconMap.success]: circle_check_filled_default, + [IconMap.warning]: warning_filled_default, + [IconMap.error]: circle_close_filled_default, + [IconMap.info]: info_filled_default + }; + /** + * @deprecated Removed after 3.0.0, Use `ResultProps` instead. + */ + const resultProps = buildProps({ + title: { + type: String, + default: "" + }, + subTitle: { + type: String, + default: "" + }, + icon: { + type: String, + values: [ + "primary", + "success", + "warning", + "info", + "error" + ], + default: "info" + } + }); + +//#endregion +//#region ../../packages/components/result/src/result.vue?vue&type=script&setup=true&lang.ts + var result_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElResult", + __name: "result", + props: resultProps, + setup(__props) { + const props = __props; + const ns = useNamespace("result"); + const resultIcon = (0, vue.computed)(() => { + const icon = props.icon; + const iconClass = icon && IconMap[icon] ? IconMap[icon] : "icon-info"; + return { + class: iconClass, + component: IconComponentMap[iconClass] || IconComponentMap["icon-info"] + }; + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [ + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon")) }, [(0, vue.renderSlot)(_ctx.$slots, "icon", {}, () => [resultIcon.value.component ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(resultIcon.value.component), { + key: 0, + class: (0, vue.normalizeClass)(resultIcon.value.class) + }, null, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)])], 2), + __props.title || _ctx.$slots.title ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) + }, [(0, vue.renderSlot)(_ctx.$slots, "title", {}, () => [(0, vue.createElementVNode)("p", null, (0, vue.toDisplayString)(__props.title), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + __props.subTitle || _ctx.$slots["sub-title"] ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("subtitle")) + }, [(0, vue.renderSlot)(_ctx.$slots, "sub-title", {}, () => [(0, vue.createElementVNode)("p", null, (0, vue.toDisplayString)(__props.subTitle), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.extra ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("extra")) + }, [(0, vue.renderSlot)(_ctx.$slots, "extra")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/result/src/result.vue + var result_default = result_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/result/index.ts + const ElResult = withInstall(result_default); + +//#endregion +//#region ../../node_modules/.pnpm/memoize-one@6.0.0/node_modules/memoize-one/dist/memoize-one.esm.js + var safeIsNaN = Number.isNaN || function ponyfill(value) { + return typeof value === "number" && value !== value; + }; + function isEqual(first, second) { + if (first === second) return true; + if (safeIsNaN(first) && safeIsNaN(second)) return true; + return false; + } + function areInputsEqual(newInputs, lastInputs) { + if (newInputs.length !== lastInputs.length) return false; + for (var i = 0; i < newInputs.length; i++) if (!isEqual(newInputs[i], lastInputs[i])) return false; + return true; + } + function memoizeOne(resultFn, isEqual) { + if (isEqual === void 0) isEqual = areInputsEqual; + var cache = null; + function memoized() { + var newArgs = []; + for (var _i = 0; _i < arguments.length; _i++) newArgs[_i] = arguments[_i]; + if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) return cache.lastResult; + var lastResult = resultFn.apply(this, newArgs); + cache = { + lastResult, + lastArgs: newArgs, + lastThis: this + }; + return lastResult; + } + memoized.clear = function clear() { + cache = null; + }; + return memoized; + } + +//#endregion +//#region ../../packages/components/virtual-list/src/hooks/use-cache.ts + const useCache = () => { + const props = (0, vue.getCurrentInstance)().proxy.$props; + return (0, vue.computed)(() => { + const _getItemStyleCache = (_, __, ___) => ({}); + return props.perfMode ? memoize(_getItemStyleCache) : memoizeOne(_getItemStyleCache); + }); + }; + +//#endregion +//#region ../../packages/components/virtual-list/src/defaults.ts + const DEFAULT_DYNAMIC_LIST_ITEM_SIZE = 50; + const ITEM_RENDER_EVT = "itemRendered"; + const SCROLL_EVT = "scroll"; + const FORWARD = "forward"; + const BACKWARD = "backward"; + const AUTO_ALIGNMENT = "auto"; + const SMART_ALIGNMENT = "smart"; + const START_ALIGNMENT = "start"; + const CENTERED_ALIGNMENT = "center"; + const END_ALIGNMENT = "end"; + const HORIZONTAL = "horizontal"; + const VERTICAL = "vertical"; + const LTR = "ltr"; + const RTL = "rtl"; + const RTL_OFFSET_NAG = "negative"; + const RTL_OFFSET_POS_ASC = "positive-ascending"; + const RTL_OFFSET_POS_DESC = "positive-descending"; + const ScrollbarSizeKey = { + [HORIZONTAL]: "height", + [VERTICAL]: "width" + }; + const ScrollbarDirKey = { + [HORIZONTAL]: "left", + [VERTICAL]: "top" + }; + const SCROLLBAR_MIN_SIZE = 20; + +//#endregion +//#region ../../packages/components/virtual-list/src/hooks/use-wheel.ts + const useWheel = ({ atEndEdge, atStartEdge, layout }, onWheelDelta) => { + let frameHandle; + let offset = 0; + const hasReachedEdge = (offset) => { + return offset < 0 && atStartEdge.value || offset > 0 && atEndEdge.value; + }; + const onWheel = (e) => { + cAF(frameHandle); + let { deltaX, deltaY } = e; + if (e.shiftKey && deltaY !== 0) { + deltaX = deltaY; + deltaY = 0; + } + const newOffset = layout.value === HORIZONTAL ? deltaX : deltaY; + if (hasReachedEdge(newOffset)) return; + offset += newOffset; + if (!isFirefox() && newOffset !== 0) e.preventDefault(); + frameHandle = rAF(() => { + onWheelDelta(offset); + offset = 0; + }); + }; + return { + hasReachedEdge, + onWheel + }; + }; + +//#endregion +//#region ../../packages/components/virtual-list/src/props.ts + const itemSize$1 = buildProp({ + type: definePropType([Number, Function]), + required: true + }); + const estimatedItemSize = buildProp({ type: Number }); + const cache = buildProp({ + type: Number, + default: 2 + }); + const direction = buildProp({ + type: String, + values: ["ltr", "rtl"], + default: "ltr" + }); + const initScrollOffset = buildProp({ + type: Number, + default: 0 + }); + const total = buildProp({ + type: Number, + required: true + }); + const layout = buildProp({ + type: String, + values: ["horizontal", "vertical"], + default: VERTICAL + }); + const virtualizedProps = buildProps({ + className: { + type: String, + default: "" + }, + containerElement: { + type: definePropType([String, Object]), + default: "div" + }, + data: { + type: definePropType(Array), + default: () => mutable([]) + }, + direction, + height: { + type: [String, Number], + required: true + }, + innerElement: { + type: [String, Object], + default: "div" + }, + innerProps: { + type: definePropType(Object), + default: () => ({}) + }, + style: { type: definePropType([ + Object, + String, + Array + ]) }, + useIsScrolling: Boolean, + width: { + type: [Number, String], + required: false + }, + perfMode: { + type: Boolean, + default: true + }, + scrollbarAlwaysOn: Boolean + }); + const virtualizedListProps = buildProps({ + cache, + estimatedItemSize, + layout, + initScrollOffset, + total, + itemSize: itemSize$1, + ...virtualizedProps + }); + const scrollbarSize = { + type: Number, + default: 6 + }; + const startGap = { + type: Number, + default: 0 + }; + const endGap = { + type: Number, + default: 2 + }; + const virtualizedGridProps = buildProps({ + columnCache: cache, + columnWidth: itemSize$1, + estimatedColumnWidth: estimatedItemSize, + estimatedRowHeight: estimatedItemSize, + initScrollLeft: initScrollOffset, + initScrollTop: initScrollOffset, + itemKey: { + type: definePropType(Function), + default: ({ columnIndex, rowIndex }) => `${rowIndex}:${columnIndex}` + }, + rowCache: cache, + rowHeight: itemSize$1, + totalColumn: total, + totalRow: total, + hScrollbarSize: scrollbarSize, + vScrollbarSize: scrollbarSize, + scrollbarStartGap: startGap, + scrollbarEndGap: endGap, + role: String, + ...virtualizedProps + }); + const virtualizedScrollbarProps = buildProps({ + alwaysOn: Boolean, + class: String, + layout, + total, + ratio: { + type: Number, + required: true + }, + clientSize: { + type: Number, + required: true + }, + scrollFrom: { + type: Number, + required: true + }, + scrollbarSize, + startGap, + endGap, + visible: Boolean + }); + +//#endregion +//#region ../../packages/components/virtual-list/src/utils.ts + const getScrollDir = (prev, cur) => prev < cur ? FORWARD : BACKWARD; + const isHorizontal = (dir) => dir === LTR || dir === RTL || dir === HORIZONTAL; + const isRTL = (dir) => dir === RTL; + let cachedRTLResult = null; + function getRTLOffsetType(recalculate = false) { + if (cachedRTLResult === null || recalculate) { + const outerDiv = document.createElement("div"); + const outerStyle = outerDiv.style; + outerStyle.width = "50px"; + outerStyle.height = "50px"; + outerStyle.overflow = "scroll"; + outerStyle.direction = "rtl"; + const innerDiv = document.createElement("div"); + const innerStyle = innerDiv.style; + innerStyle.width = "100px"; + innerStyle.height = "100px"; + outerDiv.appendChild(innerDiv); + document.body.appendChild(outerDiv); + if (outerDiv.scrollLeft > 0) cachedRTLResult = RTL_OFFSET_POS_DESC; + else { + outerDiv.scrollLeft = 1; + if (outerDiv.scrollLeft === 0) cachedRTLResult = RTL_OFFSET_NAG; + else cachedRTLResult = RTL_OFFSET_POS_ASC; + } + document.body.removeChild(outerDiv); + return cachedRTLResult; + } + return cachedRTLResult; + } + function renderThumbStyle$1({ move, size, bar }, layout) { + const style = {}; + const translate = `translate${bar.axis}(${move}px)`; + style[bar.size] = size; + style.transform = translate; + if (layout === "horizontal") style.height = "100%"; + else style.width = "100%"; + return style; + } + +//#endregion +//#region ../../packages/components/virtual-list/src/components/scrollbar.ts + const ScrollBar = (0, vue.defineComponent)({ + name: "ElVirtualScrollBar", + props: virtualizedScrollbarProps, + emits: [ + "scroll", + "start-move", + "stop-move" + ], + setup(props, { emit }) { + const GAP = (0, vue.computed)(() => props.startGap + props.endGap); + const nsVirtualScrollbar = useNamespace("virtual-scrollbar"); + const nsScrollbar = useNamespace("scrollbar"); + const trackRef = (0, vue.ref)(); + const thumbRef = (0, vue.ref)(); + let frameHandle = null; + let onselectstartStore = null; + const state = (0, vue.reactive)({ + isDragging: false, + traveled: 0 + }); + const bar = (0, vue.computed)(() => BAR_MAP[props.layout]); + const trackSize = (0, vue.computed)(() => props.clientSize - (0, vue.unref)(GAP)); + const trackStyle = (0, vue.computed)(() => ({ + position: "absolute", + width: `${HORIZONTAL === props.layout ? trackSize.value : props.scrollbarSize}px`, + height: `${HORIZONTAL === props.layout ? props.scrollbarSize : trackSize.value}px`, + [ScrollbarDirKey[props.layout]]: "2px", + right: "2px", + bottom: "2px", + borderRadius: "4px" + })); + const thumbSize = (0, vue.computed)(() => { + const ratio = props.ratio; + if (ratio >= 100) return Number.POSITIVE_INFINITY; + if (ratio >= 50) return ratio * trackSize.value / 100; + const SCROLLBAR_MAX_SIZE = trackSize.value / 3; + return Math.floor(Math.min(Math.max(ratio * trackSize.value / 100, SCROLLBAR_MIN_SIZE), SCROLLBAR_MAX_SIZE)); + }); + const thumbStyle = (0, vue.computed)(() => { + if (!Number.isFinite(thumbSize.value)) return { display: "none" }; + const thumb = `${thumbSize.value}px`; + return renderThumbStyle$1({ + bar: bar.value, + size: thumb, + move: state.traveled + }, props.layout); + }); + const totalSteps = (0, vue.computed)(() => Math.ceil(props.clientSize - thumbSize.value - (0, vue.unref)(GAP))); + const attachEvents = () => { + window.addEventListener("mousemove", onMouseMove); + window.addEventListener("mouseup", onMouseUp); + const thumbEl = (0, vue.unref)(thumbRef); + if (!thumbEl) return; + onselectstartStore = document.onselectstart; + document.onselectstart = () => false; + thumbEl.addEventListener("touchmove", onMouseMove, { passive: true }); + thumbEl.addEventListener("touchend", onMouseUp); + }; + const detachEvents = () => { + window.removeEventListener("mousemove", onMouseMove); + window.removeEventListener("mouseup", onMouseUp); + document.onselectstart = onselectstartStore; + onselectstartStore = null; + const thumbEl = (0, vue.unref)(thumbRef); + if (!thumbEl) return; + thumbEl.removeEventListener("touchmove", onMouseMove); + thumbEl.removeEventListener("touchend", onMouseUp); + }; + const onThumbMouseDown = (e) => { + e.stopImmediatePropagation(); + if (e.ctrlKey || [1, 2].includes(e.button)) return; + state.isDragging = true; + state[bar.value.axis] = e.currentTarget[bar.value.offset] - (e[bar.value.client] - e.currentTarget.getBoundingClientRect()[bar.value.direction]); + emit("start-move"); + attachEvents(); + }; + const onMouseUp = () => { + state.isDragging = false; + state[bar.value.axis] = 0; + emit("stop-move"); + detachEvents(); + }; + const onMouseMove = (e) => { + const { isDragging } = state; + if (!isDragging) return; + if (!thumbRef.value || !trackRef.value) return; + const prevPage = state[bar.value.axis]; + if (!prevPage) return; + cAF(frameHandle); + /** + * +--------------+ +--------------+ + * | - <--------- thumb.offsetTop | | + * | |+| <--+ | | + * | - | | | + * | Content | | | | + * | | | | | + * | | | | | + * | | | | - + * | | +--> | |+| + * | | | - + * +--------------+ +--------------+ + */ + const distance = (trackRef.value.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) * -1 - (thumbRef.value[bar.value.offset] - prevPage); + frameHandle = rAF(() => { + state.traveled = Math.max(0, Math.min(distance, totalSteps.value)); + emit("scroll", distance, totalSteps.value); + }); + }; + const clickTrackHandler = (e) => { + const distance = Math.abs(e.target.getBoundingClientRect()[bar.value.direction] - e[bar.value.client]) - thumbRef.value[bar.value.offset] / 2; + state.traveled = Math.max(0, Math.min(distance, totalSteps.value)); + emit("scroll", distance, totalSteps.value); + }; + (0, vue.watch)(() => props.scrollFrom, (v) => { + if (state.isDragging) return; + /** + * this is simply mapping the current scrollbar offset + * + * formula 1: + * v = scrollOffset / (estimatedTotalSize - clientSize) + * traveled = v * (clientSize - thumbSize - GAP) --> v * totalSteps + * + * formula 2: + * traveled = (v * clientSize) / (clientSize / totalSteps) --> (v * clientSize) * (totalSteps / clientSize) --> v * totalSteps + */ + state.traveled = Math.ceil(v * totalSteps.value); + }); + (0, vue.onBeforeUnmount)(() => { + detachEvents(); + }); + return () => { + return (0, vue.h)("div", { + role: "presentation", + ref: trackRef, + class: [ + nsVirtualScrollbar.b(), + props.class, + (props.alwaysOn || state.isDragging) && "always-on" + ], + style: trackStyle.value, + onMousedown: (0, vue.withModifiers)(clickTrackHandler, ["stop", "prevent"]), + onTouchstartPrevent: onThumbMouseDown + }, (0, vue.h)("div", { + ref: thumbRef, + class: nsScrollbar.e("thumb"), + style: thumbStyle.value, + onMousedown: onThumbMouseDown + }, [])); + }; + } + }); + +//#endregion +//#region ../../packages/components/virtual-list/src/builders/build-list.ts + const createList = ({ name, getOffset, getItemSize, getItemOffset, getEstimatedTotalSize, getStartIndexForOffset, getStopIndexForStartIndex, initCache, clearCache, validateProps }) => { + return (0, vue.defineComponent)({ + name: name ?? "ElVirtualList", + props: virtualizedListProps, + emits: [ITEM_RENDER_EVT, SCROLL_EVT], + setup(props, { emit, expose }) { + validateProps(props); + const instance = (0, vue.getCurrentInstance)(); + const ns = useNamespace("vl"); + const dynamicSizeCache = (0, vue.ref)(initCache(props, instance)); + const getItemStyleCache = useCache(); + const windowRef = (0, vue.ref)(); + const innerRef = (0, vue.ref)(); + const scrollbarRef = (0, vue.ref)(); + const states = (0, vue.ref)({ + isScrolling: false, + scrollDir: "forward", + scrollOffset: isNumber(props.initScrollOffset) ? props.initScrollOffset : 0, + updateRequested: false, + isScrollbarDragging: false, + scrollbarAlwaysOn: props.scrollbarAlwaysOn + }); + const itemsToRender = (0, vue.computed)(() => { + const { total, cache } = props; + const { isScrolling, scrollDir, scrollOffset } = (0, vue.unref)(states); + if (total === 0) return [ + 0, + 0, + 0, + 0 + ]; + const startIndex = getStartIndexForOffset(props, scrollOffset, (0, vue.unref)(dynamicSizeCache)); + const stopIndex = getStopIndexForStartIndex(props, startIndex, scrollOffset, (0, vue.unref)(dynamicSizeCache)); + const cacheBackward = !isScrolling || scrollDir === BACKWARD ? Math.max(1, cache) : 1; + const cacheForward = !isScrolling || scrollDir === FORWARD ? Math.max(1, cache) : 1; + return [ + Math.max(0, startIndex - cacheBackward), + Math.max(0, Math.min(total - 1, stopIndex + cacheForward)), + startIndex, + stopIndex + ]; + }); + const estimatedTotalSize = (0, vue.computed)(() => getEstimatedTotalSize(props, (0, vue.unref)(dynamicSizeCache))); + const _isHorizontal = (0, vue.computed)(() => isHorizontal(props.layout)); + const windowStyle = (0, vue.computed)(() => [ + { + position: "relative", + [`overflow-${_isHorizontal.value ? "x" : "y"}`]: "scroll", + WebkitOverflowScrolling: "touch", + willChange: "transform" + }, + { + direction: props.direction, + height: isNumber(props.height) ? `${props.height}px` : props.height, + width: isNumber(props.width) ? `${props.width}px` : props.width + }, + props.style + ]); + const innerStyle = (0, vue.computed)(() => { + const size = (0, vue.unref)(estimatedTotalSize); + const horizontal = (0, vue.unref)(_isHorizontal); + return { + height: horizontal ? "100%" : `${size}px`, + pointerEvents: (0, vue.unref)(states).isScrolling ? "none" : void 0, + width: horizontal ? `${size}px` : "100%", + margin: 0, + boxSizing: "border-box" + }; + }); + const clientSize = (0, vue.computed)(() => _isHorizontal.value ? props.width : props.height); + const { onWheel } = useWheel({ + atStartEdge: (0, vue.computed)(() => states.value.scrollOffset <= 0), + atEndEdge: (0, vue.computed)(() => states.value.scrollOffset >= estimatedTotalSize.value), + layout: (0, vue.computed)(() => props.layout) + }, (offset) => { + scrollbarRef.value.onMouseUp?.(); + scrollTo(Math.min(states.value.scrollOffset + offset, estimatedTotalSize.value - clientSize.value)); + }); + useEventListener(windowRef, "wheel", onWheel, { passive: false }); + const emitEvents = () => { + const { total } = props; + if (total > 0) { + const [cacheStart, cacheEnd, visibleStart, visibleEnd] = (0, vue.unref)(itemsToRender); + emit(ITEM_RENDER_EVT, cacheStart, cacheEnd, visibleStart, visibleEnd); + } + const { scrollDir, scrollOffset, updateRequested } = (0, vue.unref)(states); + emit(SCROLL_EVT, scrollDir, scrollOffset, updateRequested); + }; + const scrollVertically = (e) => { + const { clientHeight, scrollHeight, scrollTop } = e.currentTarget; + const _states = (0, vue.unref)(states); + if (_states.scrollOffset === scrollTop) return; + const scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight)); + states.value = { + ..._states, + isScrolling: true, + scrollDir: getScrollDir(_states.scrollOffset, scrollOffset), + scrollOffset, + updateRequested: false + }; + (0, vue.nextTick)(resetIsScrolling); + }; + const scrollHorizontally = (e) => { + const { clientWidth, scrollLeft, scrollWidth } = e.currentTarget; + const _states = (0, vue.unref)(states); + if (_states.scrollOffset === scrollLeft) return; + const { direction } = props; + let scrollOffset = scrollLeft; + if (direction === RTL) switch (getRTLOffsetType()) { + case RTL_OFFSET_NAG: + scrollOffset = -scrollLeft; + break; + case RTL_OFFSET_POS_DESC: + scrollOffset = scrollWidth - clientWidth - scrollLeft; + break; + } + scrollOffset = Math.max(0, Math.min(scrollOffset, scrollWidth - clientWidth)); + states.value = { + ..._states, + isScrolling: true, + scrollDir: getScrollDir(_states.scrollOffset, scrollOffset), + scrollOffset, + updateRequested: false + }; + (0, vue.nextTick)(resetIsScrolling); + }; + const onScroll = (e) => { + (0, vue.unref)(_isHorizontal) ? scrollHorizontally(e) : scrollVertically(e); + emitEvents(); + }; + const onScrollbarScroll = (distanceToGo, totalSteps) => { + const offset = (estimatedTotalSize.value - clientSize.value) / totalSteps * distanceToGo; + scrollTo(Math.min(estimatedTotalSize.value - clientSize.value, offset)); + }; + const scrollTo = (offset) => { + offset = Math.max(offset, 0); + if (offset === (0, vue.unref)(states).scrollOffset) return; + states.value = { + ...(0, vue.unref)(states), + scrollOffset: offset, + scrollDir: getScrollDir((0, vue.unref)(states).scrollOffset, offset), + updateRequested: true + }; + (0, vue.nextTick)(resetIsScrolling); + }; + const scrollToItem = (idx, alignment = AUTO_ALIGNMENT) => { + const { scrollOffset } = (0, vue.unref)(states); + idx = Math.max(0, Math.min(idx, props.total - 1)); + scrollTo(getOffset(props, idx, alignment, scrollOffset, (0, vue.unref)(dynamicSizeCache))); + }; + const getItemStyle = (idx) => { + const { direction, itemSize, layout } = props; + const itemStyleCache = getItemStyleCache.value(clearCache && itemSize, clearCache && layout, clearCache && direction); + let style; + if (hasOwn(itemStyleCache, String(idx))) style = itemStyleCache[idx]; + else { + const offset = getItemOffset(props, idx, (0, vue.unref)(dynamicSizeCache)); + const size = getItemSize(props, idx, (0, vue.unref)(dynamicSizeCache)); + const horizontal = (0, vue.unref)(_isHorizontal); + const isRtl = direction === RTL; + const offsetHorizontal = horizontal ? offset : 0; + itemStyleCache[idx] = style = { + position: "absolute", + left: isRtl ? void 0 : `${offsetHorizontal}px`, + right: isRtl ? `${offsetHorizontal}px` : void 0, + top: !horizontal ? `${offset}px` : 0, + height: !horizontal ? `${size}px` : "100%", + width: horizontal ? `${size}px` : "100%" + }; + } + return style; + }; + const resetIsScrolling = () => { + states.value.isScrolling = false; + (0, vue.nextTick)(() => { + getItemStyleCache.value(-1, null, null); + }); + }; + const resetScrollTop = () => { + const window = windowRef.value; + if (window) window.scrollTop = 0; + }; + (0, vue.onMounted)(() => { + if (!isClient) return; + const { initScrollOffset } = props; + const windowElement = (0, vue.unref)(windowRef); + if (isNumber(initScrollOffset) && windowElement) if ((0, vue.unref)(_isHorizontal)) windowElement.scrollLeft = initScrollOffset; + else windowElement.scrollTop = initScrollOffset; + emitEvents(); + }); + (0, vue.onUpdated)(() => { + const { direction, layout } = props; + const { scrollOffset, updateRequested } = (0, vue.unref)(states); + const windowElement = (0, vue.unref)(windowRef); + if (updateRequested && windowElement) if (layout === HORIZONTAL) if (direction === RTL) switch (getRTLOffsetType()) { + case RTL_OFFSET_NAG: + windowElement.scrollLeft = -scrollOffset; + break; + case RTL_OFFSET_POS_ASC: + windowElement.scrollLeft = scrollOffset; + break; + default: { + const { clientWidth, scrollWidth } = windowElement; + windowElement.scrollLeft = scrollWidth - clientWidth - scrollOffset; + break; + } + } + else windowElement.scrollLeft = scrollOffset; + else windowElement.scrollTop = scrollOffset; + }); + (0, vue.onActivated)(() => { + (0, vue.unref)(windowRef).scrollTop = (0, vue.unref)(states).scrollOffset; + }); + const api = { + ns, + clientSize, + estimatedTotalSize, + windowStyle, + windowRef, + innerRef, + innerStyle, + itemsToRender, + scrollbarRef, + states, + getItemStyle, + onScroll, + onScrollbarScroll, + onWheel, + scrollTo, + scrollToItem, + resetScrollTop + }; + expose({ + windowRef, + innerRef, + getItemStyleCache, + scrollTo, + scrollToItem, + resetScrollTop, + states + }); + return api; + }, + render(ctx) { + const { $slots, className, clientSize, containerElement, data, getItemStyle, innerElement, itemsToRender, innerStyle, layout, total, onScroll, onScrollbarScroll, states, useIsScrolling, windowStyle, ns } = ctx; + const [start, end] = itemsToRender; + const Container = (0, vue.resolveDynamicComponent)(containerElement); + const Inner = (0, vue.resolveDynamicComponent)(innerElement); + const children = []; + if (total > 0) for (let i = start; i <= end; i++) children.push((0, vue.h)(vue.Fragment, { key: i }, $slots.default?.({ + data, + index: i, + isScrolling: useIsScrolling ? states.isScrolling : void 0, + style: getItemStyle(i) + }))); + const InnerNode = [(0, vue.h)(Inner, (0, vue.mergeProps)(ctx.innerProps, { + style: innerStyle, + ref: "innerRef" + }), !isString(Inner) ? { default: () => children } : children)]; + const scrollbar = (0, vue.h)(ScrollBar, { + ref: "scrollbarRef", + clientSize, + layout, + onScroll: onScrollbarScroll, + ratio: clientSize * 100 / this.estimatedTotalSize, + scrollFrom: states.scrollOffset / (this.estimatedTotalSize - clientSize), + total, + alwaysOn: states.scrollbarAlwaysOn + }); + const listContainer = (0, vue.h)(Container, { + class: [ns.e("window"), className], + style: windowStyle, + onScroll, + ref: "windowRef", + key: 0 + }, !isString(Container) ? { default: () => [InnerNode] } : [InnerNode]); + return (0, vue.h)("div", { + key: 0, + class: [ns.e("wrapper"), states.scrollbarAlwaysOn ? "always-on" : ""] + }, [listContainer, scrollbar]); + } + }); + }; + +//#endregion +//#region ../../packages/components/virtual-list/src/components/fixed-size-list.ts + const FixedSizeList = createList({ + name: "ElFixedSizeList", + getItemOffset: ({ itemSize }, index) => index * itemSize, + getItemSize: ({ itemSize }) => itemSize, + getEstimatedTotalSize: ({ total, itemSize }) => itemSize * total, + getOffset: ({ height, total, itemSize, layout, width }, index, alignment, scrollOffset) => { + const size = isHorizontal(layout) ? width : height; + const lastItemOffset = Math.max(0, total * itemSize - size); + const maxOffset = Math.min(lastItemOffset, index * itemSize); + const minOffset = Math.max(0, (index + 1) * itemSize - size); + if (alignment === SMART_ALIGNMENT) if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) alignment = AUTO_ALIGNMENT; + else alignment = CENTERED_ALIGNMENT; + switch (alignment) { + case START_ALIGNMENT: return maxOffset; + case END_ALIGNMENT: return minOffset; + case CENTERED_ALIGNMENT: { + const middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2); + if (middleOffset < Math.ceil(size / 2)) return 0; + else if (middleOffset > lastItemOffset + Math.floor(size / 2)) return lastItemOffset; + else return middleOffset; + } + case AUTO_ALIGNMENT: + default: if (scrollOffset >= minOffset && scrollOffset <= maxOffset) return scrollOffset; + else if (scrollOffset < minOffset) return minOffset; + else return maxOffset; + } + }, + getStartIndexForOffset: ({ total, itemSize }, offset) => Math.max(0, Math.min(total - 1, Math.floor(offset / itemSize))), + getStopIndexForStartIndex: ({ height, total, itemSize, layout, width }, startIndex, scrollOffset) => { + const offset = startIndex * itemSize; + const size = isHorizontal(layout) ? width : height; + const numVisibleItems = Math.ceil((size + scrollOffset - offset) / itemSize); + return Math.max(0, Math.min(total - 1, startIndex + numVisibleItems - 1)); + }, + initCache() {}, + clearCache: true, + validateProps() {} + }); + +//#endregion +//#region ../../packages/components/virtual-list/src/components/dynamic-size-list.ts + const getItemFromCache$1 = (props, index, listCache) => { + const { itemSize } = props; + const { items, lastVisitedIndex } = listCache; + if (index > lastVisitedIndex) { + let offset = 0; + if (lastVisitedIndex >= 0) { + const item = items[lastVisitedIndex]; + offset = item.offset + item.size; + } + for (let i = lastVisitedIndex + 1; i <= index; i++) { + const size = itemSize(i); + items[i] = { + offset, + size + }; + offset += size; + } + listCache.lastVisitedIndex = index; + } + return items[index]; + }; + const findItem$1 = (props, listCache, offset) => { + const { items, lastVisitedIndex } = listCache; + if ((lastVisitedIndex > 0 ? items[lastVisitedIndex].offset : 0) >= offset) return bs$1(props, listCache, 0, lastVisitedIndex, offset); + return es$1(props, listCache, Math.max(0, lastVisitedIndex), offset); + }; + const bs$1 = (props, listCache, low, high, offset) => { + while (low <= high) { + const mid = low + Math.floor((high - low) / 2); + const currentOffset = getItemFromCache$1(props, mid, listCache).offset; + if (currentOffset === offset) return mid; + else if (currentOffset < offset) low = mid + 1; + else if (currentOffset > offset) high = mid - 1; + } + return Math.max(0, low - 1); + }; + const es$1 = (props, listCache, index, offset) => { + const { total } = props; + let exponent = 1; + while (index < total && getItemFromCache$1(props, index, listCache).offset < offset) { + index += exponent; + exponent *= 2; + } + return bs$1(props, listCache, Math.floor(index / 2), Math.min(index, total - 1), offset); + }; + const getEstimatedTotalSize = ({ total }, { items, estimatedItemSize, lastVisitedIndex }) => { + let totalSizeOfMeasuredItems = 0; + if (lastVisitedIndex >= total) lastVisitedIndex = total - 1; + if (lastVisitedIndex >= 0) { + const item = items[lastVisitedIndex]; + totalSizeOfMeasuredItems = item.offset + item.size; + } + const totalSizeOfUnmeasuredItems = (total - lastVisitedIndex - 1) * estimatedItemSize; + return totalSizeOfMeasuredItems + totalSizeOfUnmeasuredItems; + }; + const DynamicSizeList = createList({ + name: "ElDynamicSizeList", + getItemOffset: (props, index, listCache) => getItemFromCache$1(props, index, listCache).offset, + getItemSize: (_, index, { items }) => items[index].size, + getEstimatedTotalSize, + getOffset: (props, index, alignment, scrollOffset, listCache) => { + const { height, layout, width } = props; + const size = isHorizontal(layout) ? width : height; + const item = getItemFromCache$1(props, index, listCache); + const estimatedTotalSize = getEstimatedTotalSize(props, listCache); + const maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, item.offset)); + const minOffset = Math.max(0, item.offset - size + item.size); + if (alignment === SMART_ALIGNMENT) if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) alignment = AUTO_ALIGNMENT; + else alignment = CENTERED_ALIGNMENT; + switch (alignment) { + case START_ALIGNMENT: return maxOffset; + case END_ALIGNMENT: return minOffset; + case CENTERED_ALIGNMENT: return Math.round(minOffset + (maxOffset - minOffset) / 2); + case AUTO_ALIGNMENT: + default: if (scrollOffset >= minOffset && scrollOffset <= maxOffset) return scrollOffset; + else if (scrollOffset < minOffset) return minOffset; + else return maxOffset; + } + }, + getStartIndexForOffset: (props, offset, listCache) => findItem$1(props, listCache, offset), + getStopIndexForStartIndex: (props, startIndex, scrollOffset, listCache) => { + const { height, total, layout, width } = props; + const size = isHorizontal(layout) ? width : height; + const item = getItemFromCache$1(props, startIndex, listCache); + const maxOffset = scrollOffset + size; + let offset = item.offset + item.size; + let stopIndex = startIndex; + while (stopIndex < total - 1 && offset < maxOffset) { + stopIndex++; + offset += getItemFromCache$1(props, stopIndex, listCache).size; + } + return stopIndex; + }, + initCache({ estimatedItemSize = DEFAULT_DYNAMIC_LIST_ITEM_SIZE }, instance) { + const cache = { + items: {}, + estimatedItemSize, + lastVisitedIndex: -1 + }; + cache.clearCacheAfterIndex = (index, forceUpdate = true) => { + cache.lastVisitedIndex = Math.min(cache.lastVisitedIndex, index - 1); + instance.exposed?.getItemStyleCache(-1); + if (forceUpdate) instance.proxy?.$forceUpdate(); + }; + return cache; + }, + clearCache: false, + validateProps: ({ itemSize }) => {} + }); + +//#endregion +//#region ../../packages/components/virtual-list/src/hooks/use-grid-wheel.ts + const useGridWheel = ({ atXEndEdge, atXStartEdge, atYEndEdge, atYStartEdge }, onWheelDelta) => { + let frameHandle = null; + let xOffset = 0; + let yOffset = 0; + const hasReachedEdge = (x, y) => { + const xEdgeReached = x < 0 && atXStartEdge.value || x > 0 && atXEndEdge.value; + const yEdgeReached = y < 0 && atYStartEdge.value || y > 0 && atYEndEdge.value; + return xEdgeReached || yEdgeReached; + }; + const onWheel = (e) => { + cAF(frameHandle); + let x = e.deltaX; + let y = e.deltaY; + if (Math.abs(x) > Math.abs(y)) y = 0; + else x = 0; + if (e.shiftKey && y !== 0) { + x = y; + y = 0; + } + if (hasReachedEdge(x, y)) { + if (e.deltaX !== 0 && x === 0) e.preventDefault(); + return; + } + xOffset += x; + yOffset += y; + e.preventDefault(); + frameHandle = rAF(() => { + onWheelDelta(xOffset, yOffset); + xOffset = 0; + yOffset = 0; + }); + }; + return { + hasReachedEdge, + onWheel + }; + }; + +//#endregion +//#region ../../packages/components/virtual-list/src/hooks/use-grid-touch.ts + const useGridTouch = (windowRef, states, scrollTo, estimatedTotalWidth, estimatedTotalHeight, parsedWidth, parsedHeight) => { + const touchStartX = (0, vue.ref)(0); + const touchStartY = (0, vue.ref)(0); + let frameHandle; + let deltaX = 0; + let deltaY = 0; + const handleTouchStart = (event) => { + cAF(frameHandle); + touchStartX.value = event.touches[0].clientX; + touchStartY.value = event.touches[0].clientY; + deltaX = 0; + deltaY = 0; + }; + const handleTouchMove = (event) => { + event.preventDefault(); + cAF(frameHandle); + deltaX += touchStartX.value - event.touches[0].clientX; + deltaY += touchStartY.value - event.touches[0].clientY; + touchStartX.value = event.touches[0].clientX; + touchStartY.value = event.touches[0].clientY; + frameHandle = rAF(() => { + const maxScrollLeft = estimatedTotalWidth.value - (0, vue.unref)(parsedWidth); + const maxScrollTop = estimatedTotalHeight.value - (0, vue.unref)(parsedHeight); + scrollTo({ + scrollLeft: Math.min(states.value.scrollLeft + deltaX, maxScrollLeft), + scrollTop: Math.min(states.value.scrollTop + deltaY, maxScrollTop) + }); + deltaX = 0; + deltaY = 0; + }); + }; + useEventListener(windowRef, "touchstart", handleTouchStart, { passive: true }); + useEventListener(windowRef, "touchmove", handleTouchMove, { passive: false }); + return { + touchStartX, + touchStartY, + handleTouchStart, + handleTouchMove + }; + }; + +//#endregion +//#region ../../packages/components/virtual-list/src/builders/build-grid.ts + const createGrid = ({ name, clearCache, getColumnPosition, getColumnStartIndexForOffset, getColumnStopIndexForStartIndex, getEstimatedTotalHeight, getEstimatedTotalWidth, getColumnOffset, getRowOffset, getRowPosition, getRowStartIndexForOffset, getRowStopIndexForStartIndex, initCache, injectToInstance, validateProps }) => { + return (0, vue.defineComponent)({ + name: name ?? "ElVirtualList", + props: virtualizedGridProps, + emits: [ITEM_RENDER_EVT, SCROLL_EVT], + setup(props, { emit, expose, slots }) { + const ns = useNamespace("vl"); + validateProps(props); + const instance = (0, vue.getCurrentInstance)(); + const cache = (0, vue.ref)(initCache(props, instance)); + injectToInstance?.(instance, cache); + const windowRef = (0, vue.ref)(); + const hScrollbar = (0, vue.ref)(); + const vScrollbar = (0, vue.ref)(); + const innerRef = (0, vue.ref)(); + const states = (0, vue.ref)({ + isScrolling: false, + scrollLeft: isNumber(props.initScrollLeft) ? props.initScrollLeft : 0, + scrollTop: isNumber(props.initScrollTop) ? props.initScrollTop : 0, + updateRequested: false, + xAxisScrollDir: FORWARD, + yAxisScrollDir: FORWARD + }); + const getItemStyleCache = useCache(); + const parsedHeight = (0, vue.computed)(() => Number.parseInt(`${props.height}`, 10)); + const parsedWidth = (0, vue.computed)(() => Number.parseInt(`${props.width}`, 10)); + const columnsToRender = (0, vue.computed)(() => { + const { totalColumn, totalRow, columnCache } = props; + const { isScrolling, xAxisScrollDir, scrollLeft } = (0, vue.unref)(states); + if (totalColumn === 0 || totalRow === 0) return [ + 0, + 0, + 0, + 0 + ]; + const startIndex = getColumnStartIndexForOffset(props, scrollLeft, (0, vue.unref)(cache)); + const stopIndex = getColumnStopIndexForStartIndex(props, startIndex, scrollLeft, (0, vue.unref)(cache)); + const cacheBackward = !isScrolling || xAxisScrollDir === BACKWARD ? Math.max(1, columnCache) : 1; + const cacheForward = !isScrolling || xAxisScrollDir === FORWARD ? Math.max(1, columnCache) : 1; + return [ + Math.max(0, startIndex - cacheBackward), + Math.max(0, Math.min(totalColumn - 1, stopIndex + cacheForward)), + startIndex, + stopIndex + ]; + }); + const rowsToRender = (0, vue.computed)(() => { + const { totalColumn, totalRow, rowCache } = props; + const { isScrolling, yAxisScrollDir, scrollTop } = (0, vue.unref)(states); + if (totalColumn === 0 || totalRow === 0) return [ + 0, + 0, + 0, + 0 + ]; + const startIndex = getRowStartIndexForOffset(props, scrollTop, (0, vue.unref)(cache)); + const stopIndex = getRowStopIndexForStartIndex(props, startIndex, scrollTop, (0, vue.unref)(cache)); + const cacheBackward = !isScrolling || yAxisScrollDir === BACKWARD ? Math.max(1, rowCache) : 1; + const cacheForward = !isScrolling || yAxisScrollDir === FORWARD ? Math.max(1, rowCache) : 1; + return [ + Math.max(0, startIndex - cacheBackward), + Math.max(0, Math.min(totalRow - 1, stopIndex + cacheForward)), + startIndex, + stopIndex + ]; + }); + const estimatedTotalHeight = (0, vue.computed)(() => getEstimatedTotalHeight(props, (0, vue.unref)(cache))); + const estimatedTotalWidth = (0, vue.computed)(() => getEstimatedTotalWidth(props, (0, vue.unref)(cache))); + const windowStyle = (0, vue.computed)(() => [ + { + position: "relative", + overflow: "hidden", + WebkitOverflowScrolling: "touch", + willChange: "transform" + }, + { + direction: props.direction, + height: isNumber(props.height) ? `${props.height}px` : props.height, + width: isNumber(props.width) ? `${props.width}px` : props.width + }, + props.style ?? {} + ]); + const innerStyle = (0, vue.computed)(() => { + const width = `${(0, vue.unref)(estimatedTotalWidth)}px`; + return { + height: `${(0, vue.unref)(estimatedTotalHeight)}px`, + pointerEvents: (0, vue.unref)(states).isScrolling ? "none" : void 0, + width, + margin: 0, + boxSizing: "border-box" + }; + }); + const emitEvents = () => { + const { totalColumn, totalRow } = props; + if (totalColumn > 0 && totalRow > 0) { + const [columnCacheStart, columnCacheEnd, columnVisibleStart, columnVisibleEnd] = (0, vue.unref)(columnsToRender); + const [rowCacheStart, rowCacheEnd, rowVisibleStart, rowVisibleEnd] = (0, vue.unref)(rowsToRender); + emit(ITEM_RENDER_EVT, { + columnCacheStart, + columnCacheEnd, + rowCacheStart, + rowCacheEnd, + columnVisibleStart, + columnVisibleEnd, + rowVisibleStart, + rowVisibleEnd + }); + } + const { scrollLeft, scrollTop, updateRequested, xAxisScrollDir, yAxisScrollDir } = (0, vue.unref)(states); + emit(SCROLL_EVT, { + xAxisScrollDir, + scrollLeft, + yAxisScrollDir, + scrollTop, + updateRequested + }); + }; + const onScroll = (e) => { + const { clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth } = e.currentTarget; + const _states = (0, vue.unref)(states); + if (_states.scrollTop === scrollTop && _states.scrollLeft === scrollLeft) return; + let _scrollLeft = scrollLeft; + if (isRTL(props.direction)) switch (getRTLOffsetType()) { + case RTL_OFFSET_NAG: + _scrollLeft = -scrollLeft; + break; + case RTL_OFFSET_POS_DESC: + _scrollLeft = scrollWidth - clientWidth - scrollLeft; + break; + } + states.value = { + ..._states, + isScrolling: true, + scrollLeft: _scrollLeft, + scrollTop: Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight)), + updateRequested: true, + xAxisScrollDir: getScrollDir(_states.scrollLeft, _scrollLeft), + yAxisScrollDir: getScrollDir(_states.scrollTop, scrollTop) + }; + (0, vue.nextTick)(() => resetIsScrolling()); + onUpdated(); + emitEvents(); + }; + const onVerticalScroll = (distance, totalSteps) => { + const height = (0, vue.unref)(parsedHeight); + const offset = (estimatedTotalHeight.value - height) / totalSteps * distance; + scrollTo({ scrollTop: Math.min(estimatedTotalHeight.value - height, offset) }); + }; + const onHorizontalScroll = (distance, totalSteps) => { + const width = (0, vue.unref)(parsedWidth); + const offset = (estimatedTotalWidth.value - width) / totalSteps * distance; + scrollTo({ scrollLeft: Math.min(estimatedTotalWidth.value - width, offset) }); + }; + const { onWheel } = useGridWheel({ + atXStartEdge: (0, vue.computed)(() => states.value.scrollLeft <= 0), + atXEndEdge: (0, vue.computed)(() => states.value.scrollLeft >= estimatedTotalWidth.value - (0, vue.unref)(parsedWidth)), + atYStartEdge: (0, vue.computed)(() => states.value.scrollTop <= 0), + atYEndEdge: (0, vue.computed)(() => states.value.scrollTop >= estimatedTotalHeight.value - (0, vue.unref)(parsedHeight)) + }, (x, y) => { + hScrollbar.value?.onMouseUp?.(); + vScrollbar.value?.onMouseUp?.(); + const width = (0, vue.unref)(parsedWidth); + const height = (0, vue.unref)(parsedHeight); + scrollTo({ + scrollLeft: Math.min(states.value.scrollLeft + x, estimatedTotalWidth.value - width), + scrollTop: Math.min(states.value.scrollTop + y, estimatedTotalHeight.value - height) + }); + }); + useEventListener(windowRef, "wheel", onWheel, { passive: false }); + const scrollTo = ({ scrollLeft = states.value.scrollLeft, scrollTop = states.value.scrollTop }) => { + scrollLeft = Math.max(scrollLeft, 0); + scrollTop = Math.max(scrollTop, 0); + const _states = (0, vue.unref)(states); + if (scrollTop === _states.scrollTop && scrollLeft === _states.scrollLeft) return; + states.value = { + ..._states, + xAxisScrollDir: getScrollDir(_states.scrollLeft, scrollLeft), + yAxisScrollDir: getScrollDir(_states.scrollTop, scrollTop), + scrollLeft, + scrollTop, + updateRequested: true + }; + (0, vue.nextTick)(() => resetIsScrolling()); + onUpdated(); + emitEvents(); + }; + const { touchStartX, touchStartY, handleTouchStart, handleTouchMove } = useGridTouch(windowRef, states, scrollTo, estimatedTotalWidth, estimatedTotalHeight, parsedWidth, parsedHeight); + const scrollToItem = (rowIndex = 0, columnIdx = 0, alignment = AUTO_ALIGNMENT) => { + const _states = (0, vue.unref)(states); + columnIdx = Math.max(0, Math.min(columnIdx, props.totalColumn - 1)); + rowIndex = Math.max(0, Math.min(rowIndex, props.totalRow - 1)); + const scrollBarWidth = getScrollBarWidth(ns.namespace.value); + const _cache = (0, vue.unref)(cache); + const estimatedHeight = getEstimatedTotalHeight(props, _cache); + const estimatedWidth = getEstimatedTotalWidth(props, _cache); + scrollTo({ + scrollLeft: getColumnOffset(props, columnIdx, alignment, _states.scrollLeft, _cache, estimatedWidth > props.width ? scrollBarWidth : 0), + scrollTop: getRowOffset(props, rowIndex, alignment, _states.scrollTop, _cache, estimatedHeight > props.height ? scrollBarWidth : 0) + }); + }; + const getItemStyle = (rowIndex, columnIndex) => { + const { columnWidth, direction, rowHeight } = props; + const itemStyleCache = getItemStyleCache.value(clearCache && columnWidth, clearCache && rowHeight, clearCache && direction); + const key = `${rowIndex},${columnIndex}`; + if (hasOwn(itemStyleCache, key)) return itemStyleCache[key]; + else { + const [, left] = getColumnPosition(props, columnIndex, (0, vue.unref)(cache)); + const _cache = (0, vue.unref)(cache); + const rtl = isRTL(direction); + const [height, top] = getRowPosition(props, rowIndex, _cache); + const [width] = getColumnPosition(props, columnIndex, _cache); + itemStyleCache[key] = { + position: "absolute", + left: rtl ? void 0 : `${left}px`, + right: rtl ? `${left}px` : void 0, + top: `${top}px`, + height: `${height}px`, + width: `${width}px` + }; + return itemStyleCache[key]; + } + }; + const resetIsScrolling = () => { + states.value.isScrolling = false; + (0, vue.nextTick)(() => { + getItemStyleCache.value(-1, null, null); + }); + }; + (0, vue.onMounted)(() => { + if (!isClient) return; + const { initScrollLeft, initScrollTop } = props; + const windowElement = (0, vue.unref)(windowRef); + if (windowElement) { + if (isNumber(initScrollLeft)) windowElement.scrollLeft = initScrollLeft; + if (isNumber(initScrollTop)) windowElement.scrollTop = initScrollTop; + } + emitEvents(); + }); + const onUpdated = () => { + const { direction } = props; + const { scrollLeft, scrollTop, updateRequested } = (0, vue.unref)(states); + const windowElement = (0, vue.unref)(windowRef); + if (updateRequested && windowElement) { + if (direction === RTL) switch (getRTLOffsetType()) { + case RTL_OFFSET_NAG: + windowElement.scrollLeft = -scrollLeft; + break; + case RTL_OFFSET_POS_ASC: + windowElement.scrollLeft = scrollLeft; + break; + default: { + const { clientWidth, scrollWidth } = windowElement; + windowElement.scrollLeft = scrollWidth - clientWidth - scrollLeft; + break; + } + } + else windowElement.scrollLeft = Math.max(0, scrollLeft); + windowElement.scrollTop = Math.max(0, scrollTop); + } + }; + const { resetAfterColumnIndex, resetAfterRowIndex, resetAfter } = instance.proxy; + expose({ + windowRef, + innerRef, + getItemStyleCache, + touchStartX, + touchStartY, + handleTouchStart, + handleTouchMove, + scrollTo, + scrollToItem, + states, + resetAfterColumnIndex, + resetAfterRowIndex, + resetAfter + }); + const renderScrollbars = () => { + const { scrollbarAlwaysOn, scrollbarStartGap, scrollbarEndGap, totalColumn, totalRow } = props; + const width = (0, vue.unref)(parsedWidth); + const height = (0, vue.unref)(parsedHeight); + const estimatedWidth = (0, vue.unref)(estimatedTotalWidth); + const estimatedHeight = (0, vue.unref)(estimatedTotalHeight); + const { scrollLeft, scrollTop } = (0, vue.unref)(states); + return { + horizontalScrollbar: (0, vue.h)(ScrollBar, { + ref: hScrollbar, + alwaysOn: scrollbarAlwaysOn, + startGap: scrollbarStartGap, + endGap: scrollbarEndGap, + class: ns.e("horizontal"), + clientSize: width, + layout: "horizontal", + onScroll: onHorizontalScroll, + ratio: width * 100 / estimatedWidth, + scrollFrom: scrollLeft / (estimatedWidth - width), + total: totalRow, + visible: true + }), + verticalScrollbar: (0, vue.h)(ScrollBar, { + ref: vScrollbar, + alwaysOn: scrollbarAlwaysOn, + startGap: scrollbarStartGap, + endGap: scrollbarEndGap, + class: ns.e("vertical"), + clientSize: height, + layout: "vertical", + onScroll: onVerticalScroll, + ratio: height * 100 / estimatedHeight, + scrollFrom: scrollTop / (estimatedHeight - height), + total: totalColumn, + visible: true + }) + }; + }; + const renderItems = () => { + const [columnStart, columnEnd] = (0, vue.unref)(columnsToRender); + const [rowStart, rowEnd] = (0, vue.unref)(rowsToRender); + const { data, totalColumn, totalRow, useIsScrolling, itemKey } = props; + const children = []; + if (totalRow > 0 && totalColumn > 0) for (let row = rowStart; row <= rowEnd; row++) for (let column = columnStart; column <= columnEnd; column++) { + const key = itemKey({ + columnIndex: column, + data, + rowIndex: row + }); + children.push((0, vue.h)(vue.Fragment, { key }, slots.default?.({ + columnIndex: column, + data, + isScrolling: useIsScrolling ? (0, vue.unref)(states).isScrolling : void 0, + style: getItemStyle(row, column), + rowIndex: row + }))); + } + return children; + }; + const renderInner = () => { + const Inner = (0, vue.resolveDynamicComponent)(props.innerElement); + const children = renderItems(); + return [(0, vue.h)(Inner, (0, vue.mergeProps)(props.innerProps, { + style: (0, vue.unref)(innerStyle), + ref: innerRef + }), !isString(Inner) ? { default: () => children } : children)]; + }; + const renderWindow = () => { + const Container = (0, vue.resolveDynamicComponent)(props.containerElement); + const { horizontalScrollbar, verticalScrollbar } = renderScrollbars(); + const Inner = renderInner(); + return (0, vue.h)("div", { + key: 0, + class: ns.e("wrapper"), + role: props.role + }, [ + (0, vue.h)(Container, { + class: props.className, + style: (0, vue.unref)(windowStyle), + onScroll, + ref: windowRef + }, !isString(Container) ? { default: () => Inner } : Inner), + horizontalScrollbar, + verticalScrollbar + ]); + }; + return renderWindow; + } + }); + }; + +//#endregion +//#region ../../packages/components/virtual-list/src/components/fixed-size-grid.ts + const FixedSizeGrid = createGrid({ + name: "ElFixedSizeGrid", + getColumnPosition: ({ columnWidth }, index) => [columnWidth, index * columnWidth], + getRowPosition: ({ rowHeight }, index) => [rowHeight, index * rowHeight], + getEstimatedTotalHeight: ({ totalRow, rowHeight }) => rowHeight * totalRow, + getEstimatedTotalWidth: ({ totalColumn, columnWidth }) => columnWidth * totalColumn, + getColumnOffset: ({ totalColumn, columnWidth, width }, columnIndex, alignment, scrollLeft, _, scrollBarWidth) => { + width = Number(width); + const lastColumnOffset = Math.max(0, totalColumn * columnWidth - width); + const maxOffset = Math.min(lastColumnOffset, columnIndex * columnWidth); + const minOffset = Math.max(0, columnIndex * columnWidth - width + scrollBarWidth + columnWidth); + if (alignment === "smart") if (scrollLeft >= minOffset - width && scrollLeft <= maxOffset + width) alignment = AUTO_ALIGNMENT; + else alignment = CENTERED_ALIGNMENT; + switch (alignment) { + case START_ALIGNMENT: return maxOffset; + case END_ALIGNMENT: return minOffset; + case CENTERED_ALIGNMENT: { + const middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2); + if (middleOffset < Math.ceil(width / 2)) return 0; + else if (middleOffset > lastColumnOffset + Math.floor(width / 2)) return lastColumnOffset; + else return middleOffset; + } + case AUTO_ALIGNMENT: + default: if (scrollLeft >= minOffset && scrollLeft <= maxOffset) return scrollLeft; + else if (minOffset > maxOffset) return minOffset; + else if (scrollLeft < minOffset) return minOffset; + else return maxOffset; + } + }, + getRowOffset: ({ rowHeight, height, totalRow }, rowIndex, align, scrollTop, _, scrollBarWidth) => { + height = Number(height); + const lastRowOffset = Math.max(0, totalRow * rowHeight - height); + const maxOffset = Math.min(lastRowOffset, rowIndex * rowHeight); + const minOffset = Math.max(0, rowIndex * rowHeight - height + scrollBarWidth + rowHeight); + if (align === SMART_ALIGNMENT) if (scrollTop >= minOffset - height && scrollTop <= maxOffset + height) align = AUTO_ALIGNMENT; + else align = CENTERED_ALIGNMENT; + switch (align) { + case START_ALIGNMENT: return maxOffset; + case END_ALIGNMENT: return minOffset; + case CENTERED_ALIGNMENT: { + const middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2); + if (middleOffset < Math.ceil(height / 2)) return 0; + else if (middleOffset > lastRowOffset + Math.floor(height / 2)) return lastRowOffset; + else return middleOffset; + } + case AUTO_ALIGNMENT: + default: if (scrollTop >= minOffset && scrollTop <= maxOffset) return scrollTop; + else if (minOffset > maxOffset) return minOffset; + else if (scrollTop < minOffset) return minOffset; + else return maxOffset; + } + }, + getColumnStartIndexForOffset: ({ columnWidth, totalColumn }, scrollLeft) => Math.max(0, Math.min(totalColumn - 1, Math.floor(scrollLeft / columnWidth))), + getColumnStopIndexForStartIndex: ({ columnWidth, totalColumn, width }, startIndex, scrollLeft) => { + const left = startIndex * columnWidth; + const visibleColumnsCount = Math.ceil((width + scrollLeft - left) / columnWidth); + return Math.max(0, Math.min(totalColumn - 1, startIndex + visibleColumnsCount - 1)); + }, + getRowStartIndexForOffset: ({ rowHeight, totalRow }, scrollTop) => Math.max(0, Math.min(totalRow - 1, Math.floor(scrollTop / rowHeight))), + getRowStopIndexForStartIndex: ({ rowHeight, totalRow, height }, startIndex, scrollTop) => { + const top = startIndex * rowHeight; + const numVisibleRows = Math.ceil((height + scrollTop - top) / rowHeight); + return Math.max(0, Math.min(totalRow - 1, startIndex + numVisibleRows - 1)); + }, + initCache: () => void 0, + clearCache: true, + validateProps: ({ columnWidth, rowHeight }) => {} + }); + +//#endregion +//#region ../../packages/components/virtual-list/src/components/dynamic-size-grid.ts + const { max, min, floor } = Math; + const ACCESS_SIZER_KEY_MAP = { + column: "columnWidth", + row: "rowHeight" + }; + const ACCESS_LAST_VISITED_KEY_MAP = { + column: "lastVisitedColumnIndex", + row: "lastVisitedRowIndex" + }; + const getItemFromCache = (props, index, gridCache, type) => { + const [cachedItems, sizer, lastVisited] = [ + gridCache[type], + props[ACCESS_SIZER_KEY_MAP[type]], + gridCache[ACCESS_LAST_VISITED_KEY_MAP[type]] + ]; + if (index > lastVisited) { + let offset = 0; + if (lastVisited >= 0) { + const item = cachedItems[lastVisited]; + offset = item.offset + item.size; + } + for (let i = lastVisited + 1; i <= index; i++) { + const size = sizer(i); + cachedItems[i] = { + offset, + size + }; + offset += size; + } + gridCache[ACCESS_LAST_VISITED_KEY_MAP[type]] = index; + } + return cachedItems[index]; + }; + const bs = (props, gridCache, low, high, offset, type) => { + while (low <= high) { + const mid = low + floor((high - low) / 2); + const currentOffset = getItemFromCache(props, mid, gridCache, type).offset; + if (currentOffset === offset) return mid; + else if (currentOffset < offset) low = mid + 1; + else high = mid - 1; + } + return max(0, low - 1); + }; + const es = (props, gridCache, idx, offset, type) => { + const total = type === "column" ? props.totalColumn : props.totalRow; + let exponent = 1; + while (idx < total && getItemFromCache(props, idx, gridCache, type).offset < offset) { + idx += exponent; + exponent *= 2; + } + return bs(props, gridCache, floor(idx / 2), min(idx, total - 1), offset, type); + }; + const findItem = (props, gridCache, offset, type) => { + const [cache, lastVisitedIndex] = [gridCache[type], gridCache[ACCESS_LAST_VISITED_KEY_MAP[type]]]; + if ((lastVisitedIndex > 0 ? cache[lastVisitedIndex].offset : 0) >= offset) return bs(props, gridCache, 0, lastVisitedIndex, offset, type); + return es(props, gridCache, max(0, lastVisitedIndex), offset, type); + }; + const getEstimatedTotalHeight = ({ totalRow }, { estimatedRowHeight, lastVisitedRowIndex, row }) => { + let sizeOfVisitedRows = 0; + if (lastVisitedRowIndex >= totalRow) lastVisitedRowIndex = totalRow - 1; + if (lastVisitedRowIndex >= 0) { + const item = row[lastVisitedRowIndex]; + sizeOfVisitedRows = item.offset + item.size; + } + const sizeOfUnvisitedItems = (totalRow - lastVisitedRowIndex - 1) * estimatedRowHeight; + return sizeOfVisitedRows + sizeOfUnvisitedItems; + }; + const getEstimatedTotalWidth = ({ totalColumn }, { column, estimatedColumnWidth, lastVisitedColumnIndex }) => { + let sizeOfVisitedColumns = 0; + if (lastVisitedColumnIndex > totalColumn) lastVisitedColumnIndex = totalColumn - 1; + if (lastVisitedColumnIndex >= 0) { + const item = column[lastVisitedColumnIndex]; + sizeOfVisitedColumns = item.offset + item.size; + } + const sizeOfUnvisitedItems = (totalColumn - lastVisitedColumnIndex - 1) * estimatedColumnWidth; + return sizeOfVisitedColumns + sizeOfUnvisitedItems; + }; + const ACCESS_ESTIMATED_SIZE_KEY_MAP = { + column: getEstimatedTotalWidth, + row: getEstimatedTotalHeight + }; + const getOffset$1 = (props, index, alignment, scrollOffset, cache, type, scrollBarWidth) => { + const [size, estimatedSizeAssociates] = [type === "row" ? props.height : props.width, ACCESS_ESTIMATED_SIZE_KEY_MAP[type]]; + const item = getItemFromCache(props, index, cache, type); + const maxOffset = max(0, min(estimatedSizeAssociates(props, cache) - size, item.offset)); + const minOffset = max(0, item.offset - size + scrollBarWidth + item.size); + if (alignment === SMART_ALIGNMENT) if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) alignment = AUTO_ALIGNMENT; + else alignment = CENTERED_ALIGNMENT; + switch (alignment) { + case START_ALIGNMENT: return maxOffset; + case END_ALIGNMENT: return minOffset; + case CENTERED_ALIGNMENT: return Math.round(minOffset + (maxOffset - minOffset) / 2); + case AUTO_ALIGNMENT: + default: if (scrollOffset >= minOffset && scrollOffset <= maxOffset) return scrollOffset; + else if (minOffset > maxOffset) return minOffset; + else if (scrollOffset < minOffset) return minOffset; + else return maxOffset; + } + }; + const DynamicSizeGrid = createGrid({ + name: "ElDynamicSizeGrid", + getColumnPosition: (props, idx, cache) => { + const item = getItemFromCache(props, idx, cache, "column"); + return [item.size, item.offset]; + }, + getRowPosition: (props, idx, cache) => { + const item = getItemFromCache(props, idx, cache, "row"); + return [item.size, item.offset]; + }, + getColumnOffset: (props, columnIndex, alignment, scrollLeft, cache, scrollBarWidth) => getOffset$1(props, columnIndex, alignment, scrollLeft, cache, "column", scrollBarWidth), + getRowOffset: (props, rowIndex, alignment, scrollTop, cache, scrollBarWidth) => getOffset$1(props, rowIndex, alignment, scrollTop, cache, "row", scrollBarWidth), + getColumnStartIndexForOffset: (props, scrollLeft, cache) => findItem(props, cache, scrollLeft, "column"), + getColumnStopIndexForStartIndex: (props, startIndex, scrollLeft, cache) => { + const item = getItemFromCache(props, startIndex, cache, "column"); + const maxOffset = scrollLeft + props.width; + let offset = item.offset + item.size; + let stopIndex = startIndex; + while (stopIndex < props.totalColumn - 1 && offset < maxOffset) { + stopIndex++; + offset += getItemFromCache(props, startIndex, cache, "column").size; + } + return stopIndex; + }, + getEstimatedTotalHeight, + getEstimatedTotalWidth, + getRowStartIndexForOffset: (props, scrollTop, cache) => findItem(props, cache, scrollTop, "row"), + getRowStopIndexForStartIndex: (props, startIndex, scrollTop, cache) => { + const { totalRow, height } = props; + const item = getItemFromCache(props, startIndex, cache, "row"); + const maxOffset = scrollTop + height; + let offset = item.size + item.offset; + let stopIndex = startIndex; + while (stopIndex < totalRow - 1 && offset < maxOffset) { + stopIndex++; + offset += getItemFromCache(props, stopIndex, cache, "row").size; + } + return stopIndex; + }, + injectToInstance: (instance, cache) => { + const resetAfter = ({ columnIndex, rowIndex }, forceUpdate) => { + forceUpdate = isUndefined(forceUpdate) ? true : forceUpdate; + if (isNumber(columnIndex)) cache.value.lastVisitedColumnIndex = Math.min(cache.value.lastVisitedColumnIndex, columnIndex - 1); + if (isNumber(rowIndex)) cache.value.lastVisitedRowIndex = Math.min(cache.value.lastVisitedRowIndex, rowIndex - 1); + instance.exposed?.getItemStyleCache.value(-1, null, null); + if (forceUpdate) instance.proxy?.$forceUpdate(); + }; + const resetAfterColumnIndex = (columnIndex, forceUpdate) => { + resetAfter({ columnIndex }, forceUpdate); + }; + const resetAfterRowIndex = (rowIndex, forceUpdate) => { + resetAfter({ rowIndex }, forceUpdate); + }; + Object.assign(instance.proxy, { + resetAfterColumnIndex, + resetAfterRowIndex, + resetAfter + }); + }, + initCache: ({ estimatedColumnWidth = DEFAULT_DYNAMIC_LIST_ITEM_SIZE, estimatedRowHeight = DEFAULT_DYNAMIC_LIST_ITEM_SIZE }) => { + return { + column: {}, + estimatedColumnWidth, + estimatedRowHeight, + lastVisitedColumnIndex: -1, + lastVisitedRowIndex: -1, + row: {} + }; + }, + clearCache: false, + validateProps: ({ columnWidth, rowHeight }) => {} + }); + +//#endregion +//#region ../../packages/components/select-v2/src/group-item.vue?vue&type=script&lang.ts + var group_item_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + props: { + item: { + type: Object, + required: true + }, + style: { type: Object }, + height: Number + }, + setup() { + return { ns: useNamespace("select") }; + } + }); + +//#endregion +//#region ../../packages/components/select-v2/src/group-item.vue + function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)(_ctx.ns.be("group", "title")), + style: (0, vue.normalizeStyle)({ + ..._ctx.style, + lineHeight: `${_ctx.height}px` + }) + }, (0, vue.toDisplayString)(_ctx.item.label), 7); + } + var group_item_default = /* @__PURE__ */ _plugin_vue_export_helper_default(group_item_vue_vue_type_script_lang_default, [["render", _sfc_render$7]]); + +//#endregion +//#region ../../packages/components/select-v2/src/useOption.ts + function useOption(props, { emit }) { + return { + hoverItem: () => { + if (!props.disabled) emit("hover", props.index); + }, + selectOptionClick: () => { + if (!props.disabled) emit("select", props.item, props.index); + } + }; + } + +//#endregion +//#region ../../packages/components/select-v2/src/defaults.ts + const selectV2Props = buildProps({ + allowCreate: Boolean, + autocomplete: { + type: definePropType(String), + default: "none" + }, + automaticDropdown: Boolean, + clearable: Boolean, + clearIcon: { + type: iconPropType, + default: circle_close_default + }, + effect: { + type: definePropType(String), + default: "light" + }, + collapseTags: Boolean, + collapseTagsTooltip: Boolean, + tagTooltip: { + type: definePropType(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: definePropType(Function) }, + height: { + type: Number, + default: 274 + }, + itemHeight: { + type: Number, + default: 34 + }, + id: String, + loading: Boolean, + loadingText: String, + modelValue: { + type: definePropType([ + Array, + String, + Number, + Boolean, + Object + ]), + default: void 0 + }, + multiple: Boolean, + multipleLimit: { + type: Number, + default: 0 + }, + name: String, + noDataText: String, + noMatchText: String, + remoteMethod: { type: definePropType(Function) }, + reserveKeyword: { + type: Boolean, + default: true + }, + options: { + type: definePropType(Array), + required: true + }, + placeholder: { type: String }, + teleported: useTooltipContentProps.teleported, + persistent: { + type: Boolean, + default: true + }, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + remote: Boolean, + debounce: { + type: Number, + default: 300 + }, + size: useSizeProp, + props: { + type: definePropType(Object), + default: () => defaultProps$2 + }, + valueKey: { + type: String, + default: "value" + }, + scrollbarAlwaysOn: Boolean, + validateEvent: { + type: Boolean, + default: true + }, + offset: { + type: Number, + default: 12 + }, + remoteShowSuffix: Boolean, + showArrow: { + type: Boolean, + default: true + }, + placement: { + type: definePropType(String), + values: Ee, + default: "bottom-start" + }, + fallbackPlacements: { + type: definePropType(Array), + default: [ + "bottom-start", + "top-start", + "right", + "left" + ] + }, + tagType: { + ...tagProps.type, + default: "info" + }, + tagEffect: { + ...tagProps.effect, + default: "light" + }, + tabindex: { + type: [String, Number], + default: 0 + }, + appendTo: useTooltipContentProps.appendTo, + fitInputWidth: { + type: [Boolean, Number], + default: true, + validator(val) { + return isBoolean(val) || isNumber(val); + } + }, + suffixIcon: { + type: iconPropType, + default: arrow_down_default + }, + ...useEmptyValuesProps, + ...useAriaProps(["ariaLabel"]) + }); + const optionV2Props = buildProps({ + data: Array, + disabled: Boolean, + hovering: Boolean, + item: { + type: definePropType(Object), + required: true + }, + index: Number, + style: Object, + selected: Boolean, + created: Boolean + }); + const selectV2Emits = { + [UPDATE_MODEL_EVENT]: (val) => true, + [CHANGE_EVENT]: (val) => true, + "remove-tag": (val) => true, + "visible-change": (visible) => true, + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent, + clear: () => true + }; + const optionV2Emits = { + hover: (index) => isNumber(index), + select: (val, index) => true + }; + +//#endregion +//#region ../../packages/components/select-v2/src/token.ts + const selectV2InjectionKey = Symbol("ElSelectV2Injection"); + +//#endregion +//#region ../../packages/components/select-v2/src/option-item.vue?vue&type=script&lang.ts + var option_item_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + props: optionV2Props, + emits: optionV2Emits, + setup(props, { emit }) { + const select = (0, vue.inject)(selectV2InjectionKey); + const ns = useNamespace("select"); + const { hoverItem, selectOptionClick } = useOption(props, { emit }); + const { getLabel } = useProps(select.props); + const contentId = select.contentId; + const handleMousedown = (event) => { + let target = event.target; + const currentTarget = event.currentTarget; + while (target && target !== currentTarget) { + if (isFocusable(target)) return; + target = target.parentElement; + } + event.preventDefault(); + }; + return { + ns, + contentId, + hoverItem, + handleMousedown, + selectOptionClick, + getLabel + }; + } + }); + +//#endregion +//#region ../../packages/components/select-v2/src/option-item.vue + const _hoisted_1$22 = [ + "id", + "aria-selected", + "aria-disabled" + ]; + function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + id: `${_ctx.contentId}-${_ctx.index}`, + role: "option", + "aria-selected": _ctx.selected, + "aria-disabled": _ctx.disabled || void 0, + style: (0, vue.normalizeStyle)(_ctx.style), + class: (0, vue.normalizeClass)([ + _ctx.ns.be("dropdown", "item"), + _ctx.ns.is("selected", _ctx.selected), + _ctx.ns.is("disabled", _ctx.disabled), + _ctx.ns.is("created", _ctx.created), + _ctx.ns.is("hovering", _ctx.hovering) + ]), + onMousemove: _cache[0] || (_cache[0] = (...args) => _ctx.hoverItem && _ctx.hoverItem(...args)), + onMousedown: _cache[1] || (_cache[1] = (...args) => _ctx.handleMousedown && _ctx.handleMousedown(...args)), + onClick: _cache[2] || (_cache[2] = (0, vue.withModifiers)((...args) => _ctx.selectOptionClick && _ctx.selectOptionClick(...args), ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", { + item: _ctx.item, + index: _ctx.index, + disabled: _ctx.disabled + }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.getLabel(_ctx.item)), 1)])], 46, _hoisted_1$22); + } + var option_item_default = /* @__PURE__ */ _plugin_vue_export_helper_default(option_item_vue_vue_type_script_lang_default, [["render", _sfc_render$6]]); + +//#endregion +//#region ../../packages/components/select-v2/src/select-dropdown.tsx + const props = { + loading: Boolean, + data: { + type: Array, + required: true + }, + hoveringIndex: Number, + width: Number, + id: String, + ariaLabel: String + }; + var select_dropdown_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSelectDropdown", + props, + setup(props, { slots, expose }) { + const select = (0, vue.inject)(selectV2InjectionKey); + const ns = useNamespace("select"); + const { getLabel, getValue, getDisabled } = useProps(select.props); + const cachedHeights = (0, vue.ref)([]); + const listRef = (0, vue.ref)(); + const size = (0, vue.computed)(() => props.data.length); + (0, vue.watch)(() => size.value, () => { + select.tooltipRef.value?.updatePopper?.(); + }); + const isSized = (0, vue.computed)(() => isUndefined(select.props.estimatedOptionHeight)); + const listProps = (0, vue.computed)(() => { + if (isSized.value) return { itemSize: select.props.itemHeight }; + return { + estimatedSize: select.props.estimatedOptionHeight, + itemSize: (idx) => cachedHeights.value[idx] + }; + }); + const contains = (arr = [], target) => { + const { props: { valueKey } } = select; + if (!isObject$1(target)) return arr.includes(target); + return arr && arr.some((item) => { + return (0, vue.toRaw)(get(item, valueKey)) === get(target, valueKey); + }); + }; + const isEqual = (selected, target) => { + if (!isObject$1(target)) return selected === target; + else { + const { valueKey } = select.props; + return get(selected, valueKey) === get(target, valueKey); + } + }; + const isItemSelected = (modelValue, target) => { + if (select.props.multiple) return contains(modelValue, getValue(target)); + return isEqual(modelValue, getValue(target)); + }; + const isItemDisabled = (modelValue, selected) => { + const { disabled, multiple, multipleLimit } = select.props; + return disabled || !selected && (multiple ? multipleLimit > 0 && modelValue.length >= multipleLimit : false); + }; + const isItemHovering = (target) => props.hoveringIndex === target; + const scrollToItem = (index) => { + const list = listRef.value; + if (list) list.scrollToItem(index); + }; + const resetScrollTop = () => { + const list = listRef.value; + if (list) list.resetScrollTop(); + }; + expose({ + listRef, + isSized, + isItemDisabled, + isItemHovering, + isItemSelected, + scrollToItem, + resetScrollTop + }); + const Item = (itemProps) => { + const { index, data, style } = itemProps; + const sized = (0, vue.unref)(isSized); + const { itemSize, estimatedSize } = (0, vue.unref)(listProps); + const { modelValue } = select.props; + const { onSelect, onHover } = select; + const item = data[index]; + if (item.type === "Group") return (0, vue.createVNode)(group_item_default, { + "item": item, + "style": style, + "height": sized ? itemSize : estimatedSize + }, null); + const isSelected = isItemSelected(modelValue, item); + const isDisabled = isItemDisabled(modelValue, isSelected); + const isHovering = isItemHovering(index); + return (0, vue.createVNode)(option_item_default, (0, vue.mergeProps)(itemProps, { + "selected": isSelected, + "disabled": getDisabled(item) || isDisabled, + "created": !!item.created, + "hovering": isHovering, + "item": item, + "onSelect": onSelect, + "onHover": onHover + }), { default: (props) => slots.default?.(props) || (0, vue.createVNode)("span", null, [getLabel(item)]) }); + }; + const { onKeyboardNavigate, onKeyboardSelect } = select; + const onForward = () => { + onKeyboardNavigate("forward"); + }; + const onBackward = () => { + onKeyboardNavigate("backward"); + }; + const onEscOrTab = () => {}; + const onKeydown = (e) => { + const code = getEventCode(e); + const { tab, esc, down, up, enter, numpadEnter } = EVENT_CODE; + if ([ + esc, + down, + up, + enter, + numpadEnter + ].includes(code)) { + e.preventDefault(); + e.stopPropagation(); + } + switch (code) { + case tab: + case esc: + onEscOrTab(); + break; + case down: + onForward(); + break; + case up: + onBackward(); + break; + case enter: + case numpadEnter: + onKeyboardSelect(); + break; + } + }; + return () => { + const { data, width } = props; + const { height, multiple, scrollbarAlwaysOn } = select.props; + const isScrollbarAlwaysOn = (0, vue.computed)(() => { + return isIOS ? true : scrollbarAlwaysOn; + }); + const List = (0, vue.unref)(isSized) ? FixedSizeList : DynamicSizeList; + return (0, vue.createVNode)("div", { + "class": [ns.b("dropdown"), ns.is("multiple", multiple)], + "style": { width: `${width}px` } + }, [ + slots.header?.(), + slots.loading?.() || slots.empty?.() || (0, vue.createVNode)(List, (0, vue.mergeProps)({ "ref": listRef }, (0, vue.unref)(listProps), { + "className": ns.be("dropdown", "list"), + "scrollbarAlwaysOn": isScrollbarAlwaysOn.value, + "data": data, + "height": height, + "width": width, + "total": data.length, + "innerElement": "ul", + "innerProps": { + id: props.id, + role: "listbox", + "aria-label": props.ariaLabel, + "aria-orientation": "vertical" + }, + "onKeydown": onKeydown + }), { default: (props) => (0, vue.createVNode)(Item, props, null) }), + slots.footer?.() + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/select-v2/src/useAllowCreate.ts + function useAllowCreate(props, states) { + const { aliasProps, getLabel, getValue } = useProps(props); + const createOptionCount = (0, vue.ref)(0); + const cachedSelectedOption = (0, vue.ref)(); + const enableAllowCreateMode = (0, vue.computed)(() => { + return props.allowCreate && props.filterable; + }); + (0, vue.watch)(() => props.options, (options) => { + const optionLabelsSet = new Set(options.map((option) => getLabel(option))); + states.createdOptions = states.createdOptions.filter((createdOption) => !optionLabelsSet.has(getLabel(createdOption))); + }); + function hasExistingOption(query) { + const hasOption = (option) => getLabel(option) === query; + return props.options && props.options.some(hasOption) || states.createdOptions.some(hasOption); + } + function selectNewOption(option) { + if (!enableAllowCreateMode.value) return; + if (props.multiple && option.created) createOptionCount.value++; + else cachedSelectedOption.value = option; + } + function createNewOption(query) { + if (enableAllowCreateMode.value) if (query && query.length > 0) { + if (hasExistingOption(query)) { + states.createdOptions = states.createdOptions.filter((createdOption) => getLabel(createdOption) !== states.previousQuery); + return; + } + const newOption = { + [aliasProps.value.value]: query, + [aliasProps.value.label]: query, + created: true, + [aliasProps.value.disabled]: false + }; + if (states.createdOptions.length >= createOptionCount.value) states.createdOptions[createOptionCount.value] = newOption; + else states.createdOptions.push(newOption); + } else if (props.multiple) states.createdOptions.length = createOptionCount.value; + else { + const selectedOption = cachedSelectedOption.value; + states.createdOptions.length = 0; + if (selectedOption && selectedOption.created) states.createdOptions.push(selectedOption); + } + } + function removeNewOption(option) { + if (!enableAllowCreateMode.value || !option || !option.created || option.created && props.reserveKeyword && states.inputValue === getLabel(option)) return; + const idx = states.createdOptions.findIndex((it) => getValue(it) === getValue(option)); + if (~idx) { + states.createdOptions.splice(idx, 1); + createOptionCount.value--; + } + } + function clearAllNewOption() { + if (enableAllowCreateMode.value) { + states.createdOptions.length = 0; + createOptionCount.value = 0; + } + } + return { + createNewOption, + removeNewOption, + selectNewOption, + clearAllNewOption + }; + } + +//#endregion +//#region ../../packages/components/select-v2/src/useSelect.ts + const useSelect$1 = (props, emit) => { + const { t } = useLocale(); + const slots = (0, vue.useSlots)(); + const nsSelect = useNamespace("select"); + const nsInput = useNamespace("input"); + const { form: elForm, formItem: elFormItem } = useFormItem(); + const { inputId } = useFormItemInputId(props, { formItemContext: elFormItem }); + const { aliasProps, getLabel, getValue, getDisabled, getOptions } = useProps(props); + const { valueOnClear, isEmptyValue } = useEmptyValues(props); + const states = (0, vue.reactive)({ + inputValue: "", + cachedOptions: [], + createdOptions: [], + hoveringIndex: -1, + inputHovering: false, + selectionWidth: 0, + collapseItemWidth: 0, + previousQuery: null, + previousValue: void 0, + selectedLabel: "", + menuVisibleOnFocus: false, + isBeforeHide: false + }); + const popperSize = (0, vue.ref)(-1); + const debouncing = (0, vue.ref)(false); + const selectRef = (0, vue.ref)(); + const selectionRef = (0, vue.ref)(); + const tooltipRef = (0, vue.ref)(); + const tagTooltipRef = (0, vue.ref)(); + const inputRef = (0, vue.ref)(); + const prefixRef = (0, vue.ref)(); + const suffixRef = (0, vue.ref)(); + const menuRef = (0, vue.ref)(); + const tagMenuRef = (0, vue.ref)(); + const collapseItemRef = (0, vue.ref)(); + const { isComposing, handleCompositionStart, handleCompositionEnd, handleCompositionUpdate } = useComposition({ afterComposition: (e) => onInput(e) }); + const selectDisabled = useFormDisabled(); + const { wrapperRef, isFocused, handleBlur } = useFocusController(inputRef, { + disabled: selectDisabled, + afterFocus() { + if (props.automaticDropdown && !expanded.value) { + expanded.value = true; + states.menuVisibleOnFocus = true; + } + }, + beforeBlur(event) { + return tooltipRef.value?.isFocusInsideContent(event) || tagTooltipRef.value?.isFocusInsideContent(event); + }, + afterBlur() { + expanded.value = false; + states.menuVisibleOnFocus = false; + if (props.validateEvent) elFormItem?.validate?.("blur").catch((err) => /* @__PURE__ */ debugWarn(err)); + } + }); + const allOptions = (0, vue.computed)(() => filterOptions("")); + const hasOptions = (0, vue.computed)(() => { + if (props.loading) return false; + return props.options.length > 0 || states.createdOptions.length > 0; + }); + const filteredOptions = (0, vue.ref)([]); + const expanded = (0, vue.ref)(false); + const needStatusIcon = (0, vue.computed)(() => elForm?.statusIcon ?? false); + const popupHeight = (0, vue.computed)(() => { + const totalHeight = filteredOptions.value.length * props.itemHeight; + return totalHeight > props.height ? props.height : totalHeight; + }); + const hasModelValue = (0, vue.computed)(() => { + return props.multiple ? isArray$1(props.modelValue) && props.modelValue.length > 0 : !isEmptyValue(props.modelValue); + }); + const showClearBtn = (0, vue.computed)(() => { + return props.clearable && !selectDisabled.value && hasModelValue.value && (isFocused.value || states.inputHovering); + }); + const iconComponent = (0, vue.computed)(() => props.remote && props.filterable && !props.remoteShowSuffix ? "" : props.suffixIcon); + const iconReverse = (0, vue.computed)(() => iconComponent.value && nsSelect.is("reverse", expanded.value)); + const validateState = (0, vue.computed)(() => elFormItem?.validateState || ""); + const validateIcon = (0, vue.computed)(() => { + if (!validateState.value) return; + return ValidateComponentsMap[validateState.value]; + }); + const debounce = (0, vue.computed)(() => props.remote ? props.debounce : 0); + const isRemoteSearchEmpty = (0, vue.computed)(() => props.remote && !states.inputValue && !hasOptions.value); + const emptyText = (0, vue.computed)(() => { + if (props.loading) return props.loadingText || t("el.select.loading"); + else { + if (props.filterable && states.inputValue && hasOptions.value && filteredOptions.value.length === 0) return props.noMatchText || t("el.select.noMatch"); + if (!hasOptions.value) return props.noDataText || t("el.select.noData"); + } + return null; + }); + const isFilterMethodValid = (0, vue.computed)(() => props.filterable && isFunction$1(props.filterMethod)); + const isRemoteMethodValid = (0, vue.computed)(() => props.filterable && props.remote && isFunction$1(props.remoteMethod)); + const filterOptions = (query) => { + const regexp = new RegExp(escapeStringRegexp(query), "i"); + const isValidOption = (o) => { + if (isFilterMethodValid.value || isRemoteMethodValid.value) return true; + return query ? regexp.test(getLabel(o) || "") : true; + }; + if (props.loading) return []; + return [...states.createdOptions, ...props.options].reduce((all, item) => { + const options = getOptions(item); + if (isArray$1(options)) { + const filtered = options.filter(isValidOption); + if (filtered.length > 0) all.push({ + label: getLabel(item), + type: "Group" + }, ...filtered); + } else if (props.remote || isValidOption(item)) all.push(item); + return all; + }, []); + }; + const updateOptions = () => { + filteredOptions.value = filterOptions(states.inputValue); + }; + const allOptionsValueMap = (0, vue.computed)(() => { + const valueMap = /* @__PURE__ */ new Map(); + allOptions.value.forEach((option, index) => { + valueMap.set(getValueKey(getValue(option)), { + option, + index + }); + }); + return valueMap; + }); + const filteredOptionsValueMap = (0, vue.computed)(() => { + const valueMap = /* @__PURE__ */ new Map(); + filteredOptions.value.forEach((option, index) => { + valueMap.set(getValueKey(getValue(option)), { + option, + index + }); + }); + return valueMap; + }); + const optionsAllDisabled = (0, vue.computed)(() => filteredOptions.value.every((option) => getDisabled(option))); + const selectSize = useFormSize(); + const collapseTagSize = (0, vue.computed)(() => "small" === selectSize.value ? "small" : "default"); + const calculatePopperSize = () => { + if (isNumber(props.fitInputWidth)) { + popperSize.value = props.fitInputWidth; + return; + } + const width = selectRef.value?.offsetWidth || 200; + if (!props.fitInputWidth && hasOptions.value) (0, vue.nextTick)(() => { + popperSize.value = Math.max(width, calculateLabelMaxWidth()); + }); + else popperSize.value = width; + }; + const calculateLabelMaxWidth = () => { + const ctx = document.createElement("canvas").getContext("2d"); + const selector = nsSelect.be("dropdown", "item"); + const dropdownItemEl = (menuRef.value?.listRef?.innerRef || document).querySelector(`.${selector}`); + if (dropdownItemEl === null || ctx === null) return 0; + const style = getComputedStyle(dropdownItemEl); + const padding = Number.parseFloat(style.paddingLeft) + Number.parseFloat(style.paddingRight); + ctx.font = `bold ${style.font.replace(new RegExp(`\\b${style.fontWeight}\\b`), "")}`; + return filteredOptions.value.reduce((max, option) => { + const metrics = ctx.measureText(getLabel(option)); + return Math.max(metrics.width, max); + }, 0) + padding; + }; + const getGapWidth = () => { + if (!selectionRef.value) return 0; + const style = window.getComputedStyle(selectionRef.value); + return Number.parseFloat(style.gap || "6px"); + }; + const tagStyle = (0, vue.computed)(() => { + const gapWidth = getGapWidth(); + const inputSlotWidth = props.filterable ? gapWidth + MINIMUM_INPUT_WIDTH : 0; + return { maxWidth: `${collapseItemRef.value && props.maxCollapseTags === 1 ? states.selectionWidth - states.collapseItemWidth - gapWidth - inputSlotWidth : states.selectionWidth - inputSlotWidth}px` }; + }); + const collapseTagStyle = (0, vue.computed)(() => { + return { maxWidth: `${states.selectionWidth}px` }; + }); + const shouldShowPlaceholder = (0, vue.computed)(() => { + if (isArray$1(props.modelValue)) return props.modelValue.length === 0 && !states.inputValue; + return props.filterable ? !states.inputValue : true; + }); + const currentPlaceholder = (0, vue.computed)(() => { + const _placeholder = props.placeholder ?? t("el.select.placeholder"); + return props.multiple || !hasModelValue.value ? _placeholder : states.selectedLabel; + }); + const popperRef = (0, vue.computed)(() => tooltipRef.value?.popperRef?.contentRef); + const indexRef = (0, vue.computed)(() => { + if (props.multiple) { + const len = props.modelValue.length; + if (len > 0 && filteredOptionsValueMap.value.has(props.modelValue[len - 1])) { + const { index } = filteredOptionsValueMap.value.get(props.modelValue[len - 1]); + return index; + } + } else if (!isEmptyValue(props.modelValue) && filteredOptionsValueMap.value.has(props.modelValue)) { + const { index } = filteredOptionsValueMap.value.get(props.modelValue); + return index; + } + return -1; + }); + const dropdownMenuVisible = (0, vue.computed)({ + get() { + return expanded.value && (props.loading || !isRemoteSearchEmpty.value || props.remote && !!slots.empty) && (!debouncing.value || !isEmpty(states.previousQuery) || hasOptions.value); + }, + set(val) { + expanded.value = val; + } + }); + const showTagList = (0, vue.computed)(() => { + if (!props.multiple) return []; + return props.collapseTags ? states.cachedOptions.slice(0, props.maxCollapseTags) : states.cachedOptions; + }); + const collapseTagList = (0, vue.computed)(() => { + if (!props.multiple) return []; + return props.collapseTags ? states.cachedOptions.slice(props.maxCollapseTags) : []; + }); + const { createNewOption, removeNewOption, selectNewOption, clearAllNewOption } = useAllowCreate(props, states); + const toggleMenu = (event) => { + if (selectDisabled.value || props.filterable && expanded.value && event && !suffixRef.value?.contains(event.target)) return; + if (states.menuVisibleOnFocus) states.menuVisibleOnFocus = false; + else expanded.value = !expanded.value; + }; + const onInputChange = () => { + if (states.inputValue.length > 0 && !expanded.value) expanded.value = true; + createNewOption(states.inputValue); + (0, vue.nextTick)(() => { + handleQueryChange(states.inputValue); + }); + }; + const debouncedOnInputChange = useDebounceFn(() => { + onInputChange(); + debouncing.value = false; + }, debounce); + const handleQueryChange = (val) => { + if (states.previousQuery === val || isComposing.value) return; + states.previousQuery = val; + if (props.filterable && isFunction$1(props.filterMethod)) props.filterMethod(val); + else if (props.filterable && props.remote && isFunction$1(props.remoteMethod)) props.remoteMethod(val); + if (props.defaultFirstOption && (props.filterable || props.remote) && filteredOptions.value.length) (0, vue.nextTick)(checkDefaultFirstOption); + else (0, vue.nextTick)(updateHoveringIndex); + }; + /** + * find and highlight first option as default selected + * @remark + * - if the first option in dropdown list is user-created, + * it would be at the end of the optionsArray + * so find it and set hover. + * (NOTE: there must be only one user-created option in dropdown list with query) + * - if there's no user-created option in list, just find the first one as usual + * (NOTE: exclude options that are disabled or in disabled-group) + */ + const checkDefaultFirstOption = () => { + const optionsInDropdown = filteredOptions.value.filter((n) => !n.disabled && n.type !== "Group"); + const userCreatedOption = optionsInDropdown.find((n) => n.created); + const firstOriginOption = optionsInDropdown[0]; + states.hoveringIndex = getValueIndex(filteredOptions.value, userCreatedOption || firstOriginOption); + }; + const emitChange = (val) => { + if (!isEqual$1(props.modelValue, val)) emit(CHANGE_EVENT, val); + }; + const update = (val) => { + emit(UPDATE_MODEL_EVENT, val); + emitChange(val); + states.previousValue = props.multiple ? String(val) : val; + (0, vue.nextTick)(() => { + if (props.multiple && isArray$1(props.modelValue)) { + const cachedOptions = states.cachedOptions.slice(); + const selectedOptions = props.modelValue.map((value) => getOption(value, cachedOptions)); + if (!isEqual$1(states.cachedOptions, selectedOptions)) states.cachedOptions = selectedOptions; + } else initStates(true); + }); + }; + const getValueIndex = (arr = [], value) => { + if (!isObject$1(value)) return arr.indexOf(value); + const valueKey = props.valueKey; + let index = -1; + arr.some((item, i) => { + if (get(item, valueKey) === get(value, valueKey)) { + index = i; + return true; + } + return false; + }); + return index; + }; + const getValueKey = (item) => { + return isObject$1(item) ? get(item, props.valueKey) : item; + }; + const handleResize = () => { + calculatePopperSize(); + }; + const resetSelectionWidth = () => { + states.selectionWidth = Number.parseFloat(window.getComputedStyle(selectionRef.value).width); + }; + const resetCollapseItemWidth = () => { + states.collapseItemWidth = collapseItemRef.value.getBoundingClientRect().width; + }; + const updateTooltip = () => { + tooltipRef.value?.updatePopper?.(); + }; + const updateTagTooltip = () => { + tagTooltipRef.value?.updatePopper?.(); + }; + const onSelect = (option) => { + const optionValue = getValue(option); + if (props.multiple) { + let selectedOptions = props.modelValue.slice(); + const index = getValueIndex(selectedOptions, optionValue); + if (index > -1) { + selectedOptions = [...selectedOptions.slice(0, index), ...selectedOptions.slice(index + 1)]; + states.cachedOptions.splice(index, 1); + removeNewOption(option); + } else if (props.multipleLimit <= 0 || selectedOptions.length < props.multipleLimit) { + selectedOptions = [...selectedOptions, optionValue]; + states.cachedOptions.push(option); + selectNewOption(option); + } + update(selectedOptions); + if (option.created) handleQueryChange(""); + if (props.filterable && (option.created || !props.reserveKeyword)) states.inputValue = ""; + } else { + states.selectedLabel = getLabel(option); + !isEqual$1(props.modelValue, optionValue) && update(optionValue); + expanded.value = false; + selectNewOption(option); + if (!option.created) clearAllNewOption(); + } + focus(); + }; + const deleteTag = (event, option) => { + let selectedOptions = props.modelValue.slice(); + const index = getValueIndex(selectedOptions, getValue(option)); + if (index > -1 && !selectDisabled.value) { + selectedOptions = [...props.modelValue.slice(0, index), ...props.modelValue.slice(index + 1)]; + states.cachedOptions.splice(index, 1); + update(selectedOptions); + emit("remove-tag", getValue(option)); + removeNewOption(option); + } + event.stopPropagation(); + focus(); + }; + const focus = () => { + inputRef.value?.focus(); + }; + const blur = () => { + if (expanded.value) { + expanded.value = false; + (0, vue.nextTick)(() => inputRef.value?.blur()); + return; + } + inputRef.value?.blur(); + }; + const handleEsc = () => { + if (states.inputValue.length > 0) states.inputValue = ""; + else expanded.value = false; + }; + const getLastNotDisabledIndex = (value) => findLastIndex(value, (it) => !states.cachedOptions.some((option) => getValue(option) === it && getDisabled(option))); + const handleDel = (e) => { + const code = getEventCode(e); + if (!props.multiple) return; + if (code === EVENT_CODE.delete) return; + if (states.inputValue.length === 0) { + e.preventDefault(); + const selected = props.modelValue.slice(); + const lastNotDisabledIndex = getLastNotDisabledIndex(selected); + if (lastNotDisabledIndex < 0) return; + const removeTagValue = selected[lastNotDisabledIndex]; + selected.splice(lastNotDisabledIndex, 1); + const option = states.cachedOptions[lastNotDisabledIndex]; + states.cachedOptions.splice(lastNotDisabledIndex, 1); + removeNewOption(option); + update(selected); + emit("remove-tag", removeTagValue); + } + }; + const handleClear = () => { + let emptyValue; + if (isArray$1(props.modelValue)) emptyValue = []; + else emptyValue = valueOnClear.value; + states.selectedLabel = ""; + expanded.value = false; + update(emptyValue); + emit("clear"); + clearAllNewOption(); + focus(); + }; + const onKeyboardNavigate = (direction, hoveringIndex = void 0) => { + const options = filteredOptions.value; + if (!["forward", "backward"].includes(direction) || selectDisabled.value || options.length <= 0 || optionsAllDisabled.value || isComposing.value) return; + if (!expanded.value) return toggleMenu(); + if (isUndefined(hoveringIndex)) hoveringIndex = states.hoveringIndex; + let newIndex = -1; + if (direction === "forward") { + newIndex = hoveringIndex + 1; + if (newIndex >= options.length) newIndex = 0; + } else if (direction === "backward") { + newIndex = hoveringIndex - 1; + if (newIndex < 0 || newIndex >= options.length) newIndex = options.length - 1; + } + const option = options[newIndex]; + if (getDisabled(option) || option.type === "Group") return onKeyboardNavigate(direction, newIndex); + else { + states.hoveringIndex = newIndex; + scrollToItem(newIndex); + } + }; + const onKeyboardSelect = () => { + if (!expanded.value) return toggleMenu(); + else if (~states.hoveringIndex && filteredOptions.value[states.hoveringIndex]) onSelect(filteredOptions.value[states.hoveringIndex]); + }; + const onHoverOption = (idx) => { + states.hoveringIndex = idx ?? -1; + }; + const updateHoveringIndex = () => { + if (!props.multiple) states.hoveringIndex = filteredOptions.value.findIndex((item) => { + return getValueKey(getValue(item)) === getValueKey(props.modelValue); + }); + else { + const length = props.modelValue.length; + if (length > 0) { + const lastValue = props.modelValue[length - 1]; + states.hoveringIndex = filteredOptions.value.findIndex((item) => getValueKey(lastValue) === getValueKey(getValue(item))); + } else states.hoveringIndex = -1; + } + }; + const onInput = (event) => { + states.inputValue = event.target.value; + if (props.remote) { + debouncing.value = true; + debouncedOnInputChange(); + } else return onInputChange(); + }; + const handleClickOutside = (event) => { + expanded.value = false; + if (isFocused.value) handleBlur(new FocusEvent("blur", event)); + }; + const handleMenuEnter = () => { + states.isBeforeHide = false; + return (0, vue.nextTick)(() => { + if (~indexRef.value) scrollToItem(indexRef.value); + }); + }; + const scrollToItem = (index) => { + menuRef.value.scrollToItem(index); + }; + const getOption = (value, cachedOptions) => { + const selectValue = getValueKey(value); + if (allOptionsValueMap.value.has(selectValue)) { + const { option } = allOptionsValueMap.value.get(selectValue); + return option; + } + if (cachedOptions && cachedOptions.length) { + const option = cachedOptions.find((option) => getValueKey(getValue(option)) === selectValue); + if (option) return option; + } + return { + [aliasProps.value.value]: value, + [aliasProps.value.label]: value + }; + }; + const getIndex = (option) => allOptionsValueMap.value.get(getValue(option))?.index ?? -1; + const initStates = (needUpdateSelectedLabel = false) => { + if (props.multiple) if (props.modelValue.length > 0) { + const cachedOptions = states.cachedOptions.slice(); + states.cachedOptions.length = 0; + states.previousValue = props.modelValue.toString(); + for (const value of props.modelValue) { + const option = getOption(value, cachedOptions); + states.cachedOptions.push(option); + } + } else { + states.cachedOptions = []; + states.previousValue = void 0; + } + else if (hasModelValue.value) { + states.previousValue = props.modelValue; + const options = filteredOptions.value; + const selectedItemIndex = options.findIndex((option) => getValueKey(getValue(option)) === getValueKey(props.modelValue)); + if (~selectedItemIndex) states.selectedLabel = getLabel(options[selectedItemIndex]); + else if (!states.selectedLabel || needUpdateSelectedLabel) states.selectedLabel = getValueKey(props.modelValue); + } else { + states.selectedLabel = ""; + states.previousValue = void 0; + } + clearAllNewOption(); + calculatePopperSize(); + }; + (0, vue.watch)(() => props.fitInputWidth, () => { + calculatePopperSize(); + }); + (0, vue.watch)(expanded, (val) => { + if (val) { + if (!props.persistent) calculatePopperSize(); + handleQueryChange(""); + } else { + states.inputValue = ""; + states.previousQuery = null; + states.isBeforeHide = true; + states.menuVisibleOnFocus = false; + createNewOption(""); + } + }); + (0, vue.watch)(() => props.modelValue, (val, oldVal) => { + if (!val || isArray$1(val) && val.length === 0 || props.multiple && !isEqual$1(val.toString(), states.previousValue) || !props.multiple && getValueKey(val) !== getValueKey(states.previousValue)) initStates(true); + if (!isEqual$1(val, oldVal) && props.validateEvent) elFormItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }, { deep: true }); + (0, vue.watch)(() => props.options, () => { + const input = inputRef.value; + if (!input || input && document.activeElement !== input) initStates(); + }, { + deep: true, + flush: "post" + }); + (0, vue.watch)(() => filteredOptions.value, () => { + calculatePopperSize(); + return menuRef.value && (0, vue.nextTick)(menuRef.value.resetScrollTop); + }); + (0, vue.watchEffect)(() => { + if (states.isBeforeHide) return; + updateOptions(); + }); + (0, vue.watchEffect)(() => { + const { valueKey, options } = props; + const duplicateValue = /* @__PURE__ */ new Map(); + for (const item of options) { + const optionValue = getValue(item); + let v = optionValue; + if (isObject$1(v)) v = get(optionValue, valueKey); + if (duplicateValue.get(v)) { + /* @__PURE__ */ debugWarn("ElSelectV2", `The option values you provided seem to be duplicated, which may cause some problems, please check.`); + break; + } else duplicateValue.set(v, true); + } + }); + (0, vue.onMounted)(() => { + initStates(); + }); + useResizeObserver(selectRef, handleResize); + useResizeObserver(selectionRef, resetSelectionWidth); + useResizeObserver(wrapperRef, updateTooltip); + useResizeObserver(tagMenuRef, updateTagTooltip); + useResizeObserver(collapseItemRef, resetCollapseItemWidth); + let stop; + (0, vue.watch)(() => dropdownMenuVisible.value, (newVal) => { + if (newVal) stop = useResizeObserver(menuRef, updateTooltip).stop; + else { + stop?.(); + stop = void 0; + } + emit("visible-change", newVal); + }); + return { + inputId, + collapseTagSize, + currentPlaceholder, + expanded, + emptyText, + popupHeight, + debounce, + allOptions, + allOptionsValueMap, + filteredOptions, + iconComponent, + iconReverse, + tagStyle, + collapseTagStyle, + popperSize, + dropdownMenuVisible, + hasModelValue, + shouldShowPlaceholder, + selectDisabled, + selectSize, + needStatusIcon, + showClearBtn, + states, + isFocused, + nsSelect, + nsInput, + inputRef, + menuRef, + tagMenuRef, + tooltipRef, + tagTooltipRef, + selectRef, + wrapperRef, + selectionRef, + prefixRef, + suffixRef, + collapseItemRef, + popperRef, + validateState, + validateIcon, + showTagList, + collapseTagList, + debouncedOnInputChange, + deleteTag, + getLabel, + getValue, + getDisabled, + getValueKey, + getIndex, + handleClear, + handleClickOutside, + handleDel, + handleEsc, + focus, + blur, + handleMenuEnter, + handleResize, + resetSelectionWidth, + updateTooltip, + updateTagTooltip, + updateOptions, + toggleMenu, + scrollTo: scrollToItem, + onInput, + onKeyboardNavigate, + onKeyboardSelect, + onSelect, + onHover: onHoverOption, + handleCompositionStart, + handleCompositionEnd, + handleCompositionUpdate + }; + }; + +//#endregion +//#region ../../packages/components/select-v2/src/select.vue?vue&type=script&lang.ts + var select_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElSelectV2", + components: { + ElSelectMenu: select_dropdown_default, + ElTag, + ElTooltip, + ElIcon + }, + directives: { ClickOutside }, + props: selectV2Props, + emits: selectV2Emits, + setup(props, { emit }) { + const modelValue = (0, vue.computed)(() => { + const { modelValue: rawModelValue, multiple } = props; + const fallback = multiple ? [] : void 0; + if (isArray$1(rawModelValue)) return multiple ? rawModelValue : fallback; + return multiple ? fallback : rawModelValue; + }); + const API = useSelect$1((0, vue.reactive)({ + ...(0, vue.toRefs)(props), + modelValue + }), emit); + const { calculatorRef, inputStyle } = useCalcInputWidth(); + const contentId = useId(); + (0, vue.provide)(selectV2InjectionKey, { + props: (0, vue.reactive)({ + ...(0, vue.toRefs)(props), + height: API.popupHeight, + modelValue + }), + expanded: API.expanded, + tooltipRef: API.tooltipRef, + contentId, + onSelect: API.onSelect, + onHover: API.onHover, + onKeyboardNavigate: API.onKeyboardNavigate, + onKeyboardSelect: API.onKeyboardSelect + }); + const selectedLabel = (0, vue.computed)(() => { + if (!props.multiple) return API.states.selectedLabel; + return API.states.cachedOptions.map((i) => API.getLabel(i)); + }); + return { + ...API, + modelValue, + selectedLabel, + calculatorRef, + inputStyle, + contentId, + BORDER_HORIZONTAL_WIDTH + }; + } + }); + +//#endregion +//#region ../../packages/components/select-v2/src/select.vue + const _hoisted_1$21 = [ + "id", + "value", + "autocomplete", + "tabindex", + "aria-expanded", + "aria-label", + "disabled", + "aria-controls", + "aria-activedescendant", + "readonly", + "name" + ]; + const _hoisted_2$13 = ["textContent"]; + const _hoisted_3$5 = { key: 1 }; + function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_tag = (0, vue.resolveComponent)("el-tag"); + const _component_el_tooltip = (0, vue.resolveComponent)("el-tooltip"); + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + const _component_el_select_menu = (0, vue.resolveComponent)("el-select-menu"); + const _directive_click_outside = (0, vue.resolveDirective)("click-outside"); + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref: "selectRef", + class: (0, vue.normalizeClass)([_ctx.nsSelect.b(), _ctx.nsSelect.m(_ctx.selectSize)]), + onMouseenter: _cache[15] || (_cache[15] = ($event) => _ctx.states.inputHovering = true), + onMouseleave: _cache[16] || (_cache[16] = ($event) => _ctx.states.inputHovering = false) + }, [(0, vue.createVNode)(_component_el_tooltip, { + ref: "tooltipRef", + visible: _ctx.dropdownMenuVisible, + teleported: _ctx.teleported, + "popper-class": [_ctx.nsSelect.e("popper"), _ctx.popperClass], + "popper-style": _ctx.popperStyle, + "gpu-acceleration": false, + "stop-popper-mouse-event": false, + "popper-options": _ctx.popperOptions, + "fallback-placements": _ctx.fallbackPlacements, + effect: _ctx.effect, + placement: _ctx.placement, + pure: "", + transition: `${_ctx.nsSelect.namespace.value}-zoom-in-top`, + trigger: "click", + persistent: _ctx.persistent, + "append-to": _ctx.appendTo, + "show-arrow": _ctx.showArrow, + offset: _ctx.offset, + onBeforeShow: _ctx.handleMenuEnter, + onHide: _cache[14] || (_cache[14] = ($event) => _ctx.states.isBeforeHide = false) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "wrapperRef", + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("wrapper"), + _ctx.nsSelect.is("focused", _ctx.isFocused), + _ctx.nsSelect.is("hovering", _ctx.states.inputHovering), + _ctx.nsSelect.is("filterable", _ctx.filterable), + _ctx.nsSelect.is("disabled", _ctx.selectDisabled) + ]), + onClick: _cache[11] || (_cache[11] = (0, vue.withModifiers)((...args) => _ctx.toggleMenu && _ctx.toggleMenu(...args), ["prevent"])) + }, [ + _ctx.$slots.prefix ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref: "prefixRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("prefix")) + }, [(0, vue.renderSlot)(_ctx.$slots, "prefix")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + ref: "selectionRef", + class: (0, vue.normalizeClass)([_ctx.nsSelect.e("selection"), _ctx.nsSelect.is("near", _ctx.multiple && !_ctx.$slots.prefix && !!_ctx.modelValue.length)]) + }, [ + _ctx.multiple ? (0, vue.renderSlot)(_ctx.$slots, "tag", { + key: 0, + data: _ctx.states.cachedOptions, + deleteTag: _ctx.deleteTag, + selectDisabled: _ctx.selectDisabled + }, () => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.showTagList, (item) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: _ctx.getValueKey(_ctx.getValue(item)), + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selected-item")) + }, [(0, vue.createVNode)(_component_el_tag, { + closable: !_ctx.selectDisabled && !_ctx.getDisabled(item), + size: _ctx.collapseTagSize, + type: _ctx.tagType, + effect: _ctx.tagEffect, + "disable-transitions": "", + style: (0, vue.normalizeStyle)(_ctx.tagStyle), + onClose: ($event) => _ctx.deleteTag($event, item) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.nsSelect.e("tags-text")) }, [(0, vue.renderSlot)(_ctx.$slots, "label", { + index: _ctx.getIndex(item), + label: _ctx.getLabel(item), + value: _ctx.getValue(item) + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(_ctx.getLabel(item)), 1)])], 2)]), + _: 2 + }, 1032, [ + "closable", + "size", + "type", + "effect", + "style", + "onClose" + ])], 2); + }), 128)), _ctx.collapseTags && _ctx.states.cachedOptions.length > _ctx.maxCollapseTags ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_tooltip, { + key: 0, + ref: "tagTooltipRef", + disabled: _ctx.dropdownMenuVisible || !_ctx.collapseTagsTooltip, + "fallback-placements": _ctx.tagTooltip?.fallbackPlacements ?? [ + "bottom", + "top", + "right", + "left" + ], + effect: _ctx.tagTooltip?.effect ?? _ctx.effect, + placement: _ctx.tagTooltip?.placement ?? "bottom", + "popper-class": _ctx.tagTooltip?.popperClass ?? _ctx.popperClass, + "popper-style": _ctx.tagTooltip?.popperStyle ?? _ctx.popperStyle, + teleported: _ctx.tagTooltip?.teleported ?? _ctx.teleported, + "append-to": _ctx.tagTooltip?.appendTo ?? _ctx.appendTo, + "popper-options": _ctx.tagTooltip?.popperOptions ?? _ctx.popperOptions, + transition: _ctx.tagTooltip?.transition, + "show-after": _ctx.tagTooltip?.showAfter, + "hide-after": _ctx.tagTooltip?.hideAfter, + "auto-close": _ctx.tagTooltip?.autoClose, + offset: _ctx.tagTooltip?.offset + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "collapseItemRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selected-item")) + }, [(0, vue.createVNode)(_component_el_tag, { + closable: false, + size: _ctx.collapseTagSize, + type: _ctx.tagType, + effect: _ctx.tagEffect, + style: (0, vue.normalizeStyle)(_ctx.collapseTagStyle), + "disable-transitions": "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.nsSelect.e("tags-text")) }, " + " + (0, vue.toDisplayString)(_ctx.states.cachedOptions.length - _ctx.maxCollapseTags), 3)]), + _: 1 + }, 8, [ + "size", + "type", + "effect", + "style" + ])], 2)]), + content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "tagMenuRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selection")) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.collapseTagList, (selected) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: _ctx.getValueKey(_ctx.getValue(selected)), + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("selected-item")) + }, [(0, vue.createVNode)(_component_el_tag, { + class: "in-tooltip", + closable: !_ctx.selectDisabled && !_ctx.getDisabled(selected), + size: _ctx.collapseTagSize, + type: _ctx.tagType, + effect: _ctx.tagEffect, + "disable-transitions": "", + onClose: ($event) => _ctx.deleteTag($event, selected) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.nsSelect.e("tags-text")) }, [(0, vue.renderSlot)(_ctx.$slots, "label", { + index: _ctx.getIndex(selected), + label: _ctx.getLabel(selected), + value: _ctx.getValue(selected) + }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(_ctx.getLabel(selected)), 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" + ])) : (0, vue.createCommentVNode)("v-if", true)]) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("selected-item"), + _ctx.nsSelect.e("input-wrapper"), + _ctx.nsSelect.is("hidden", !_ctx.filterable || _ctx.selectDisabled || !_ctx.states.inputValue && !_ctx.isFocused) + ]) }, [(0, vue.createElementVNode)("input", { + id: _ctx.inputId, + ref: "inputRef", + value: _ctx.states.inputValue, + style: (0, vue.normalizeStyle)(_ctx.inputStyle), + autocomplete: _ctx.autocomplete, + tabindex: _ctx.tabindex, + "aria-autocomplete": "none", + "aria-haspopup": "listbox", + autocapitalize: "off", + "aria-expanded": _ctx.expanded, + "aria-label": _ctx.ariaLabel, + class: (0, vue.normalizeClass)([_ctx.nsSelect.e("input"), _ctx.nsSelect.is(_ctx.selectSize)]), + disabled: _ctx.selectDisabled, + role: "combobox", + "aria-controls": _ctx.contentId, + "aria-activedescendant": _ctx.states.hoveringIndex >= 0 ? `${_ctx.contentId}-${_ctx.states.hoveringIndex}` : "", + readonly: !_ctx.filterable, + spellcheck: "false", + type: "text", + name: _ctx.name, + onInput: _cache[0] || (_cache[0] = (...args) => _ctx.onInput && _ctx.onInput(...args)), + onChange: _cache[1] || (_cache[1] = (0, vue.withModifiers)(() => {}, ["stop"])), + onCompositionstart: _cache[2] || (_cache[2] = (...args) => _ctx.handleCompositionStart && _ctx.handleCompositionStart(...args)), + onCompositionupdate: _cache[3] || (_cache[3] = (...args) => _ctx.handleCompositionUpdate && _ctx.handleCompositionUpdate(...args)), + onCompositionend: _cache[4] || (_cache[4] = (...args) => _ctx.handleCompositionEnd && _ctx.handleCompositionEnd(...args)), + onKeydown: [ + _cache[5] || (_cache[5] = (0, vue.withKeys)((0, vue.withModifiers)(($event) => _ctx.onKeyboardNavigate("backward"), ["stop", "prevent"]), ["up"])), + _cache[6] || (_cache[6] = (0, vue.withKeys)((0, vue.withModifiers)(($event) => _ctx.onKeyboardNavigate("forward"), ["stop", "prevent"]), ["down"])), + _cache[7] || (_cache[7] = (0, vue.withKeys)((0, vue.withModifiers)((...args) => _ctx.onKeyboardSelect && _ctx.onKeyboardSelect(...args), ["stop", "prevent"]), ["enter"])), + _cache[8] || (_cache[8] = (0, vue.withKeys)((0, vue.withModifiers)((...args) => _ctx.handleEsc && _ctx.handleEsc(...args), ["stop", "prevent"]), ["esc"])), + _cache[9] || (_cache[9] = (0, vue.withKeys)((0, vue.withModifiers)((...args) => _ctx.handleDel && _ctx.handleDel(...args), ["stop"]), ["delete"])) + ], + onClick: _cache[10] || (_cache[10] = (0, vue.withModifiers)((...args) => _ctx.toggleMenu && _ctx.toggleMenu(...args), ["stop"])) + }, null, 46, _hoisted_1$21), _ctx.filterable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + ref: "calculatorRef", + "aria-hidden": "true", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("input-calculator")), + textContent: (0, vue.toDisplayString)(_ctx.states.inputValue) + }, null, 10, _hoisted_2$13)) : (0, vue.createCommentVNode)("v-if", true)], 2), + _ctx.shouldShowPlaceholder ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("selected-item"), + _ctx.nsSelect.e("placeholder"), + _ctx.nsSelect.is("transparent", !_ctx.hasModelValue || _ctx.expanded && !_ctx.states.inputValue) + ]) + }, [_ctx.hasModelValue ? (0, vue.renderSlot)(_ctx.$slots, "label", { + key: 0, + index: _ctx.allOptionsValueMap.get(_ctx.modelValue)?.index ?? -1, + label: _ctx.currentPlaceholder, + value: _ctx.modelValue + }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.currentPlaceholder), 1)]) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$5, (0, vue.toDisplayString)(_ctx.currentPlaceholder), 1))], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2), + (0, vue.createElementVNode)("div", { + ref: "suffixRef", + class: (0, vue.normalizeClass)(_ctx.nsSelect.e("suffix")) + }, [ + _ctx.iconComponent ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 0, + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("caret"), + _ctx.nsInput.e("icon"), + _ctx.iconReverse + ]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.iconComponent)))]), + _: 1 + }, 8, ["class"])), [[vue.vShow, !_ctx.showClearBtn]]) : (0, vue.createCommentVNode)("v-if", true), + _ctx.showClearBtn && _ctx.clearIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 1, + class: (0, vue.normalizeClass)([ + _ctx.nsSelect.e("caret"), + _ctx.nsInput.e("icon"), + _ctx.nsSelect.e("clear") + ]), + onClick: (0, vue.withModifiers)(_ctx.handleClear, ["prevent", "stop"]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.clearIcon)))]), + _: 1 + }, 8, ["class", "onClick"])) : (0, vue.createCommentVNode)("v-if", true), + _ctx.validateState && _ctx.validateIcon && _ctx.needStatusIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 2, + class: (0, vue.normalizeClass)([ + _ctx.nsInput.e("icon"), + _ctx.nsInput.e("validateIcon"), + _ctx.nsInput.is("loading", _ctx.validateState === "validating") + ]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.validateIcon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true) + ], 2) + ], 2)]), + content: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_select_menu, { + id: _ctx.contentId, + ref: "menuRef", + data: _ctx.filteredOptions, + width: _ctx.popperSize - _ctx.BORDER_HORIZONTAL_WIDTH, + "hovering-index": _ctx.states.hoveringIndex, + "scrollbar-always-on": _ctx.scrollbarAlwaysOn, + "aria-label": _ctx.ariaLabel + }, (0, vue.createSlots)({ + default: (0, vue.withCtx)((scope) => [(0, vue.renderSlot)(_ctx.$slots, "default", (0, vue.normalizeProps)((0, vue.guardReactiveProps)(scope)))]), + _: 2 + }, [ + _ctx.$slots.header ? { + name: "header", + fn: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "header")), + onClick: _cache[12] || (_cache[12] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "header")], 2)]), + key: "0" + } : void 0, + _ctx.$slots.loading && _ctx.loading ? { + name: "loading", + fn: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "loading")) }, [(0, vue.renderSlot)(_ctx.$slots, "loading")], 2)]), + key: "1" + } : _ctx.loading || _ctx.filteredOptions.length === 0 ? { + name: "empty", + fn: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "empty")) }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.emptyText), 1)])], 2)]), + key: "2" + } : void 0, + _ctx.$slots.footer ? { + name: "footer", + fn: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)(_ctx.nsSelect.be("dropdown", "footer")), + onClick: _cache[13] || (_cache[13] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)]), + key: "3" + } : void 0 + ]), 1032, [ + "id", + "data", + "width", + "hovering-index", + "scrollbar-always-on", + "aria-label" + ])]), + _: 3 + }, 8, [ + "visible", + "teleported", + "popper-class", + "popper-style", + "popper-options", + "fallback-placements", + "effect", + "placement", + "transition", + "persistent", + "append-to", + "show-arrow", + "offset", + "onBeforeShow" + ])], 34)), [[ + _directive_click_outside, + _ctx.handleClickOutside, + _ctx.popperRef + ]]); + } + var select_default = /* @__PURE__ */ _plugin_vue_export_helper_default(select_vue_vue_type_script_lang_default, [["render", _sfc_render$5]]); + +//#endregion +//#region ../../packages/components/select-v2/index.ts + const ElSelectV2 = withInstall(select_default); + +//#endregion +//#region ../../packages/components/skeleton/src/skeleton.ts +/** + * @deprecated Removed after 3.0.0, Use `SkeletonProps` instead. + */ + const skeletonProps = buildProps({ + animated: Boolean, + count: { + type: Number, + default: 1 + }, + rows: { + type: Number, + default: 3 + }, + loading: { + type: Boolean, + default: true + }, + throttle: { type: definePropType([Number, Object]) } + }); + +//#endregion +//#region ../../packages/components/skeleton/src/skeleton-item.ts +/** + * @deprecated Removed after 3.0.0, Use `SkeletonItemProps` instead. + */ + const skeletonItemProps = buildProps({ variant: { + type: String, + values: [ + "circle", + "rect", + "h1", + "h3", + "text", + "caption", + "p", + "image", + "button" + ], + default: "text" + } }); + +//#endregion +//#region ../../packages/components/skeleton/src/skeleton-item.vue?vue&type=script&setup=true&lang.ts + var skeleton_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSkeletonItem", + __name: "skeleton-item", + props: skeletonItemProps, + setup(__props) { + const ns = useNamespace("skeleton"); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("item"), (0, vue.unref)(ns).e(__props.variant)]) }, [__props.variant === "image" ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(picture_filled_default), { key: 0 })) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/skeleton/src/skeleton-item.vue + var skeleton_item_default = skeleton_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/skeleton/src/skeleton.vue?vue&type=script&setup=true&lang.ts + var skeleton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSkeleton", + __name: "skeleton", + props: skeletonProps, + setup(__props, { expose: __expose }) { + const props = __props; + const ns = useNamespace("skeleton"); + const uiLoading = useThrottleRender((0, vue.toRef)(props, "loading"), props.throttle); + __expose({ uiLoading }); + return (_ctx, _cache) => { + return (0, vue.unref)(uiLoading) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", (0, vue.mergeProps)({ + key: 0, + class: [(0, vue.unref)(ns).b(), (0, vue.unref)(ns).is("animated", __props.animated)] + }, _ctx.$attrs), [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.count, (i) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: i }, [(0, vue.unref)(uiLoading) ? (0, vue.renderSlot)(_ctx.$slots, "template", { key: i }, () => [(0, vue.createVNode)(skeleton_item_default, { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).is("first")), + variant: "p" + }, null, 8, ["class"]), ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.rows, (item) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(skeleton_item_default, { + key: item, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("paragraph"), (0, vue.unref)(ns).is("last", item === __props.rows && __props.rows > 1)]), + variant: "p" + }, null, 8, ["class"]); + }), 128))]) : (0, vue.createCommentVNode)("v-if", true)], 64); + }), 128))], 16)) : (0, vue.renderSlot)(_ctx.$slots, "default", (0, vue.normalizeProps)((0, vue.mergeProps)({ key: 1 }, _ctx.$attrs))); + }; + } + }); + +//#endregion +//#region ../../packages/components/skeleton/src/skeleton.vue + var skeleton_default = skeleton_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/skeleton/index.ts + const ElSkeleton = withInstall(skeleton_default, { SkeletonItem: skeleton_item_default }); + const ElSkeletonItem = withNoopInstall(skeleton_item_default); + +//#endregion +//#region ../../packages/components/slider/src/constants.ts + const sliderContextKey = Symbol("sliderContextKey"); + +//#endregion +//#region ../../packages/components/slider/src/slider.ts + const sliderProps = buildProps({ + modelValue: { + type: definePropType([Number, Array]), + default: 0 + }, + id: { + type: String, + default: void 0 + }, + min: { + type: Number, + default: 0 + }, + max: { + type: Number, + default: 100 + }, + step: { + type: definePropType([Number, String]), + default: 1 + }, + showInput: Boolean, + showInputControls: { + type: Boolean, + default: true + }, + size: useSizeProp, + inputSize: useSizeProp, + showStops: Boolean, + showTooltip: { + type: Boolean, + default: true + }, + formatTooltip: { + type: definePropType(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: definePropType(Function), + default: void 0 + }, + tooltipClass: { + type: String, + default: void 0 + }, + placement: { + type: String, + values: Ee, + default: "top" + }, + marks: { type: definePropType(Object) }, + validateEvent: { + type: Boolean, + default: true + }, + persistent: { + type: Boolean, + default: true + }, + ...useAriaProps(["ariaLabel"]) + }); + const isValidValue$1 = (value) => isNumber(value) || isArray$1(value) && value.every(isNumber); + const sliderEmits = { + [UPDATE_MODEL_EVENT]: isValidValue$1, + [INPUT_EVENT]: isValidValue$1, + [CHANGE_EVENT]: isValidValue$1 + }; + +//#endregion +//#region ../../packages/components/slider/src/composables/use-lifecycle.ts + const useLifecycle = (props, initData, resetSize) => { + const sliderWrapper = (0, vue.ref)(); + (0, vue.onMounted)(async () => { + if (props.range) { + if (isArray$1(props.modelValue)) { + initData.firstValue = Math.max(props.min, props.modelValue[0]); + initData.secondValue = Math.min(props.max, props.modelValue[1]); + } else { + initData.firstValue = props.min; + initData.secondValue = props.max; + } + initData.oldValue = [initData.firstValue, initData.secondValue]; + } else { + if (!isNumber(props.modelValue) || Number.isNaN(props.modelValue)) initData.firstValue = props.min; + else initData.firstValue = Math.min(props.max, Math.max(props.min, props.modelValue)); + initData.oldValue = initData.firstValue; + } + useEventListener(window, "resize", resetSize); + await (0, vue.nextTick)(); + resetSize(); + }); + return { sliderWrapper }; + }; + +//#endregion +//#region ../../packages/components/slider/src/composables/use-marks.ts + const useMarks = (props) => { + const markList = (0, vue.computed)(() => { + if (!props.marks) return []; + return Object.keys(props.marks).map(Number.parseFloat).sort((a, b) => a - b).filter((point) => point <= props.max && point >= props.min).map((point) => ({ + point, + position: (point - props.min) * 100 / (props.max - props.min), + mark: props.marks[point] + })); + }); + (0, vue.watchEffect)(() => { + if (props.step === "mark" && !props.marks) /* @__PURE__ */ debugWarn("ElSlider", "marks prop must be provided when step is mark"); + if (props.marks) { + const keys = Object.keys(props.marks); + const validPoints = markList.value.map((m) => m.point); + const invalidKeys = keys.filter((key) => { + const parsed = Number.parseFloat(key); + return Number.isNaN(parsed) || !validPoints.includes(parsed); + }); + if (invalidKeys.length > 0) /* @__PURE__ */ debugWarn("ElSlider", `Some marks keys are invalid (not a number or out of [min, max]): [${invalidKeys.map((k) => `'${k}'`).join(", ")}] and will be ignored.`); + } + }); + return markList; + }; + +//#endregion +//#region ../../packages/components/slider/src/composables/use-slide.ts + const useSlide = (props, initData, emit) => { + const { formItem: elFormItem } = useFormItem(); + const slider = (0, vue.shallowRef)(); + const firstButton = (0, vue.ref)(); + const secondButton = (0, vue.ref)(); + const buttonRefs = { + firstButton, + secondButton + }; + const sliderDisabled = useFormDisabled(); + const minValue = (0, vue.computed)(() => { + return Math.min(initData.firstValue, initData.secondValue); + }); + const maxValue = (0, vue.computed)(() => { + return Math.max(initData.firstValue, initData.secondValue); + }); + const barSize = (0, vue.computed)(() => { + return props.range ? `${100 * (maxValue.value - minValue.value) / (props.max - props.min)}%` : `${100 * (initData.firstValue - props.min) / (props.max - props.min)}%`; + }); + const barStart = (0, vue.computed)(() => { + return props.range ? `${100 * (minValue.value - props.min) / (props.max - props.min)}%` : "0%"; + }); + const runwayStyle = (0, vue.computed)(() => { + return props.vertical ? { height: props.height } : {}; + }); + const barStyle = (0, vue.computed)(() => { + return props.vertical ? { + height: barSize.value, + bottom: barStart.value + } : { + width: barSize.value, + left: barStart.value + }; + }); + const resetSize = () => { + if (slider.value) initData.sliderSize = slider.value.getBoundingClientRect()[props.vertical ? "height" : "width"]; + }; + const getButtonRefByPercent = (percent) => { + const targetValue = props.min + percent * (props.max - props.min) / 100; + if (!props.range) return firstButton; + let buttonRefName; + if (Math.abs(minValue.value - targetValue) < Math.abs(maxValue.value - targetValue)) buttonRefName = initData.firstValue < initData.secondValue ? "firstButton" : "secondButton"; + else buttonRefName = initData.firstValue > initData.secondValue ? "firstButton" : "secondButton"; + return buttonRefs[buttonRefName]; + }; + const setPosition = (percent) => { + const buttonRef = getButtonRefByPercent(percent); + buttonRef.value.setPosition(percent); + return buttonRef; + }; + const setFirstValue = (firstValue) => { + initData.firstValue = firstValue ?? props.min; + _emit(props.range ? [minValue.value, maxValue.value] : firstValue ?? props.min); + }; + const setSecondValue = (secondValue) => { + initData.secondValue = secondValue; + if (props.range) _emit([minValue.value, maxValue.value]); + }; + const _emit = (val) => { + emit(UPDATE_MODEL_EVENT, val); + emit(INPUT_EVENT, val); + }; + const emitChange = async () => { + await (0, vue.nextTick)(); + emit(CHANGE_EVENT, props.range ? [minValue.value, maxValue.value] : props.modelValue); + }; + const handleSliderPointerEvent = (event) => { + if (sliderDisabled.value || initData.dragging) return; + resetSize(); + let newPercent = 0; + if (props.vertical) { + const clientY = event.touches?.item(0)?.clientY ?? event.clientY; + newPercent = (slider.value.getBoundingClientRect().bottom - clientY) / initData.sliderSize * 100; + } else newPercent = ((event.touches?.item(0)?.clientX ?? event.clientX) - slider.value.getBoundingClientRect().left) / initData.sliderSize * 100; + if (newPercent < 0 || newPercent > 100) return; + return setPosition(newPercent); + }; + const onSliderWrapperPrevent = (event) => { + if (buttonRefs["firstButton"].value?.dragging || buttonRefs["secondButton"].value?.dragging) event.preventDefault(); + }; + const onSliderDown = async (event) => { + const buttonRef = handleSliderPointerEvent(event); + if (buttonRef) { + await (0, vue.nextTick)(); + buttonRef.value.onButtonDown(event); + } + }; + const onSliderClick = (event) => { + if (handleSliderPointerEvent(event)) emitChange(); + }; + const onSliderMarkerDown = (position) => { + if (sliderDisabled.value || initData.dragging) return; + if (setPosition(position)) emitChange(); + }; + return { + elFormItem, + slider, + firstButton, + secondButton, + sliderDisabled, + minValue, + maxValue, + runwayStyle, + barStyle, + resetSize, + setPosition, + emitChange, + onSliderWrapperPrevent, + onSliderClick, + onSliderDown, + onSliderMarkerDown, + setFirstValue, + setSecondValue + }; + }; + +//#endregion +//#region ../../packages/components/slider/src/composables/use-slider-button.ts + const useTooltip = (props, formatTooltip, showTooltip) => { + const tooltip = (0, vue.ref)(); + const tooltipVisible = (0, vue.ref)(false); + const enableFormat = (0, vue.computed)(() => { + return formatTooltip.value instanceof Function; + }); + return { + tooltip, + tooltipVisible, + formatValue: (0, vue.computed)(() => { + return enableFormat.value && formatTooltip.value(props.modelValue) || props.modelValue; + }), + displayTooltip: debounce(() => { + showTooltip.value && (tooltipVisible.value = true); + }, 50), + hideTooltip: debounce(() => { + showTooltip.value && (tooltipVisible.value = false); + }, 50) + }; + }; + const useSliderButton = (props, initData, emit) => { + const { disabled, min, max, step, showTooltip, persistent, precision, sliderSize, formatTooltip, emitChange, resetSize, updateDragging, markList } = (0, vue.inject)(sliderContextKey); + const { tooltip, tooltipVisible, formatValue, displayTooltip, hideTooltip } = useTooltip(props, formatTooltip, showTooltip); + const button = (0, vue.ref)(); + const currentPosition = (0, vue.computed)(() => { + return `${(props.modelValue - min.value) / (max.value - min.value) * 100}%`; + }); + const wrapperStyle = (0, vue.computed)(() => { + return props.vertical ? { bottom: currentPosition.value } : { left: currentPosition.value }; + }); + const shouldMoveToMark = (0, vue.computed)(() => { + return step.value === "mark" && markList.value.length > 0; + }); + const handleMouseEnter = () => { + initData.hovering = true; + displayTooltip(); + }; + const handleMouseLeave = () => { + initData.hovering = false; + if (!initData.dragging) hideTooltip(); + }; + const onButtonDown = (event) => { + if (disabled.value) return; + event.preventDefault(); + onDragStart(event); + window.addEventListener("mousemove", onDragging); + window.addEventListener("touchmove", onDragging); + window.addEventListener("mouseup", onDragEnd); + window.addEventListener("touchend", onDragEnd); + window.addEventListener("contextmenu", onDragEnd); + button.value.focus(); + }; + const incrementPosition = (amount) => { + if (disabled.value) return; + initData.newPosition = Number.parseFloat(currentPosition.value) + amount / (max.value - min.value) * 100; + setPosition(initData.newPosition); + emitChange(); + }; + const moveToMark = (amount) => { + if (disabled.value || !markList.value.length) return; + const current = props.modelValue; + const epsilon = Number.EPSILON; + const stride = Math.abs(amount); + let target; + if (amount > 0) { + const startIndex = markList.value.findIndex((m) => m.point > current + epsilon); + if (startIndex !== -1) { + const targetIndex = Math.min(startIndex + stride - 1, markList.value.length - 1); + target = markList.value[targetIndex].point; + } + } else { + let startIndex = -1; + for (let i = markList.value.length - 1; i >= 0; i--) if (markList.value[i].point < current - epsilon) { + startIndex = i; + break; + } + if (startIndex !== -1) { + const targetIndex = Math.max(startIndex - (stride - 1), 0); + target = markList.value[targetIndex].point; + } + } + if (target !== void 0 && target !== current) { + setPosition((target - min.value) / (max.value - min.value) * 100); + emitChange(); + } + }; + const onLeftKeyDown = () => { + if (shouldMoveToMark.value) moveToMark(-1); + else if (isNumber(step.value)) incrementPosition(-step.value); + }; + const onRightKeyDown = () => { + if (shouldMoveToMark.value) moveToMark(1); + else if (isNumber(step.value)) incrementPosition(step.value); + }; + const onPageDownKeyDown = () => { + if (shouldMoveToMark.value) moveToMark(-4); + else if (isNumber(step.value)) incrementPosition(-step.value * 4); + }; + const onPageUpKeyDown = () => { + if (shouldMoveToMark.value) moveToMark(4); + else if (isNumber(step.value)) incrementPosition(step.value * 4); + }; + const onHomeKeyDown = () => { + if (disabled.value) return; + setPosition(0); + emitChange(); + }; + const onEndKeyDown = () => { + if (disabled.value) return; + setPosition(100); + emitChange(); + }; + const onKeyDown = (event) => { + const code = getEventCode(event); + let isPreventDefault = true; + switch (code) { + case EVENT_CODE.left: + case EVENT_CODE.down: + onLeftKeyDown(); + break; + case EVENT_CODE.right: + case EVENT_CODE.up: + onRightKeyDown(); + break; + case EVENT_CODE.home: + onHomeKeyDown(); + break; + case EVENT_CODE.end: + onEndKeyDown(); + break; + case EVENT_CODE.pageDown: + onPageDownKeyDown(); + break; + case EVENT_CODE.pageUp: + onPageUpKeyDown(); + break; + default: + isPreventDefault = false; + break; + } + isPreventDefault && event.preventDefault(); + }; + const getClientXY = (event) => { + let clientX; + let clientY; + if (event.type.startsWith("touch")) { + clientY = event.touches[0].clientY; + clientX = event.touches[0].clientX; + } else { + clientY = event.clientY; + clientX = event.clientX; + } + return { + clientX, + clientY + }; + }; + const onDragStart = (event) => { + initData.dragging = true; + initData.isClick = true; + const { clientX, clientY } = getClientXY(event); + if (props.vertical) initData.startY = clientY; + else initData.startX = clientX; + initData.startPosition = Number.parseFloat(currentPosition.value); + initData.newPosition = initData.startPosition; + }; + const onDragging = (event) => { + if (initData.dragging) { + initData.isClick = false; + displayTooltip(); + resetSize(); + let diff; + const { clientX, clientY } = getClientXY(event); + if (props.vertical) { + initData.currentY = clientY; + diff = (initData.startY - initData.currentY) / sliderSize.value * 100; + } else { + initData.currentX = clientX; + diff = (initData.currentX - initData.startX) / sliderSize.value * 100; + } + initData.newPosition = initData.startPosition + diff; + setPosition(initData.newPosition); + } + }; + const onDragEnd = () => { + if (initData.dragging) { + setTimeout(() => { + initData.dragging = false; + if (!initData.hovering) hideTooltip(); + if (!initData.isClick) setPosition(initData.newPosition); + emitChange(); + }, 0); + window.removeEventListener("mousemove", onDragging); + window.removeEventListener("touchmove", onDragging); + window.removeEventListener("mouseup", onDragEnd); + window.removeEventListener("touchend", onDragEnd); + window.removeEventListener("contextmenu", onDragEnd); + } + }; + const setPosition = async (newPosition) => { + if (newPosition === null || Number.isNaN(+newPosition)) return; + newPosition = clamp$1(newPosition, 0, 100); + let value; + if (step.value === "mark") if (markList.value.length === 0) value = newPosition <= 50 ? min.value : max.value; + else value = markList.value.reduce((prev, curr) => { + return Math.abs(curr.position - newPosition) < Math.abs(prev.position - newPosition) ? curr : prev; + }).point; + else { + const fullSteps = Math.floor((max.value - min.value) / step.value); + const fullRangePercentage = fullSteps * step.value / (max.value - min.value) * 100; + const threshold = fullRangePercentage + (100 - fullRangePercentage) / 2; + if (newPosition < fullRangePercentage) { + const valueBetween = fullRangePercentage / fullSteps; + const steps = Math.round(newPosition / valueBetween); + value = min.value + steps * step.value; + } else if (newPosition < threshold) value = min.value + fullSteps * step.value; + else value = max.value; + value = Number.parseFloat(value.toFixed(precision.value)); + } + if (value !== props.modelValue) emit(UPDATE_MODEL_EVENT, value); + if (!initData.dragging && props.modelValue !== initData.oldValue) initData.oldValue = props.modelValue; + await (0, vue.nextTick)(); + initData.dragging && displayTooltip(); + tooltip.value.updatePopper(); + }; + (0, vue.watch)(() => initData.dragging, (val) => { + updateDragging(val); + }); + useEventListener(button, "touchstart", onButtonDown, { passive: false }); + return { + disabled, + button, + tooltip, + tooltipVisible, + showTooltip, + persistent, + wrapperStyle, + formatValue, + handleMouseEnter, + handleMouseLeave, + onButtonDown, + onKeyDown, + setPosition + }; + }; + +//#endregion +//#region ../../packages/components/slider/src/composables/use-stops.ts + const useStops = (props, initData, minValue, maxValue) => { + const stops = (0, vue.computed)(() => { + if (!props.showStops || props.min > props.max) return []; + if (props.step === "mark" || props.step === 0) { + if (props.step === 0) /* @__PURE__ */ debugWarn("ElSlider", "step should not be 0."); + return []; + } + const stopCount = Math.ceil((props.max - props.min) / props.step); + const stepWidth = 100 * props.step / (props.max - props.min); + const result = Array.from({ length: stopCount - 1 }).map((_, index) => (index + 1) * stepWidth); + if (props.range) return result.filter((step) => { + return step < 100 * (minValue.value - props.min) / (props.max - props.min) || step > 100 * (maxValue.value - props.min) / (props.max - props.min); + }); + else return result.filter((step) => step > 100 * (initData.firstValue - props.min) / (props.max - props.min)); + }); + const getStopStyle = (position) => { + return props.vertical ? { bottom: `${position}%` } : { left: `${position}%` }; + }; + return { + stops, + getStopStyle + }; + }; + +//#endregion +//#region ../../packages/components/slider/src/composables/use-watch.ts + const useWatch = (props, initData, minValue, maxValue, emit, elFormItem) => { + const _emit = (val) => { + emit(UPDATE_MODEL_EVENT, val); + emit(INPUT_EVENT, val); + }; + const valueChanged = () => { + if (props.range) return ![minValue.value, maxValue.value].every((item, index) => item === initData.oldValue[index]); + else return props.modelValue !== initData.oldValue; + }; + const setValues = () => { + if (props.min > props.max) throwError("Slider", "min should not be greater than max."); + const val = props.modelValue; + if (props.range && isArray$1(val)) if (val[1] < props.min) _emit([props.min, props.min]); + else if (val[0] > props.max) _emit([props.max, props.max]); + else if (val[0] < props.min) _emit([props.min, val[1]]); + else if (val[1] > props.max) _emit([val[0], props.max]); + else { + initData.firstValue = val[0]; + initData.secondValue = val[1]; + if (valueChanged()) { + if (props.validateEvent) elFormItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + initData.oldValue = val.slice(); + } + } + else if (!props.range && isNumber(val) && !Number.isNaN(val)) if (val < props.min) _emit(props.min); + else if (val > props.max) _emit(props.max); + else { + initData.firstValue = val; + if (valueChanged()) { + if (props.validateEvent) elFormItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + initData.oldValue = val; + } + } + }; + setValues(); + (0, vue.watch)(() => initData.dragging, (val) => { + if (!val) setValues(); + }); + (0, vue.watch)(() => props.modelValue, (val, oldVal) => { + if (initData.dragging || isArray$1(val) && isArray$1(oldVal) && val.every((item, index) => item === oldVal[index]) && initData.firstValue === val[0] && initData.secondValue === val[1]) return; + setValues(); + }, { deep: true }); + (0, vue.watch)(() => [props.min, props.max], () => { + setValues(); + }); + }; + +//#endregion +//#region ../../packages/components/slider/src/button.ts + const sliderButtonProps = buildProps({ + modelValue: { + type: Number, + default: 0 + }, + vertical: Boolean, + tooltipClass: String, + placement: { + type: String, + values: Ee, + default: "top" + } + }); + const sliderButtonEmits = { [UPDATE_MODEL_EVENT]: (value) => isNumber(value) }; + +//#endregion +//#region ../../packages/components/slider/src/button.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$20 = ["tabindex"]; + var button_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSliderButton", + __name: "button", + props: sliderButtonProps, + emits: sliderButtonEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("slider"); + const initData = (0, vue.reactive)({ + hovering: false, + dragging: false, + isClick: false, + startX: 0, + currentX: 0, + startY: 0, + currentY: 0, + startPosition: 0, + newPosition: 0, + oldValue: props.modelValue + }); + const tooltipPersistent = (0, vue.computed)(() => !showTooltip.value ? false : persistent.value); + const { disabled, button, tooltip, showTooltip, persistent, tooltipVisible, wrapperStyle, formatValue, handleMouseEnter, handleMouseLeave, onButtonDown, onKeyDown, setPosition } = useSliderButton(props, initData, emit); + const { hovering, dragging } = (0, vue.toRefs)(initData); + __expose({ + onButtonDown, + onKeyDown, + setPosition, + hovering, + dragging + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "button", + ref: button, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("button-wrapper"), { + hover: (0, vue.unref)(hovering), + dragging: (0, vue.unref)(dragging) + }]), + style: (0, vue.normalizeStyle)((0, vue.unref)(wrapperStyle)), + tabindex: (0, vue.unref)(disabled) ? void 0 : 0, + onMouseenter: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(handleMouseEnter) && (0, vue.unref)(handleMouseEnter)(...args)), + onMouseleave: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(handleMouseLeave) && (0, vue.unref)(handleMouseLeave)(...args)), + onMousedown: _cache[2] || (_cache[2] = (...args) => (0, vue.unref)(onButtonDown) && (0, vue.unref)(onButtonDown)(...args)), + onFocus: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(handleMouseEnter) && (0, vue.unref)(handleMouseEnter)(...args)), + onBlur: _cache[4] || (_cache[4] = (...args) => (0, vue.unref)(handleMouseLeave) && (0, vue.unref)(handleMouseLeave)(...args)), + onKeydown: _cache[5] || (_cache[5] = (...args) => (0, vue.unref)(onKeyDown) && (0, vue.unref)(onKeyDown)(...args)) + }, [(0, vue.createVNode)((0, vue.unref)(ElTooltip), { + ref_key: "tooltip", + ref: tooltip, + visible: (0, vue.unref)(tooltipVisible), + placement: _ctx.placement, + "fallback-placements": [ + "top", + "bottom", + "right", + "left" + ], + "stop-popper-mouse-event": false, + "popper-class": _ctx.tooltipClass, + disabled: !(0, vue.unref)(showTooltip), + persistent: tooltipPersistent.value + }, { + content: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)((0, vue.unref)(formatValue)), 1)]), + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("button"), { + hover: (0, vue.unref)(hovering), + dragging: (0, vue.unref)(dragging) + }]) }, null, 2)]), + _: 1 + }, 8, [ + "visible", + "placement", + "popper-class", + "disabled", + "persistent" + ])], 46, _hoisted_1$20); + }; + } + }); + +//#endregion +//#region ../../packages/components/slider/src/button.vue + var button_default = button_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/slider/src/marker.ts + const sliderMarkerProps = buildProps({ mark: { + type: definePropType([String, Object]), + default: void 0 + } }); + var marker_default = (0, vue.defineComponent)({ + name: "ElSliderMarker", + props: sliderMarkerProps, + setup(props) { + const ns = useNamespace("slider"); + const label = (0, vue.computed)(() => { + return isString(props.mark) ? props.mark : props.mark.label; + }); + const style = (0, vue.computed)(() => isString(props.mark) ? void 0 : props.mark.style); + return () => (0, vue.h)("div", { + class: ns.e("marks-text"), + style: style.value + }, label.value); + } + }); + +//#endregion +//#region ../../packages/components/slider/src/slider.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$19 = [ + "id", + "role", + "aria-label", + "aria-labelledby" + ]; + const _hoisted_2$12 = { key: 1 }; + var slider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSlider", + __name: "slider", + props: sliderProps, + emits: sliderEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("slider"); + const { t } = useLocale(); + const initData = (0, vue.reactive)({ + firstValue: 0, + secondValue: 0, + oldValue: 0, + dragging: false, + sliderSize: 1 + }); + const { elFormItem, slider, firstButton, secondButton, sliderDisabled, minValue, maxValue, runwayStyle, barStyle, resetSize, emitChange, onSliderWrapperPrevent, onSliderClick, onSliderDown, onSliderMarkerDown, setFirstValue, setSecondValue } = useSlide(props, initData, emit); + const { stops, getStopStyle } = useStops(props, initData, minValue, maxValue); + const { inputId, isLabeledByFormItem } = useFormItemInputId(props, { formItemContext: elFormItem }); + const sliderWrapperSize = useFormSize(); + const sliderInputSize = (0, vue.computed)(() => props.inputSize || sliderWrapperSize.value); + const renderInput = (0, vue.computed)(() => { + return props.showInput && !props.range && props.step !== "mark"; + }); + const groupLabel = (0, vue.computed)(() => { + return props.ariaLabel || t("el.slider.defaultLabel", { + min: props.min, + max: props.max + }); + }); + const firstButtonLabel = (0, vue.computed)(() => { + if (props.range) return props.rangeStartLabel || t("el.slider.defaultRangeStartLabel"); + else return groupLabel.value; + }); + const firstValueText = (0, vue.computed)(() => { + return props.formatValueText ? props.formatValueText(firstValue.value) : `${firstValue.value}`; + }); + const secondButtonLabel = (0, vue.computed)(() => { + return props.rangeEndLabel || t("el.slider.defaultRangeEndLabel"); + }); + const secondValueText = (0, vue.computed)(() => { + return props.formatValueText ? props.formatValueText(secondValue.value) : `${secondValue.value}`; + }); + const sliderKls = (0, vue.computed)(() => [ + ns.b(), + ns.m(sliderWrapperSize.value), + ns.is("vertical", props.vertical), + { [ns.m("with-input")]: renderInput.value } + ]); + const markList = useMarks(props); + useWatch(props, initData, minValue, maxValue, emit, elFormItem); + const sliderInputStep = (0, vue.computed)(() => { + return isNumber(props.step) ? props.step : 1; + }); + const precision = (0, vue.computed)(() => { + const stepValue = isNumber(props.step) ? props.step : 1; + const precisions = [ + props.min, + props.max, + stepValue + ].map((item) => { + const decimal = `${item}`.split(".")[1]; + return decimal ? decimal.length : 0; + }); + return Math.max.apply(null, precisions); + }); + const { sliderWrapper } = useLifecycle(props, initData, resetSize); + const { firstValue, secondValue, sliderSize } = (0, vue.toRefs)(initData); + const updateDragging = (val) => { + initData.dragging = val; + }; + useEventListener(sliderWrapper, "touchstart", onSliderWrapperPrevent, { passive: false }); + useEventListener(sliderWrapper, "touchmove", onSliderWrapperPrevent, { passive: false }); + (0, vue.provide)(sliderContextKey, { + ...(0, vue.toRefs)(props), + sliderSize, + disabled: sliderDisabled, + precision, + markList, + emitChange, + resetSize, + updateDragging + }); + __expose({ onSliderClick }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + id: _ctx.range ? (0, vue.unref)(inputId) : void 0, + ref_key: "sliderWrapper", + ref: sliderWrapper, + class: (0, vue.normalizeClass)(sliderKls.value), + role: _ctx.range ? "group" : void 0, + "aria-label": _ctx.range && !(0, vue.unref)(isLabeledByFormItem) ? groupLabel.value : void 0, + "aria-labelledby": _ctx.range && (0, vue.unref)(isLabeledByFormItem) ? (0, vue.unref)(elFormItem)?.labelId : void 0 + }, [(0, vue.createElementVNode)("div", { + ref_key: "slider", + ref: slider, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("runway"), + { "show-input": renderInput.value }, + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(sliderDisabled)) + ]), + style: (0, vue.normalizeStyle)((0, vue.unref)(runwayStyle)), + onMousedown: _cache[0] || (_cache[0] = (...args) => (0, vue.unref)(onSliderDown) && (0, vue.unref)(onSliderDown)(...args)), + onTouchstartPassive: _cache[1] || (_cache[1] = (...args) => (0, vue.unref)(onSliderDown) && (0, vue.unref)(onSliderDown)(...args)) + }, [ + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("bar")), + style: (0, vue.normalizeStyle)((0, vue.unref)(barStyle)) + }, null, 6), + (0, vue.createVNode)(button_default, { + id: !_ctx.range ? (0, vue.unref)(inputId) : void 0, + ref_key: "firstButton", + ref: firstButton, + "model-value": (0, vue.unref)(firstValue), + vertical: _ctx.vertical, + "tooltip-class": _ctx.tooltipClass, + placement: _ctx.placement, + role: "slider", + "aria-label": _ctx.range || !(0, vue.unref)(isLabeledByFormItem) ? firstButtonLabel.value : void 0, + "aria-labelledby": !_ctx.range && (0, vue.unref)(isLabeledByFormItem) ? (0, vue.unref)(elFormItem)?.labelId : void 0, + "aria-valuemin": _ctx.min, + "aria-valuemax": _ctx.range ? (0, vue.unref)(secondValue) : _ctx.max, + "aria-valuenow": (0, vue.unref)(firstValue), + "aria-valuetext": firstValueText.value, + "aria-orientation": _ctx.vertical ? "vertical" : "horizontal", + "aria-disabled": (0, vue.unref)(sliderDisabled), + "onUpdate:modelValue": (0, vue.unref)(setFirstValue) + }, 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" + ]), + _ctx.range ? ((0, vue.openBlock)(), (0, vue.createBlock)(button_default, { + key: 0, + ref_key: "secondButton", + ref: secondButton, + "model-value": (0, vue.unref)(secondValue), + vertical: _ctx.vertical, + "tooltip-class": _ctx.tooltipClass, + placement: _ctx.placement, + role: "slider", + "aria-label": secondButtonLabel.value, + "aria-valuemin": (0, vue.unref)(firstValue), + "aria-valuemax": _ctx.max, + "aria-valuenow": (0, vue.unref)(secondValue), + "aria-valuetext": secondValueText.value, + "aria-orientation": _ctx.vertical ? "vertical" : "horizontal", + "aria-disabled": (0, vue.unref)(sliderDisabled), + "onUpdate:modelValue": (0, vue.unref)(setSecondValue) + }, null, 8, [ + "model-value", + "vertical", + "tooltip-class", + "placement", + "aria-label", + "aria-valuemin", + "aria-valuemax", + "aria-valuenow", + "aria-valuetext", + "aria-orientation", + "aria-disabled", + "onUpdate:modelValue" + ])) : (0, vue.createCommentVNode)("v-if", true), + _ctx.showStops ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_2$12, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(stops), (item, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("stop")), + style: (0, vue.normalizeStyle)((0, vue.unref)(getStopStyle)(item)) + }, null, 6); + }), 128))])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.unref)(markList).length > 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 2 }, [(0, vue.createElementVNode)("div", null, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(markList), (item, key) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key, + style: (0, vue.normalizeStyle)((0, vue.unref)(getStopStyle)(item.position)), + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("stop"), (0, vue.unref)(ns).e("marks-stop")]) + }, null, 6); + }), 128))]), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("marks")) }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(markList), (item, key) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(marker_default), { + key, + mark: item.mark, + style: (0, vue.normalizeStyle)((0, vue.unref)(getStopStyle)(item.position)), + onMousedown: (0, vue.withModifiers)(($event) => (0, vue.unref)(onSliderMarkerDown)(item.position), ["stop"]) + }, null, 8, [ + "mark", + "style", + "onMousedown" + ]); + }), 128))], 2)], 64)) : (0, vue.createCommentVNode)("v-if", true) + ], 38), renderInput.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElInputNumber), { + key: 0, + ref: "input", + "model-value": (0, vue.unref)(firstValue), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("input")), + step: sliderInputStep.value, + disabled: (0, vue.unref)(sliderDisabled), + controls: _ctx.showInputControls, + min: _ctx.min, + max: _ctx.max, + precision: precision.value, + size: sliderInputSize.value, + "onUpdate:modelValue": (0, vue.unref)(setFirstValue), + onChange: (0, vue.unref)(emitChange) + }, null, 8, [ + "model-value", + "class", + "step", + "disabled", + "controls", + "min", + "max", + "precision", + "size", + "onUpdate:modelValue", + "onChange" + ])) : (0, vue.createCommentVNode)("v-if", true)], 10, _hoisted_1$19); + }; + } + }); + +//#endregion +//#region ../../packages/components/slider/src/slider.vue + var slider_default = slider_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/slider/index.ts + const ElSlider = withInstall(slider_default); + +//#endregion +//#region ../../packages/components/space/src/item.ts + const spaceItemProps = buildProps({ prefixCls: { type: String } }); + const SpaceItem = (0, vue.defineComponent)({ + name: "ElSpaceItem", + props: spaceItemProps, + setup(props, { slots }) { + const ns = useNamespace("space"); + const classes = (0, vue.computed)(() => `${props.prefixCls || ns.b()}__item`); + return () => (0, vue.h)("div", { class: classes.value }, (0, vue.renderSlot)(slots, "default")); + } + }); + +//#endregion +//#region ../../packages/components/space/src/use-space.ts + const SIZE_MAP = { + small: 8, + default: 12, + large: 16 + }; + function useSpace(props) { + const ns = useNamespace("space"); + const classes = (0, vue.computed)(() => [ + ns.b(), + ns.m(props.direction), + props.class + ]); + const horizontalSize = (0, vue.ref)(0); + const verticalSize = (0, vue.ref)(0); + const containerStyle = (0, vue.computed)(() => { + return [ + props.wrap || props.fill ? { flexWrap: "wrap" } : {}, + { alignItems: props.alignment }, + { + rowGap: `${verticalSize.value}px`, + columnGap: `${horizontalSize.value}px` + }, + props.style + ]; + }); + const itemStyle = (0, vue.computed)(() => { + return props.fill ? { + flexGrow: 1, + minWidth: `${props.fillRatio}%` + } : {}; + }); + (0, vue.watchEffect)(() => { + const { size = "small", wrap, direction: dir, fill } = props; + if (isArray$1(size)) { + const [h = 0, v = 0] = size; + horizontalSize.value = h; + verticalSize.value = v; + } else { + let val; + if (isNumber(size)) val = size; + else val = SIZE_MAP[size || "small"] || SIZE_MAP.small; + if ((wrap || fill) && dir === "horizontal") horizontalSize.value = verticalSize.value = val; + else if (dir === "horizontal") { + horizontalSize.value = val; + verticalSize.value = 0; + } else { + verticalSize.value = val; + horizontalSize.value = 0; + } + } + }); + return { + classes, + containerStyle, + itemStyle + }; + } + +//#endregion +//#region ../../packages/components/space/src/space.ts + const spaceProps = buildProps({ + direction: { + type: String, + values: ["horizontal", "vertical"], + default: "horizontal" + }, + class: { + type: definePropType([ + String, + Object, + Array + ]), + default: "" + }, + style: { + type: definePropType([ + String, + Array, + Object + ]), + default: "" + }, + alignment: { + type: definePropType(String), + default: "center" + }, + prefixCls: { type: String }, + spacer: { + type: definePropType([ + Object, + String, + Number, + Array + ]), + default: null, + validator: (val) => (0, vue.isVNode)(val) || isNumber(val) || isString(val) + }, + wrap: Boolean, + fill: Boolean, + fillRatio: { + type: Number, + default: 100 + }, + size: { + type: [ + String, + Array, + Number + ], + values: componentSizes, + validator: (val) => { + return isNumber(val) || isArray$1(val) && val.length === 2 && val.every(isNumber); + } + } + }); + const Space = (0, vue.defineComponent)({ + name: "ElSpace", + props: spaceProps, + setup(props, { slots }) { + const { classes, containerStyle, itemStyle } = useSpace(props); + function extractChildren(children, parentKey = "", extractedChildren = []) { + const { prefixCls } = props; + children.forEach((child, loopKey) => { + if (isFragment(child)) { + if (isArray$1(child.children)) child.children.forEach((nested, key) => { + if (isFragment(nested) && isArray$1(nested.children)) extractChildren(nested.children, `${parentKey + key}-`, extractedChildren); + else if ((0, vue.isVNode)(nested) && nested?.type === vue.Comment) extractedChildren.push(nested); + else extractedChildren.push((0, vue.createVNode)(SpaceItem, { + style: itemStyle.value, + prefixCls, + key: `nested-${parentKey + key}` + }, { default: () => [nested] }, PatchFlags.PROPS | PatchFlags.STYLE, ["style", "prefixCls"])); + }); + } else if (isValidElementNode(child)) extractedChildren.push((0, vue.createVNode)(SpaceItem, { + style: itemStyle.value, + prefixCls, + key: `LoopKey${parentKey + loopKey}` + }, { default: () => [child] }, PatchFlags.PROPS | PatchFlags.STYLE, ["style", "prefixCls"])); + }); + return extractedChildren; + } + return () => { + const { spacer, direction } = props; + const children = (0, vue.renderSlot)(slots, "default", { key: 0 }, () => []); + if ((children.children ?? []).length === 0) return null; + if (isArray$1(children.children)) { + let extractedChildren = extractChildren(children.children); + if (spacer) { + const len = extractedChildren.length - 1; + extractedChildren = extractedChildren.reduce((acc, child, idx) => { + const children = [...acc, child]; + if (idx !== len) children.push((0, vue.createVNode)("span", { + style: [itemStyle.value, direction === "vertical" ? "width: 100%" : null], + key: idx + }, [(0, vue.isVNode)(spacer) ? spacer : (0, vue.createTextVNode)(spacer, PatchFlags.TEXT)], PatchFlags.STYLE)); + return children; + }, []); + } + return (0, vue.createVNode)("div", { + class: classes.value, + style: containerStyle.value + }, extractedChildren, PatchFlags.STYLE | PatchFlags.CLASS); + } + return children.children; + }; + } + }); + +//#endregion +//#region ../../packages/components/space/index.ts + const ElSpace = withInstall(Space); + +//#endregion +//#region ../../packages/components/statistic/src/statistic.ts +/** + * @deprecated Removed after 3.0.0, Use `StatisticProps` instead. + */ + const statisticProps = buildProps({ + decimalSeparator: { + type: String, + default: "." + }, + groupSeparator: { + type: String, + default: "," + }, + precision: { + type: Number, + default: 0 + }, + formatter: Function, + value: { + type: definePropType([Number, Object]), + default: 0 + }, + prefix: String, + suffix: String, + title: String, + valueStyle: { type: definePropType([ + String, + Object, + Array + ]) } + }); + +//#endregion +//#region ../../packages/components/statistic/src/statistic.vue?vue&type=script&setup=true&lang.ts + var statistic_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElStatistic", + __name: "statistic", + props: statisticProps, + setup(__props, { expose: __expose }) { + const props = __props; + const ns = useNamespace("statistic"); + const displayValue = (0, vue.computed)(() => { + const { value, formatter, precision, decimalSeparator, groupSeparator } = props; + if (isFunction$1(formatter)) return formatter(value); + if (!isNumber(value) || Number.isNaN(value)) return value; + let [integer, decimal = ""] = String(value).split("."); + decimal = decimal.padEnd(precision, "0").slice(0, precision > 0 ? precision : 0); + integer = integer.replace(/\B(?=(\d{3})+(?!\d))/g, groupSeparator); + return [integer, decimal].join(decimal ? decimalSeparator : ""); + }); + __expose({ displayValue }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [_ctx.$slots.title || __props.title ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("head")) + }, [(0, vue.renderSlot)(_ctx.$slots, "title", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) }, [ + _ctx.$slots.prefix || __props.prefix ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("prefix")) + }, [(0, vue.renderSlot)(_ctx.$slots, "prefix", {}, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(__props.prefix), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("number")), + style: (0, vue.normalizeStyle)(__props.valueStyle) + }, (0, vue.toDisplayString)(displayValue.value), 7), + _ctx.$slots.suffix || __props.suffix ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("suffix")) + }, [(0, vue.renderSlot)(_ctx.$slots, "suffix", {}, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(__props.suffix), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/statistic/src/statistic.vue + var statistic_default = statistic_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/statistic/index.ts + const ElStatistic = withInstall(statistic_default); + +//#endregion +//#region ../../packages/components/countdown/src/countdown.ts +/** + * @deprecated Removed after 3.0.0, Use `CountdownProps` instead. + */ + const countdownProps = buildProps({ + format: { + type: String, + default: "HH:mm:ss" + }, + prefix: String, + suffix: String, + title: String, + value: { + type: definePropType([Number, Object]), + default: 0 + }, + valueStyle: { type: definePropType([ + String, + Object, + Array + ]) } + }); + const countdownEmits = { + finish: () => true, + [CHANGE_EVENT]: (value) => isNumber(value) + }; + +//#endregion +//#region ../../packages/components/countdown/src/utils.ts + const timeUnits$1 = [ + ["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] + ]; + const getTime = (value) => { + return isNumber(value) ? new Date(value).getTime() : value.valueOf(); + }; + const formatTime$1 = (timestamp, format) => { + let timeLeft = timestamp; + return timeUnits$1.reduce((current, [name, unit]) => { + const replaceRegex = new RegExp(`${name}+(?![^\\[\\]]*\\])`, "g"); + if (replaceRegex.test(current)) { + const value = Math.floor(timeLeft / unit); + timeLeft -= value * unit; + return current.replace(replaceRegex, (match) => String(value).padStart(match.length, "0")); + } + return current; + }, format).replace(/\[([^\]]*)]/g, "$1"); + }; + +//#endregion +//#region ../../packages/components/countdown/src/countdown.vue?vue&type=script&setup=true&lang.ts + var countdown_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElCountdown", + __name: "countdown", + props: countdownProps, + emits: countdownEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + let timer; + const rawValue = (0, vue.ref)(0); + const displayValue = (0, vue.computed)(() => formatTime$1(rawValue.value, props.format)); + const formatter = (val) => formatTime$1(val, props.format); + const stopTimer = () => { + if (timer) { + cAF(timer); + timer = void 0; + } + }; + const startTimer = () => { + const timestamp = getTime(props.value); + const frameFunc = () => { + let diff = timestamp - Date.now(); + emit(CHANGE_EVENT, diff); + if (diff <= 0) { + diff = 0; + stopTimer(); + emit("finish"); + } else timer = rAF(frameFunc); + rawValue.value = diff; + }; + timer = rAF(frameFunc); + }; + (0, vue.onMounted)(() => { + rawValue.value = getTime(props.value) - Date.now(); + (0, vue.watch)(() => [props.value, props.format], () => { + stopTimer(); + startTimer(); + }, { immediate: true }); + }); + (0, vue.onBeforeUnmount)(() => { + stopTimer(); + }); + __expose({ displayValue }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElStatistic), { + value: rawValue.value, + title: __props.title, + prefix: __props.prefix, + suffix: __props.suffix, + "value-style": __props.valueStyle, + formatter + }, (0, vue.createSlots)({ _: 2 }, [(0, vue.renderList)(_ctx.$slots, (_, name) => { + return { + name, + fn: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, name)]) + }; + })]), 1032, [ + "value", + "title", + "prefix", + "suffix", + "value-style" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/countdown/src/countdown.vue + var countdown_default = countdown_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/countdown/index.ts + const ElCountdown = withInstall(countdown_default); + +//#endregion +//#region ../../packages/components/steps/src/steps.ts +/** + * @deprecated Removed after 3.0.0, Use `StepsProps` instead. + */ + const stepsProps = buildProps({ + 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" + } + }); + const stepsEmits = { [CHANGE_EVENT]: (newVal, oldVal) => [newVal, oldVal].every(isNumber) }; + +//#endregion +//#region ../../packages/components/steps/src/tokens.ts + const STEPS_INJECTION_KEY = "ElSteps"; + +//#endregion +//#region ../../packages/components/steps/src/steps.vue?vue&type=script&setup=true&lang.ts + var steps_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSteps", + __name: "steps", + props: stepsProps, + emits: stepsEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("steps"); + const { children: steps, addChild: addStep, removeChild: removeStep, ChildrenSorter: StepsSorter } = useOrderedChildren((0, vue.getCurrentInstance)(), "ElStep"); + (0, vue.watch)(steps, () => { + steps.value.forEach((instance, index) => { + instance.setIndex(index); + }); + }); + (0, vue.provide)(STEPS_INJECTION_KEY, { + props, + steps, + addStep, + removeStep + }); + (0, vue.watch)(() => props.active, (newVal, oldVal) => { + emit(CHANGE_EVENT, newVal, oldVal); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), (0, vue.unref)(ns).m(__props.simple ? "simple" : __props.direction)]) }, [(0, vue.renderSlot)(_ctx.$slots, "default"), (0, vue.createVNode)((0, vue.unref)(StepsSorter))], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/steps/src/steps.vue + var steps_default$1 = steps_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/steps/src/item.ts +/** + * @deprecated Removed after 3.0.0, Use `StepProps` instead. + */ + const stepProps = buildProps({ + title: { + type: String, + default: "" + }, + icon: { type: iconPropType }, + description: { + type: String, + default: "" + }, + status: { + type: String, + values: [ + "", + "wait", + "process", + "finish", + "error", + "success" + ], + default: "" + } + }); + +//#endregion +//#region ../../packages/components/steps/src/item.vue?vue&type=script&setup=true&lang.ts + var item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElStep", + __name: "item", + props: stepProps, + setup(__props) { + const props = __props; + const ns = useNamespace("step"); + const index = (0, vue.ref)(-1); + const lineStyle = (0, vue.ref)({}); + const internalStatus = (0, vue.ref)(""); + const parent = (0, vue.inject)(STEPS_INJECTION_KEY); + const currentInstance = (0, vue.getCurrentInstance)(); + let stepDiff = 0; + let beforeActive = 0; + (0, vue.onMounted)(() => { + (0, vue.watch)([ + () => parent.props.active, + () => parent.props.processStatus, + () => parent.props.finishStatus + ], ([active], [oldActive]) => { + beforeActive = oldActive || 0; + stepDiff = active - beforeActive; + updateStatus(active); + }, { immediate: true }); + }); + const currentStatus = (0, vue.computed)(() => { + return props.status || internalStatus.value; + }); + const prevInternalStatus = (0, vue.computed)(() => { + const prevStep = parent.steps.value[index.value - 1]; + return prevStep ? prevStep.internalStatus.value : "wait"; + }); + const isCenter = (0, vue.computed)(() => { + return parent.props.alignCenter; + }); + const isVertical = (0, vue.computed)(() => { + return parent.props.direction === "vertical"; + }); + const isSimple = (0, vue.computed)(() => { + return parent.props.simple; + }); + const stepsCount = (0, vue.computed)(() => { + return parent.steps.value.length; + }); + const isLast = (0, vue.computed)(() => { + return parent.steps.value[stepsCount.value - 1]?.uid === currentInstance.uid; + }); + const space = (0, vue.computed)(() => { + return isSimple.value ? "" : parent.props.space; + }); + const containerKls = (0, vue.computed)(() => { + return [ + ns.b(), + ns.is(isSimple.value ? "simple" : parent.props.direction), + ns.is("flex", isLast.value && !space.value && !isCenter.value), + ns.is("center", isCenter.value && !isVertical.value && !isSimple.value) + ]; + }); + const style = (0, vue.computed)(() => { + const style = { flexBasis: isNumber(space.value) ? `${space.value}px` : space.value ? space.value : `${100 / (stepsCount.value - (isCenter.value ? 0 : 1))}%` }; + if (isVertical.value) return style; + if (isLast.value) style.maxWidth = `${100 / stepsCount.value}%`; + return style; + }); + const setIndex = (val) => { + index.value = val; + }; + const calcProgress = (status) => { + const isWait = status === "wait"; + const style = { transitionDelay: `${Math.abs(stepDiff) === 1 ? 0 : stepDiff > 0 ? (index.value + 1 - beforeActive) * 150 : -(index.value + 1 - parent.props.active) * 150}ms` }; + const step = status === parent.props.processStatus || isWait ? 0 : 100; + style.borderWidth = step && !isSimple.value ? "1px" : 0; + style[parent.props.direction === "vertical" ? "height" : "width"] = `${step}%`; + lineStyle.value = style; + }; + const updateStatus = (activeIndex) => { + if (activeIndex > index.value) internalStatus.value = parent.props.finishStatus; + else if (activeIndex === index.value && prevInternalStatus.value !== "error") internalStatus.value = parent.props.processStatus; + else internalStatus.value = "wait"; + const prevChild = parent.steps.value[index.value - 1]; + if (prevChild) prevChild.calcProgress(internalStatus.value); + }; + const stepItemState = { + uid: currentInstance.uid, + getVnode: () => currentInstance.vnode, + currentStatus, + internalStatus, + setIndex, + calcProgress + }; + parent.addStep(stepItemState); + (0, vue.onBeforeUnmount)(() => { + parent.removeStep(stepItemState); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + style: (0, vue.normalizeStyle)(style.value), + class: (0, vue.normalizeClass)(containerKls.value) + }, [ + (0, vue.createCommentVNode)(" icon & line "), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("head"), (0, vue.unref)(ns).is(currentStatus.value)]) }, [!isSimple.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("line")) + }, [(0, vue.createElementVNode)("i", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("line-inner")), + style: (0, vue.normalizeStyle)(lineStyle.value) + }, null, 6)], 2)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon"), (0, vue.unref)(ns).is(__props.icon || _ctx.$slots.icon ? "icon" : "text")]) }, [(0, vue.renderSlot)(_ctx.$slots, "icon", {}, () => [__props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon-inner")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + }, 8, ["class"])) : currentStatus.value === "success" ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon-inner"), (0, vue.unref)(ns).is("status")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(check_default))]), + _: 1 + }, 8, ["class"])) : currentStatus.value === "error" ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 2, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon-inner"), (0, vue.unref)(ns).is("status")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + }, 8, ["class"])) : !isSimple.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 3, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon-inner")) + }, (0, vue.toDisplayString)(index.value + 1), 3)) : (0, vue.createCommentVNode)("v-if", true)])], 2)], 2), + (0, vue.createCommentVNode)(" title & description "), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("main")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("title"), (0, vue.unref)(ns).is(currentStatus.value)]) }, [(0, vue.renderSlot)(_ctx.$slots, "title", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 2), isSimple.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("arrow")) + }, null, 2)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("description"), (0, vue.unref)(ns).is(currentStatus.value)]) + }, [(0, vue.renderSlot)(_ctx.$slots, "description", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.description), 1)])], 2))], 2) + ], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/steps/src/item.vue + var item_default = item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/steps/index.ts + const ElSteps = withInstall(steps_default$1, { Step: item_default }); + const ElStep = withNoopInstall(item_default); + +//#endregion +//#region ../../packages/components/switch/src/switch.ts +/** + * @deprecated Removed after 3.0.0, Use `SwitchProps` instead. + */ + const switchProps = buildProps({ + modelValue: { + type: [ + Boolean, + String, + Number + ], + default: false + }, + disabled: { + type: Boolean, + default: void 0 + }, + loading: Boolean, + size: { + type: String, + validator: isValidComponentSize + }, + width: { + type: [String, Number], + default: "" + }, + inlinePrompt: Boolean, + inactiveActionIcon: { type: iconPropType }, + activeActionIcon: { type: iconPropType }, + activeIcon: { type: iconPropType }, + inactiveIcon: { type: iconPropType }, + activeText: { + type: String, + default: "" + }, + inactiveText: { + type: String, + default: "" + }, + activeValue: { + type: [ + Boolean, + String, + Number + ], + default: true + }, + inactiveValue: { + type: [ + Boolean, + String, + Number + ], + default: false + }, + name: { + type: String, + default: "" + }, + validateEvent: { + type: Boolean, + default: true + }, + beforeChange: { type: definePropType(Function) }, + id: String, + tabindex: { type: [String, Number] }, + ...useAriaProps(["ariaLabel"]) + }); + const switchEmits = { + [UPDATE_MODEL_EVENT]: (val) => isBoolean(val) || isString(val) || isNumber(val), + [CHANGE_EVENT]: (val) => isBoolean(val) || isString(val) || isNumber(val), + [INPUT_EVENT]: (val) => isBoolean(val) || isString(val) || isNumber(val) + }; + +//#endregion +//#region ../../packages/components/switch/src/switch.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$18 = [ + "id", + "aria-checked", + "aria-disabled", + "aria-label", + "name", + "true-value", + "false-value", + "disabled", + "tabindex" + ]; + const _hoisted_2$11 = ["aria-hidden"]; + const _hoisted_3$4 = { key: 1 }; + const _hoisted_4$3 = { key: 1 }; + const _hoisted_5$1 = ["aria-hidden"]; + const COMPONENT_NAME$6 = "ElSwitch"; + var switch_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$6, + __name: "switch", + props: switchProps, + emits: switchEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const { formItem } = useFormItem(); + const switchSize = useFormSize(); + const ns = useNamespace("switch"); + const { inputId } = useFormItemInputId(props, { formItemContext: formItem }); + const switchDisabled = useFormDisabled((0, vue.computed)(() => { + if (props.loading) return true; + })); + const isControlled = (0, vue.ref)(props.modelValue !== false); + const input = (0, vue.shallowRef)(); + const switchKls = (0, vue.computed)(() => [ + ns.b(), + ns.m(switchSize.value), + ns.is("disabled", switchDisabled.value), + ns.is("checked", checked.value) + ]); + const labelLeftKls = (0, vue.computed)(() => [ + ns.e("label"), + ns.em("label", "left"), + ns.is("active", !checked.value) + ]); + const labelRightKls = (0, vue.computed)(() => [ + ns.e("label"), + ns.em("label", "right"), + ns.is("active", checked.value) + ]); + const coreStyle = (0, vue.computed)(() => ({ width: addUnit(props.width) })); + (0, vue.watch)(() => props.modelValue, () => { + isControlled.value = true; + }); + const actualValue = (0, vue.computed)(() => { + return isControlled.value ? props.modelValue : false; + }); + const checked = (0, vue.computed)(() => actualValue.value === props.activeValue); + if (![props.activeValue, props.inactiveValue].includes(actualValue.value)) { + emit(UPDATE_MODEL_EVENT, props.inactiveValue); + emit(CHANGE_EVENT, props.inactiveValue); + emit(INPUT_EVENT, props.inactiveValue); + } + (0, vue.watch)(checked, (val) => { + input.value.checked = val; + if (props.validateEvent) formItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + const handleChange = () => { + const val = checked.value ? props.inactiveValue : props.activeValue; + emit(UPDATE_MODEL_EVENT, val); + emit(CHANGE_EVENT, val); + emit(INPUT_EVENT, val); + (0, vue.nextTick)(() => { + input.value.checked = checked.value; + }); + }; + const switchValue = () => { + if (switchDisabled.value) return; + const { beforeChange } = props; + if (!beforeChange) { + handleChange(); + return; + } + const shouldChange = beforeChange(); + if (![isPromise(shouldChange), isBoolean(shouldChange)].includes(true)) throwError(COMPONENT_NAME$6, "beforeChange must return type `Promise` or `boolean`"); + if (isPromise(shouldChange)) shouldChange.then((result) => { + if (result) handleChange(); + }).catch((e) => { + /* @__PURE__ */ debugWarn(COMPONENT_NAME$6, `some error occurred: ${e}`); + }); + else if (shouldChange) handleChange(); + }; + const focus = () => { + input.value?.focus?.(); + }; + (0, vue.onMounted)(() => { + input.value.checked = checked.value; + }); + __expose({ + focus, + checked + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)(switchKls.value), + onClick: (0, vue.withModifiers)(switchValue, ["prevent"]) + }, [ + (0, vue.createElementVNode)("input", { + id: (0, vue.unref)(inputId), + ref_key: "input", + ref: input, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("input")), + type: "checkbox", + role: "switch", + "aria-checked": checked.value, + "aria-disabled": (0, vue.unref)(switchDisabled), + "aria-label": __props.ariaLabel, + name: __props.name, + "true-value": __props.activeValue, + "false-value": __props.inactiveValue, + disabled: (0, vue.unref)(switchDisabled), + tabindex: __props.tabindex, + onChange: handleChange, + onKeydown: (0, vue.withKeys)(switchValue, ["enter"]) + }, null, 42, _hoisted_1$18), + !__props.inlinePrompt && (__props.inactiveIcon || __props.inactiveText || _ctx.$slots.inactive) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)(labelLeftKls.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "inactive", {}, () => [__props.inactiveIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.inactiveIcon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), !__props.inactiveIcon && __props.inactiveText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + "aria-hidden": checked.value + }, (0, vue.toDisplayString)(__props.inactiveText), 9, _hoisted_2$11)) : (0, vue.createCommentVNode)("v-if", true)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("core")), + style: (0, vue.normalizeStyle)(coreStyle.value) + }, [__props.inlinePrompt ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("inner")) + }, [!checked.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("inner-wrapper")) + }, [(0, vue.renderSlot)(_ctx.$slots, "inactive", {}, () => [__props.inactiveIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.inactiveIcon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), !__props.inactiveIcon && __props.inactiveText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_3$4, (0, vue.toDisplayString)(__props.inactiveText), 1)) : (0, vue.createCommentVNode)("v-if", true)])], 2)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("inner-wrapper")) + }, [(0, vue.renderSlot)(_ctx.$slots, "active", {}, () => [__props.activeIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.activeIcon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), !__props.activeIcon && __props.activeText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_4$3, (0, vue.toDisplayString)(__props.activeText), 1)) : (0, vue.createCommentVNode)("v-if", true)])], 2))], 2)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("action")) }, [__props.loading ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).is("loading")) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(loading_default))]), + _: 1 + }, 8, ["class"])) : checked.value ? (0, vue.renderSlot)(_ctx.$slots, "active-action", { key: 1 }, () => [__props.activeActionIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.activeActionIcon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true)]) : !checked.value ? (0, vue.renderSlot)(_ctx.$slots, "inactive-action", { key: 2 }, () => [__props.inactiveActionIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.inactiveActionIcon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true)]) : (0, vue.createCommentVNode)("v-if", true)], 2)], 6), + !__props.inlinePrompt && (__props.activeIcon || __props.activeText || _ctx.$slots.active) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + class: (0, vue.normalizeClass)(labelRightKls.value) + }, [(0, vue.renderSlot)(_ctx.$slots, "active", {}, () => [__props.activeIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { key: 0 }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.activeIcon)))]), + _: 1 + })) : (0, vue.createCommentVNode)("v-if", true), !__props.activeIcon && __props.activeText ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 1, + "aria-hidden": !checked.value + }, (0, vue.toDisplayString)(__props.activeText), 9, _hoisted_5$1)) : (0, vue.createCommentVNode)("v-if", true)])], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/switch/src/switch.vue + var switch_default = switch_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/switch/index.ts + const ElSwitch = withInstall(switch_default); + +//#endregion +//#region ../../packages/components/table/src/util.ts + const getCell = function(event) { + return event.target?.closest("td"); + }; + const orderBy = function(array, sortKey, reverse, sortMethod, sortBy) { + if (!sortKey && !sortMethod && (!sortBy || isArray$1(sortBy) && !sortBy.length)) return array; + if (isString(reverse)) reverse = reverse === "descending" ? -1 : 1; + else reverse = reverse && reverse < 0 ? -1 : 1; + const getKey = sortMethod ? null : function(value, index) { + if (sortBy) return flatMap(castArray$1(sortBy), (by) => { + if (isString(by)) return get(value, by); + else return by(value, index, array); + }); + if (sortKey !== "$key") { + if (isObject$1(value) && "$value" in value) value = value.$value; + } + return [isObject$1(value) ? sortKey ? get(value, sortKey) : null : value]; + }; + const compare = function(a, b) { + if (sortMethod) return sortMethod(a.value, b.value); + for (let i = 0, len = a.key?.length ?? 0; i < len; i++) { + if (a.key?.[i] < b.key?.[i]) return -1; + if (a.key?.[i] > b.key?.[i]) return 1; + } + return 0; + }; + return array.map((value, index) => { + return { + value, + index, + key: getKey ? getKey(value, index) : null + }; + }).sort((a, b) => { + let order = compare(a, b); + if (!order) order = a.index - b.index; + return order * +reverse; + }).map((item) => item.value); + }; + const getColumnById = function(table, columnId) { + let column = null; + table.columns.forEach((item) => { + if (item.id === columnId) column = item; + }); + return column; + }; + const getColumnByKey = function(table, columnKey) { + let column = null; + for (let i = 0; i < table.columns.length; i++) { + const item = table.columns[i]; + if (item.columnKey === columnKey) { + column = item; + break; + } + } + if (!column) throwError("ElTable", `No column matching with column-key: ${columnKey}`); + return column; + }; + const getColumnByCell = function(table, cell, namespace) { + const matches = (cell.className || "").match(new RegExp(`${namespace}-table_[^\\s]+`, "gm")); + if (matches) return getColumnById(table, matches[0]); + return null; + }; + const getRowIdentity = (row, rowKey) => { + if (!row) throw new Error("Row is required when get row identity"); + if (isString(rowKey)) { + if (!rowKey.includes(".")) return `${row[rowKey]}`; + const key = rowKey.split("."); + let current = row; + for (const element of key) current = current[element]; + return `${current}`; + } else if (isFunction$1(rowKey)) return rowKey.call(null, row); + return ""; + }; + const getKeysMap = function(array, rowKey, flatten = false, childrenKey = "children") { + const data = array || []; + const arrayMap = {}; + data.forEach((row, index) => { + arrayMap[getRowIdentity(row, rowKey)] = { + row, + index + }; + if (flatten) { + const children = row[childrenKey]; + if (isArray$1(children)) Object.assign(arrayMap, getKeysMap(children, rowKey, true, childrenKey)); + } + }); + return arrayMap; + }; + function mergeOptions(defaults, config) { + const options = {}; + let key; + for (key in defaults) options[key] = defaults[key]; + for (key in config) if (hasOwn(config, key)) { + const value = config[key]; + if (!isUndefined(value)) options[key] = value; + } + return options; + } + function parseWidth(width) { + if (width === "") return width; + if (!isUndefined(width)) { + width = Number.parseInt(width, 10); + if (Number.isNaN(width)) width = ""; + } + return width; + } + function parseMinWidth(minWidth) { + if (minWidth === "") return minWidth; + if (!isUndefined(minWidth)) { + minWidth = parseWidth(minWidth); + if (Number.isNaN(minWidth)) minWidth = 80; + } + return minWidth; + } + function parseHeight(height) { + if (isNumber(height)) return height; + if (isString(height)) if (/^\d+(?:px)?$/.test(height)) return Number.parseInt(height, 10); + else return height; + return null; + } + function compose(...funcs) { + if (funcs.length === 0) return (arg) => arg; + if (funcs.length === 1) return funcs[0]; + return funcs.reduce((a, b) => (...args) => a(b(...args))); + } + function toggleRowStatus(statusArr, row, newVal, tableTreeProps, selectable, rowIndex, rowKey) { + let _rowIndex = rowIndex ?? 0; + let changed = false; + const getIndex = () => { + if (!rowKey) return statusArr.indexOf(row); + const id = getRowIdentity(row, rowKey); + return statusArr.findIndex((item) => getRowIdentity(item, rowKey) === id); + }; + const index = getIndex(); + const included = index !== -1; + const isRowSelectable = selectable?.call(null, row, _rowIndex); + const toggleStatus = (type) => { + if (type === "add") statusArr.push(row); + else statusArr.splice(index, 1); + changed = true; + }; + const getChildrenCount = (row) => { + let count = 0; + const children = tableTreeProps?.children && row[tableTreeProps.children]; + if (children && isArray$1(children)) { + count += children.length; + children.forEach((item) => { + count += getChildrenCount(item); + }); + } + return count; + }; + if (!selectable || isRowSelectable) if (isBoolean(newVal)) { + if (newVal && !included) toggleStatus("add"); + else if (!newVal && included) toggleStatus("remove"); + } else included ? toggleStatus("remove") : toggleStatus("add"); + if (!tableTreeProps?.checkStrictly && tableTreeProps?.children && isArray$1(row[tableTreeProps.children])) row[tableTreeProps.children].forEach((item) => { + const childChanged = toggleRowStatus(statusArr, item, newVal ?? !included, tableTreeProps, selectable, _rowIndex + 1, rowKey); + _rowIndex += getChildrenCount(item) + 1; + if (childChanged) changed = childChanged; + }); + return changed; + } + function walkTreeNode(root, cb, childrenKey = "children", lazyKey = "hasChildren", lazy = false) { + const isNil = (array) => !(isArray$1(array) && array.length); + function _walker(parent, children, level) { + cb(parent, children, level); + children.forEach((item) => { + if (item[lazyKey] && lazy) { + cb(item, null, level + 1); + return; + } + const children = item[childrenKey]; + if (!isNil(children)) _walker(item, children, level + 1); + }); + } + root.forEach((item) => { + if (item[lazyKey] && lazy) { + cb(item, null, 0); + return; + } + const children = item[childrenKey]; + if (!isNil(children)) _walker(item, children, 0); + }); + } + const getTableOverflowTooltipProps = (props, innerText, row, column) => { + const popperOptions = { + strategy: "fixed", + ...props.popperOptions + }; + const tooltipFormatterContent = isFunction$1(column?.tooltipFormatter) ? column.tooltipFormatter({ + row, + column, + cellValue: getProp(row, column.property).value + }) : void 0; + if ((0, vue.isVNode)(tooltipFormatterContent)) return { + slotContent: tooltipFormatterContent, + content: null, + ...props, + popperOptions + }; + return { + slotContent: null, + content: tooltipFormatterContent ?? innerText, + ...props, + popperOptions + }; + }; + let removePopper = null; + function createTablePopper(props, popperContent, row, column, trigger, table) { + const tableOverflowTooltipProps = getTableOverflowTooltipProps(props, popperContent, row, column); + const mergedProps = { + ...tableOverflowTooltipProps, + slotContent: void 0 + }; + if (removePopper?.trigger === trigger) { + const comp = removePopper.vm?.component; + merge(comp?.props, mergedProps); + if (comp && tableOverflowTooltipProps.slotContent) comp.slots.content = () => [tableOverflowTooltipProps.slotContent]; + return; + } + removePopper?.(); + const parentNode = table?.refs.tableWrapper; + const ns = parentNode?.dataset.prefix; + const vm = (0, vue.createVNode)(ElTooltip, { + virtualTriggering: true, + virtualRef: trigger, + appendTo: parentNode, + placement: "top", + transition: "none", + offset: 0, + hideAfter: 0, + ...mergedProps + }, tableOverflowTooltipProps.slotContent ? { content: () => tableOverflowTooltipProps.slotContent } : void 0); + vm.appContext = { + ...table.appContext, + ...table + }; + const container = document.createElement("div"); + (0, vue.render)(vm, container); + vm.component.exposed.onOpen(); + const scrollContainer = parentNode?.querySelector(`.${ns}-scrollbar__wrap`); + removePopper = () => { + if (vm.component?.exposed?.onClose) vm.component.exposed.onClose(); + (0, vue.render)(null, container); + const currentRemovePopper = removePopper; + scrollContainer?.removeEventListener("scroll", currentRemovePopper); + currentRemovePopper.trigger = void 0; + currentRemovePopper.vm = void 0; + removePopper = null; + }; + removePopper.trigger = trigger ?? void 0; + removePopper.vm = vm; + scrollContainer?.addEventListener("scroll", removePopper); + } + function getCurrentColumns(column) { + if (column.children) return flatMap(column.children, getCurrentColumns); + else return [column]; + } + function getColSpan(colSpan, column) { + return colSpan + column.colSpan; + } + const isFixedColumn = (index, fixed, store, realColumns) => { + let start = 0; + let after = index; + const columns = store.states.columns.value; + if (realColumns) { + const curColumns = getCurrentColumns(realColumns[index]); + start = columns.slice(0, columns.indexOf(curColumns[0])).reduce(getColSpan, 0); + after = start + curColumns.reduce(getColSpan, 0) - 1; + } else start = index; + let fixedLayout; + switch (fixed) { + case "left": + if (after < store.states.fixedLeafColumnsLength.value) fixedLayout = "left"; + break; + case "right": + if (start >= columns.length - store.states.rightFixedLeafColumnsLength.value) fixedLayout = "right"; + break; + default: if (after < store.states.fixedLeafColumnsLength.value) fixedLayout = "left"; + else if (start >= columns.length - store.states.rightFixedLeafColumnsLength.value) fixedLayout = "right"; + } + return fixedLayout ? { + direction: fixedLayout, + start, + after + } : {}; + }; + const getFixedColumnsClass = (namespace, index, fixed, store, realColumns, offset = 0) => { + const classes = []; + const { direction, start, after } = isFixedColumn(index, fixed, store, realColumns); + if (direction) { + const isLeft = direction === "left"; + classes.push(`${namespace}-fixed-column--${direction}`); + if (isLeft && after + offset === store.states.fixedLeafColumnsLength.value - 1) classes.push("is-last-column"); + else if (!isLeft && start - offset === store.states.columns.value.length - store.states.rightFixedLeafColumnsLength.value) classes.push("is-first-column"); + } + return classes; + }; + function getOffset(offset, column) { + return offset + (isNull(column.realWidth) || Number.isNaN(column.realWidth) ? Number(column.width) : column.realWidth); + } + const getFixedColumnOffset = (index, fixed, store, realColumns) => { + const { direction, start = 0, after = 0 } = isFixedColumn(index, fixed, store, realColumns); + if (!direction) return; + const styles = {}; + const isLeft = direction === "left"; + const columns = store.states.columns.value; + if (isLeft) styles.left = columns.slice(0, start).reduce(getOffset, 0); + else styles.right = columns.slice(after + 1).reverse().reduce(getOffset, 0); + return styles; + }; + const ensurePosition = (style, key) => { + if (!style) return; + if (!Number.isNaN(style[key])) style[key] = `${style[key]}px`; + }; + function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!(0, vue.isVNode)(child)) return true; + if (child.type === vue.Comment) return false; + if (child.type === vue.Fragment && !ensureValidVNode(child.children)) return false; + return true; + }) ? vnodes : null; + } + +//#endregion +//#region ../../packages/components/table/src/store/expand.ts + function useExpand(watcherData) { + const instance = (0, vue.getCurrentInstance)(); + const defaultExpandAll = (0, vue.ref)(false); + const expandRows = (0, vue.ref)([]); + const canRowExpand = (row, index) => { + const expandableFn = instance.store.states.rowExpandable.value; + return expandableFn?.(row, index) ?? true; + }; + const updateExpandRows = () => { + const data = watcherData.data.value || []; + const rowKey = watcherData.rowKey.value; + if (defaultExpandAll.value) expandRows.value = instance.store.states.rowExpandable.value ? data.filter(canRowExpand) : data.slice(); + else if (rowKey) { + const expandRowsMap = getKeysMap(expandRows.value, rowKey); + expandRows.value = data.filter((row, index) => { + return !!expandRowsMap[getRowIdentity(row, rowKey)] && canRowExpand(row, index); + }); + } else expandRows.value = []; + }; + const toggleRowExpansion = (row, expanded) => { + const rowIndex = (watcherData.data.value || []).indexOf(row); + if (rowIndex > -1 && !canRowExpand(row, rowIndex)) return; + if (toggleRowStatus(expandRows.value, row, expanded, void 0, void 0, void 0, watcherData.rowKey.value)) instance.emit("expand-change", row, expandRows.value.slice()); + }; + const setExpandRowKeys = (rowKeys) => { + instance.store.assertRowKey(); + const data = watcherData.data.value || []; + const rowKey = watcherData.rowKey.value; + const keysMap = getKeysMap(data, rowKey); + expandRows.value = rowKeys.reduce((prev, cur) => { + const info = keysMap[cur]; + if (info && canRowExpand(info.row, info.index)) prev.push(info.row); + return prev; + }, []); + }; + const isRowExpanded = (row) => { + const rowKey = watcherData.rowKey.value; + if (rowKey) return !!getKeysMap(expandRows.value, rowKey)[getRowIdentity(row, rowKey)]; + return expandRows.value.includes(row); + }; + return { + updateExpandRows, + toggleRowExpansion, + setExpandRowKeys, + isRowExpanded, + states: { + expandRows, + defaultExpandAll + } + }; + } + +//#endregion +//#region ../../packages/components/table/src/store/current.ts + function useCurrent(watcherData) { + const instance = (0, vue.getCurrentInstance)(); + const _currentRowKey = (0, vue.ref)(null); + const currentRow = (0, vue.ref)(null); + const setCurrentRowKey = (key) => { + instance.store.assertRowKey(); + _currentRowKey.value = key; + setCurrentRowByKey(key); + }; + const restoreCurrentRowKey = () => { + _currentRowKey.value = null; + }; + const setCurrentRowByKey = (key) => { + const { data, rowKey } = watcherData; + const oldCurrentRow = currentRow.value; + let _currentRow = null; + if (rowKey.value) _currentRow = ((0, vue.unref)(data) || []).find((item) => getRowIdentity(item, rowKey.value) === key) ?? null; + currentRow.value = _currentRow ?? null; + instance.emit("current-change", currentRow.value, oldCurrentRow); + }; + const updateCurrentRow = (_currentRow) => { + const oldCurrentRow = currentRow.value; + if (_currentRow && _currentRow !== oldCurrentRow) { + currentRow.value = _currentRow; + instance.emit("current-change", currentRow.value, oldCurrentRow); + return; + } + if (!_currentRow && oldCurrentRow) { + currentRow.value = null; + instance.emit("current-change", null, oldCurrentRow); + } + }; + const updateCurrentRowData = () => { + const rowKey = watcherData.rowKey.value; + const data = watcherData.data.value || []; + const oldCurrentRow = currentRow.value; + if (oldCurrentRow && !data.includes(oldCurrentRow)) if (rowKey) setCurrentRowByKey(getRowIdentity(oldCurrentRow, rowKey)); + else { + currentRow.value = null; + instance.emit("current-change", null, oldCurrentRow); + } + else if (_currentRowKey.value) { + setCurrentRowByKey(_currentRowKey.value); + restoreCurrentRowKey(); + } + }; + return { + setCurrentRowKey, + restoreCurrentRowKey, + setCurrentRowByKey, + updateCurrentRow, + updateCurrentRowData, + states: { + _currentRowKey, + currentRow + } + }; + } + +//#endregion +//#region ../../packages/components/table/src/store/tree.ts + function useTree$2(watcherData) { + const expandRowKeys = (0, vue.ref)([]); + const treeData = (0, vue.ref)({}); + const indent = (0, vue.ref)(16); + const lazy = (0, vue.ref)(false); + const lazyTreeNodeMap = (0, vue.ref)({}); + const lazyColumnIdentifier = (0, vue.ref)("hasChildren"); + const childrenColumnName = (0, vue.ref)("children"); + const checkStrictly = (0, vue.ref)(false); + const instance = (0, vue.getCurrentInstance)(); + const normalizedData = (0, vue.computed)(() => { + if (!watcherData.rowKey.value) return {}; + return normalize(watcherData.data.value || []); + }); + const normalizedLazyNode = (0, vue.computed)(() => { + const rowKey = watcherData.rowKey.value; + const keys = Object.keys(lazyTreeNodeMap.value); + const res = {}; + if (!keys.length) return res; + keys.forEach((key) => { + if (lazyTreeNodeMap.value[key].length) { + const item = { children: [] }; + lazyTreeNodeMap.value[key].forEach((row) => { + const currentRowKey = getRowIdentity(row, rowKey); + item.children.push(currentRowKey); + if (row[lazyColumnIdentifier.value] && !res[currentRowKey]) res[currentRowKey] = { children: [] }; + }); + res[key] = item; + } + }); + return res; + }); + const normalize = (data) => { + const rowKey = watcherData.rowKey.value; + const res = {}; + walkTreeNode(data, (parent, children, level) => { + const parentId = getRowIdentity(parent, rowKey); + if (isArray$1(children)) res[parentId] = { + children: children.map((row) => getRowIdentity(row, rowKey)), + level + }; + else if (lazy.value) res[parentId] = { + children: [], + lazy: true, + level + }; + }, childrenColumnName.value, lazyColumnIdentifier.value, lazy.value); + return res; + }; + const updateTreeData = (ifChangeExpandRowKeys = false, ifExpandAll) => { + ifExpandAll ||= instance.store?.states.defaultExpandAll.value; + const nested = normalizedData.value; + const normalizedLazyNode_ = normalizedLazyNode.value; + const keys = Object.keys(nested); + const newTreeData = {}; + if (keys.length) { + const oldTreeData = (0, vue.unref)(treeData); + const rootLazyRowKeys = []; + const getExpanded = (oldValue, key) => { + if (ifChangeExpandRowKeys) if (expandRowKeys.value) return ifExpandAll || expandRowKeys.value.includes(key); + else return !!(ifExpandAll || oldValue?.expanded); + else { + const included = ifExpandAll || expandRowKeys.value && expandRowKeys.value.includes(key); + return !!(oldValue?.expanded || included); + } + }; + keys.forEach((key) => { + const oldValue = oldTreeData[key]; + const newValue = { ...nested[key] }; + newValue.expanded = getExpanded(oldValue, key); + if (newValue.lazy) { + const { loaded = false, loading = false } = oldValue || {}; + newValue.loaded = !!loaded; + newValue.loading = !!loading; + rootLazyRowKeys.push(key); + } + newTreeData[key] = newValue; + }); + const lazyKeys = Object.keys(normalizedLazyNode_); + if (lazy.value && lazyKeys.length && rootLazyRowKeys.length) lazyKeys.forEach((key) => { + const oldValue = oldTreeData[key]; + const lazyNodeChildren = normalizedLazyNode_[key].children; + if (rootLazyRowKeys.includes(key)) { + if (newTreeData[key].children?.length !== 0) throw new Error("[ElTable]children must be an empty array."); + newTreeData[key].children = lazyNodeChildren; + } else { + const { loaded = false, loading = false } = oldValue || {}; + newTreeData[key] = { + lazy: true, + loaded: !!loaded, + loading: !!loading, + expanded: getExpanded(oldValue, key), + children: lazyNodeChildren, + level: void 0 + }; + } + }); + } + treeData.value = newTreeData; + instance.store?.updateTableScrollY(); + }; + (0, vue.watch)(() => expandRowKeys.value, () => { + updateTreeData(true); + }, { deep: true }); + (0, vue.watch)(() => normalizedData.value, () => { + updateTreeData(); + }); + (0, vue.watch)(() => normalizedLazyNode.value, () => { + updateTreeData(); + }); + const updateTreeExpandKeys = (value) => { + expandRowKeys.value = value; + updateTreeData(); + }; + const isUseLazy = (data) => { + return lazy.value && data && "loaded" in data && !data.loaded; + }; + const toggleTreeExpansion = (row, expanded) => { + instance.store.assertRowKey(); + const rowKey = watcherData.rowKey.value; + const id = getRowIdentity(row, rowKey); + const data = id && treeData.value[id]; + if (id && data && "expanded" in data) { + const oldExpanded = data.expanded; + expanded = isUndefined(expanded) ? !data.expanded : expanded; + treeData.value[id].expanded = expanded; + if (oldExpanded !== expanded) instance.emit("expand-change", row, expanded); + expanded && isUseLazy(data) && loadData(row, id, data); + instance.store.updateTableScrollY(); + } + }; + const loadOrToggle = (row) => { + instance.store.assertRowKey(); + const rowKey = watcherData.rowKey.value; + const id = getRowIdentity(row, rowKey); + const data = treeData.value[id]; + if (isUseLazy(data)) loadData(row, id, data); + else toggleTreeExpansion(row, void 0); + }; + const loadData = (row, key, treeNode) => { + const { load } = instance.props; + if (load && !treeData.value[key].loaded) { + treeData.value[key].loading = true; + load(row, treeNode, (data) => { + if (!isArray$1(data)) throw new TypeError("[ElTable] data must be an array"); + treeData.value[key].loading = false; + treeData.value[key].loaded = true; + treeData.value[key].expanded = true; + if (data.length) lazyTreeNodeMap.value[key] = data; + instance.emit("expand-change", row, true); + }); + } + }; + const updateKeyChildren = (key, data) => { + const { lazy, rowKey } = instance.props; + if (!lazy) return; + if (!rowKey) throw new Error("[Table] rowKey is required in updateKeyChild"); + if (lazyTreeNodeMap.value[key]) lazyTreeNodeMap.value[key] = data; + }; + return { + loadData, + loadOrToggle, + toggleTreeExpansion, + updateTreeExpandKeys, + updateTreeData, + updateKeyChildren, + normalize, + states: { + expandRowKeys, + treeData, + indent, + lazy, + lazyTreeNodeMap, + lazyColumnIdentifier, + childrenColumnName, + checkStrictly + } + }; + } + +//#endregion +//#region ../../packages/components/table/src/store/watcher.ts + const sortData = (data, states) => { + const sortingColumn = states.sortingColumn; + if (!sortingColumn || isString(sortingColumn.sortable)) return data; + return orderBy(data, states.sortProp, states.sortOrder, sortingColumn.sortMethod, sortingColumn.sortBy); + }; + const doFlattenColumns = (columns) => { + const result = []; + columns.forEach((column) => { + if (column.children && column.children.length > 0) result.push.apply(result, doFlattenColumns(column.children)); + else result.push(column); + }); + return result; + }; + function useWatcher$1() { + const instance = (0, vue.getCurrentInstance)(); + const { size: tableSize } = (0, vue.toRefs)(instance.proxy?.$props); + const rowKey = (0, vue.ref)(null); + const data = (0, vue.ref)([]); + const _data = (0, vue.ref)([]); + const isComplex = (0, vue.ref)(false); + const _columns = (0, vue.ref)([]); + const originColumns = (0, vue.ref)([]); + const columns = (0, vue.ref)([]); + const fixedColumns = (0, vue.ref)([]); + const rightFixedColumns = (0, vue.ref)([]); + const leafColumns = (0, vue.ref)([]); + const fixedLeafColumns = (0, vue.ref)([]); + const rightFixedLeafColumns = (0, vue.ref)([]); + const updateOrderFns = []; + const leafColumnsLength = (0, vue.ref)(0); + const fixedLeafColumnsLength = (0, vue.ref)(0); + const rightFixedLeafColumnsLength = (0, vue.ref)(0); + const isAllSelected = (0, vue.ref)(false); + const selection = (0, vue.ref)([]); + const reserveSelection = (0, vue.ref)(false); + const selectOnIndeterminate = (0, vue.ref)(false); + const selectable = (0, vue.ref)(null); + const rowExpandable = (0, vue.ref)(null); + const filters = (0, vue.ref)({}); + const filteredData = (0, vue.ref)(null); + const sortingColumn = (0, vue.ref)(null); + const sortProp = (0, vue.ref)(null); + const sortOrder = (0, vue.ref)(null); + const hoverRow = (0, vue.ref)(null); + const selectedMap = (0, vue.computed)(() => { + return rowKey.value ? getKeysMap(selection.value, rowKey.value) : void 0; + }); + (0, vue.watch)(data, () => { + if (instance.state) { + scheduleLayout(false); + if (instance.props.tableLayout === "auto") instance.refs.tableHeaderRef?.updateFixedColumnStyle(); + } + }, { deep: true }); + const assertRowKey = () => { + if (!rowKey.value) throw new Error("[ElTable] prop row-key is required"); + }; + const updateChildFixed = (column) => { + column.children?.forEach((childColumn) => { + childColumn.fixed = column.fixed; + updateChildFixed(childColumn); + }); + }; + const updateColumns = () => { + _columns.value.forEach((column) => { + updateChildFixed(column); + }); + fixedColumns.value = _columns.value.filter((column) => [true, "left"].includes(column.fixed)); + const selectColumn = _columns.value.find((column) => column.type === "selection"); + let selectColFixLeft; + if (selectColumn && selectColumn.fixed !== "right" && !fixedColumns.value.includes(selectColumn)) { + if (_columns.value.indexOf(selectColumn) === 0 && fixedColumns.value.length) { + fixedColumns.value.unshift(selectColumn); + selectColFixLeft = true; + } + } + rightFixedColumns.value = _columns.value.filter((column) => column.fixed === "right"); + const notFixedColumns = _columns.value.filter((column) => (selectColFixLeft ? column.type !== "selection" : true) && !column.fixed); + originColumns.value = Array.from(fixedColumns.value).concat(notFixedColumns).concat(rightFixedColumns.value); + const leafColumns = doFlattenColumns(notFixedColumns); + const fixedLeafColumns = doFlattenColumns(fixedColumns.value); + const rightFixedLeafColumns = doFlattenColumns(rightFixedColumns.value); + leafColumnsLength.value = leafColumns.length; + fixedLeafColumnsLength.value = fixedLeafColumns.length; + rightFixedLeafColumnsLength.value = rightFixedLeafColumns.length; + columns.value = Array.from(fixedLeafColumns).concat(leafColumns).concat(rightFixedLeafColumns); + isComplex.value = fixedColumns.value.length > 0 || rightFixedColumns.value.length > 0; + }; + const scheduleLayout = (needUpdateColumns, immediate = false) => { + if (needUpdateColumns) updateColumns(); + if (immediate) instance.state.doLayout(); + else instance.state.debouncedUpdateLayout(); + }; + const isSelected = (row) => { + if (selectedMap.value) return !!selectedMap.value[getRowIdentity(row, rowKey.value)]; + else return selection.value.includes(row); + }; + const clearSelection = () => { + isAllSelected.value = false; + const oldSelection = selection.value; + selection.value = []; + if (oldSelection.length) instance.emit("selection-change", []); + }; + const cleanSelection = () => { + let deleted; + if (rowKey.value) { + deleted = []; + const childrenKey = instance?.store?.states?.childrenColumnName.value; + const dataMap = getKeysMap(data.value, rowKey.value, true, childrenKey); + for (const key in selectedMap.value) if (hasOwn(selectedMap.value, key) && !dataMap[key]) deleted.push(selectedMap.value[key].row); + } else deleted = selection.value.filter((item) => !data.value.includes(item)); + if (deleted.length) { + const newSelection = selection.value.filter((item) => !deleted.includes(item)); + selection.value = newSelection; + instance.emit("selection-change", newSelection.slice()); + } + }; + const getSelectionRows = () => { + return (selection.value || []).slice(); + }; + const toggleRowSelection = (row, selected, emitChange = true, ignoreSelectable = false) => { + const treeProps = { + children: instance?.store?.states?.childrenColumnName.value, + checkStrictly: instance?.store?.states?.checkStrictly.value + }; + if (toggleRowStatus(selection.value, row, selected, treeProps, ignoreSelectable ? void 0 : selectable.value, data.value.indexOf(row), rowKey.value)) { + const newSelection = (selection.value || []).slice(); + if (emitChange) instance.emit("select", newSelection, row); + instance.emit("selection-change", newSelection); + } + }; + const _toggleAllSelection = () => { + const value = selectOnIndeterminate.value ? !isAllSelected.value : !(isAllSelected.value || selection.value.length); + isAllSelected.value = value; + let selectionChanged = false; + let childrenCount = 0; + const rowKey = instance?.store?.states?.rowKey.value; + const { childrenColumnName } = instance.store.states; + const treeProps = { + children: childrenColumnName.value, + checkStrictly: false + }; + data.value.forEach((row, index) => { + const rowIndex = index + childrenCount; + if (toggleRowStatus(selection.value, row, value, treeProps, selectable.value, rowIndex, rowKey)) selectionChanged = true; + childrenCount += getChildrenCount(getRowIdentity(row, rowKey)); + }); + if (selectionChanged) instance.emit("selection-change", selection.value ? selection.value.slice() : []); + instance.emit("select-all", (selection.value || []).slice()); + }; + const updateAllSelected = () => { + if (data.value?.length === 0) { + isAllSelected.value = false; + return; + } + const { childrenColumnName } = instance.store.states; + let rowIndex = 0; + let selectedCount = 0; + const checkSelectedStatus = (data) => { + for (const row of data) { + const isRowSelectable = selectable.value && selectable.value.call(null, row, rowIndex); + if (!isSelected(row)) { + if (!selectable.value || isRowSelectable) return false; + } else selectedCount++; + rowIndex++; + if (row[childrenColumnName.value]?.length && !checkSelectedStatus(row[childrenColumnName.value])) return false; + } + return true; + }; + const isAllSelected_ = checkSelectedStatus(data.value || []); + isAllSelected.value = selectedCount === 0 ? false : isAllSelected_; + }; + const getChildrenCount = (rowKey) => { + if (!instance || !instance.store) return 0; + const { treeData } = instance.store.states; + let count = 0; + const children = treeData.value[rowKey]?.children; + if (children) { + count += children.length; + children.forEach((childKey) => { + count += getChildrenCount(childKey); + }); + } + return count; + }; + const updateFilters = (column, values) => { + const filters_ = {}; + castArray$1(column).forEach((col) => { + filters.value[col.id] = values; + filters_[col.columnKey || col.id] = values; + }); + return filters_; + }; + const updateSort = (column, prop, order) => { + if (sortingColumn.value && sortingColumn.value !== column) sortingColumn.value.order = null; + sortingColumn.value = column; + sortProp.value = prop; + sortOrder.value = order; + }; + const execFilter = () => { + let sourceData = (0, vue.unref)(_data); + Object.keys(filters.value).forEach((columnId) => { + const values = filters.value[columnId]; + if (!values || values.length === 0) return; + const column = getColumnById({ columns: columns.value }, columnId); + if (column && column.filterMethod) sourceData = sourceData.filter((row) => { + return values.some((value) => column.filterMethod.call(null, value, row, column)); + }); + }); + filteredData.value = sourceData; + }; + const execSort = () => { + data.value = sortData(filteredData.value ?? [], { + sortingColumn: sortingColumn.value, + sortProp: sortProp.value, + sortOrder: sortOrder.value + }); + }; + const execQuery = (ignore = void 0) => { + if (!ignore?.filter) execFilter(); + execSort(); + }; + const clearFilter = (columnKeys) => { + const { tableHeaderRef } = instance.refs; + if (!tableHeaderRef) return; + const panels = Object.assign({}, tableHeaderRef.filterPanels); + const keys = Object.keys(panels); + if (!keys.length) return; + if (isString(columnKeys)) columnKeys = [columnKeys]; + if (isArray$1(columnKeys)) { + const columns_ = columnKeys.map((key) => getColumnByKey({ columns: columns.value }, key)); + keys.forEach((key) => { + const column = columns_.find((col) => col.id === key); + if (column) column.filteredValue = []; + }); + instance.store.commit("filterChange", { + column: columns_, + values: [], + silent: true, + multi: true + }); + } else { + keys.forEach((key) => { + const column = columns.value.find((col) => col.id === key); + if (column) column.filteredValue = []; + }); + filters.value = {}; + instance.store.commit("filterChange", { + column: {}, + values: [], + silent: true + }); + } + }; + const clearSort = () => { + if (!sortingColumn.value) return; + updateSort(null, null, null); + instance.store.commit("changeSortCondition", { silent: true }); + }; + const { setExpandRowKeys, toggleRowExpansion, updateExpandRows, states: expandStates, isRowExpanded } = useExpand({ + data, + rowKey + }); + const { updateTreeExpandKeys, toggleTreeExpansion, updateTreeData, updateKeyChildren, loadOrToggle, states: treeStates } = useTree$2({ + data, + rowKey + }); + const { updateCurrentRowData, updateCurrentRow, setCurrentRowKey, states: currentData } = useCurrent({ + data, + rowKey + }); + const setExpandRowKeysAdapter = (val) => { + setExpandRowKeys(val); + updateTreeExpandKeys(val); + }; + const toggleRowExpansionAdapter = (row, expanded) => { + if (columns.value.some(({ type }) => type === "expand")) toggleRowExpansion(row, expanded); + else toggleTreeExpansion(row, expanded); + }; + return { + assertRowKey, + updateColumns, + scheduleLayout, + isSelected, + clearSelection, + cleanSelection, + getSelectionRows, + toggleRowSelection, + _toggleAllSelection, + toggleAllSelection: null, + updateAllSelected, + updateFilters, + updateCurrentRow, + updateSort, + execFilter, + execSort, + execQuery, + clearFilter, + clearSort, + toggleRowExpansion, + setExpandRowKeysAdapter, + setCurrentRowKey, + toggleRowExpansionAdapter, + isRowExpanded, + updateExpandRows, + updateCurrentRowData, + loadOrToggle, + updateTreeData, + updateKeyChildren, + states: { + tableSize, + rowKey, + data, + _data, + isComplex, + _columns, + originColumns, + columns, + fixedColumns, + rightFixedColumns, + leafColumns, + fixedLeafColumns, + rightFixedLeafColumns, + updateOrderFns, + leafColumnsLength, + fixedLeafColumnsLength, + rightFixedLeafColumnsLength, + isAllSelected, + selection, + reserveSelection, + selectOnIndeterminate, + selectable, + rowExpandable, + filters, + filteredData, + sortingColumn, + sortProp, + sortOrder, + hoverRow, + ...expandStates, + ...treeStates, + ...currentData + } + }; + } + +//#endregion +//#region ../../packages/components/table/src/store/index.ts + function replaceColumn(array, column) { + return array.map((item) => { + if (item.id === column.id) return column; + else if (item.children?.length) item.children = replaceColumn(item.children, column); + return item; + }); + } + function sortColumn(array) { + array.forEach((item) => { + item.no = item.getColumnIndex?.(); + if (item.children?.length) sortColumn(item.children); + }); + array.sort((cur, pre) => cur.no - pre.no); + } + function useStore() { + const instance = (0, vue.getCurrentInstance)(); + const watcher = useWatcher$1(); + const ns = useNamespace("table"); + const { t } = useLocale(); + const mutations = { + setData(states, data) { + const dataInstanceChanged = (0, vue.unref)(states._data) !== data; + states.data.value = data; + states._data.value = data; + instance.store.execQuery(); + instance.store.updateCurrentRowData(); + instance.store.updateExpandRows(); + instance.store.updateTreeData(instance.store.states.defaultExpandAll.value); + if ((0, vue.unref)(states.reserveSelection)) instance.store.assertRowKey(); + else if (dataInstanceChanged) instance.store.clearSelection(); + else instance.store.cleanSelection(); + instance.store.updateAllSelected(); + if (instance.$ready) instance.store.scheduleLayout(); + }, + insertColumn(states, column, parent, updateColumnOrder) { + const array = (0, vue.unref)(states._columns); + let newColumns = []; + if (!parent) { + array.push(column); + newColumns = array; + } else { + if (parent && !parent.children) parent.children = []; + parent.children?.push(column); + newColumns = replaceColumn(array, parent); + } + sortColumn(newColumns); + states._columns.value = newColumns; + states.updateOrderFns.push(updateColumnOrder); + if (column.type === "selection") { + states.selectable.value = column.selectable; + states.reserveSelection.value = column.reserveSelection; + } + if (instance.$ready) { + instance.store.updateColumns(); + instance.store.scheduleLayout(); + } + }, + updateColumnOrder(states, column) { + if (column.getColumnIndex?.() === column.no) return; + sortColumn(states._columns.value); + if (instance.$ready) instance.store.updateColumns(); + }, + removeColumn(states, column, parent, updateColumnOrder) { + const array = (0, vue.unref)(states._columns) || []; + if (parent) { + parent.children?.splice(parent.children.findIndex((item) => item.id === column.id), 1); + (0, vue.nextTick)(() => { + if (parent.children?.length === 0) delete parent.children; + }); + states._columns.value = replaceColumn(array, parent); + } else { + const index = array.indexOf(column); + if (index > -1) { + array.splice(index, 1); + states._columns.value = array; + } + } + const updateFnIndex = states.updateOrderFns.indexOf(updateColumnOrder); + updateFnIndex > -1 && states.updateOrderFns.splice(updateFnIndex, 1); + if (instance.$ready) { + instance.store.updateColumns(); + instance.store.scheduleLayout(); + } + }, + sort(states, options) { + const { prop, order, init } = options; + if (prop) { + const column = (0, vue.unref)(states.columns).find((column) => column.property === prop); + if (column) { + column.order = order; + instance.store.updateSort(column, prop, order); + instance.store.commit("changeSortCondition", { init }); + } + } + }, + changeSortCondition(states, options) { + const { sortingColumn, sortProp, sortOrder } = states; + const columnValue = (0, vue.unref)(sortingColumn), propValue = (0, vue.unref)(sortProp), orderValue = (0, vue.unref)(sortOrder); + if (isNull(orderValue)) { + states.sortingColumn.value = null; + states.sortProp.value = null; + } + instance.store.execQuery({ filter: true }); + if (!options || !(options.silent || options.init)) instance.emit("sort-change", { + column: columnValue, + prop: propValue, + order: orderValue + }); + instance.store.updateTableScrollY(); + }, + filterChange(_states, options) { + const { column, values, silent } = options; + const newFilters = instance.store.updateFilters(column, values); + instance.store.execQuery(); + if (!silent) instance.emit("filter-change", newFilters); + instance.store.updateTableScrollY(); + }, + toggleAllSelection() { + instance.store.toggleAllSelection?.(); + }, + rowSelectedChanged(_states, row) { + instance.store.toggleRowSelection(row); + instance.store.updateAllSelected(); + }, + setHoverRow(states, row) { + states.hoverRow.value = row; + }, + setCurrentRow(_states, row) { + instance.store.updateCurrentRow(row); + } + }; + const commit = function(name, ...args) { + const mutations = instance.store.mutations; + if (mutations[name]) mutations[name].apply(instance, [instance.store.states, ...args]); + else throw new Error(`Action not found: ${name}`); + }; + const updateTableScrollY = function() { + (0, vue.nextTick)(() => instance.layout.updateScrollY.apply(instance.layout)); + }; + return { + ns, + t, + ...watcher, + mutations, + commit, + updateTableScrollY + }; + } + +//#endregion +//#region ../../packages/components/table/src/store/helper.ts + const InitialStateMap = { + 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: false + } + }; + function createStore(table, props) { + if (!table) throw new Error("Table is required."); + const store = useStore(); + store.toggleAllSelection = debounce(store._toggleAllSelection, 10); + Object.keys(InitialStateMap).forEach((key) => { + handleValue(getArrKeysValue(props, key), key, store); + }); + proxyTableProps(store, props); + return store; + } + function proxyTableProps(store, props) { + Object.keys(InitialStateMap).forEach((key) => { + (0, vue.watch)(() => getArrKeysValue(props, key), (value) => { + handleValue(value, key, store); + }); + }); + } + function handleValue(value, propsKey, store) { + let newVal = value; + let storeKey = InitialStateMap[propsKey]; + if (isObject$1(storeKey)) { + newVal = newVal || storeKey.default; + storeKey = storeKey.key; + } + store.states[storeKey].value = newVal; + } + function getArrKeysValue(props, key) { + if (key.includes(".")) { + const keyList = key.split("."); + let value = props; + keyList.forEach((k) => { + value = value[k]; + }); + return value; + } else return props[key]; + } + +//#endregion +//#region ../../packages/components/table/src/table-layout.ts + var TableLayout = class { + constructor(options) { + this.observers = []; + this.table = null; + this.store = null; + this.columns = []; + this.fit = true; + this.showHeader = true; + this.height = (0, vue.ref)(null); + this.scrollX = (0, vue.ref)(false); + this.scrollY = (0, vue.ref)(false); + this.bodyWidth = (0, vue.ref)(null); + this.fixedWidth = (0, vue.ref)(null); + this.rightFixedWidth = (0, vue.ref)(null); + this.gutterWidth = 0; + for (const name in options) if (hasOwn(options, name)) if ((0, vue.isRef)(this[name])) this[name].value = options[name]; + else this[name] = options[name]; + if (!this.table) throw new Error("Table is required for Table Layout"); + if (!this.store) throw new Error("Store is required for Table Layout"); + } + updateScrollY() { + const height = this.height.value; + /** + * When the height is not initialized, it is null. + * After the table is initialized, when the height is not configured, the height is 0. + */ + if (isNull(height)) return false; + const scrollBarRef = this.table.refs.scrollBarRef; + if (this.table.vnode.el && scrollBarRef?.wrapRef) { + let scrollY = true; + const prevScrollY = this.scrollY.value; + scrollY = scrollBarRef.wrapRef.scrollHeight > scrollBarRef.wrapRef.clientHeight; + this.scrollY.value = scrollY; + return prevScrollY !== scrollY; + } + return false; + } + setHeight(value, prop = "height") { + if (!isClient) return; + const el = this.table.vnode.el; + value = parseHeight(value); + this.height.value = Number(value); + if (!el && (value || value === 0)) { + (0, vue.nextTick)(() => this.setHeight(value, prop)); + return; + } + if (el && isNumber(value)) { + el.style[prop] = `${value}px`; + this.updateElsHeight(); + } else if (el && isString(value)) { + el.style[prop] = value; + this.updateElsHeight(); + } + } + setMaxHeight(value) { + this.setHeight(value, "max-height"); + } + getFlattenColumns() { + const flattenColumns = []; + this.table.store.states.columns.value.forEach((column) => { + if (column.isColumnGroup) flattenColumns.push.apply(flattenColumns, column.columns); + else flattenColumns.push(column); + }); + return flattenColumns; + } + updateElsHeight() { + this.updateScrollY(); + this.notifyObservers("scrollable"); + } + headerDisplayNone(elm) { + if (!elm) return true; + let headerChild = elm; + while (headerChild.tagName !== "DIV") { + if (getComputedStyle(headerChild).display === "none") return true; + headerChild = headerChild.parentElement; + } + return false; + } + updateColumnsWidth() { + if (!isClient) return; + const fit = this.fit; + const bodyWidth = this.table.vnode.el?.clientWidth; + let bodyMinWidth = 0; + const flattenColumns = this.getFlattenColumns(); + const flexColumns = flattenColumns.filter((column) => !isNumber(column.width)); + flattenColumns.forEach((column) => { + if (isNumber(column.width) && column.realWidth) column.realWidth = null; + }); + if (flexColumns.length > 0 && fit) { + flattenColumns.forEach((column) => { + bodyMinWidth += Number(column.width || column.minWidth || 80); + }); + if (bodyMinWidth <= bodyWidth) { + this.scrollX.value = false; + const totalFlexWidth = bodyWidth - bodyMinWidth; + if (flexColumns.length === 1) flexColumns[0].realWidth = Number(flexColumns[0].minWidth || 80) + totalFlexWidth; + else { + const flexWidthPerPixel = totalFlexWidth / flexColumns.reduce((prev, column) => prev + Number(column.minWidth || 80), 0); + let noneFirstWidth = 0; + flexColumns.forEach((column, index) => { + if (index === 0) return; + const flexWidth = Math.floor(Number(column.minWidth || 80) * flexWidthPerPixel); + noneFirstWidth += flexWidth; + column.realWidth = Number(column.minWidth || 80) + flexWidth; + }); + flexColumns[0].realWidth = Number(flexColumns[0].minWidth || 80) + totalFlexWidth - noneFirstWidth; + } + } else { + this.scrollX.value = true; + flexColumns.forEach((column) => { + column.realWidth = Number(column.minWidth); + }); + } + this.bodyWidth.value = Math.max(bodyMinWidth, bodyWidth); + this.table.state.resizeState.value.width = this.bodyWidth.value; + } else { + flattenColumns.forEach((column) => { + if (!column.width && !column.minWidth) column.realWidth = 80; + else column.realWidth = Number(column.width || column.minWidth); + bodyMinWidth += column.realWidth; + }); + this.scrollX.value = bodyMinWidth > bodyWidth; + this.bodyWidth.value = bodyMinWidth; + } + const fixedColumns = this.store.states.fixedColumns.value; + if (fixedColumns.length > 0) { + let fixedWidth = 0; + fixedColumns.forEach((column) => { + fixedWidth += Number(column.realWidth || column.width); + }); + this.fixedWidth.value = fixedWidth; + } + const rightFixedColumns = this.store.states.rightFixedColumns.value; + if (rightFixedColumns.length > 0) { + let rightFixedWidth = 0; + rightFixedColumns.forEach((column) => { + rightFixedWidth += Number(column.realWidth || column.width); + }); + this.rightFixedWidth.value = rightFixedWidth; + } + this.notifyObservers("columns"); + } + addObserver(observer) { + this.observers.push(observer); + } + removeObserver(observer) { + const index = this.observers.indexOf(observer); + if (index !== -1) this.observers.splice(index, 1); + } + notifyObservers(event) { + this.observers.forEach((observer) => { + switch (event) { + case "columns": + observer.state?.onColumnsChange(this); + break; + case "scrollable": + observer.state?.onScrollableChange(this); + break; + default: throw new Error(`Table Layout don't have event ${event}.`); + } + }); + } + }; + +//#endregion +//#region ../../packages/components/table/src/filter-panel.vue?vue&type=script&lang.ts + var filter_panel_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElTableFilterPanel", + components: { + ElCheckbox, + ElCheckboxGroup, + ElScrollbar, + ElTooltip, + ElIcon, + ArrowDown: arrow_down_default, + ArrowUp: arrow_up_default + }, + props: { + placement: { + type: String, + default: "bottom-start" + }, + store: { type: Object }, + column: { type: Object }, + upDataColumn: { type: Function }, + appendTo: useTooltipContentProps.appendTo + }, + setup(props) { + const instance = (0, vue.getCurrentInstance)(); + const { t } = useLocale(); + const ns = useNamespace("table-filter"); + const parent = instance?.parent; + if (props.column && !parent.filterPanels.value[props.column.id]) parent.filterPanels.value[props.column.id] = instance; + const tooltipRef = (0, vue.ref)(null); + const rootRef = (0, vue.ref)(null); + const checkedIndex = (0, vue.ref)(0); + const filters = (0, vue.computed)(() => { + return props.column && props.column.filters; + }); + const filterClassName = (0, vue.computed)(() => { + if (props.column && props.column.filterClassName) return `${ns.b()} ${props.column.filterClassName}`; + return ns.b(); + }); + const filterValue = (0, vue.computed)({ + get: () => (props.column?.filteredValue || [])[0], + set: (value) => { + if (filteredValue.value) if (!isPropAbsent(value)) filteredValue.value.splice(0, 1, value); + else filteredValue.value.splice(0, 1); + } + }); + const filteredValue = (0, vue.computed)({ + get() { + if (props.column) return props.column.filteredValue || []; + return []; + }, + set(value) { + if (props.column) props.upDataColumn?.("filteredValue", value); + } + }); + const multiple = (0, vue.computed)(() => { + if (props.column) return props.column.filterMultiple; + return true; + }); + const isActive = (filter) => { + return filter.value === filterValue.value; + }; + const hidden = () => { + tooltipRef.value?.onClose(); + }; + const handleConfirm = () => { + confirmFilter(filteredValue.value); + hidden(); + }; + const handleReset = () => { + filteredValue.value = []; + confirmFilter(filteredValue.value); + hidden(); + }; + const handleSelect = (_filterValue, index) => { + filterValue.value = _filterValue; + checkedIndex.value = index; + if (!isPropAbsent(_filterValue)) confirmFilter(filteredValue.value); + else confirmFilter([]); + hidden(); + }; + const confirmFilter = (filteredValue) => { + props.store?.commit("filterChange", { + column: props.column, + values: filteredValue + }); + props.store?.updateAllSelected(); + }; + const handleShowTooltip = () => { + rootRef.value?.focus(); + !multiple.value && initCheckedIndex(); + if (props.column) props.upDataColumn?.("filterOpened", true); + }; + const handleHideTooltip = () => { + if (props.column) props.upDataColumn?.("filterOpened", false); + }; + const initCheckedIndex = () => { + if (isPropAbsent(filterValue)) { + checkedIndex.value = 0; + return; + } + const idx = (filters.value || []).findIndex((item) => { + return item.value === filterValue.value; + }); + checkedIndex.value = idx >= 0 ? idx + 1 : 0; + }; + const handleKeydown = (event) => { + const code = getEventCode(event); + const len = (filters.value ? filters.value.length : 0) + 1; + let index = checkedIndex.value; + let isPreventDefault = true; + switch (code) { + case EVENT_CODE.down: + case EVENT_CODE.right: + index = (index + 1) % len; + break; + case EVENT_CODE.up: + case EVENT_CODE.left: + index = (index - 1 + len) % len; + break; + case EVENT_CODE.tab: + hidden(); + isPreventDefault = false; + break; + case EVENT_CODE.enter: + case EVENT_CODE.space: + if (index === 0) handleSelect(null, 0); + else { + const item = (filters.value || [])[index - 1]; + item.value && handleSelect(item.value, index); + } + break; + default: + isPreventDefault = false; + break; + } + isPreventDefault && event.preventDefault(); + checkedIndex.value = index; + rootRef.value?.querySelector(`.${ns.e("list-item")}:nth-child(${index + 1})`)?.focus(); + }; + return { + multiple, + filterClassName, + filteredValue, + filterValue, + filters, + handleConfirm, + handleReset, + handleSelect, + isPropAbsent, + isActive, + t, + ns, + tooltipRef, + rootRef, + checkedIndex, + handleShowTooltip, + handleHideTooltip, + handleKeydown + }; + } + }); + +//#endregion +//#region ../../packages/components/table/src/filter-panel.vue + const _hoisted_1$17 = ["disabled"]; + const _hoisted_2$10 = ["tabindex", "aria-checked"]; + const _hoisted_3$3 = [ + "tabindex", + "aria-checked", + "onClick" + ]; + const _hoisted_4$2 = ["aria-label"]; + function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_checkbox = (0, vue.resolveComponent)("el-checkbox"); + const _component_el_checkbox_group = (0, vue.resolveComponent)("el-checkbox-group"); + const _component_el_scrollbar = (0, vue.resolveComponent)("el-scrollbar"); + const _component_arrow_up = (0, vue.resolveComponent)("arrow-up"); + const _component_arrow_down = (0, vue.resolveComponent)("arrow-down"); + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + const _component_el_tooltip = (0, vue.resolveComponent)("el-tooltip"); + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_tooltip, { + ref: "tooltipRef", + offset: 0, + placement: _ctx.placement, + "show-arrow": false, + trigger: "click", + role: "dialog", + teleported: "", + effect: "light", + pure: "", + loop: "", + "popper-class": _ctx.filterClassName, + persistent: "", + "append-to": _ctx.appendTo, + onShow: _ctx.handleShowTooltip, + onHide: _ctx.handleHideTooltip + }, { + content: (0, vue.withCtx)(() => [_ctx.multiple ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref: "rootRef", + tabindex: "-1", + class: (0, vue.normalizeClass)(_ctx.ns.e("multiple")) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.ns.e("content")) }, [(0, vue.createVNode)(_component_el_scrollbar, { "wrap-class": _ctx.ns.e("wrap") }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_el_checkbox_group, { + modelValue: _ctx.filteredValue, + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.filteredValue = $event), + class: (0, vue.normalizeClass)(_ctx.ns.e("checkbox-group")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.filters, (filter) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_checkbox, { + key: filter.value, + value: filter.value + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(filter.text), 1)]), + _: 2 + }, 1032, ["value"]); + }), 128))]), + _: 1 + }, 8, ["modelValue", "class"])]), + _: 1 + }, 8, ["wrap-class"])], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.ns.e("bottom")) }, [(0, vue.createElementVNode)("button", { + class: (0, vue.normalizeClass)(_ctx.ns.is("disabled", _ctx.filteredValue.length === 0)), + disabled: _ctx.filteredValue.length === 0, + type: "button", + onClick: _cache[1] || (_cache[1] = (...args) => _ctx.handleConfirm && _ctx.handleConfirm(...args)) + }, (0, vue.toDisplayString)(_ctx.t("el.table.confirmFilter")), 11, _hoisted_1$17), (0, vue.createElementVNode)("button", { + type: "button", + onClick: _cache[2] || (_cache[2] = (...args) => _ctx.handleReset && _ctx.handleReset(...args)) + }, (0, vue.toDisplayString)(_ctx.t("el.table.resetFilter")), 1)], 2)], 2)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("ul", { + key: 1, + ref: "rootRef", + tabindex: "-1", + role: "radiogroup", + class: (0, vue.normalizeClass)(_ctx.ns.e("list")), + onKeydown: _cache[4] || (_cache[4] = (...args) => _ctx.handleKeydown && _ctx.handleKeydown(...args)) + }, [(0, vue.createElementVNode)("li", { + role: "radio", + class: (0, vue.normalizeClass)([_ctx.ns.e("list-item"), _ctx.ns.is("active", _ctx.isPropAbsent(_ctx.filterValue))]), + tabindex: _ctx.checkedIndex === 0 ? 0 : -1, + "aria-checked": _ctx.isPropAbsent(_ctx.filterValue), + onClick: _cache[3] || (_cache[3] = ($event) => _ctx.handleSelect(null, 0)) + }, (0, vue.toDisplayString)(_ctx.t("el.table.clearFilter")), 11, _hoisted_2$10), ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.filters, (filter, idx) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: filter.value, + role: "radio", + class: (0, vue.normalizeClass)([_ctx.ns.e("list-item"), _ctx.ns.is("active", _ctx.isActive(filter))]), + tabindex: _ctx.checkedIndex === idx + 1 ? 0 : -1, + "aria-checked": _ctx.isActive(filter), + onClick: ($event) => _ctx.handleSelect(filter.value, idx + 1) + }, (0, vue.toDisplayString)(filter.text), 11, _hoisted_3$3); + }), 128))], 34))]), + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("button", { + type: "button", + class: (0, vue.normalizeClass)(`${_ctx.ns.namespace.value}-table__column-filter-trigger`), + "aria-label": _ctx.t("el.table.filterLabel", { column: _ctx.column?.label || "" }) + }, [(0, vue.createVNode)(_component_el_icon, null, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "filter-icon", {}, () => [_ctx.column?.filterOpened ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_arrow_up, { key: 0 })) : ((0, vue.openBlock)(), (0, vue.createBlock)(_component_arrow_down, { key: 1 }))])]), + _: 3 + })], 10, _hoisted_4$2)]), + _: 3 + }, 8, [ + "placement", + "popper-class", + "append-to", + "onShow", + "onHide" + ]); + } + var filter_panel_default = /* @__PURE__ */ _plugin_vue_export_helper_default(filter_panel_vue_vue_type_script_lang_default, [["render", _sfc_render$4]]); + +//#endregion +//#region ../../packages/components/table/src/layout-observer.ts + function useLayoutObserver(root) { + const instance = (0, vue.getCurrentInstance)(); + (0, vue.onBeforeMount)(() => { + tableLayout.value.addObserver(instance); + }); + (0, vue.onMounted)(() => { + onColumnsChange(tableLayout.value); + onScrollableChange(tableLayout.value); + }); + (0, vue.onUpdated)(() => { + onColumnsChange(tableLayout.value); + onScrollableChange(tableLayout.value); + }); + (0, vue.onUnmounted)(() => { + tableLayout.value.removeObserver(instance); + }); + const tableLayout = (0, vue.computed)(() => { + const layout = root.layout; + if (!layout) throw new Error("Can not find table layout."); + return layout; + }); + const onColumnsChange = (layout) => { + const cols = root.vnode.el?.querySelectorAll("colgroup > col") || []; + if (!cols.length) return; + const flattenColumns = layout.getFlattenColumns(); + const columnsMap = {}; + flattenColumns.forEach((column) => { + columnsMap[column.id] = column; + }); + for (let i = 0, j = cols.length; i < j; i++) { + const col = cols[i]; + const column = columnsMap[col.getAttribute("name")]; + if (column) col.setAttribute("width", column.realWidth || column.width); + } + }; + const onScrollableChange = (layout) => { + const cols = root.vnode.el?.querySelectorAll("colgroup > col[name=gutter]") || []; + for (let i = 0, j = cols.length; i < j; i++) cols[i].setAttribute("width", layout.scrollY.value ? layout.gutterWidth : "0"); + const ths = root.vnode.el?.querySelectorAll("th.gutter") || []; + for (let i = 0, j = ths.length; i < j; i++) { + const th = ths[i]; + th.style.width = layout.scrollY.value ? `${layout.gutterWidth}px` : "0"; + th.style.display = layout.scrollY.value ? "" : "none"; + } + }; + return { + tableLayout: tableLayout.value, + onColumnsChange, + onScrollableChange + }; + } + +//#endregion +//#region ../../packages/components/table/src/tokens.ts + const TABLE_INJECTION_KEY = Symbol("ElTable"); + +//#endregion +//#region ../../packages/components/table/src/table-header/event-helper.ts + function useEvent(props, emit) { + const instance = (0, vue.getCurrentInstance)(); + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const handleFilterClick = (event) => { + event.stopPropagation(); + }; + const handleHeaderClick = (event, column) => { + if (!column.filters && column.sortable) handleSortClick(event, column, false); + else if (column.filterable && !column.sortable) handleFilterClick(event); + parent?.emit("header-click", column, event); + }; + const handleHeaderContextMenu = (event, column) => { + parent?.emit("header-contextmenu", column, event); + }; + const draggingColumn = (0, vue.ref)(null); + const dragging = (0, vue.ref)(false); + const dragState = (0, vue.ref)(); + const handleMouseDown = (event, column) => { + if (!isClient) return; + if (column.children && column.children.length > 0) return; + /* istanbul ignore if */ + if (draggingColumn.value && props.border && draggingColumn.value.id === column.id) { + dragging.value = true; + const table = parent; + emit("set-drag-visible", true); + const tableLeft = (table?.vnode.el)?.getBoundingClientRect().left; + const columnEl = instance?.vnode?.el?.querySelector(`th.${column.id}`); + const columnRect = columnEl.getBoundingClientRect(); + const minLeft = columnRect.left - tableLeft + 30; + addClass(columnEl, "noclick"); + dragState.value = { + startMouseLeft: event.clientX, + startLeft: columnRect.right - tableLeft, + startColumnLeft: columnRect.left - tableLeft, + tableLeft + }; + const resizeProxy = table?.refs.resizeProxy; + resizeProxy.style.left = `${dragState.value.startLeft}px`; + document.onselectstart = function() { + return false; + }; + document.ondragstart = function() { + return false; + }; + const handleMouseMove = (event) => { + const deltaLeft = event.clientX - dragState.value.startMouseLeft; + const proxyLeft = dragState.value.startLeft + deltaLeft; + resizeProxy.style.left = `${Math.max(minLeft, proxyLeft)}px`; + }; + const handleMouseUp = () => { + if (dragging.value) { + const { startColumnLeft, startLeft } = dragState.value; + column.width = column.realWidth = Number.parseInt(resizeProxy.style.left, 10) - startColumnLeft; + table?.emit("header-dragend", column.width, startLeft - startColumnLeft, column, event); + requestAnimationFrame(() => { + props.store.scheduleLayout(false, true); + }); + document.body.style.cursor = ""; + dragging.value = false; + draggingColumn.value = null; + dragState.value = void 0; + emit("set-drag-visible", false); + } + document.removeEventListener("mousemove", handleMouseMove); + document.removeEventListener("mouseup", handleMouseUp); + document.onselectstart = null; + document.ondragstart = null; + setTimeout(() => { + removeClass(columnEl, "noclick"); + }, 0); + }; + document.addEventListener("mousemove", handleMouseMove); + document.addEventListener("mouseup", handleMouseUp); + } + }; + const handleMouseMove = (event, column) => { + if (!props.border || column.children && column.children.length > 0) return; + const el = event.target; + const target = isElement$1(el) ? el.closest("th") : null; + if (!target) return; + const isSortable = hasClass(target, "is-sortable"); + if (isSortable) { + const cursor = dragging.value ? "col-resize" : ""; + target.style.cursor = cursor; + const caret = target.querySelector(".caret-wrapper"); + if (caret) caret.style.cursor = cursor; + } + if (!column.resizable || dragging.value) { + draggingColumn.value = null; + return; + } + const rect = target.getBoundingClientRect(); + const isLastTh = target.parentNode?.lastElementChild === target; + const allowDrag = props.allowDragLastColumn || !isLastTh; + const isResizeHandleActive = rect.width > 12 && rect.right - event.clientX < 8 && allowDrag; + const cursor = isResizeHandleActive ? "col-resize" : ""; + document.body.style.cursor = cursor; + draggingColumn.value = isResizeHandleActive ? column : null; + if (isSortable) target.style.cursor = cursor; + }; + const handleMouseOut = () => { + if (!isClient || dragging.value) return; + document.body.style.cursor = ""; + }; + const toggleOrder = ({ order, sortOrders }) => { + if (order === "") return sortOrders[0]; + const index = sortOrders.indexOf(order || null); + return sortOrders[index > sortOrders.length - 2 ? 0 : index + 1]; + }; + const handleSortClick = (event, column, givenOrder) => { + event.stopPropagation(); + const order = column.order === givenOrder ? null : givenOrder || toggleOrder(column); + const target = event.target?.closest("th"); + if (target) { + if (hasClass(target, "noclick")) { + removeClass(target, "noclick"); + return; + } + } + if (!column.sortable) return; + const clickTarget = event.currentTarget; + if (["ascending", "descending"].some((str) => hasClass(clickTarget, str) && !column.sortOrders.includes(str))) return; + const states = props.store.states; + let sortProp = states.sortProp.value; + let sortOrder; + const sortingColumn = states.sortingColumn.value; + if (sortingColumn !== column || sortingColumn === column && isNull(sortingColumn.order)) { + if (sortingColumn) sortingColumn.order = null; + states.sortingColumn.value = column; + sortProp = column.property; + } + if (!order) sortOrder = column.order = null; + else sortOrder = column.order = order; + states.sortProp.value = sortProp; + states.sortOrder.value = sortOrder; + parent?.store.commit("changeSortCondition"); + }; + return { + handleHeaderClick, + handleHeaderContextMenu, + handleMouseDown, + handleMouseMove, + handleMouseOut, + handleSortClick, + handleFilterClick + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-header/style.helper.ts + function useStyle$2(props) { + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const ns = useNamespace("table"); + const getHeaderRowStyle = (rowIndex) => { + const headerRowStyle = parent?.props.headerRowStyle; + if (isFunction$1(headerRowStyle)) return headerRowStyle.call(null, { rowIndex }); + return headerRowStyle; + }; + const getHeaderRowClass = (rowIndex) => { + const classes = []; + const headerRowClassName = parent?.props.headerRowClassName; + if (isString(headerRowClassName)) classes.push(headerRowClassName); + else if (isFunction$1(headerRowClassName)) classes.push(headerRowClassName.call(null, { rowIndex })); + return classes.join(" "); + }; + const getHeaderCellStyle = (rowIndex, columnIndex, row, column) => { + let headerCellStyles = parent?.props.headerCellStyle ?? {}; + if (isFunction$1(headerCellStyles)) headerCellStyles = headerCellStyles.call(null, { + rowIndex, + columnIndex, + row, + column + }); + const fixedStyle = getFixedColumnOffset(columnIndex, column.fixed, props.store, row); + ensurePosition(fixedStyle, "left"); + ensurePosition(fixedStyle, "right"); + return Object.assign({}, headerCellStyles, fixedStyle); + }; + const getHeaderCellClass = (rowIndex, columnIndex, row, column) => { + const fixedClasses = getFixedColumnsClass(ns.b(), columnIndex, column.fixed, props.store, row); + const classes = [ + column.id, + column.order, + column.headerAlign, + column.className, + column.labelClassName, + ...fixedClasses + ]; + if (!column.children) classes.push("is-leaf"); + if (column.sortable) classes.push("is-sortable"); + const headerCellClassName = parent?.props.headerCellClassName; + if (isString(headerCellClassName)) classes.push(headerCellClassName); + else if (isFunction$1(headerCellClassName)) classes.push(headerCellClassName.call(null, { + rowIndex, + columnIndex, + row, + column + })); + classes.push(ns.e("cell")); + return classes.filter((className) => Boolean(className)).join(" "); + }; + return { + getHeaderRowStyle, + getHeaderRowClass, + getHeaderCellStyle, + getHeaderCellClass + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-header/utils-helper.ts + const getAllColumns = (columns) => { + const result = []; + columns.forEach((column) => { + if (column.children) { + result.push(column); + result.push.apply(result, getAllColumns(column.children)); + } else result.push(column); + }); + return result; + }; + const convertToRows = (originColumns) => { + let maxLevel = 1; + const traverse = (column, parent) => { + if (parent) { + column.level = parent.level + 1; + if (maxLevel < column.level) maxLevel = column.level; + } + if (column.children) { + let colSpan = 0; + column.children.forEach((subColumn) => { + traverse(subColumn, column); + colSpan += subColumn.colSpan; + }); + column.colSpan = colSpan; + } else column.colSpan = 1; + }; + originColumns.forEach((column) => { + column.level = 1; + traverse(column, void 0); + }); + const rows = []; + for (let i = 0; i < maxLevel; i++) rows.push([]); + getAllColumns(originColumns).forEach((column) => { + if (!column.children) column.rowSpan = maxLevel - column.level + 1; + else { + column.rowSpan = 1; + column.children.forEach((col) => col.isSubColumn = true); + } + rows[column.level - 1].push(column); + }); + return rows; + }; + function useUtils$1(props) { + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const columnRows = (0, vue.computed)(() => { + return convertToRows(props.store.states.originColumns.value); + }); + const isGroup = (0, vue.computed)(() => { + const result = columnRows.value.length > 1; + if (result && parent) parent.state.isGroup.value = true; + return result; + }); + const toggleAllSelection = (event) => { + event.stopPropagation(); + parent?.store.commit("toggleAllSelection"); + }; + return { + isGroup, + toggleAllSelection, + columnRows + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-header/index.ts + var table_header_default = (0, vue.defineComponent)({ + name: "ElTableHeader", + components: { ElCheckbox }, + props: { + fixed: { + type: String, + default: "" + }, + store: { + required: true, + type: Object + }, + border: Boolean, + defaultSort: { + type: Object, + default: () => { + return { + prop: "", + order: "" + }; + } + }, + appendFilterPanelTo: { type: String }, + allowDragLastColumn: { type: Boolean } + }, + setup(props, { emit }) { + const instance = (0, vue.getCurrentInstance)(); + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const ns = useNamespace("table"); + const filterPanels = (0, vue.ref)({}); + const { onColumnsChange, onScrollableChange } = useLayoutObserver(parent); + const isTableLayoutAuto = parent?.props.tableLayout === "auto"; + const saveIndexSelection = (0, vue.reactive)(/* @__PURE__ */ new Map()); + const theadRef = (0, vue.ref)(); + let delayId; + const updateFixedColumnStyle = () => { + delayId = setTimeout(() => { + if (saveIndexSelection.size > 0) { + saveIndexSelection.forEach((column, key) => { + const el = theadRef.value.querySelector(`.${key.replace(/\s/g, ".")}`); + if (el) column.width = el.getBoundingClientRect().width || column.width; + }); + saveIndexSelection.clear(); + } + }); + }; + (0, vue.watch)(saveIndexSelection, updateFixedColumnStyle); + (0, vue.onBeforeUnmount)(() => { + if (delayId) { + clearTimeout(delayId); + delayId = void 0; + } + }); + (0, vue.onMounted)(async () => { + await (0, vue.nextTick)(); + await (0, vue.nextTick)(); + const { prop, order } = props.defaultSort; + parent?.store.commit("sort", { + prop, + order, + init: true + }); + updateFixedColumnStyle(); + }); + const { handleHeaderClick, handleHeaderContextMenu, handleMouseDown, handleMouseMove, handleMouseOut, handleSortClick, handleFilterClick } = useEvent(props, emit); + const { getHeaderRowStyle, getHeaderRowClass, getHeaderCellStyle, getHeaderCellClass } = useStyle$2(props); + const { isGroup, toggleAllSelection, columnRows } = useUtils$1(props); + const { t } = useLocale(); + instance.state = { + onColumnsChange, + onScrollableChange + }; + instance.filterPanels = filterPanels; + return { + ns, + t, + filterPanels, + onColumnsChange, + onScrollableChange, + columnRows, + getHeaderRowClass, + getHeaderRowStyle, + getHeaderCellClass, + getHeaderCellStyle, + handleHeaderClick, + handleHeaderContextMenu, + handleMouseDown, + handleMouseMove, + handleMouseOut, + handleSortClick, + handleFilterClick, + isGroup, + toggleAllSelection, + saveIndexSelection, + isTableLayoutAuto, + theadRef, + updateFixedColumnStyle + }; + }, + render() { + const { ns, t, isGroup, columnRows, getHeaderCellStyle, getHeaderCellClass, getHeaderRowClass, getHeaderRowStyle, handleHeaderClick, handleHeaderContextMenu, handleMouseDown, handleMouseMove, handleSortClick, handleMouseOut, store, $parent, saveIndexSelection, isTableLayoutAuto } = this; + let rowSpan = 1; + return (0, vue.h)("thead", { + ref: "theadRef", + class: ns.is("group", isGroup) + }, columnRows.map((subColumns, rowIndex) => (0, vue.h)("tr", { + class: getHeaderRowClass(rowIndex), + key: rowIndex, + style: getHeaderRowStyle(rowIndex) + }, subColumns.map((column, cellIndex) => { + if (column.rowSpan > rowSpan) rowSpan = column.rowSpan; + const _class = getHeaderCellClass(rowIndex, cellIndex, subColumns, column); + if (isTableLayoutAuto && column.fixed) saveIndexSelection.set(_class, column); + return (0, vue.h)("th", { + class: _class, + colspan: column.colSpan, + key: `${column.id}-thead`, + rowspan: column.rowSpan, + scope: column.colSpan > 1 ? "colgroup" : "col", + ariaSort: column.sortable ? column.order : void 0, + style: getHeaderCellStyle(rowIndex, cellIndex, subColumns, column), + onClick: ($event) => { + if ($event.currentTarget?.classList.contains("noclick")) return; + handleHeaderClick($event, column); + }, + onContextmenu: ($event) => handleHeaderContextMenu($event, column), + onMousedown: ($event) => handleMouseDown($event, column), + onMousemove: ($event) => handleMouseMove($event, column), + onMouseout: handleMouseOut + }, [(0, vue.h)("div", { class: ["cell", column.filteredValue && column.filteredValue.length > 0 ? "highlight" : ""] }, [ + column.renderHeader ? column.renderHeader({ + column, + $index: cellIndex, + store, + _self: $parent + }) : column.label, + column.sortable && (0, vue.h)("button", { + type: "button", + class: "caret-wrapper", + "aria-label": t("el.table.sortLabel", { column: column.label || "" }), + onClick: ($event) => handleSortClick($event, column) + }, [(0, vue.h)("i", { + onClick: ($event) => handleSortClick($event, column, "ascending"), + class: "sort-caret ascending" + }), (0, vue.h)("i", { + onClick: ($event) => handleSortClick($event, column, "descending"), + class: "sort-caret descending" + })]), + column.filterable && (0, vue.h)(filter_panel_default, { + store, + placement: column.filterPlacement || "bottom-start", + appendTo: $parent?.appendFilterPanelTo, + column, + upDataColumn: (key, value) => { + column[key] = value; + } + }, { "filter-icon": () => column.renderFilterIcon ? column.renderFilterIcon({ filterOpened: column.filterOpened }) : null }) + ])]); + })))); + } + }); + +//#endregion +//#region ../../packages/components/table/src/table-body/events-helper.ts + function useEvents(props) { + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const tooltipContent = (0, vue.ref)(""); + const tooltipTrigger = (0, vue.ref)((0, vue.h)("div")); + const handleEvent = (event, row, name) => { + const table = parent; + const cell = getCell(event); + let column = null; + const namespace = table?.vnode.el?.dataset.prefix; + if (cell) { + column = getColumnByCell({ columns: props.store?.states.columns.value ?? [] }, cell, namespace); + if (column) table?.emit(`cell-${name}`, row, column, cell, event); + } + table?.emit(`row-${name}`, row, column, event); + }; + const handleDoubleClick = (event, row) => { + handleEvent(event, row, "dblclick"); + }; + const handleClick = (event, row) => { + props.store?.commit("setCurrentRow", row); + handleEvent(event, row, "click"); + }; + const handleContextMenu = (event, row) => { + handleEvent(event, row, "contextmenu"); + }; + const handleMouseEnter = debounce((index) => { + props.store?.commit("setHoverRow", index); + }, 30); + const handleMouseLeave = debounce(() => { + props.store?.commit("setHoverRow", null); + }, 30); + const getPadding = (el) => { + const style = window.getComputedStyle(el, null); + return { + left: Number.parseInt(style.paddingLeft, 10) || 0, + right: Number.parseInt(style.paddingRight, 10) || 0, + top: Number.parseInt(style.paddingTop, 10) || 0, + bottom: Number.parseInt(style.paddingBottom, 10) || 0 + }; + }; + const toggleRowClassByCell = (rowSpan, event, toggle) => { + let node = (event?.target)?.parentNode; + while (rowSpan > 1) { + node = node?.nextSibling; + if (!node || node.nodeName !== "TR") break; + toggle(node, "hover-row hover-fixed-row"); + rowSpan--; + } + }; + const handleCellMouseEnter = (event, row, tooltipOptions) => { + if (!parent) return; + const table = parent; + const cell = getCell(event); + const namespace = table?.vnode.el?.dataset.prefix; + let column = null; + if (cell) { + column = getColumnByCell({ columns: props.store?.states.columns.value ?? [] }, cell, namespace); + if (!column) return; + if (cell.rowSpan > 1) toggleRowClassByCell(cell.rowSpan, event, addClass); + const hoverState = table.hoverState = { + cell, + column, + row + }; + table?.emit("cell-mouse-enter", hoverState.row, hoverState.column, hoverState.cell, event); + } + if (!tooltipOptions) { + if (removePopper?.trigger === cell) removePopper?.(); + return; + } + const cellChild = event.target.querySelector(".cell"); + if (!(hasClass(cellChild, `${namespace}-tooltip`) && cellChild.childNodes.length && cellChild.textContent?.trim())) return; + const range = document.createRange(); + range.setStart(cellChild, 0); + range.setEnd(cellChild, cellChild.childNodes.length); + /** detail: https://github.com/element-plus/element-plus/issues/10790 + * What went wrong? + * UI > Browser > Zoom, In Blink/WebKit, getBoundingClientRect() sometimes returns inexact values, probably due to lost precision during internal calculations. In the example above: + * - Expected: 188 + * - Actual: 188.00000762939453 + */ + const { width: rangeWidth, height: rangeHeight } = range.getBoundingClientRect(); + const { width: cellChildWidth, height: cellChildHeight } = cellChild.getBoundingClientRect(); + const { top, left, right, bottom } = getPadding(cellChild); + const horizontalPadding = left + right; + const verticalPadding = top + bottom; + if (isGreaterThan(rangeWidth + horizontalPadding, cellChildWidth) || isGreaterThan(rangeHeight + verticalPadding, cellChildHeight) || isGreaterThan(cellChild.scrollWidth, cellChildWidth)) createTablePopper(tooltipOptions, (cell?.innerText || cell?.textContent) ?? "", row, column, cell, table); + else if (removePopper?.trigger === cell) removePopper?.(); + }; + const handleCellMouseLeave = (event) => { + const cell = getCell(event); + if (!cell) return; + if (cell.rowSpan > 1) toggleRowClassByCell(cell.rowSpan, event, removeClass); + const oldHoverState = parent?.hoverState; + parent?.emit("cell-mouse-leave", oldHoverState?.row, oldHoverState?.column, oldHoverState?.cell, event); + }; + return { + handleDoubleClick, + handleClick, + handleContextMenu, + handleMouseEnter, + handleMouseLeave, + handleCellMouseEnter, + handleCellMouseLeave, + tooltipContent, + tooltipTrigger + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-body/styles-helper.ts + function useStyles$1(props) { + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const ns = useNamespace("table"); + const getRowStyle = (row, rowIndex) => { + const rowStyle = parent?.props.rowStyle; + if (isFunction$1(rowStyle)) return rowStyle.call(null, { + row, + rowIndex + }); + return rowStyle || null; + }; + const getRowClass = (row, rowIndex, displayIndex) => { + const classes = [ns.e("row")]; + if (parent?.props.highlightCurrentRow && row === props.store?.states.currentRow.value) classes.push("current-row"); + if (props.stripe && displayIndex % 2 === 1) classes.push(ns.em("row", "striped")); + const rowClassName = parent?.props.rowClassName; + if (isString(rowClassName)) classes.push(rowClassName); + else if (isFunction$1(rowClassName)) classes.push(rowClassName.call(null, { + row, + rowIndex + })); + return classes; + }; + const getCellStyle = (rowIndex, columnIndex, row, column) => { + const cellStyle = parent?.props.cellStyle; + let cellStyles = cellStyle ?? {}; + if (isFunction$1(cellStyle)) cellStyles = cellStyle.call(null, { + rowIndex, + columnIndex, + row, + column + }); + const fixedStyle = getFixedColumnOffset(columnIndex, props?.fixed, props.store); + ensurePosition(fixedStyle, "left"); + ensurePosition(fixedStyle, "right"); + return Object.assign({}, cellStyles, fixedStyle); + }; + const getCellClass = (rowIndex, columnIndex, row, column, offset) => { + const fixedClasses = getFixedColumnsClass(ns.b(), columnIndex, props?.fixed, props.store, void 0, offset); + const classes = [ + column.id, + column.align, + column.className, + ...fixedClasses + ]; + const cellClassName = parent?.props.cellClassName; + if (isString(cellClassName)) classes.push(cellClassName); + else if (isFunction$1(cellClassName)) classes.push(cellClassName.call(null, { + rowIndex, + columnIndex, + row, + column + })); + classes.push(ns.e("cell")); + return classes.filter((className) => Boolean(className)).join(" "); + }; + const getSpan = (row, column, rowIndex, columnIndex) => { + let rowspan = 1; + let colspan = 1; + const fn = parent?.props.spanMethod; + if (isFunction$1(fn)) { + const result = fn({ + row, + column, + rowIndex, + columnIndex + }); + if (isArray$1(result)) { + rowspan = result[0]; + colspan = result[1]; + } else if (isObject$1(result)) { + rowspan = result.rowspan; + colspan = result.colspan; + } + } + return { + rowspan, + colspan + }; + }; + const getColspanRealWidth = (columns, colspan, index) => { + if (colspan < 1) return columns[index].realWidth; + const widthArr = columns.map(({ realWidth, width }) => realWidth || width).slice(index, index + colspan); + return Number(widthArr.reduce((acc, width) => Number(acc) + Number(width), -1)); + }; + return { + getRowStyle, + getRowClass, + getCellStyle, + getCellClass, + getSpan, + getColspanRealWidth + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-body/td-wrapper.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$16 = ["colspan", "rowspan"]; + var td_wrapper_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "TableTdWrapper", + __name: "td-wrapper", + props: { + colspan: { + type: Number, + default: 1 + }, + rowspan: { + type: Number, + default: 1 + } + }, + setup(__props) { + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("td", { + colspan: __props.colspan, + rowspan: __props.rowspan + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 8, _hoisted_1$16); + }; + } + }); + +//#endregion +//#region ../../packages/components/table/src/table-body/td-wrapper.vue + var td_wrapper_default = td_wrapper_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/table/src/table-body/render-helper.ts + function useRender$1(props) { + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const ns = useNamespace("table"); + const { handleDoubleClick, handleClick, handleContextMenu, handleMouseEnter, handleMouseLeave, handleCellMouseEnter, handleCellMouseLeave, tooltipContent, tooltipTrigger } = useEvents(props); + const { getRowStyle, getRowClass, getCellStyle, getCellClass, getSpan, getColspanRealWidth } = useStyles$1(props); + let displayIndex = -1; + const firstDefaultColumnIndex = (0, vue.computed)(() => { + return props.store?.states.columns.value.findIndex(({ type }) => type === "default"); + }); + const getKeyOfRow = (row, index) => { + const rowKey = (parent?.props)?.rowKey; + if (rowKey) return getRowIdentity(row, rowKey); + return index; + }; + const rowRender = (row, $index, treeRowData, expanded = false) => { + const { tooltipEffect, tooltipOptions, store } = props; + const { indent, columns } = store.states; + const rowClasses = []; + let display = true; + if (treeRowData) { + rowClasses.push(ns.em("row", `level-${treeRowData.level}`)); + display = !!treeRowData.display; + } + if ($index === 0) displayIndex = -1; + if (props.stripe && display) displayIndex++; + rowClasses.push(...getRowClass(row, $index, displayIndex)); + return (0, vue.h)("tr", { + style: [display ? null : { display: "none" }, getRowStyle(row, $index)], + class: rowClasses, + key: getKeyOfRow(row, $index), + onDblclick: ($event) => handleDoubleClick($event, row), + onClick: ($event) => handleClick($event, row), + onContextmenu: ($event) => handleContextMenu($event, row), + onMouseenter: () => handleMouseEnter($index), + onMouseleave: handleMouseLeave + }, columns.value.map((column, cellIndex) => { + const { rowspan, colspan } = getSpan(row, column, $index, cellIndex); + if (!rowspan || !colspan) return null; + const columnData = Object.assign({}, column); + columnData.realWidth = getColspanRealWidth(columns.value, colspan, cellIndex); + const data = { + store, + _self: props.context || parent, + column: columnData, + row, + $index, + cellIndex, + expanded + }; + if (cellIndex === firstDefaultColumnIndex.value && treeRowData) { + data.treeNode = { + indent: treeRowData.level && treeRowData.level * indent.value, + level: treeRowData.level + }; + if (isBoolean(treeRowData.expanded)) { + data.treeNode.expanded = treeRowData.expanded; + if ("loading" in treeRowData) data.treeNode.loading = treeRowData.loading; + if ("noLazyChildren" in treeRowData) data.treeNode.noLazyChildren = treeRowData.noLazyChildren; + } + } + const baseKey = `${getKeyOfRow(row, $index)},${cellIndex}`; + const patchKey = columnData.columnKey || columnData.rawColumnKey || ""; + const mergedTooltipOptions = column.showOverflowTooltip && merge({ effect: tooltipEffect }, tooltipOptions, column.showOverflowTooltip); + return (0, vue.h)(td_wrapper_default, { + style: getCellStyle($index, cellIndex, row, column), + class: getCellClass($index, cellIndex, row, column, colspan - 1), + key: `${patchKey}${baseKey}`, + rowspan, + colspan, + onMouseenter: ($event) => handleCellMouseEnter($event, row, mergedTooltipOptions), + onMouseleave: handleCellMouseLeave + }, { default: () => cellChildren(cellIndex, column, data) }); + })); + }; + const cellChildren = (_cellIndex, column, data) => { + return column.renderCell(data); + }; + const wrappedRowRender = (row, $index) => { + const store = props.store; + const { isRowExpanded, assertRowKey } = store; + const { treeData, lazyTreeNodeMap, childrenColumnName, rowKey } = store.states; + const columns = store.states.columns.value; + if (columns.some(({ type }) => type === "expand")) { + const expanded = isRowExpanded(row); + const tr = rowRender(row, $index, void 0, expanded); + const renderExpanded = parent?.renderExpanded; + if (!renderExpanded) { + console.error("[Element Error]renderExpanded is required."); + return tr; + } + const rows = [[tr]]; + if (parent.props.preserveExpandedContent || expanded) rows[0].push((0, vue.h)("tr", { + key: `expanded-row__${tr.key}`, + style: { display: expanded ? "" : "none" } + }, [(0, vue.h)("td", { + colspan: columns.length, + class: `${ns.e("cell")} ${ns.e("expanded-cell")}` + }, [renderExpanded({ + row, + $index, + store, + expanded + })])])); + return rows; + } else if (Object.keys(treeData.value).length) { + assertRowKey(); + const key = getRowIdentity(row, rowKey.value); + let cur = treeData.value[key]; + let treeRowData = null; + if (cur) { + treeRowData = { + expanded: cur.expanded, + level: cur.level, + display: true, + noLazyChildren: void 0, + loading: void 0 + }; + if (isBoolean(cur.lazy)) { + if (treeRowData && isBoolean(cur.loaded) && cur.loaded) treeRowData.noLazyChildren = !(cur.children && cur.children.length); + treeRowData.loading = cur.loading; + } + } + const tmp = [rowRender(row, $index, treeRowData ?? void 0)]; + if (cur) { + let i = 0; + const traverse = (children, parent) => { + if (!(children && children.length && parent)) return; + children.forEach((node) => { + const innerTreeRowData = { + display: parent.display && parent.expanded, + level: parent.level + 1, + expanded: false, + noLazyChildren: false, + loading: false + }; + const childKey = getRowIdentity(node, rowKey.value); + if (isPropAbsent(childKey)) throw new Error("For nested data item, row-key is required."); + cur = { ...treeData.value[childKey] }; + if (cur) { + innerTreeRowData.expanded = cur.expanded; + cur.level = cur.level || innerTreeRowData.level; + cur.display = !!(cur.expanded && innerTreeRowData.display); + if (isBoolean(cur.lazy)) { + if (isBoolean(cur.loaded) && cur.loaded) innerTreeRowData.noLazyChildren = !(cur.children && cur.children.length); + innerTreeRowData.loading = cur.loading; + } + } + i++; + tmp.push(rowRender(node, $index + i, innerTreeRowData)); + if (cur) traverse(lazyTreeNodeMap.value[childKey] || node[childrenColumnName.value], cur); + }); + }; + cur.display = true; + traverse(lazyTreeNodeMap.value[key] || row[childrenColumnName.value], cur); + } + return tmp; + } else return rowRender(row, $index, void 0); + }; + return { + wrappedRowRender, + tooltipContent, + tooltipTrigger + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-body/defaults.ts + const defaultProps$1 = { + store: { + required: true, + 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 + }; + +//#endregion +//#region ../../packages/components/table/src/table-body/index.ts + var table_body_default = (0, vue.defineComponent)({ + name: "ElTableBody", + props: defaultProps$1, + setup(props) { + const instance = (0, vue.getCurrentInstance)(); + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const ns = useNamespace("table"); + const { wrappedRowRender, tooltipContent, tooltipTrigger } = useRender$1(props); + const { onColumnsChange, onScrollableChange } = useLayoutObserver(parent); + const hoveredCellList = []; + (0, vue.watch)(props.store?.states.hoverRow, (newVal, oldVal) => { + const el = instance?.vnode.el; + const rows = Array.from(el?.children || []).filter((e) => e?.classList.contains(`${ns.e("row")}`)); + let rowNum = newVal; + const childNodes = rows[rowNum]?.childNodes; + if (childNodes?.length) { + let control = 0; + Array.from(childNodes).reduce((acc, item, index) => { + if (childNodes[index]?.colSpan > 1) control = childNodes[index]?.colSpan; + if (item.nodeName !== "TD" && control === 0) acc.push(index); + control > 0 && control--; + return acc; + }, []).forEach((rowIndex) => { + rowNum = newVal; + while (rowNum > 0) { + const preChildNodes = rows[rowNum - 1]?.childNodes; + if (preChildNodes[rowIndex] && preChildNodes[rowIndex].nodeName === "TD" && preChildNodes[rowIndex].rowSpan > 1) { + addClass(preChildNodes[rowIndex], "hover-cell"); + hoveredCellList.push(preChildNodes[rowIndex]); + break; + } + rowNum--; + } + }); + } else { + hoveredCellList.forEach((item) => removeClass(item, "hover-cell")); + hoveredCellList.length = 0; + } + if (!props.store?.states.isComplex.value || !isClient) return; + rAF(() => { + const oldRow = rows[oldVal]; + const newRow = rows[newVal]; + if (oldRow && !oldRow.classList.contains("hover-fixed-row")) removeClass(oldRow, "hover-row"); + if (newRow) addClass(newRow, "hover-row"); + }); + }); + (0, vue.onUnmounted)(() => { + removePopper?.(); + }); + return { + ns, + onColumnsChange, + onScrollableChange, + wrappedRowRender, + tooltipContent, + tooltipTrigger + }; + }, + render() { + const { wrappedRowRender, store } = this; + return (0, vue.h)("tbody", { tabIndex: -1 }, [(store?.states.data.value || []).reduce((acc, row) => { + return acc.concat(wrappedRowRender(row, acc.length)); + }, [])]); + } + }); + +//#endregion +//#region ../../packages/components/table/src/table-footer/mapState-helper.ts + function useMapState() { + const store = (0, vue.inject)(TABLE_INJECTION_KEY)?.store; + return { + leftFixedLeafCount: (0, vue.computed)(() => { + return store?.states.fixedLeafColumnsLength.value ?? 0; + }), + rightFixedLeafCount: (0, vue.computed)(() => { + return store?.states.rightFixedColumns.value.length ?? 0; + }), + columnsCount: (0, vue.computed)(() => { + return store?.states.columns.value.length ?? 0; + }), + leftFixedCount: (0, vue.computed)(() => { + return store?.states.fixedColumns.value.length ?? 0; + }), + rightFixedCount: (0, vue.computed)(() => { + return store?.states.rightFixedColumns.value.length ?? 0; + }), + columns: (0, vue.computed)(() => store?.states.columns.value ?? []) + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-footer/style-helper.ts + function useStyle$1(props) { + const { columns } = useMapState(); + const ns = useNamespace("table"); + const getCellClasses = (columns, cellIndex) => { + const column = columns[cellIndex]; + const classes = [ + ns.e("cell"), + column.id, + column.align, + column.labelClassName, + ...getFixedColumnsClass(ns.b(), cellIndex, column.fixed, props.store) + ]; + if (column.className) classes.push(column.className); + if (!column.children) classes.push(ns.is("leaf")); + return classes; + }; + const getCellStyles = (column, cellIndex) => { + const fixedStyle = getFixedColumnOffset(cellIndex, column.fixed, props.store); + ensurePosition(fixedStyle, "left"); + ensurePosition(fixedStyle, "right"); + return fixedStyle; + }; + return { + getCellClasses, + getCellStyles, + columns + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-footer/index.ts + var table_footer_default = (0, vue.defineComponent)({ + name: "ElTableFooter", + props: { + fixed: { + type: String, + default: "" + }, + store: { + required: true, + type: Object + }, + summaryMethod: Function, + sumText: String, + border: Boolean, + defaultSort: { + type: Object, + default: () => { + return { + prop: "", + order: "" + }; + } + } + }, + setup(props) { + const parent = (0, vue.inject)(TABLE_INJECTION_KEY); + const ns = useNamespace("table"); + const { getCellClasses, getCellStyles, columns } = useStyle$1(props); + const { onScrollableChange, onColumnsChange } = useLayoutObserver(parent); + return { + ns, + onScrollableChange, + onColumnsChange, + getCellClasses, + getCellStyles, + columns + }; + }, + render() { + const { columns, getCellStyles, getCellClasses, summaryMethod, sumText } = this; + const data = this.store.states.data.value; + let sums = []; + if (summaryMethod) sums = summaryMethod({ + columns, + data + }); + else columns.forEach((column, index) => { + if (index === 0) { + sums[index] = sumText; + return; + } + const values = data.map((item) => Number(item[column.property])); + const precisions = []; + let notNumber = true; + values.forEach((value) => { + if (!Number.isNaN(+value)) { + notNumber = false; + const decimal = `${value}`.split(".")[1]; + precisions.push(decimal ? decimal.length : 0); + } + }); + const precision = Math.max.apply(null, precisions); + if (!notNumber) sums[index] = values.reduce((prev, curr) => { + const value = Number(curr); + if (!Number.isNaN(+value)) return Number.parseFloat((prev + curr).toFixed(Math.min(precision, 20))); + else return prev; + }, 0); + else sums[index] = ""; + }); + return (0, vue.h)((0, vue.h)("tfoot", [(0, vue.h)("tr", {}, [...columns.map((column, cellIndex) => (0, vue.h)("td", { + key: cellIndex, + colspan: column.colSpan, + rowspan: column.rowSpan, + class: getCellClasses(columns, cellIndex), + style: getCellStyles(column, cellIndex) + }, [(0, vue.h)("div", { class: ["cell", column.labelClassName] }, [sums[cellIndex]])]))])])); + } + }); + +//#endregion +//#region ../../packages/components/table/src/table/utils-helper.ts + function useUtils(store) { + const setCurrentRow = (row) => { + store.commit("setCurrentRow", row); + }; + const getSelectionRows = () => { + return store.getSelectionRows(); + }; + const toggleRowSelection = (row, selected, ignoreSelectable = true) => { + store.toggleRowSelection(row, selected, false, ignoreSelectable); + store.updateAllSelected(); + }; + const clearSelection = () => { + store.clearSelection(); + }; + const clearFilter = (columnKeys) => { + store.clearFilter(columnKeys); + }; + const toggleAllSelection = () => { + store.commit("toggleAllSelection"); + }; + const toggleRowExpansion = (row, expanded) => { + store.toggleRowExpansionAdapter(row, expanded); + }; + const clearSort = () => { + store.clearSort(); + }; + const sort = (prop, order) => { + store.commit("sort", { + prop, + order + }); + }; + const updateKeyChildren = (key, data) => { + store.updateKeyChildren(key, data); + }; + return { + setCurrentRow, + getSelectionRows, + toggleRowSelection, + clearSelection, + clearFilter, + toggleAllSelection, + toggleRowExpansion, + clearSort, + sort, + updateKeyChildren + }; + } + +//#endregion +//#region ../../packages/components/table/src/table/style-helper.ts + function useStyle(props, layout, store, table) { + const isHidden = (0, vue.ref)(false); + const renderExpanded = (0, vue.ref)(null); + const resizeProxyVisible = (0, vue.ref)(false); + const setDragVisible = (visible) => { + resizeProxyVisible.value = visible; + }; + const resizeState = (0, vue.ref)({ + width: null, + height: null, + headerHeight: null + }); + const isGroup = (0, vue.ref)(false); + const scrollbarViewStyle = { + display: "inline-block", + verticalAlign: "middle" + }; + const tableWidth = (0, vue.ref)(); + const tableScrollHeight = (0, vue.ref)(0); + const bodyScrollHeight = (0, vue.ref)(0); + const headerScrollHeight = (0, vue.ref)(0); + const footerScrollHeight = (0, vue.ref)(0); + const appendScrollHeight = (0, vue.ref)(0); + (0, vue.watch)(() => props.height, (value) => { + layout.setHeight(value ?? null); + }, { immediate: true }); + (0, vue.watch)(() => props.maxHeight, (value) => { + layout.setMaxHeight(value ?? null); + }, { immediate: true }); + (0, vue.watch)(() => [props.currentRowKey, store.states.rowKey], ([currentRowKey, rowKey]) => { + if (!(0, vue.unref)(rowKey) || !(0, vue.unref)(currentRowKey)) return; + store.setCurrentRowKey(`${currentRowKey}`); + }, { immediate: true }); + (0, vue.watch)(() => props.data, (data) => { + table.store.commit("setData", data); + }, { + immediate: true, + deep: true + }); + (0, vue.watchEffect)(() => { + if (props.expandRowKeys) store.setExpandRowKeysAdapter(props.expandRowKeys); + }); + const handleMouseLeave = () => { + table.store.commit("setHoverRow", null); + if (table.hoverState) table.hoverState = null; + }; + const handleHeaderFooterMousewheel = (_event, data) => { + const { pixelX, pixelY } = data; + if (Math.abs(pixelX) >= Math.abs(pixelY)) table.refs.bodyWrapper.scrollLeft += data.pixelX / 5; + }; + const shouldUpdateHeight = (0, vue.computed)(() => { + return props.height || props.maxHeight || store.states.fixedColumns.value.length > 0 || store.states.rightFixedColumns.value.length > 0; + }); + const tableBodyStyles = (0, vue.computed)(() => { + return { width: layout.bodyWidth.value ? `${layout.bodyWidth.value}px` : "" }; + }); + const doLayout = () => { + if (shouldUpdateHeight.value) layout.updateElsHeight(); + layout.updateColumnsWidth(); + if (typeof window === "undefined") return; + requestAnimationFrame(syncPosition); + }; + (0, vue.onMounted)(async () => { + await (0, vue.nextTick)(); + store.updateColumns(); + bindEvents(); + requestAnimationFrame(doLayout); + const el = table.vnode.el; + const tableHeader = table.refs.headerWrapper; + if (props.flexible && el && el.parentElement) el.parentElement.style.minWidth = "0"; + resizeState.value = { + width: tableWidth.value = el.offsetWidth, + height: el.offsetHeight, + headerHeight: props.showHeader && tableHeader ? tableHeader.offsetHeight : null + }; + store.states.columns.value.forEach((column) => { + if (column.filteredValue && column.filteredValue.length) table.store.commit("filterChange", { + column, + values: column.filteredValue, + silent: true + }); + }); + table.$ready = true; + }); + const setScrollClassByEl = (el, className) => { + if (!el) return; + const classList = Array.from(el.classList).filter((item) => !item.startsWith("is-scrolling-")); + classList.push(layout.scrollX.value ? className : "is-scrolling-none"); + el.className = classList.join(" "); + }; + const setScrollClass = (className) => { + const { tableWrapper } = table.refs; + setScrollClassByEl(tableWrapper, className); + }; + const hasScrollClass = (className) => { + const { tableWrapper } = table.refs; + return !!(tableWrapper && tableWrapper.classList.contains(className)); + }; + const syncPosition = function() { + if (!table.refs.scrollBarRef) return; + if (!layout.scrollX.value) { + const scrollingNoneClass = "is-scrolling-none"; + if (!hasScrollClass(scrollingNoneClass)) setScrollClass(scrollingNoneClass); + return; + } + const scrollContainer = table.refs.scrollBarRef.wrapRef; + if (!scrollContainer) return; + const { scrollLeft, offsetWidth, scrollWidth } = scrollContainer; + const { headerWrapper, footerWrapper } = table.refs; + if (headerWrapper) headerWrapper.scrollLeft = scrollLeft; + if (footerWrapper) footerWrapper.scrollLeft = scrollLeft; + if (scrollLeft >= scrollWidth - offsetWidth - 1) setScrollClass("is-scrolling-right"); + else if (scrollLeft === 0) setScrollClass("is-scrolling-left"); + else setScrollClass("is-scrolling-middle"); + }; + const bindEvents = () => { + if (!table.refs.scrollBarRef) return; + if (table.refs.scrollBarRef.wrapRef) useEventListener(table.refs.scrollBarRef.wrapRef, "scroll", syncPosition, { passive: true }); + if (props.fit) useResizeObserver(table.vnode.el, resizeListener); + else useEventListener(window, "resize", resizeListener); + useResizeObserver(table.refs.tableInnerWrapper, () => { + resizeListener(); + table.refs?.scrollBarRef?.update(); + }); + }; + const resizeListener = () => { + const el = table.vnode.el; + if (!table.$ready || !el) return; + let shouldUpdateLayout = false; + const { width: oldWidth, height: oldHeight, headerHeight: oldHeaderHeight } = resizeState.value; + const width = tableWidth.value = el.offsetWidth; + if (oldWidth !== width) shouldUpdateLayout = true; + const height = el.offsetHeight; + if ((props.height || shouldUpdateHeight.value) && oldHeight !== height) shouldUpdateLayout = true; + const tableHeader = props.tableLayout === "fixed" ? table.refs.headerWrapper : table.refs.tableHeaderRef?.$el; + if (props.showHeader && tableHeader?.offsetHeight !== oldHeaderHeight) shouldUpdateLayout = true; + tableScrollHeight.value = table.refs.tableWrapper?.scrollHeight || 0; + headerScrollHeight.value = tableHeader?.scrollHeight || 0; + footerScrollHeight.value = table.refs.footerWrapper?.offsetHeight || 0; + appendScrollHeight.value = table.refs.appendWrapper?.offsetHeight || 0; + bodyScrollHeight.value = tableScrollHeight.value - headerScrollHeight.value - footerScrollHeight.value - appendScrollHeight.value; + if (shouldUpdateLayout) { + resizeState.value = { + width, + height, + headerHeight: props.showHeader && tableHeader?.offsetHeight || 0 + }; + doLayout(); + } + }; + const tableSize = useFormSize(); + const bodyWidth = (0, vue.computed)(() => { + const { bodyWidth: bodyWidth_, scrollY, gutterWidth } = layout; + return bodyWidth_.value ? `${bodyWidth_.value - (scrollY.value ? gutterWidth : 0)}px` : ""; + }); + const tableLayout = (0, vue.computed)(() => { + if (props.maxHeight) return "fixed"; + return props.tableLayout; + }); + return { + isHidden, + renderExpanded, + setDragVisible, + isGroup, + handleMouseLeave, + handleHeaderFooterMousewheel, + tableSize, + emptyBlockStyle: (0, vue.computed)(() => { + if (props.data && props.data.length) return; + let height = "100%"; + if (props.height && bodyScrollHeight.value) height = `${bodyScrollHeight.value}px`; + const width = tableWidth.value; + return { + width: width ? `${width}px` : "", + height + }; + }), + resizeProxyVisible, + bodyWidth, + resizeState, + doLayout, + tableBodyStyles, + tableLayout, + scrollbarViewStyle, + scrollbarStyle: (0, vue.computed)(() => { + if (props.height) return { height: "100%" }; + if (props.maxHeight) if (!Number.isNaN(Number(props.maxHeight))) return { maxHeight: `${+props.maxHeight - headerScrollHeight.value - footerScrollHeight.value}px` }; + else return { maxHeight: `calc(${props.maxHeight} - ${headerScrollHeight.value + footerScrollHeight.value}px)` }; + return {}; + }) + }; + } + +//#endregion +//#region ../../packages/components/table/src/table/key-render-helper.ts + function useKeyRender(table) { + let observer; + const initWatchDom = () => { + const columnsWrapper = table.vnode.el.querySelector(".hidden-columns"); + const config = { + childList: true, + subtree: true + }; + const updateOrderFns = table.store.states.updateOrderFns; + observer = new MutationObserver(() => { + updateOrderFns.forEach((fn) => fn()); + }); + observer.observe(columnsWrapper, config); + }; + (0, vue.onMounted)(() => { + initWatchDom(); + }); + (0, vue.onUnmounted)(() => { + observer?.disconnect(); + }); + } + +//#endregion +//#region ../../packages/components/table/src/table/defaults.ts + var defaults_default$2 = { + data: { + type: Array, + default: () => [] + }, + size: useSizeProp, + width: [String, Number], + height: [String, Number], + maxHeight: [String, Number], + fit: { + type: Boolean, + default: true + }, + stripe: Boolean, + border: Boolean, + rowKey: [String, Function], + showHeader: { + type: Boolean, + default: true + }, + 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: true + }, + indent: { + type: Number, + default: 16 + }, + treeProps: { + type: Object, + default: () => { + return { + hasChildren: "hasChildren", + children: "children", + checkStrictly: false + }; + } + }, + lazy: Boolean, + load: Function, + style: { + type: [ + String, + Object, + Array + ], + 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: true + }, + preserveExpandedContent: Boolean, + nativeScrollbar: Boolean + }; + +//#endregion +//#region ../../packages/components/table/src/h-helper.ts + function hColgroup(props) { + const isAuto = props.tableLayout === "auto"; + let columns = props.columns || []; + if (isAuto) { + if (columns.every(({ width }) => isUndefined(width))) columns = []; + } + const getPropsData = (column) => { + const propsData = { + key: `${props.tableLayout}_${column.id}`, + style: {}, + name: void 0 + }; + if (isAuto) propsData.style = { width: `${column.width}px` }; + else propsData.name = column.id; + return propsData; + }; + return (0, vue.h)("colgroup", {}, columns.map((column) => (0, vue.h)("col", getPropsData(column)))); + } + hColgroup.props = ["columns", "tableLayout"]; + +//#endregion +//#region ../../packages/components/table/src/composables/use-scrollbar.ts + const useScrollbar$1 = () => { + const scrollBarRef = (0, vue.ref)(); + const scrollTo = (options, yCoord) => { + const scrollbar = scrollBarRef.value; + if (scrollbar) scrollbar.scrollTo(options, yCoord); + }; + const setScrollPosition = (position, offset) => { + const scrollbar = scrollBarRef.value; + if (scrollbar && isNumber(offset) && ["Top", "Left"].includes(position)) scrollbar[`setScroll${position}`](offset); + }; + const setScrollTop = (top) => setScrollPosition("Top", top); + const setScrollLeft = (left) => setScrollPosition("Left", left); + return { + scrollBarRef, + scrollTo, + setScrollTop, + setScrollLeft + }; + }; + +//#endregion +//#region ../../packages/components/table/src/table.vue?vue&type=script&lang.ts + let tableIdSeed = 1; + var table_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElTable", + directives: { Mousewheel }, + components: { + TableHeader: table_header_default, + TableBody: table_body_default, + TableFooter: table_footer_default, + ElScrollbar, + hColgroup + }, + props: defaults_default$2, + emits: [ + "select", + "select-all", + "selection-change", + "cell-mouse-enter", + "cell-mouse-leave", + "cell-contextmenu", + "cell-click", + "cell-dblclick", + "row-click", + "row-contextmenu", + "row-dblclick", + "header-click", + "header-contextmenu", + "sort-change", + "filter-change", + "current-change", + "header-dragend", + "expand-change", + "scroll" + ], + setup(props) { + const { t } = useLocale(); + const ns = useNamespace("table"); + const globalConfig = useGlobalConfig("table"); + const table = (0, vue.getCurrentInstance)(); + (0, vue.provide)(TABLE_INJECTION_KEY, table); + const store = createStore(table, props); + table.store = store; + const layout = new TableLayout({ + store: table.store, + table, + fit: props.fit, + showHeader: props.showHeader + }); + table.layout = layout; + const isEmpty = (0, vue.computed)(() => (store.states.data.value || []).length === 0); + /** + * open functions + */ + const { setCurrentRow, getSelectionRows, toggleRowSelection, clearSelection, clearFilter, toggleAllSelection, toggleRowExpansion, clearSort, sort, updateKeyChildren } = useUtils(store); + const { isHidden, renderExpanded, setDragVisible, isGroup, handleMouseLeave, handleHeaderFooterMousewheel, tableSize, emptyBlockStyle, resizeProxyVisible, bodyWidth, resizeState, doLayout, tableBodyStyles, tableLayout, scrollbarViewStyle, scrollbarStyle } = useStyle(props, layout, store, table); + const { scrollBarRef, scrollTo, setScrollLeft, setScrollTop } = useScrollbar$1(); + const debouncedUpdateLayout = debounce(doLayout, 50); + const tableId = `${ns.namespace.value}-table_${tableIdSeed++}`; + table.tableId = tableId; + table.state = { + isGroup, + resizeState, + doLayout, + debouncedUpdateLayout + }; + const computedSumText = (0, vue.computed)(() => props.sumText ?? t("el.table.sumText")); + const computedEmptyText = (0, vue.computed)(() => { + return props.emptyText ?? t("el.table.emptyText"); + }); + const computedTooltipEffect = (0, vue.computed)(() => props.tooltipEffect ?? globalConfig.value?.tooltipEffect); + const computedTooltipOptions = (0, vue.computed)(() => props.tooltipOptions ?? globalConfig.value?.tooltipOptions); + const columns = (0, vue.computed)(() => { + return convertToRows(store.states.originColumns.value)[0]; + }); + useKeyRender(table); + (0, vue.onBeforeUnmount)(() => { + debouncedUpdateLayout.cancel(); + }); + return { + ns, + layout, + store, + columns, + handleHeaderFooterMousewheel, + handleMouseLeave, + tableId, + tableSize, + isHidden, + isEmpty, + renderExpanded, + resizeProxyVisible, + resizeState, + isGroup, + bodyWidth, + tableBodyStyles, + emptyBlockStyle, + debouncedUpdateLayout, + setCurrentRow, + getSelectionRows, + toggleRowSelection, + clearSelection, + clearFilter, + toggleAllSelection, + toggleRowExpansion, + clearSort, + doLayout, + sort, + updateKeyChildren, + t, + setDragVisible, + context: table, + computedSumText, + computedEmptyText, + computedTooltipEffect, + computedTooltipOptions, + tableLayout, + scrollbarViewStyle, + scrollbarStyle, + scrollBarRef, + scrollTo, + setScrollLeft, + setScrollTop, + allowDragLastColumn: props.allowDragLastColumn + }; + } + }); + +//#endregion +//#region ../../packages/components/table/src/table.vue + const _hoisted_1$15 = ["data-prefix"]; + const _hoisted_2$9 = { + ref: "hiddenColumns", + class: "hidden-columns" + }; + function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) { + const _component_hColgroup = (0, vue.resolveComponent)("hColgroup"); + const _component_table_header = (0, vue.resolveComponent)("table-header"); + const _component_table_body = (0, vue.resolveComponent)("table-body"); + const _component_table_footer = (0, vue.resolveComponent)("table-footer"); + const _component_el_scrollbar = (0, vue.resolveComponent)("el-scrollbar"); + const _directive_mousewheel = (0, vue.resolveDirective)("mousewheel"); + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref: "tableWrapper", + class: (0, vue.normalizeClass)([ + { + [_ctx.ns.m("fit")]: _ctx.fit, + [_ctx.ns.m("striped")]: _ctx.stripe, + [_ctx.ns.m("border")]: _ctx.border || _ctx.isGroup, + [_ctx.ns.m("hidden")]: _ctx.isHidden, + [_ctx.ns.m("group")]: _ctx.isGroup, + [_ctx.ns.m("fluid-height")]: _ctx.maxHeight, + [_ctx.ns.m("scrollable-x")]: _ctx.layout.scrollX.value, + [_ctx.ns.m("scrollable-y")]: _ctx.layout.scrollY.value, + [_ctx.ns.m("enable-row-hover")]: !_ctx.store.states.isComplex.value, + [_ctx.ns.m("enable-row-transition")]: (_ctx.store.states.data.value || []).length !== 0 && (_ctx.store.states.data.value || []).length < 100, + "has-footer": _ctx.showSummary + }, + _ctx.ns.m(_ctx.tableSize), + _ctx.className, + _ctx.ns.b(), + _ctx.ns.m(`layout-${_ctx.tableLayout}`) + ]), + style: (0, vue.normalizeStyle)(_ctx.style), + "data-prefix": _ctx.ns.namespace.value, + onMouseleave: _cache[1] || (_cache[1] = (...args) => _ctx.handleMouseLeave && _ctx.handleMouseLeave(...args)) + }, [(0, vue.createElementVNode)("div", { + ref: "tableInnerWrapper", + class: (0, vue.normalizeClass)(_ctx.ns.e("inner-wrapper")) + }, [ + (0, vue.createElementVNode)("div", _hoisted_2$9, [(0, vue.renderSlot)(_ctx.$slots, "default")], 512), + _ctx.showHeader && _ctx.tableLayout === "fixed" ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref: "headerWrapper", + class: (0, vue.normalizeClass)(_ctx.ns.e("header-wrapper")) + }, [(0, vue.createElementVNode)("table", { + ref: "tableHeader", + class: (0, vue.normalizeClass)(_ctx.ns.e("header")), + style: (0, vue.normalizeStyle)(_ctx.tableBodyStyles), + border: "0", + cellpadding: "0", + cellspacing: "0" + }, [(0, vue.createVNode)(_component_hColgroup, { + columns: _ctx.store.states.columns.value, + "table-layout": _ctx.tableLayout + }, null, 8, ["columns", "table-layout"]), (0, vue.createVNode)(_component_table_header, { + ref: "tableHeaderRef", + border: _ctx.border, + "default-sort": _ctx.defaultSort, + store: _ctx.store, + "append-filter-panel-to": _ctx.appendFilterPanelTo, + "allow-drag-last-column": _ctx.allowDragLastColumn, + onSetDragVisible: _ctx.setDragVisible + }, null, 8, [ + "border", + "default-sort", + "store", + "append-filter-panel-to", + "allow-drag-last-column", + "onSetDragVisible" + ])], 6)], 2)), [[_directive_mousewheel, _ctx.handleHeaderFooterMousewheel]]) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + ref: "bodyWrapper", + class: (0, vue.normalizeClass)(_ctx.ns.e("body-wrapper")) + }, [(0, vue.createVNode)(_component_el_scrollbar, { + ref: "scrollBarRef", + "view-style": _ctx.scrollbarViewStyle, + "wrap-style": _ctx.scrollbarStyle, + always: _ctx.scrollbarAlwaysOn, + tabindex: _ctx.scrollbarTabindex, + native: _ctx.nativeScrollbar, + onScroll: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("scroll", $event)) + }, { + default: (0, vue.withCtx)(() => [ + (0, vue.createElementVNode)("table", { + ref: "tableBody", + class: (0, vue.normalizeClass)(_ctx.ns.e("body")), + cellspacing: "0", + cellpadding: "0", + border: "0", + style: (0, vue.normalizeStyle)({ + width: _ctx.bodyWidth, + tableLayout: _ctx.tableLayout + }) + }, [ + (0, vue.createVNode)(_component_hColgroup, { + columns: _ctx.store.states.columns.value, + "table-layout": _ctx.tableLayout + }, null, 8, ["columns", "table-layout"]), + _ctx.showHeader && _ctx.tableLayout === "auto" ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_table_header, { + key: 0, + ref: "tableHeaderRef", + class: (0, vue.normalizeClass)(_ctx.ns.e("body-header")), + border: _ctx.border, + "default-sort": _ctx.defaultSort, + store: _ctx.store, + "append-filter-panel-to": _ctx.appendFilterPanelTo, + onSetDragVisible: _ctx.setDragVisible + }, null, 8, [ + "class", + "border", + "default-sort", + "store", + "append-filter-panel-to", + "onSetDragVisible" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createVNode)(_component_table_body, { + context: _ctx.context, + highlight: _ctx.highlightCurrentRow, + "row-class-name": _ctx.rowClassName, + "tooltip-effect": _ctx.computedTooltipEffect, + "tooltip-options": _ctx.computedTooltipOptions, + "row-style": _ctx.rowStyle, + store: _ctx.store, + stripe: _ctx.stripe + }, null, 8, [ + "context", + "highlight", + "row-class-name", + "tooltip-effect", + "tooltip-options", + "row-style", + "store", + "stripe" + ]), + _ctx.showSummary && _ctx.tableLayout === "auto" ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_table_footer, { + key: 1, + class: (0, vue.normalizeClass)(_ctx.ns.e("body-footer")), + border: _ctx.border, + "default-sort": _ctx.defaultSort, + store: _ctx.store, + "sum-text": _ctx.computedSumText, + "summary-method": _ctx.summaryMethod + }, null, 8, [ + "class", + "border", + "default-sort", + "store", + "sum-text", + "summary-method" + ])) : (0, vue.createCommentVNode)("v-if", true) + ], 6), + _ctx.isEmpty ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref: "emptyBlock", + style: (0, vue.normalizeStyle)(_ctx.emptyBlockStyle), + class: (0, vue.normalizeClass)(_ctx.ns.e("empty-block")) + }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.ns.e("empty-text")) }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(_ctx.computedEmptyText), 1)])], 2)], 6)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.append ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + ref: "appendWrapper", + class: (0, vue.normalizeClass)(_ctx.ns.e("append-wrapper")) + }, [(0, vue.renderSlot)(_ctx.$slots, "append")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ]), + _: 3 + }, 8, [ + "view-style", + "wrap-style", + "always", + "tabindex", + "native" + ])], 2), + _ctx.showSummary && _ctx.tableLayout === "fixed" ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + ref: "footerWrapper", + class: (0, vue.normalizeClass)(_ctx.ns.e("footer-wrapper")) + }, [(0, vue.createElementVNode)("table", { + class: (0, vue.normalizeClass)(_ctx.ns.e("footer")), + cellspacing: "0", + cellpadding: "0", + border: "0", + style: (0, vue.normalizeStyle)(_ctx.tableBodyStyles) + }, [(0, vue.createVNode)(_component_hColgroup, { + columns: _ctx.store.states.columns.value, + "table-layout": _ctx.tableLayout + }, null, 8, ["columns", "table-layout"]), (0, vue.createVNode)(_component_table_footer, { + border: _ctx.border, + "default-sort": _ctx.defaultSort, + store: _ctx.store, + "sum-text": _ctx.computedSumText, + "summary-method": _ctx.summaryMethod + }, null, 8, [ + "border", + "default-sort", + "store", + "sum-text", + "summary-method" + ])], 6)], 2)), [[vue.vShow, !_ctx.isEmpty], [_directive_mousewheel, _ctx.handleHeaderFooterMousewheel]]) : (0, vue.createCommentVNode)("v-if", true), + _ctx.border || _ctx.isGroup ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)(_ctx.ns.e("border-left-patch")) + }, null, 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2), (0, vue.withDirectives)((0, vue.createElementVNode)("div", { + ref: "resizeProxy", + class: (0, vue.normalizeClass)(_ctx.ns.e("column-resize-proxy")) + }, null, 2), [[vue.vShow, _ctx.resizeProxyVisible]])], 46, _hoisted_1$15); + } + var table_default = /* @__PURE__ */ _plugin_vue_export_helper_default(table_vue_vue_type_script_lang_default, [["render", _sfc_render$3]]); + +//#endregion +//#region ../../packages/components/table/src/config.ts + const defaultClassNames = { + selection: "table-column--selection", + expand: "table__expand-column" + }; + const cellStarts = { + 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: "" + } + }; + const getDefaultClassName = (type) => { + return defaultClassNames[type] || ""; + }; + const cellForced = { + selection: { + renderHeader({ store }) { + function isDisabled() { + return store.states.data.value && store.states.data.value.length === 0; + } + return (0, vue.h)(ElCheckbox, { + disabled: isDisabled(), + size: store.states.tableSize.value, + indeterminate: store.states.selection.value.length > 0 && !store.states.isAllSelected.value, + "onUpdate:modelValue": store.toggleAllSelection ?? void 0, + modelValue: store.states.isAllSelected.value, + ariaLabel: store.t("el.table.selectAllLabel") + }); + }, + renderCell({ row, column, store, $index }) { + return (0, vue.h)(ElCheckbox, { + disabled: column.selectable ? !column.selectable.call(null, row, $index) : false, + size: store.states.tableSize.value, + onChange: () => { + store.commit("rowSelectedChanged", row); + }, + onClick: (event) => event.stopPropagation(), + modelValue: store.isSelected(row), + ariaLabel: store.t("el.table.selectRowLabel") + }); + }, + sortable: false, + resizable: false + }, + index: { + renderHeader({ column }) { + return column.label || "#"; + }, + renderCell({ column, $index }) { + let i = $index + 1; + const index = column.index; + if (isNumber(index)) i = $index + index; + else if (isFunction$1(index)) i = index($index); + return (0, vue.h)("div", {}, [i]); + }, + sortable: false + }, + expand: { + renderHeader({ column }) { + return column.label || ""; + }, + renderCell({ column, row, store, expanded, $index }) { + const { ns } = store; + const classes = [ns.e("expand-icon")]; + if (!column.renderExpand && expanded) classes.push(ns.em("expand-icon", "expanded")); + const callback = function(e) { + e.stopPropagation(); + store.toggleRowExpansion(row); + }; + const isRowExpandable = store.states.rowExpandable.value?.(row, $index) ?? true; + if (!isRowExpandable) classes.push(ns.is("disabled")); + return (0, vue.h)("button", { + type: "button", + disabled: !isRowExpandable, + "aria-label": store.t(expanded ? "el.table.collapseRowLabel" : "el.table.expandRowLabel"), + "aria-expanded": expanded, + class: classes, + onClick: callback + }, { default: () => { + if (column.renderExpand) return [column.renderExpand({ + expanded, + expandable: isRowExpandable + })]; + return [(0, vue.h)(ElIcon, null, { default: () => { + return [(0, vue.h)(arrow_right_default)]; + } })]; + } }); + }, + sortable: false, + resizable: false + } + }; + function defaultRenderCell({ row, column, $index }) { + const property = column.property; + const value = property && getProp(row, property).value; + if (column && column.formatter) return column.formatter(row, column, value, $index); + return value?.toString?.() || ""; + } + function treeCellPrefix({ row, treeNode, store }, createPlaceholder = false) { + const { ns } = store; + if (!treeNode) { + if (createPlaceholder) return [(0, vue.h)("span", { class: ns.e("placeholder") })]; + return null; + } + const ele = []; + const callback = function(e) { + e.stopPropagation(); + if (treeNode.loading) return; + store.loadOrToggle(row); + }; + if (treeNode.indent) ele.push((0, vue.h)("span", { + class: ns.e("indent"), + style: { "padding-left": `${treeNode.indent}px` } + })); + if (isBoolean(treeNode.expanded) && !treeNode.noLazyChildren) { + const expandClasses = [ns.e("expand-icon"), treeNode.expanded ? ns.em("expand-icon", "expanded") : ""]; + let icon = arrow_right_default; + if (treeNode.loading) icon = loading_default; + ele.push((0, vue.h)("button", { + type: "button", + "aria-label": store.t(treeNode.expanded ? "el.table.collapseRowLabel" : "el.table.expandRowLabel"), + "aria-expanded": treeNode.expanded, + class: expandClasses, + onClick: callback + }, { default: () => { + return [(0, vue.h)(ElIcon, { class: ns.is("loading", treeNode.loading) }, { default: () => [(0, vue.h)(icon)] })]; + } })); + } else ele.push((0, vue.h)("span", { class: ns.e("placeholder") })); + return ele; + } + +//#endregion +//#region ../../packages/components/table/src/table-column/watcher-helper.ts + function getAllAliases(props, aliases) { + return props.reduce((prev, cur) => { + prev[cur] = cur; + return prev; + }, aliases); + } + function useWatcher(owner, props_) { + const instance = (0, vue.getCurrentInstance)(); + const registerComplexWatchers = () => { + const props = ["fixed"]; + const aliases = { + realWidth: "width", + realMinWidth: "minWidth" + }; + const allAliases = getAllAliases(props, aliases); + Object.keys(allAliases).forEach((key) => { + const columnKey = aliases[key]; + if (hasOwn(props_, columnKey)) (0, vue.watch)(() => props_[columnKey], (newVal) => { + let value = newVal; + if (columnKey === "width" && key === "realWidth") value = parseWidth(newVal); + if (columnKey === "minWidth" && key === "realMinWidth") value = parseMinWidth(newVal); + instance.columnConfig.value[columnKey] = value; + instance.columnConfig.value[key] = value; + const updateColumns = columnKey === "fixed"; + owner.value.store.scheduleLayout(updateColumns); + }); + }); + }; + const registerNormalWatchers = () => { + const props = [ + "label", + "filters", + "filterMultiple", + "filteredValue", + "sortable", + "index", + "formatter", + "className", + "labelClassName", + "filterClassName", + "showOverflowTooltip", + "tooltipFormatter", + "resizable" + ]; + const parentProps = ["showOverflowTooltip"]; + const aliases = { + property: "prop", + align: "realAlign", + headerAlign: "realHeaderAlign" + }; + const allAliases = getAllAliases(props, aliases); + Object.keys(allAliases).forEach((key) => { + const columnKey = aliases[key]; + if (hasOwn(props_, columnKey)) (0, vue.watch)(() => props_[columnKey], (newVal) => { + instance.columnConfig.value[key] = newVal; + if (key === "filters" || key === "filterMethod") instance.columnConfig.value["filterable"] = !!(instance.columnConfig.value["filters"] || instance.columnConfig.value["filterMethod"]); + }); + }); + parentProps.forEach((key) => { + if (hasOwn(owner.value.props, key)) (0, vue.watch)(() => owner.value.props[key], (newVal) => { + if (instance.columnConfig.value.type === "selection") return; + if (!isUndefined(props_[key])) return; + instance.columnConfig.value[key] = newVal; + }); + }); + const globalConfig = useGlobalConfig("table"); + if (globalConfig.value && hasOwn(globalConfig.value, "showOverflowTooltip")) (0, vue.watch)(() => globalConfig.value?.showOverflowTooltip, (newVal) => { + if (instance.columnConfig.value.type === "selection") return; + if (!isUndefined(props_.showOverflowTooltip) || !isUndefined(owner.value.props.showOverflowTooltip)) return; + instance.columnConfig.value.showOverflowTooltip = newVal; + }); + }; + return { + registerComplexWatchers, + registerNormalWatchers + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-column/render-helper.ts + function useRender(props, slots, owner) { + const instance = (0, vue.getCurrentInstance)(); + const columnId = (0, vue.ref)(""); + const isSubColumn = (0, vue.ref)(false); + const realAlign = (0, vue.ref)(); + const realHeaderAlign = (0, vue.ref)(); + const ns = useNamespace("table"); + (0, vue.watchEffect)(() => { + realAlign.value = props.align ? `is-${props.align}` : null; + realAlign.value; + }); + (0, vue.watchEffect)(() => { + realHeaderAlign.value = props.headerAlign ? `is-${props.headerAlign}` : realAlign.value; + realHeaderAlign.value; + }); + const columnOrTableParent = (0, vue.computed)(() => { + let parent = instance.vnode.vParent || instance.parent; + while (parent && !parent.tableId && !parent.columnId) parent = parent.vnode.vParent || parent.parent; + return parent; + }); + const hasTreeColumn = (0, vue.computed)(() => { + const { store } = instance.parent; + if (!store) return false; + const { treeData } = store.states; + const treeDataValue = treeData.value; + return treeDataValue && Object.keys(treeDataValue).length > 0; + }); + const realWidth = (0, vue.ref)(parseWidth(props.width)); + const realMinWidth = (0, vue.ref)(parseMinWidth(props.minWidth)); + const setColumnWidth = (column) => { + if (realWidth.value) column.width = realWidth.value; + if (realMinWidth.value) column.minWidth = realMinWidth.value; + if (!realWidth.value && realMinWidth.value) column.width = void 0; + if (!column.minWidth) column.minWidth = 80; + column.realWidth = Number(isUndefined(column.width) ? column.minWidth : column.width); + return column; + }; + const setColumnForcedProps = (column) => { + const type = column.type; + const source = cellForced[type] || {}; + Object.keys(source).forEach((prop) => { + const value = source[prop]; + if (prop !== "className" && !isUndefined(value)) column[prop] = value; + }); + const className = getDefaultClassName(type); + if (className) { + const forceClass = `${(0, vue.unref)(ns.namespace)}-${className}`; + column.className = column.className ? `${column.className} ${forceClass}` : forceClass; + } + return column; + }; + const checkSubColumn = (children) => { + if (isArray$1(children)) children.forEach((child) => check(child)); + else check(children); + function check(item) { + if (item?.type?.name === "ElTableColumn") item.vParent = instance; + } + }; + const setColumnRenders = (column) => { + if (props.renderHeader) /* @__PURE__ */ debugWarn("TableColumn", "Comparing to render-header, scoped-slot header is easier to use. We recommend users to use scoped-slot header."); + else if (column.type !== "selection") column.renderHeader = (scope) => { + instance.columnConfig.value["label"]; + if (slots.header) { + const slotResult = slots.header(scope); + if (ensureValidVNode(slotResult)) return (0, vue.h)(vue.Fragment, slotResult); + } + return (0, vue.createTextVNode)(column.label); + }; + if (slots["filter-icon"]) column.renderFilterIcon = (scope) => { + return (0, vue.renderSlot)(slots, "filter-icon", scope); + }; + if (slots.expand) column.renderExpand = (scope) => { + return (0, vue.renderSlot)(slots, "expand", scope); + }; + let originRenderCell = column.renderCell; + if (column.type === "expand") { + column.renderCell = (data) => (0, vue.h)("div", { class: "cell" }, [originRenderCell(data)]); + owner.value.renderExpanded = (row) => { + return slots.default ? slots.default(row) : slots.default; + }; + } else { + originRenderCell = originRenderCell || defaultRenderCell; + column.renderCell = (data) => { + let children = null; + if (slots.default) { + const vnodes = slots.default(data); + children = vnodes.some((v) => v.type !== vue.Comment) ? vnodes : originRenderCell(data); + } else children = originRenderCell(data); + const { columns } = owner.value.store.states; + const firstUserColumnIndex = columns.value.findIndex((item) => item.type === "default"); + const prefix = treeCellPrefix(data, hasTreeColumn.value && data.cellIndex === firstUserColumnIndex); + const props = { + class: "cell", + style: {} + }; + if (column.showOverflowTooltip) { + props.class = `${props.class} ${(0, vue.unref)(ns.namespace)}-tooltip`; + props.style = { width: `${(data.column.realWidth || Number(data.column.width)) - 1}px` }; + } + checkSubColumn(children); + return (0, vue.h)("div", props, [prefix, children]); + }; + } + return column; + }; + const getPropsData = (...propsKey) => { + return propsKey.reduce((prev, cur) => { + if (isArray$1(cur)) cur.forEach((key) => { + prev[key] = props[key]; + }); + return prev; + }, {}); + }; + const getColumnElIndex = (children, child) => { + return Array.prototype.indexOf.call(children, child); + }; + const updateColumnOrder = () => { + owner.value.store.commit("updateColumnOrder", instance.columnConfig.value); + }; + return { + columnId, + realAlign, + isSubColumn, + realHeaderAlign, + columnOrTableParent, + setColumnWidth, + setColumnForcedProps, + setColumnRenders, + getPropsData, + getColumnElIndex, + updateColumnOrder + }; + } + +//#endregion +//#region ../../packages/components/table/src/table-column/defaults.ts + var defaults_default$1 = { + 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: false + }, + sortMethod: Function, + sortBy: [ + String, + Function, + Array + ], + resizable: { + type: Boolean, + default: true + }, + 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: true + }, + filterClassName: String, + index: [Number, Function], + sortOrders: { + type: Array, + default: () => { + return [ + "ascending", + "descending", + null + ]; + }, + validator: (val) => { + return val.every((order) => [ + "ascending", + "descending", + null + ].includes(order)); + } + } + }; + +//#endregion +//#region ../../packages/components/table/src/table-column/index.ts + let columnIdSeed = 1; + var table_column_default = (0, vue.defineComponent)({ + name: "ElTableColumn", + components: { ElCheckbox }, + props: defaults_default$1, + setup(props, { slots }) { + const instance = (0, vue.getCurrentInstance)(); + const globalConfig = useGlobalConfig("table"); + const columnConfig = (0, vue.ref)({}); + const owner = (0, vue.computed)(() => { + let parent = instance.parent; + while (parent && !parent.tableId) parent = parent.parent; + return parent; + }); + const { registerNormalWatchers, registerComplexWatchers } = useWatcher(owner, props); + const { columnId, isSubColumn, realHeaderAlign, columnOrTableParent, setColumnWidth, setColumnForcedProps, setColumnRenders, getPropsData, getColumnElIndex, realAlign, updateColumnOrder } = useRender(props, slots, owner); + const parent = columnOrTableParent.value; + columnId.value = `${"tableId" in parent && parent.tableId || "columnId" in parent && parent.columnId}_column_${columnIdSeed++}`; + (0, vue.onBeforeMount)(() => { + isSubColumn.value = owner.value !== parent; + const type = props.type || "default"; + const sortable = props.sortable === "" ? true : props.sortable; + const showOverflowTooltip = type === "selection" ? false : isUndefined(props.showOverflowTooltip) ? parent.props.showOverflowTooltip ?? globalConfig.value?.showOverflowTooltip : props.showOverflowTooltip; + const tooltipFormatter = isUndefined(props.tooltipFormatter) ? parent.props.tooltipFormatter ?? globalConfig.value?.tooltipFormatter : props.tooltipFormatter; + const defaults = { + ...cellStarts[type], + id: columnId.value, + type, + property: props.prop || props.property, + align: realAlign, + headerAlign: realHeaderAlign, + showOverflowTooltip, + tooltipFormatter, + filterable: props.filters || props.filterMethod, + filteredValue: [], + filterPlacement: "", + filterClassName: "", + isColumnGroup: false, + isSubColumn: false, + filterOpened: false, + sortable, + index: props.index, + rawColumnKey: instance.vnode.key + }; + let column = getPropsData([ + "columnKey", + "label", + "className", + "labelClassName", + "type", + "renderHeader", + "formatter", + "fixed", + "resizable" + ], [ + "sortMethod", + "sortBy", + "sortOrders" + ], ["selectable", "reserveSelection"], [ + "filterMethod", + "filters", + "filterMultiple", + "filterOpened", + "filteredValue", + "filterPlacement", + "filterClassName" + ]); + column = mergeOptions(defaults, column); + column = compose(setColumnRenders, setColumnWidth, setColumnForcedProps)(column); + columnConfig.value = column; + registerNormalWatchers(); + registerComplexWatchers(); + }); + (0, vue.onMounted)(() => { + const parent = columnOrTableParent.value; + const children = isSubColumn.value ? parent.vnode.el?.children : parent.refs.hiddenColumns?.children; + const getColumnIndex = () => getColumnElIndex(children || [], instance.vnode.el); + columnConfig.value.getColumnIndex = getColumnIndex; + getColumnIndex() > -1 && owner.value.store.commit("insertColumn", columnConfig.value, isSubColumn.value ? "columnConfig" in parent && parent.columnConfig.value : null, updateColumnOrder); + }); + (0, vue.onBeforeUnmount)(() => { + const getColumnIndex = columnConfig.value.getColumnIndex; + (getColumnIndex ? getColumnIndex() : -1) > -1 && owner.value.store.commit("removeColumn", columnConfig.value, isSubColumn.value ? "columnConfig" in parent && parent.columnConfig.value : null, updateColumnOrder); + }); + instance.columnId = columnId.value; + instance.columnConfig = columnConfig; + }, + render() { + try { + const renderDefault = this.$slots.default?.({ + row: {}, + column: {}, + $index: -1 + }); + const children = []; + if (isArray$1(renderDefault)) { + for (const childNode of renderDefault) if (childNode.type?.name === "ElTableColumn" || childNode.shapeFlag & 2) children.push(childNode); + else if (childNode.type === vue.Fragment && isArray$1(childNode.children)) childNode.children.forEach((vnode) => { + if (vnode?.patchFlag !== 1024 && !isString(vnode?.children)) children.push(vnode); + }); + } + return (0, vue.h)("div", children); + } catch { + return (0, vue.h)("div", []); + } + } + }); + +//#endregion +//#region ../../packages/components/table/src/tableColumn.ts + var tableColumn_default = table_column_default; + +//#endregion +//#region ../../packages/components/table/index.ts + const ElTable = withInstall(table_default, { TableColumn: tableColumn_default }); + const ElTableColumn = withNoopInstall(tableColumn_default); + +//#endregion +//#region ../../packages/components/table-v2/src/constants.ts + let SortOrder = /* @__PURE__ */ function(SortOrder) { + SortOrder["ASC"] = "asc"; + SortOrder["DESC"] = "desc"; + return SortOrder; + }({}); + let Alignment = /* @__PURE__ */ function(Alignment) { + Alignment["LEFT"] = "left"; + Alignment["CENTER"] = "center"; + Alignment["RIGHT"] = "right"; + return Alignment; + }({}); + let FixedDir = /* @__PURE__ */ function(FixedDir) { + FixedDir["LEFT"] = "left"; + FixedDir["RIGHT"] = "right"; + return FixedDir; + }({}); + const oppositeOrderMap = { + [SortOrder.ASC]: SortOrder.DESC, + [SortOrder.DESC]: SortOrder.ASC + }; + const sortOrders = [SortOrder.ASC, SortOrder.DESC]; + +//#endregion +//#region ../../packages/components/table-v2/src/private.ts + const placeholderSign = Symbol("placeholder"); + +//#endregion +//#region ../../packages/components/table-v2/src/composables/utils.ts + const calcColumnStyle = (column, fixedColumn, fixed) => { + const flex = { + flexGrow: 0, + flexShrink: 0, + ...fixed ? {} : { + flexGrow: column.flexGrow ?? 0, + flexShrink: column.flexShrink ?? 1 + } + }; + const style = { + ...column.style ?? {}, + ...flex, + flexBasis: "auto", + width: column.width + }; + if (!fixedColumn) { + if (column.maxWidth) style.maxWidth = column.maxWidth; + if (column.minWidth) style.minWidth = column.minWidth; + } + return style; + }; + +//#endregion +//#region ../../packages/components/table-v2/src/composables/use-columns.ts + function useColumns(props, columns, fixed) { + const _columns = (0, vue.computed)(() => (0, vue.unref)(columns).map((column, index) => ({ + ...column, + key: column.key ?? column.dataKey ?? index + }))); + const visibleColumns = (0, vue.computed)(() => { + return (0, vue.unref)(_columns).filter((column) => !column.hidden); + }); + const fixedColumnsOnLeft = (0, vue.computed)(() => (0, vue.unref)(visibleColumns).filter((column) => column.fixed === "left" || column.fixed === true)); + const fixedColumnsOnRight = (0, vue.computed)(() => (0, vue.unref)(visibleColumns).filter((column) => column.fixed === "right")); + const normalColumns = (0, vue.computed)(() => (0, vue.unref)(visibleColumns).filter((column) => !column.fixed)); + const mainColumns = (0, vue.computed)(() => { + const ret = []; + (0, vue.unref)(fixedColumnsOnLeft).forEach((column) => { + ret.push({ + ...column, + placeholderSign + }); + }); + (0, vue.unref)(normalColumns).forEach((column) => { + ret.push(column); + }); + (0, vue.unref)(fixedColumnsOnRight).forEach((column) => { + ret.push({ + ...column, + placeholderSign + }); + }); + return ret; + }); + const hasFixedColumns = (0, vue.computed)(() => { + return (0, vue.unref)(fixedColumnsOnLeft).length || (0, vue.unref)(fixedColumnsOnRight).length; + }); + const columnsStyles = (0, vue.computed)(() => { + return (0, vue.unref)(_columns).reduce((style, column) => { + style[column.key] = calcColumnStyle(column, (0, vue.unref)(fixed), props.fixed); + return style; + }, {}); + }); + const columnsTotalWidth = (0, vue.computed)(() => { + return (0, vue.unref)(visibleColumns).reduce((width, column) => width + column.width, 0); + }); + const getColumn = (key) => { + return (0, vue.unref)(_columns).find((column) => column.key === key); + }; + const getColumnStyle = (key) => { + return (0, vue.unref)(columnsStyles)[key]; + }; + const updateColumnWidth = (column, width) => { + column.width = width; + }; + function onColumnSorted(e) { + const { key } = e.currentTarget.dataset; + if (!key) return; + const { sortState, sortBy } = props; + let order = SortOrder.ASC; + if (isObject$1(sortState)) order = oppositeOrderMap[sortState[key]]; + else order = oppositeOrderMap[sortBy.order]; + props.onColumnSort?.({ + column: getColumn(key), + key, + order + }); + } + return { + columns: _columns, + columnsStyles, + columnsTotalWidth, + fixedColumnsOnLeft, + fixedColumnsOnRight, + hasFixedColumns, + mainColumns, + normalColumns, + visibleColumns, + getColumn, + getColumnStyle, + updateColumnWidth, + onColumnSorted + }; + } + +//#endregion +//#region ../../packages/components/table-v2/src/composables/use-scrollbar.ts + const useScrollbar = (props, { mainTableRef, leftTableRef, rightTableRef, onMaybeEndReached }) => { + const scrollPos = (0, vue.ref)({ + scrollLeft: 0, + scrollTop: 0 + }); + function doScroll(params) { + const { scrollTop } = params; + mainTableRef.value?.scrollTo(params); + leftTableRef.value?.scrollToTop(scrollTop); + rightTableRef.value?.scrollToTop(scrollTop); + } + function scrollTo(params) { + scrollPos.value = params; + doScroll(params); + } + function scrollToTop(scrollTop) { + scrollPos.value.scrollTop = scrollTop; + doScroll((0, vue.unref)(scrollPos)); + } + function scrollToLeft(scrollLeft) { + scrollPos.value.scrollLeft = scrollLeft; + mainTableRef.value?.scrollTo?.((0, vue.unref)(scrollPos)); + } + function onScroll(params) { + scrollTo(params); + props.onScroll?.(params); + } + function onVerticalScroll({ scrollTop }) { + const { scrollTop: currentScrollTop } = (0, vue.unref)(scrollPos); + if (scrollTop !== currentScrollTop) scrollToTop(scrollTop); + } + function scrollToRow(row, strategy = "auto") { + mainTableRef.value?.scrollToRow(row, strategy); + } + (0, vue.watch)(() => (0, vue.unref)(scrollPos).scrollTop, (cur, prev) => { + if (cur > prev) onMaybeEndReached(); + }); + return { + scrollPos, + scrollTo, + scrollToLeft, + scrollToTop, + scrollToRow, + onScroll, + onVerticalScroll + }; + }; + +//#endregion +//#region ../../packages/components/table-v2/src/composables/use-row.ts + const useRow = (props, { mainTableRef, leftTableRef, rightTableRef, tableInstance, ns, isScrolling }) => { + const vm = (0, vue.getCurrentInstance)(); + const { emit } = vm; + const isResetting = (0, vue.shallowRef)(false); + const expandedRowKeys = (0, vue.ref)(props.defaultExpandedRowKeys || []); + const lastRenderedRowIndex = (0, vue.ref)(-1); + const resetIndex = (0, vue.shallowRef)(null); + const rowHeights = (0, vue.ref)({}); + const pendingRowHeights = (0, vue.ref)({}); + const leftTableHeights = (0, vue.shallowRef)({}); + const mainTableHeights = (0, vue.shallowRef)({}); + const rightTableHeights = (0, vue.shallowRef)({}); + const isDynamic = (0, vue.computed)(() => isNumber(props.estimatedRowHeight)); + function onRowsRendered(params) { + props.onRowsRendered?.(params); + if (params.rowCacheEnd > (0, vue.unref)(lastRenderedRowIndex)) lastRenderedRowIndex.value = params.rowCacheEnd; + } + function onRowHovered({ hovered, rowKey }) { + if (isScrolling.value) return; + tableInstance.vnode.el.querySelectorAll(`[rowkey="${String(rowKey)}"]`).forEach((row) => { + if (hovered) row.classList.add(ns.is("hovered")); + else row.classList.remove(ns.is("hovered")); + }); + } + function onRowExpanded({ expanded, rowData, rowIndex, rowKey }) { + const _expandedRowKeys = [...(0, vue.unref)(expandedRowKeys)]; + const currentKeyIndex = _expandedRowKeys.indexOf(rowKey); + if (expanded) { + if (currentKeyIndex === -1) _expandedRowKeys.push(rowKey); + } else if (currentKeyIndex > -1) _expandedRowKeys.splice(currentKeyIndex, 1); + expandedRowKeys.value = _expandedRowKeys; + emit("update:expandedRowKeys", _expandedRowKeys); + props.onRowExpand?.({ + expanded, + rowData, + rowIndex, + rowKey + }); + props.onExpandedRowsChange?.(_expandedRowKeys); + if (tableInstance.vnode.el.querySelector(`.${ns.is("hovered")}[rowkey="${String(rowKey)}"]`)) (0, vue.nextTick)(() => onRowHovered({ + hovered: true, + rowKey + })); + } + const flushingRowHeights = debounce(() => { + isResetting.value = true; + rowHeights.value = { + ...(0, vue.unref)(rowHeights), + ...(0, vue.unref)(pendingRowHeights) + }; + resetAfterIndex((0, vue.unref)(resetIndex), false); + pendingRowHeights.value = {}; + resetIndex.value = null; + mainTableRef.value?.forceUpdate(); + leftTableRef.value?.forceUpdate(); + rightTableRef.value?.forceUpdate(); + vm.proxy?.$forceUpdate(); + isResetting.value = false; + }, 0); + function resetAfterIndex(index, forceUpdate = false) { + if (!(0, vue.unref)(isDynamic)) return; + [ + mainTableRef, + leftTableRef, + rightTableRef + ].forEach((tableRef) => { + const table = (0, vue.unref)(tableRef); + if (table) table.resetAfterRowIndex(index, forceUpdate); + }); + } + function resetHeights(rowKey, height, rowIdx) { + const resetIdx = (0, vue.unref)(resetIndex); + if (resetIdx === null) resetIndex.value = rowIdx; + else if (resetIdx > rowIdx) resetIndex.value = rowIdx; + pendingRowHeights.value[rowKey] = height; + } + function onRowHeightChange({ rowKey, height, rowIndex }, fixedDir) { + if (!fixedDir) mainTableHeights.value[rowKey] = height; + else if (fixedDir === FixedDir.RIGHT) rightTableHeights.value[rowKey] = height; + else leftTableHeights.value[rowKey] = height; + const maximumHeight = Math.max(...[ + leftTableHeights, + rightTableHeights, + mainTableHeights + ].map((records) => records.value[rowKey] || 0)); + if ((0, vue.unref)(rowHeights)[rowKey] !== maximumHeight) { + resetHeights(rowKey, maximumHeight, rowIndex); + flushingRowHeights(); + } + } + return { + expandedRowKeys, + lastRenderedRowIndex, + isDynamic, + isResetting, + rowHeights, + resetAfterIndex, + onRowExpanded, + onRowHovered, + onRowsRendered, + onRowHeightChange + }; + }; + +//#endregion +//#region ../../packages/components/table-v2/src/composables/use-data.ts + const useData = (props, { expandedRowKeys, lastRenderedRowIndex, resetAfterIndex }) => { + const depthMap = (0, vue.ref)({}); + const flattenedData = (0, vue.computed)(() => { + const depths = {}; + const { data, rowKey } = props; + const _expandedRowKeys = (0, vue.unref)(expandedRowKeys); + if (!_expandedRowKeys || !_expandedRowKeys.length) return data; + const array = []; + const keysSet = /* @__PURE__ */ new Set(); + _expandedRowKeys.forEach((x) => keysSet.add(x)); + let copy = data.slice(); + copy.forEach((x) => depths[x[rowKey]] = 0); + while (copy.length > 0) { + const item = copy.shift(); + array.push(item); + if (keysSet.has(item[rowKey]) && isArray$1(item.children) && item.children.length > 0) { + copy = [...item.children, ...copy]; + item.children.forEach((child) => depths[child[rowKey]] = depths[item[rowKey]] + 1); + } + } + depthMap.value = depths; + return array; + }); + const data = (0, vue.computed)(() => { + const { data, expandColumnKey } = props; + return expandColumnKey ? (0, vue.unref)(flattenedData) : data; + }); + (0, vue.watch)(data, (val, prev) => { + if (val !== prev) { + lastRenderedRowIndex.value = -1; + resetAfterIndex(0, true); + } + }); + return { + data, + depthMap + }; + }; + +//#endregion +//#region ../../packages/components/table-v2/src/utils.ts + const sumReducer = (sum, num) => sum + num; + const sum = (listLike) => { + return isArray$1(listLike) ? listLike.reduce(sumReducer, 0) : listLike; + }; + const tryCall = (fLike, params, defaultRet = {}) => { + return isFunction$1(fLike) ? fLike(params) : fLike ?? defaultRet; + }; + const enforceUnit = (style) => { + [ + "width", + "maxWidth", + "minWidth", + "height" + ].forEach((key) => { + style[key] = addUnit(style[key]); + }); + return style; + }; + const componentToSlot = (ComponentLike) => (0, vue.isVNode)(ComponentLike) ? (props) => (0, vue.h)(ComponentLike, props) : ComponentLike; + +//#endregion +//#region ../../packages/components/table-v2/src/composables/use-styles.ts + const useStyles = (props, { columnsTotalWidth, rowsHeight, fixedColumnsOnLeft, fixedColumnsOnRight }) => { + const bodyWidth = (0, vue.computed)(() => { + const { fixed, width, vScrollbarSize } = props; + const ret = width - vScrollbarSize; + return fixed ? Math.max(Math.round((0, vue.unref)(columnsTotalWidth)), ret) : ret; + }); + const mainTableHeight = (0, vue.computed)(() => { + const { height = 0, maxHeight = 0, footerHeight, hScrollbarSize } = props; + if (maxHeight > 0) { + const _fixedRowsHeight = (0, vue.unref)(fixedRowsHeight); + const _rowsHeight = (0, vue.unref)(rowsHeight); + const total = (0, vue.unref)(headerHeight) + _fixedRowsHeight + _rowsHeight + hScrollbarSize; + return Math.min(total, maxHeight - footerHeight); + } + return height - footerHeight; + }); + const fixedTableHeight = (0, vue.computed)(() => { + const { maxHeight } = props; + const tableHeight = (0, vue.unref)(mainTableHeight); + if (isNumber(maxHeight) && maxHeight > 0) return tableHeight; + const totalHeight = (0, vue.unref)(rowsHeight) + (0, vue.unref)(headerHeight) + (0, vue.unref)(fixedRowsHeight); + return Math.min(tableHeight, totalHeight); + }); + const mapColumn = (column) => column.width; + const leftTableWidth = (0, vue.computed)(() => sum((0, vue.unref)(fixedColumnsOnLeft).map(mapColumn))); + const rightTableWidth = (0, vue.computed)(() => sum((0, vue.unref)(fixedColumnsOnRight).map(mapColumn))); + const headerHeight = (0, vue.computed)(() => sum(props.headerHeight)); + const fixedRowsHeight = (0, vue.computed)(() => { + return (props.fixedData?.length || 0) * props.rowHeight; + }); + const windowHeight = (0, vue.computed)(() => { + return (0, vue.unref)(mainTableHeight) - (0, vue.unref)(headerHeight) - (0, vue.unref)(fixedRowsHeight); + }); + const rootStyle = (0, vue.computed)(() => { + const { style = {}, height, width } = props; + return enforceUnit({ + ...style, + height, + width + }); + }); + return { + bodyWidth, + fixedTableHeight, + mainTableHeight, + leftTableWidth, + rightTableWidth, + windowHeight, + footerHeight: (0, vue.computed)(() => enforceUnit({ height: props.footerHeight })), + emptyStyle: (0, vue.computed)(() => ({ + top: addUnit((0, vue.unref)(headerHeight)), + bottom: addUnit(props.footerHeight), + width: addUnit(props.width) + })), + rootStyle, + headerHeight + }; + }; + +//#endregion +//#region ../../packages/components/table-v2/src/composables/use-auto-resize.ts + const useAutoResize = (props) => { + const sizer = (0, vue.ref)(); + const width$ = (0, vue.ref)(0); + const height$ = (0, vue.ref)(0); + let resizerStopper; + (0, vue.onMounted)(() => { + resizerStopper = useResizeObserver(sizer, ([entry]) => { + const { width, height } = entry.contentRect; + const { paddingLeft, paddingRight, paddingTop, paddingBottom } = getComputedStyle(entry.target); + const left = Number.parseInt(paddingLeft) || 0; + const right = Number.parseInt(paddingRight) || 0; + const top = Number.parseInt(paddingTop) || 0; + const bottom = Number.parseInt(paddingBottom) || 0; + width$.value = width - left - right; + height$.value = height - top - bottom; + }).stop; + }); + (0, vue.onBeforeUnmount)(() => { + resizerStopper?.(); + }); + (0, vue.watch)([width$, height$], ([width, height]) => { + props.onResize?.({ + width, + height + }); + }); + return { + sizer, + width: width$, + height: height$ + }; + }; + +//#endregion +//#region ../../packages/components/table-v2/src/use-table.ts + function useTable(props) { + const mainTableRef = (0, vue.ref)(); + const leftTableRef = (0, vue.ref)(); + const rightTableRef = (0, vue.ref)(); + const { columns, columnsStyles, columnsTotalWidth, fixedColumnsOnLeft, fixedColumnsOnRight, hasFixedColumns, mainColumns, onColumnSorted } = useColumns(props, (0, vue.toRef)(props, "columns"), (0, vue.toRef)(props, "fixed")); + const { scrollTo, scrollToLeft, scrollToTop, scrollToRow, onScroll, onVerticalScroll, scrollPos } = useScrollbar(props, { + mainTableRef, + leftTableRef, + rightTableRef, + onMaybeEndReached + }); + const ns = useNamespace("table-v2"); + const instance = (0, vue.getCurrentInstance)(); + const isScrolling = (0, vue.shallowRef)(false); + const { expandedRowKeys, lastRenderedRowIndex, isDynamic, isResetting, rowHeights, resetAfterIndex, onRowExpanded, onRowHeightChange, onRowHovered, onRowsRendered } = useRow(props, { + mainTableRef, + leftTableRef, + rightTableRef, + tableInstance: instance, + ns, + isScrolling + }); + const { data, depthMap } = useData(props, { + expandedRowKeys, + lastRenderedRowIndex, + resetAfterIndex + }); + const rowsHeight = (0, vue.computed)(() => { + const { estimatedRowHeight, rowHeight } = props; + const _data = (0, vue.unref)(data); + if (isNumber(estimatedRowHeight)) return Object.values((0, vue.unref)(rowHeights)).reduce((acc, curr) => acc + curr, 0); + return _data.length * rowHeight; + }); + const { bodyWidth, fixedTableHeight, mainTableHeight, leftTableWidth, rightTableWidth, windowHeight, footerHeight, emptyStyle, rootStyle, headerHeight } = useStyles(props, { + columnsTotalWidth, + fixedColumnsOnLeft, + fixedColumnsOnRight, + rowsHeight + }); + const containerRef = (0, vue.ref)(); + const showEmpty = (0, vue.computed)(() => { + const noData = (0, vue.unref)(data).length === 0; + return isArray$1(props.fixedData) ? props.fixedData.length === 0 && noData : noData; + }); + function getRowHeight(rowIndex) { + const { estimatedRowHeight, rowHeight, rowKey } = props; + if (!estimatedRowHeight) return rowHeight; + return (0, vue.unref)(rowHeights)[(0, vue.unref)(data)[rowIndex][rowKey]] || estimatedRowHeight; + } + const isEndReached = (0, vue.ref)(false); + function onMaybeEndReached() { + const { onEndReached } = props; + if (!onEndReached) return; + const { scrollTop } = (0, vue.unref)(scrollPos); + const _totalHeight = (0, vue.unref)(rowsHeight); + const remainDistance = _totalHeight - (scrollTop + (0, vue.unref)(windowHeight)) + props.hScrollbarSize; + if (!isEndReached.value && (0, vue.unref)(lastRenderedRowIndex) >= 0 && _totalHeight <= scrollTop + (0, vue.unref)(mainTableHeight) - (0, vue.unref)(headerHeight)) { + isEndReached.value = true; + onEndReached(remainDistance); + } else isEndReached.value = false; + } + (0, vue.watch)(() => (0, vue.unref)(rowsHeight), () => isEndReached.value = false); + (0, vue.watch)(() => props.expandedRowKeys, (val) => expandedRowKeys.value = val, { deep: true }); + return { + columns, + containerRef, + mainTableRef, + leftTableRef, + rightTableRef, + isDynamic, + isResetting, + isScrolling, + hasFixedColumns, + columnsStyles, + columnsTotalWidth, + data, + expandedRowKeys, + depthMap, + fixedColumnsOnLeft, + fixedColumnsOnRight, + mainColumns, + bodyWidth, + emptyStyle, + rootStyle, + footerHeight, + mainTableHeight, + fixedTableHeight, + leftTableWidth, + rightTableWidth, + showEmpty, + getRowHeight, + onColumnSorted, + onRowHovered, + onRowExpanded, + onRowsRendered, + onRowHeightChange, + scrollTo, + scrollToLeft, + scrollToTop, + scrollToRow, + onScroll, + onVerticalScroll + }; + } + +//#endregion +//#region ../../packages/components/table-v2/src/tokens.ts + const TableV2InjectionKey = Symbol("tableV2"); + const TABLE_V2_GRID_INJECTION_KEY = "tableV2GridScrollLeft"; + +//#endregion +//#region ../../packages/components/table-v2/src/common.ts +/** + * @Note even though we can use `string[] | string` as the type but for + * convenience here we only use `string` as the acceptable value here. + */ + const classType = String; + const columns = { + type: definePropType(Array), + required: true + }; + const column = { type: definePropType(Object) }; + const fixedDataType = { type: definePropType(Array) }; + const dataType = { + ...fixedDataType, + required: true + }; + const expandColumnKey = String; + const expandKeys = { + type: definePropType(Array), + default: () => mutable([]) + }; + const requiredNumber = { + type: Number, + required: true + }; + const rowKey = { + type: definePropType([ + String, + Number, + Symbol + ]), + default: "id" + }; + /** + * @note even though we can use `StyleValue` but that would be difficult for us to mapping them, + * so we only use `CSSProperties` as the acceptable value here. + */ + const styleType = { type: definePropType(Object) }; + +//#endregion +//#region ../../packages/components/table-v2/src/row.ts + const tableV2RowProps = buildProps({ + class: String, + columns, + columnsStyles: { + type: definePropType(Object), + required: true + }, + depth: Number, + expandColumnKey, + estimatedRowHeight: { + ...virtualizedGridProps.estimatedRowHeight, + default: void 0 + }, + isScrolling: Boolean, + onRowExpand: { type: definePropType(Function) }, + onRowHover: { type: definePropType(Function) }, + onRowHeightChange: { type: definePropType(Function) }, + rowData: { + type: definePropType(Object), + required: true + }, + rowEventHandlers: { type: definePropType(Object) }, + rowIndex: { + type: Number, + required: true + }, + rowKey, + style: { type: definePropType(Object) } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/header.ts + const requiredNumberType = { + type: Number, + required: true + }; + const tableV2HeaderProps = buildProps({ + class: String, + columns, + fixedHeaderData: { type: definePropType(Array) }, + headerData: { + type: definePropType(Array), + required: true + }, + headerHeight: { + type: definePropType([Number, Array]), + default: 50 + }, + rowWidth: requiredNumberType, + rowHeight: { + type: Number, + default: 50 + }, + height: requiredNumberType, + width: requiredNumberType + }); + +//#endregion +//#region ../../packages/components/table-v2/src/grid.ts + const tableV2GridProps = buildProps({ + columns, + data: dataType, + fixedData: fixedDataType, + estimatedRowHeight: tableV2RowProps.estimatedRowHeight, + width: requiredNumber, + height: requiredNumber, + headerWidth: requiredNumber, + headerHeight: tableV2HeaderProps.headerHeight, + bodyWidth: requiredNumber, + rowHeight: requiredNumber, + cache: virtualizedListProps.cache, + useIsScrolling: Boolean, + scrollbarAlwaysOn: virtualizedGridProps.scrollbarAlwaysOn, + scrollbarStartGap: virtualizedGridProps.scrollbarStartGap, + scrollbarEndGap: virtualizedGridProps.scrollbarEndGap, + class: classType, + style: styleType, + containerStyle: styleType, + getRowHeight: { + type: definePropType(Function), + required: true + }, + rowKey: tableV2RowProps.rowKey, + onRowsRendered: { type: definePropType(Function) }, + onScroll: { type: definePropType(Function) } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/table.ts + const tableV2Props = buildProps({ + cache: tableV2GridProps.cache, + estimatedRowHeight: tableV2RowProps.estimatedRowHeight, + rowKey, + headerClass: { type: definePropType([String, Function]) }, + headerProps: { type: definePropType([Object, Function]) }, + headerCellProps: { type: definePropType([Object, Function]) }, + headerHeight: tableV2HeaderProps.headerHeight, + footerHeight: { + type: Number, + default: 0 + }, + rowClass: { type: definePropType([String, Function]) }, + rowProps: { type: definePropType([Object, Function]) }, + rowHeight: { + type: Number, + default: 50 + }, + cellProps: { type: definePropType([Object, Function]) }, + columns, + data: dataType, + dataGetter: { type: definePropType(Function) }, + fixedData: fixedDataType, + expandColumnKey: tableV2RowProps.expandColumnKey, + expandedRowKeys: expandKeys, + defaultExpandedRowKeys: expandKeys, + class: classType, + fixed: Boolean, + style: { type: definePropType(Object) }, + width: requiredNumber, + height: requiredNumber, + maxHeight: Number, + useIsScrolling: Boolean, + indentSize: { + type: Number, + default: 12 + }, + iconSize: { + type: Number, + default: 12 + }, + hScrollbarSize: virtualizedGridProps.hScrollbarSize, + vScrollbarSize: virtualizedGridProps.vScrollbarSize, + scrollbarAlwaysOn: virtualizedScrollbarProps.alwaysOn, + sortBy: { + type: definePropType(Object), + default: () => ({}) + }, + sortState: { + type: definePropType(Object), + default: void 0 + }, + onColumnSort: { type: definePropType(Function) }, + onExpandedRowsChange: { type: definePropType(Function) }, + onEndReached: { type: definePropType(Function) }, + onRowExpand: tableV2RowProps.onRowExpand, + onScroll: tableV2GridProps.onScroll, + onRowsRendered: tableV2GridProps.onRowsRendered, + rowEventHandlers: tableV2RowProps.rowEventHandlers + }); + +//#endregion +//#region ../../packages/components/table-v2/src/components/cell.tsx + const TableV2Cell = (props, { slots }) => { + const { cellData, style } = props; + const displayText = cellData?.toString?.() || ""; + const defaultSlot = (0, vue.renderSlot)(slots, "default", props, () => [displayText]); + return (0, vue.createVNode)("div", { + "class": props.class, + "title": displayText, + "style": style + }, [defaultSlot]); + }; + TableV2Cell.displayName = "ElTableV2Cell"; + TableV2Cell.inheritAttrs = false; + +//#endregion +//#region ../../packages/components/table-v2/src/components/header-cell.tsx + const HeaderCell = (props, { slots }) => (0, vue.renderSlot)(slots, "default", props, () => [(0, vue.createVNode)("div", { + "class": props.class, + "title": props.column?.title + }, [props.column?.title])]); + HeaderCell.displayName = "ElTableV2HeaderCell"; + HeaderCell.inheritAttrs = false; + +//#endregion +//#region ../../packages/components/table-v2/src/header-row.ts + const tableV2HeaderRowProps = buildProps({ + class: String, + columns, + columnsStyles: { + type: definePropType(Object), + required: true + }, + headerIndex: Number, + style: { type: definePropType(Object) } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/components/header-row.tsx + const TableV2HeaderRow = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTableV2HeaderRow", + props: tableV2HeaderRowProps, + setup(props, { slots }) { + return () => { + const { columns, columnsStyles, headerIndex, style } = props; + let Cells = columns.map((column, columnIndex) => { + return slots.cell({ + columns, + column, + columnIndex, + headerIndex, + style: columnsStyles[column.key] + }); + }); + if (slots.header) Cells = slots.header({ + cells: Cells.map((node) => { + if (isArray$1(node) && node.length === 1) return node[0]; + return node; + }), + columns, + headerIndex + }); + return (0, vue.createVNode)("div", { + "class": props.class, + "style": style, + "role": "row" + }, [Cells]); + }; + } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/components/header.tsx + const TableV2Header = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTableV2Header", + props: tableV2HeaderProps, + setup(props, { slots, expose }) { + const ns = useNamespace("table-v2"); + const scrollLeftInfo = (0, vue.inject)(TABLE_V2_GRID_INJECTION_KEY); + const headerRef = (0, vue.ref)(); + const headerStyle = (0, vue.computed)(() => enforceUnit({ + width: props.width, + height: props.height + })); + const rowStyle = (0, vue.computed)(() => enforceUnit({ + width: props.rowWidth, + height: props.height + })); + const headerHeights = (0, vue.computed)(() => castArray$1((0, vue.unref)(props.headerHeight))); + const scrollToLeft = (left) => { + const headerEl = (0, vue.unref)(headerRef); + (0, vue.nextTick)(() => { + headerEl?.scroll && headerEl.scroll({ left }); + }); + }; + const renderFixedRows = () => { + const fixedRowClassName = ns.e("fixed-header-row"); + const { columns, fixedHeaderData, rowHeight } = props; + return fixedHeaderData?.map((fixedRowData, fixedRowIndex) => { + const style = enforceUnit({ + height: rowHeight, + width: "100%" + }); + return slots.fixed?.({ + class: fixedRowClassName, + columns, + rowData: fixedRowData, + rowIndex: -(fixedRowIndex + 1), + style + }); + }); + }; + const renderDynamicRows = () => { + const dynamicRowClassName = ns.e("dynamic-header-row"); + const { columns } = props; + return (0, vue.unref)(headerHeights).map((rowHeight, rowIndex) => { + const style = enforceUnit({ + width: "100%", + height: rowHeight + }); + return slots.dynamic?.({ + class: dynamicRowClassName, + columns, + headerIndex: rowIndex, + style + }); + }); + }; + (0, vue.onUpdated)(() => { + if (scrollLeftInfo?.value) scrollToLeft(scrollLeftInfo.value); + }); + expose({ scrollToLeft }); + return () => { + if (props.height <= 0) return; + return (0, vue.createVNode)("div", { + "ref": headerRef, + "class": props.class, + "style": (0, vue.unref)(headerStyle), + "role": "rowgroup" + }, [(0, vue.createVNode)("div", { + "style": (0, vue.unref)(rowStyle), + "class": ns.e("header") + }, [renderDynamicRows(), renderFixedRows()])]); + }; + } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/components/row.tsx + const useTableRow = (props) => { + const { isScrolling } = (0, vue.inject)(TableV2InjectionKey); + const measured = (0, vue.ref)(false); + const rowRef = (0, vue.ref)(); + const measurable = (0, vue.computed)(() => { + return isNumber(props.estimatedRowHeight) && props.rowIndex >= 0; + }); + const doMeasure = (isInit = false) => { + const $rowRef = (0, vue.unref)(rowRef); + if (!$rowRef) return; + const { columns, onRowHeightChange, rowKey, rowIndex, style } = props; + const { height } = $rowRef.getBoundingClientRect(); + measured.value = true; + (0, vue.nextTick)(() => { + if (isInit || height !== Number.parseInt(style.height)) { + const firstColumn = columns[0]; + const isPlaceholder = firstColumn?.placeholderSign === placeholderSign; + onRowHeightChange?.({ + rowKey, + height, + rowIndex + }, firstColumn && !isPlaceholder && firstColumn.fixed); + } + }); + }; + const eventHandlers = (0, vue.computed)(() => { + const { rowData, rowIndex, rowKey, onRowHover } = props; + const handlers = props.rowEventHandlers || {}; + const eventHandlers = {}; + Object.entries(handlers).forEach(([eventName, handler]) => { + if (isFunction$1(handler)) eventHandlers[eventName] = (event) => { + handler({ + event, + rowData, + rowIndex, + rowKey + }); + }; + }); + if (onRowHover) [{ + name: "onMouseleave", + hovered: false + }, { + name: "onMouseenter", + hovered: true + }].forEach(({ name, hovered }) => { + const existedHandler = eventHandlers[name]; + eventHandlers[name] = (event) => { + onRowHover({ + event, + hovered, + rowData, + rowIndex, + rowKey + }); + existedHandler?.(event); + }; + }); + return eventHandlers; + }); + const onExpand = (expanded) => { + const { onRowExpand, rowData, rowIndex, rowKey } = props; + onRowExpand?.({ + expanded, + rowData, + rowIndex, + rowKey + }); + }; + (0, vue.onMounted)(() => { + if ((0, vue.unref)(measurable)) doMeasure(true); + }); + return { + isScrolling, + measurable, + measured, + rowRef, + eventHandlers, + onExpand + }; + }; + const TableV2Row = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTableV2TableRow", + props: tableV2RowProps, + setup(props, { expose, slots, attrs }) { + const { eventHandlers, isScrolling, measurable, measured, rowRef, onExpand } = useTableRow(props); + expose({ onExpand }); + return () => { + const { columns, columnsStyles, expandColumnKey, depth, rowData, rowIndex, style } = props; + let ColumnCells = columns.map((column, columnIndex) => { + const expandable = isArray$1(rowData.children) && rowData.children.length > 0 && column.key === expandColumnKey; + return slots.cell({ + column, + columns, + columnIndex, + depth, + style: columnsStyles[column.key], + rowData, + rowIndex, + isScrolling: (0, vue.unref)(isScrolling), + expandIconProps: expandable ? { + rowData, + rowIndex, + onExpand + } : void 0 + }); + }); + if (slots.row) ColumnCells = slots.row({ + cells: ColumnCells.map((node) => { + if (isArray$1(node) && node.length === 1) return node[0]; + return node; + }), + style, + columns, + depth, + rowData, + rowIndex, + isScrolling: (0, vue.unref)(isScrolling) + }); + if ((0, vue.unref)(measurable)) { + const { height, ...exceptHeightStyle } = style || {}; + const _measured = (0, vue.unref)(measured); + return (0, vue.createVNode)("div", (0, vue.mergeProps)({ + "ref": rowRef, + "class": props.class, + "style": _measured ? style : exceptHeightStyle, + "role": "row" + }, attrs, (0, vue.unref)(eventHandlers)), [ColumnCells]); + } + return (0, vue.createVNode)("div", (0, vue.mergeProps)(attrs, { + "ref": rowRef, + "class": props.class, + "style": style, + "role": "row" + }, (0, vue.unref)(eventHandlers)), [ColumnCells]); + }; + } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/components/sort-icon.tsx + const SortIcon = (props) => { + const { sortOrder } = props; + return (0, vue.createVNode)("button", { + "type": "button", + "aria-label": props.ariaLabel, + "class": props.class + }, [(0, vue.createVNode)(ElIcon, { "size": 14 }, { default: () => [sortOrder === SortOrder.ASC ? (0, vue.createVNode)(sort_up_default, null, null) : (0, vue.createVNode)(sort_down_default, null, null)] })]); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/components/expand-icon.tsx + const ExpandIcon = (props) => { + const { expanded, expandable, onExpand, style, size, ariaLabel } = props; + return (0, vue.createVNode)("button", (0, vue.mergeProps)({ + onClick: expandable ? () => onExpand(!expanded) : void 0, + ariaLabel, + ariaExpanded: expanded, + class: props.class + }, { "type": "button" }), [(0, vue.createVNode)(ElIcon, { + "size": size, + "style": style + }, { default: () => [(0, vue.createVNode)(arrow_right_default, null, null)] })]); + }; + ExpandIcon.inheritAttrs = false; + +//#endregion +//#region ../../packages/components/table-v2/src/table-grid.tsx + const COMPONENT_NAME$5 = "ElTableV2Grid"; + const useTableGrid = (props) => { + const headerRef = (0, vue.ref)(); + const bodyRef = (0, vue.ref)(); + const scrollLeft = (0, vue.ref)(0); + const totalHeight = (0, vue.computed)(() => { + const { data, rowHeight, estimatedRowHeight } = props; + if (estimatedRowHeight) return; + return data.length * rowHeight; + }); + const fixedRowHeight = (0, vue.computed)(() => { + const { fixedData, rowHeight } = props; + return (fixedData?.length || 0) * rowHeight; + }); + const headerHeight = (0, vue.computed)(() => sum(props.headerHeight)); + const gridHeight = (0, vue.computed)(() => { + const { height } = props; + return Math.max(0, height - (0, vue.unref)(headerHeight) - (0, vue.unref)(fixedRowHeight)); + }); + const hasHeader = (0, vue.computed)(() => { + return (0, vue.unref)(headerHeight) + (0, vue.unref)(fixedRowHeight) > 0; + }); + const itemKey = ({ data, rowIndex }) => data[rowIndex][props.rowKey]; + function onItemRendered({ rowCacheStart, rowCacheEnd, rowVisibleStart, rowVisibleEnd }) { + props.onRowsRendered?.({ + rowCacheStart, + rowCacheEnd, + rowVisibleStart, + rowVisibleEnd + }); + } + function resetAfterRowIndex(index, forceUpdate) { + bodyRef.value?.resetAfterRowIndex(index, forceUpdate); + } + function scrollTo(leftOrOptions, top) { + const header$ = (0, vue.unref)(headerRef); + const body$ = (0, vue.unref)(bodyRef); + if (isObject$1(leftOrOptions)) { + header$?.scrollToLeft(leftOrOptions.scrollLeft); + scrollLeft.value = leftOrOptions.scrollLeft; + body$?.scrollTo(leftOrOptions); + } else { + header$?.scrollToLeft(leftOrOptions); + scrollLeft.value = leftOrOptions; + body$?.scrollTo({ + scrollLeft: leftOrOptions, + scrollTop: top + }); + } + } + function scrollToTop(scrollTop) { + (0, vue.unref)(bodyRef)?.scrollTo({ scrollTop }); + } + function scrollToRow(row, strategy) { + const body = (0, vue.unref)(bodyRef); + if (!body) return; + const prevScrollLeft = scrollLeft.value; + body.scrollToItem(row, 0, strategy); + if (prevScrollLeft) scrollTo({ scrollLeft: prevScrollLeft }); + } + function forceUpdate() { + (0, vue.unref)(bodyRef)?.$forceUpdate(); + (0, vue.unref)(headerRef)?.$forceUpdate(); + } + (0, vue.watch)(() => props.bodyWidth, () => { + if (isNumber(props.estimatedRowHeight)) bodyRef.value?.resetAfter({ columnIndex: 0 }, false); + }); + return { + bodyRef, + forceUpdate, + fixedRowHeight, + gridHeight, + hasHeader, + headerHeight, + headerRef, + totalHeight, + itemKey, + onItemRendered, + resetAfterRowIndex, + scrollTo, + scrollToTop, + scrollToRow, + scrollLeft + }; + }; + const TableGrid = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$5, + props: tableV2GridProps, + setup(props, { slots, expose }) { + const { ns } = (0, vue.inject)(TableV2InjectionKey); + const { bodyRef, fixedRowHeight, gridHeight, hasHeader, headerRef, headerHeight, totalHeight, forceUpdate, itemKey, onItemRendered, resetAfterRowIndex, scrollTo, scrollToTop, scrollToRow, scrollLeft } = useTableGrid(props); + (0, vue.provide)(TABLE_V2_GRID_INJECTION_KEY, scrollLeft); + (0, vue.onActivated)(async () => { + await (0, vue.nextTick)(); + const scrollTop = bodyRef.value?.states.scrollTop; + scrollTop && scrollToTop(Math.round(scrollTop) + 1); + }); + expose({ + forceUpdate, + totalHeight, + scrollTo, + scrollToTop, + scrollToRow, + resetAfterRowIndex + }); + const getColumnWidth = () => props.bodyWidth; + return () => { + const { cache, columns, data, fixedData, useIsScrolling, scrollbarAlwaysOn, scrollbarEndGap, scrollbarStartGap, style, rowHeight, bodyWidth, estimatedRowHeight, headerWidth, height, width, getRowHeight, onScroll } = props; + const isDynamicRowEnabled = isNumber(estimatedRowHeight); + const Grid = isDynamicRowEnabled ? DynamicSizeGrid : FixedSizeGrid; + const _headerHeight = (0, vue.unref)(headerHeight); + return (0, vue.createVNode)("div", { + "role": "table", + "class": [ns.e("table"), props.class], + "style": style + }, [(0, vue.createVNode)(Grid, { + "ref": bodyRef, + "data": data, + "useIsScrolling": useIsScrolling, + "itemKey": itemKey, + "columnCache": 0, + "columnWidth": isDynamicRowEnabled ? getColumnWidth : bodyWidth, + "totalColumn": 1, + "totalRow": data.length, + "rowCache": cache, + "rowHeight": isDynamicRowEnabled ? getRowHeight : rowHeight, + "width": width, + "height": (0, vue.unref)(gridHeight), + "class": ns.e("body"), + "role": "rowgroup", + "scrollbarStartGap": scrollbarStartGap, + "scrollbarEndGap": scrollbarEndGap, + "scrollbarAlwaysOn": scrollbarAlwaysOn, + "onScroll": onScroll, + "onItemRendered": onItemRendered, + "perfMode": false + }, { default: (params) => { + const rowData = data[params.rowIndex]; + return slots.row?.({ + ...params, + columns, + rowData + }); + } }), (0, vue.unref)(hasHeader) && (0, vue.createVNode)(TableV2Header, { + "ref": headerRef, + "class": ns.e("header-wrapper"), + "columns": columns, + "headerData": data, + "headerHeight": props.headerHeight, + "fixedHeaderData": fixedData, + "rowWidth": headerWidth, + "rowHeight": rowHeight, + "width": width, + "height": Math.min(_headerHeight + (0, vue.unref)(fixedRowHeight), height) + }, { + dynamic: slots.header, + fixed: slots.row + })]); + }; + } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/main-table.tsx + function _isSlot$5(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + const MainTable = (props, { slots }) => { + const { mainTableRef, ...rest } = props; + return (0, vue.createVNode)(TableGrid, (0, vue.mergeProps)({ "ref": mainTableRef }, rest), _isSlot$5(slots) ? slots : { default: () => [slots] }); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/left-table.tsx + function _isSlot$4(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + const LeftTable = (props, { slots }) => { + if (!props.columns.length) return; + const { leftTableRef, ...rest } = props; + return (0, vue.createVNode)(TableGrid, (0, vue.mergeProps)({ "ref": leftTableRef }, rest), _isSlot$4(slots) ? slots : { default: () => [slots] }); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/right-table.tsx + function _isSlot$3(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + const RightTable = (props, { slots }) => { + if (!props.columns.length) return; + const { rightTableRef, ...rest } = props; + return (0, vue.createVNode)(TableGrid, (0, vue.mergeProps)({ "ref": rightTableRef }, rest), _isSlot$3(slots) ? slots : { default: () => [slots] }); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/row.tsx + function _isSlot$2(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + const RowRenderer = (props, { slots }) => { + const { columns, columnsStyles, depthMap, expandColumnKey, expandedRowKeys, estimatedRowHeight, hasFixedColumns, rowData, rowIndex, style, isScrolling, rowProps, rowClass, rowKey, rowEventHandlers, ns, onRowHovered, onRowExpanded } = props; + const rowKls = tryCall(rowClass, { + columns, + rowData, + rowIndex + }, ""); + const additionalProps = tryCall(rowProps, { + columns, + rowData, + rowIndex + }); + const _rowKey = rowData[rowKey]; + const depth = depthMap[_rowKey] || 0; + const canExpand = Boolean(expandColumnKey); + const isFixedRow = rowIndex < 0; + const kls = [ + ns.e("row"), + rowKls, + ns.is("expanded", canExpand && expandedRowKeys.includes(_rowKey)), + ns.is("fixed", !depth && isFixedRow), + ns.is("customized", Boolean(slots.row)), + { [ns.e(`row-depth-${depth}`)]: canExpand && rowIndex >= 0 } + ]; + const onRowHover = hasFixedColumns ? onRowHovered : void 0; + const _rowProps = { + ...additionalProps, + columns, + columnsStyles, + class: kls, + depth, + expandColumnKey, + estimatedRowHeight: isFixedRow ? void 0 : estimatedRowHeight, + isScrolling, + rowIndex, + rowData, + rowKey: _rowKey, + rowEventHandlers, + style + }; + const handlerMouseEnter = (e) => { + onRowHover?.({ + hovered: true, + rowKey: _rowKey, + event: e, + rowData, + rowIndex + }); + }; + const handlerMouseLeave = (e) => { + onRowHover?.({ + hovered: false, + rowKey: _rowKey, + event: e, + rowData, + rowIndex + }); + }; + return (0, vue.createVNode)(TableV2Row, (0, vue.mergeProps)(_rowProps, { + "onRowExpand": onRowExpanded, + "onMouseenter": handlerMouseEnter, + "onMouseleave": handlerMouseLeave, + "rowkey": _rowKey + }), _isSlot$2(slots) ? slots : { default: () => [slots] }); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/cell.tsx + const CellRenderer = ({ columns, column, columnIndex, depth, expandIconProps, isScrolling, rowData, rowIndex, style, expandedRowKeys, ns, t, cellProps: _cellProps, expandColumnKey, indentSize, iconSize, rowKey }, { slots }) => { + const cellStyle = enforceUnit(style); + if (column.placeholderSign === placeholderSign) return (0, vue.createVNode)("div", { + "class": ns.em("row-cell", "placeholder"), + "style": cellStyle + }, null); + const { cellRenderer, dataKey, dataGetter } = column; + const cellData = isFunction$1(dataGetter) ? dataGetter({ + columns, + column, + columnIndex, + rowData, + rowIndex + }) : get(rowData, dataKey ?? ""); + const extraCellProps = tryCall(_cellProps, { + cellData, + columns, + column, + columnIndex, + rowIndex, + rowData + }); + const cellProps = { + class: ns.e("cell-text"), + columns, + column, + columnIndex, + cellData, + isScrolling, + rowData, + rowIndex + }; + const columnCellRenderer = componentToSlot(cellRenderer); + const Cell = columnCellRenderer ? columnCellRenderer(cellProps) : (0, vue.renderSlot)(slots, "default", cellProps, () => [(0, vue.createVNode)(TableV2Cell, cellProps, null)]); + const kls = [ + ns.e("row-cell"), + column.class, + column.align === Alignment.CENTER && ns.is("align-center"), + column.align === Alignment.RIGHT && ns.is("align-right") + ]; + const expandable = rowIndex >= 0 && expandColumnKey && column.key === expandColumnKey; + const expanded = rowIndex >= 0 && expandedRowKeys.includes(rowData[rowKey]); + let IconOrPlaceholder; + const iconStyle = `margin-inline-start: ${depth * indentSize}px;`; + if (expandable) if (isObject$1(expandIconProps)) IconOrPlaceholder = (0, vue.createVNode)(ExpandIcon, (0, vue.mergeProps)(expandIconProps, { + "class": [ns.e("expand-icon"), ns.is("expanded", expanded)], + "size": iconSize, + "expanded": expanded, + "ariaLabel": t(expanded ? "el.table.collapseRowLabel" : "el.table.expandRowLabel"), + "style": iconStyle, + "expandable": true + }), null); + else IconOrPlaceholder = (0, vue.createVNode)("div", { "style": [iconStyle, `width: ${iconSize}px; height: ${iconSize}px;`].join(" ") }, null); + return (0, vue.createVNode)("div", (0, vue.mergeProps)({ + "class": kls, + "style": cellStyle + }, extraCellProps, { "role": "cell" }), [IconOrPlaceholder, Cell]); + }; + CellRenderer.inheritAttrs = false; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/header.tsx + function _isSlot$1(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + const HeaderRenderer = ({ columns, columnsStyles, headerIndex, style, headerClass, headerProps, ns }, { slots }) => { + const param = { + columns, + headerIndex + }; + const kls = [ + ns.e("header-row"), + tryCall(headerClass, param, ""), + ns.is("customized", Boolean(slots.header)) + ]; + return (0, vue.createVNode)(TableV2HeaderRow, { + ...tryCall(headerProps, param), + columnsStyles, + class: kls, + columns, + headerIndex, + style + }, _isSlot$1(slots) ? slots : { default: () => [slots] }); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/header-cell.tsx + const HeaderCellRenderer = (props, { slots }) => { + const { column, ns, t, style, onColumnSorted } = props; + const cellStyle = enforceUnit(style); + if (column.placeholderSign === placeholderSign) return (0, vue.createVNode)("div", { + "class": ns.em("header-row-cell", "placeholder"), + "style": cellStyle + }, null); + const { headerCellRenderer, headerClass, sortable } = column; + /** + * render Cell children + */ + const cellProps = { + ...props, + class: ns.e("header-cell-text") + }; + const columnCellRenderer = componentToSlot(headerCellRenderer); + const Cell = columnCellRenderer ? columnCellRenderer(cellProps) : (0, vue.renderSlot)(slots, "default", cellProps, () => [(0, vue.createVNode)(HeaderCell, cellProps, null)]); + /** + * Render cell container and sort indicator + */ + const { sortBy, sortState, headerCellProps } = props; + let sorting, sortOrder, ariaSort; + if (sortState) { + const order = sortState[column.key]; + sorting = Boolean(oppositeOrderMap[order]); + sortOrder = sorting ? order : SortOrder.ASC; + } else { + sorting = column.key === sortBy.key; + sortOrder = sorting ? sortBy.order : SortOrder.ASC; + } + if (sortOrder === SortOrder.ASC) ariaSort = "ascending"; + else if (sortOrder === SortOrder.DESC) ariaSort = "descending"; + else ariaSort = void 0; + const cellKls = [ + ns.e("header-cell"), + tryCall(headerClass, props, ""), + column.align === Alignment.CENTER && ns.is("align-center"), + column.align === Alignment.RIGHT && ns.is("align-right"), + sortable && ns.is("sortable") + ]; + return (0, vue.createVNode)("div", (0, vue.mergeProps)({ + ...tryCall(headerCellProps, props), + onClick: column.sortable ? onColumnSorted : void 0, + ariaSort: sortable ? ariaSort : void 0, + class: cellKls, + style: cellStyle, + ["data-key"]: column.key + }, { "role": "columnheader" }), [Cell, sortable && (0, vue.createVNode)(SortIcon, { + "class": [ns.e("sort-icon"), sorting && ns.is("sorting")], + "sortOrder": sortOrder, + "ariaLabel": t("el.table.sortLabel", { column: column.title || "" }) + }, null)]); + }; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/footer.tsx + const Footer$1 = (props, { slots }) => { + return (0, vue.createVNode)("div", { + "class": props.class, + "style": props.style + }, [slots.default?.()]); + }; + Footer$1.displayName = "ElTableV2Footer"; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/empty.tsx + const Footer = (props, { slots }) => { + const defaultSlot = (0, vue.renderSlot)(slots, "default", {}, () => [(0, vue.createVNode)(ElEmpty, null, null)]); + return (0, vue.createVNode)("div", { + "class": props.class, + "style": props.style + }, [defaultSlot]); + }; + Footer.displayName = "ElTableV2Empty"; + +//#endregion +//#region ../../packages/components/table-v2/src/renderers/overlay.tsx + const Overlay = (props, { slots }) => { + return (0, vue.createVNode)("div", { + "class": props.class, + "style": props.style + }, [slots.default?.()]); + }; + Overlay.displayName = "ElTableV2Overlay"; + +//#endregion +//#region ../../packages/components/table-v2/src/table-v2.tsx + function _isSlot(s) { + return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !(0, vue.isVNode)(s); + } + const TableV2 = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTableV2", + props: tableV2Props, + slots: Object, + setup(props, { slots, expose }) { + const ns = useNamespace("table-v2"); + const { t } = useLocale(); + const { columnsStyles, fixedColumnsOnLeft, fixedColumnsOnRight, mainColumns, mainTableHeight, fixedTableHeight, leftTableWidth, rightTableWidth, data, depthMap, expandedRowKeys, hasFixedColumns, mainTableRef, leftTableRef, rightTableRef, isDynamic, isResetting, isScrolling, bodyWidth, emptyStyle, rootStyle, footerHeight, showEmpty, scrollTo, scrollToLeft, scrollToTop, scrollToRow, getRowHeight, onColumnSorted, onRowHeightChange, onRowHovered, onRowExpanded, onRowsRendered, onScroll, onVerticalScroll } = useTable(props); + expose({ + scrollTo, + scrollToLeft, + scrollToTop, + scrollToRow + }); + (0, vue.provide)(TableV2InjectionKey, { + ns, + isResetting, + isScrolling + }); + return () => { + const { cache, cellProps, estimatedRowHeight, expandColumnKey, fixedData, headerHeight, headerClass, headerProps, headerCellProps, sortBy, sortState, rowHeight, rowClass, rowEventHandlers, rowKey, rowProps, scrollbarAlwaysOn, indentSize, iconSize, useIsScrolling, vScrollbarSize, width } = props; + const _data = (0, vue.unref)(data); + const mainTableProps = { + cache, + class: ns.e("main"), + columns: (0, vue.unref)(mainColumns), + data: _data, + fixedData, + estimatedRowHeight, + bodyWidth: (0, vue.unref)(bodyWidth), + headerHeight, + headerWidth: (0, vue.unref)(bodyWidth), + height: (0, vue.unref)(mainTableHeight), + mainTableRef, + rowKey, + rowHeight, + scrollbarAlwaysOn, + scrollbarStartGap: 2, + scrollbarEndGap: vScrollbarSize, + useIsScrolling, + width, + getRowHeight, + onRowsRendered, + onScroll + }; + const leftColumnsWidth = (0, vue.unref)(leftTableWidth); + const _fixedTableHeight = (0, vue.unref)(fixedTableHeight); + const leftTableProps = { + cache, + class: ns.e("left"), + columns: (0, vue.unref)(fixedColumnsOnLeft), + data: _data, + fixedData, + estimatedRowHeight, + leftTableRef, + rowHeight, + bodyWidth: leftColumnsWidth, + headerWidth: leftColumnsWidth, + headerHeight, + height: _fixedTableHeight, + rowKey, + scrollbarAlwaysOn, + scrollbarStartGap: 2, + scrollbarEndGap: vScrollbarSize, + useIsScrolling, + width: leftColumnsWidth, + getRowHeight, + onScroll: onVerticalScroll + }; + const rightColumnsWidth = (0, vue.unref)(rightTableWidth); + const rightTableProps = { + cache, + class: ns.e("right"), + columns: (0, vue.unref)(fixedColumnsOnRight), + data: _data, + fixedData, + estimatedRowHeight, + rightTableRef, + rowHeight, + bodyWidth: rightColumnsWidth, + headerWidth: rightColumnsWidth, + headerHeight, + height: _fixedTableHeight, + rowKey, + scrollbarAlwaysOn, + scrollbarStartGap: 2, + scrollbarEndGap: vScrollbarSize, + width: rightColumnsWidth, + style: `${ns.cssVarName("table-scrollbar-size")}: ${vScrollbarSize}px`, + useIsScrolling, + getRowHeight, + onScroll: onVerticalScroll + }; + const _columnsStyles = (0, vue.unref)(columnsStyles); + const tableRowProps = { + ns, + depthMap: (0, vue.unref)(depthMap), + columnsStyles: _columnsStyles, + expandColumnKey, + expandedRowKeys: (0, vue.unref)(expandedRowKeys), + estimatedRowHeight, + hasFixedColumns: (0, vue.unref)(hasFixedColumns), + rowProps, + rowClass, + rowKey, + rowEventHandlers, + onRowHovered, + onRowExpanded, + onRowHeightChange + }; + const tableCellProps = { + cellProps, + expandColumnKey, + indentSize, + iconSize, + rowKey, + expandedRowKeys: (0, vue.unref)(expandedRowKeys), + ns, + t + }; + const tableHeaderProps = { + ns, + headerClass, + headerProps, + columnsStyles: _columnsStyles + }; + const tableHeaderCellProps = { + ns, + t, + sortBy, + sortState, + headerCellProps, + onColumnSorted + }; + const tableSlots = { + row: (props) => (0, vue.createVNode)(RowRenderer, (0, vue.mergeProps)(props, tableRowProps), { + row: slots.row, + cell: (props) => { + let _slot; + return slots.cell ? (0, vue.createVNode)(CellRenderer, (0, vue.mergeProps)(props, tableCellProps, { "style": _columnsStyles[props.column.key] }), _isSlot(_slot = slots.cell(props)) ? _slot : { default: () => [_slot] }) : (0, vue.createVNode)(CellRenderer, (0, vue.mergeProps)(props, tableCellProps, { "style": _columnsStyles[props.column.key] }), null); + } + }), + header: (props) => (0, vue.createVNode)(HeaderRenderer, (0, vue.mergeProps)(props, tableHeaderProps), { + header: slots.header, + cell: (props) => { + let _slot2; + return slots["header-cell"] ? (0, vue.createVNode)(HeaderCellRenderer, (0, vue.mergeProps)(props, tableHeaderCellProps, { "style": _columnsStyles[props.column.key] }), _isSlot(_slot2 = slots["header-cell"](props)) ? _slot2 : { default: () => [_slot2] }) : (0, vue.createVNode)(HeaderCellRenderer, (0, vue.mergeProps)(props, tableHeaderCellProps, { "style": _columnsStyles[props.column.key] }), null); + } + }) + }; + const rootKls = [ + props.class, + ns.b(), + ns.e("root"), + ns.is("dynamic", (0, vue.unref)(isDynamic)) + ]; + const footerProps = { + class: ns.e("footer"), + style: (0, vue.unref)(footerHeight) + }; + return (0, vue.createVNode)("div", { + "class": rootKls, + "style": (0, vue.unref)(rootStyle) + }, [ + (0, vue.createVNode)(MainTable, mainTableProps, _isSlot(tableSlots) ? tableSlots : { default: () => [tableSlots] }), + (0, vue.createVNode)(LeftTable, leftTableProps, _isSlot(tableSlots) ? tableSlots : { default: () => [tableSlots] }), + (0, vue.createVNode)(RightTable, rightTableProps, _isSlot(tableSlots) ? tableSlots : { default: () => [tableSlots] }), + slots.footer && (0, vue.createVNode)(Footer$1, footerProps, { default: slots.footer }), + (0, vue.unref)(showEmpty) && (0, vue.createVNode)(Footer, { + "class": ns.e("empty"), + "style": (0, vue.unref)(emptyStyle) + }, { default: slots.empty }), + slots.overlay && (0, vue.createVNode)(Overlay, { "class": ns.e("overlay") }, { default: slots.overlay }) + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/auto-resizer.ts + const autoResizerProps = buildProps({ + disableWidth: Boolean, + disableHeight: Boolean, + onResize: { type: definePropType(Function) } + }); + +//#endregion +//#region ../../packages/components/table-v2/src/components/auto-resizer.tsx + const AutoResizer = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAutoResizer", + props: autoResizerProps, + setup(props, { slots }) { + const ns = useNamespace("auto-resizer"); + const { height, width, sizer } = useAutoResize(props); + const style = { + width: "100%", + height: "100%" + }; + return () => { + return (0, vue.createVNode)("div", { + "ref": sizer, + "class": ns.b(), + "style": style + }, [slots.default?.({ + height: height.value, + width: width.value + })]); + }; + } + }); + +//#endregion +//#region ../../packages/components/table-v2/index.ts + const ElTableV2 = withInstall(TableV2); + const ElAutoResizer = withInstall(AutoResizer); + +//#endregion +//#region ../../packages/components/tabs/src/constants.ts + const tabsRootContextKey = Symbol("tabsRootContextKey"); + +//#endregion +//#region ../../packages/components/tabs/src/tab-bar.ts +/** + * @deprecated Removed after 3.0.0, Use `TabBarProps` instead. + */ + const tabBarProps = buildProps({ + tabs: { + type: definePropType(Array), + default: () => mutable([]) + }, + tabRefs: { + type: definePropType(Object), + default: () => mutable({}) + } + }); + +//#endregion +//#region ../../packages/components/tabs/src/tab-bar.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$4 = "ElTabBar"; + var tab_bar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$4, + __name: "tab-bar", + props: tabBarProps, + setup(__props, { expose: __expose }) { + const props = __props; + const rootTabs = (0, vue.inject)(tabsRootContextKey); + if (!rootTabs) throwError(COMPONENT_NAME$4, ""); + const ns = useNamespace("tabs"); + const barRef = (0, vue.ref)(); + const barStyle = (0, vue.ref)(); + /** + * when defaultValue is not set, the bar is always shown. + * + * when defaultValue is set, the bar will be hidden until style is calculated + * to avoid the bar showing in the wrong position on initial render. + */ + const renderActiveBar = (0, vue.computed)(() => isUndefined(rootTabs.props.defaultValue) || Boolean(barStyle.value?.transform)); + const getBarStyle = () => { + let offset = 0; + let tabSize = 0; + const sizeName = ["top", "bottom"].includes(rootTabs.props.tabPosition) ? "width" : "height"; + const sizeDir = sizeName === "width" ? "x" : "y"; + const position = sizeDir === "x" ? "left" : "top"; + props.tabs.every((tab) => { + if (isUndefined(tab.paneName)) return false; + const $el = props.tabRefs[tab.paneName]; + if (!$el) return false; + if (!tab.active) return true; + offset = $el[`offset${capitalize(position)}`]; + tabSize = $el[`client${capitalize(sizeName)}`]; + const tabStyles = window.getComputedStyle($el); + if (sizeName === "width") { + tabSize -= Number.parseFloat(tabStyles.paddingLeft) + Number.parseFloat(tabStyles.paddingRight); + offset += Number.parseFloat(tabStyles.paddingLeft); + } + return false; + }); + return { + [sizeName]: `${tabSize}px`, + transform: `translate${capitalize(sizeDir)}(${offset}px)` + }; + }; + const update = () => barStyle.value = getBarStyle(); + const tabObservers = []; + const observerTabs = () => { + tabObservers.forEach((observer) => observer.stop()); + tabObservers.length = 0; + Object.values(props.tabRefs).forEach((tab) => { + tabObservers.push(useResizeObserver(tab, update)); + }); + }; + (0, vue.watch)(() => props.tabs, async () => { + await (0, vue.nextTick)(); + update(); + observerTabs(); + }, { immediate: true }); + const barObserver = useResizeObserver(barRef, () => update()); + (0, vue.onBeforeUnmount)(() => { + tabObservers.forEach((observer) => observer.stop()); + tabObservers.length = 0; + barObserver.stop(); + }); + __expose({ + ref: barRef, + update + }); + return (_ctx, _cache) => { + return renderActiveBar.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref_key: "barRef", + ref: barRef, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("active-bar"), (0, vue.unref)(ns).is((0, vue.unref)(rootTabs).props.tabPosition)]), + style: (0, vue.normalizeStyle)(barStyle.value) + }, null, 6)) : (0, vue.createCommentVNode)("v-if", true); + }; + } + }); + +//#endregion +//#region ../../packages/components/tabs/src/tab-bar.vue + var tab_bar_default = tab_bar_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tabs/src/tab-nav.tsx + const tabNavProps = buildProps({ + panes: { + type: definePropType(Array), + default: () => mutable([]) + }, + currentName: { + type: [String, Number], + default: "" + }, + editable: Boolean, + type: { + type: String, + values: [ + "card", + "border-card", + "" + ], + default: "" + }, + stretch: Boolean, + tabindex: { + type: [String, Number], + default: void 0 + } + }); + const tabNavEmits = { + tabClick: (tab, tabName, ev) => ev instanceof Event, + tabRemove: (tab, ev) => ev instanceof Event + }; + const COMPONENT_NAME$3 = "ElTabNav"; + const TabNav = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$3, + props: tabNavProps, + emits: tabNavEmits, + setup(props, { expose, emit }) { + const rootTabs = (0, vue.inject)(tabsRootContextKey); + if (!rootTabs) throwError(COMPONENT_NAME$3, ``); + const ns = useNamespace("tabs"); + const visibility = useDocumentVisibility(); + const focused = useWindowFocus(); + const navScroll$ = (0, vue.ref)(); + const nav$ = (0, vue.ref)(); + const el$ = (0, vue.ref)(); + const tabRefsMap = (0, vue.ref)({}); + const tabBarRef = (0, vue.ref)(); + const scrollable = (0, vue.ref)(false); + const navOffset = (0, vue.ref)(0); + const isFocus = (0, vue.ref)(false); + const focusable = (0, vue.ref)(true); + const isWheelScrolling = (0, vue.ref)(false); + const tracker = (0, vue.shallowRef)(); + const isHorizontal = (0, vue.computed)(() => ["top", "bottom"].includes(rootTabs.props.tabPosition)); + const sizeName = (0, vue.computed)(() => isHorizontal.value ? "width" : "height"); + const navStyle = (0, vue.computed)(() => { + const dir = sizeName.value === "width" ? "X" : "Y"; + return { + transition: isWheelScrolling.value ? "none" : void 0, + transform: `translate${dir}(-${navOffset.value}px)` + }; + }); + const { width: navContainerWidth, height: navContainerHeight } = useElementSize(navScroll$); + const { width: navWidth, height: navHeight } = useElementSize(nav$, { + width: 0, + height: 0 + }, { box: "border-box" }); + const navContainerSize = (0, vue.computed)(() => isHorizontal.value ? navContainerWidth.value : navContainerHeight.value); + const navSize = (0, vue.computed)(() => isHorizontal.value ? navWidth.value : navHeight.value); + const { onWheel } = useWheel({ + atStartEdge: (0, vue.computed)(() => navOffset.value <= 0), + atEndEdge: (0, vue.computed)(() => navSize.value - navOffset.value <= navContainerSize.value), + layout: (0, vue.computed)(() => isHorizontal.value ? "horizontal" : "vertical") + }, (offset) => { + navOffset.value = clamp$1(navOffset.value + offset, 0, navSize.value - navContainerSize.value); + }); + const handleWheel = (event) => { + isWheelScrolling.value = true; + onWheel(event); + rAF(() => { + isWheelScrolling.value = false; + }); + }; + const scrollPrev = () => { + if (!navScroll$.value) return; + const containerSize = navScroll$.value.getBoundingClientRect()[sizeName.value]; + const currentOffset = navOffset.value; + if (!currentOffset) return; + navOffset.value = currentOffset > containerSize ? currentOffset - containerSize : 0; + }; + const scrollNext = () => { + if (!navScroll$.value || !nav$.value) return; + const navSize = nav$.value.getBoundingClientRect()[sizeName.value]; + const containerSize = navScroll$.value.getBoundingClientRect()[sizeName.value]; + const currentOffset = navOffset.value; + if (!isGreaterThan(navSize - currentOffset, containerSize)) return; + navOffset.value = navSize - currentOffset > containerSize * 2 ? currentOffset + containerSize : navSize - containerSize; + }; + const scrollToActiveTab = async () => { + const nav = nav$.value; + if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return; + await (0, vue.nextTick)(); + const activeTab = tabRefsMap.value[props.currentName]; + if (!activeTab) return; + const navScroll = navScroll$.value; + const activeTabBounding = activeTab.getBoundingClientRect(); + const navScrollBounding = navScroll.getBoundingClientRect(); + const navScrollLeft = navScrollBounding.left + 1; + const navScrollRight = navScrollBounding.right - 1; + const navBounding = nav.getBoundingClientRect(); + const maxOffset = isHorizontal.value ? navBounding.width - navScrollBounding.width : navBounding.height - navScrollBounding.height; + const currentOffset = navOffset.value; + let newOffset = currentOffset; + if (isHorizontal.value) { + if (activeTabBounding.left < navScrollLeft) newOffset = currentOffset - (navScrollLeft - activeTabBounding.left); + if (activeTabBounding.right > navScrollRight) newOffset = currentOffset + activeTabBounding.right - navScrollRight; + } else { + if (activeTabBounding.top < navScrollBounding.top) newOffset = currentOffset - (navScrollBounding.top - activeTabBounding.top); + if (activeTabBounding.bottom > navScrollBounding.bottom) newOffset = currentOffset + (activeTabBounding.bottom - navScrollBounding.bottom); + } + newOffset = Math.max(newOffset, 0); + navOffset.value = Math.min(newOffset, maxOffset); + }; + const update = () => { + if (!nav$.value || !navScroll$.value) return; + props.stretch && tabBarRef.value?.update(); + const navSize = nav$.value.getBoundingClientRect()[sizeName.value]; + const containerSize = navScroll$.value.getBoundingClientRect()[sizeName.value]; + const currentOffset = navOffset.value; + if (containerSize < navSize) { + scrollable.value = scrollable.value || {}; + scrollable.value.prev = currentOffset; + scrollable.value.next = isGreaterThan(navSize, currentOffset + containerSize); + if (isGreaterThan(containerSize, navSize - currentOffset)) navOffset.value = navSize - containerSize; + } else { + scrollable.value = false; + if (currentOffset > 0) navOffset.value = 0; + } + }; + const changeTab = (event) => { + const code = getEventCode(event); + let step = 0; + switch (code) { + case EVENT_CODE.left: + case EVENT_CODE.up: + step = -1; + break; + case EVENT_CODE.right: + case EVENT_CODE.down: + step = 1; + break; + default: return; + } + const tabList = Array.from(event.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")); + let nextIndex = tabList.indexOf(event.target) + step; + if (nextIndex < 0) nextIndex = tabList.length - 1; + else if (nextIndex >= tabList.length) nextIndex = 0; + tabList[nextIndex].focus({ preventScroll: true }); + tabList[nextIndex].click(); + setFocus(); + }; + const setFocus = () => { + if (focusable.value) isFocus.value = true; + }; + const removeFocus = () => isFocus.value = false; + const setRefs = (el, key) => { + tabRefsMap.value[key] = el; + }; + const focusActiveTab = async () => { + await (0, vue.nextTick)(); + tabRefsMap.value[props.currentName]?.focus({ preventScroll: true }); + }; + (0, vue.watch)(visibility, (visibility) => { + if (visibility === "hidden") focusable.value = false; + else if (visibility === "visible") setTimeout(() => focusable.value = true, 50); + }); + (0, vue.watch)(focused, (focused) => { + if (focused) setTimeout(() => focusable.value = true, 50); + else focusable.value = false; + }); + useResizeObserver(el$, () => { + rAF(update); + }); + (0, vue.onMounted)(() => setTimeout(() => scrollToActiveTab(), 0)); + (0, vue.onUpdated)(() => update()); + expose({ + scrollToActiveTab, + removeFocus, + focusActiveTab, + tabListRef: nav$, + tabBarRef, + scheduleRender: () => (0, vue.triggerRef)(tracker) + }); + return () => { + const scrollBtn = scrollable.value ? [(0, vue.createVNode)("span", { + "class": [ns.e("nav-prev"), ns.is("disabled", !scrollable.value.prev)], + "onClick": scrollPrev + }, [(0, vue.createVNode)(ElIcon, null, { default: () => [(0, vue.createVNode)(arrow_left_default, null, null)] })]), (0, vue.createVNode)("span", { + "class": [ns.e("nav-next"), ns.is("disabled", !scrollable.value.next)], + "onClick": scrollNext + }, [(0, vue.createVNode)(ElIcon, null, { default: () => [(0, vue.createVNode)(arrow_right_default, null, null)] })])] : null; + const tabs = props.panes.map((pane, index) => { + const uid = pane.uid; + const disabled = pane.props.disabled; + const tabName = pane.props.name ?? pane.index ?? `${index}`; + const closable = !disabled && (pane.isClosable || pane.props.closable !== false && props.editable); + pane.index = `${index}`; + const btnClose = closable ? (0, vue.createVNode)(ElIcon, { + "class": "is-icon-close", + "onClick": (ev) => emit("tabRemove", pane, ev) + }, { default: () => [(0, vue.createVNode)(close_default, null, null)] }) : null; + const tabLabelContent = pane.slots.label?.() || pane.props.label; + const tabindex = !disabled && pane.active ? props.tabindex ?? rootTabs.props.tabindex : -1; + return (0, vue.createVNode)("div", { + "ref": (el) => setRefs(el, tabName), + "class": [ + ns.e("item"), + ns.is(rootTabs.props.tabPosition), + ns.is("active", pane.active), + ns.is("disabled", disabled), + ns.is("closable", closable), + ns.is("focus", isFocus.value) + ], + "id": `tab-${tabName}`, + "key": `tab-${uid}`, + "aria-controls": `pane-${tabName}`, + "role": "tab", + "aria-selected": pane.active, + "tabindex": tabindex, + "onFocus": () => setFocus(), + "onBlur": () => removeFocus(), + "onClick": (ev) => { + removeFocus(); + emit("tabClick", pane, tabName, ev); + }, + "onKeydown": (ev) => { + const code = getEventCode(ev); + if (closable && (code === EVENT_CODE.delete || code === EVENT_CODE.backspace)) emit("tabRemove", pane, ev); + } + }, [...[tabLabelContent, btnClose]]); + }); + tracker.value; + return (0, vue.createVNode)("div", { + "ref": el$, + "class": [ + ns.e("nav-wrap"), + ns.is("scrollable", !!scrollable.value), + ns.is(rootTabs.props.tabPosition) + ] + }, [scrollBtn, (0, vue.createVNode)("div", { + "class": ns.e("nav-scroll"), + "ref": navScroll$ + }, [props.panes.length > 0 ? (0, vue.createVNode)("div", { + "class": [ + ns.e("nav"), + ns.is(rootTabs.props.tabPosition), + ns.is("stretch", props.stretch && ["top", "bottom"].includes(rootTabs.props.tabPosition)) + ], + "ref": nav$, + "style": navStyle.value, + "role": "tablist", + "onKeydown": changeTab, + "onWheel": handleWheel + }, [...[!props.type ? (0, vue.createVNode)(tab_bar_default, { + "ref": tabBarRef, + "tabs": [...props.panes], + "tabRefs": tabRefsMap.value + }, null) : null, tabs]]) : null])]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tabs/src/tabs.tsx + const tabsProps = buildProps({ + 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: definePropType(Function), + default: () => true + }, + stretch: Boolean, + tabindex: { + type: [String, Number], + default: 0 + } + }); + const isPaneName = (value) => isString(value) || isNumber(value); + const tabsEmits = { + [UPDATE_MODEL_EVENT]: (name) => isPaneName(name), + tabClick: (pane, ev) => ev instanceof Event, + tabChange: (name) => isPaneName(name), + edit: (paneName, action) => ["remove", "add"].includes(action), + tabRemove: (name) => isPaneName(name), + tabAdd: () => true + }; + const Tabs = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTabs", + props: tabsProps, + emits: tabsEmits, + setup(props, { emit, slots, expose }) { + const ns = useNamespace("tabs"); + const isVertical = (0, vue.computed)(() => ["left", "right"].includes(props.tabPosition)); + const { children: panes, addChild: registerPane, removeChild: unregisterPane, ChildrenSorter: PanesSorter } = useOrderedChildren((0, vue.getCurrentInstance)(), "ElTabPane"); + const nav$ = (0, vue.ref)(); + const currentName = (0, vue.ref)((isUndefined(props.modelValue) ? props.defaultValue : props.modelValue) ?? "0"); + const setCurrentName = async (value, trigger = false) => { + if (currentName.value === value || isUndefined(value)) return; + try { + let canLeave; + if (props.beforeLeave) { + const result = props.beforeLeave(value, currentName.value); + canLeave = result instanceof Promise ? await result : result; + } else canLeave = true; + if (canLeave !== false) { + const isFocusInsidePane = panes.value.find((item) => item.paneName === currentName.value)?.isFocusInsidePane(); + currentName.value = value; + if (trigger) { + emit(UPDATE_MODEL_EVENT, value); + emit("tabChange", value); + } + nav$.value?.removeFocus?.(); + if (isFocusInsidePane) nav$.value?.focusActiveTab(); + } + } catch {} + }; + const handleTabClick = (tab, tabName, event) => { + if (tab.props.disabled) return; + emit("tabClick", tab, event); + setCurrentName(tabName, true); + }; + const handleTabRemove = (pane, ev) => { + if (pane.props.disabled || isUndefined(pane.props.name)) return; + ev.stopPropagation(); + emit("edit", pane.props.name, "remove"); + emit("tabRemove", pane.props.name); + }; + const handleTabAdd = () => { + emit("edit", void 0, "add"); + emit("tabAdd"); + }; + const handleKeydown = (event) => { + const code = getEventCode(event); + if ([EVENT_CODE.enter, EVENT_CODE.numpadEnter].includes(code)) handleTabAdd(); + }; + const swapChildren = (vnode) => { + const actualFirstChild = vnode.el.firstChild; + const firstChild = ["bottom", "right"].includes(props.tabPosition) ? vnode.children[0].el : vnode.children[1].el; + if (actualFirstChild !== firstChild) actualFirstChild.before(firstChild); + }; + (0, vue.watch)(() => props.modelValue, (modelValue) => setCurrentName(modelValue)); + (0, vue.watch)(currentName, async () => { + await (0, vue.nextTick)(); + nav$.value?.scrollToActiveTab(); + }); + (0, vue.provide)(tabsRootContextKey, { + props, + currentName, + registerPane, + unregisterPane, + nav$ + }); + expose({ + currentName, + get tabNavRef() { + return omit(nav$.value, ["scheduleRender"]); + } + }); + return () => { + const addSlot = slots["add-icon"]; + const newButton = props.editable || props.addable ? (0, vue.createVNode)("div", { + "class": [ns.e("new-tab"), isVertical.value && ns.e("new-tab-vertical")], + "tabindex": props.tabindex, + "onClick": handleTabAdd, + "onKeydown": handleKeydown + }, [addSlot ? (0, vue.renderSlot)(slots, "add-icon") : (0, vue.createVNode)(ElIcon, { "class": ns.is("icon-plus") }, { default: () => [(0, vue.createVNode)(plus_default, null, null)] })]) : null; + const tabNav = () => (0, vue.createVNode)(TabNav, { + "ref": nav$, + "currentName": currentName.value, + "editable": props.editable, + "type": props.type, + "panes": panes.value, + "stretch": props.stretch, + "onTabClick": handleTabClick, + "onTabRemove": handleTabRemove + }, null); + const header = (0, vue.createVNode)("div", { "class": [ + ns.e("header"), + isVertical.value && ns.e("header-vertical"), + ns.is(props.tabPosition) + ] }, [(0, vue.createVNode)(PanesSorter, null, { + default: tabNav, + $stable: true + }), newButton]); + const panels = (0, vue.createVNode)("div", { "class": ns.e("content") }, [(0, vue.renderSlot)(slots, "default")]); + return (0, vue.createVNode)("div", { + "class": [ + ns.b(), + ns.m(props.tabPosition), + { + [ns.m("card")]: props.type === "card", + [ns.m("border-card")]: props.type === "border-card" + } + ], + "onVnodeMounted": swapChildren, + "onVnodeUpdated": swapChildren + }, [panels, header]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tabs/src/tab-pane.ts +/** + * @deprecated Removed after 3.0.0, Use `TabPaneProps` instead. + */ + const tabPaneProps = buildProps({ + label: { + type: String, + default: "" + }, + name: { type: [String, Number] }, + closable: { + type: Boolean, + default: void 0 + }, + disabled: Boolean, + lazy: Boolean + }); + +//#endregion +//#region ../../packages/components/tabs/src/tab-pane.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$14 = [ + "id", + "aria-hidden", + "aria-labelledby" + ]; + const COMPONENT_NAME$2 = "ElTabPane"; + var tab_pane_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$2, + __name: "tab-pane", + props: tabPaneProps, + setup(__props) { + const props = __props; + const instance = (0, vue.getCurrentInstance)(); + const slots = (0, vue.useSlots)(); + const tabsRoot = (0, vue.inject)(tabsRootContextKey); + if (!tabsRoot) throwError(COMPONENT_NAME$2, "usage: "); + const ns = useNamespace("tab-pane"); + const paneRef = (0, vue.ref)(); + const index = (0, vue.ref)(); + const isClosable = (0, vue.computed)(() => props.closable ?? tabsRoot.props.closable); + const active = (0, vue.computed)(() => tabsRoot.currentName.value === (props.name ?? index.value)); + const loaded = (0, vue.ref)(active.value); + const paneName = (0, vue.computed)(() => props.name ?? index.value); + const shouldBeRender = (0, vue.computed)(() => !props.lazy || loaded.value || active.value); + const isFocusInsidePane = () => { + return paneRef.value?.contains(document.activeElement); + }; + (0, vue.watch)(active, (val) => { + if (val) loaded.value = true; + }); + const pane = (0, vue.reactive)({ + uid: instance.uid, + getVnode: () => instance.vnode, + slots, + props, + paneName, + active, + index, + isClosable, + isFocusInsidePane + }); + tabsRoot.registerPane(pane); + (0, vue.onBeforeUnmount)(() => { + tabsRoot.unregisterPane(pane); + }); + (0, vue.onBeforeUpdate)(() => { + if (slots.label) tabsRoot.nav$.value?.scheduleRender(); + }); + return (_ctx, _cache) => { + return shouldBeRender.value ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + id: `pane-${paneName.value}`, + ref_key: "paneRef", + ref: paneRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()), + role: "tabpanel", + "aria-hidden": !active.value, + "aria-labelledby": `tab-${paneName.value}` + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 10, _hoisted_1$14)), [[vue.vShow, active.value]]) : (0, vue.createCommentVNode)("v-if", true); + }; + } + }); + +//#endregion +//#region ../../packages/components/tabs/src/tab-pane.vue + var tab_pane_default = tab_pane_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tabs/index.ts + const ElTabs = withInstall(Tabs, { TabPane: tab_pane_default }); + const ElTabPane = withNoopInstall(tab_pane_default); + +//#endregion +//#region ../../packages/components/text/src/text.ts +/** + * @deprecated Removed after 3.0.0, Use `TextProps` instead. + */ + const textProps = buildProps({ + type: { + type: String, + values: [ + "primary", + "success", + "info", + "warning", + "danger", + "" + ], + default: "" + }, + size: { + type: String, + values: componentSizes, + default: "" + }, + truncated: Boolean, + lineClamp: { type: [String, Number] }, + tag: { + type: String, + default: "span" + } + }); + +//#endregion +//#region ../../packages/components/text/src/text.vue?vue&type=script&setup=true&lang.ts + var text_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElText", + __name: "text", + props: textProps, + setup(__props) { + const props = __props; + const textRef = (0, vue.ref)(); + const textSize = useFormSize(); + const ns = useNamespace("text"); + const textKls = (0, vue.computed)(() => [ + ns.b(), + ns.m(props.type), + ns.m(textSize.value), + ns.is("truncated", props.truncated), + ns.is("line-clamp", !isUndefined(props.lineClamp)) + ]); + const bindTitle = () => { + if ((0, vue.useAttrs)().title) return; + let shouldAddTitle = false; + const text = textRef.value?.textContent || ""; + if (props.truncated) { + const width = textRef.value?.offsetWidth; + const scrollWidth = textRef.value?.scrollWidth; + if (width && scrollWidth && scrollWidth > width) shouldAddTitle = true; + } else if (!isUndefined(props.lineClamp)) { + const height = textRef.value?.offsetHeight; + const scrollHeight = textRef.value?.scrollHeight; + if (height && scrollHeight && scrollHeight > height) shouldAddTitle = true; + } + if (shouldAddTitle) textRef.value?.setAttribute("title", text); + else textRef.value?.removeAttribute("title"); + }; + (0, vue.onMounted)(bindTitle); + (0, vue.onUpdated)(bindTitle); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.tag), { + ref_key: "textRef", + ref: textRef, + class: (0, vue.normalizeClass)(textKls.value), + style: (0, vue.normalizeStyle)({ "-webkit-line-clamp": __props.lineClamp }) + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["class", "style"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/text/src/text.vue + var text_default = text_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/text/index.ts + const ElText = withInstall(text_default); + +//#endregion +//#region ../../packages/components/time-select/src/time-select.ts + const DEFAULT_STEP = "00:30"; + /** + * @deprecated Removed after 3.0.0, Use `TimeSelectProps` instead. + */ + const timeSelectProps = buildProps({ + format: { + type: String, + default: "HH:mm" + }, + modelValue: { type: definePropType(String) }, + disabled: { + type: Boolean, + default: void 0 + }, + editable: { + type: Boolean, + default: true + }, + effect: { + type: definePropType(String), + default: "light" + }, + clearable: { + type: Boolean, + default: true + }, + size: useSizeProp, + placeholder: String, + start: { + type: String, + default: "09:00" + }, + end: { + type: String, + default: "18:00" + }, + step: { + type: String, + default: DEFAULT_STEP + }, + minTime: { type: definePropType(String) }, + maxTime: { type: definePropType(String) }, + includeEndTime: Boolean, + name: String, + prefixIcon: { + type: definePropType([String, Object]), + default: () => clock_default + }, + clearIcon: { + type: definePropType([String, Object]), + default: () => circle_close_default + }, + popperClass: { + type: String, + default: "" + }, + popperStyle: { type: definePropType([String, Object]) }, + ...useEmptyValuesProps + }); + +//#endregion +//#region ../../packages/components/time-select/src/utils.ts + const parseTime = (time) => { + const values = (time || "").split(":"); + if (values.length >= 2) { + let hours = Number.parseInt(values[0], 10); + const minutes = Number.parseInt(values[1], 10); + const timeUpper = time.toUpperCase(); + if (timeUpper.includes("AM") && hours === 12) hours = 0; + else if (timeUpper.includes("PM") && hours !== 12) hours += 12; + return { + hours, + minutes + }; + } + return null; + }; + const compareTime = (time1, time2) => { + const value1 = parseTime(time1); + if (!value1) return -1; + const value2 = parseTime(time2); + if (!value2) return -1; + const minutes1 = value1.minutes + value1.hours * 60; + const minutes2 = value2.minutes + value2.hours * 60; + if (minutes1 === minutes2) return 0; + return minutes1 > minutes2 ? 1 : -1; + }; + const padTime = (time) => { + return `${time}`.padStart(2, "0"); + }; + const formatTime = (time) => { + return `${padTime(time.hours)}:${padTime(time.minutes)}`; + }; + const nextTime = (time, step) => { + const timeValue = parseTime(time); + if (!timeValue) return ""; + const stepValue = parseTime(step); + if (!stepValue) return ""; + const next = { + hours: timeValue.hours, + minutes: timeValue.minutes + }; + next.minutes += stepValue.minutes; + next.hours += stepValue.hours; + next.hours += Math.floor(next.minutes / 60); + next.minutes = next.minutes % 60; + return formatTime(next); + }; + +//#endregion +//#region ../../packages/components/time-select/src/time-select.vue?vue&type=script&setup=true&lang.ts + var time_select_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTimeSelect", + __name: "time-select", + props: timeSelectProps, + emits: [ + CHANGE_EVENT, + "blur", + "focus", + "clear", + UPDATE_MODEL_EVENT + ], + setup(__props, { expose: __expose }) { + import_dayjs_min.default.extend(import_customParseFormat.default); + const { Option: ElOption } = ElSelect; + const props = __props; + const nsInput = useNamespace("input"); + const select = (0, vue.ref)(); + const _disabled = useFormDisabled(); + const { lang } = useLocale(); + const value = (0, vue.computed)(() => props.modelValue); + const start = (0, vue.computed)(() => { + const time = parseTime(props.start); + return time ? formatTime(time) : null; + }); + const end = (0, vue.computed)(() => { + const time = parseTime(props.end); + return time ? formatTime(time) : null; + }); + const minTime = (0, vue.computed)(() => { + const time = parseTime(props.minTime || ""); + return time ? formatTime(time) : null; + }); + const maxTime = (0, vue.computed)(() => { + const time = parseTime(props.maxTime || ""); + return time ? formatTime(time) : null; + }); + const step = (0, vue.computed)(() => { + const time = parseTime(props.step); + const isInvalidStep = !time || time.hours < 0 || time.minutes < 0 || Number.isNaN(time.hours) || Number.isNaN(time.minutes) || time.hours === 0 && time.minutes === 0; + if (isInvalidStep) /* @__PURE__ */ debugWarn("ElTimeSelect", `invalid step, fallback to default step (${DEFAULT_STEP}).`); + return !isInvalidStep ? formatTime(time) : DEFAULT_STEP; + }); + const items = (0, vue.computed)(() => { + const result = []; + const push = (formattedValue, rawValue) => { + result.push({ + value: formattedValue, + rawValue, + disabled: compareTime(rawValue, minTime.value || "-1:-1") <= 0 || compareTime(rawValue, maxTime.value || "100:100") >= 0 + }); + }; + if (props.start && props.end && props.step) { + let current = start.value; + let currentTime; + while (current && end.value && compareTime(current, end.value) <= 0) { + currentTime = (0, import_dayjs_min.default)(current, "HH:mm").locale(lang.value).format(props.format); + push(currentTime, current); + current = nextTime(current, step.value); + } + if (props.includeEndTime && end.value && result[result.length - 1]?.rawValue !== end.value) push((0, import_dayjs_min.default)(end.value, "HH:mm").locale(lang.value).format(props.format), end.value); + } + return result; + }); + const blur = () => { + select.value?.blur?.(); + }; + const focus = () => { + select.value?.focus?.(); + }; + __expose({ + blur, + focus + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElSelect), { + ref_key: "select", + ref: select, + name: __props.name, + "model-value": value.value, + disabled: (0, vue.unref)(_disabled), + clearable: __props.clearable, + "clear-icon": __props.clearIcon, + size: __props.size, + effect: __props.effect, + placeholder: __props.placeholder, + "default-first-option": "", + filterable: __props.editable, + "empty-values": __props.emptyValues, + "value-on-clear": __props.valueOnClear, + "popper-class": __props.popperClass, + "popper-style": __props.popperStyle, + "onUpdate:modelValue": _cache[0] || (_cache[0] = (event) => _ctx.$emit((0, vue.unref)(UPDATE_MODEL_EVENT), event)), + onChange: _cache[1] || (_cache[1] = (event) => _ctx.$emit((0, vue.unref)(CHANGE_EVENT), event)), + onBlur: _cache[2] || (_cache[2] = (event) => _ctx.$emit("blur", event)), + onFocus: _cache[3] || (_cache[3] = (event) => _ctx.$emit("focus", event)), + onClear: _cache[4] || (_cache[4] = () => _ctx.$emit("clear")) + }, { + prefix: (0, vue.withCtx)(() => [__props.prefixIcon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsInput).e("prefix-icon")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.prefixIcon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)]), + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(items.value, (item) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElOption), { + key: item.value, + label: item.value, + value: item.value, + disabled: item.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" + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/time-select/src/time-select.vue + var time_select_default = time_select_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/time-select/index.ts + const ElTimeSelect = withInstall(time_select_default); + +//#endregion +//#region ../../packages/components/timeline/src/tokens.ts + const TIMELINE_INJECTION_KEY = "timeline"; + +//#endregion +//#region ../../packages/components/timeline/src/timeline.ts + const timelineProps = buildProps({ + mode: { + type: String, + values: [ + "start", + "alternate", + "alternate-reverse", + "end" + ], + default: "start" + }, + reverse: Boolean + }); + const Timeline = (0, vue.defineComponent)({ + name: "ElTimeline", + props: timelineProps, + setup(props, { slots }) { + const ns = useNamespace("timeline"); + (0, vue.provide)(TIMELINE_INJECTION_KEY, { + props, + slots + }); + const timelineKls = (0, vue.computed)(() => [ns.b(), ns.is(props.mode)]); + return () => { + const children = flattedChildren(slots.default?.() ?? []); + return (0, vue.h)("ul", { class: timelineKls.value }, props.reverse ? children.reverse() : children); + }; + } + }); + +//#endregion +//#region ../../packages/components/timeline/src/timeline-item.ts +/** + * @deprecated Removed after 3.0.0, Use `TimelineItemProps` instead. + */ + const timelineItemProps = buildProps({ + 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: iconPropType }, + hollow: Boolean + }); + +//#endregion +//#region ../../packages/components/timeline/src/timeline-item.vue?vue&type=script&setup=true&lang.ts + var timeline_item_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTimelineItem", + __name: "timeline-item", + props: timelineItemProps, + setup(__props) { + const props = __props; + const { props: timelineProps } = (0, vue.inject)(TIMELINE_INJECTION_KEY); + const ns = useNamespace("timeline-item"); + const defaultNodeKls = (0, vue.computed)(() => [ + ns.e("node"), + ns.em("node", props.size || ""), + ns.em("node", props.type || ""), + ns.is("hollow", props.hollow) + ]); + const timelineItemKls = (0, vue.computed)(() => [ + ns.b(), + { [ns.e("center")]: props.center }, + ns.is(timelineProps.mode) + ]); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { class: (0, vue.normalizeClass)(timelineItemKls.value) }, [ + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("tail")) }, null, 2), + !_ctx.$slots.dot ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)(defaultNodeKls.value), + style: (0, vue.normalizeStyle)({ backgroundColor: __props.color }) + }, [__props.icon ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("icon")) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.icon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)], 6)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.dot ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("dot")) + }, [(0, vue.renderSlot)(_ctx.$slots, "dot")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("wrapper")) }, [ + !__props.hideTimestamp && __props.placement === "top" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("timestamp"), (0, vue.unref)(ns).is("top")]) + }, (0, vue.toDisplayString)(__props.timestamp), 3)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2), + !__props.hideTimestamp && __props.placement === "bottom" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("timestamp"), (0, vue.unref)(ns).is("bottom")]) + }, (0, vue.toDisplayString)(__props.timestamp), 3)) : (0, vue.createCommentVNode)("v-if", true) + ], 2) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/timeline/src/timeline-item.vue + var timeline_item_default = timeline_item_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/timeline/index.ts + const ElTimeline = withInstall(Timeline, { TimelineItem: timeline_item_default }); + const ElTimelineItem = withNoopInstall(timeline_item_default); + +//#endregion +//#region ../../packages/components/transfer/src/transfer.ts + const LEFT_CHECK_CHANGE_EVENT = "left-check-change"; + const RIGHT_CHECK_CHANGE_EVENT = "right-check-change"; + /** + * @deprecated Removed after 3.0.0, Use `TransferProps` instead. + */ + const transferProps = buildProps({ + data: { + type: definePropType(Array), + default: () => [] + }, + titles: { + type: definePropType(Array), + default: () => [] + }, + buttonTexts: { + type: definePropType(Array), + default: () => [] + }, + filterPlaceholder: String, + filterMethod: { type: definePropType(Function) }, + leftDefaultChecked: { + type: definePropType(Array), + default: () => [] + }, + rightDefaultChecked: { + type: definePropType(Array), + default: () => [] + }, + renderContent: { type: definePropType(Function) }, + modelValue: { + type: definePropType(Array), + default: () => [] + }, + format: { + type: definePropType(Object), + default: () => ({}) + }, + filterable: Boolean, + props: { + type: definePropType(Object), + default: () => mutable({ + label: "label", + key: "key", + disabled: "disabled" + }) + }, + targetOrder: { + type: String, + values: [ + "original", + "push", + "unshift" + ], + default: "original" + }, + validateEvent: { + type: Boolean, + default: true + } + }); + const transferCheckedChangeFn = (value, movedKeys) => [value, movedKeys].every(isArray$1) || isArray$1(value) && isNil(movedKeys); + const transferEmits = { + [CHANGE_EVENT]: (value, direction, movedKeys) => [value, movedKeys].every(isArray$1) && ["left", "right"].includes(direction), + [UPDATE_MODEL_EVENT]: (value) => isArray$1(value), + [LEFT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn, + [RIGHT_CHECK_CHANGE_EVENT]: transferCheckedChangeFn + }; + +//#endregion +//#region ../../packages/components/transfer/src/transfer-panel.ts + const CHECKED_CHANGE_EVENT = "checked-change"; + /** + * @deprecated Removed after 3.0.0, Use `TransferPanelProps` instead. + */ + const transferPanelProps = buildProps({ + data: transferProps.data, + optionRender: { type: definePropType(Function) }, + placeholder: String, + title: String, + filterable: Boolean, + format: transferProps.format, + filterMethod: transferProps.filterMethod, + defaultChecked: transferProps.leftDefaultChecked, + props: transferProps.props + }); + const transferPanelEmits = { [CHECKED_CHANGE_EVENT]: transferCheckedChangeFn }; + +//#endregion +//#region ../../packages/components/transfer/src/composables/use-props-alias.ts + const usePropsAlias = (props) => { + const initProps = { + label: "label", + key: "key", + disabled: "disabled" + }; + return (0, vue.computed)(() => ({ + ...initProps, + ...props.props + })); + }; + +//#endregion +//#region ../../packages/components/transfer/src/composables/use-check.ts + const useCheck$1 = (props, panelState, emit) => { + const propsAlias = usePropsAlias(props); + const filteredData = (0, vue.computed)(() => { + return props.data.filter((item) => { + if (isFunction$1(props.filterMethod)) return props.filterMethod(panelState.query, item); + else return String(item[propsAlias.value.label] || item[propsAlias.value.key]).toLowerCase().includes(panelState.query.toLowerCase()); + }); + }); + const checkableData = (0, vue.computed)(() => filteredData.value.filter((item) => !item[propsAlias.value.disabled])); + const checkedSummary = (0, vue.computed)(() => { + const checkedLength = panelState.checked.length; + const dataLength = props.data.length; + const { noChecked, hasChecked } = props.format; + if (noChecked && hasChecked) return checkedLength > 0 ? hasChecked.replace(/\${checked}/g, checkedLength.toString()).replace(/\${total}/g, dataLength.toString()) : noChecked.replace(/\${total}/g, dataLength.toString()); + else return `${checkedLength}/${dataLength}`; + }); + const isIndeterminate = (0, vue.computed)(() => { + const checkedLength = panelState.checked.length; + return checkedLength > 0 && checkedLength < checkableData.value.length; + }); + const updateAllChecked = () => { + const checkableDataKeys = checkableData.value.map((item) => item[propsAlias.value.key]); + panelState.allChecked = checkableDataKeys.length > 0 && checkableDataKeys.every((item) => panelState.checked.includes(item)); + }; + const handleAllCheckedChange = (value) => { + panelState.checked = value ? checkableData.value.map((item) => item[propsAlias.value.key]) : []; + }; + (0, vue.watch)(() => panelState.checked, (val, oldVal) => { + updateAllChecked(); + if (panelState.checkChangeByUser) emit(CHECKED_CHANGE_EVENT, val, val.concat(oldVal).filter((v) => !val.includes(v) || !oldVal.includes(v))); + else { + emit(CHECKED_CHANGE_EVENT, val); + panelState.checkChangeByUser = true; + } + }); + (0, vue.watch)(checkableData, () => { + updateAllChecked(); + }); + (0, vue.watch)(() => props.data, () => { + const checked = []; + const filteredDataKeys = filteredData.value.map((item) => item[propsAlias.value.key]); + panelState.checked.forEach((item) => { + if (filteredDataKeys.includes(item)) checked.push(item); + }); + panelState.checkChangeByUser = false; + panelState.checked = checked; + }); + (0, vue.watch)(() => props.defaultChecked, (val, oldVal) => { + if (oldVal && val.length === oldVal.length && val.every((item) => oldVal.includes(item))) return; + const checked = []; + const checkableDataKeys = checkableData.value.map((item) => item[propsAlias.value.key]); + val.forEach((item) => { + if (checkableDataKeys.includes(item)) checked.push(item); + }); + panelState.checkChangeByUser = false; + panelState.checked = checked; + }, { immediate: true }); + return { + filteredData, + checkableData, + checkedSummary, + isIndeterminate, + updateAllChecked, + handleAllCheckedChange + }; + }; + +//#endregion +//#region ../../packages/components/transfer/src/composables/use-checked-change.ts + const useCheckedChange = (checkedState, emit) => { + const onSourceCheckedChange = (val, movedKeys) => { + checkedState.leftChecked = val; + if (!movedKeys) return; + emit(LEFT_CHECK_CHANGE_EVENT, val, movedKeys); + }; + const onTargetCheckedChange = (val, movedKeys) => { + checkedState.rightChecked = val; + if (!movedKeys) return; + emit(RIGHT_CHECK_CHANGE_EVENT, val, movedKeys); + }; + return { + onSourceCheckedChange, + onTargetCheckedChange + }; + }; + +//#endregion +//#region ../../packages/components/transfer/src/composables/use-computed-data.ts + const useComputedData = (props) => { + const propsAlias = usePropsAlias(props); + const dataObj = (0, vue.computed)(() => props.data.reduce((o, cur) => (o[cur[propsAlias.value.key]] = cur, o), {})); + return { + sourceData: (0, vue.computed)(() => props.data.filter((item) => !props.modelValue.includes(item[propsAlias.value.key]))), + targetData: (0, vue.computed)(() => { + if (props.targetOrder === "original") return props.data.filter((item) => props.modelValue.includes(item[propsAlias.value.key])); + else return props.modelValue.reduce((arr, cur) => { + const val = dataObj.value[cur]; + if (val) arr.push(val); + return arr; + }, []); + }) + }; + }; + +//#endregion +//#region ../../packages/components/transfer/src/composables/use-move.ts + const useMove = (props, checkedState, emit) => { + const propsAlias = usePropsAlias(props); + const _emit = (value, direction, movedKeys) => { + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value, direction, movedKeys); + }; + const addToLeft = () => { + const currentValue = props.modelValue.slice(); + checkedState.rightChecked.forEach((item) => { + const index = currentValue.indexOf(item); + if (index > -1) currentValue.splice(index, 1); + }); + _emit(currentValue, "left", checkedState.rightChecked); + }; + const addToRight = () => { + let currentValue = props.modelValue.slice(); + const itemsToBeMoved = props.data.filter((item) => { + const itemKey = item[propsAlias.value.key]; + return checkedState.leftChecked.includes(itemKey) && !props.modelValue.includes(itemKey); + }).map((item) => item[propsAlias.value.key]); + currentValue = props.targetOrder === "unshift" ? itemsToBeMoved.concat(currentValue) : currentValue.concat(itemsToBeMoved); + if (props.targetOrder === "original") currentValue = props.data.filter((item) => currentValue.includes(item[propsAlias.value.key])).map((item) => item[propsAlias.value.key]); + _emit(currentValue, "right", checkedState.leftChecked); + }; + return { + addToLeft, + addToRight + }; + }; + +//#endregion +//#region ../../packages/components/transfer/src/transfer-panel.vue?vue&type=script&setup=true&lang.ts + var transfer_panel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTransferPanel", + __name: "transfer-panel", + props: transferPanelProps, + emits: transferPanelEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const slots = (0, vue.useSlots)(); + const OptionContent = ({ option }) => option; + const { t } = useLocale(); + const ns = useNamespace("transfer"); + const panelState = (0, vue.reactive)({ + checked: [], + allChecked: false, + query: "", + checkChangeByUser: true + }); + const propsAlias = usePropsAlias(props); + const { filteredData, checkedSummary, isIndeterminate, handleAllCheckedChange } = useCheck$1(props, panelState, emit); + const hasNoMatch = (0, vue.computed)(() => !isEmpty(panelState.query) && isEmpty(filteredData.value)); + const hasFooter = (0, vue.computed)(() => !isEmpty(slots.default()[0].children)); + const { checked, allChecked, query } = (0, vue.toRefs)(panelState); + __expose({ query }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("panel")) }, [ + (0, vue.createElementVNode)("p", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "header")) }, [(0, vue.createVNode)((0, vue.unref)(ElCheckbox), { + modelValue: (0, vue.unref)(allChecked), + "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => (0, vue.isRef)(allChecked) ? allChecked.value = $event : null), + indeterminate: (0, vue.unref)(isIndeterminate), + "validate-event": false, + onChange: (0, vue.unref)(handleAllCheckedChange) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "header-title")) }, (0, vue.toDisplayString)(__props.title), 3), (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "header-count")) }, (0, vue.toDisplayString)((0, vue.unref)(checkedSummary)), 3)]), + _: 1 + }, 8, [ + "modelValue", + "indeterminate", + "onChange" + ])], 2), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("panel", "body"), (0, vue.unref)(ns).is("with-footer", hasFooter.value)]) }, [ + __props.filterable ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElInput), { + key: 0, + modelValue: (0, vue.unref)(query), + "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => (0, vue.isRef)(query) ? query.value = $event : null), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "filter")), + size: "default", + placeholder: __props.placeholder, + "prefix-icon": (0, vue.unref)(search_default), + clearable: "", + "validate-event": false + }, null, 8, [ + "modelValue", + "class", + "placeholder", + "prefix-icon" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElCheckboxGroup), { + modelValue: (0, vue.unref)(checked), + "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => (0, vue.isRef)(checked) ? checked.value = $event : null), + "validate-event": false, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).is("filterable", __props.filterable), (0, vue.unref)(ns).be("panel", "list")]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)((0, vue.unref)(filteredData), (item) => { + return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElCheckbox), { + key: item[(0, vue.unref)(propsAlias).key], + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "item")), + value: item[(0, vue.unref)(propsAlias).key], + disabled: item[(0, vue.unref)(propsAlias).disabled], + "validate-event": false + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(OptionContent, { option: __props.optionRender?.(item) }, null, 8, ["option"])]), + _: 2 + }, 1032, [ + "class", + "value", + "disabled" + ]); + }), 128))]), + _: 1 + }, 8, ["modelValue", "class"]), [[vue.vShow, !hasNoMatch.value && !(0, vue.unref)(isEmpty)(__props.data)]]), + (0, vue.withDirectives)((0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "empty")) }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(hasNoMatch.value ? (0, vue.unref)(t)("el.transfer.noMatch") : (0, vue.unref)(t)("el.transfer.noData")), 1)])], 2), [[vue.vShow, hasNoMatch.value || (0, vue.unref)(isEmpty)(__props.data)]]) + ], 2), + hasFooter.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("panel", "footer")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/transfer/src/transfer-panel.vue + var transfer_panel_default = transfer_panel_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/transfer/src/transfer.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$13 = { key: 0 }; + const _hoisted_2$8 = { key: 0 }; + var transfer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTransfer", + __name: "transfer", + props: transferProps, + emits: transferEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const slots = (0, vue.useSlots)(); + const { t } = useLocale(); + const ns = useNamespace("transfer"); + const { formItem } = useFormItem(); + const checkedState = (0, vue.reactive)({ + leftChecked: [], + rightChecked: [] + }); + const propsAlias = usePropsAlias(props); + const { sourceData, targetData } = useComputedData(props); + const { onSourceCheckedChange, onTargetCheckedChange } = useCheckedChange(checkedState, emit); + const { addToLeft, addToRight } = useMove(props, checkedState, emit); + const leftPanel = (0, vue.ref)(); + const rightPanel = (0, vue.ref)(); + const clearQuery = (which) => { + switch (which) { + case "left": + leftPanel.value.query = ""; + break; + case "right": + rightPanel.value.query = ""; + break; + } + }; + const hasButtonTexts = (0, vue.computed)(() => props.buttonTexts.length === 2); + const leftPanelTitle = (0, vue.computed)(() => props.titles[0] || t("el.transfer.titles.0")); + const rightPanelTitle = (0, vue.computed)(() => props.titles[1] || t("el.transfer.titles.1")); + const panelFilterPlaceholder = (0, vue.computed)(() => props.filterPlaceholder || t("el.transfer.filterPlaceholder")); + (0, vue.watch)(() => props.modelValue, () => { + if (props.validateEvent) formItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }); + const optionRender = (0, vue.computed)(() => (option) => { + if (props.renderContent) return props.renderContent(vue.h, option); + const defaultSlotVNodes = (slots.default?.({ option }) || []).filter((node) => node.type !== vue.Comment); + if (defaultSlotVNodes.length) return defaultSlotVNodes; + return (0, vue.h)("span", option[propsAlias.value.label] || option[propsAlias.value.key]); + }); + __expose({ + clearQuery, + leftPanel, + rightPanel + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [ + (0, vue.createVNode)(transfer_panel_default, { + ref_key: "leftPanel", + ref: leftPanel, + data: (0, vue.unref)(sourceData), + "option-render": optionRender.value, + placeholder: panelFilterPlaceholder.value, + title: leftPanelTitle.value, + filterable: __props.filterable, + format: __props.format, + "filter-method": __props.filterMethod, + "default-checked": __props.leftDefaultChecked, + props: props.props, + onCheckedChange: (0, vue.unref)(onSourceCheckedChange) + }, { + empty: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "left-empty")]), + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "left-footer")]), + _: 3 + }, 8, [ + "data", + "option-render", + "placeholder", + "title", + "filterable", + "format", + "filter-method", + "default-checked", + "props", + "onCheckedChange" + ]), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("buttons")) }, [(0, vue.createVNode)((0, vue.unref)(ElButton), { + type: "primary", + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("button"), (0, vue.unref)(ns).is("with-texts", hasButtonTexts.value)]), + disabled: (0, vue.unref)(isEmpty)(checkedState.rightChecked), + onClick: (0, vue.unref)(addToLeft) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_left_default))]), + _: 1 + }), !(0, vue.unref)(isUndefined)(__props.buttonTexts[0]) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_1$13, (0, vue.toDisplayString)(__props.buttonTexts[0]), 1)) : (0, vue.createCommentVNode)("v-if", true)]), + _: 1 + }, 8, [ + "class", + "disabled", + "onClick" + ]), (0, vue.createVNode)((0, vue.unref)(ElButton), { + type: "primary", + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("button"), (0, vue.unref)(ns).is("with-texts", hasButtonTexts.value)]), + disabled: (0, vue.unref)(isEmpty)(checkedState.leftChecked), + onClick: (0, vue.unref)(addToRight) + }, { + default: (0, vue.withCtx)(() => [!(0, vue.unref)(isUndefined)(__props.buttonTexts[1]) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2$8, (0, vue.toDisplayString)(__props.buttonTexts[1]), 1)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createVNode)((0, vue.unref)(ElIcon), null, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(arrow_right_default))]), + _: 1 + })]), + _: 1 + }, 8, [ + "class", + "disabled", + "onClick" + ])], 2), + (0, vue.createVNode)(transfer_panel_default, { + ref_key: "rightPanel", + ref: rightPanel, + data: (0, vue.unref)(targetData), + "option-render": optionRender.value, + placeholder: panelFilterPlaceholder.value, + filterable: __props.filterable, + format: __props.format, + "filter-method": __props.filterMethod, + title: rightPanelTitle.value, + "default-checked": __props.rightDefaultChecked, + props: props.props, + onCheckedChange: (0, vue.unref)(onTargetCheckedChange) + }, { + empty: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "right-empty")]), + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "right-footer")]), + _: 3 + }, 8, [ + "data", + "option-render", + "placeholder", + "filterable", + "format", + "filter-method", + "title", + "default-checked", + "props", + "onCheckedChange" + ]) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/transfer/src/transfer.vue + var transfer_default = transfer_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/transfer/index.ts + const ElTransfer = withInstall(transfer_default); + +//#endregion +//#region ../../packages/components/tree/src/model/util.ts + const NODE_KEY = "$treeNodeId"; + const markNodeData = function(node, data) { + if (!data || data[NODE_KEY]) return; + Object.defineProperty(data, NODE_KEY, { + value: node.id, + enumerable: false, + configurable: false, + writable: false + }); + }; + const getNodeKey = (key, data) => data?.[key || NODE_KEY]; + const handleCurrentChange = (store, emit, setCurrent) => { + const preCurrentNode = store.value.currentNode; + setCurrent(); + const currentNode = store.value.currentNode; + if (preCurrentNode === currentNode) return; + emit("current-change", currentNode ? currentNode.data : null, currentNode); + }; + +//#endregion +//#region ../../packages/components/tree/src/model/node.ts + const getChildState = (node) => { + let all = true; + let none = true; + let allWithoutDisable = true; + let isEffectivelyChecked = true; + for (let i = 0, j = node.length; i < j; i++) { + const n = node[i]; + if (n.checked !== true || n.indeterminate) { + all = false; + if (!n.disabled) allWithoutDisable = false; + } + if (n.checked !== false || n.indeterminate) none = false; + if (!n.isEffectivelyChecked) isEffectivelyChecked = false; + } + return { + all, + none, + allWithoutDisable, + half: !all && !none, + isEffectivelyChecked + }; + }; + const reInitChecked = function(node) { + if (node.childNodes.length === 0 || node.loading) { + node.isEffectivelyChecked = node.disabled || node.checked; + return; + } + const { all, none, half, isEffectivelyChecked } = getChildState(node.childNodes); + node.isEffectivelyChecked = isEffectivelyChecked; + if (all) { + node.checked = true; + node.indeterminate = false; + } else if (half) { + node.checked = false; + node.indeterminate = true; + } else if (none) { + node.checked = false; + node.indeterminate = false; + } + const parent = node.parent; + if (!parent || parent.level === 0) return; + if (!node.store.checkStrictly) reInitChecked(parent); + }; + const getPropertyFromData = function(node, prop) { + const props = node.store.props; + const data = node.data || {}; + const config = props[prop]; + if (isFunction$1(config)) return config(data, node); + else if (isString(config)) return data[config]; + else if (isUndefined(config)) { + const dataProp = data[prop]; + return isUndefined(dataProp) ? "" : dataProp; + } + }; + const setCanFocus = function(childNodes, focus) { + childNodes.forEach((item) => { + item.canFocus = focus; + setCanFocus(item.childNodes, focus); + }); + }; + let nodeIdSeed = 0; + var Node$1 = class Node$1 { + constructor(options) { + this.isLeafByUser = void 0; + this.isLeaf = void 0; + this.isEffectivelyChecked = false; + this.id = nodeIdSeed++; + this.text = null; + this.checked = false; + this.indeterminate = false; + this.data = null; + this.expanded = false; + this.parent = null; + this.visible = true; + this.isCurrent = false; + this.canFocus = false; + for (const name in options) if (hasOwn(options, name)) this[name] = options[name]; + this.level = 0; + this.loaded = false; + this.childNodes = []; + this.loading = false; + if (this.parent) this.level = this.parent.level + 1; + } + initialize() { + const store = this.store; + if (!store) throw new Error("[Node]store is required!"); + store.registerNode(this); + const props = store.props; + if (props && typeof props.isLeaf !== "undefined") { + const isLeaf = getPropertyFromData(this, "isLeaf"); + if (isBoolean(isLeaf)) this.isLeafByUser = isLeaf; + } + if (store.lazy !== true && this.data) { + this.setData(this.data); + if (store.defaultExpandAll) { + this.expanded = true; + this.canFocus = true; + } + } else if (this.level > 0 && store.lazy && store.defaultExpandAll && !this.isLeafByUser) this.expand(); + if (!isArray$1(this.data)) markNodeData(this, this.data); + if (!this.data) return; + const defaultExpandedKeys = store.defaultExpandedKeys; + const key = store.key; + if (key && !isNil(this.key) && defaultExpandedKeys && defaultExpandedKeys.includes(this.key)) this.expand(null, store.autoExpandParent); + if (key && store.currentNodeKey !== void 0 && this.key === store.currentNodeKey) { + store.currentNode && (store.currentNode.isCurrent = false); + store.currentNode = this; + store.currentNode.isCurrent = true; + } + if (store.lazy) store._initDefaultCheckedNode(this); + this.updateLeafState(); + if (this.level === 1 || this.parent?.expanded === true) this.canFocus = true; + } + setData(data) { + if (!isArray$1(data)) markNodeData(this, data); + this.data = data; + this.childNodes = []; + let children; + if (this.level === 0 && isArray$1(this.data)) children = this.data; + else children = getPropertyFromData(this, "children") || []; + for (let i = 0, j = children.length; i < j; i++) this.insertChild({ data: children[i] }); + } + get label() { + return getPropertyFromData(this, "label"); + } + get key() { + const nodeKey = this.store.key; + if (this.data) return this.data[nodeKey]; + return null; + } + get disabled() { + return getPropertyFromData(this, "disabled"); + } + get nextSibling() { + const parent = this.parent; + if (parent) { + const index = parent.childNodes.indexOf(this); + if (index > -1) return parent.childNodes[index + 1]; + } + return null; + } + get previousSibling() { + const parent = this.parent; + if (parent) { + const index = parent.childNodes.indexOf(this); + if (index > -1) return index > 0 ? parent.childNodes[index - 1] : null; + } + return null; + } + contains(target, deep = true) { + return (this.childNodes || []).some((child) => child === target || deep && child.contains(target)); + } + remove() { + const parent = this.parent; + if (parent) parent.removeChild(this); + } + insertChild(child, index, batch) { + if (!child) throw new Error("InsertChild error: child is required."); + if (!(child instanceof Node$1)) { + if (!batch) { + const children = this.getChildren(true); + if (!children?.includes(child.data)) if (isUndefined(index) || index < 0) children?.push(child.data); + else children?.splice(index, 0, child.data); + } + Object.assign(child, { + parent: this, + store: this.store + }); + child = (0, vue.reactive)(new Node$1(child)); + if (child instanceof Node$1) child.initialize(); + } + child.level = this.level + 1; + if (isUndefined(index) || index < 0) this.childNodes.push(child); + else this.childNodes.splice(index, 0, child); + this.updateLeafState(); + } + insertBefore(child, ref) { + let index; + if (ref) index = this.childNodes.indexOf(ref); + this.insertChild(child, index); + } + insertAfter(child, ref) { + let index; + if (ref) { + index = this.childNodes.indexOf(ref); + if (index !== -1) index += 1; + } + this.insertChild(child, index); + } + removeChild(child) { + const children = this.getChildren() || []; + const dataIndex = children.indexOf(child.data); + if (dataIndex > -1) children.splice(dataIndex, 1); + const index = this.childNodes.indexOf(child); + if (index > -1) { + this.store && this.store.deregisterNode(child); + child.parent = null; + this.childNodes.splice(index, 1); + } + this.updateLeafState(); + } + removeChildByData(data) { + const targetNode = this.childNodes.find((child) => child.data === data); + if (targetNode) this.removeChild(targetNode); + } + expand(callback, expandParent) { + const done = () => { + if (expandParent) { + let parent = this.parent; + while (parent && parent.level > 0) { + parent.expanded = true; + parent = parent.parent; + } + } + this.expanded = true; + if (callback) callback(); + setCanFocus(this.childNodes, true); + }; + if (this.shouldLoadData()) this.loadData((data) => { + if (isArray$1(data)) { + if (this.checked) this.setChecked(true, true); + else if (!this.store.checkStrictly) reInitChecked(this); + done(); + } + }); + else done(); + } + doCreateChildren(array, defaultProps = {}) { + array.forEach((item) => { + this.insertChild(Object.assign({ data: item }, defaultProps), void 0, true); + }); + } + collapse() { + this.expanded = false; + setCanFocus(this.childNodes, false); + } + shouldLoadData() { + return Boolean(this.store.lazy === true && this.store.load && !this.loaded); + } + updateLeafState() { + if (this.store.lazy === true && this.loaded !== true && typeof this.isLeafByUser !== "undefined") { + this.isLeaf = this.isLeafByUser; + this.isEffectivelyChecked = this.isLeaf && this.disabled; + return; + } + const childNodes = this.childNodes; + if (!this.store.lazy || this.store.lazy === true && this.loaded === true) { + this.isLeaf = !childNodes || childNodes.length === 0; + this.isEffectivelyChecked = this.isLeaf && this.disabled; + return; + } + this.isLeaf = false; + } + setChecked(value, deep, recursion, passValue) { + this.indeterminate = value === "half"; + this.checked = value === true; + this.isEffectivelyChecked = !this.childNodes.length && (this.disabled || this.checked); + if (this.store.checkStrictly) return; + if (!(this.shouldLoadData() && !this.store.checkDescendants)) { + const handleDescendants = () => { + if (deep) { + const childNodes = this.childNodes; + for (let i = 0, j = childNodes.length; i < j; i++) { + const child = childNodes[i]; + passValue = passValue || value !== false; + const isCheck = child.disabled && child.isLeaf ? child.checked : passValue; + child.setChecked(isCheck, deep, true, passValue); + } + const { half, all, isEffectivelyChecked } = getChildState(childNodes); + if (!all) { + this.checked = all; + this.indeterminate = half; + } + this.isEffectivelyChecked = !this.childNodes.length ? this.disabled || this.checked : isEffectivelyChecked; + } + }; + if (this.shouldLoadData()) { + this.loadData(() => { + handleDescendants(); + reInitChecked(this); + }, { checked: value !== false }); + return; + } else handleDescendants(); + } + const parent = this.parent; + if (!parent || parent.level === 0) return; + if (!recursion) reInitChecked(parent); + } + getChildren(forceInit = false) { + if (this.level === 0) return this.data; + const data = this.data; + if (!data) return null; + const props = this.store.props; + let children = "children"; + if (props) children = props.children || "children"; + if (isUndefined(data[children])) data[children] = null; + if (forceInit && !data[children]) data[children] = []; + return data[children]; + } + updateChildren() { + const newData = this.getChildren() || []; + const oldData = this.childNodes.map((node) => node.data); + const newDataMap = {}; + const newNodes = []; + newData.forEach((item, index) => { + const key = item[NODE_KEY]; + if (!!key && oldData.some((data) => data?.[NODE_KEY] === key)) newDataMap[key] = { + index, + data: item + }; + else newNodes.push({ + index, + data: item + }); + }); + if (!this.store.lazy) oldData.forEach((item) => { + if (!newDataMap[item?.[NODE_KEY]]) this.removeChildByData(item); + }); + newNodes.forEach(({ index, data }) => { + this.insertChild({ data }, index); + }); + this.updateLeafState(); + } + loadData(callback, defaultProps = {}) { + if (this.store.lazy === true && this.store.load && !this.loaded && (!this.loading || Object.keys(defaultProps).length)) { + this.loading = true; + const resolve = (children) => { + this.childNodes = []; + this.doCreateChildren(children, defaultProps); + this.loaded = true; + this.loading = false; + this.updateLeafState(); + if (callback) callback.call(this, children); + }; + const reject = () => { + this.loading = false; + }; + this.store.load(this, resolve, reject); + } else if (callback) callback.call(this); + } + eachNode(callback) { + const arr = [this]; + while (arr.length) { + const node = arr.shift(); + arr.unshift(...node.childNodes); + callback(node); + } + } + reInitChecked() { + if (this.store.checkStrictly) return; + reInitChecked(this); + } + }; + +//#endregion +//#region ../../packages/components/tree/src/model/tree-store.ts + var TreeStore = class { + constructor(options) { + this.lazy = false; + this.checkStrictly = false; + this.autoExpandParent = false; + this.defaultExpandAll = false; + this.checkDescendants = false; + this.currentNode = null; + this.currentNodeKey = null; + for (const option in options) if (hasOwn(options, option)) this[option] = options[option]; + this.nodesMap = {}; + } + initialize() { + this.root = new Node$1({ + data: this.data, + store: this + }); + this.root.initialize(); + if (this.lazy && this.load) { + const loadFn = this.load; + loadFn(this.root, (data) => { + this.root.doCreateChildren(data); + this._initDefaultCheckedNodes(); + }, NOOP); + } else this._initDefaultCheckedNodes(); + } + filter(value) { + const filterNodeMethod = this.filterNodeMethod; + const lazy = this.lazy; + const traverse = async function(node) { + const childNodes = node.root ? node.root.childNodes : node.childNodes; + for (const [index, child] of childNodes.entries()) { + child.visible = !!filterNodeMethod?.call(child, value, child.data, child); + if (index % 80 === 0 && index > 0) await (0, vue.nextTick)(); + await traverse(child); + } + if (!node.visible && childNodes.length) { + let allHidden = true; + allHidden = !childNodes.some((child) => child.visible); + if (node.root) node.root.visible = allHidden === false; + else node.visible = allHidden === false; + } + if (!value) return; + if (node.visible && !node.isLeaf) { + if (!lazy || node.loaded) node.expand(); + } + }; + traverse(this); + } + setData(newVal) { + if (newVal !== this.root.data) { + this.nodesMap = {}; + this.root.setData(newVal); + this._initDefaultCheckedNodes(); + this.setCurrentNodeKey(this.currentNodeKey); + } else this.root.updateChildren(); + } + getNode(data) { + if (data instanceof Node$1) return data; + const key = isObject$1(data) ? getNodeKey(this.key, data) : data; + return this.nodesMap[key] || null; + } + insertBefore(data, refData) { + const refNode = this.getNode(refData); + refNode.parent?.insertBefore({ data }, refNode); + } + insertAfter(data, refData) { + const refNode = this.getNode(refData); + refNode.parent?.insertAfter({ data }, refNode); + } + remove(data) { + const node = this.getNode(data); + if (node && node.parent) { + if (node === this.currentNode) this.currentNode = null; + node.parent.removeChild(node); + } + } + append(data, parentData) { + const parentNode = !isPropAbsent(parentData) ? this.getNode(parentData) : this.root; + if (parentNode) parentNode.insertChild({ data }); + } + _initDefaultCheckedNodes() { + const defaultCheckedKeys = this.defaultCheckedKeys || []; + const nodesMap = this.nodesMap; + defaultCheckedKeys.forEach((checkedKey) => { + const node = nodesMap[checkedKey]; + if (node) node.setChecked(true, !this.checkStrictly); + }); + } + _initDefaultCheckedNode(node) { + const defaultCheckedKeys = this.defaultCheckedKeys || []; + if (!isNil(node.key) && defaultCheckedKeys.includes(node.key)) node.setChecked(true, !this.checkStrictly); + } + setDefaultCheckedKey(newVal) { + if (newVal !== this.defaultCheckedKeys) { + this.defaultCheckedKeys = newVal; + this._initDefaultCheckedNodes(); + } + } + registerNode(node) { + const key = this.key; + if (!node || !node.data) return; + if (!key) this.nodesMap[node.id] = node; + else { + const nodeKey = node.key; + if (!isNil(nodeKey)) this.nodesMap[nodeKey] = node; + } + } + deregisterNode(node) { + if (!this.key || !node || !node.data) return; + node.childNodes.forEach((child) => { + this.deregisterNode(child); + }); + delete this.nodesMap[node.key]; + } + getCheckedNodes(leafOnly = false, includeHalfChecked = false) { + const checkedNodes = []; + const traverse = function(node) { + (node.root ? node.root.childNodes : node.childNodes).forEach((child) => { + if ((child.checked || includeHalfChecked && child.indeterminate) && (!leafOnly || leafOnly && child.isLeaf)) checkedNodes.push(child.data); + traverse(child); + }); + }; + traverse(this); + return checkedNodes; + } + getCheckedKeys(leafOnly = false) { + return this.getCheckedNodes(leafOnly).map((data) => (data || {})[this.key]); + } + getHalfCheckedNodes() { + const nodes = []; + const traverse = function(node) { + (node.root ? node.root.childNodes : node.childNodes).forEach((child) => { + if (child.indeterminate) nodes.push(child.data); + traverse(child); + }); + }; + traverse(this); + return nodes; + } + getHalfCheckedKeys() { + return this.getHalfCheckedNodes().map((data) => (data || {})[this.key]); + } + _getAllNodes() { + const allNodes = []; + const nodesMap = this.nodesMap; + for (const nodeKey in nodesMap) if (hasOwn(nodesMap, nodeKey)) allNodes.push(nodesMap[nodeKey]); + return allNodes; + } + updateChildren(key, data) { + const node = this.nodesMap[key]; + if (!node) return; + const childNodes = node.childNodes; + for (let i = childNodes.length - 1; i >= 0; i--) { + const child = childNodes[i]; + this.remove(child.data); + } + for (let i = 0, j = data.length; i < j; i++) { + const child = data[i]; + this.append(child, node.data); + } + } + _setCheckedKeys(key, leafOnly = false, checkedKeys) { + const allNodes = this._getAllNodes().sort((a, b) => a.level - b.level); + const cache = Object.create(null); + const keys = Object.keys(checkedKeys); + allNodes.forEach((node) => node.setChecked(false, false)); + const cacheCheckedChild = (node) => { + node.childNodes.forEach((child) => { + cache[child.data[key]] = true; + if (child.childNodes?.length) cacheCheckedChild(child); + }); + }; + for (let i = 0, j = allNodes.length; i < j; i++) { + const node = allNodes[i]; + const nodeKey = node.data[key].toString(); + if (!keys.includes(nodeKey)) { + if (node.checked && !cache[nodeKey]) node.setChecked(false, false); + continue; + } + if (node.childNodes.length) cacheCheckedChild(node); + if (node.isLeaf || this.checkStrictly) { + node.setChecked(true, false); + continue; + } + node.setChecked(true, true); + if (leafOnly) { + node.setChecked(false, false, true); + const traverse = function(node) { + node.childNodes.forEach((child) => { + if (!child.isLeaf) child.setChecked(false, false, true); + traverse(child); + }); + node.reInitChecked(); + }; + traverse(node); + } + } + } + setCheckedNodes(array, leafOnly = false) { + const key = this.key; + const checkedKeys = {}; + array.forEach((item) => { + checkedKeys[(item || {})[key]] = true; + }); + this._setCheckedKeys(key, leafOnly, checkedKeys); + } + setCheckedKeys(keys, leafOnly = false) { + this.defaultCheckedKeys = keys; + const key = this.key; + const checkedKeys = {}; + keys.forEach((key) => { + checkedKeys[key] = true; + }); + this._setCheckedKeys(key, leafOnly, checkedKeys); + } + setDefaultExpandedKeys(keys) { + keys = keys || []; + this.defaultExpandedKeys = keys; + keys.forEach((key) => { + const node = this.getNode(key); + if (node) node.expand(null, this.autoExpandParent); + }); + } + setChecked(data, checked, deep) { + const node = this.getNode(data); + if (node) node.setChecked(!!checked, deep); + } + getCurrentNode() { + return this.currentNode; + } + setCurrentNode(currentNode) { + const prevCurrentNode = this.currentNode; + if (prevCurrentNode) prevCurrentNode.isCurrent = false; + this.currentNode = currentNode; + this.currentNode.isCurrent = true; + } + setUserCurrentNode(node, shouldAutoExpandParent = true) { + const key = node[this.key]; + const currNode = this.nodesMap[key]; + this.setCurrentNode(currNode); + if (shouldAutoExpandParent && this.currentNode && this.currentNode.level > 1) this.currentNode.parent?.expand(null, true); + } + setCurrentNodeKey(key, shouldAutoExpandParent = true) { + this.currentNodeKey = key; + if (isPropAbsent(key)) { + this.currentNode && (this.currentNode.isCurrent = false); + this.currentNode = null; + return; + } + const node = this.getNode(key); + if (node) { + this.setCurrentNode(node); + if (shouldAutoExpandParent && this.currentNode && this.currentNode.level > 1) this.currentNode.parent?.expand(null, true); + } + } + }; + +//#endregion +//#region ../../packages/components/tree/src/tokens.ts + const ROOT_TREE_INJECTION_KEY = "RootTree"; + const NODE_INSTANCE_INJECTION_KEY = "NodeInstance"; + const TREE_NODE_MAP_INJECTION_KEY = "TreeNodeMap"; + +//#endregion +//#region ../../packages/components/tree/src/tree-node-content.vue?vue&type=script&lang.ts + var tree_node_content_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElTreeNodeContent", + props: { + node: { + type: Object, + required: true + }, + renderContent: Function + }, + setup(props) { + const ns = useNamespace("tree"); + const nodeInstance = (0, vue.inject)(NODE_INSTANCE_INJECTION_KEY); + const tree = (0, vue.inject)(ROOT_TREE_INJECTION_KEY); + return () => { + const node = props.node; + const { data, store } = node; + return props.renderContent ? props.renderContent(vue.h, { + _self: nodeInstance, + node, + data, + store + }) : (0, vue.renderSlot)(tree.ctx.slots, "default", { + node, + data + }, () => [(0, vue.h)(ElText, { + tag: "span", + truncated: true, + class: ns.be("node", "label") + }, () => [node.label])]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tree/src/tree-node-content.vue + var tree_node_content_default$1 = tree_node_content_vue_vue_type_script_lang_default; + +//#endregion +//#region ../../packages/components/tree/src/model/useNodeExpandEventBroadcast.ts + function useNodeExpandEventBroadcast(props) { + const parentNodeMap = (0, vue.inject)(TREE_NODE_MAP_INJECTION_KEY, null); + let currentNodeMap = { + treeNodeExpand: (node) => { + if (props.node !== node) props.node?.collapse(); + }, + children: /* @__PURE__ */ new Set() + }; + if (parentNodeMap) parentNodeMap.children.add(currentNodeMap); + (0, vue.onBeforeUnmount)(() => { + if (parentNodeMap) parentNodeMap.children.delete(currentNodeMap); + currentNodeMap = null; + }); + (0, vue.provide)(TREE_NODE_MAP_INJECTION_KEY, currentNodeMap); + return { broadcastExpanded: (node) => { + if (!props.accordion) return; + for (const childNode of currentNodeMap.children) childNode.treeNodeExpand(node); + } }; + } + +//#endregion +//#region ../../packages/components/tree/src/model/useDragNode.ts + const dragEventsKey = Symbol("dragEvents"); + function useDragNodeHandler({ props, ctx, el$, dropIndicator$, store }) { + const ns = useNamespace("tree"); + const dragState = (0, vue.ref)({ + showDropIndicator: false, + draggingNode: null, + dropNode: null, + allowDrop: true, + dropType: null + }); + const treeNodeDragStart = ({ event, treeNode }) => { + if (!event.dataTransfer) return; + if (isFunction$1(props.allowDrag) && !props.allowDrag(treeNode.node)) { + event.preventDefault(); + return false; + } + event.dataTransfer.effectAllowed = "move"; + try { + event.dataTransfer.setData("text/plain", ""); + } catch {} + dragState.value.draggingNode = treeNode; + ctx.emit("node-drag-start", treeNode.node, event); + }; + const treeNodeDragOver = ({ event, treeNode }) => { + if (!event.dataTransfer) return; + const dropNode = treeNode; + const oldDropNode = dragState.value.dropNode; + if (oldDropNode && oldDropNode.node.id !== dropNode.node.id) removeClass(oldDropNode.$el, ns.is("drop-inner")); + const draggingNode = dragState.value.draggingNode; + if (!draggingNode || !dropNode) return; + let dropPrev = true; + let dropInner = true; + let dropNext = true; + let userAllowDropInner = true; + if (isFunction$1(props.allowDrop)) { + dropPrev = props.allowDrop(draggingNode.node, dropNode.node, "prev"); + userAllowDropInner = dropInner = props.allowDrop(draggingNode.node, dropNode.node, "inner"); + dropNext = props.allowDrop(draggingNode.node, dropNode.node, "next"); + } + event.dataTransfer.dropEffect = dropInner || dropPrev || dropNext ? "move" : "none"; + if ((dropPrev || dropInner || dropNext) && oldDropNode?.node.id !== dropNode.node.id) { + if (oldDropNode) ctx.emit("node-drag-leave", draggingNode.node, oldDropNode.node, event); + ctx.emit("node-drag-enter", draggingNode.node, dropNode.node, event); + } + if (dropPrev || dropInner || dropNext) dragState.value.dropNode = dropNode; + else dragState.value.dropNode = null; + if (dropNode.node.nextSibling === draggingNode.node) dropNext = false; + if (dropNode.node.previousSibling === draggingNode.node) dropPrev = false; + if (dropNode.node.contains(draggingNode.node, false)) dropInner = false; + if (draggingNode.node === dropNode.node || draggingNode.node.contains(dropNode.node)) { + dropPrev = false; + dropInner = false; + dropNext = false; + } + const dropEl = dropNode.$el; + const targetPosition = dropEl.querySelector(`.${ns.be("node", "content")}`).getBoundingClientRect(); + const treePosition = el$.value.getBoundingClientRect(); + const treeScrollTop = el$.value.scrollTop; + let dropType; + const prevPercent = dropPrev ? dropInner ? .25 : dropNext ? .45 : 1 : Number.NEGATIVE_INFINITY; + const nextPercent = dropNext ? dropInner ? .75 : dropPrev ? .55 : 0 : Number.POSITIVE_INFINITY; + let indicatorTop = -9999; + const distance = event.clientY - targetPosition.top; + if (distance < targetPosition.height * prevPercent) dropType = "before"; + else if (distance > targetPosition.height * nextPercent) dropType = "after"; + else if (dropInner) dropType = "inner"; + else dropType = "none"; + const iconPosition = dropEl.querySelector(`.${ns.be("node", "expand-icon")}`).getBoundingClientRect(); + const dropIndicator = dropIndicator$.value; + if (dropType === "before") indicatorTop = iconPosition.top - treePosition.top + treeScrollTop; + else if (dropType === "after") indicatorTop = iconPosition.bottom - treePosition.top + treeScrollTop; + dropIndicator.style.top = `${indicatorTop}px`; + dropIndicator.style.left = `${iconPosition.right - treePosition.left}px`; + if (dropType === "inner") addClass(dropEl, ns.is("drop-inner")); + else removeClass(dropEl, ns.is("drop-inner")); + dragState.value.showDropIndicator = dropType === "before" || dropType === "after"; + dragState.value.allowDrop = dragState.value.showDropIndicator || userAllowDropInner; + dragState.value.dropType = dropType; + ctx.emit("node-drag-over", draggingNode.node, dropNode.node, event); + }; + const treeNodeDragEnd = (event) => { + const { draggingNode, dropType, dropNode } = dragState.value; + event.preventDefault(); + if (event.dataTransfer) event.dataTransfer.dropEffect = "move"; + if (draggingNode?.node.data && dropNode) { + const draggingNodeCopy = { data: draggingNode.node.data }; + if (dropType !== "none") draggingNode.node.remove(); + if (dropType === "before") dropNode.node.parent?.insertBefore(draggingNodeCopy, dropNode.node); + else if (dropType === "after") dropNode.node.parent?.insertAfter(draggingNodeCopy, dropNode.node); + else if (dropType === "inner") dropNode.node.insertChild(draggingNodeCopy); + if (dropType !== "none") { + store.value.registerNode(draggingNodeCopy); + if (store.value.key) draggingNode.node.eachNode((node) => { + store.value.nodesMap[node.data[store.value.key]]?.setChecked(node.checked, !store.value.checkStrictly); + }); + } + removeClass(dropNode.$el, ns.is("drop-inner")); + ctx.emit("node-drag-end", draggingNode.node, dropNode.node, dropType, event); + if (dropType !== "none") ctx.emit("node-drop", draggingNode.node, dropNode.node, dropType, event); + } + if (draggingNode && !dropNode) ctx.emit("node-drag-end", draggingNode.node, null, dropType, event); + dragState.value.showDropIndicator = false; + dragState.value.draggingNode = null; + dragState.value.dropNode = null; + dragState.value.allowDrop = true; + }; + (0, vue.provide)(dragEventsKey, { + treeNodeDragStart, + treeNodeDragOver, + treeNodeDragEnd + }); + return { dragState }; + } + +//#endregion +//#region ../../packages/components/tree/src/tree-node.vue?vue&type=script&lang.ts + var tree_node_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElTreeNode", + components: { + ElCollapseTransition, + ElCheckbox, + NodeContent: tree_node_content_default$1, + ElIcon, + Loading: loading_default + }, + props: { + node: { + type: Node$1, + default: () => ({}) + }, + props: { + type: Object, + default: () => ({}) + }, + accordion: Boolean, + renderContent: Function, + renderAfterExpand: Boolean, + showCheckbox: Boolean + }, + emits: ["node-expand"], + setup(props, ctx) { + const ns = useNamespace("tree"); + const { broadcastExpanded } = useNodeExpandEventBroadcast(props); + const tree = (0, vue.inject)(ROOT_TREE_INJECTION_KEY); + const expanded = (0, vue.ref)(false); + const childNodeRendered = (0, vue.ref)(false); + const oldChecked = (0, vue.ref)(); + const oldIndeterminate = (0, vue.ref)(); + const node$ = (0, vue.ref)(); + const dragEvents = (0, vue.inject)(dragEventsKey); + const instance = (0, vue.getCurrentInstance)(); + (0, vue.provide)(NODE_INSTANCE_INJECTION_KEY, instance); + if (!tree) /* @__PURE__ */ debugWarn("Tree", "Can not find node's tree."); + if (props.node.expanded) { + expanded.value = true; + childNodeRendered.value = true; + } + const childrenKey = tree.props.props["children"] || "children"; + (0, vue.watch)(() => { + const children = props.node.data?.[childrenKey]; + return children && [...children]; + }, () => { + props.node.updateChildren(); + }); + (0, vue.watch)(() => props.node.indeterminate, (val) => { + handleSelectChange(props.node.checked, val); + }); + (0, vue.watch)(() => props.node.checked, (val) => { + handleSelectChange(val, props.node.indeterminate); + }); + (0, vue.watch)(() => props.node.childNodes.length, () => props.node.reInitChecked()); + (0, vue.watch)(() => props.node.expanded, (val) => { + (0, vue.nextTick)(() => expanded.value = val); + if (val) childNodeRendered.value = true; + }); + const getNodeKey$2 = (node) => { + return tree.props.nodeKey ? getNodeKey(tree.props.nodeKey, node.data) : node.id; + }; + const getNodeClass = (node) => { + const nodeClassFunc = props.props.class; + if (!nodeClassFunc) return {}; + let className; + if (isFunction$1(nodeClassFunc)) { + const { data } = node; + className = nodeClassFunc(data, node); + } else className = nodeClassFunc; + if (isString(className)) return { [className]: true }; + else return className; + }; + const handleSelectChange = (checked, indeterminate) => { + if (oldChecked.value !== checked || oldIndeterminate.value !== indeterminate) tree.ctx.emit("check-change", props.node.data, checked, indeterminate); + oldChecked.value = checked; + oldIndeterminate.value = indeterminate; + }; + const handleClick = (e) => { + handleCurrentChange(tree.store, tree.ctx.emit, () => { + if (tree?.props?.nodeKey) { + const curNodeKey = getNodeKey$2(props.node); + tree.store.value.setCurrentNodeKey(curNodeKey); + } else tree.store.value.setCurrentNode(props.node); + }); + tree.currentNode.value = props.node; + if (tree.props.expandOnClickNode) handleExpandIconClick(); + if ((tree.props.checkOnClickNode || props.node.isLeaf && tree.props.checkOnClickLeaf && props.showCheckbox) && !props.node.disabled) handleCheckChange(!props.node.checked); + tree.ctx.emit("node-click", props.node.data, props.node, instance, e); + }; + const handleContextMenu = (event) => { + if (tree.instance.vnode.props?.["onNodeContextmenu"]) { + event.stopPropagation(); + event.preventDefault(); + } + tree.ctx.emit("node-contextmenu", event, props.node.data, props.node, instance); + }; + const handleExpandIconClick = () => { + if (props.node.isLeaf) return; + if (expanded.value) { + tree.ctx.emit("node-collapse", props.node.data, props.node, instance); + props.node.collapse(); + } else props.node.expand(() => { + ctx.emit("node-expand", props.node.data, props.node, instance); + }); + }; + const handleCheckChange = (value) => { + const checkStrictly = tree?.props.checkStrictly; + const childNodes = props.node.childNodes; + if (!checkStrictly && childNodes.length) value = childNodes.some((node) => !node.isEffectivelyChecked); + props.node.setChecked(value, !checkStrictly); + (0, vue.nextTick)(() => { + const store = tree.store.value; + tree.ctx.emit("check", props.node.data, { + checkedNodes: store.getCheckedNodes(), + checkedKeys: store.getCheckedKeys(), + halfCheckedNodes: store.getHalfCheckedNodes(), + halfCheckedKeys: store.getHalfCheckedKeys() + }); + }); + }; + const handleChildNodeExpand = (nodeData, node, instance) => { + broadcastExpanded(node); + tree.ctx.emit("node-expand", nodeData, node, instance); + }; + const handleDragStart = (event) => { + if (!tree.props.draggable) return; + dragEvents.treeNodeDragStart({ + event, + treeNode: props + }); + }; + const handleDragOver = (event) => { + event.preventDefault(); + if (!tree.props.draggable) return; + dragEvents.treeNodeDragOver({ + event, + treeNode: { + $el: node$.value, + node: props.node + } + }); + }; + const handleDrop = (event) => { + event.preventDefault(); + }; + const handleDragEnd = (event) => { + if (!tree.props.draggable) return; + dragEvents.treeNodeDragEnd(event); + }; + return { + ns, + node$, + tree, + expanded, + childNodeRendered, + oldChecked, + oldIndeterminate, + getNodeKey: getNodeKey$2, + getNodeClass, + handleSelectChange, + handleClick, + handleContextMenu, + handleExpandIconClick, + handleCheckChange, + handleChildNodeExpand, + handleDragStart, + handleDragOver, + handleDrop, + handleDragEnd, + CaretRight: caret_right_default + }; + } + }); + +//#endregion +//#region ../../packages/components/tree/src/tree-node.vue + const _hoisted_1$12 = [ + "aria-expanded", + "aria-disabled", + "aria-checked", + "draggable", + "data-key" + ]; + const _hoisted_2$7 = ["aria-expanded"]; + function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + const _component_el_checkbox = (0, vue.resolveComponent)("el-checkbox"); + const _component_loading = (0, vue.resolveComponent)("loading"); + const _component_node_content = (0, vue.resolveComponent)("node-content"); + const _component_el_tree_node = (0, vue.resolveComponent)("el-tree-node"); + const _component_el_collapse_transition = (0, vue.resolveComponent)("el-collapse-transition"); + return (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref: "node$", + class: (0, vue.normalizeClass)([ + _ctx.ns.b("node"), + _ctx.ns.is("expanded", _ctx.expanded), + _ctx.ns.is("current", _ctx.node.isCurrent), + _ctx.ns.is("hidden", !_ctx.node.visible), + _ctx.ns.is("focusable", !_ctx.node.disabled), + _ctx.ns.is("checked", !_ctx.node.disabled && _ctx.node.checked), + _ctx.getNodeClass(_ctx.node) + ]), + role: "treeitem", + tabindex: "-1", + "aria-expanded": _ctx.expanded, + "aria-disabled": _ctx.node.disabled, + "aria-checked": _ctx.node.checked, + draggable: _ctx.tree.props.draggable, + "data-key": _ctx.getNodeKey(_ctx.node), + onClick: _cache[2] || (_cache[2] = (0, vue.withModifiers)((...args) => _ctx.handleClick && _ctx.handleClick(...args), ["stop"])), + onContextmenu: _cache[3] || (_cache[3] = (...args) => _ctx.handleContextMenu && _ctx.handleContextMenu(...args)), + onDragstart: _cache[4] || (_cache[4] = (0, vue.withModifiers)((...args) => _ctx.handleDragStart && _ctx.handleDragStart(...args), ["stop"])), + onDragover: _cache[5] || (_cache[5] = (0, vue.withModifiers)((...args) => _ctx.handleDragOver && _ctx.handleDragOver(...args), ["stop"])), + onDragend: _cache[6] || (_cache[6] = (0, vue.withModifiers)((...args) => _ctx.handleDragEnd && _ctx.handleDragEnd(...args), ["stop"])), + onDrop: _cache[7] || (_cache[7] = (0, vue.withModifiers)((...args) => _ctx.handleDrop && _ctx.handleDrop(...args), ["stop"])) + }, [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)(_ctx.ns.be("node", "content")), + style: (0, vue.normalizeStyle)({ paddingLeft: (_ctx.node.level - 1) * _ctx.tree.props.indent + "px" }) + }, [ + _ctx.tree.props.icon || _ctx.CaretRight ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 0, + class: (0, vue.normalizeClass)([ + _ctx.ns.be("node", "expand-icon"), + _ctx.ns.is("leaf", _ctx.node.isLeaf), + { expanded: !_ctx.node.isLeaf && _ctx.expanded } + ]), + onClick: (0, vue.withModifiers)(_ctx.handleExpandIconClick, ["stop"]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.tree.props.icon || _ctx.CaretRight)))]), + _: 1 + }, 8, ["class", "onClick"])) : (0, vue.createCommentVNode)("v-if", true), + _ctx.showCheckbox ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_checkbox, { + key: 1, + "model-value": _ctx.node.checked, + indeterminate: _ctx.node.indeterminate, + disabled: !!_ctx.node.disabled, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])), + onChange: _ctx.handleCheckChange + }, null, 8, [ + "model-value", + "indeterminate", + "disabled", + "onChange" + ])) : (0, vue.createCommentVNode)("v-if", true), + _ctx.node.loading ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 2, + class: (0, vue.normalizeClass)([_ctx.ns.be("node", "loading-icon"), _ctx.ns.is("loading")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)(_component_loading)]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createVNode)(_component_node_content, { + node: _ctx.node, + "render-content": _ctx.renderContent + }, null, 8, ["node", "render-content"]) + ], 6), (0, vue.createVNode)(_component_el_collapse_transition, null, { + default: (0, vue.withCtx)(() => [!_ctx.renderAfterExpand || _ctx.childNodeRendered ? (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)(_ctx.ns.be("node", "children")), + role: "group", + "aria-expanded": _ctx.expanded, + onClick: _cache[1] || (_cache[1] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.node.childNodes, (child) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_tree_node, { + key: _ctx.getNodeKey(child), + "render-content": _ctx.renderContent, + "render-after-expand": _ctx.renderAfterExpand, + "show-checkbox": _ctx.showCheckbox, + node: child, + accordion: _ctx.accordion, + props: _ctx.props, + onNodeExpand: _ctx.handleChildNodeExpand + }, null, 8, [ + "render-content", + "render-after-expand", + "show-checkbox", + "node", + "accordion", + "props", + "onNodeExpand" + ]); + }), 128))], 10, _hoisted_2$7)), [[vue.vShow, _ctx.expanded]]) : (0, vue.createCommentVNode)("v-if", true)]), + _: 1 + })], 42, _hoisted_1$12)), [[vue.vShow, _ctx.node.visible]]); + } + var tree_node_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(tree_node_vue_vue_type_script_lang_default, [["render", _sfc_render$2]]); + +//#endregion +//#region ../../packages/components/tree/src/model/useKeydown.ts + function useKeydown({ el$ }, store) { + const ns = useNamespace("tree"); + (0, vue.onMounted)(() => { + initTabIndex(); + }); + (0, vue.onUpdated)(() => { + el$.value?.querySelectorAll("input[type=checkbox]").forEach((checkbox) => { + checkbox.setAttribute("tabindex", "-1"); + }); + }); + function canNodeFocus(treeItems, nextIndex) { + const currentNode = store.value.getNode(treeItems[nextIndex].dataset.key); + return currentNode.canFocus && currentNode.visible && (currentNode.parent?.expanded || currentNode.parent?.level === 0); + } + const handleKeydown = (ev) => { + const currentItem = ev.target; + if (!currentItem.className.includes(ns.b("node"))) return; + const code = getEventCode(ev); + const treeItems = Array.from(el$.value.querySelectorAll(`.${ns.is("focusable")}[role=treeitem]`)); + const currentIndex = treeItems.indexOf(currentItem); + let nextIndex; + if ([EVENT_CODE.up, EVENT_CODE.down].includes(code)) { + ev.preventDefault(); + if (code === EVENT_CODE.up) { + nextIndex = currentIndex === -1 ? 0 : currentIndex !== 0 ? currentIndex - 1 : treeItems.length - 1; + const startIndex = nextIndex; + while (true) { + if (canNodeFocus(treeItems, nextIndex)) break; + nextIndex--; + if (nextIndex === startIndex) { + nextIndex = -1; + break; + } + if (nextIndex < 0) nextIndex = treeItems.length - 1; + } + } else { + nextIndex = currentIndex === -1 ? 0 : currentIndex < treeItems.length - 1 ? currentIndex + 1 : 0; + const startIndex = nextIndex; + while (true) { + if (canNodeFocus(treeItems, nextIndex)) break; + nextIndex++; + if (nextIndex === startIndex) { + nextIndex = -1; + break; + } + if (nextIndex >= treeItems.length) nextIndex = 0; + } + } + nextIndex !== -1 && treeItems[nextIndex].focus(); + } + if ([EVENT_CODE.left, EVENT_CODE.right].includes(code)) { + ev.preventDefault(); + currentItem.click(); + } + const hasInput = currentItem.querySelector("[type=\"checkbox\"]"); + if ([ + EVENT_CODE.enter, + EVENT_CODE.numpadEnter, + EVENT_CODE.space + ].includes(code) && hasInput) { + ev.preventDefault(); + hasInput.click(); + } + }; + useEventListener(el$, "keydown", handleKeydown); + const initTabIndex = () => { + if (!el$.value) return; + const treeItems = Array.from(el$.value.querySelectorAll(`.${ns.is("focusable")}[role=treeitem]`)); + Array.from(el$.value.querySelectorAll("input[type=checkbox]")).forEach((checkbox) => { + checkbox.setAttribute("tabindex", "-1"); + }); + const checkedItem = el$.value.querySelectorAll(`.${ns.is("checked")}[role=treeitem]`); + if (checkedItem.length) { + checkedItem[0].setAttribute("tabindex", "0"); + return; + } + treeItems[0]?.setAttribute("tabindex", "0"); + }; + } + +//#endregion +//#region ../../packages/components/tree/src/tree.ts + const treeProps = buildProps({ + data: { + type: definePropType(Array), + default: () => [] + }, + emptyText: { type: String }, + renderAfterExpand: { + type: Boolean, + default: true + }, + nodeKey: String, + checkStrictly: Boolean, + defaultExpandAll: Boolean, + expandOnClickNode: { + type: Boolean, + default: true + }, + checkOnClickNode: Boolean, + checkOnClickLeaf: { + type: Boolean, + default: true + }, + checkDescendants: Boolean, + autoExpandParent: { + type: Boolean, + default: true + }, + defaultCheckedKeys: { type: Array }, + defaultExpandedKeys: { type: Array }, + currentNodeKey: { type: [String, Number] }, + renderContent: { type: definePropType(Function) }, + showCheckbox: Boolean, + draggable: Boolean, + allowDrag: { type: definePropType(Function) }, + allowDrop: { type: definePropType(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: iconPropType } + }); + const treeEmits = { + "check-change": (data, checked, indeterminate) => data && isBoolean(checked) && isBoolean(indeterminate), + "current-change": (data, node) => true, + "node-click": (data, node, nodeInstance, evt) => data && node && evt instanceof Event, + "node-contextmenu": (evt, data, node, nodeInstance) => evt instanceof Event && data && node, + "node-collapse": (data, node, nodeInstance) => data && node, + "node-expand": (data, node, nodeInstance) => data && node, + check: (data, checkedInfo) => data && checkedInfo, + "node-drag-start": (node, evt) => node && evt, + "node-drag-end": (draggingNode, dropNode, dropType, evt) => draggingNode && evt, + "node-drop": (draggingNode, dropNode, dropType, evt) => draggingNode && dropNode && evt, + "node-drag-leave": (draggingNode, oldDropNode, evt) => draggingNode && oldDropNode && evt, + "node-drag-enter": (draggingNode, dropNode, evt) => draggingNode && dropNode && evt, + "node-drag-over": (draggingNode, dropNode, evt) => draggingNode && dropNode && evt + }; + +//#endregion +//#region ../../packages/components/tree/src/tree.vue?vue&type=script&lang.ts + var tree_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElTree", + components: { ElTreeNode: tree_node_default$1 }, + props: treeProps, + emits: treeEmits, + setup(props, ctx) { + const { t } = useLocale(); + const ns = useNamespace("tree"); + const store = (0, vue.ref)(new TreeStore({ + key: props.nodeKey, + data: props.data, + lazy: props.lazy, + props: props.props, + load: props.load, + currentNodeKey: props.currentNodeKey, + checkStrictly: props.checkStrictly, + checkDescendants: props.checkDescendants, + defaultCheckedKeys: props.defaultCheckedKeys, + defaultExpandedKeys: props.defaultExpandedKeys, + autoExpandParent: props.autoExpandParent, + defaultExpandAll: props.defaultExpandAll, + filterNodeMethod: props.filterNodeMethod + })); + store.value.initialize(); + const root = (0, vue.ref)(store.value.root); + const currentNode = (0, vue.ref)(null); + const el$ = (0, vue.ref)(null); + const dropIndicator$ = (0, vue.ref)(null); + const { broadcastExpanded } = useNodeExpandEventBroadcast(props); + const { dragState } = useDragNodeHandler({ + props, + ctx, + el$, + dropIndicator$, + store + }); + useKeydown({ el$ }, store); + const instance = (0, vue.getCurrentInstance)(); + const isSelectTree = (0, vue.computed)(() => { + let parent = instance?.parent; + while (parent) { + if (parent.type.name === "ElTreeSelect") return true; + parent = parent.parent; + } + return false; + }); + const isEmpty = (0, vue.computed)(() => { + const { childNodes } = root.value; + return (!childNodes || childNodes.length === 0 || childNodes.every(({ visible }) => !visible)) && !isSelectTree.value; + }); + (0, vue.watch)(() => props.currentNodeKey, (newVal) => { + store.value.setCurrentNodeKey(newVal ?? null); + }); + (0, vue.watch)(() => props.defaultCheckedKeys, (newVal, oldVal) => { + if (isEqual$1(newVal, oldVal)) return; + store.value.setDefaultCheckedKey(newVal ?? []); + }); + (0, vue.watch)(() => props.defaultExpandedKeys, (newVal) => { + store.value.setDefaultExpandedKeys(newVal ?? []); + }); + (0, vue.watch)(() => props.data, (newVal) => { + store.value.setData(newVal); + }, { deep: true }); + (0, vue.watch)(() => props.checkStrictly, (newVal) => { + store.value.checkStrictly = newVal; + }); + const filter = (value) => { + if (!props.filterNodeMethod) throw new Error("[Tree] filterNodeMethod is required when filter"); + store.value.filter(value); + }; + const getNodeKey$1 = (node) => { + return props.nodeKey ? getNodeKey(props.nodeKey, node.data) : node.id; + }; + const requireNodeKey = (methodName) => { + if (!props.nodeKey) throw new Error(`[Tree] nodeKey is required in ${methodName}`); + }; + const getNodePath = (data) => { + requireNodeKey("getNodePath"); + const node = store.value.getNode(data); + if (!node) return []; + const path = [node.data]; + let parent = node.parent; + while (parent && parent !== root.value) { + path.push(parent.data); + parent = parent.parent; + } + return path.reverse(); + }; + const getCheckedNodes = (leafOnly, includeHalfChecked) => { + return store.value.getCheckedNodes(leafOnly, includeHalfChecked); + }; + const getCheckedKeys = (leafOnly) => { + return store.value.getCheckedKeys(leafOnly); + }; + const getCurrentNode = () => { + const currentNode = store.value.getCurrentNode(); + return currentNode ? currentNode.data : null; + }; + const getCurrentKey = () => { + requireNodeKey("getCurrentKey"); + const currentNode = getCurrentNode(); + return currentNode ? currentNode[props.nodeKey] : null; + }; + const setCheckedNodes = (nodes, leafOnly) => { + requireNodeKey("setCheckedNodes"); + store.value.setCheckedNodes(nodes, leafOnly); + }; + const setCheckedKeys = (keys, leafOnly) => { + requireNodeKey("setCheckedKeys"); + store.value.setCheckedKeys(keys, leafOnly); + }; + const setChecked = (data, checked, deep) => { + store.value.setChecked(data, checked, deep); + }; + const getHalfCheckedNodes = () => { + return store.value.getHalfCheckedNodes(); + }; + const getHalfCheckedKeys = () => { + return store.value.getHalfCheckedKeys(); + }; + const setCurrentNode = (node, shouldAutoExpandParent = true) => { + requireNodeKey("setCurrentNode"); + handleCurrentChange(store, ctx.emit, () => { + broadcastExpanded(node); + store.value.setUserCurrentNode(node, shouldAutoExpandParent); + }); + }; + const setCurrentKey = (key = null, shouldAutoExpandParent = true) => { + requireNodeKey("setCurrentKey"); + handleCurrentChange(store, ctx.emit, () => { + broadcastExpanded(); + store.value.setCurrentNodeKey(key, shouldAutoExpandParent); + }); + }; + const getNode = (data) => { + return store.value.getNode(data); + }; + const remove = (data) => { + store.value.remove(data); + }; + const append = (data, parentNode) => { + store.value.append(data, parentNode); + }; + const insertBefore = (data, refNode) => { + store.value.insertBefore(data, refNode); + }; + const insertAfter = (data, refNode) => { + store.value.insertAfter(data, refNode); + }; + const handleNodeExpand = (nodeData, node, instance) => { + broadcastExpanded(node); + ctx.emit("node-expand", nodeData, node, instance); + }; + const updateKeyChildren = (key, data) => { + requireNodeKey("updateKeyChildren"); + store.value.updateChildren(key, data); + }; + (0, vue.provide)(ROOT_TREE_INJECTION_KEY, { + ctx, + props, + store, + root, + currentNode, + instance + }); + (0, vue.provide)(formItemContextKey, void 0); + return { + ns, + store, + root, + currentNode, + dragState, + el$, + dropIndicator$, + isEmpty, + filter, + getNodeKey: getNodeKey$1, + getNodePath, + getCheckedNodes, + getCheckedKeys, + getCurrentNode, + getCurrentKey, + setCheckedNodes, + setCheckedKeys, + setChecked, + getHalfCheckedNodes, + getHalfCheckedKeys, + setCurrentNode, + setCurrentKey, + t, + getNode, + remove, + append, + insertBefore, + insertAfter, + handleNodeExpand, + updateKeyChildren + }; + } + }); + +//#endregion +//#region ../../packages/components/tree/src/tree.vue + function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_tree_node = (0, vue.resolveComponent)("el-tree-node"); + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref: "el$", + class: (0, vue.normalizeClass)([ + _ctx.ns.b(), + _ctx.ns.is("dragging", !!_ctx.dragState.draggingNode), + _ctx.ns.is("drop-not-allow", !_ctx.dragState.allowDrop), + _ctx.ns.is("drop-inner", _ctx.dragState.dropType === "inner"), + { [_ctx.ns.m("highlight-current")]: _ctx.highlightCurrent } + ]), + role: "tree" + }, [ + ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(_ctx.root.childNodes, (child) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(_component_el_tree_node, { + key: _ctx.getNodeKey(child), + node: child, + props: _ctx.props, + accordion: _ctx.accordion, + "render-after-expand": _ctx.renderAfterExpand, + "show-checkbox": _ctx.showCheckbox, + "render-content": _ctx.renderContent, + onNodeExpand: _ctx.handleNodeExpand + }, null, 8, [ + "node", + "props", + "accordion", + "render-after-expand", + "show-checkbox", + "render-content", + "onNodeExpand" + ]); + }), 128)), + _ctx.isEmpty ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)(_ctx.ns.e("empty-block")) + }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)(_ctx.ns.e("empty-text")) }, (0, vue.toDisplayString)(_ctx.emptyText ?? _ctx.t("el.tree.emptyText")), 3)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.withDirectives)((0, vue.createElementVNode)("div", { + ref: "dropIndicator$", + class: (0, vue.normalizeClass)(_ctx.ns.e("drop-indicator")) + }, null, 2), [[vue.vShow, _ctx.dragState.showDropIndicator]]) + ], 2); + } + var tree_default$1 = /* @__PURE__ */ _plugin_vue_export_helper_default(tree_vue_vue_type_script_lang_default, [["render", _sfc_render$1]]); + +//#endregion +//#region ../../packages/components/tree/index.ts + const ElTree = withInstall(tree_default$1); + +//#endregion +//#region ../../packages/components/tree-select/src/select.ts + const useSelect = (props, { attrs, emit }, { select, tree, key }) => { + const ns = useNamespace("tree-select"); + (0, vue.watch)(() => props.data, () => { + if (props.filterable) (0, vue.nextTick)(() => { + tree.value?.filter(select.value?.states.inputValue); + }); + }, { flush: "post" }); + const focusLastNode = (listNode) => { + const lastNode = listNode.at(-1); + if (lastNode.expanded && lastNode.childNodes.at(-1)) focusLastNode([lastNode.childNodes.at(-1)]); + else { + (tree.value.el$?.querySelector(`[data-key="${listNode.at(-1).key}"]`))?.focus({ preventScroll: true }); + return; + } + }; + (0, vue.onMounted)(() => { + useEventListener(() => select.value?.$el, "keydown", async (evt) => { + const code = getEventCode(evt); + const { dropdownMenuVisible } = select.value; + if ([EVENT_CODE.down, EVENT_CODE.up].includes(code) && dropdownMenuVisible) { + await (0, vue.nextTick)(); + setTimeout(() => { + if (EVENT_CODE.up === code) { + const listNode = tree.value.store.root.childNodes; + focusLastNode(listNode); + return; + } + select.value.optionsArray[select.value.states.hoveringIndex].$el?.parentNode?.parentNode?.focus({ preventScroll: true }); + }); + } + }, { capture: true }); + }); + return { + ...pick((0, vue.toRefs)(props), Object.keys(ElSelect.props)), + ...attrs, + class: (0, vue.computed)(() => attrs.class), + style: (0, vue.computed)(() => attrs.style), + "onUpdate:modelValue": (value) => emit(UPDATE_MODEL_EVENT, value), + valueKey: key, + popperClass: (0, vue.computed)(() => { + const classes = [ns.e("popper")]; + if (props.popperClass) classes.push(props.popperClass); + return classes.join(" "); + }), + filterMethod: (keyword = "") => { + if (props.filterMethod) props.filterMethod(keyword); + else if (props.remoteMethod) props.remoteMethod(keyword); + else tree.value?.filter(keyword); + } + }; + }; + +//#endregion +//#region ../../packages/components/tree-select/src/tree-select-option.ts + const component = (0, vue.defineComponent)({ + extends: ElOption, + setup(props, ctx) { + const result = ElOption.setup(props, ctx); + delete result.selectOptionClick; + const vm = (0, vue.getCurrentInstance)().proxy; + (0, vue.nextTick)(() => { + if (!result.select.states.cachedOptions.get(vm.value)) result.select.onOptionCreate(vm); + }); + (0, vue.watch)(() => ctx.attrs.visible, (val) => { + (0, vue.nextTick)(() => { + result.states.visible = val; + }); + }, { immediate: true }); + return result; + }, + methods: { selectOptionClick() { + this.$el.parentElement.click(); + } } + }); + +//#endregion +//#region ../../packages/components/tree-select/src/utils.ts + function isValidValue(val) { + return val || val === 0; + } + function isValidArray(val) { + return isArray$1(val) && val.length; + } + function toValidArray(val) { + return isArray$1(val) ? val : isValidValue(val) ? [val] : []; + } + function treeFind(treeData, findCallback, getChildren, resultCallback, parent) { + for (let i = 0; i < treeData.length; i++) { + const data = treeData[i]; + if (findCallback(data, i, treeData, parent)) return resultCallback ? resultCallback(data, i, treeData, parent) : data; + else { + const children = getChildren(data); + if (isValidArray(children)) { + const find = treeFind(children, findCallback, getChildren, resultCallback, data); + if (find) return find; + } + } + } + } + function treeEach(treeData, callback, getChildren, parent) { + for (let i = 0; i < treeData.length; i++) { + const data = treeData[i]; + callback(data, i, treeData, parent); + const children = getChildren(data); + if (isValidArray(children)) treeEach(children, callback, getChildren, data); + } + } + +//#endregion +//#region ../../packages/components/tree-select/src/tree.ts + const useTree$1 = (props, { attrs, slots, emit }, { select, tree, key }) => { + (0, vue.watch)([() => props.modelValue, tree], () => { + if (props.showCheckbox) (0, vue.nextTick)(() => { + const treeInstance = tree.value; + if (treeInstance && !isEqual$1(treeInstance.getCheckedKeys(), toValidArray(props.modelValue))) treeInstance.setCheckedKeys(toValidArray(props.modelValue)); + }); + }, { + immediate: true, + deep: true + }); + const propsMap = (0, vue.computed)(() => ({ + value: key.value, + label: "label", + children: "children", + disabled: "disabled", + isLeaf: "isLeaf", + ...props.props + })); + const getNodeValByProp = (prop, data) => { + const propVal = propsMap.value[prop]; + if (isFunction$1(propVal)) return propVal(data, tree.value?.getNode(getNodeValByProp("value", data))); + else return data[propVal]; + }; + const defaultExpandedParentKeys = toValidArray(props.modelValue).map((value) => { + return treeFind(props.data || [], (data) => getNodeValByProp("value", data) === value, (data) => getNodeValByProp("children", data), (data, index, array, parent) => parent && getNodeValByProp("value", parent)); + }).filter((item) => isValidValue(item)); + const cacheOptions = (0, vue.computed)(() => { + if (!props.renderAfterExpand && !props.lazy) return []; + const options = []; + treeEach(props.data.concat(props.cacheData), (node) => { + const value = getNodeValByProp("value", node); + options.push({ + value, + currentLabel: getNodeValByProp("label", node), + isDisabled: getNodeValByProp("disabled", node) + }); + }, (data) => getNodeValByProp("children", data)); + return options; + }); + const getChildCheckedKeys = () => { + return tree.value?.getCheckedKeys().filter((checkedKey) => { + const node = tree.value?.getNode(checkedKey); + return !isNil(node) && isEmpty(node.childNodes); + }); + }; + const emitChange = (val) => { + if (!isEqual$1(props.modelValue, val)) emit(CHANGE_EVENT, val); + }; + function update(val) { + emit(UPDATE_MODEL_EVENT, val); + emitChange(val); + } + return { + ...pick((0, vue.toRefs)(props), Object.keys(ElTree.props)), + ...attrs, + nodeKey: key, + expandOnClickNode: (0, vue.computed)(() => { + return !props.checkStrictly && props.expandOnClickNode; + }), + defaultExpandedKeys: (0, vue.computed)(() => { + return props.defaultExpandedKeys ? props.defaultExpandedKeys.concat(defaultExpandedParentKeys) : defaultExpandedParentKeys; + }), + renderContent: (h, { node, data, store }) => { + return h(component, { + value: getNodeValByProp("value", data), + label: getNodeValByProp("label", data), + disabled: getNodeValByProp("disabled", data), + visible: node.visible + }, props.renderContent ? () => props.renderContent(h, { + node, + data, + store + }) : slots.default ? () => slots.default({ + node, + data, + store + }) : void 0); + }, + filterNodeMethod: (value, data, node) => { + if (props.filterNodeMethod) return props.filterNodeMethod(value, data, node); + if (!value) return true; + return new RegExp(escapeStringRegexp(value), "i").test(getNodeValByProp("label", data) || ""); + }, + onNodeClick: (data, node, e) => { + attrs.onNodeClick?.(data, node, e); + if (props.showCheckbox && props.checkOnClickNode) return; + if (!props.showCheckbox && (props.checkStrictly || node.isLeaf)) { + if (!getNodeValByProp("disabled", data)) { + const option = select.value?.states.options.get(getNodeValByProp("value", data)); + select.value?.handleOptionSelect(option); + } + } else if (props.expandOnClickNode) e.proxy.handleExpandIconClick(); + }, + onCheck: (data, params) => { + if (!props.showCheckbox) return; + const dataValue = getNodeValByProp("value", data); + const dataMap = {}; + treeEach([tree.value.store.root], (node) => dataMap[node.key] = node, (node) => node.childNodes); + const uncachedCheckedKeys = params.checkedKeys; + const cachedKeys = props.multiple ? toValidArray(props.modelValue).filter((item) => !(item in dataMap) && !uncachedCheckedKeys.includes(item)) : []; + const checkedKeys = cachedKeys.concat(uncachedCheckedKeys); + if (props.checkStrictly) update(props.multiple ? checkedKeys : checkedKeys.includes(dataValue) ? dataValue : void 0); + else if (props.multiple) { + const childKeys = getChildCheckedKeys(); + update(cachedKeys.concat(childKeys)); + } else { + const firstLeaf = treeFind([data], (data) => !isValidArray(getNodeValByProp("children", data)) && !getNodeValByProp("disabled", data), (data) => getNodeValByProp("children", data)); + const firstLeafKey = firstLeaf ? getNodeValByProp("value", firstLeaf) : void 0; + const hasCheckedChild = isValidValue(props.modelValue) && !!treeFind([data], (data) => getNodeValByProp("value", data) === props.modelValue, (data) => getNodeValByProp("children", data)); + update(firstLeafKey === props.modelValue || hasCheckedChild ? void 0 : firstLeafKey); + } + (0, vue.nextTick)(() => { + const checkedKeys = toValidArray(props.modelValue); + tree.value.setCheckedKeys(checkedKeys); + attrs.onCheck?.(data, { + checkedKeys: tree.value.getCheckedKeys(), + checkedNodes: tree.value.getCheckedNodes(), + halfCheckedKeys: tree.value.getHalfCheckedKeys(), + halfCheckedNodes: tree.value.getHalfCheckedNodes() + }); + }); + select.value?.focus(); + }, + onNodeExpand: (data, node, e) => { + attrs.onNodeExpand?.(data, node, e); + (0, vue.nextTick)(() => { + if (!props.checkStrictly && props.lazy && props.multiple && node.checked) { + const dataMap = {}; + const uncachedCheckedKeys = tree.value.getCheckedKeys(); + treeEach([tree.value.store.root], (node) => dataMap[node.key] = node, (node) => node.childNodes); + const cachedKeys = toValidArray(props.modelValue).filter((item) => !(item in dataMap) && !uncachedCheckedKeys.includes(item)); + const childKeys = getChildCheckedKeys(); + update(cachedKeys.concat(childKeys)); + } + }); + }, + cacheOptions + }; + }; + +//#endregion +//#region ../../packages/components/tree-select/src/cache-options.ts + var cache_options_default = (0, vue.defineComponent)({ + props: { data: { + type: Array, + default: () => [] + } }, + setup(props) { + const select = (0, vue.inject)(selectKey); + (0, vue.watch)(() => props.data, () => { + props.data.forEach((item) => { + if (!select.states.cachedOptions.has(item.value)) select.states.cachedOptions.set(item.value, item); + }); + const inputs = select.selectRef?.querySelectorAll("input") || []; + if (isClient && !Array.from(inputs).includes(document.activeElement)) select.setSelected(); + }, { + flush: "post", + immediate: true + }); + return () => void 0; + } + }); + +//#endregion +//#region ../../packages/components/tree-select/src/tree-select.vue?vue&type=script&lang.ts + var tree_select_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElTreeSelect", + inheritAttrs: false, + props: { + ...selectProps, + ...treeProps, + cacheData: { + type: Array, + default: () => [] + } + }, + setup(props, context) { + const { slots, expose, emit, attrs } = context; + const childAttrs = { + ...attrs, + onChange: void 0 + }; + const select = (0, vue.ref)(); + const tree = (0, vue.ref)(); + const key = (0, vue.computed)(() => props.nodeKey || props.valueKey || "value"); + const selectProps = useSelect(props, { + attrs, + emit + }, { + select, + tree, + key + }); + const { cacheOptions, ...treeProps } = useTree$1(props, { + attrs: childAttrs, + slots, + emit + }, { + select, + tree, + key + }); + const methods = (0, vue.reactive)({}); + expose(methods); + (0, vue.onMounted)(() => { + Object.assign(methods, { + ...pick(tree.value, [ + "filter", + "updateKeyChildren", + "getCheckedNodes", + "setCheckedNodes", + "getCheckedKeys", + "setCheckedKeys", + "setChecked", + "getHalfCheckedNodes", + "getHalfCheckedKeys", + "getCurrentKey", + "getCurrentNode", + "setCurrentKey", + "setCurrentNode", + "getNode", + "remove", + "append", + "insertBefore", + "insertAfter" + ]), + ...pick(select.value, [ + "focus", + "blur", + "selectedLabel" + ]), + treeRef: tree.value, + selectRef: select.value + }); + }); + return () => (0, vue.h)( + ElSelect, + /** + * 1. The `props` is processed into `Refs`, but `v-bind` and + * render function props cannot read `Refs`, so use `reactive` + * unwrap the `Refs` and keep reactive. + * 2. The keyword `ref` requires `Ref`, but `reactive` broke it, + * so use function. + */ + (0, vue.reactive)({ + ...selectProps, + ref: (ref) => select.value = ref + }), + { + ...slots, + default: () => [(0, vue.h)(cache_options_default, { data: cacheOptions.value }), (0, vue.h)(ElTree, (0, vue.reactive)({ + ...treeProps, + ref: (ref) => tree.value = ref + }))] + } + ); + } + }); + +//#endregion +//#region ../../packages/components/tree-select/src/tree-select.vue + var tree_select_default = tree_select_vue_vue_type_script_lang_default; + +//#endregion +//#region ../../packages/components/tree-select/index.ts + const ElTreeSelect = withInstall(tree_select_default); + +//#endregion +//#region ../../packages/components/tree-v2/src/virtual-tree.ts + const ROOT_TREE_INJECTION_KEY$1 = Symbol(); + const EMPTY_NODE = { + key: -1, + level: -1, + data: {} + }; + let TreeOptionsEnum = /* @__PURE__ */ function(TreeOptionsEnum) { + TreeOptionsEnum["KEY"] = "id"; + TreeOptionsEnum["LABEL"] = "label"; + TreeOptionsEnum["CHILDREN"] = "children"; + TreeOptionsEnum["DISABLED"] = "disabled"; + TreeOptionsEnum["CLASS"] = ""; + return TreeOptionsEnum; + }({}); + let SetOperationEnum = /* @__PURE__ */ function(SetOperationEnum) { + SetOperationEnum["ADD"] = "add"; + SetOperationEnum["DELETE"] = "delete"; + return SetOperationEnum; + }({}); + const itemSize = { + type: Number, + default: 26 + }; + /** + * @deprecated Removed after 3.0.0, Use `TreeProps` instead. + */ + const treeProps$1 = buildProps({ + data: { + type: definePropType(Array), + default: () => mutable([]) + }, + emptyText: { type: String }, + height: { + type: Number, + default: 200 + }, + props: { + type: definePropType(Object), + default: () => mutable({ + children: TreeOptionsEnum.CHILDREN, + label: TreeOptionsEnum.LABEL, + disabled: TreeOptionsEnum.DISABLED, + value: TreeOptionsEnum.KEY, + class: TreeOptionsEnum.CLASS + }) + }, + highlightCurrent: Boolean, + showCheckbox: Boolean, + defaultCheckedKeys: { + type: definePropType(Array), + default: () => mutable([]) + }, + checkStrictly: Boolean, + defaultExpandedKeys: { + type: definePropType(Array), + default: () => mutable([]) + }, + indent: { + type: Number, + default: 16 + }, + itemSize, + icon: { type: iconPropType }, + expandOnClickNode: { + type: Boolean, + default: true + }, + checkOnClickNode: Boolean, + checkOnClickLeaf: { + type: Boolean, + default: true + }, + currentNodeKey: { type: definePropType([String, Number]) }, + accordion: Boolean, + filterMethod: { type: definePropType(Function) }, + perfMode: { + type: Boolean, + default: true + }, + scrollbarAlwaysOn: Boolean + }); + /** + * @deprecated Removed after 3.0.0, Use `TreeNodeProps` instead. + */ + const treeNodeProps = buildProps({ + node: { + type: definePropType(Object), + default: () => mutable(EMPTY_NODE) + }, + expanded: Boolean, + checked: Boolean, + indeterminate: Boolean, + showCheckbox: Boolean, + disabled: Boolean, + current: Boolean, + hiddenExpandIcon: Boolean, + itemSize + }); + const treeNodeContentProps = buildProps({ node: { + type: definePropType(Object), + required: true + } }); + const NODE_CLICK = "node-click"; + const NODE_DROP = "node-drop"; + const NODE_EXPAND = "node-expand"; + const NODE_COLLAPSE = "node-collapse"; + const CURRENT_CHANGE = "current-change"; + const NODE_CHECK = "check"; + const NODE_CHECK_CHANGE = "check-change"; + const NODE_CONTEXTMENU = "node-contextmenu"; + const treeEmits$1 = { + [NODE_CLICK]: (data, node, e) => data && node && e, + [NODE_DROP]: (data, node, e) => data && node && e, + [NODE_EXPAND]: (data, node) => data && node, + [NODE_COLLAPSE]: (data, node) => data && node, + [CURRENT_CHANGE]: (data, node) => data && node, + [NODE_CHECK]: (data, checkedInfo) => data && checkedInfo, + [NODE_CHECK_CHANGE]: (data, checked) => data && isBoolean(checked), + [NODE_CONTEXTMENU]: (evt, data, node) => evt && data && node + }; + const treeNodeEmits = { + click: (node, e) => !!(node && e), + drop: (node, e) => !!(node && e), + toggle: (node) => !!node, + check: (node, checked) => node && isBoolean(checked) + }; + +//#endregion +//#region ../../packages/components/tree-v2/src/composables/useCheck.ts + function useCheck(props, tree) { + const checkedKeys = (0, vue.ref)(/* @__PURE__ */ new Set()); + const indeterminateKeys = (0, vue.ref)(/* @__PURE__ */ new Set()); + const { emit } = (0, vue.getCurrentInstance)(); + (0, vue.watch)([() => tree.value, () => props.defaultCheckedKeys], () => { + return (0, vue.nextTick)(() => { + _setCheckedKeys(props.defaultCheckedKeys); + }); + }, { immediate: true }); + const updateCheckedKeys = () => { + if (!tree.value || !props.showCheckbox || props.checkStrictly) return; + const { levelTreeNodeMap, maxLevel } = tree.value; + const checkedKeySet = checkedKeys.value; + const indeterminateKeySet = /* @__PURE__ */ new Set(); + for (let level = maxLevel; level >= 1; --level) { + const nodes = levelTreeNodeMap.get(level); + if (!nodes) continue; + nodes.forEach((node) => { + const children = node.children; + let isEffectivelyChecked = !node.isLeaf || node.disabled || checkedKeySet.has(node.key); + if (children) { + let allChecked = true; + let hasChecked = false; + for (const childNode of children) { + const key = childNode.key; + if (!childNode.isEffectivelyChecked) isEffectivelyChecked = false; + if (checkedKeySet.has(key)) hasChecked = true; + else if (indeterminateKeySet.has(key)) { + allChecked = false; + hasChecked = true; + break; + } else allChecked = false; + } + if (allChecked) checkedKeySet.add(node.key); + else if (hasChecked) { + indeterminateKeySet.add(node.key); + checkedKeySet.delete(node.key); + } else { + checkedKeySet.delete(node.key); + indeterminateKeySet.delete(node.key); + } + } + node.isEffectivelyChecked = isEffectivelyChecked; + }); + } + indeterminateKeys.value = indeterminateKeySet; + }; + const isChecked = (node) => checkedKeys.value.has(node.key); + const isIndeterminate = (node) => indeterminateKeys.value.has(node.key); + const toggleCheckbox = (node, isChecked, nodeClick = true, immediateUpdate = true) => { + const checkedKeySet = checkedKeys.value; + const children = node.children; + if (!props.checkStrictly && nodeClick && children?.length) isChecked = children.some((node) => !node.isEffectivelyChecked); + const toggle = (node, checked) => { + checkedKeySet[checked ? SetOperationEnum.ADD : SetOperationEnum.DELETE](node.key); + const children = node.children; + if (!props.checkStrictly && children) children.forEach((childNode) => { + if (!childNode.disabled || childNode.children) toggle(childNode, checked); + }); + }; + toggle(node, isChecked); + if (immediateUpdate) updateCheckedKeys(); + if (nodeClick) afterNodeCheck(node, isChecked); + }; + const afterNodeCheck = (node, checked) => { + const { checkedNodes, checkedKeys } = getChecked(); + const { halfCheckedNodes, halfCheckedKeys } = getHalfChecked(); + emit(NODE_CHECK, node.data, { + checkedKeys, + checkedNodes, + halfCheckedKeys, + halfCheckedNodes + }); + emit(NODE_CHECK_CHANGE, node.data, checked); + }; + function getCheckedKeys(leafOnly = false) { + return getChecked(leafOnly).checkedKeys; + } + function getCheckedNodes(leafOnly = false) { + return getChecked(leafOnly).checkedNodes; + } + function getHalfCheckedKeys() { + return getHalfChecked().halfCheckedKeys; + } + function getHalfCheckedNodes() { + return getHalfChecked().halfCheckedNodes; + } + function getChecked(leafOnly = false) { + const checkedNodes = []; + const keys = []; + if (tree?.value && props.showCheckbox) { + const { treeNodeMap } = tree.value; + checkedKeys.value.forEach((key) => { + const node = treeNodeMap.get(key); + if (node && (!leafOnly || leafOnly && node.isLeaf)) { + keys.push(key); + checkedNodes.push(node.data); + } + }); + } + return { + checkedKeys: keys, + checkedNodes + }; + } + function getHalfChecked() { + const halfCheckedNodes = []; + const halfCheckedKeys = []; + if (tree?.value && props.showCheckbox) { + const { treeNodeMap } = tree.value; + indeterminateKeys.value.forEach((key) => { + const node = treeNodeMap.get(key); + if (node) { + halfCheckedKeys.push(key); + halfCheckedNodes.push(node.data); + } + }); + } + return { + halfCheckedNodes, + halfCheckedKeys + }; + } + function setCheckedKeys(keys) { + checkedKeys.value.clear(); + indeterminateKeys.value.clear(); + (0, vue.nextTick)(() => { + _setCheckedKeys(keys); + }); + } + function setChecked(key, isChecked) { + if (tree?.value && props.showCheckbox) { + const node = tree.value.treeNodeMap.get(key); + if (node) toggleCheckbox(node, isChecked, false); + } + } + function _setCheckedKeys(keys) { + if (tree?.value) { + const { treeNodeMap } = tree.value; + if (props.showCheckbox && treeNodeMap && keys?.length > 0) { + for (const key of keys) { + const node = treeNodeMap.get(key); + if (node && !isChecked(node)) toggleCheckbox(node, true, false, false); + } + updateCheckedKeys(); + } + } + } + return { + updateCheckedKeys, + toggleCheckbox, + isChecked, + isIndeterminate, + getCheckedKeys, + getCheckedNodes, + getHalfCheckedKeys, + getHalfCheckedNodes, + setChecked, + setCheckedKeys + }; + } + +//#endregion +//#region ../../packages/components/tree-v2/src/composables/useFilter.ts + function useFilter(props, tree) { + const hiddenNodeKeySet = (0, vue.ref)(/* @__PURE__ */ new Set([])); + const hiddenExpandIconKeySet = (0, vue.ref)(/* @__PURE__ */ new Set([])); + const filterable = (0, vue.computed)(() => { + return isFunction$1(props.filterMethod); + }); + function doFilter(query) { + if (!filterable.value) return; + const expandKeySet = /* @__PURE__ */ new Set(); + const hiddenExpandIconKeys = hiddenExpandIconKeySet.value; + const hiddenKeys = hiddenNodeKeySet.value; + const family = []; + const nodes = tree.value?.treeNodes || []; + const filter = props.filterMethod; + hiddenKeys.clear(); + function traverse(nodes) { + nodes.forEach((node) => { + family.push(node); + if (filter?.(query, node.data, node)) family.forEach((member) => { + expandKeySet.add(member.key); + member.expanded = true; + }); + else { + node.expanded = false; + if (node.isLeaf) hiddenKeys.add(node.key); + } + const children = node.children; + if (children) traverse(children); + if (!node.isLeaf) { + if (!expandKeySet.has(node.key)) hiddenKeys.add(node.key); + else if (children) { + let allHidden = true; + for (const childNode of children) if (!hiddenKeys.has(childNode.key)) { + allHidden = false; + break; + } + if (allHidden) hiddenExpandIconKeys.add(node.key); + else hiddenExpandIconKeys.delete(node.key); + } + } + family.pop(); + }); + } + traverse(nodes); + return expandKeySet; + } + function isForceHiddenExpandIcon(node) { + return hiddenExpandIconKeySet.value.has(node.key); + } + return { + hiddenExpandIconKeySet, + hiddenNodeKeySet, + doFilter, + isForceHiddenExpandIcon + }; + } + +//#endregion +//#region ../../packages/components/tree-v2/src/composables/useTree.ts + function useTree(props, emit) { + const expandedKeySet = (0, vue.ref)(/* @__PURE__ */ new Set()); + const currentKey = (0, vue.ref)(); + const tree = (0, vue.shallowRef)(); + const listRef = (0, vue.ref)(); + const { isIndeterminate, isChecked, toggleCheckbox, getCheckedKeys, getCheckedNodes, getHalfCheckedKeys, getHalfCheckedNodes, setChecked, setCheckedKeys } = useCheck(props, tree); + const { doFilter, hiddenNodeKeySet, isForceHiddenExpandIcon } = useFilter(props, tree); + const valueKey = (0, vue.computed)(() => { + return props.props?.value || TreeOptionsEnum.KEY; + }); + const childrenKey = (0, vue.computed)(() => { + return props.props?.children || TreeOptionsEnum.CHILDREN; + }); + const disabledKey = (0, vue.computed)(() => { + return props.props?.disabled || TreeOptionsEnum.DISABLED; + }); + const labelKey = (0, vue.computed)(() => { + return props.props?.label || TreeOptionsEnum.LABEL; + }); + const flattenTree = (0, vue.computed)(() => { + const expandedKeys = expandedKeySet.value; + const hiddenKeys = hiddenNodeKeySet.value; + const flattenNodes = []; + const nodes = tree.value?.treeNodes || []; + const stack = []; + for (let i = nodes.length - 1; i >= 0; --i) stack.push(nodes[i]); + while (stack.length) { + const node = stack.pop(); + if (hiddenKeys.has(node.key)) continue; + flattenNodes.push(node); + if (node.children && expandedKeys.has(node.key)) for (let i = node.children.length - 1; i >= 0; --i) stack.push(node.children[i]); + } + return flattenNodes; + }); + const isNotEmpty = (0, vue.computed)(() => { + return flattenTree.value.length > 0; + }); + function createTree(data) { + const treeNodeMap = /* @__PURE__ */ new Map(); + const levelTreeNodeMap = /* @__PURE__ */ new Map(); + let maxLevel = 1; + function traverse(nodes, level = 1, parent = void 0) { + const siblings = []; + for (const rawNode of nodes) { + const value = getKey(rawNode); + const node = { + level, + key: value, + data: rawNode + }; + node.label = getLabel(rawNode); + node.parent = parent; + const children = getChildren(rawNode); + node.disabled = getDisabled(rawNode); + node.isLeaf = !children || children.length === 0; + node.expanded = expandedKeySet.value.has(value); + if (children && children.length) node.children = traverse(children, level + 1, node); + siblings.push(node); + treeNodeMap.set(value, node); + if (!levelTreeNodeMap.has(level)) levelTreeNodeMap.set(level, []); + levelTreeNodeMap.get(level)?.push(node); + } + if (level > maxLevel) maxLevel = level; + return siblings; + } + const treeNodes = traverse(data); + return { + treeNodeMap, + levelTreeNodeMap, + maxLevel, + treeNodes + }; + } + function filter(query) { + const keys = doFilter(query); + if (keys) expandedKeySet.value = keys; + } + function getChildren(node) { + return node[childrenKey.value]; + } + function getKey(node) { + if (!node) return ""; + return node[valueKey.value]; + } + function getDisabled(node) { + return node[disabledKey.value]; + } + function getLabel(node) { + return node[labelKey.value]; + } + function toggleExpand(node) { + if (expandedKeySet.value.has(node.key)) collapseNode(node); + else expandNode(node); + } + function setExpandedKeys(keys) { + const expandedKeys = /* @__PURE__ */ new Set(); + const nodeMap = tree.value.treeNodeMap; + expandedKeySet.value.forEach((key) => { + const node = nodeMap.get(key); + if (node) node.expanded = false; + }); + keys.forEach((k) => { + let node = nodeMap.get(k); + while (node && !expandedKeys.has(node.key)) { + expandedKeys.add(node.key); + node.expanded = true; + node = node.parent; + } + }); + expandedKeySet.value = expandedKeys; + } + function handleNodeClick(node, e) { + emit(NODE_CLICK, node.data, node, e); + handleCurrentChange(node); + if (props.expandOnClickNode) toggleExpand(node); + if (props.showCheckbox && (props.checkOnClickNode || node.isLeaf && props.checkOnClickLeaf) && !node.disabled) toggleCheckbox(node, !isChecked(node), true); + } + function handleNodeDrop(node, e) { + emit(NODE_DROP, node.data, node, e); + } + function handleCurrentChange(node) { + if (!isCurrent(node)) { + currentKey.value = node.key; + emit(CURRENT_CHANGE, node.data, node); + } + } + function handleNodeCheck(node, checked) { + toggleCheckbox(node, checked); + } + function expandNode(node) { + const keySet = expandedKeySet.value; + if (tree.value && props.accordion) { + const { treeNodeMap } = tree.value; + keySet.forEach((key) => { + const treeNode = treeNodeMap.get(key); + if (node && node.level === treeNode?.level) { + keySet.delete(key); + treeNode.expanded = false; + } + }); + } + keySet.add(node.key); + const _node = getNode(node.key); + if (_node) { + _node.expanded = true; + emit(NODE_EXPAND, _node.data, _node); + } + } + function collapseNode(node) { + expandedKeySet.value.delete(node.key); + const _node = getNode(node.key); + if (_node) { + _node.expanded = false; + emit(NODE_COLLAPSE, _node.data, _node); + } + } + function isDisabled(node) { + return !!node.disabled; + } + function isCurrent(node) { + const current = currentKey.value; + return current !== void 0 && current === node.key; + } + function getCurrentNode() { + if (!currentKey.value) return void 0; + return tree.value?.treeNodeMap.get(currentKey.value)?.data; + } + function getCurrentKey() { + return currentKey.value; + } + function setCurrentKey(key) { + currentKey.value = key; + } + function setData(data) { + tree.value = createTree(data); + } + function getNode(data) { + const key = isObject$1(data) ? getKey(data) : data; + return tree.value?.treeNodeMap.get(key); + } + function scrollToNode(key, strategy = "auto") { + const node = getNode(key); + if (node && listRef.value) listRef.value.scrollToItem(flattenTree.value.indexOf(node), strategy); + } + function scrollTo(offset) { + listRef.value?.scrollTo(offset); + } + (0, vue.watch)(() => props.currentNodeKey, (key) => { + currentKey.value = key; + }, { immediate: true }); + (0, vue.watch)(() => props.defaultExpandedKeys, (keys) => { + setExpandedKeys(keys || []); + }); + (0, vue.watch)(() => props.data, (data) => { + setData(data); + setExpandedKeys(props.defaultExpandedKeys || []); + }, { immediate: true }); + return { + tree, + flattenTree, + isNotEmpty, + listRef, + getKey, + getChildren, + toggleExpand, + toggleCheckbox, + isChecked, + isIndeterminate, + isDisabled, + isCurrent, + isForceHiddenExpandIcon, + handleNodeClick, + handleNodeDrop, + handleNodeCheck, + getCurrentNode, + getCurrentKey, + setCurrentKey, + getCheckedKeys, + getCheckedNodes, + getHalfCheckedKeys, + getHalfCheckedNodes, + setChecked, + setCheckedKeys, + filter, + setData, + getNode, + expandNode, + collapseNode, + setExpandedKeys, + scrollToNode, + scrollTo + }; + } + +//#endregion +//#region ../../packages/components/tree-v2/src/tree-node-content.ts + var tree_node_content_default = (0, vue.defineComponent)({ + name: "ElTreeNodeContent", + props: treeNodeContentProps, + setup(props) { + const tree = (0, vue.inject)(ROOT_TREE_INJECTION_KEY$1); + const ns = useNamespace("tree"); + return () => { + const node = props.node; + const { data } = node; + return tree?.ctx.slots.default ? tree.ctx.slots.default({ + node, + data + }) : (0, vue.h)(ElText, { + tag: "span", + truncated: true, + class: ns.be("node", "label") + }, () => [node?.label]); + }; + } + }); + +//#endregion +//#region ../../packages/components/tree-v2/src/tree-node.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$11 = [ + "aria-expanded", + "aria-disabled", + "aria-checked", + "data-key" + ]; + var tree_node_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTreeNode", + __name: "tree-node", + props: treeNodeProps, + emits: treeNodeEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const tree = (0, vue.inject)(ROOT_TREE_INJECTION_KEY$1); + const ns = useNamespace("tree"); + const indent = (0, vue.computed)(() => tree?.props.indent ?? 16); + const icon = (0, vue.computed)(() => tree?.props.icon ?? caret_right_default); + const getNodeClass = (node) => { + const nodeClassFunc = tree?.props.props?.class; + if (!nodeClassFunc) return {}; + let className; + if (isFunction$1(nodeClassFunc)) { + const { data } = node; + className = nodeClassFunc(data, node); + } else className = nodeClassFunc; + return isString(className) ? { [className]: true } : className; + }; + const handleClick = (e) => { + emit("click", props.node, e); + }; + const handleDrop = (e) => { + emit("drop", props.node, e); + }; + const handleExpandIconClick = () => { + emit("toggle", props.node); + }; + const handleCheckChange = (value) => { + emit("check", props.node, value); + }; + const handleContextMenu = (event) => { + if (tree?.instance?.vnode?.props?.["onNodeContextmenu"]) { + event.stopPropagation(); + event.preventDefault(); + } + tree?.ctx.emit(NODE_CONTEXTMENU, event, props.node?.data, props.node); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref: "node$", + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b("node"), + (0, vue.unref)(ns).is("expanded", __props.expanded), + (0, vue.unref)(ns).is("current", __props.current), + (0, vue.unref)(ns).is("focusable", !__props.disabled), + (0, vue.unref)(ns).is("checked", !__props.disabled && __props.checked), + getNodeClass(__props.node) + ]), + role: "treeitem", + tabindex: "-1", + "aria-expanded": __props.expanded, + "aria-disabled": __props.disabled, + "aria-checked": __props.checked, + "data-key": __props.node?.key, + onClick: (0, vue.withModifiers)(handleClick, ["stop"]), + onContextmenu: handleContextMenu, + onDragover: _cache[1] || (_cache[1] = (0, vue.withModifiers)(() => {}, ["prevent"])), + onDragenter: _cache[2] || (_cache[2] = (0, vue.withModifiers)(() => {}, ["prevent"])), + onDrop: (0, vue.withModifiers)(handleDrop, ["stop"]) + }, [(0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("node", "content")), + style: (0, vue.normalizeStyle)({ + paddingLeft: `${(__props.node.level - 1) * indent.value}px`, + height: __props.itemSize + "px" + }) + }, [ + icon.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).is("leaf", !!__props.node?.isLeaf), + (0, vue.unref)(ns).is("hidden", __props.hiddenExpandIcon), + { expanded: !__props.node?.isLeaf && __props.expanded }, + (0, vue.unref)(ns).be("node", "expand-icon") + ]), + onClick: (0, vue.withModifiers)(handleExpandIconClick, ["stop"]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(icon.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), + __props.showCheckbox ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElCheckbox), { + key: 1, + "model-value": __props.checked, + indeterminate: __props.indeterminate, + disabled: __props.disabled, + onChange: handleCheckChange, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, null, 8, [ + "model-value", + "indeterminate", + "disabled" + ])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createVNode)((0, vue.unref)(tree_node_content_default), { node: { + ...__props.node, + expanded: __props.expanded + } }, null, 8, ["node"]) + ], 6)], 42, _hoisted_1$11); + }; + } + }); + +//#endregion +//#region ../../packages/components/tree-v2/src/tree-node.vue + var tree_node_default = tree_node_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tree-v2/src/tree.vue?vue&type=script&setup=true&lang.ts + var tree_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTreeV2", + __name: "tree", + props: treeProps$1, + emits: treeEmits$1, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const slots = (0, vue.useSlots)(); + const treeNodeSize = (0, vue.computed)(() => props.itemSize); + (0, vue.provide)(ROOT_TREE_INJECTION_KEY$1, { + ctx: { + emit, + slots + }, + props, + instance: (0, vue.getCurrentInstance)() + }); + (0, vue.provide)(formItemContextKey, void 0); + const { t } = useLocale(); + const ns = useNamespace("tree"); + const { flattenTree, isNotEmpty, listRef, toggleExpand, isIndeterminate, isChecked, isDisabled, isCurrent, isForceHiddenExpandIcon, handleNodeClick, handleNodeDrop, handleNodeCheck, toggleCheckbox, getCurrentNode, getCurrentKey, setCurrentKey, getCheckedKeys, getCheckedNodes, getHalfCheckedKeys, getHalfCheckedNodes, setChecked, setCheckedKeys, filter, setData, getNode, expandNode, collapseNode, setExpandedKeys, scrollToNode, scrollTo } = useTree(props, emit); + __expose({ + toggleCheckbox, + getCurrentNode, + getCurrentKey, + setCurrentKey, + getCheckedKeys, + getCheckedNodes, + getHalfCheckedKeys, + getHalfCheckedNodes, + setChecked, + setCheckedKeys, + filter, + setData, + getNode, + expandNode, + collapseNode, + setExpandedKeys, + scrollToNode, + scrollTo + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), { [(0, vue.unref)(ns).m("highlight-current")]: __props.highlightCurrent }]), + role: "tree" + }, [(0, vue.unref)(isNotEmpty) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(FixedSizeList), { + key: 0, + ref_key: "listRef", + ref: listRef, + "class-name": (0, vue.unref)(ns).b("virtual-list"), + data: (0, vue.unref)(flattenTree), + total: (0, vue.unref)(flattenTree).length, + height: __props.height, + "item-size": treeNodeSize.value, + "perf-mode": __props.perfMode, + "scrollbar-always-on": __props.scrollbarAlwaysOn + }, { + default: (0, vue.withCtx)(({ data, index, style }) => [((0, vue.openBlock)(), (0, vue.createBlock)(tree_node_default, { + key: data[index].key, + style: (0, vue.normalizeStyle)(style), + node: data[index], + expanded: data[index].expanded, + "show-checkbox": __props.showCheckbox, + checked: (0, vue.unref)(isChecked)(data[index]), + indeterminate: (0, vue.unref)(isIndeterminate)(data[index]), + "item-size": treeNodeSize.value, + disabled: (0, vue.unref)(isDisabled)(data[index]), + current: (0, vue.unref)(isCurrent)(data[index]), + "hidden-expand-icon": (0, vue.unref)(isForceHiddenExpandIcon)(data[index]), + onClick: (0, vue.unref)(handleNodeClick), + onToggle: (0, vue.unref)(toggleExpand), + onCheck: (0, vue.unref)(handleNodeCheck), + onDrop: (0, vue.unref)(handleNodeDrop) + }, 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" + ])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("empty-block")) + }, [(0, vue.renderSlot)(_ctx.$slots, "empty", {}, () => [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("empty-text")) }, (0, vue.toDisplayString)(__props.emptyText ?? (0, vue.unref)(t)("el.tree.emptyText")), 3)])], 2))], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/tree-v2/src/tree.vue + var tree_default = tree_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tree-v2/index.ts + const ElTreeV2 = withInstall(tree_default); + +//#endregion +//#region ../../packages/components/upload/src/ajax.ts + const SCOPE$3 = "ElUpload"; + var UploadAjaxError = class extends Error { + constructor(message, status, method, url) { + super(message); + this.name = "UploadAjaxError"; + this.status = status; + this.method = method; + this.url = url; + } + }; + function getError(action, option, xhr) { + let msg; + if (xhr.response) msg = `${xhr.response.error || xhr.response}`; + else if (xhr.responseText) msg = `${xhr.responseText}`; + else msg = `fail to ${option.method} ${action} ${xhr.status}`; + return new UploadAjaxError(msg, xhr.status, option.method, action); + } + function getBody(xhr) { + const text = xhr.responseText || xhr.response; + if (!text) return text; + try { + return JSON.parse(text); + } catch { + return text; + } + } + const ajaxUpload = (option) => { + if (typeof XMLHttpRequest === "undefined") throwError(SCOPE$3, "XMLHttpRequest is undefined"); + const xhr = new XMLHttpRequest(); + const action = option.action; + if (xhr.upload) xhr.upload.addEventListener("progress", (evt) => { + const progressEvt = evt; + progressEvt.percent = evt.total > 0 ? evt.loaded / evt.total * 100 : 0; + option.onProgress(progressEvt); + }); + const formData = new FormData(); + if (option.data) for (const [key, value] of Object.entries(option.data)) if (isArray$1(value)) if (value.length === 2 && value[0] instanceof Blob && isString(value[1])) formData.append(key, value[0], value[1]); + else value.forEach((item) => { + formData.append(key, item); + }); + else formData.append(key, value); + formData.append(option.filename, option.file, option.file.name); + xhr.addEventListener("error", () => { + option.onError(getError(action, option, xhr)); + }); + xhr.addEventListener("load", () => { + if (xhr.status < 200 || xhr.status >= 300) return option.onError(getError(action, option, xhr)); + option.onSuccess(getBody(xhr)); + }); + xhr.open(option.method, action, true); + if (option.withCredentials && "withCredentials" in xhr) xhr.withCredentials = true; + const headers = option.headers || {}; + if (headers instanceof Headers) headers.forEach((value, key) => xhr.setRequestHeader(key, value)); + else for (const [key, value] of Object.entries(headers)) { + if (isNil(value)) continue; + xhr.setRequestHeader(key, String(value)); + } + xhr.send(formData); + return xhr; + }; + +//#endregion +//#region ../../packages/components/upload/src/upload.ts +/** + * @deprecated Removed after 3.0.0, Use `UploadProps` instead. + */ + const uploadListTypes = [ + "text", + "picture", + "picture-card" + ]; + let fileId = 1; + const genFileId = () => Date.now() + fileId++; + /** + * @deprecated Removed after 3.0.0, Use `UploadBaseProps` instead. + */ + const uploadBaseProps = buildProps({ + action: { + type: String, + default: "#" + }, + headers: { type: definePropType(Object) }, + method: { + type: String, + default: "post" + }, + data: { + type: definePropType([ + Object, + Function, + Promise + ]), + default: () => mutable({}) + }, + multiple: Boolean, + name: { + type: String, + default: "file" + }, + drag: Boolean, + withCredentials: Boolean, + showFileList: { + type: Boolean, + default: true + }, + accept: { + type: String, + default: "" + }, + fileList: { + type: definePropType(Array), + default: () => mutable([]) + }, + autoUpload: { + type: Boolean, + default: true + }, + listType: { + type: String, + values: uploadListTypes, + default: "text" + }, + httpRequest: { + type: definePropType(Function), + default: ajaxUpload + }, + disabled: { + type: Boolean, + default: void 0 + }, + limit: Number, + directory: Boolean + }); + /** + * @deprecated Removed after 3.0.0, Use `UploadProps` instead. + */ + const uploadProps = buildProps({ + ...uploadBaseProps, + beforeUpload: { + type: definePropType(Function), + default: NOOP + }, + beforeRemove: { type: definePropType(Function) }, + onRemove: { + type: definePropType(Function), + default: NOOP + }, + onChange: { + type: definePropType(Function), + default: NOOP + }, + onPreview: { + type: definePropType(Function), + default: NOOP + }, + onSuccess: { + type: definePropType(Function), + default: NOOP + }, + onProgress: { + type: definePropType(Function), + default: NOOP + }, + onError: { + type: definePropType(Function), + default: NOOP + }, + onExceed: { + type: definePropType(Function), + default: NOOP + }, + crossorigin: { type: definePropType(String) } + }); + const uploadBasePropsDefaults = { + action: "#", + method: "post", + data: () => mutable({}), + name: "file", + showFileList: true, + accept: "", + fileList: () => mutable([]), + autoUpload: true, + listType: "text", + httpRequest: ajaxUpload, + disabled: void 0 + }; + const uploadPropsDefaults = { + ...uploadBasePropsDefaults, + beforeUpload: NOOP, + onRemove: NOOP, + onChange: NOOP, + onPreview: NOOP, + onSuccess: NOOP, + onProgress: NOOP, + onError: NOOP, + onExceed: NOOP + }; + +//#endregion +//#region ../../packages/components/upload/src/constants.ts + const uploadContextKey = Symbol("uploadContextKey"); + +//#endregion +//#region ../../packages/components/upload/src/upload-list.ts +/** + * @deprecated Removed after 3.0.0, Use `UploadListProps` instead. + */ + const uploadListProps = buildProps({ + files: { + type: definePropType(Array), + default: () => mutable([]) + }, + disabled: { + type: Boolean, + default: void 0 + }, + handlePreview: { + type: definePropType(Function), + default: NOOP + }, + listType: { + type: String, + values: uploadListTypes, + default: "text" + }, + crossorigin: { type: definePropType(String) } + }); + const uploadListEmits = { remove: (file) => !!file }; + +//#endregion +//#region ../../packages/components/upload/src/upload-list.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$10 = [ + "tabindex", + "aria-disabled", + "onKeydown" + ]; + const _hoisted_2$6 = ["src", "crossorigin"]; + const _hoisted_3$2 = ["onClick"]; + const _hoisted_4$1 = ["title"]; + const _hoisted_5 = ["onClick"]; + const _hoisted_6 = ["onClick"]; + var upload_list_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElUploadList", + __name: "upload-list", + props: uploadListProps, + emits: uploadListEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const { t } = useLocale(); + const nsUpload = useNamespace("upload"); + const nsIcon = useNamespace("icon"); + const nsList = useNamespace("list"); + const disabled = useFormDisabled(); + const focusing = (0, vue.ref)(false); + const containerKls = (0, vue.computed)(() => [ + nsUpload.b("list"), + nsUpload.bm("list", props.listType), + nsUpload.is("disabled", disabled.value) + ]); + const handleRemove = (file) => { + emit("remove", file); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.TransitionGroup, { + tag: "ul", + class: (0, vue.normalizeClass)(containerKls.value), + name: (0, vue.unref)(nsList).b() + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.files, (file, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + key: file.uid || file.name, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(nsUpload).be("list", "item"), + (0, vue.unref)(nsUpload).is(file.status), + { focusing: focusing.value } + ]), + tabindex: (0, vue.unref)(disabled) ? void 0 : 0, + "aria-disabled": (0, vue.unref)(disabled), + role: "button", + onKeydown: (0, vue.withKeys)(($event) => !(0, vue.unref)(disabled) && handleRemove(file), ["delete"]), + onFocus: _cache[0] || (_cache[0] = ($event) => focusing.value = true), + onBlur: _cache[1] || (_cache[1] = ($event) => focusing.value = false), + onClick: _cache[2] || (_cache[2] = ($event) => focusing.value = false) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", { + file, + index + }, () => [ + __props.listType === "picture" || file.status !== "uploading" && __props.listType === "picture-card" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("img", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-thumbnail")), + src: file.url, + crossorigin: __props.crossorigin, + alt: "" + }, null, 10, _hoisted_2$6)) : (0, vue.createCommentVNode)("v-if", true), + file.status === "uploading" || __props.listType !== "picture-card" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-info")) + }, [(0, vue.createElementVNode)("a", { + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-name")), + onClick: (0, vue.withModifiers)(($event) => __props.handlePreview(file), ["prevent"]) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(nsIcon).m("document")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(document_default))]), + _: 1 + }, 8, ["class"]), (0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-file-name")), + title: file.name + }, (0, vue.toDisplayString)(file.name), 11, _hoisted_4$1)], 10, _hoisted_3$2), file.status === "uploading" ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElProgress), { + key: 0, + type: __props.listType === "picture-card" ? "circle" : "line", + "stroke-width": __props.listType === "picture-card" ? 6 : 2, + percentage: Number(file.percentage), + style: (0, vue.normalizeStyle)(__props.listType === "picture-card" ? "" : "margin-top: 0.5rem") + }, null, 8, [ + "type", + "stroke-width", + "percentage", + "style" + ])) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("label", { class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-status-label")) }, [__props.listType === "text" ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsIcon).m("upload-success"), (0, vue.unref)(nsIcon).m("circle-check")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(circle_check_default))]), + _: 1 + }, 8, ["class"])) : ["picture-card", "picture"].includes(__props.listType) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(nsIcon).m("upload-success"), (0, vue.unref)(nsIcon).m("check")]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(check_default))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true)], 2), + !(0, vue.unref)(disabled) ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(nsIcon).m("close")), + "aria-label": (0, vue.unref)(t)("el.upload.delete"), + role: "button", + tabindex: "0", + onClick: ($event) => handleRemove(file), + onKeydown: (0, vue.withKeys)((0, vue.withModifiers)(($event) => handleRemove(file), ["prevent"]), ["enter", "space"]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(close_default))]), + _: 1 + }, 8, [ + "class", + "aria-label", + "onClick", + "onKeydown" + ])) : (0, vue.createCommentVNode)("v-if", true), + !(0, vue.unref)(disabled) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("i", { + key: 3, + class: (0, vue.normalizeClass)((0, vue.unref)(nsIcon).m("close-tip")) + }, (0, vue.toDisplayString)((0, vue.unref)(t)("el.upload.deleteTip")), 3)) : (0, vue.createCommentVNode)("v-if", true), + __props.listType === "picture-card" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 4, + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-actions")) + }, [(0, vue.createElementVNode)("span", { + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-preview")), + onClick: ($event) => __props.handlePreview(file) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(nsIcon).m("zoom-in")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(zoom_in_default))]), + _: 1 + }, 8, ["class"])], 10, _hoisted_5), !(0, vue.unref)(disabled) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(nsUpload).be("list", "item-delete")), + onClick: ($event) => handleRemove(file) + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(nsIcon).m("delete")) }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(delete_default))]), + _: 1 + }, 8, ["class"])], 10, _hoisted_6)) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true) + ])], 42, _hoisted_1$10); + }), 128)), (0, vue.renderSlot)(_ctx.$slots, "append")]), + _: 3 + }, 8, ["class", "name"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/upload/src/upload-list.vue + var upload_list_default = upload_list_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/upload/src/upload-content.ts +/** + * @deprecated Removed after 3.0.0, Use `UploadContentProps` instead. + */ + const uploadContentProps = buildProps({ + ...uploadBaseProps, + beforeUpload: { + type: definePropType(Function), + default: NOOP + }, + onRemove: { + type: definePropType(Function), + default: NOOP + }, + onStart: { + type: definePropType(Function), + default: NOOP + }, + onSuccess: { + type: definePropType(Function), + default: NOOP + }, + onProgress: { + type: definePropType(Function), + default: NOOP + }, + onError: { + type: definePropType(Function), + default: NOOP + }, + onExceed: { + type: definePropType(Function), + default: NOOP + } + }); + const uploadContentPropsDefaults = { + ...uploadBasePropsDefaults, + beforeUpload: NOOP, + onRemove: NOOP, + onStart: NOOP, + onSuccess: NOOP, + onProgress: NOOP, + onError: NOOP, + onExceed: NOOP + }; + +//#endregion +//#region ../../packages/components/upload/src/upload-dragger.ts +/** + * @deprecated Removed after 3.0.0, Use `UploadDraggerProps` instead. + */ + const uploadDraggerProps = buildProps({ + disabled: { + type: Boolean, + default: void 0 + }, + directory: Boolean + }); + const uploadDraggerEmits = { file: (file) => isArray$1(file) }; + +//#endregion +//#region ../../packages/components/upload/src/upload-dragger.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME$1 = "ElUploadDrag"; + var upload_dragger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME$1, + __name: "upload-dragger", + props: uploadDraggerProps, + emits: uploadDraggerEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + if (!(0, vue.inject)(uploadContextKey)) throwError(COMPONENT_NAME$1, "usage: "); + const ns = useNamespace("upload"); + const dragover = (0, vue.ref)(false); + const disabled = useFormDisabled(); + const getFile = (entry) => { + return new Promise((resolve, reject) => entry.file(resolve, reject)); + }; + const getAllFiles = async (entry) => { + try { + if (entry.isFile) { + const file = await getFile(entry); + file.isDirectory = false; + return [file]; + } + if (entry.isDirectory) { + const dirReader = entry.createReader(); + const getEntries = () => { + return new Promise((resolve, reject) => dirReader.readEntries(resolve, reject)); + }; + const entries = []; + let readEntries = await getEntries(); + /** + * In Chromium-based browsers, readEntries() will only return the first 100 FileSystemEntry instances. + * https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries#:~:text=In%20Chromium%2Dbased%20browsers%2C%20readEntries()%20will%20only%20return%20the%20first%20100%20FileSystemEntry%20instances.%20In%20order%20to%20obtain%20all%20of%20the%20instances%2C%20readEntries()%20must%20be%20called%20multiple%20times. + */ + while (readEntries.length > 0) { + entries.push(...readEntries); + readEntries = await getEntries(); + } + const filePromises = entries.map((entry) => getAllFiles(entry).catch(() => [])); + return flatten(await Promise.all(filePromises)); + } + } catch { + return []; + } + return []; + }; + const onDrop = async (e) => { + if (disabled.value) return; + dragover.value = false; + e.stopPropagation(); + const files = Array.from(e.dataTransfer.files); + const items = e.dataTransfer.items || []; + if (props.directory) { + const entries = Array.from(items).map((item) => item?.webkitGetAsEntry?.()).filter((entry) => entry); + emit("file", flatten(await Promise.all(entries.map(getAllFiles)))); + return; + } + files.forEach((file, index) => { + const entry = items[index]?.webkitGetAsEntry?.(); + if (entry) file.isDirectory = entry.isDirectory; + }); + emit("file", files); + }; + const onDragover = () => { + if (!disabled.value) dragover.value = true; + }; + const onDragleave = (e) => { + if (!e.currentTarget.contains(e.relatedTarget)) dragover.value = false; + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("dragger"), (0, vue.unref)(ns).is("dragover", dragover.value)]), + onDrop: (0, vue.withModifiers)(onDrop, ["prevent"]), + onDragover: (0, vue.withModifiers)(onDragover, ["prevent"]), + onDragleave: (0, vue.withModifiers)(onDragleave, ["prevent"]) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 34); + }; + } + }); + +//#endregion +//#region ../../packages/components/upload/src/upload-dragger.vue + var upload_dragger_default = upload_dragger_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/upload/src/upload-content.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$9 = [ + "tabindex", + "aria-disabled", + "onKeydown" + ]; + const _hoisted_2$5 = [ + "name", + "disabled", + "multiple", + "accept", + "webkitdirectory" + ]; + var upload_content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElUploadContent", + inheritAttrs: false, + __name: "upload-content", + props: uploadContentProps, + setup(__props, { expose: __expose }) { + const props = __props; + const ns = useNamespace("upload"); + const disabled = useFormDisabled(); + const requests = (0, vue.shallowRef)({}); + const inputRef = (0, vue.shallowRef)(); + const uploadFiles = (files) => { + if (files.length === 0) return; + const { autoUpload, limit, fileList, multiple, onStart, onExceed } = props; + if (limit && fileList.length + files.length > limit) { + onExceed(files, fileList); + return; + } + if (!multiple) files = files.slice(0, 1); + for (const file of files) { + const rawFile = file; + rawFile.uid = genFileId(); + onStart(rawFile); + if (autoUpload) upload(rawFile); + } + }; + const upload = async (rawFile) => { + inputRef.value.value = ""; + if (!props.beforeUpload) return doUpload(rawFile); + let hookResult; + let beforeData = {}; + try { + const originData = props.data; + const beforeUploadPromise = props.beforeUpload(rawFile); + beforeData = isPlainObject$1(props.data) ? cloneDeep(props.data) : props.data; + hookResult = await beforeUploadPromise; + if (isPlainObject$1(props.data) && isEqual$1(originData, beforeData)) beforeData = cloneDeep(props.data); + } catch { + hookResult = false; + } + if (hookResult === false) { + props.onRemove(rawFile); + return; + } + let file = rawFile; + if (hookResult instanceof Blob) if (hookResult instanceof File) file = hookResult; + else file = new File([hookResult], rawFile.name, { type: rawFile.type }); + doUpload(Object.assign(file, { uid: rawFile.uid }), beforeData); + }; + const resolveData = async (data, rawFile) => { + if (isFunction$1(data)) return data(rawFile); + return data; + }; + const doUpload = async (rawFile, beforeData) => { + const { headers, data, method, withCredentials, name: filename, action, onProgress, onSuccess, onError, httpRequest } = props; + try { + beforeData = await resolveData(beforeData ?? data, rawFile); + } catch { + props.onRemove(rawFile); + return; + } + const { uid } = rawFile; + const options = { + headers: headers || {}, + withCredentials, + file: rawFile, + data: beforeData, + method, + filename, + action, + onProgress: (evt) => { + onProgress(evt, rawFile); + }, + onSuccess: (res) => { + onSuccess(res, rawFile); + delete requests.value[uid]; + }, + onError: (err) => { + onError(err, rawFile); + delete requests.value[uid]; + } + }; + const request = httpRequest(options); + requests.value[uid] = request; + if (request instanceof Promise) request.then(options.onSuccess, options.onError); + }; + const handleChange = (e) => { + const files = e.target.files; + if (!files) return; + uploadFiles(Array.from(files)); + }; + const handleClick = () => { + if (!disabled.value) { + inputRef.value.value = ""; + inputRef.value.click(); + } + }; + const handleKeydown = () => { + handleClick(); + }; + const abort = (file) => { + entriesOf(requests.value).filter(file ? ([uid]) => String(file.uid) === uid : () => true).forEach(([uid, req]) => { + if (req instanceof XMLHttpRequest) req.abort(); + delete requests.value[uid]; + }); + }; + __expose({ + abort, + upload + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + (0, vue.unref)(ns).m(__props.listType), + (0, vue.unref)(ns).is("drag", __props.drag), + (0, vue.unref)(ns).is("disabled", (0, vue.unref)(disabled)) + ]), + tabindex: (0, vue.unref)(disabled) ? void 0 : 0, + "aria-disabled": (0, vue.unref)(disabled), + role: "button", + onClick: handleClick, + onKeydown: (0, vue.withKeys)((0, vue.withModifiers)(handleKeydown, ["self"]), ["enter", "space"]) + }, [__props.drag ? ((0, vue.openBlock)(), (0, vue.createBlock)(upload_dragger_default, { + key: 0, + disabled: (0, vue.unref)(disabled), + directory: __props.directory, + onFile: uploadFiles + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["disabled", "directory"])) : (0, vue.renderSlot)(_ctx.$slots, "default", { key: 1 }), (0, vue.createElementVNode)("input", { + ref_key: "inputRef", + ref: inputRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("input")), + name: __props.name, + disabled: (0, vue.unref)(disabled), + multiple: __props.multiple, + accept: __props.accept, + webkitdirectory: __props.directory || void 0, + type: "file", + onChange: handleChange, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, null, 42, _hoisted_2$5)], 42, _hoisted_1$9); + }; + } + }); + +//#endregion +//#region ../../packages/components/upload/src/upload-content.vue + var upload_content_default = upload_content_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/upload/src/use-handlers.ts + const SCOPE$2 = "ElUpload"; + const revokeFileObjectURL = (file) => { + if (file.url?.startsWith("blob:")) URL.revokeObjectURL(file.url); + }; + const useHandlers = (props, uploadRef) => { + const uploadFiles = useVModel(props, "fileList", void 0, { passive: true }); + const getFile = (rawFile) => uploadFiles.value.find((file) => file.uid === rawFile.uid); + function abort(file) { + uploadRef.value?.abort(file); + } + function clearFiles(states = [ + "ready", + "uploading", + "success", + "fail" + ]) { + uploadFiles.value = uploadFiles.value.filter((row) => !states.includes(row.status)); + } + function removeFile(file) { + uploadFiles.value = uploadFiles.value.filter((uploadFile) => uploadFile.uid !== file.uid); + } + const emitChange = (file) => { + (0, vue.nextTick)(() => props.onChange(file, uploadFiles.value)); + }; + const handleError = (err, rawFile) => { + const file = getFile(rawFile); + if (!file) return; + console.error(err); + file.status = "fail"; + removeFile(file); + props.onError(err, file, uploadFiles.value); + emitChange(file); + }; + const handleProgress = (evt, rawFile) => { + const file = getFile(rawFile); + if (!file) return; + props.onProgress(evt, file, uploadFiles.value); + file.status = "uploading"; + file.percentage = Math.round(evt.percent); + }; + const handleSuccess = (response, rawFile) => { + const file = getFile(rawFile); + if (!file) return; + file.status = "success"; + file.response = response; + props.onSuccess(response, file, uploadFiles.value); + emitChange(file); + }; + const handleStart = (file) => { + if (isNil(file.uid)) file.uid = genFileId(); + const uploadFile = { + name: file.name, + percentage: 0, + status: "ready", + size: file.size, + raw: file, + uid: file.uid + }; + if (props.listType === "picture-card" || props.listType === "picture") try { + uploadFile.url = URL.createObjectURL(file); + } catch (err) { + /* @__PURE__ */ debugWarn(SCOPE$2, err.message); + props.onError(err, uploadFile, uploadFiles.value); + } + uploadFiles.value = [...uploadFiles.value, uploadFile]; + emitChange(uploadFile); + }; + const handleRemove = async (file) => { + const uploadFile = file instanceof File ? getFile(file) : file; + if (!uploadFile) throwError(SCOPE$2, "file to be removed not found"); + const doRemove = (file) => { + abort(file); + removeFile(file); + props.onRemove(file, uploadFiles.value); + revokeFileObjectURL(file); + }; + if (props.beforeRemove) { + if (await props.beforeRemove(uploadFile, uploadFiles.value) !== false) doRemove(uploadFile); + } else doRemove(uploadFile); + }; + function submit() { + uploadFiles.value.filter(({ status }) => status === "ready").forEach(({ raw }) => raw && uploadRef.value?.upload(raw)); + } + (0, vue.watch)(() => props.listType, (val) => { + if (val !== "picture-card" && val !== "picture") return; + uploadFiles.value = uploadFiles.value.map((file) => { + const { raw, url } = file; + if (!url && raw) try { + file.url = URL.createObjectURL(raw); + } catch (err) { + props.onError(err, file, uploadFiles.value); + } + return file; + }); + }); + (0, vue.watch)(uploadFiles, (files) => { + for (const file of files) { + file.uid ||= genFileId(); + file.status ||= "success"; + } + }, { + immediate: true, + deep: true + }); + return { + uploadFiles, + abort, + clearFiles, + handleError, + handleProgress, + handleStart, + handleSuccess, + handleRemove, + submit, + revokeFileObjectURL + }; + }; + +//#endregion +//#region ../../packages/components/upload/src/upload.vue?vue&type=script&setup=true&lang.ts + var upload_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElUpload", + __name: "upload", + props: uploadProps, + setup(__props, { expose: __expose }) { + const props = __props; + const disabled = useFormDisabled(); + const uploadRef = (0, vue.shallowRef)(); + const { abort, submit, clearFiles, uploadFiles, handleStart, handleError, handleRemove, handleSuccess, handleProgress, revokeFileObjectURL } = useHandlers(props, uploadRef); + const isPictureCard = (0, vue.computed)(() => props.listType === "picture-card"); + const uploadContentProps = (0, vue.computed)(() => ({ + ...props, + fileList: uploadFiles.value, + onStart: handleStart, + onProgress: handleProgress, + onSuccess: handleSuccess, + onError: handleError, + onRemove: handleRemove + })); + (0, vue.onBeforeUnmount)(() => { + uploadFiles.value.forEach(revokeFileObjectURL); + }); + (0, vue.provide)(uploadContextKey, { accept: (0, vue.toRef)(props, "accept") }); + __expose({ + abort, + submit, + clearFiles, + handleStart, + handleRemove + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", null, [ + isPictureCard.value && __props.showFileList ? ((0, vue.openBlock)(), (0, vue.createBlock)(upload_list_default, { + key: 0, + disabled: (0, vue.unref)(disabled), + "list-type": __props.listType, + files: (0, vue.unref)(uploadFiles), + crossorigin: __props.crossorigin, + "handle-preview": __props.onPreview, + onRemove: (0, vue.unref)(handleRemove) + }, (0, vue.createSlots)({ + append: (0, vue.withCtx)(() => [(0, vue.createVNode)(upload_content_default, (0, vue.mergeProps)({ + ref_key: "uploadRef", + ref: uploadRef + }, uploadContentProps.value), { + default: (0, vue.withCtx)(() => [_ctx.$slots.trigger ? (0, vue.renderSlot)(_ctx.$slots, "trigger", { key: 0 }) : (0, vue.createCommentVNode)("v-if", true), !_ctx.$slots.trigger && _ctx.$slots.default ? (0, vue.renderSlot)(_ctx.$slots, "default", { key: 1 }) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 16)]), + _: 2 + }, [_ctx.$slots.file ? { + name: "default", + fn: (0, vue.withCtx)(({ file, index }) => [(0, vue.renderSlot)(_ctx.$slots, "file", { + file, + index + })]), + key: "0" + } : void 0]), 1032, [ + "disabled", + "list-type", + "files", + "crossorigin", + "handle-preview", + "onRemove" + ])) : (0, vue.createCommentVNode)("v-if", true), + !isPictureCard.value || isPictureCard.value && !__props.showFileList ? ((0, vue.openBlock)(), (0, vue.createBlock)(upload_content_default, (0, vue.mergeProps)({ + key: 1, + ref_key: "uploadRef", + ref: uploadRef + }, uploadContentProps.value), { + default: (0, vue.withCtx)(() => [_ctx.$slots.trigger ? (0, vue.renderSlot)(_ctx.$slots, "trigger", { key: 0 }) : (0, vue.createCommentVNode)("v-if", true), !_ctx.$slots.trigger && _ctx.$slots.default ? (0, vue.renderSlot)(_ctx.$slots, "default", { key: 1 }) : (0, vue.createCommentVNode)("v-if", true)]), + _: 3 + }, 16)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.trigger ? (0, vue.renderSlot)(_ctx.$slots, "default", { key: 2 }) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.renderSlot)(_ctx.$slots, "tip"), + !isPictureCard.value && __props.showFileList ? ((0, vue.openBlock)(), (0, vue.createBlock)(upload_list_default, { + key: 3, + disabled: (0, vue.unref)(disabled), + "list-type": __props.listType, + files: (0, vue.unref)(uploadFiles), + crossorigin: __props.crossorigin, + "handle-preview": __props.onPreview, + onRemove: (0, vue.unref)(handleRemove) + }, (0, vue.createSlots)({ _: 2 }, [_ctx.$slots.file ? { + name: "default", + fn: (0, vue.withCtx)(({ file, index }) => [(0, vue.renderSlot)(_ctx.$slots, "file", { + file, + index + })]), + key: "0" + } : void 0]), 1032, [ + "disabled", + "list-type", + "files", + "crossorigin", + "handle-preview", + "onRemove" + ])) : (0, vue.createCommentVNode)("v-if", true) + ]); + }; + } + }); + +//#endregion +//#region ../../packages/components/upload/src/upload.vue + var upload_default = upload_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/upload/index.ts + const ElUpload = withInstall(upload_default); + +//#endregion +//#region ../../packages/components/watermark/src/watermark.ts +/** + * @deprecated Removed after 3.0.0, Use `WatermarkProps` instead. + */ + const watermarkProps = buildProps({ + zIndex: { + type: Number, + default: 9 + }, + rotate: { + type: Number, + default: -22 + }, + width: Number, + height: Number, + image: String, + content: { + type: definePropType([String, Array]), + default: "Element Plus" + }, + font: { type: definePropType(Object) }, + gap: { + type: definePropType(Array), + default: () => [100, 100] + }, + offset: { type: definePropType(Array) } + }); + +//#endregion +//#region ../../packages/components/watermark/src/utils.ts +/** converting camel-cased strings to be lowercase and link it with Separator */ + function toLowercaseSeparator(key) { + return key.replace(/([A-Z])/g, "-$1").toLowerCase(); + } + function getStyleStr(style) { + return Object.keys(style).map((key) => `${toLowercaseSeparator(key)}: ${style[key]};`).join(" "); + } + /** Returns the ratio of the device's physical pixel resolution to the css pixel resolution */ + function getPixelRatio() { + return window.devicePixelRatio || 1; + } + /** Whether to re-render the watermark */ + const reRendering = (mutation, watermarkElement) => { + let flag = false; + if (mutation.removedNodes.length && watermarkElement) flag = Array.from(mutation.removedNodes).includes(watermarkElement); + if (mutation.type === "attributes" && mutation.target === watermarkElement) flag = true; + return flag; + }; + +//#endregion +//#region ../../packages/components/watermark/src/useClips.ts + const TEXT_ALIGN_RATIO_MAP = { + left: [0, .5], + start: [0, .5], + center: [.5, 0], + right: [1, -.5], + end: [1, -.5] + }; + function prepareCanvas(width, height, ratio = 1) { + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d"); + const realWidth = width * ratio; + const realHeight = height * ratio; + canvas.setAttribute("width", `${realWidth}px`); + canvas.setAttribute("height", `${realHeight}px`); + ctx.save(); + return [ + ctx, + canvas, + realWidth, + realHeight + ]; + } + /** + * Get the clips of text content. + * This is a lazy hook function since SSR no need this + */ + function useClips() { + function getClips(content, rotate, ratio, width, height, font, gapX, gapY, space) { + const [ctx, canvas, contentWidth, contentHeight] = prepareCanvas(width, height, ratio); + let baselineOffset = 0; + if (content instanceof HTMLImageElement) ctx.drawImage(content, 0, 0, contentWidth, contentHeight); + else { + const { color, fontSize, fontStyle, fontWeight, fontFamily, textAlign, textBaseline } = font; + const mergedFontSize = Number(fontSize) * ratio; + ctx.font = `${fontStyle} normal ${fontWeight} ${mergedFontSize}px/${height}px ${fontFamily}`; + ctx.fillStyle = color; + ctx.textAlign = textAlign; + ctx.textBaseline = textBaseline; + const contents = isArray$1(content) ? content : [content]; + if (textBaseline !== "top" && contents[0]) { + const argumentMetrics = ctx.measureText(contents[0]); + ctx.textBaseline = "top"; + const topMetrics = ctx.measureText(contents[0]); + baselineOffset = argumentMetrics.actualBoundingBoxAscent - topMetrics.actualBoundingBoxAscent; + } + contents?.forEach((item, index) => { + const [alignRatio, spaceRatio] = TEXT_ALIGN_RATIO_MAP[textAlign]; + ctx.fillText(item ?? "", contentWidth * alignRatio + space * spaceRatio, index * (mergedFontSize + font.fontGap * ratio)); + }); + } + const angle = Math.PI / 180 * Number(rotate); + const maxSize = Math.max(width, height); + const [rCtx, rCanvas, realMaxSize] = prepareCanvas(maxSize, maxSize, ratio); + rCtx.translate(realMaxSize / 2, realMaxSize / 2); + rCtx.rotate(angle); + if (contentWidth > 0 && contentHeight > 0) rCtx.drawImage(canvas, -contentWidth / 2, -contentHeight / 2); + function getRotatePos(x, y) { + return [x * Math.cos(angle) - y * Math.sin(angle), x * Math.sin(angle) + y * Math.cos(angle)]; + } + let left = 0; + let right = 0; + let top = 0; + let bottom = 0; + const halfWidth = contentWidth / 2; + const halfHeight = contentHeight / 2; + [ + [0 - halfWidth, 0 - halfHeight], + [0 + halfWidth, 0 - halfHeight], + [0 + halfWidth, 0 + halfHeight], + [0 - halfWidth, 0 + halfHeight] + ].forEach(([x, y]) => { + const [targetX, targetY] = getRotatePos(x, y); + left = Math.min(left, targetX); + right = Math.max(right, targetX); + top = Math.min(top, targetY); + bottom = Math.max(bottom, targetY); + }); + const cutLeft = left + realMaxSize / 2; + const cutTop = top + realMaxSize / 2; + const cutWidth = right - left; + const cutHeight = bottom - top; + const realGapX = gapX * ratio; + const realGapY = gapY * ratio; + const filledWidth = (cutWidth + realGapX) * 2; + const filledHeight = cutHeight + realGapY; + const [fCtx, fCanvas] = prepareCanvas(filledWidth, filledHeight); + function drawImg(targetX = 0, targetY = 0) { + fCtx.drawImage(rCanvas, cutLeft, cutTop, cutWidth, cutHeight, targetX, targetY + baselineOffset, cutWidth, cutHeight); + } + drawImg(); + drawImg(cutWidth + realGapX, -cutHeight / 2 - realGapY / 2); + drawImg(cutWidth + realGapX, +cutHeight / 2 + realGapY / 2); + return [ + fCanvas.toDataURL(), + filledWidth / ratio, + filledHeight / ratio + ]; + } + return getClips; + } + +//#endregion +//#region ../../packages/components/watermark/src/watermark.vue?vue&type=script&setup=true&lang.ts + var watermark_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElWatermark", + __name: "watermark", + props: watermarkProps, + setup(__props) { + const style = { position: "relative" }; + const props = __props; + const fontGap = (0, vue.computed)(() => props.font?.fontGap ?? 3); + const color = (0, vue.computed)(() => props.font?.color ?? "rgba(0,0,0,.15)"); + const fontSize = (0, vue.computed)(() => props.font?.fontSize ?? 16); + const fontWeight = (0, vue.computed)(() => props.font?.fontWeight ?? "normal"); + const fontStyle = (0, vue.computed)(() => props.font?.fontStyle ?? "normal"); + const fontFamily = (0, vue.computed)(() => props.font?.fontFamily ?? "sans-serif"); + const textAlign = (0, vue.computed)(() => props.font?.textAlign ?? "center"); + const textBaseline = (0, vue.computed)(() => props.font?.textBaseline ?? "hanging"); + const gapX = (0, vue.computed)(() => props.gap[0]); + const gapY = (0, vue.computed)(() => props.gap[1]); + const gapXCenter = (0, vue.computed)(() => gapX.value / 2); + const gapYCenter = (0, vue.computed)(() => gapY.value / 2); + const offsetLeft = (0, vue.computed)(() => props.offset?.[0] ?? gapXCenter.value); + const offsetTop = (0, vue.computed)(() => props.offset?.[1] ?? gapYCenter.value); + const getMarkStyle = () => { + const markStyle = { + zIndex: props.zIndex, + position: "absolute", + left: 0, + top: 0, + width: "100%", + height: "100%", + pointerEvents: "none", + backgroundRepeat: "repeat" + }; + /** Calculate the style of the offset */ + let positionLeft = offsetLeft.value - gapXCenter.value; + let positionTop = offsetTop.value - gapYCenter.value; + if (positionLeft > 0) { + markStyle.left = `${positionLeft}px`; + markStyle.width = `calc(100% - ${positionLeft}px)`; + positionLeft = 0; + } + if (positionTop > 0) { + markStyle.top = `${positionTop}px`; + markStyle.height = `calc(100% - ${positionTop}px)`; + positionTop = 0; + } + markStyle.backgroundPosition = `${positionLeft}px ${positionTop}px`; + return markStyle; + }; + const containerRef = (0, vue.shallowRef)(null); + const watermarkRef = (0, vue.shallowRef)(); + const stopObservation = (0, vue.ref)(false); + const destroyWatermark = () => { + if (watermarkRef.value) { + watermarkRef.value.remove(); + watermarkRef.value = void 0; + } + }; + const appendWatermark = (base64Url, markWidth) => { + if (containerRef.value && watermarkRef.value) { + stopObservation.value = true; + watermarkRef.value.setAttribute("style", getStyleStr({ + ...getMarkStyle(), + backgroundImage: `url('${base64Url}')`, + backgroundSize: `${Math.floor(markWidth)}px` + })); + containerRef.value?.append(watermarkRef.value); + setTimeout(() => { + stopObservation.value = false; + }); + } + }; + /** + * Get the width and height of the watermark. The default values are as follows + * Image: [120, 64]; Content: It's calculated by content; + */ + const getMarkSize = (ctx) => { + let defaultWidth = 120; + let defaultHeight = 64; + let space = 0; + const { image, content, width, height, rotate } = props; + if (!image && ctx.measureText) { + ctx.font = `${Number(fontSize.value)}px ${fontFamily.value}`; + const contents = isArray$1(content) ? content : [content]; + let maxWidth = 0; + let maxHeight = 0; + contents.forEach((item) => { + const { width, fontBoundingBoxAscent, fontBoundingBoxDescent, actualBoundingBoxAscent, actualBoundingBoxDescent } = ctx.measureText(item); + const height = isUndefined(fontBoundingBoxAscent) ? actualBoundingBoxAscent + actualBoundingBoxDescent : fontBoundingBoxAscent + fontBoundingBoxDescent; + if (width > maxWidth) maxWidth = Math.ceil(width); + if (height > maxHeight) maxHeight = Math.ceil(height); + }); + defaultWidth = maxWidth; + defaultHeight = maxHeight * contents.length + (contents.length - 1) * fontGap.value; + const angle = Math.PI / 180 * Number(rotate); + space = Math.ceil(Math.abs(Math.sin(angle) * defaultHeight) / 2); + defaultWidth += space; + } + return [ + width ?? defaultWidth, + height ?? defaultHeight, + space + ]; + }; + const getClips = useClips(); + const renderWatermark = () => { + const ctx = document.createElement("canvas").getContext("2d"); + const image = props.image; + const content = props.content; + const rotate = props.rotate; + if (ctx) { + if (!watermarkRef.value) watermarkRef.value = document.createElement("div"); + const ratio = getPixelRatio(); + const [markWidth, markHeight, space] = getMarkSize(ctx); + const drawCanvas = (drawContent) => { + const [textClips, clipWidth] = getClips(drawContent || "", rotate, ratio, markWidth, markHeight, { + color: color.value, + fontSize: fontSize.value, + fontStyle: fontStyle.value, + fontWeight: fontWeight.value, + fontFamily: fontFamily.value, + fontGap: fontGap.value, + textAlign: textAlign.value, + textBaseline: textBaseline.value + }, gapX.value, gapY.value, space); + appendWatermark(textClips, clipWidth); + }; + if (image) { + const img = new Image(); + img.onload = () => { + drawCanvas(img); + }; + img.onerror = () => { + drawCanvas(content); + }; + img.crossOrigin = "anonymous"; + img.referrerPolicy = "no-referrer"; + img.src = image; + } else drawCanvas(content); + } + }; + (0, vue.onMounted)(() => { + renderWatermark(); + }); + (0, vue.watch)(() => props, () => { + renderWatermark(); + }, { + deep: true, + flush: "post" + }); + (0, vue.onBeforeUnmount)(() => { + destroyWatermark(); + }); + const onMutate = (mutations) => { + if (stopObservation.value) return; + mutations.forEach((mutation) => { + if (reRendering(mutation, watermarkRef.value)) { + destroyWatermark(); + renderWatermark(); + } + }); + }; + useMutationObserver(containerRef, onMutate, { + attributes: true, + subtree: true, + childList: true + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "containerRef", + ref: containerRef, + style: (0, vue.normalizeStyle)([style]) + }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 4); + }; + } + }); + +//#endregion +//#region ../../packages/components/watermark/src/watermark.vue + var watermark_default = watermark_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/watermark/index.ts + const ElWatermark = withInstall(watermark_default); + +//#endregion +//#region ../../packages/components/tour/src/content.ts + const tourStrategies = ["absolute", "fixed"]; + const tourPlacements = [ + "top-start", + "top-end", + "top", + "bottom-start", + "bottom-end", + "bottom", + "left-start", + "left-end", + "left", + "right-start", + "right-end", + "right" + ]; + /** + * @deprecated Removed after 3.0.0, Use `TourContentProps` instead. + */ + const tourContentProps = buildProps({ + placement: { + type: definePropType(String), + values: tourPlacements, + default: "bottom" + }, + reference: { + type: definePropType(Object), + default: null + }, + strategy: { + type: definePropType(String), + values: tourStrategies, + default: "absolute" + }, + offset: { + type: Number, + default: 10 + }, + showArrow: Boolean, + zIndex: { + type: Number, + default: 2001 + } + }); + const tourContentEmits = { close: () => true }; + +//#endregion +//#region ../../packages/components/tour/src/tour.ts +/** + * @deprecated Removed after 3.0.0, Use `TourProps` instead. + */ + const tourProps = buildProps({ + modelValue: Boolean, + current: { + type: Number, + default: 0 + }, + showArrow: { + type: Boolean, + default: true + }, + showClose: { + type: Boolean, + default: true + }, + closeIcon: { type: iconPropType }, + placement: tourContentProps.placement, + contentStyle: { type: definePropType([Object]) }, + mask: { + type: definePropType([Boolean, Object]), + default: true + }, + gap: { + type: definePropType(Object), + default: () => ({ + offset: 6, + radius: 2 + }) + }, + zIndex: { type: Number }, + scrollIntoViewOptions: { + type: definePropType([Boolean, Object]), + default: () => ({ block: "center" }) + }, + type: { type: definePropType(String) }, + appendTo: { + type: teleportProps.to.type, + default: "body" + }, + closeOnPressEscape: { + type: Boolean, + default: true + }, + targetAreaClickable: { + type: Boolean, + default: true + } + }); + const tourEmits = { + [UPDATE_MODEL_EVENT]: (value) => isBoolean(value), + ["update:current"]: (current) => isNumber(current), + close: (current) => isNumber(current), + finish: () => true, + change: (current) => isNumber(current) + }; + +//#endregion +//#region ../../packages/components/tour/src/mask.ts +/** + * @deprecated Removed after 3.0.0, Use `MaskProps` instead. + */ + const maskProps = buildProps({ + zIndex: { + type: Number, + default: 1001 + }, + visible: Boolean, + fill: { + type: String, + default: "rgba(0,0,0,0.5)" + }, + pos: { type: definePropType(Object) }, + targetAreaClickable: { + type: Boolean, + default: true + } + }); + +//#endregion +//#region ../../packages/components/tour/src/helper.ts + const useTarget = (target, open, gap, mergedMask, scrollIntoViewOptions) => { + const posInfo = (0, vue.ref)(null); + const getTargetEl = () => { + let targetEl; + if (isString(target.value)) targetEl = document.querySelector(target.value); + else if (isFunction$1(target.value)) targetEl = target.value(); + else targetEl = target.value; + return targetEl; + }; + const updatePosInfo = () => { + const targetEl = getTargetEl(); + if (!targetEl || !open.value) { + posInfo.value = null; + return; + } + if (!isInViewPort(targetEl)) targetEl.scrollIntoView(scrollIntoViewOptions.value); + const { left, top, width, height } = targetEl.getBoundingClientRect(); + posInfo.value = { + left, + top, + width, + height, + radius: 0 + }; + }; + (0, vue.onMounted)(() => { + (0, vue.watch)([open, target], () => { + updatePosInfo(); + }, { immediate: true }); + window.addEventListener("resize", updatePosInfo); + }); + (0, vue.onBeforeUnmount)(() => { + window.removeEventListener("resize", updatePosInfo); + }); + const getGapOffset = (index) => (isArray$1(gap.value.offset) ? gap.value.offset[index] : gap.value.offset) ?? 6; + const mergedPosInfo = (0, vue.computed)(() => { + if (!posInfo.value) return posInfo.value; + const gapOffsetX = getGapOffset(0); + const gapOffsetY = getGapOffset(1); + const gapRadius = gap.value?.radius || 2; + return { + left: posInfo.value.left - gapOffsetX, + top: posInfo.value.top - gapOffsetY, + width: posInfo.value.width + gapOffsetX * 2, + height: posInfo.value.height + gapOffsetY * 2, + radius: gapRadius + }; + }); + return { + mergedPosInfo, + triggerTarget: (0, vue.computed)(() => { + const targetEl = getTargetEl(); + if (!mergedMask.value || !targetEl || !window.DOMRect) return targetEl || void 0; + return { getBoundingClientRect() { + return window.DOMRect.fromRect({ + width: mergedPosInfo.value?.width || 0, + height: mergedPosInfo.value?.height || 0, + x: mergedPosInfo.value?.left || 0, + y: mergedPosInfo.value?.top || 0 + }); + } }; + }) + }; + }; + const tourKey = Symbol("ElTour"); + function isInViewPort(element) { + const viewWidth = window.innerWidth || document.documentElement.clientWidth; + const viewHeight = window.innerHeight || document.documentElement.clientHeight; + const { top, right, bottom, left } = element.getBoundingClientRect(); + return top >= 0 && left >= 0 && right <= viewWidth && bottom <= viewHeight; + } + const useFloating$1 = (referenceRef, contentRef, arrowRef, placement, strategy, offset$2, zIndex, showArrow) => { + const x = (0, vue.ref)(); + const y = (0, vue.ref)(); + const middlewareData = (0, vue.ref)({}); + const states = { + x, + y, + placement, + strategy, + middlewareData + }; + const middleware = (0, vue.computed)(() => { + const _middleware = [ + offset((0, vue.unref)(offset$2)), + flip(), + shift(), + overflowMiddleware() + ]; + if ((0, vue.unref)(showArrow) && (0, vue.unref)(arrowRef)) _middleware.push(arrow({ element: (0, vue.unref)(arrowRef) })); + return _middleware; + }); + const update = async () => { + if (!isClient) return; + const referenceEl = (0, vue.unref)(referenceRef); + const contentEl = (0, vue.unref)(contentRef); + if (!referenceEl || !contentEl) return; + const data = await computePosition(referenceEl, contentEl, { + placement: (0, vue.unref)(placement), + strategy: (0, vue.unref)(strategy), + middleware: (0, vue.unref)(middleware) + }); + keysOf(states).forEach((key) => { + states[key].value = data[key]; + }); + }; + const contentStyle = (0, vue.computed)(() => { + if (!(0, vue.unref)(referenceRef)) return { + position: "fixed", + top: "50%", + left: "50%", + transform: "translate3d(-50%, -50%, 0)", + maxWidth: "100vw", + zIndex: (0, vue.unref)(zIndex) + }; + const { overflow } = (0, vue.unref)(middlewareData); + return { + position: (0, vue.unref)(strategy), + zIndex: (0, vue.unref)(zIndex), + top: (0, vue.unref)(y) != null ? `${(0, vue.unref)(y)}px` : "", + left: (0, vue.unref)(x) != null ? `${(0, vue.unref)(x)}px` : "", + maxWidth: overflow?.maxWidth ? `${overflow?.maxWidth}px` : "" + }; + }); + const arrowStyle = (0, vue.computed)(() => { + if (!(0, vue.unref)(showArrow)) return {}; + const { arrow } = (0, vue.unref)(middlewareData); + return { + left: arrow?.x != null ? `${arrow?.x}px` : "", + top: arrow?.y != null ? `${arrow?.y}px` : "" + }; + }); + let cleanup; + (0, vue.onMounted)(() => { + const referenceEl = (0, vue.unref)(referenceRef); + const contentEl = (0, vue.unref)(contentRef); + if (referenceEl && contentEl) cleanup = autoUpdate(referenceEl, contentEl, update); + (0, vue.watchEffect)(() => { + update(); + }); + }); + (0, vue.onBeforeUnmount)(() => { + cleanup && cleanup(); + }); + return { + update, + contentStyle, + arrowStyle + }; + }; + const overflowMiddleware = () => { + return { + name: "overflow", + async fn(state) { + const overflow = await detectOverflow(state); + let overWidth = 0; + if (overflow.left > 0) overWidth = overflow.left; + if (overflow.right > 0) overWidth = overflow.right; + return { data: { maxWidth: state.rects.floating.width - overWidth } }; + } + }; + }; + +//#endregion +//#region ../../packages/components/tour/src/mask.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$8 = { style: { + width: "100%", + height: "100%" + } }; + const _hoisted_2$4 = ["d"]; + var mask_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTourMask", + inheritAttrs: false, + __name: "mask", + props: maskProps, + setup(__props) { + const props = __props; + const { ns } = (0, vue.inject)(tourKey); + const radius = (0, vue.computed)(() => props.pos?.radius ?? 2); + const roundInfo = (0, vue.computed)(() => { + const v = radius.value; + const baseInfo = `a${v},${v} 0 0 1`; + return { + topRight: `${baseInfo} ${v},${v}`, + bottomRight: `${baseInfo} ${-v},${v}`, + bottomLeft: `${baseInfo} ${-v},${-v}`, + topLeft: `${baseInfo} ${v},${-v}` + }; + }); + const { width: windowWidth, height: windowHeight } = useWindowSize(); + const path = (0, vue.computed)(() => { + const width = windowWidth.value; + const height = windowHeight.value; + const info = roundInfo.value; + const _path = `M${width},0 L0,0 L0,${height} L${width},${height} L${width},0 Z`; + const _radius = radius.value; + return props.pos ? `${_path} M${props.pos.left + _radius},${props.pos.top} h${props.pos.width - _radius * 2} ${info.topRight} v${props.pos.height - _radius * 2} ${info.bottomRight} h${-props.pos.width + _radius * 2} ${info.bottomLeft} v${-props.pos.height + _radius * 2} ${info.topLeft} z` : _path; + }); + const maskStyle = (0, vue.computed)(() => ({ + position: "fixed", + left: 0, + right: 0, + top: 0, + bottom: 0, + zIndex: props.zIndex, + pointerEvents: props.pos && props.targetAreaClickable ? "none" : "auto" + })); + const pathStyle = (0, vue.computed)(() => ({ + fill: props.fill, + pointerEvents: "auto", + cursor: "auto" + })); + useLockscreen((0, vue.toRef)(props, "visible"), { ns }); + return (_ctx, _cache) => { + return __props.visible ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", (0, vue.mergeProps)({ + key: 0, + class: (0, vue.unref)(ns).e("mask"), + style: maskStyle.value + }, _ctx.$attrs), [((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", _hoisted_1$8, [(0, vue.createElementVNode)("path", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("hollow")), + style: (0, vue.normalizeStyle)(pathStyle.value), + d: path.value + }, null, 14, _hoisted_2$4)]))], 16)) : (0, vue.createCommentVNode)("v-if", true); + }; + } + }); + +//#endregion +//#region ../../packages/components/tour/src/mask.vue + var mask_default = mask_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tour/src/content.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$7 = ["data-side"]; + var content_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTourContent", + __name: "content", + props: tourContentProps, + emits: tourContentEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const placement = (0, vue.ref)(props.placement); + const strategy = (0, vue.ref)(props.strategy); + const contentRef = (0, vue.ref)(null); + const arrowRef = (0, vue.ref)(null); + (0, vue.watch)(() => props.placement, () => { + placement.value = props.placement; + }); + const { contentStyle, arrowStyle } = useFloating$1((0, vue.toRef)(props, "reference"), contentRef, arrowRef, placement, strategy, (0, vue.toRef)(props, "offset"), (0, vue.toRef)(props, "zIndex"), (0, vue.toRef)(props, "showArrow")); + const side = (0, vue.computed)(() => { + return placement.value.split("-")[0]; + }); + const { ns } = (0, vue.inject)(tourKey); + const onCloseRequested = () => { + emit("close"); + }; + const onFocusoutPrevented = (event) => { + if (event.detail.focusReason === "pointer") event.preventDefault(); + }; + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "contentRef", + ref: contentRef, + style: (0, vue.normalizeStyle)((0, vue.unref)(contentStyle)), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")), + "data-side": side.value, + tabindex: "-1" + }, [(0, vue.createVNode)((0, vue.unref)(focus_trap_default), { + loop: "", + trapped: "", + "focus-start-el": "container", + "focus-trap-el": contentRef.value || void 0, + onReleaseRequested: onCloseRequested, + onFocusoutPrevented + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["focus-trap-el"]), __props.showArrow ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: 0, + ref_key: "arrowRef", + ref: arrowRef, + style: (0, vue.normalizeStyle)((0, vue.unref)(arrowStyle)), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("arrow")) + }, null, 6)) : (0, vue.createCommentVNode)("v-if", true)], 14, _hoisted_1$7); + }; + } + }); + +//#endregion +//#region ../../packages/components/tour/src/content.vue + var content_default$1 = content_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tour/src/steps.ts + var steps_default = (0, vue.defineComponent)({ + name: "ElTourSteps", + props: { current: { + type: Number, + default: 0 + } }, + emits: ["update-total"], + setup(props, { slots, emit }) { + let cacheTotal = 0; + return () => { + const children = slots.default?.(); + const result = []; + let total = 0; + function filterSteps(children) { + if (!isArray$1(children)) return; + children.forEach((item) => { + if ((item?.type || {})?.name === "ElTourStep") { + result.push(item); + total += 1; + } + }); + } + if (children.length) filterSteps(flattedChildren(children[0]?.children)); + if (cacheTotal !== total) { + cacheTotal = total; + emit("update-total", total); + } + if (result.length) return result[props.current]; + return null; + }; + } + }); + +//#endregion +//#region ../../packages/components/tour/src/tour.vue?vue&type=script&setup=true&lang.ts + var tour_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTour", + inheritAttrs: false, + __name: "tour", + props: tourProps, + emits: tourEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("tour"); + const total = (0, vue.ref)(0); + const currentStep = (0, vue.ref)(); + const current = useVModel(props, "current", emit, { passive: true }); + const currentTarget = (0, vue.computed)(() => currentStep.value?.target); + const kls = (0, vue.computed)(() => [ns.b(), mergedType.value === "primary" ? ns.m("primary") : ""]); + const mergedPlacement = (0, vue.computed)(() => currentStep.value?.placement || props.placement); + const mergedContentStyle = (0, vue.computed)(() => currentStep.value?.contentStyle ?? props.contentStyle); + const mergedMask = (0, vue.computed)(() => currentStep.value?.mask ?? props.mask); + const mergedShowMask = (0, vue.computed)(() => !!mergedMask.value && props.modelValue); + const mergedMaskStyle = (0, vue.computed)(() => isBoolean(mergedMask.value) ? void 0 : mergedMask.value); + const mergedShowArrow = (0, vue.computed)(() => !!currentTarget.value && (currentStep.value?.showArrow ?? props.showArrow)); + const mergedScrollIntoViewOptions = (0, vue.computed)(() => currentStep.value?.scrollIntoViewOptions ?? props.scrollIntoViewOptions); + const mergedType = (0, vue.computed)(() => currentStep.value?.type ?? props.type); + const { nextZIndex } = useZIndex(); + const nowZIndex = nextZIndex(); + const mergedZIndex = (0, vue.computed)(() => props.zIndex ?? nowZIndex); + const { mergedPosInfo: pos, triggerTarget } = useTarget(currentTarget, (0, vue.toRef)(props, "modelValue"), (0, vue.toRef)(props, "gap"), mergedMask, mergedScrollIntoViewOptions); + (0, vue.watch)(() => props.modelValue, (val) => { + if (!val) current.value = 0; + }); + const onEscClose = () => { + if (props.closeOnPressEscape) { + emit(UPDATE_MODEL_EVENT, false); + emit("close", current.value); + } + }; + const onUpdateTotal = (val) => { + total.value = val; + }; + const slots = (0, vue.useSlots)(); + (0, vue.provide)(tourKey, { + currentStep, + current, + total, + showClose: (0, vue.toRef)(props, "showClose"), + closeIcon: (0, vue.toRef)(props, "closeIcon"), + mergedType, + ns, + slots, + updateModelValue(modelValue) { + emit(UPDATE_MODEL_EVENT, modelValue); + }, + onClose() { + emit("close", current.value); + }, + onFinish() { + emit("finish"); + }, + onChange() { + emit(CHANGE_EVENT, current.value); + } + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [ + (0, vue.createVNode)((0, vue.unref)(ElTeleport), { to: __props.appendTo }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", (0, vue.mergeProps)({ class: kls.value }, _ctx.$attrs), [(0, vue.createVNode)(mask_default, { + visible: mergedShowMask.value, + fill: mergedMaskStyle.value?.color, + style: (0, vue.normalizeStyle)(mergedMaskStyle.value?.style), + pos: (0, vue.unref)(pos), + "z-index": mergedZIndex.value, + "target-area-clickable": __props.targetAreaClickable + }, null, 8, [ + "visible", + "fill", + "style", + "pos", + "z-index", + "target-area-clickable" + ]), __props.modelValue ? ((0, vue.openBlock)(), (0, vue.createBlock)(content_default$1, { + key: (0, vue.unref)(current), + reference: (0, vue.unref)(triggerTarget), + placement: mergedPlacement.value, + "show-arrow": mergedShowArrow.value, + "z-index": mergedZIndex.value, + style: (0, vue.normalizeStyle)(mergedContentStyle.value), + onClose: onEscClose + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(steps_default), { + current: (0, vue.unref)(current), + onUpdateTotal + }, { + default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]), + _: 3 + }, 8, ["current"])]), + _: 3 + }, 8, [ + "reference", + "placement", + "show-arrow", + "z-index", + "style" + ])) : (0, vue.createCommentVNode)("v-if", true)], 16)]), + _: 3 + }, 8, ["to"]), + (0, vue.createCommentVNode)(" just for IDE "), + (0, vue.createCommentVNode)("v-if", true) + ], 64); + }; + } + }); + +//#endregion +//#region ../../packages/components/tour/src/tour.vue + var tour_default = tour_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tour/src/step.ts +/** + * @deprecated Removed after 3.0.0, Use `TourStepProps` instead. + */ + const tourStepProps = buildProps({ + target: { type: definePropType([ + String, + Object, + Function + ]) }, + title: String, + description: String, + showClose: { + type: Boolean, + default: void 0 + }, + closeIcon: { type: iconPropType }, + showArrow: { + type: Boolean, + default: void 0 + }, + placement: tourContentProps.placement, + mask: { + type: definePropType([Boolean, Object]), + default: void 0 + }, + contentStyle: { type: definePropType([Object]) }, + prevButtonProps: { type: definePropType(Object) }, + nextButtonProps: { type: definePropType(Object) }, + scrollIntoViewOptions: { + type: definePropType([Boolean, Object]), + default: void 0 + }, + type: { type: definePropType(String) } + }); + const tourStepEmits = { close: () => true }; + +//#endregion +//#region ../../packages/components/tour/src/step.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$6 = ["aria-label"]; + var step_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElTourStep", + __name: "step", + props: tourStepProps, + emits: tourStepEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const { Close } = CloseComponents; + const { t } = useLocale(); + const { currentStep, current, total, showClose, closeIcon, mergedType, ns, slots: tourSlots, updateModelValue, onClose: tourOnClose, onFinish: tourOnFinish, onChange } = (0, vue.inject)(tourKey); + (0, vue.watch)(props, (val) => { + currentStep.value = val; + }, { immediate: true }); + const mergedShowClose = (0, vue.computed)(() => props.showClose ?? showClose.value); + const mergedCloseIcon = (0, vue.computed)(() => props.closeIcon ?? closeIcon.value ?? Close); + const filterButtonProps = (btnProps) => { + if (!btnProps) return; + return omit(btnProps, ["children", "onClick"]); + }; + const onPrev = () => { + current.value -= 1; + if (props.prevButtonProps?.onClick) props.prevButtonProps?.onClick(); + onChange(); + }; + const onNext = () => { + if (current.value >= total.value - 1) onFinish(); + else current.value += 1; + if (props.nextButtonProps?.onClick) props.nextButtonProps.onClick(); + onChange(); + }; + const onFinish = () => { + onClose(); + tourOnFinish(); + }; + const onClose = () => { + updateModelValue(false); + tourOnClose(); + emit("close"); + }; + const handleKeydown = (e) => { + if (e.target?.isContentEditable) return; + switch (getEventCode(e)) { + case EVENT_CODE.left: + e.preventDefault(); + current.value > 0 && onPrev(); + break; + case EVENT_CODE.right: + e.preventDefault(); + onNext(); + break; + } + }; + (0, vue.onMounted)(() => { + window.addEventListener("keydown", handleKeydown); + }); + (0, vue.onBeforeUnmount)(() => { + window.removeEventListener("keydown", handleKeydown); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [ + mergedShowClose.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + "aria-label": (0, vue.unref)(t)("el.tour.close"), + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("closebtn")), + type: "button", + onClick: onClose + }, [(0, vue.createVNode)((0, vue.unref)(ElIcon), { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("close")) }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(mergedCloseIcon.value)))]), + _: 1 + }, 8, ["class"])], 10, _hoisted_1$6)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("header", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("header"), { "show-close": (0, vue.unref)(showClose) }]) }, [(0, vue.renderSlot)(_ctx.$slots, "header", {}, () => [(0, vue.createElementVNode)("span", { + role: "heading", + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")) + }, (0, vue.toDisplayString)(__props.title), 3)])], 2), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("body")) }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(__props.description), 1)])], 2), + (0, vue.createElementVNode)("footer", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("footer")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("indicators")) }, [(0, vue.unref)(tourSlots).indicators ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)((0, vue.unref)(tourSlots).indicators), { + key: 0, + current: (0, vue.unref)(current), + total: (0, vue.unref)(total) + }, null, 8, ["current", "total"])) : ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, (0, vue.renderList)((0, vue.unref)(total), (item, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("span", { + key: item, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("indicator"), (0, vue.unref)(ns).is("active", index === (0, vue.unref)(current))]) + }, null, 2); + }), 128))], 2), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("buttons")) }, [(0, vue.unref)(current) > 0 ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElButton), (0, vue.mergeProps)({ + key: 0, + size: "small", + type: (0, vue.unref)(mergedType) + }, filterButtonProps(__props.prevButtonProps), { onClick: onPrev }), { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.prevButtonProps?.children ?? (0, vue.unref)(t)("el.tour.previous")), 1)]), + _: 1 + }, 16, ["type"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.unref)(current) <= (0, vue.unref)(total) - 1 ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElButton), (0, vue.mergeProps)({ + key: 1, + size: "small", + type: (0, vue.unref)(mergedType) === "primary" ? "default" : "primary" + }, filterButtonProps(__props.nextButtonProps), { onClick: onNext }), { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.nextButtonProps?.children ?? ((0, vue.unref)(current) === (0, vue.unref)(total) - 1 ? (0, vue.unref)(t)("el.tour.finish") : (0, vue.unref)(t)("el.tour.next"))), 1)]), + _: 1 + }, 16, ["type"])) : (0, vue.createCommentVNode)("v-if", true)], 2)], 2) + ], 64); + }; + } + }); + +//#endregion +//#region ../../packages/components/tour/src/step.vue + var step_default = step_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/tour/index.ts + const ElTour = withInstall(tour_default, { TourStep: step_default }); + const ElTourStep = withNoopInstall(step_default); + +//#endregion +//#region ../../packages/components/anchor/src/anchor.ts +/** + * @deprecated Removed after 3.0.0, Use `AnchorProps` instead. + */ + const anchorProps = buildProps({ + container: { type: definePropType([String, Object]) }, + offset: { + type: Number, + default: 0 + }, + bound: { + type: Number, + default: 15 + }, + duration: { + type: Number, + default: 300 + }, + marker: { + type: Boolean, + default: true + }, + type: { + type: definePropType(String), + default: "default" + }, + direction: { + type: definePropType(String), + default: "vertical" + }, + selectScrollTop: Boolean + }); + const anchorEmits = { + change: (href) => isString(href), + click: (e, href) => e instanceof MouseEvent && (isString(href) || isUndefined(href)) + }; + +//#endregion +//#region ../../packages/components/anchor/src/constants.ts + const anchorKey = Symbol("anchor"); + +//#endregion +//#region ../../packages/components/anchor/src/anchor.vue?vue&type=script&setup=true&lang.ts + var anchor_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAnchor", + __name: "anchor", + props: anchorProps, + emits: anchorEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const slots = (0, vue.useSlots)(); + const currentAnchor = (0, vue.ref)(""); + const markerStyle = (0, vue.ref)({}); + const anchorRef = (0, vue.ref)(null); + const markerRef = (0, vue.ref)(null); + const containerEl = (0, vue.ref)(); + const links = {}; + let isScrolling = false; + let currentScrollTop = 0; + const ns = useNamespace("anchor"); + const cls = (0, vue.computed)(() => [ + ns.b(), + props.type === "underline" ? ns.m("underline") : "", + ns.m(props.direction) + ]); + const addLink = (state) => { + links[state.href] = state.el; + }; + const removeLink = (href) => { + delete links[href]; + }; + const setCurrentAnchor = (href) => { + if (currentAnchor.value !== href) { + currentAnchor.value = href; + emit(CHANGE_EVENT, href); + } + }; + let clearAnimate = null; + let currentTargetHref = ""; + const scrollToAnchor = (href) => { + if (!containerEl.value) return; + const target = getElement(href); + if (!target) return; + if (clearAnimate) { + if (currentTargetHref === href) return; + clearAnimate(); + } + currentTargetHref = href; + isScrolling = true; + const scrollEle = getScrollElement(target, containerEl.value); + const distance = getOffsetTopDistance(target, scrollEle); + const max = scrollEle.scrollHeight - scrollEle.clientHeight; + const to = Math.min(distance - props.offset, max); + clearAnimate = animateScrollTo(containerEl.value, currentScrollTop, to, props.duration, () => { + setTimeout(() => { + isScrolling = false; + currentTargetHref = ""; + }, 20); + }); + }; + const scrollTo = (href) => { + if (href) { + setCurrentAnchor(href); + scrollToAnchor(href); + } + }; + const handleClick = (e, href) => { + emit("click", e, href); + scrollTo(href); + }; + const handleScroll = throttleByRaf(() => { + if (containerEl.value) currentScrollTop = getScrollTop(containerEl.value); + const currentHref = getCurrentHref(); + if (isScrolling || isUndefined(currentHref)) return; + setCurrentAnchor(currentHref); + }); + const getCurrentHref = () => { + if (!containerEl.value) return; + const scrollTop = getScrollTop(containerEl.value); + const anchorTopList = []; + for (const href of Object.keys(links)) { + const target = getElement(href); + if (!target) continue; + const distance = getOffsetTopDistance(target, getScrollElement(target, containerEl.value)); + anchorTopList.push({ + top: distance - props.offset - props.bound, + href + }); + } + anchorTopList.sort((prev, next) => prev.top - next.top); + for (let i = 0; i < anchorTopList.length; i++) { + const item = anchorTopList[i]; + const next = anchorTopList[i + 1]; + if (i === 0 && scrollTop === 0) return props.selectScrollTop ? item.href : ""; + if (item.top <= scrollTop && (!next || next.top > scrollTop)) return item.href; + } + }; + const getContainer = () => { + const el = getElement(props.container); + if (!el || isWindow(el)) containerEl.value = window; + else containerEl.value = el; + }; + useEventListener(containerEl, "scroll", handleScroll); + const updateMarkerStyle = () => { + (0, vue.nextTick)(() => { + if (!anchorRef.value || !markerRef.value || !currentAnchor.value) { + markerStyle.value = {}; + return; + } + const currentLinkEl = links[currentAnchor.value]; + if (!currentLinkEl) { + markerStyle.value = {}; + return; + } + const anchorRect = anchorRef.value.getBoundingClientRect(); + const markerRect = markerRef.value.getBoundingClientRect(); + const linkRect = currentLinkEl.getBoundingClientRect(); + if (props.direction === "horizontal") markerStyle.value = { + left: `${linkRect.left - anchorRect.left}px`, + width: `${linkRect.width}px`, + opacity: 1 + }; + else markerStyle.value = { + top: `${linkRect.top - anchorRect.top + (linkRect.height - markerRect.height) / 2}px`, + opacity: 1 + }; + }); + }; + (0, vue.watch)(currentAnchor, updateMarkerStyle); + (0, vue.watch)(() => slots.default?.(), updateMarkerStyle); + (0, vue.onMounted)(() => { + getContainer(); + const hash = decodeURIComponent(window.location.hash); + if (getElement(hash)) scrollTo(hash); + else handleScroll(); + }); + (0, vue.watch)(() => props.container, () => { + getContainer(); + }); + (0, vue.provide)(anchorKey, { + ns, + direction: props.direction, + currentAnchor, + addLink, + removeLink, + handleClick + }); + __expose({ scrollTo }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "anchorRef", + ref: anchorRef, + class: (0, vue.normalizeClass)(cls.value) + }, [__props.marker ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref_key: "markerRef", + ref: markerRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("marker")), + style: (0, vue.normalizeStyle)(markerStyle.value) + }, null, 6)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("list")) }, [(0, vue.renderSlot)(_ctx.$slots, "default")], 2)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/anchor/src/anchor.vue + var anchor_default = anchor_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/anchor/src/anchor-link.ts +/** + * @deprecated Removed after 3.0.0, Use `AnchorLinkProps` instead. + */ + const anchorLinkProps = buildProps({ + title: String, + href: String + }); + +//#endregion +//#region ../../packages/components/anchor/src/anchor-link.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$5 = ["href"]; + var anchor_link_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElAnchorLink", + __name: "anchor-link", + props: anchorLinkProps, + setup(__props) { + const props = __props; + const linkRef = (0, vue.ref)(null); + const { ns, direction, currentAnchor, addLink, removeLink, handleClick: contextHandleClick } = (0, vue.inject)(anchorKey); + const cls = (0, vue.computed)(() => [ns.e("link"), ns.is("active", currentAnchor.value === props.href)]); + const handleClick = (e) => { + contextHandleClick(e, props.href); + }; + (0, vue.watch)(() => props.href, (val, oldVal) => { + (0, vue.nextTick)(() => { + if (oldVal) removeLink(oldVal); + if (val) addLink({ + href: val, + el: linkRef.value + }); + }); + }); + (0, vue.onMounted)(() => { + const { href } = props; + if (href) addLink({ + href, + el: linkRef.value + }); + }); + (0, vue.onBeforeUnmount)(() => { + const { href } = props; + if (href) removeLink(href); + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("item")) }, [(0, vue.createElementVNode)("a", { + ref_key: "linkRef", + ref: linkRef, + class: (0, vue.normalizeClass)(cls.value), + href: __props.href, + onClick: handleClick + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(__props.title), 1)])], 10, _hoisted_1$5), _ctx.$slots["sub-link"] && (0, vue.unref)(direction) === "vertical" ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("list")) + }, [(0, vue.renderSlot)(_ctx.$slots, "sub-link")], 2)) : (0, vue.createCommentVNode)("v-if", true)], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/anchor/src/anchor-link.vue + var anchor_link_default = anchor_link_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/anchor/index.ts + const ElAnchor = withInstall(anchor_default, { AnchorLink: anchor_link_default }); + const ElAnchorLink = withNoopInstall(anchor_link_default); + +//#endregion +//#region ../../packages/components/segmented/src/segmented.ts + const defaultProps = { + label: "label", + value: "value", + disabled: "disabled" + }; + /** + * @deprecated Removed after 3.0.0, Use `SegmentedProps` instead. + */ + const segmentedProps = buildProps({ + direction: { + type: definePropType(String), + default: "horizontal" + }, + options: { + type: definePropType(Array), + default: () => [] + }, + modelValue: { + type: [ + String, + Number, + Boolean + ], + default: void 0 + }, + props: { + type: definePropType(Object), + default: () => defaultProps + }, + block: Boolean, + size: useSizeProp, + disabled: { + type: Boolean, + default: void 0 + }, + validateEvent: { + type: Boolean, + default: true + }, + id: String, + name: String, + ...useAriaProps(["ariaLabel"]) + }); + const segmentedEmits = { + [UPDATE_MODEL_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val), + [CHANGE_EVENT]: (val) => isString(val) || isNumber(val) || isBoolean(val) + }; + +//#endregion +//#region ../../packages/components/segmented/src/segmented.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$4 = [ + "id", + "aria-label", + "aria-labelledby" + ]; + const _hoisted_2$3 = [ + "name", + "disabled", + "checked", + "onChange" + ]; + var segmented_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSegmented", + __name: "segmented", + props: segmentedProps, + emits: segmentedEmits, + setup(__props, { emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("segmented"); + const segmentedId = useId(); + const segmentedSize = useFormSize(); + const _disabled = useFormDisabled(); + const { formItem } = useFormItem(); + const { inputId, isLabeledByFormItem } = useFormItemInputId(props, { formItemContext: formItem }); + const segmentedRef = (0, vue.ref)(null); + const activeElement = useActiveElement(); + const state = (0, vue.reactive)({ + isInit: false, + width: 0, + height: 0, + translateX: 0, + translateY: 0, + focusVisible: false + }); + const handleChange = (evt, item) => { + const value = getValue(item); + emit(UPDATE_MODEL_EVENT, value); + emit(CHANGE_EVENT, value); + evt.target.checked = value === props.modelValue; + }; + const aliasProps = (0, vue.computed)(() => ({ + ...defaultProps, + ...props.props + })); + const getValue = (item) => { + return isObject$1(item) ? item[aliasProps.value.value] : item; + }; + const getLabel = (item) => { + return isObject$1(item) ? item[aliasProps.value.label] : item; + }; + const getDisabled = (item) => { + return !!(_disabled.value || (isObject$1(item) ? item[aliasProps.value.disabled] : false)); + }; + const getSelected = (item) => { + return props.modelValue === getValue(item); + }; + const getOption = (value) => { + return props.options.find((item) => getValue(item) === value); + }; + const getItemCls = (item) => { + return [ + ns.e("item"), + ns.is("selected", getSelected(item)), + ns.is("disabled", getDisabled(item)) + ]; + }; + const updateSelect = () => { + if (!segmentedRef.value) return; + const selectedItem = segmentedRef.value.querySelector(".is-selected"); + const selectedItemInput = segmentedRef.value.querySelector(".is-selected input"); + if (!selectedItem || !selectedItemInput) { + state.width = 0; + state.height = 0; + state.translateX = 0; + state.translateY = 0; + state.focusVisible = false; + return; + } + state.isInit = true; + if (props.direction === "vertical") { + state.height = selectedItem.offsetHeight; + state.translateY = selectedItem.offsetTop; + } else { + state.width = selectedItem.offsetWidth; + state.translateX = selectedItem.offsetLeft; + } + try { + state.focusVisible = selectedItemInput.matches(":focus-visible"); + } catch {} + }; + const segmentedCls = (0, vue.computed)(() => [ + ns.b(), + ns.m(segmentedSize.value), + ns.is("block", props.block) + ]); + const selectedStyle = (0, vue.computed)(() => ({ + width: props.direction === "vertical" ? "100%" : `${state.width}px`, + height: props.direction === "vertical" ? `${state.height}px` : "100%", + transform: props.direction === "vertical" ? `translateY(${state.translateY}px)` : `translateX(${state.translateX}px)`, + display: state.isInit ? "block" : "none" + })); + const selectedCls = (0, vue.computed)(() => [ + ns.e("item-selected"), + ns.is("disabled", getDisabled(getOption(props.modelValue))), + ns.is("focus-visible", state.focusVisible) + ]); + const name = (0, vue.computed)(() => { + return props.name || segmentedId.value; + }); + useResizeObserver(segmentedRef, updateSelect); + (0, vue.watch)(activeElement, updateSelect); + (0, vue.watch)(() => props.modelValue, () => { + updateSelect(); + if (props.validateEvent) formItem?.validate?.("change").catch((err) => /* @__PURE__ */ debugWarn(err)); + }, { flush: "post" }); + return (_ctx, _cache) => { + return __props.options.length ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + id: (0, vue.unref)(inputId), + ref_key: "segmentedRef", + ref: segmentedRef, + class: (0, vue.normalizeClass)(segmentedCls.value), + role: "radiogroup", + "aria-label": !(0, vue.unref)(isLabeledByFormItem) ? __props.ariaLabel || "segmented" : void 0, + "aria-labelledby": (0, vue.unref)(isLabeledByFormItem) ? (0, vue.unref)(formItem).labelId : void 0 + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("group"), (0, vue.unref)(ns).m(__props.direction)]) }, [(0, vue.createElementVNode)("div", { + style: (0, vue.normalizeStyle)(selectedStyle.value), + class: (0, vue.normalizeClass)(selectedCls.value) + }, null, 6), ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.options, (item, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("label", { + key: index, + class: (0, vue.normalizeClass)(getItemCls(item)) + }, [(0, vue.createElementVNode)("input", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("item-input")), + type: "radio", + name: name.value, + disabled: getDisabled(item), + checked: getSelected(item), + onChange: ($event) => handleChange($event, item) + }, null, 42, _hoisted_2$3), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("item-label")) }, [(0, vue.renderSlot)(_ctx.$slots, "default", { item }, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)(getLabel(item)), 1)])], 2)], 2); + }), 128))], 2)], 10, _hoisted_1$4)) : (0, vue.createCommentVNode)("v-if", true); + }; + } + }); + +//#endregion +//#region ../../packages/components/segmented/src/segmented.vue + var segmented_default = segmented_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/segmented/index.ts + const ElSegmented = withInstall(segmented_default); + +//#endregion +//#region ../../packages/components/mention/src/helper.ts + const filterOption = (pattern, option) => { + const lowerCase = pattern.toLowerCase(); + return (option.label || option.value || "").toLowerCase().includes(lowerCase); + }; + const getMentionCtx = (inputEl, prefix, split) => { + const { selectionEnd } = inputEl; + if (selectionEnd === null) return; + const inputValue = inputEl.value; + const prefixArray = castArray$1(prefix); + let splitIndex = -1; + let mentionCtx; + for (let i = selectionEnd - 1; i >= 0; --i) { + const char = inputValue[i]; + if (splitIndex === -1 && (char === split || char === "\n" || char === "\r")) { + splitIndex = i; + continue; + } + if (prefixArray.includes(char)) { + const end = splitIndex === -1 ? selectionEnd : splitIndex; + mentionCtx = { + pattern: inputValue.slice(i + 1, end), + start: i + 1, + end, + prefix: char, + prefixIndex: i, + splitIndex, + selectionEnd + }; + break; + } + } + return mentionCtx; + }; + /** + * fork from textarea-caret-position + * https://github.com/component/textarea-caret-position + * The MIT License (MIT) + * Copyright (c) 2015 Jonathan Ong me@jongleberry.com + * 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. + */ + const getCursorPosition = (element, options = { + debug: false, + useSelectionEnd: false + }) => { + const selectionStart = element.selectionStart !== null ? element.selectionStart : 0; + const selectionEnd = element.selectionEnd !== null ? element.selectionEnd : 0; + const position = options.useSelectionEnd ? selectionEnd : selectionStart; + const properties = [ + "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" + ]; + if (options.debug) { + const el = document.querySelector("#input-textarea-caret-position-mirror-div"); + if (el?.parentNode) el.parentNode.removeChild(el); + } + const div = document.createElement("div"); + div.id = "input-textarea-caret-position-mirror-div"; + document.body.appendChild(div); + const style = div.style; + const computed = window.getComputedStyle(element); + const isInput = element.nodeName === "INPUT"; + style.whiteSpace = isInput ? "nowrap" : "pre-wrap"; + if (!isInput) style.wordWrap = "break-word"; + style.position = "absolute"; + if (!options.debug) style.visibility = "hidden"; + properties.forEach((prop) => { + if (isInput && prop === "lineHeight") if (computed.boxSizing === "border-box") { + const height = Number.parseInt(computed.height); + const outerHeight = Number.parseInt(computed.paddingTop) + Number.parseInt(computed.paddingBottom) + Number.parseInt(computed.borderTopWidth) + Number.parseInt(computed.borderBottomWidth); + const targetHeight = outerHeight + Number.parseInt(computed.lineHeight); + if (height > targetHeight) style.lineHeight = `${height - outerHeight}px`; + else if (height === targetHeight) style.lineHeight = computed.lineHeight; + else style.lineHeight = "0"; + } else style.lineHeight = computed.height; + else style[prop] = computed[prop]; + }); + if (isFirefox()) { + if (element.scrollHeight > Number.parseInt(computed.height)) style.overflowY = "scroll"; + } else style.overflow = "hidden"; + div.textContent = element.value.slice(0, Math.max(0, position)); + if (isInput && div.textContent) div.textContent = div.textContent.replace(/\s/g, "\xA0"); + const span = document.createElement("span"); + span.textContent = element.value.slice(Math.max(0, position)) || "."; + span.style.position = "relative"; + span.style.left = `${-element.scrollLeft}px`; + span.style.top = `${-element.scrollTop}px`; + div.appendChild(span); + const relativePosition = { + top: span.offsetTop + Number.parseInt(computed.borderTopWidth), + left: span.offsetLeft + Number.parseInt(computed.borderLeftWidth), + height: Number.parseInt(computed.fontSize) * 1.5 + }; + if (options.debug) span.style.backgroundColor = "#aaa"; + else document.body.removeChild(div); + if (relativePosition.left >= element.clientWidth) relativePosition.left = element.clientWidth; + return relativePosition; + }; + +//#endregion +//#region ../../packages/components/mention/src/mention.ts +/** + * @deprecated Removed after 3.0.0, Use `MentionProps` instead. + */ + const mentionProps = buildProps({ + ...inputProps, + options: { + type: definePropType(Array), + default: () => [] + }, + prefix: { + type: definePropType([String, Array]), + default: "@", + validator: (val) => { + if (isString(val)) return val.length === 1; + return val.every((v) => isString(v) && v.length === 1); + } + }, + split: { + type: String, + default: " ", + validator: (val) => val.length === 1 + }, + filterOption: { + type: definePropType([Boolean, Function]), + default: () => filterOption, + validator: (val) => { + if (val === false) return true; + return isFunction$1(val); + } + }, + placement: { + type: definePropType(String), + default: "bottom" + }, + showArrow: Boolean, + offset: { + type: Number, + default: 0 + }, + whole: Boolean, + checkIsWhole: { type: definePropType(Function) }, + modelValue: String, + loading: Boolean, + popperClass: useTooltipContentProps.popperClass, + popperStyle: useTooltipContentProps.popperStyle, + popperOptions: { + type: definePropType(Object), + default: () => ({}) + }, + props: { + type: definePropType(Object), + default: () => mentionDefaultProps + } + }); + const mentionEmits = { + [UPDATE_MODEL_EVENT]: (value) => isString(value), + "whole-remove": (pattern, prefix) => isString(pattern) && isString(prefix), + input: (value) => isString(value), + search: (pattern, prefix) => isString(pattern) && isString(prefix), + select: (option, prefix) => isObject$1(option) && isString(prefix), + focus: (evt) => evt instanceof FocusEvent, + blur: (evt) => evt instanceof FocusEvent + }; + const mentionDefaultProps = { + value: "value", + label: "label", + disabled: "disabled" + }; + +//#endregion +//#region ../../packages/components/mention/src/mention-dropdown.ts +/** + * @deprecated Removed after 3.0.0, Use `MentionDropdownProps` instead. + */ + const mentionDropdownProps = buildProps({ + options: { + type: definePropType(Array), + default: () => [] + }, + loading: Boolean, + disabled: Boolean, + contentId: String, + ariaLabel: String + }); + const mentionDropdownEmits = { select: (option) => isString(option.value) }; + +//#endregion +//#region ../../packages/components/mention/src/mention-dropdown.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$3 = [ + "id", + "aria-disabled", + "aria-selected", + "onMousemove", + "onClick" + ]; + var mention_dropdown_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElMentionDropdown", + __name: "mention-dropdown", + props: mentionDropdownProps, + emits: mentionDropdownEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const ns = useNamespace("mention"); + const { t } = useLocale(); + const hoveringIndex = (0, vue.ref)(-1); + const scrollbarRef = (0, vue.ref)(); + const optionRefs = (0, vue.ref)(); + const dropdownRef = (0, vue.ref)(); + const optionkls = (item, index) => [ + ns.be("dropdown", "item"), + ns.is("hovering", hoveringIndex.value === index), + ns.is("disabled", item.disabled || props.disabled) + ]; + const handleSelect = (item) => { + if (item.disabled || props.disabled) return; + emit("select", item); + }; + const handleMouseEnter = (index) => { + hoveringIndex.value = index; + }; + const filteredAllDisabled = (0, vue.computed)(() => props.disabled || props.options.every((item) => item.disabled)); + const hoverOption = (0, vue.computed)(() => props.options[hoveringIndex.value]); + const selectHoverOption = () => { + if (!hoverOption.value || hoverOption.value.disabled || props.disabled) return; + emit("select", hoverOption.value); + }; + const navigateOptions = (direction) => { + const { options } = props; + if (options.length === 0 || filteredAllDisabled.value) return; + if (direction === "next") { + hoveringIndex.value++; + if (hoveringIndex.value === options.length) hoveringIndex.value = 0; + } else if (direction === "prev") { + hoveringIndex.value--; + if (hoveringIndex.value < 0) hoveringIndex.value = options.length - 1; + } + const option = options[hoveringIndex.value]; + if (option.disabled) { + navigateOptions(direction); + return; + } + (0, vue.nextTick)(() => scrollToOption(option)); + }; + const scrollToOption = (option) => { + const { options } = props; + const index = options.findIndex((item) => item.value === option.value); + const target = optionRefs.value?.[index]; + if (target) { + const menu = dropdownRef.value?.querySelector?.(`.${ns.be("dropdown", "wrap")}`); + if (menu) scrollIntoView(menu, target); + } + scrollbarRef.value?.handleScroll(); + }; + const resetHoveringIndex = () => { + if (filteredAllDisabled.value || props.options.length === 0) hoveringIndex.value = -1; + else hoveringIndex.value = props.options.findIndex((item) => !item.disabled); + }; + (0, vue.watch)(() => props.options, resetHoveringIndex, { immediate: true }); + __expose({ + hoveringIndex, + navigateOptions, + selectHoverOption, + hoverOption + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "dropdownRef", + ref: dropdownRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b("dropdown")) + }, [ + _ctx.$slots.header ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("dropdown", "header")) + }, [(0, vue.renderSlot)(_ctx.$slots, "header")], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.withDirectives)((0, vue.createVNode)((0, vue.unref)(ElScrollbar), { + id: __props.contentId, + ref_key: "scrollbarRef", + ref: scrollbarRef, + tag: "ul", + "wrap-class": (0, vue.unref)(ns).be("dropdown", "wrap"), + "view-class": (0, vue.unref)(ns).be("dropdown", "list"), + role: "listbox", + "aria-label": __props.ariaLabel, + "aria-orientation": "vertical" + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.options, (item, index) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", { + id: `${__props.contentId}-${index}`, + ref_for: true, + ref_key: "optionRefs", + ref: optionRefs, + key: index, + class: (0, vue.normalizeClass)(optionkls(item, index)), + role: "option", + "aria-disabled": item.disabled || __props.disabled || void 0, + "aria-selected": hoveringIndex.value === index, + onMousemove: ($event) => handleMouseEnter(index), + onClick: (0, vue.withModifiers)(($event) => handleSelect(item), ["stop"]) + }, [(0, vue.renderSlot)(_ctx.$slots, "label", { + item, + index + }, () => [(0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(item.label ?? item.value), 1)])], 42, _hoisted_1$3); + }), 128))]), + _: 3 + }, 8, [ + "id", + "wrap-class", + "view-class", + "aria-label" + ]), [[vue.vShow, __props.options.length > 0 && !__props.loading]]), + __props.loading ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("dropdown", "loading")) + }, [(0, vue.renderSlot)(_ctx.$slots, "loading", {}, () => [(0, vue.createTextVNode)((0, vue.toDisplayString)((0, vue.unref)(t)("el.mention.loading")), 1)])], 2)) : (0, vue.createCommentVNode)("v-if", true), + _ctx.$slots.footer ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("dropdown", "footer")) + }, [(0, vue.renderSlot)(_ctx.$slots, "footer")], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/mention/src/mention-dropdown.vue + var mention_dropdown_default = mention_dropdown_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/mention/src/mention.vue?vue&type=script&setup=true&lang.ts + var mention_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElMention", + inheritAttrs: false, + __name: "mention", + props: mentionProps, + emits: mentionEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const props = __props; + const emit = __emit; + const passInputProps = (0, vue.computed)(() => { + const inputProps = ElInput.props ?? []; + return pick(props, isArray$1(inputProps) ? inputProps : Object.keys(inputProps)); + }); + const ns = useNamespace("mention"); + const disabled = useFormDisabled(); + const contentId = useId(); + const elInputRef = (0, vue.ref)(); + const tooltipRef = (0, vue.ref)(); + const dropdownRef = (0, vue.ref)(); + const visible = (0, vue.ref)(false); + const cursorStyle = (0, vue.ref)(); + const mentionCtx = (0, vue.ref)(); + const computedPlacement = (0, vue.computed)(() => props.showArrow ? props.placement : `${props.placement}-start`); + const computedFallbackPlacements = (0, vue.computed)(() => props.showArrow ? ["bottom", "top"] : ["bottom-start", "top-start"]); + const aliasProps = (0, vue.computed)(() => ({ + ...mentionDefaultProps, + ...props.props + })); + const mapOption = (option) => { + const base = { + label: option[aliasProps.value.label], + value: option[aliasProps.value.value], + disabled: option[aliasProps.value.disabled] + }; + return { + ...option, + ...base + }; + }; + const options = (0, vue.computed)(() => props.options.map(mapOption)); + const filteredOptions = (0, vue.computed)(() => { + const { filterOption } = props; + if (!mentionCtx.value || !filterOption) return options.value; + return options.value.filter((option) => filterOption(mentionCtx.value.pattern, option)); + }); + const dropdownVisible = (0, vue.computed)(() => { + return visible.value && (!!filteredOptions.value.length || props.loading); + }); + const hoveringId = (0, vue.computed)(() => { + return `${contentId.value}-${dropdownRef.value?.hoveringIndex}`; + }); + const handleInputChange = (value) => { + emit(UPDATE_MODEL_EVENT, value); + emit(INPUT_EVENT, value); + syncAfterCursorMove(); + }; + const handleInputKeyDown = (event) => { + if (elInputRef.value?.isComposing) return; + const code = getEventCode(event); + switch (code) { + case EVENT_CODE.left: + case EVENT_CODE.right: + syncAfterCursorMove(); + break; + case EVENT_CODE.up: + case EVENT_CODE.down: + if (!visible.value) return; + event.preventDefault(); + dropdownRef.value?.navigateOptions(code === EVENT_CODE.up ? "prev" : "next"); + break; + case EVENT_CODE.enter: + case EVENT_CODE.numpadEnter: + if (!visible.value) { + props.type !== "textarea" && syncAfterCursorMove(); + return; + } + event.preventDefault(); + if (dropdownRef.value?.hoverOption) dropdownRef.value?.selectHoverOption(); + else visible.value = false; + break; + case EVENT_CODE.esc: + if (!visible.value) return; + event.preventDefault(); + visible.value = false; + break; + case EVENT_CODE.backspace: if (props.whole && mentionCtx.value) { + const { splitIndex, selectionEnd, pattern, prefixIndex, prefix } = mentionCtx.value; + const inputEl = getInputEl(); + if (!inputEl) return; + const inputValue = inputEl.value; + const matchOption = options.value.find((item) => item.value === pattern); + if ((isFunction$1(props.checkIsWhole) ? props.checkIsWhole(pattern, prefix) : matchOption) && splitIndex !== -1 && splitIndex + 1 === selectionEnd) { + event.preventDefault(); + const newValue = inputValue.slice(0, prefixIndex) + inputValue.slice(splitIndex + 1); + emit(UPDATE_MODEL_EVENT, newValue); + emit(INPUT_EVENT, newValue); + emit("whole-remove", pattern, prefix); + const newSelectionEnd = prefixIndex; + (0, vue.nextTick)(() => { + inputEl.selectionStart = newSelectionEnd; + inputEl.selectionEnd = newSelectionEnd; + syncDropdownVisible(); + }); + } + } + } + }; + const { wrapperRef } = useFocusController(elInputRef, { + disabled, + afterFocus() { + syncAfterCursorMove(); + }, + beforeBlur(event) { + return tooltipRef.value?.isFocusInsideContent(event); + }, + afterBlur() { + visible.value = false; + } + }); + const handleInputMouseDown = () => { + syncAfterCursorMove(); + }; + const getOriginalOption = (mentionOption) => { + return props.options.find((option) => { + return mentionOption.value === option[aliasProps.value.value]; + }); + }; + const handleSelect = (item) => { + if (!mentionCtx.value) return; + const inputEl = getInputEl(); + if (!inputEl) return; + const inputValue = inputEl.value; + const { split } = props; + const newEndPart = inputValue.slice(mentionCtx.value.end); + const alreadySeparated = newEndPart.startsWith(split); + const newMiddlePart = `${item.value}${alreadySeparated ? "" : split}`; + const newValue = inputValue.slice(0, mentionCtx.value.start) + newMiddlePart + newEndPart; + emit(UPDATE_MODEL_EVENT, newValue); + emit(INPUT_EVENT, newValue); + emit("select", getOriginalOption(item), mentionCtx.value.prefix); + const newSelectionEnd = mentionCtx.value.start + newMiddlePart.length + (alreadySeparated ? 1 : 0); + (0, vue.nextTick)(() => { + inputEl.selectionStart = newSelectionEnd; + inputEl.selectionEnd = newSelectionEnd; + inputEl.focus(); + syncDropdownVisible(); + }); + }; + const getInputEl = () => props.type === "textarea" ? elInputRef.value?.textarea : elInputRef.value?.input; + const syncAfterCursorMove = () => { + setTimeout(() => { + syncCursor(); + syncDropdownVisible(); + (0, vue.nextTick)(() => tooltipRef.value?.updatePopper()); + }, 0); + }; + const syncCursor = () => { + const inputEl = getInputEl(); + if (!inputEl) return; + const caretPosition = getCursorPosition(inputEl); + const inputRect = inputEl.getBoundingClientRect(); + const wrapperRect = wrapperRef.value.getBoundingClientRect(); + cursorStyle.value = { + position: "absolute", + width: 0, + height: `${caretPosition.height}px`, + left: `${caretPosition.left + inputRect.left - wrapperRect.left}px`, + top: `${caretPosition.top + inputRect.top - wrapperRect.top}px` + }; + }; + const syncDropdownVisible = () => { + const inputEl = getInputEl(); + if (document.activeElement !== inputEl) { + visible.value = false; + return; + } + const { prefix, split } = props; + mentionCtx.value = getMentionCtx(inputEl, prefix, split); + if (mentionCtx.value && mentionCtx.value.splitIndex === -1) { + visible.value = true; + emit("search", mentionCtx.value.pattern, mentionCtx.value.prefix); + return; + } + visible.value = false; + }; + __expose({ + input: elInputRef, + tooltip: tooltipRef, + dropdownVisible + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "wrapperRef", + ref: wrapperRef, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) + }, [(0, vue.createVNode)((0, vue.unref)(ElInput), (0, vue.mergeProps)((0, vue.mergeProps)(passInputProps.value, _ctx.$attrs), { + ref_key: "elInputRef", + ref: elInputRef, + "model-value": __props.modelValue, + disabled: (0, vue.unref)(disabled), + role: dropdownVisible.value ? "combobox" : void 0, + "aria-activedescendant": dropdownVisible.value ? hoveringId.value || "" : void 0, + "aria-controls": dropdownVisible.value ? (0, vue.unref)(contentId) : void 0, + "aria-expanded": dropdownVisible.value || void 0, + "aria-label": __props.ariaLabel, + "aria-autocomplete": dropdownVisible.value ? "none" : void 0, + "aria-haspopup": dropdownVisible.value ? "listbox" : void 0, + onInput: handleInputChange, + onKeydown: handleInputKeyDown, + onMousedown: handleInputMouseDown + }), (0, vue.createSlots)({ _: 2 }, [(0, vue.renderList)(_ctx.$slots, (_, name) => { + return { + name, + fn: (0, vue.withCtx)((slotProps) => [(0, vue.renderSlot)(_ctx.$slots, name, (0, vue.normalizeProps)((0, vue.guardReactiveProps)(slotProps)))]) + }; + })]), 1040, [ + "model-value", + "disabled", + "role", + "aria-activedescendant", + "aria-controls", + "aria-expanded", + "aria-label", + "aria-autocomplete", + "aria-haspopup" + ]), (0, vue.createVNode)((0, vue.unref)(ElTooltip), { + ref_key: "tooltipRef", + ref: tooltipRef, + visible: dropdownVisible.value, + "popper-class": [(0, vue.unref)(ns).e("popper"), __props.popperClass], + "popper-style": __props.popperStyle, + "popper-options": __props.popperOptions, + placement: computedPlacement.value, + "fallback-placements": computedFallbackPlacements.value, + effect: "light", + pure: "", + offset: __props.offset, + "show-arrow": __props.showArrow + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { style: (0, vue.normalizeStyle)(cursorStyle.value) }, null, 4)]), + content: (0, vue.withCtx)(() => [(0, vue.createVNode)(mention_dropdown_default, { + ref_key: "dropdownRef", + ref: dropdownRef, + options: filteredOptions.value, + disabled: (0, vue.unref)(disabled), + loading: __props.loading, + "content-id": (0, vue.unref)(contentId), + "aria-label": __props.ariaLabel, + onSelect: handleSelect, + onClick: _cache[0] || (_cache[0] = (0, vue.withModifiers)(($event) => elInputRef.value?.focus(), ["stop"])) + }, (0, vue.createSlots)({ _: 2 }, [(0, vue.renderList)(_ctx.$slots, (_, name) => { + return { + name, + fn: (0, vue.withCtx)((slotProps) => [(0, vue.renderSlot)(_ctx.$slots, name, (0, vue.normalizeProps)((0, vue.guardReactiveProps)(slotProps)))]) + }; + })]), 1032, [ + "options", + "disabled", + "loading", + "content-id", + "aria-label" + ])]), + _: 3 + }, 8, [ + "visible", + "popper-class", + "popper-style", + "popper-options", + "placement", + "fallback-placements", + "offset", + "show-arrow" + ])], 2); + }; + } + }); + +//#endregion +//#region ../../packages/components/mention/src/mention.vue + var mention_default = mention_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/mention/index.ts + const ElMention = withInstall(mention_default); + +//#endregion +//#region ../../packages/components/splitter/src/splitter.ts +/** + * @deprecated Removed after 3.0.0, Use `SplitterProps` instead. + */ + const splitterProps = buildProps({ + layout: { + type: String, + default: "horizontal", + values: ["horizontal", "vertical"] + }, + lazy: Boolean + }); + const splitterEmits = { + resizeStart: (index, sizes) => true, + resize: (index, sizes) => true, + resizeEnd: (index, sizes) => true, + collapse: (index, type, sizes) => true + }; + +//#endregion +//#region ../../packages/components/splitter/src/hooks/useContainer.ts + function useContainer(layout) { + const containerEl = (0, vue.ref)(); + const { width, height } = useElementSize(containerEl); + return { + containerEl, + containerSize: (0, vue.computed)(() => { + return layout.value === "horizontal" ? width.value : height.value; + }) + }; + } + +//#endregion +//#region ../../packages/components/splitter/src/hooks/useSize.ts + function getPct(str) { + return Number(str.slice(0, -1)) / 100; + } + function getPx(str) { + return Number(str.slice(0, -2)); + } + function isPct(itemSize) { + return isString(itemSize) && itemSize.endsWith("%"); + } + function isPx(itemSize) { + return isString(itemSize) && itemSize.endsWith("px"); + } + function useSize$1(panels, containerSize) { + const propSizes = (0, vue.computed)(() => panels.value.map((i) => i.size)); + const panelCounts = (0, vue.computed)(() => panels.value.length); + const percentSizes = (0, vue.ref)([]); + (0, vue.watch)([ + propSizes, + panelCounts, + containerSize + ], () => { + let ptgList = []; + let emptyCount = 0; + for (let i = 0; i < panelCounts.value; i += 1) { + const itemSize = panels.value[i]?.size; + if (isPct(itemSize)) ptgList[i] = getPct(itemSize); + else if (isPx(itemSize)) ptgList[i] = getPx(itemSize) / containerSize.value; + else if (itemSize || itemSize === 0) { + const num = Number(itemSize); + if (!Number.isNaN(num)) ptgList[i] = num / containerSize.value; + } else { + emptyCount += 1; + ptgList[i] = void 0; + } + } + const totalPtg = ptgList.reduce((acc, ptg) => acc + (ptg || 0), 0); + if (totalPtg > 1 || !emptyCount) { + const scale = 1 / totalPtg; + ptgList = ptgList.map((ptg) => ptg === void 0 ? 0 : ptg * scale); + } else { + const avgRest = (1 - totalPtg) / emptyCount; + ptgList = ptgList.map((ptg) => ptg === void 0 ? avgRest : ptg); + } + percentSizes.value = ptgList; + }); + const ptg2px = (ptg) => ptg * containerSize.value; + return { + percentSizes, + pxSizes: (0, vue.computed)(() => percentSizes.value.map(ptg2px)) + }; + } + +//#endregion +//#region ../../packages/components/splitter/src/hooks/useResize.ts + function useResize(panels, containerSize, pxSizes, lazy) { + const ptg2px = (ptg) => ptg * containerSize.value || 0; + function getLimitSize(str, defaultLimit) { + if (isPct(str)) return ptg2px(getPct(str)); + else if (isPx(str)) return getPx(str); + return str ?? defaultLimit; + } + const lazyOffset = (0, vue.ref)(0); + const movingIndex = (0, vue.ref)(null); + let cachePxSizes = []; + let updatePanelSizes = NOOP; + const limitSizes = (0, vue.computed)(() => panels.value.map((item) => [item.min, item.max])); + (0, vue.watch)(lazy, () => { + if (lazyOffset.value) { + const mouseup = new MouseEvent("mouseup", { bubbles: true }); + window.dispatchEvent(mouseup); + } + }); + const onMoveStart = (index) => { + lazyOffset.value = 0; + movingIndex.value = { + index, + confirmed: false + }; + cachePxSizes = pxSizes.value; + }; + const onMoving = (index, offset) => { + let confirmedIndex = null; + if ((!movingIndex.value || !movingIndex.value.confirmed) && offset !== 0) { + if (offset > 0) { + confirmedIndex = index; + movingIndex.value = { + index, + confirmed: true + }; + } else for (let i = index; i >= 0; i -= 1) if (cachePxSizes[i] > 0) { + confirmedIndex = i; + movingIndex.value = { + index: i, + confirmed: true + }; + break; + } + } + const mergedIndex = confirmedIndex ?? movingIndex.value?.index ?? index; + const numSizes = [...cachePxSizes]; + const nextIndex = mergedIndex + 1; + const startMinSize = getLimitSize(limitSizes.value[mergedIndex][0], 0); + const endMinSize = getLimitSize(limitSizes.value[nextIndex][0], 0); + const startMaxSize = getLimitSize(limitSizes.value[mergedIndex][1], containerSize.value || 0); + const endMaxSize = getLimitSize(limitSizes.value[nextIndex][1], containerSize.value || 0); + let mergedOffset = offset; + if (numSizes[mergedIndex] + mergedOffset < startMinSize) mergedOffset = startMinSize - numSizes[mergedIndex]; + if (numSizes[nextIndex] - mergedOffset < endMinSize) mergedOffset = numSizes[nextIndex] - endMinSize; + if (numSizes[mergedIndex] + mergedOffset > startMaxSize) mergedOffset = startMaxSize - numSizes[mergedIndex]; + if (numSizes[nextIndex] - mergedOffset > endMaxSize) mergedOffset = numSizes[nextIndex] - endMaxSize; + numSizes[mergedIndex] += mergedOffset; + numSizes[nextIndex] -= mergedOffset; + lazyOffset.value = mergedOffset; + updatePanelSizes = () => { + panels.value.forEach((panel, index) => { + panel.size = numSizes[index]; + }); + updatePanelSizes = NOOP; + }; + if (!lazy.value) updatePanelSizes(); + }; + const onMoveEnd = () => { + if (lazy.value) updatePanelSizes(); + lazyOffset.value = 0; + movingIndex.value = null; + cachePxSizes = []; + }; + const cacheCollapsedSize = []; + const onCollapse = (index, type) => { + if (!cacheCollapsedSize.length) cacheCollapsedSize.push(...pxSizes.value); + const currentSizes = pxSizes.value; + const currentIndex = type === "start" ? index : index + 1; + const targetIndex = type === "start" ? index + 1 : index; + const currentSize = currentSizes[currentIndex]; + const targetSize = currentSizes[targetIndex]; + if (currentSize !== 0 && targetSize !== 0) { + currentSizes[currentIndex] = 0; + currentSizes[targetIndex] += currentSize; + cacheCollapsedSize[index] = currentSize; + } else { + const totalSize = currentSize + targetSize; + const targetCacheCollapsedSize = cacheCollapsedSize[index]; + const currentCacheCollapsedSize = totalSize - targetCacheCollapsedSize; + currentSizes[targetIndex] = targetCacheCollapsedSize; + currentSizes[currentIndex] = currentCacheCollapsedSize; + } + panels.value.forEach((panel, index) => { + panel.size = currentSizes[index]; + }); + }; + return { + lazyOffset, + onMoveStart, + onMoving, + onMoveEnd, + movingIndex, + onCollapse + }; + } + +//#endregion +//#region ../../packages/components/splitter/src/type.ts + const splitterRootContextKey = Symbol("splitterRootContextKey"); + +//#endregion +//#region ../../packages/components/splitter/src/splitter.vue?vue&type=script&setup=true&lang.ts + var splitter_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSplitter", + __name: "splitter", + props: splitterProps, + emits: splitterEmits, + setup(__props, { emit: __emit }) { + const ns = useNamespace("splitter"); + const emits = __emit; + const props = __props; + const layout = (0, vue.toRef)(props, "layout"); + const lazy = (0, vue.toRef)(props, "lazy"); + const { containerEl, containerSize } = useContainer(layout); + const { removeChild: unregisterPanel, children: panels, addChild: registerPanel, ChildrenSorter: PanelsSorter } = useOrderedChildren((0, vue.getCurrentInstance)(), "ElSplitterPanel"); + (0, vue.watch)(panels, () => { + movingIndex.value = null; + panels.value.forEach((instance, index) => { + instance.setIndex(index); + }); + }); + const { percentSizes, pxSizes } = useSize$1(panels, containerSize); + const { lazyOffset, movingIndex, onMoveStart, onMoving, onMoveEnd, onCollapse } = useResize(panels, containerSize, pxSizes, lazy); + const splitterStyles = (0, vue.computed)(() => { + return { [ns.cssVarBlockName("bar-offset")]: lazy.value ? `${lazyOffset.value}px` : void 0 }; + }); + const onResizeStart = (index) => { + onMoveStart(index); + emits("resizeStart", index, pxSizes.value); + }; + const onResize = (index, offset) => { + onMoving(index, offset); + if (!lazy.value) emits("resize", index, pxSizes.value); + }; + const onResizeEnd = async (index) => { + onMoveEnd(); + await (0, vue.nextTick)(); + emits("resizeEnd", index, pxSizes.value); + }; + const onCollapsible = (index, type) => { + onCollapse(index, type); + emits("collapse", index, type, pxSizes.value); + }; + (0, vue.provide)(splitterRootContextKey, (0, vue.reactive)({ + panels, + percentSizes, + pxSizes, + layout, + lazy, + movingIndex, + containerSize, + onMoveStart: onResizeStart, + onMoving: onResize, + onMoveEnd: onResizeEnd, + onCollapse: onCollapsible, + registerPanel, + unregisterPanel + })); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + ref_key: "containerEl", + ref: containerEl, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b(), (0, vue.unref)(ns).e(layout.value)]), + style: (0, vue.normalizeStyle)(splitterStyles.value) + }, [ + (0, vue.renderSlot)(_ctx.$slots, "default"), + (0, vue.createVNode)((0, vue.unref)(PanelsSorter)), + (0, vue.createCommentVNode)(" Prevent iframe touch events from breaking "), + (0, vue.unref)(movingIndex) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("mask"), (0, vue.unref)(ns).e(`mask-${layout.value}`)]) + }, null, 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/splitter/src/splitter.vue + var splitter_default = splitter_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/splitter/src/split-panel.ts +/** + * @deprecated Removed after 3.0.0, Use `SplitterPanelProps` instead. + */ + const splitterPanelProps = buildProps({ + min: { type: [String, Number] }, + max: { type: [String, Number] }, + size: { type: [String, Number] }, + resizable: { + type: Boolean, + default: true + }, + collapsible: Boolean + }); + const splitterPanelEmits = { "update:size": (value) => typeof value === "number" || typeof value === "string" }; + +//#endregion +//#region ../../packages/components/splitter/src/hooks/usePanel.ts + function getCollapsible(collapsible) { + if (collapsible && isObject$1(collapsible)) return collapsible; + return { + start: !!collapsible, + end: !!collapsible + }; + } + function isCollapsible(panel, size, nextPanel, nextSize) { + if (panel?.collapsible.end && size > 0) return true; + if (nextPanel?.collapsible.start && nextSize === 0 && size > 0) return true; + return false; + } + +//#endregion +//#region ../../packages/components/splitter/src/split-bar.vue?vue&type=script&setup=true&lang.ts + var split_bar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElSplitterBar", + __name: "split-bar", + props: { + index: { + type: Number, + required: true + }, + layout: { + type: String, + values: ["horizontal", "vertical"], + default: "horizontal" + }, + resizable: { + type: Boolean, + default: true + }, + lazy: Boolean, + startCollapsible: Boolean, + endCollapsible: Boolean + }, + emits: [ + "moveStart", + "moving", + "moveEnd", + "collapse" + ], + setup(__props, { emit: __emit }) { + const ns = useNamespace("splitter-bar"); + const props = __props; + const emit = __emit; + const isHorizontal = (0, vue.computed)(() => props.layout === "horizontal"); + const barWrapStyles = (0, vue.computed)(() => { + if (isHorizontal.value) return { width: 0 }; + return { height: 0 }; + }); + const draggerStyles = (0, vue.computed)(() => { + return { + width: isHorizontal.value ? "16px" : "100%", + height: isHorizontal.value ? "100%" : "16px", + cursor: !props.resizable ? "auto" : isHorizontal.value ? "ew-resize" : "ns-resize", + touchAction: "none" + }; + }); + const draggerPseudoClass = (0, vue.computed)(() => { + const prefix = ns.e("dragger"); + return { + [`${prefix}-horizontal`]: isHorizontal.value, + [`${prefix}-vertical`]: !isHorizontal.value, + [`${prefix}-active`]: !!startPos.value + }; + }); + const startPos = (0, vue.ref)(null); + const onMousedown = (e) => { + if (!props.resizable) return; + startPos.value = [e.pageX, e.pageY]; + emit("moveStart", props.index); + window.addEventListener("mouseup", onMouseUp); + window.addEventListener("mousemove", onMouseMove); + }; + const onTouchStart = (e) => { + if (props.resizable && e.touches.length === 1) { + e.preventDefault(); + const touch = e.touches[0]; + startPos.value = [touch.pageX, touch.pageY]; + emit("moveStart", props.index); + window.addEventListener("touchend", onTouchEnd); + window.addEventListener("touchmove", onTouchMove); + } + }; + const onMouseMove = (e) => { + const { pageX, pageY } = e; + const offsetX = pageX - startPos.value[0]; + const offsetY = pageY - startPos.value[1]; + const offset = isHorizontal.value ? offsetX : offsetY; + emit("moving", props.index, offset); + }; + const onTouchMove = (e) => { + if (e.touches.length === 1) { + e.preventDefault(); + const touch = e.touches[0]; + const offsetX = touch.pageX - startPos.value[0]; + const offsetY = touch.pageY - startPos.value[1]; + const offset = isHorizontal.value ? offsetX : offsetY; + emit("moving", props.index, offset); + } + }; + const onMouseUp = () => { + startPos.value = null; + window.removeEventListener("mouseup", onMouseUp); + window.removeEventListener("mousemove", onMouseMove); + emit("moveEnd", props.index); + }; + const onTouchEnd = () => { + startPos.value = null; + window.removeEventListener("touchend", onTouchEnd); + window.removeEventListener("touchmove", onTouchMove); + emit("moveEnd", props.index); + }; + const StartIcon = (0, vue.computed)(() => isHorizontal.value ? arrow_left_default : arrow_up_default); + const EndIcon = (0, vue.computed)(() => isHorizontal.value ? arrow_right_default : arrow_down_default); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b()]), + style: (0, vue.normalizeStyle)(barWrapStyles.value) + }, [ + __props.startCollapsible ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("collapse-icon"), (0, vue.unref)(ns).e(`${__props.layout}-collapse-icon-start`)]), + onClick: _cache[0] || (_cache[0] = ($event) => emit("collapse", __props.index, "start")) + }, [(0, vue.renderSlot)(_ctx.$slots, "start-collapsible", {}, () => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(StartIcon.value), { style: { + "width": "12px", + "height": "12px" + } }))])], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).e("dragger"), + draggerPseudoClass.value, + (0, vue.unref)(ns).is("disabled", !__props.resizable), + (0, vue.unref)(ns).is("lazy", __props.resizable && __props.lazy) + ]), + style: (0, vue.normalizeStyle)(draggerStyles.value), + onMousedown, + onTouchstart: onTouchStart + }, null, 38), + __props.endCollapsible ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("collapse-icon"), (0, vue.unref)(ns).e(`${__props.layout}-collapse-icon-end`)]), + onClick: _cache[1] || (_cache[1] = ($event) => emit("collapse", __props.index, "end")) + }, [(0, vue.renderSlot)(_ctx.$slots, "end-collapsible", {}, () => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(EndIcon.value), { style: { + "width": "12px", + "height": "12px" + } }))])], 2)) : (0, vue.createCommentVNode)("v-if", true) + ], 6); + }; + } + }); + +//#endregion +//#region ../../packages/components/splitter/src/split-bar.vue + var split_bar_default = split_bar_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/splitter/src/split-panel.vue?vue&type=script&setup=true&lang.ts + const COMPONENT_NAME = "ElSplitterPanel"; + var split_panel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: COMPONENT_NAME, + __name: "split-panel", + props: splitterPanelProps, + emits: splitterPanelEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const ns = useNamespace("splitter-panel"); + const props = __props; + const emits = __emit; + const splitterContext = (0, vue.inject)(splitterRootContextKey); + if (!splitterContext) throwError(COMPONENT_NAME, "usage: "); + const { panels, layout, lazy, containerSize, pxSizes } = (0, vue.toRefs)(splitterContext); + const { registerPanel, unregisterPanel, onCollapse, onMoveEnd, onMoveStart, onMoving } = splitterContext; + const panelEl = (0, vue.ref)(); + const instance = (0, vue.getCurrentInstance)(); + const uid = instance.uid; + const index = (0, vue.ref)(0); + const panel = (0, vue.computed)(() => panels.value[index.value]); + const setIndex = (val) => { + index.value = val; + }; + const panelSize = (0, vue.computed)(() => { + if (!panel.value) return 0; + return pxSizes.value[index.value] ?? 0; + }); + const nextSize = (0, vue.computed)(() => { + if (!panel.value) return 0; + return pxSizes.value[index.value + 1] ?? 0; + }); + const nextPanel = (0, vue.computed)(() => { + if (panel.value) return panels.value[index.value + 1]; + return null; + }); + const isResizable = (0, vue.computed)(() => { + if (!nextPanel.value) return false; + return props.resizable && nextPanel.value?.resizable && (panelSize.value !== 0 || !props.min) && (nextSize.value !== 0 || !nextPanel.value.min); + }); + const isShowBar = (0, vue.computed)(() => { + if (!panel.value) return false; + return index.value !== panels.value.length - 1; + }); + const startCollapsible = (0, vue.computed)(() => isCollapsible(panel.value, panelSize.value, nextPanel.value, nextSize.value)); + const endCollapsible = (0, vue.computed)(() => isCollapsible(nextPanel.value, nextSize.value, panel.value, panelSize.value)); + function sizeToPx(str) { + if (isPct(str)) return getPct(str) * containerSize.value || 0; + else if (isPx(str)) return getPx(str); + return str ?? 0; + } + let isSizeUpdating = false; + (0, vue.watch)(() => props.size, () => { + if (!isSizeUpdating && panel.value) { + if (!containerSize.value) { + panel.value.size = props.size; + return; + } + const size = sizeToPx(props.size); + const maxSize = sizeToPx(props.max); + const minSize = sizeToPx(props.min); + const finalSize = Math.min(Math.max(size, minSize || 0), maxSize || size); + if (finalSize !== size) emits("update:size", finalSize); + panel.value.size = finalSize; + } + }); + (0, vue.watch)(() => panel.value?.size, (val) => { + if (val !== props.size) { + isSizeUpdating = true; + emits("update:size", val); + (0, vue.nextTick)(() => isSizeUpdating = false); + } + }); + (0, vue.watch)(() => props.resizable, (val) => { + if (panel.value) panel.value.resizable = val; + }); + const _panel = (0, vue.reactive)({ + uid, + getVnode: () => instance.vnode, + setIndex, + ...props, + collapsible: (0, vue.computed)(() => getCollapsible(props.collapsible)) + }); + registerPanel(_panel); + (0, vue.onBeforeUnmount)(() => unregisterPanel(_panel)); + __expose({ splitterPanelRef: panelEl }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, null, [(0, vue.createElementVNode)("div", (0, vue.mergeProps)({ + ref_key: "panelEl", + ref: panelEl, + class: [(0, vue.unref)(ns).b()], + style: { flexBasis: `${panelSize.value}px` } + }, _ctx.$attrs), [(0, vue.renderSlot)(_ctx.$slots, "default")], 16), isShowBar.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(split_bar_default, { + key: 0, + index: index.value, + layout: (0, vue.unref)(layout), + lazy: (0, vue.unref)(lazy), + resizable: isResizable.value, + "start-collapsible": startCollapsible.value, + "end-collapsible": endCollapsible.value, + onMoveStart: (0, vue.unref)(onMoveStart), + onMoving: (0, vue.unref)(onMoving), + onMoveEnd: (0, vue.unref)(onMoveEnd), + onCollapse: (0, vue.unref)(onCollapse) + }, { + "start-collapsible": (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "start-collapsible")]), + "end-collapsible": (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "end-collapsible")]), + _: 3 + }, 8, [ + "index", + "layout", + "lazy", + "resizable", + "start-collapsible", + "end-collapsible", + "onMoveStart", + "onMoving", + "onMoveEnd", + "onCollapse" + ])) : (0, vue.createCommentVNode)("v-if", true)], 64); + }; + } + }); + +//#endregion +//#region ../../packages/components/splitter/src/split-panel.vue + var split_panel_default = split_panel_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/splitter/index.ts + const ElSplitter = withInstall(splitter_default, { SplitPanel: split_panel_default }); + const ElSplitterPanel = withNoopInstall(split_panel_default); + +//#endregion +//#region ../../packages/element-plus/component.ts + var component_default = [ + ElAffix, + ElAlert, + ElAutocomplete, + ElAutoResizer, + ElAvatar, + ElAvatarGroup, + ElBacktop, + ElBadge, + ElBreadcrumb, + ElBreadcrumbItem, + ElButton, + ElButtonGroup, + ElCalendar, + ElCard, + ElCarousel, + ElCarouselItem, + ElCascader, + ElCascaderPanel, + ElCheckTag, + ElCheckbox, + ElCheckboxButton, + ElCheckboxGroup, + ElCol, + ElCollapse, + ElCollapseItem, + ElCollapseTransition, + ElColorPickerPanel, + ElColorPicker, + ElConfigProvider, + ElContainer, + ElAside, + ElFooter, + ElHeader, + ElMain, + ElDatePicker, + ElDatePickerPanel, + ElDescriptions, + ElDescriptionsItem, + ElDialog, + ElDivider, + ElDrawer, + ElDropdown, + ElDropdownItem, + ElDropdownMenu, + ElEmpty, + ElForm, + ElFormItem, + ElIcon, + ElImage, + ElImageViewer, + ElInput, + ElInputNumber, + ElInputTag, + ElLink, + ElMenu, + ElMenuItem, + ElMenuItemGroup, + ElSubMenu, + ElPageHeader, + ElPagination, + ElPopconfirm, + ElPopover, + ElPopper, + ElProgress, + ElRadio, + ElRadioButton, + ElRadioGroup, + ElRate, + ElResult, + ElRow, + ElScrollbar, + ElSelect, + ElOption, + ElOptionGroup, + ElSelectV2, + ElSkeleton, + ElSkeletonItem, + ElSlider, + ElSpace, + ElStatistic, + ElCountdown, + ElSteps, + ElStep, + ElSwitch, + ElTable, + ElTableColumn, + ElTableV2, + ElTabs, + ElTabPane, + ElTag, + ElText, + ElTimePicker, + ElTimeSelect, + ElTimeline, + ElTimelineItem, + ElTooltip, + ElTransfer, + ElTree, + ElTreeSelect, + ElTreeV2, + ElUpload, + ElWatermark, + ElTour, + ElTourStep, + ElAnchor, + ElAnchorLink, + ElSegmented, + ElMention, + ElSplitter, + ElSplitterPanel + ]; + +//#endregion +//#region ../../packages/components/infinite-scroll/src/index.ts + const SCOPE$1 = "ElInfiniteScroll"; + const CHECK_INTERVAL = 50; + const DEFAULT_DELAY = 200; + const DEFAULT_DISTANCE = 0; + const attributes = { + delay: { + type: Number, + default: DEFAULT_DELAY + }, + distance: { + type: Number, + default: DEFAULT_DISTANCE + }, + disabled: { + type: Boolean, + default: false + }, + immediate: { + type: Boolean, + default: true + } + }; + const getScrollOptions = (el, instance) => { + return Object.entries(attributes).reduce((acm, [name, option]) => { + const { type, default: defaultValue } = option; + const attrVal = el.getAttribute(`infinite-scroll-${name}`); + let value = instance[attrVal] ?? attrVal ?? defaultValue; + value = value === "false" ? false : value; + value = type(value); + acm[name] = Number.isNaN(value) ? defaultValue : value; + return acm; + }, {}); + }; + const destroyObserver = (el) => { + const { observer } = el[SCOPE$1]; + if (observer) { + observer.disconnect(); + delete el[SCOPE$1].observer; + } + }; + const handleScroll = (el, cb) => { + const { container, containerEl, instance, observer, lastScrollTop } = el[SCOPE$1]; + const { disabled, distance } = getScrollOptions(el, instance); + const { clientHeight, scrollHeight, scrollTop } = containerEl; + const delta = scrollTop - lastScrollTop; + el[SCOPE$1].lastScrollTop = scrollTop; + if (observer || disabled || delta < 0) return; + let shouldTrigger = false; + if (container === el) shouldTrigger = scrollHeight - (clientHeight + scrollTop) <= distance; + else { + const { clientTop, scrollHeight: height } = el; + const offsetTop = getOffsetTopDistance(el, containerEl); + shouldTrigger = scrollTop + clientHeight >= offsetTop + clientTop + height - distance; + } + if (shouldTrigger) cb.call(instance); + }; + function checkFull(el, cb) { + const { containerEl, instance } = el[SCOPE$1]; + const { disabled } = getScrollOptions(el, instance); + if (disabled || containerEl.clientHeight === 0) return; + if (containerEl.scrollHeight <= containerEl.clientHeight) cb.call(instance); + else destroyObserver(el); + } + const InfiniteScroll = { + async mounted(el, binding) { + const { instance, value: cb } = binding; + useDeprecated({ + scope: SCOPE$1, + 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" + }, true); + if (!isFunction$1(cb)) throwError(SCOPE$1, "'v-infinite-scroll' binding value must be a function"); + await (0, vue.nextTick)(); + const { delay, immediate } = getScrollOptions(el, instance); + const container = getScrollContainer(el, true); + const containerEl = container === window ? document.documentElement : container; + const onScroll = throttle(handleScroll.bind(null, el, cb), delay); + if (!container) return; + el[SCOPE$1] = { + instance, + container, + containerEl, + delay, + cb, + onScroll, + lastScrollTop: containerEl.scrollTop + }; + if (immediate) { + const observer = new MutationObserver(throttle(checkFull.bind(null, el, cb), CHECK_INTERVAL)); + el[SCOPE$1].observer = observer; + observer.observe(el, { + childList: true, + subtree: true + }); + checkFull(el, cb); + } + container.addEventListener("scroll", onScroll); + }, + unmounted(el) { + if (!el[SCOPE$1]) return; + const { container, onScroll } = el[SCOPE$1]; + container?.removeEventListener("scroll", onScroll); + destroyObserver(el); + }, + async updated(el) { + if (!el[SCOPE$1]) await (0, vue.nextTick)(); + else { + const { containerEl, cb, observer } = el[SCOPE$1]; + if (containerEl.clientHeight && observer) checkFull(el, cb); + } + } + }; + +//#endregion +//#region ../../packages/components/infinite-scroll/index.ts + const _InfiniteScroll = InfiniteScroll; + _InfiniteScroll.install = (app) => { + app.directive("InfiniteScroll", _InfiniteScroll); + }; + const ElInfiniteScroll = _InfiniteScroll; + +//#endregion +//#region ../../packages/components/loading/src/loading.ts + function createLoadingComponent(options, appContext) { + let afterLeaveTimer; + const afterLeaveFlag = (0, vue.ref)(false); + const data = (0, vue.reactive)({ + ...options, + originalPosition: "", + originalOverflow: "", + visible: false + }); + function setText(text) { + data.text = text; + } + function destroySelf() { + const target = data.parent; + const ns = vm.ns; + if (!target.vLoadingAddClassList) { + let loadingNumber = target.getAttribute("loading-number"); + loadingNumber = Number.parseInt(loadingNumber) - 1; + if (!loadingNumber) { + removeClass(target, ns.bm("parent", "relative")); + target.removeAttribute("loading-number"); + } else target.setAttribute("loading-number", loadingNumber.toString()); + removeClass(target, ns.bm("parent", "hidden")); + } + removeElLoadingChild(); + loadingInstance.unmount(); + } + function removeElLoadingChild() { + vm.$el?.parentNode?.removeChild(vm.$el); + } + function close() { + if (options.beforeClose && !options.beforeClose()) return; + afterLeaveFlag.value = true; + clearTimeout(afterLeaveTimer); + afterLeaveTimer = setTimeout(handleAfterLeave, 400); + data.visible = false; + options.closed?.(); + } + function handleAfterLeave() { + if (!afterLeaveFlag.value) return; + const target = data.parent; + afterLeaveFlag.value = false; + target.vLoadingAddClassList = void 0; + destroySelf(); + } + const loadingInstance = (0, vue.createApp)((0, vue.defineComponent)({ + name: "ElLoading", + setup(_, { expose }) { + const { ns, zIndex } = useGlobalComponentSettings("loading"); + expose({ + ns, + zIndex + }); + return () => { + const svg = data.spinner || data.svg; + const spinner = (0, vue.h)("svg", { + class: "circular", + viewBox: data.svgViewBox ? data.svgViewBox : "0 0 50 50", + ...svg ? { innerHTML: svg } : {} + }, [(0, vue.h)("circle", { + class: "path", + cx: "25", + cy: "25", + r: "20", + fill: "none" + })]); + const spinnerText = data.text ? (0, vue.h)("p", { class: ns.b("text") }, [data.text]) : void 0; + return (0, vue.h)(vue.Transition, { + name: ns.b("fade"), + onAfterLeave: handleAfterLeave + }, { default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createVNode)("div", { + style: { backgroundColor: data.background || "" }, + class: [ + ns.b("mask"), + data.customClass, + ns.is("fullscreen", data.fullscreen) + ] + }, [(0, vue.h)("div", { class: ns.b("spinner") }, [spinner, spinnerText])]), [[vue.vShow, data.visible]])]) }); + }; + } + })); + Object.assign(loadingInstance._context, appContext ?? {}); + const vm = loadingInstance.mount(document.createElement("div")); + return { + ...(0, vue.toRefs)(data), + setText, + removeElLoadingChild, + close, + handleAfterLeave, + vm, + get $el() { + return vm.$el; + } + }; + } + +//#endregion +//#region ../../packages/components/loading/src/service.ts + let fullscreenInstance = void 0; + const Loading = function(options = {}, context) { + if (!isClient) return void 0; + const resolved = resolveOptions(options); + if (resolved.fullscreen && fullscreenInstance) return fullscreenInstance; + const instance = createLoadingComponent({ + ...resolved, + closed: () => { + resolved.closed?.(); + if (resolved.fullscreen) fullscreenInstance = void 0; + } + }, context ?? Loading._context); + addStyle(resolved, resolved.parent, instance); + addClassList(resolved, resolved.parent, instance); + resolved.parent.vLoadingAddClassList = () => addClassList(resolved, resolved.parent, instance); + /** + * add loading-number to parent. + * because if a fullscreen loading is triggered when somewhere + * a v-loading.body was triggered before and it's parent is + * document.body which with a margin , the fullscreen loading's + * destroySelf function will remove 'el-loading-parent--relative', + * and then the position of v-loading.body will be error. + */ + let loadingNumber = resolved.parent.getAttribute("loading-number"); + if (!loadingNumber) loadingNumber = "1"; + else loadingNumber = `${Number.parseInt(loadingNumber) + 1}`; + resolved.parent.setAttribute("loading-number", loadingNumber); + resolved.parent.appendChild(instance.$el); + (0, vue.nextTick)(() => instance.visible.value = resolved.visible); + if (resolved.fullscreen) fullscreenInstance = instance; + return instance; + }; + const resolveOptions = (options) => { + let target; + if (isString(options.target)) target = document.querySelector(options.target) ?? document.body; + else target = options.target || document.body; + return { + parent: target === document.body || options.body ? document.body : target, + background: options.background || "", + svg: options.svg || "", + svgViewBox: options.svgViewBox || "", + spinner: options.spinner || false, + text: options.text || "", + fullscreen: target === document.body && (options.fullscreen ?? true), + lock: options.lock ?? false, + customClass: options.customClass || "", + visible: options.visible ?? true, + beforeClose: options.beforeClose, + closed: options.closed, + target + }; + }; + const addStyle = async (options, parent, instance) => { + const { nextZIndex } = instance.vm.zIndex || instance.vm._.exposed.zIndex; + const maskStyle = {}; + if (options.fullscreen) { + instance.originalPosition.value = getStyle(document.body, "position"); + instance.originalOverflow.value = getStyle(document.body, "overflow"); + maskStyle.zIndex = nextZIndex(); + } else if (options.parent === document.body) { + instance.originalPosition.value = getStyle(document.body, "position"); + /** + * await dom render when visible is true in init, + * because some component's height maybe 0. + * e.g. el-table. + */ + await (0, vue.nextTick)(); + for (const property of ["top", "left"]) { + const scroll = property === "top" ? "scrollTop" : "scrollLeft"; + maskStyle[property] = `${options.target.getBoundingClientRect()[property] + document.body[scroll] + document.documentElement[scroll] - Number.parseInt(getStyle(document.body, `margin-${property}`), 10)}px`; + } + for (const property of ["height", "width"]) maskStyle[property] = `${options.target.getBoundingClientRect()[property]}px`; + } else instance.originalPosition.value = getStyle(parent, "position"); + for (const [key, value] of Object.entries(maskStyle)) instance.$el.style[key] = value; + }; + const addClassList = (options, parent, instance) => { + const ns = instance.vm.ns || instance.vm._.exposed.ns; + if (![ + "absolute", + "fixed", + "sticky" + ].includes(instance.originalPosition.value)) addClass(parent, ns.bm("parent", "relative")); + else removeClass(parent, ns.bm("parent", "relative")); + if (options.fullscreen && options.lock) addClass(parent, ns.bm("parent", "hidden")); + else removeClass(parent, ns.bm("parent", "hidden")); + }; + Loading._context = null; + +//#endregion +//#region ../../packages/components/loading/src/directive.ts + const INSTANCE_KEY = Symbol("ElLoading"); + const getAttributeName = (name) => { + return `element-loading-${hyphenate(name)}`; + }; + const createInstance = (el, binding) => { + const vm = binding.instance; + const getBindingProp = (key) => isObject$1(binding.value) ? binding.value[key] : void 0; + const resolveExpression = (key) => { + return (0, vue.ref)(isString(key) && vm?.[key] || key); + }; + const getProp = (name) => resolveExpression(getBindingProp(name) || el.getAttribute(getAttributeName(name))); + const fullscreen = getBindingProp("fullscreen") ?? binding.modifiers.fullscreen; + const options = { + text: getProp("text"), + svg: getProp("svg"), + svgViewBox: getProp("svgViewBox"), + spinner: getProp("spinner"), + background: getProp("background"), + customClass: getProp("customClass"), + fullscreen, + target: getBindingProp("target") ?? (fullscreen ? void 0 : el), + body: getBindingProp("body") ?? binding.modifiers.body, + lock: getBindingProp("lock") ?? binding.modifiers.lock + }; + const instance = Loading(options); + instance._context = vLoading._context; + el[INSTANCE_KEY] = { + options, + instance + }; + }; + const updateOptions = (originalOptions, newOptions) => { + for (const key of Object.keys(originalOptions)) if ((0, vue.isRef)(originalOptions[key])) originalOptions[key].value = newOptions[key]; + }; + const vLoading = { + mounted(el, binding) { + if (binding.value) createInstance(el, binding); + }, + updated(el, binding) { + const instance = el[INSTANCE_KEY]; + if (!binding.value) { + instance?.instance.close(); + el[INSTANCE_KEY] = null; + return; + } + if (!instance) createInstance(el, binding); + else updateOptions(instance.options, isObject$1(binding.value) ? binding.value : { + text: el.getAttribute(getAttributeName("text")), + svg: el.getAttribute(getAttributeName("svg")), + svgViewBox: el.getAttribute(getAttributeName("svgViewBox")), + spinner: el.getAttribute(getAttributeName("spinner")), + background: el.getAttribute(getAttributeName("background")), + customClass: el.getAttribute(getAttributeName("customClass")) + }); + }, + unmounted(el) { + el[INSTANCE_KEY]?.instance.close(); + el[INSTANCE_KEY] = null; + } + }; + vLoading._context = null; + +//#endregion +//#region ../../packages/components/loading/index.ts + const ElLoading = { + install(app) { + Loading._context = app._context; + vLoading._context = app._context; + app.directive("loading", vLoading); + app.config.globalProperties.$loading = Loading; + }, + directive: vLoading, + service: Loading + }; + +//#endregion +//#region ../../packages/components/message/src/message.ts + const messageTypes = [ + "primary", + "success", + "info", + "warning", + "error" + ]; + const messagePlacement = [ + "top", + "top-left", + "top-right", + "bottom", + "bottom-left", + "bottom-right" + ]; + const MESSAGE_DEFAULT_PLACEMENT = "top"; + const messageDefaults = mutable({ + customClass: "", + dangerouslyUseHTMLString: false, + duration: 3e3, + icon: void 0, + id: "", + message: "", + onClose: void 0, + showClose: false, + type: "info", + plain: false, + offset: 16, + placement: void 0, + zIndex: 0, + grouping: false, + repeatNum: 1, + appendTo: isClient ? document.body : void 0 + }); + /** + * @deprecated Removed after 3.0.0, Use `MessageProps` instead. + */ + const messageProps = buildProps({ + customClass: { + type: String, + default: messageDefaults.customClass + }, + dangerouslyUseHTMLString: { + type: Boolean, + default: messageDefaults.dangerouslyUseHTMLString + }, + duration: { + type: Number, + default: messageDefaults.duration + }, + icon: { + type: iconPropType, + default: messageDefaults.icon + }, + id: { + type: String, + default: messageDefaults.id + }, + message: { + type: definePropType([ + String, + Object, + Function + ]), + default: messageDefaults.message + }, + onClose: { + type: definePropType(Function), + default: messageDefaults.onClose + }, + showClose: { + type: Boolean, + default: messageDefaults.showClose + }, + type: { + type: String, + values: messageTypes, + default: messageDefaults.type + }, + plain: { + type: Boolean, + default: messageDefaults.plain + }, + offset: { + type: Number, + default: messageDefaults.offset + }, + placement: { + type: String, + values: messagePlacement, + default: messageDefaults.placement + }, + zIndex: { + type: Number, + default: messageDefaults.zIndex + }, + grouping: { + type: Boolean, + default: messageDefaults.grouping + }, + repeatNum: { + type: Number, + default: messageDefaults.repeatNum + } + }); + const messageEmits = { destroy: () => true }; + +//#endregion +//#region ../../packages/components/message/src/instance.ts + const placementInstances = (0, vue.shallowReactive)({}); + const getOrCreatePlacementInstances = (placement) => { + if (!placementInstances[placement]) placementInstances[placement] = (0, vue.shallowReactive)([]); + return placementInstances[placement]; + }; + const getInstance = (id, placement) => { + const instances = placementInstances[placement] || []; + const idx = instances.findIndex((instance) => instance.id === id); + const current = instances[idx]; + let prev; + if (idx > 0) prev = instances[idx - 1]; + return { + current, + prev + }; + }; + const getLastOffset = (id, placement) => { + const { prev } = getInstance(id, placement); + if (!prev) return 0; + return prev.vm.exposed.bottom.value; + }; + const getOffsetOrSpace = (id, offset, placement) => { + return (placementInstances[placement] || []).findIndex((instance) => instance.id === id) > 0 ? 16 : offset; + }; + +//#endregion +//#region ../../packages/components/message/src/message.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1$2 = ["id"]; + const _hoisted_2$2 = ["innerHTML"]; + var message_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElMessage", + __name: "message", + props: messageProps, + emits: messageEmits, + setup(__props, { expose: __expose, emit: __emit }) { + const { Close } = TypeComponents; + const props = __props; + const emit = __emit; + const isStartTransition = (0, vue.ref)(false); + const { ns, zIndex } = useGlobalComponentSettings("message"); + const { currentZIndex, nextZIndex } = zIndex; + const messageRef = (0, vue.ref)(); + const visible = (0, vue.ref)(false); + const height = (0, vue.ref)(0); + let stopTimer = void 0; + const badgeType = (0, vue.computed)(() => props.type ? props.type === "error" ? "danger" : props.type : "info"); + const typeClass = (0, vue.computed)(() => { + const type = props.type; + return { [ns.bm("icon", type)]: type && TypeComponentsMap[type] }; + }); + const iconComponent = (0, vue.computed)(() => props.icon || TypeComponentsMap[props.type] || ""); + const placement = (0, vue.computed)(() => props.placement || MESSAGE_DEFAULT_PLACEMENT); + const lastOffset = (0, vue.computed)(() => getLastOffset(props.id, placement.value)); + const offset = (0, vue.computed)(() => { + return Math.max(getOffsetOrSpace(props.id, props.offset, placement.value) + lastOffset.value, props.offset); + }); + const bottom = (0, vue.computed)(() => height.value + offset.value); + const horizontalClass = (0, vue.computed)(() => { + if (placement.value.includes("left")) return ns.is("left"); + if (placement.value.includes("right")) return ns.is("right"); + return ns.is("center"); + }); + const verticalProperty = (0, vue.computed)(() => placement.value.startsWith("top") ? "top" : "bottom"); + const customStyle = (0, vue.computed)(() => ({ + [verticalProperty.value]: `${offset.value}px`, + zIndex: currentZIndex.value + })); + function startTimer() { + if (props.duration === 0) return; + ({stop: stopTimer} = useTimeoutFn(() => { + close(); + }, props.duration)); + } + function clearTimer() { + stopTimer?.(); + } + function close() { + visible.value = false; + (0, vue.nextTick)(() => { + if (!isStartTransition.value) { + props.onClose?.(); + emit("destroy"); + } + }); + } + function keydown(event) { + if (getEventCode(event) === EVENT_CODE.esc) close(); + } + (0, vue.onMounted)(() => { + startTimer(); + nextZIndex(); + visible.value = true; + }); + (0, vue.watch)(() => props.repeatNum, () => { + clearTimer(); + startTimer(); + }); + useEventListener(document, "keydown", keydown); + useResizeObserver(messageRef, () => { + height.value = messageRef.value.getBoundingClientRect().height; + }); + __expose({ + visible, + bottom, + close + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + name: (0, vue.unref)(ns).b("fade"), + onBeforeEnter: _cache[0] || (_cache[0] = ($event) => isStartTransition.value = true), + onBeforeLeave: __props.onClose, + onAfterLeave: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("destroy")), + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("div", { + id: __props.id, + ref_key: "messageRef", + ref: messageRef, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + { [(0, vue.unref)(ns).m(__props.type)]: __props.type }, + (0, vue.unref)(ns).is("closable", __props.showClose), + (0, vue.unref)(ns).is("plain", __props.plain), + (0, vue.unref)(ns).is("bottom", verticalProperty.value === "bottom"), + horizontalClass.value, + __props.customClass + ]), + style: (0, vue.normalizeStyle)(customStyle.value), + role: "alert", + onMouseenter: clearTimer, + onMouseleave: startTimer + }, [ + __props.repeatNum > 1 ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElBadge), { + key: 0, + value: __props.repeatNum, + type: badgeType.value, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("badge")) + }, null, 8, [ + "value", + "type", + "class" + ])) : (0, vue.createCommentVNode)("v-if", true), + iconComponent.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 1, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon"), typeClass.value]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(iconComponent.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [!__props.dangerouslyUseHTMLString ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")) + }, (0, vue.toDisplayString)(__props.message), 3)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.createCommentVNode)(" Caution here, message could've been compromised, never use user's input as message "), (0, vue.createElementVNode)("p", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")), + innerHTML: __props.message + }, null, 10, _hoisted_2$2)], 2112))]), + __props.showClose ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 2, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("closeBtn")), + onClick: (0, vue.withModifiers)(close, ["stop"]) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(Close))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true) + ], 46, _hoisted_1$2), [[vue.vShow, visible.value]])]), + _: 3 + }, 8, ["name", "onBeforeLeave"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/message/src/message.vue + var message_default = message_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/message/src/method.ts + let seed$1 = 1; + const normalizeAppendTo = (normalized) => { + if (!normalized.appendTo) normalized.appendTo = document.body; + else if (isString(normalized.appendTo)) { + let appendTo = document.querySelector(normalized.appendTo); + if (!isElement$1(appendTo)) { + /* @__PURE__ */ debugWarn("ElMessage", "the appendTo option is not an HTMLElement. Falling back to document.body."); + appendTo = document.body; + } + normalized.appendTo = appendTo; + } + }; + const normalizePlacement = (normalized) => { + if (!normalized.placement && isString(messageConfig.placement) && messageConfig.placement) normalized.placement = messageConfig.placement; + if (!normalized.placement) normalized.placement = MESSAGE_DEFAULT_PLACEMENT; + if (!messagePlacement.includes(normalized.placement)) { + /* @__PURE__ */ debugWarn("ElMessage", `Invalid placement: ${normalized.placement}. Falling back to '${MESSAGE_DEFAULT_PLACEMENT}'.`); + normalized.placement = MESSAGE_DEFAULT_PLACEMENT; + } + }; + const normalizeOptions = (params) => { + const options = !params || isString(params) || (0, vue.isVNode)(params) || isFunction$1(params) ? { message: params } : params; + const normalized = { + ...messageDefaults, + ...options + }; + normalizeAppendTo(normalized); + normalizePlacement(normalized); + if (isBoolean(messageConfig.grouping) && !normalized.grouping) normalized.grouping = messageConfig.grouping; + if (isNumber(messageConfig.duration) && normalized.duration === 3e3) normalized.duration = messageConfig.duration; + if (isNumber(messageConfig.offset) && normalized.offset === 16) normalized.offset = messageConfig.offset; + if (isBoolean(messageConfig.showClose) && !normalized.showClose) normalized.showClose = messageConfig.showClose; + if (isBoolean(messageConfig.plain) && !normalized.plain) normalized.plain = messageConfig.plain; + return normalized; + }; + const closeMessage = (instance) => { + const instances = placementInstances[instance.props.placement || MESSAGE_DEFAULT_PLACEMENT]; + const idx = instances.indexOf(instance); + if (idx === -1) return; + instances.splice(idx, 1); + const { handler } = instance; + handler.close(); + }; + const createMessage = ({ appendTo, ...options }, context) => { + const id = `message_${seed$1++}`; + const userOnClose = options.onClose; + const container = document.createElement("div"); + const props = { + ...options, + id, + onClose: () => { + userOnClose?.(); + closeMessage(instance); + }, + onDestroy: () => { + (0, vue.render)(null, container); + } + }; + const vnode = (0, vue.createVNode)(message_default, props, isFunction$1(props.message) || (0, vue.isVNode)(props.message) ? { default: isFunction$1(props.message) ? props.message : () => props.message } : null); + vnode.appContext = context || message._context; + (0, vue.render)(vnode, container); + appendTo.appendChild(container.firstElementChild); + const vm = vnode.component; + const instance = { + id, + vnode, + vm, + handler: { close: () => { + vm.exposed.close(); + } }, + props: vnode.component.props + }; + return instance; + }; + const message = (options = {}, context) => { + if (!isClient) return { close: () => void 0 }; + const normalized = normalizeOptions(options); + const instances = getOrCreatePlacementInstances(normalized.placement || MESSAGE_DEFAULT_PLACEMENT); + if (normalized.grouping && instances.length) { + const instance = instances.find(({ vnode: vm }) => vm.props?.message === normalized.message); + if (instance) { + instance.props.repeatNum += 1; + instance.props.type = normalized.type; + return instance.handler; + } + } + if (isNumber(messageConfig.max) && instances.length >= messageConfig.max) return { close: () => void 0 }; + const instance = createMessage(normalized, context); + instances.push(instance); + return instance.handler; + }; + messageTypes.forEach((type) => { + message[type] = (options = {}, appContext) => { + return message({ + ...normalizeOptions(options), + type + }, appContext); + }; + }); + function closeAll$1(type) { + for (const placement in placementInstances) if (hasOwn(placementInstances, placement)) { + const instances = [...placementInstances[placement]]; + for (const instance of instances) if (!type || type === instance.props.type) instance.handler.close(); + } + } + function closeAllByPlacement(placement) { + if (!placementInstances[placement]) return; + [...placementInstances[placement]].forEach((instance) => instance.handler.close()); + } + message.closeAll = closeAll$1; + message.closeAllByPlacement = closeAllByPlacement; + message._context = null; + +//#endregion +//#region ../../packages/components/message/index.ts + const ElMessage = withInstallFunction(message, "$message"); + +//#endregion +//#region ../../packages/components/message-box/src/index.vue?vue&type=script&lang.ts + var index_vue_vue_type_script_lang_default = (0, vue.defineComponent)({ + name: "ElMessageBox", + directives: { TrapFocus }, + components: { + ElButton, + ElFocusTrap: focus_trap_default, + ElInput, + ElOverlay, + ElIcon, + ...TypeComponents + }, + inheritAttrs: false, + props: { + buttonSize: { + type: String, + validator: isValidComponentSize + }, + modal: { + type: Boolean, + default: true + }, + lockScroll: { + type: Boolean, + default: true + }, + showClose: { + type: Boolean, + default: true + }, + closeOnClickModal: { + type: Boolean, + default: true + }, + closeOnPressEscape: { + type: Boolean, + default: true + }, + closeOnHashChange: { + type: Boolean, + default: true + }, + center: Boolean, + draggable: Boolean, + overflow: Boolean, + roundButton: Boolean, + container: { + type: String, + default: "body" + }, + boxType: { + type: String, + default: "" + } + }, + emits: ["vanish", "action"], + setup(props, { emit }) { + const { locale, zIndex, ns, size: btnSize } = useGlobalComponentSettings("message-box", (0, vue.computed)(() => props.buttonSize)); + const { t } = locale; + const { nextZIndex } = zIndex; + const visible = (0, vue.ref)(false); + const state = (0, vue.reactive)({ + autofocus: true, + beforeClose: null, + callback: null, + cancelButtonText: "", + cancelButtonClass: "", + confirmButtonText: "", + confirmButtonClass: "", + cancelButtonType: "", + confirmButtonType: "primary", + customClass: "", + customStyle: {}, + dangerouslyUseHTMLString: false, + distinguishCancelAndClose: false, + icon: "", + closeIcon: "", + inputPattern: null, + inputPlaceholder: "", + inputType: "text", + inputValue: "", + inputValidator: void 0, + inputErrorMessage: "", + message: "", + modalFade: true, + modalClass: "", + showCancelButton: false, + showConfirmButton: true, + type: "", + title: void 0, + showInput: false, + action: "", + confirmButtonLoading: false, + cancelButtonLoading: false, + confirmButtonLoadingIcon: (0, vue.markRaw)(loading_default), + cancelButtonLoadingIcon: (0, vue.markRaw)(loading_default), + confirmButtonDisabled: false, + editorErrorMessage: "", + validateError: false, + zIndex: nextZIndex() + }); + const typeClass = (0, vue.computed)(() => { + const type = state.type; + return { [ns.bm("icon", type)]: type && TypeComponentsMap[type] }; + }); + const contentId = useId(); + const inputId = useId(); + const iconComponent = (0, vue.computed)(() => { + const type = state.type; + return state.icon || type && TypeComponentsMap[type] || ""; + }); + const hasMessage = (0, vue.computed)(() => !!state.message); + const rootRef = (0, vue.ref)(); + const headerRef = (0, vue.ref)(); + const focusStartRef = (0, vue.ref)(); + const inputRef = (0, vue.ref)(); + const confirmRef = (0, vue.ref)(); + const confirmButtonClasses = (0, vue.computed)(() => state.confirmButtonClass); + (0, vue.watch)(() => state.inputValue, async (val) => { + await (0, vue.nextTick)(); + if (props.boxType === "prompt" && val) validate(); + }, { immediate: true }); + (0, vue.watch)(() => visible.value, (val) => { + if (val) { + if (props.boxType !== "prompt") if (state.autofocus) focusStartRef.value = confirmRef.value?.$el ?? rootRef.value; + else focusStartRef.value = rootRef.value; + state.zIndex = nextZIndex(); + } + if (props.boxType !== "prompt") return; + if (val) (0, vue.nextTick)().then(() => { + if (inputRef.value && inputRef.value.$el) if (state.autofocus) focusStartRef.value = getInputElement() ?? rootRef.value; + else focusStartRef.value = rootRef.value; + }); + else { + state.editorErrorMessage = ""; + state.validateError = false; + } + }); + const { isDragging } = useDraggable(rootRef, headerRef, (0, vue.computed)(() => props.draggable), (0, vue.computed)(() => props.overflow)); + (0, vue.onMounted)(async () => { + await (0, vue.nextTick)(); + if (props.closeOnHashChange) window.addEventListener("hashchange", doClose); + }); + (0, vue.onBeforeUnmount)(() => { + if (props.closeOnHashChange) window.removeEventListener("hashchange", doClose); + }); + function doClose() { + if (!visible.value) return; + visible.value = false; + (0, vue.nextTick)(() => { + if (state.action) emit("action", state.action); + }); + } + const handleWrapperClick = () => { + if (props.closeOnClickModal) handleAction(state.distinguishCancelAndClose ? "close" : "cancel"); + }; + const overlayEvent = useSameTarget(handleWrapperClick); + const handleInputEnter = (e) => { + if (state.inputType !== "textarea" && !inputRef.value?.isComposing) { + e.preventDefault(); + return handleAction("confirm"); + } + }; + const handleAction = (action) => { + if (props.boxType === "prompt" && action === "confirm" && !validate()) return; + state.action = action; + if (state.beforeClose) state.beforeClose?.(action, state, doClose); + else doClose(); + }; + const validate = () => { + if (props.boxType === "prompt") { + const inputPattern = state.inputPattern; + if (inputPattern && !inputPattern.test(state.inputValue || "")) { + state.editorErrorMessage = state.inputErrorMessage || t("el.messagebox.error"); + state.validateError = true; + return false; + } + const inputValidator = state.inputValidator; + if (isFunction$1(inputValidator)) { + const validateResult = inputValidator(state.inputValue); + if (validateResult === false) { + state.editorErrorMessage = state.inputErrorMessage || t("el.messagebox.error"); + state.validateError = true; + return false; + } + if (isString(validateResult)) { + state.editorErrorMessage = validateResult; + state.validateError = true; + return false; + } + } + } + state.editorErrorMessage = ""; + state.validateError = false; + return true; + }; + const getInputElement = () => { + const inputRefs = inputRef.value?.$refs; + return inputRefs?.input ?? inputRefs?.textarea; + }; + const handleClose = () => { + handleAction("close"); + }; + const onCloseRequested = () => { + if (props.closeOnPressEscape) handleClose(); + }; + if (props.lockScroll) useLockscreen(visible, { ns }); + return { + ...(0, vue.toRefs)(state), + ns, + overlayEvent, + visible, + hasMessage, + typeClass, + contentId, + inputId, + btnSize, + iconComponent, + confirmButtonClasses, + rootRef, + focusStartRef, + headerRef, + inputRef, + isDragging, + confirmRef, + doClose, + handleClose, + onCloseRequested, + handleWrapperClick, + handleInputEnter, + handleAction, + t + }; + } + }); + +//#endregion +//#region ../../packages/components/message-box/src/index.vue + const _hoisted_1$1 = ["aria-label", "aria-describedby"]; + const _hoisted_2$1 = ["aria-label"]; + const _hoisted_3$1 = ["id"]; + function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + const _component_el_icon = (0, vue.resolveComponent)("el-icon"); + const _component_el_input = (0, vue.resolveComponent)("el-input"); + const _component_el_button = (0, vue.resolveComponent)("el-button"); + const _component_el_focus_trap = (0, vue.resolveComponent)("el-focus-trap"); + const _component_el_overlay = (0, vue.resolveComponent)("el-overlay"); + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + name: "fade-in-linear", + onAfterLeave: _cache[11] || (_cache[11] = ($event) => _ctx.$emit("vanish")), + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createVNode)(_component_el_overlay, { + "z-index": _ctx.zIndex, + "overlay-class": [_ctx.ns.is("message-box"), _ctx.modalClass], + mask: _ctx.modal + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + role: "dialog", + "aria-label": _ctx.title, + "aria-modal": "true", + "aria-describedby": !_ctx.showInput ? _ctx.contentId : void 0, + class: (0, vue.normalizeClass)(`${_ctx.ns.namespace.value}-overlay-message-box`), + onClick: _cache[8] || (_cache[8] = (...args) => _ctx.overlayEvent.onClick && _ctx.overlayEvent.onClick(...args)), + onMousedown: _cache[9] || (_cache[9] = (...args) => _ctx.overlayEvent.onMousedown && _ctx.overlayEvent.onMousedown(...args)), + onMouseup: _cache[10] || (_cache[10] = (...args) => _ctx.overlayEvent.onMouseup && _ctx.overlayEvent.onMouseup(...args)) + }, [(0, vue.createVNode)(_component_el_focus_trap, { + loop: "", + trapped: _ctx.visible, + "focus-trap-el": _ctx.rootRef, + "focus-start-el": _ctx.focusStartRef, + onReleaseRequested: _ctx.onCloseRequested + }, { + default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", { + ref: "rootRef", + class: (0, vue.normalizeClass)([ + _ctx.ns.b(), + _ctx.customClass, + _ctx.ns.is("draggable", _ctx.draggable), + _ctx.ns.is("dragging", _ctx.isDragging), + { [_ctx.ns.m("center")]: _ctx.center } + ]), + style: (0, vue.normalizeStyle)(_ctx.customStyle), + tabindex: "-1", + onClick: _cache[7] || (_cache[7] = (0, vue.withModifiers)(() => {}, ["stop"])) + }, [ + _ctx.title !== null && _ctx.title !== void 0 ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 0, + ref: "headerRef", + class: (0, vue.normalizeClass)([_ctx.ns.e("header"), { "show-close": _ctx.showClose }]) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.ns.e("title")) }, [_ctx.iconComponent && _ctx.center ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 0, + class: (0, vue.normalizeClass)([_ctx.ns.e("status"), _ctx.typeClass]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.iconComponent)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(_ctx.title), 1)], 2), _ctx.showClose ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("button", { + key: 0, + type: "button", + class: (0, vue.normalizeClass)(_ctx.ns.e("headerbtn")), + "aria-label": _ctx.t("el.messagebox.close"), + onClick: _cache[0] || (_cache[0] = ($event) => _ctx.handleAction(_ctx.distinguishCancelAndClose ? "close" : "cancel")), + onKeydown: _cache[1] || (_cache[1] = (0, vue.withKeys)((0, vue.withModifiers)(($event) => _ctx.handleAction(_ctx.distinguishCancelAndClose ? "close" : "cancel"), ["prevent"]), ["enter"])) + }, [(0, vue.createVNode)(_component_el_icon, { class: (0, vue.normalizeClass)(_ctx.ns.e("close")) }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.closeIcon || "close")))]), + _: 1 + }, 8, ["class"])], 42, _hoisted_2$1)) : (0, vue.createCommentVNode)("v-if", true)], 2)) : (0, vue.createCommentVNode)("v-if", true), + (0, vue.createElementVNode)("div", { + id: _ctx.contentId, + class: (0, vue.normalizeClass)(_ctx.ns.e("content")) + }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.ns.e("container")) }, [_ctx.iconComponent && !_ctx.center && _ctx.hasMessage ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_icon, { + key: 0, + class: (0, vue.normalizeClass)([_ctx.ns.e("status"), _ctx.typeClass]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.iconComponent)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), _ctx.hasMessage ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", { + key: 1, + class: (0, vue.normalizeClass)(_ctx.ns.e("message")) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [!_ctx.dangerouslyUseHTMLString ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.showInput ? "label" : "p"), { + key: 0, + for: _ctx.showInput ? _ctx.inputId : void 0, + textContent: (0, vue.toDisplayString)(_ctx.message) + }, null, 8, ["for", "textContent"])) : ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(_ctx.showInput ? "label" : "p"), { + key: 1, + for: _ctx.showInput ? _ctx.inputId : void 0, + innerHTML: _ctx.message + }, null, 8, ["for", "innerHTML"]))])], 2)) : (0, vue.createCommentVNode)("v-if", true)], 2), (0, vue.withDirectives)((0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.ns.e("input")) }, [(0, vue.createVNode)(_component_el_input, { + id: _ctx.inputId, + ref: "inputRef", + modelValue: _ctx.inputValue, + "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => _ctx.inputValue = $event), + type: _ctx.inputType, + placeholder: _ctx.inputPlaceholder, + "aria-invalid": _ctx.validateError, + class: (0, vue.normalizeClass)({ invalid: _ctx.validateError }), + onKeydown: (0, vue.withKeys)(_ctx.handleInputEnter, ["enter"]) + }, null, 8, [ + "id", + "modelValue", + "type", + "placeholder", + "aria-invalid", + "class", + "onKeydown" + ]), (0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)(_ctx.ns.e("errormsg")), + style: (0, vue.normalizeStyle)({ visibility: !!_ctx.editorErrorMessage ? "visible" : "hidden" }) + }, (0, vue.toDisplayString)(_ctx.editorErrorMessage), 7)], 2), [[vue.vShow, _ctx.showInput]])], 10, _hoisted_3$1), + (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)(_ctx.ns.e("btns")) }, [_ctx.showCancelButton ? ((0, vue.openBlock)(), (0, vue.createBlock)(_component_el_button, { + key: 0, + type: _ctx.cancelButtonType === "text" ? "" : _ctx.cancelButtonType, + text: _ctx.cancelButtonType === "text", + loading: _ctx.cancelButtonLoading, + "loading-icon": _ctx.cancelButtonLoadingIcon, + class: (0, vue.normalizeClass)([_ctx.cancelButtonClass]), + round: _ctx.roundButton, + size: _ctx.btnSize, + onClick: _cache[3] || (_cache[3] = ($event) => _ctx.handleAction("cancel")), + onKeydown: _cache[4] || (_cache[4] = (0, vue.withKeys)((0, vue.withModifiers)(($event) => _ctx.handleAction("cancel"), ["prevent"]), ["enter"])) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(_ctx.cancelButtonText || _ctx.t("el.messagebox.cancel")), 1)]), + _: 1 + }, 8, [ + "type", + "text", + "loading", + "loading-icon", + "class", + "round", + "size" + ])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.withDirectives)((0, vue.createVNode)(_component_el_button, { + ref: "confirmRef", + type: _ctx.confirmButtonType === "text" ? "" : _ctx.confirmButtonType, + text: _ctx.confirmButtonType === "text", + loading: _ctx.confirmButtonLoading, + "loading-icon": _ctx.confirmButtonLoadingIcon, + class: (0, vue.normalizeClass)([_ctx.confirmButtonClasses]), + round: _ctx.roundButton, + disabled: _ctx.confirmButtonDisabled, + size: _ctx.btnSize, + onClick: _cache[5] || (_cache[5] = ($event) => _ctx.handleAction("confirm")), + onKeydown: _cache[6] || (_cache[6] = (0, vue.withKeys)((0, vue.withModifiers)(($event) => _ctx.handleAction("confirm"), ["prevent"]), ["enter"])) + }, { + default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(_ctx.confirmButtonText || _ctx.t("el.messagebox.confirm")), 1)]), + _: 1 + }, 8, [ + "type", + "text", + "loading", + "loading-icon", + "class", + "round", + "disabled", + "size" + ]), [[vue.vShow, _ctx.showConfirmButton]])], 2) + ], 6)]), + _: 3 + }, 8, [ + "trapped", + "focus-trap-el", + "focus-start-el", + "onReleaseRequested" + ])], 42, _hoisted_1$1)]), + _: 3 + }, 8, [ + "z-index", + "overlay-class", + "mask" + ]), [[vue.vShow, _ctx.visible]])]), + _: 3 + }); + } + var src_default = /* @__PURE__ */ _plugin_vue_export_helper_default(index_vue_vue_type_script_lang_default, [["render", _sfc_render]]); + +//#endregion +//#region ../../packages/components/message-box/src/messageBox.ts + const messageInstance = /* @__PURE__ */ new Map(); + const getAppendToElement = (props) => { + let appendTo = document.body; + if (props.appendTo) { + if (isString(props.appendTo)) appendTo = document.querySelector(props.appendTo); + if (isElement$1(props.appendTo)) appendTo = props.appendTo; + if (!isElement$1(appendTo)) { + /* @__PURE__ */ debugWarn("ElMessageBox", "the appendTo option is not an HTMLElement. Falling back to document.body."); + appendTo = document.body; + } + } + return appendTo; + }; + const initInstance = (props, container, appContext = null) => { + const vnode = (0, vue.createVNode)(src_default, props, isFunction$1(props.message) || (0, vue.isVNode)(props.message) ? { default: isFunction$1(props.message) ? props.message : () => props.message } : null); + vnode.appContext = appContext; + (0, vue.render)(vnode, container); + getAppendToElement(props).appendChild(container.firstElementChild); + return vnode.component; + }; + const genContainer = () => { + return document.createElement("div"); + }; + const showMessage = (options, appContext) => { + const container = genContainer(); + options.onVanish = () => { + (0, vue.render)(null, container); + messageInstance.delete(vm); + }; + options.onAction = (action) => { + const currentMsg = messageInstance.get(vm); + let resolve; + if (options.showInput) resolve = { + value: vm.inputValue, + action + }; + else resolve = action; + if (options.callback) options.callback(resolve, instance.proxy); + else if (action === "cancel" || action === "close") if (options.distinguishCancelAndClose && action !== "cancel") currentMsg.reject("close"); + else currentMsg.reject("cancel"); + else currentMsg.resolve(resolve); + }; + const instance = initInstance(options, container, appContext); + const vm = instance.proxy; + for (const prop in options) if (hasOwn(options, prop) && !hasOwn(vm.$props, prop)) if (prop === "closeIcon" && isObject$1(options[prop])) vm[prop] = (0, vue.markRaw)(options[prop]); + else vm[prop] = options[prop]; + vm.visible = true; + return vm; + }; + function MessageBox(options, appContext = null) { + if (!isClient) return Promise.reject(); + let callback; + if (isString(options) || (0, vue.isVNode)(options)) options = { message: options }; + else callback = options.callback; + return new Promise((resolve, reject) => { + const vm = showMessage(options, appContext ?? MessageBox._context); + messageInstance.set(vm, { + options, + callback, + resolve, + reject + }); + }); + } + const MESSAGE_BOX_VARIANTS = [ + "alert", + "confirm", + "prompt" + ]; + const MESSAGE_BOX_DEFAULT_OPTS = { + alert: { + closeOnPressEscape: false, + closeOnClickModal: false + }, + confirm: { showCancelButton: true }, + prompt: { + showCancelButton: true, + showInput: true + } + }; + MESSAGE_BOX_VARIANTS.forEach((boxType) => { + MessageBox[boxType] = messageBoxFactory(boxType); + }); + function messageBoxFactory(boxType) { + return (message, title, options, appContext) => { + let titleOrOpts = ""; + if (isObject$1(title)) { + options = title; + titleOrOpts = ""; + } else if (isUndefined(title)) titleOrOpts = ""; + else titleOrOpts = title; + return MessageBox(Object.assign({ + title: titleOrOpts, + message, + type: "", + ...MESSAGE_BOX_DEFAULT_OPTS[boxType] + }, options, { boxType }), appContext); + }; + } + MessageBox.close = () => { + messageInstance.forEach((_, vm) => { + vm.doClose(); + }); + messageInstance.clear(); + }; + MessageBox._context = null; + +//#endregion +//#region ../../packages/components/message-box/index.ts + const _MessageBox = MessageBox; + _MessageBox.install = (app) => { + _MessageBox._context = app._context; + app.config.globalProperties.$msgbox = _MessageBox; + app.config.globalProperties.$messageBox = _MessageBox; + app.config.globalProperties.$alert = _MessageBox.alert; + app.config.globalProperties.$confirm = _MessageBox.confirm; + app.config.globalProperties.$prompt = _MessageBox.prompt; + }; + const ElMessageBox = _MessageBox; + +//#endregion +//#region ../../packages/components/notification/src/notification.ts + const notificationTypes = [ + "primary", + "success", + "info", + "warning", + "error" + ]; + /** + * @deprecated Removed after 3.0.0, Use `NotificationProps` instead. + */ + const notificationProps = buildProps({ + customClass: { + type: String, + default: "" + }, + dangerouslyUseHTMLString: Boolean, + duration: { + type: Number, + default: 4500 + }, + icon: { type: iconPropType }, + id: { + type: String, + default: "" + }, + message: { + type: definePropType([ + String, + Object, + Function + ]), + default: "" + }, + offset: { + type: Number, + default: 0 + }, + onClick: { + type: definePropType(Function), + default: () => void 0 + }, + onClose: { + type: definePropType(Function), + required: true + }, + position: { + type: String, + values: [ + "top-right", + "top-left", + "bottom-right", + "bottom-left" + ], + default: "top-right" + }, + showClose: { + type: Boolean, + default: true + }, + title: { + type: String, + default: "" + }, + type: { + type: String, + values: [...notificationTypes, ""], + default: "" + }, + zIndex: Number, + closeIcon: { + type: iconPropType, + default: close_default + } + }); + const notificationEmits = { destroy: () => true }; + +//#endregion +//#region ../../packages/components/notification/src/notification.vue?vue&type=script&setup=true&lang.ts + const _hoisted_1 = ["id"]; + const _hoisted_2 = ["textContent"]; + const _hoisted_3 = { key: 0 }; + const _hoisted_4 = ["innerHTML"]; + var notification_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({ + name: "ElNotification", + __name: "notification", + props: notificationProps, + emits: notificationEmits, + setup(__props, { expose: __expose }) { + const props = __props; + const { ns, zIndex } = useGlobalComponentSettings("notification"); + const { nextZIndex, currentZIndex } = zIndex; + const visible = (0, vue.ref)(false); + let timer = void 0; + const typeClass = (0, vue.computed)(() => { + const type = props.type; + return type && TypeComponentsMap[props.type] ? ns.m(type) : ""; + }); + const iconComponent = (0, vue.computed)(() => { + if (!props.type) return props.icon; + return TypeComponentsMap[props.type] || props.icon; + }); + const horizontalClass = (0, vue.computed)(() => props.position.endsWith("right") ? "right" : "left"); + const verticalProperty = (0, vue.computed)(() => props.position.startsWith("top") ? "top" : "bottom"); + const positionStyle = (0, vue.computed)(() => { + return { + [verticalProperty.value]: `${props.offset}px`, + zIndex: props.zIndex ?? currentZIndex.value + }; + }); + function startTimer() { + if (props.duration > 0) ({stop: timer} = useTimeoutFn(() => { + if (visible.value) close(); + }, props.duration)); + } + function clearTimer() { + timer?.(); + } + function close() { + visible.value = false; + } + function onKeydown(event) { + switch (getEventCode(event)) { + case EVENT_CODE.delete: + case EVENT_CODE.backspace: + clearTimer(); + break; + case EVENT_CODE.esc: + if (visible.value) close(); + break; + default: + startTimer(); + break; + } + } + (0, vue.onMounted)(() => { + startTimer(); + nextZIndex(); + visible.value = true; + }); + useEventListener(document, "keydown", onKeydown); + __expose({ + visible, + close + }); + return (_ctx, _cache) => { + return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { + name: (0, vue.unref)(ns).b("fade"), + onBeforeLeave: __props.onClose, + onAfterLeave: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("destroy")), + persisted: "" + }, { + default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("div", { + id: __props.id, + class: (0, vue.normalizeClass)([ + (0, vue.unref)(ns).b(), + __props.customClass, + horizontalClass.value + ]), + style: (0, vue.normalizeStyle)(positionStyle.value), + role: "alert", + onMouseenter: clearTimer, + onMouseleave: startTimer, + onClick: _cache[0] || (_cache[0] = (...args) => __props.onClick && __props.onClick(...args)) + }, [iconComponent.value ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("icon"), typeClass.value]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(iconComponent.value)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("group")) }, [ + (0, vue.createElementVNode)("h2", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("title")), + textContent: (0, vue.toDisplayString)(__props.title) + }, null, 10, _hoisted_2), + (0, vue.withDirectives)((0, vue.createElementVNode)("div", { + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("content")), + style: (0, vue.normalizeStyle)(!!__props.title ? void 0 : { margin: 0 }) + }, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, () => [!__props.dangerouslyUseHTMLString ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("p", _hoisted_3, (0, vue.toDisplayString)(__props.message), 1)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [(0, vue.createCommentVNode)(" Caution here, message could've been compromised, never use user's input as message "), (0, vue.createElementVNode)("p", { innerHTML: __props.message }, null, 8, _hoisted_4)], 2112))])], 6), [[vue.vShow, __props.message]]), + __props.showClose ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(ElIcon), { + key: 0, + class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("closeBtn")), + onClick: (0, vue.withModifiers)(close, ["stop"]) + }, { + default: (0, vue.withCtx)(() => [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.closeIcon)))]), + _: 1 + }, 8, ["class"])) : (0, vue.createCommentVNode)("v-if", true) + ], 2)], 46, _hoisted_1), [[vue.vShow, visible.value]])]), + _: 3 + }, 8, ["name", "onBeforeLeave"]); + }; + } + }); + +//#endregion +//#region ../../packages/components/notification/src/notification.vue + var notification_default = notification_vue_vue_type_script_setup_true_lang_default; + +//#endregion +//#region ../../packages/components/notification/src/notify.ts + const notifications = { + "top-left": [], + "top-right": [], + "bottom-left": [], + "bottom-right": [] + }; + const GAP_SIZE = 16; + let seed = 1; + const notify = function(options = {}, context) { + if (!isClient) return { close: () => void 0 }; + if (isString(options) || (0, vue.isVNode)(options)) options = { message: options }; + const position = options.position || "top-right"; + let verticalOffset = options.offset || 0; + notifications[position].forEach(({ vm }) => { + verticalOffset += (vm.el?.offsetHeight || 0) + GAP_SIZE; + }); + verticalOffset += GAP_SIZE; + const id = `notification_${seed++}`; + const userOnClose = options.onClose; + const props = { + ...options, + offset: verticalOffset, + id, + onClose: () => { + close(id, position, userOnClose); + } + }; + let appendTo = document.body; + if (isElement$1(options.appendTo)) appendTo = options.appendTo; + else if (isString(options.appendTo)) appendTo = document.querySelector(options.appendTo); + if (!isElement$1(appendTo)) { + /* @__PURE__ */ debugWarn("ElNotification", "the appendTo option is not an HTMLElement. Falling back to document.body."); + appendTo = document.body; + } + const container = document.createElement("div"); + const vm = (0, vue.createVNode)(notification_default, props, isFunction$1(props.message) ? props.message : (0, vue.isVNode)(props.message) ? () => props.message : null); + vm.appContext = isUndefined(context) ? notify._context : context; + vm.props.onDestroy = () => { + (0, vue.render)(null, container); + }; + (0, vue.render)(vm, container); + notifications[position].push({ vm }); + appendTo.appendChild(container.firstElementChild); + return { close: () => { + vm.component.exposed.visible.value = false; + } }; + }; + notificationTypes.forEach((type) => { + notify[type] = (options = {}, appContext) => { + if (isString(options) || (0, vue.isVNode)(options)) options = { message: options }; + return notify({ + ...options, + type + }, appContext); + }; + }); + /** + * This function gets called when user click `x` button or press `esc` or the time reached its limitation. + * Emitted by transition@before-leave event so that we can fetch the current notification.offsetHeight, if this was called + * by @after-leave the DOM element will be removed from the page thus we can no longer fetch the offsetHeight. + * @param {String} id notification id to be closed + * @param {Position} position the positioning strategy + * @param {Function} userOnClose the callback called when close passed by user + */ + function close(id, position, userOnClose) { + const orientedNotifications = notifications[position]; + const idx = orientedNotifications.findIndex(({ vm }) => vm.component?.props.id === id); + if (idx === -1) return; + const { vm } = orientedNotifications[idx]; + if (!vm) return; + userOnClose?.(vm); + const removedHeight = vm.el.offsetHeight; + const verticalPos = position.split("-")[0]; + orientedNotifications.splice(idx, 1); + const len = orientedNotifications.length; + if (len < 1) return; + for (let i = idx; i < len; i++) { + const { el, component } = orientedNotifications[i].vm; + const pos = Number.parseInt(el.style[verticalPos], 10) - removedHeight - GAP_SIZE; + component.props.offset = pos; + } + } + function closeAll() { + for (const orientedNotifications of Object.values(notifications)) orientedNotifications.forEach(({ vm }) => { + vm.component.exposed.visible.value = false; + }); + } + function updateOffsets(position = "top-right") { + let verticalOffset = notifications[position][0]?.vm.component?.props?.offset || 0; + for (const { vm } of notifications[position]) { + vm.component.props.offset = verticalOffset; + verticalOffset += (vm.el?.offsetHeight || 0) + GAP_SIZE; + } + } + notify.closeAll = closeAll; + notify.updateOffsets = updateOffsets; + notify._context = null; + +//#endregion +//#region ../../packages/components/notification/index.ts + const ElNotification = withInstallFunction(notify, "$notify"); + +//#endregion +//#region ../../packages/element-plus/plugin.ts + var plugin_default = [ + ElInfiniteScroll, + ElLoading, + ElMessage, + ElMessageBox, + ElNotification, + ElPopoverDirective + ]; + +//#endregion +//#region ../../packages/element-plus/defaults.ts + var defaults_default = makeInstaller([...component_default, ...plugin_default]); + +//#endregion +//#region ../../packages/element-plus/index.ts + const install = defaults_default.install; + const version = defaults_default.version; + var element_plus_default = defaults_default; + +//#endregion +exports.BAR_MAP = BAR_MAP; +exports.BORDER_HORIZONTAL_WIDTH = BORDER_HORIZONTAL_WIDTH; +exports.CAROUSEL_ITEM_NAME = CAROUSEL_ITEM_NAME; +exports.CASCADER_PANEL_INJECTION_KEY = CASCADER_PANEL_INJECTION_KEY; +exports.CHANGE_EVENT = CHANGE_EVENT; +exports.ClickOutside = ClickOutside; +exports.CommonPicker = picker_default; +exports.CommonProps = CommonProps; +exports.DEFAULT_DIALOG_TRANSITION = DEFAULT_DIALOG_TRANSITION; +exports.DEFAULT_EMPTY_VALUES = DEFAULT_EMPTY_VALUES; +exports.DEFAULT_FORMATS_DATE = DEFAULT_FORMATS_DATE; +exports.DEFAULT_FORMATS_DATEPICKER = DEFAULT_FORMATS_DATEPICKER; +exports.DEFAULT_FORMATS_TIME = DEFAULT_FORMATS_TIME; +exports.DEFAULT_STEP = DEFAULT_STEP; +exports.DEFAULT_VALUE_ON_CLEAR = DEFAULT_VALUE_ON_CLEAR; +exports.DROPDOWN_INJECTION_KEY = DROPDOWN_INJECTION_KEY; +exports.DROPDOWN_INSTANCE_INJECTION_KEY = DROPDOWN_INSTANCE_INJECTION_KEY; +exports.DefaultProps = DefaultProps; +exports.DynamicSizeGrid = DynamicSizeGrid; +exports.DynamicSizeList = DynamicSizeList; +exports.EVENT_CODE = EVENT_CODE; +exports.Effect = Effect; +exports.ElAffix = ElAffix; +exports.ElAlert = ElAlert; +exports.ElAnchor = ElAnchor; +exports.ElAnchorLink = ElAnchorLink; +exports.ElAside = ElAside; +exports.ElAutoResizer = ElAutoResizer; +exports.ElAutocomplete = ElAutocomplete; +exports.ElAvatar = ElAvatar; +exports.ElAvatarGroup = ElAvatarGroup; +exports.ElBacktop = ElBacktop; +exports.ElBadge = ElBadge; +exports.ElBreadcrumb = ElBreadcrumb; +exports.ElBreadcrumbItem = ElBreadcrumbItem; +exports.ElButton = ElButton; +exports.ElButtonGroup = ElButtonGroup; +exports.ElCalendar = ElCalendar; +exports.ElCard = ElCard; +exports.ElCarousel = ElCarousel; +exports.ElCarouselItem = ElCarouselItem; +exports.ElCascader = ElCascader; +exports.ElCascaderPanel = ElCascaderPanel; +exports.ElCheckTag = ElCheckTag; +exports.ElCheckbox = ElCheckbox; +exports.ElCheckboxButton = ElCheckboxButton; +exports.ElCheckboxGroup = ElCheckboxGroup; +exports.ElCol = ElCol; +exports.ElCollapse = ElCollapse; +exports.ElCollapseItem = ElCollapseItem; +exports.ElCollapseTransition = ElCollapseTransition; +exports.ElColorPicker = ElColorPicker; +exports.ElColorPickerPanel = ElColorPickerPanel; +exports.ElConfigProvider = ElConfigProvider; +exports.ElContainer = ElContainer; +exports.ElCountdown = ElCountdown; +exports.ElDatePicker = ElDatePicker; +exports.ElDatePickerPanel = ElDatePickerPanel; +exports.ElDescriptions = ElDescriptions; +exports.ElDescriptionsItem = ElDescriptionsItem; +exports.ElDialog = ElDialog; +exports.ElDivider = ElDivider; +exports.ElDrawer = ElDrawer; +exports.ElDropdown = ElDropdown; +exports.ElDropdownItem = ElDropdownItem; +exports.ElDropdownMenu = ElDropdownMenu; +exports.ElEmpty = ElEmpty; +exports.ElFooter = ElFooter; +exports.ElForm = ElForm; +exports.ElFormItem = ElFormItem; +exports.ElHeader = ElHeader; +exports.ElIcon = ElIcon; +exports.ElImage = ElImage; +exports.ElImageViewer = ElImageViewer; +exports.ElInfiniteScroll = ElInfiniteScroll; +exports.ElInput = ElInput; +exports.ElInputNumber = ElInputNumber; +exports.ElInputTag = ElInputTag; +exports.ElLink = ElLink; +exports.ElLoading = ElLoading; +exports.ElLoadingDirective = vLoading; +exports.vLoading = vLoading; +exports.ElLoadingService = Loading; +exports.ElMain = ElMain; +exports.ElMention = ElMention; +exports.ElMenu = ElMenu; +exports.ElMenuItem = ElMenuItem; +exports.ElMenuItemGroup = ElMenuItemGroup; +exports.ElMessage = ElMessage; +exports.ElMessageBox = ElMessageBox; +exports.ElNotification = ElNotification; +exports.ElOption = ElOption; +exports.ElOptionGroup = ElOptionGroup; +exports.ElOverlay = ElOverlay; +exports.ElPageHeader = ElPageHeader; +exports.ElPagination = ElPagination; +exports.ElPopconfirm = ElPopconfirm; +exports.ElPopover = ElPopover; +exports.ElPopoverDirective = ElPopoverDirective; +exports.ElPopper = ElPopper; +exports.ElPopperArrow = arrow_default; +exports.ElPopperContent = content_default; +exports.ElPopperTrigger = trigger_default; +exports.ElProgress = ElProgress; +exports.ElRadio = ElRadio; +exports.ElRadioButton = ElRadioButton; +exports.ElRadioGroup = ElRadioGroup; +exports.ElRate = ElRate; +exports.ElResult = ElResult; +exports.ElRow = ElRow; +exports.ElScrollbar = ElScrollbar; +exports.ElSegmented = ElSegmented; +exports.ElSelect = ElSelect; +exports.ElSelectV2 = ElSelectV2; +exports.ElSkeleton = ElSkeleton; +exports.ElSkeletonItem = ElSkeletonItem; +exports.ElSlider = ElSlider; +exports.ElSpace = ElSpace; +exports.ElSplitter = ElSplitter; +exports.ElSplitterPanel = ElSplitterPanel; +exports.ElStatistic = ElStatistic; +exports.ElStep = ElStep; +exports.ElSteps = ElSteps; +exports.ElSubMenu = ElSubMenu; +exports.ElSwitch = ElSwitch; +exports.ElTabPane = ElTabPane; +exports.ElTable = ElTable; +exports.ElTableColumn = ElTableColumn; +exports.ElTableV2 = ElTableV2; +exports.ElTabs = ElTabs; +exports.ElTag = ElTag; +exports.ElText = ElText; +exports.ElTimePicker = ElTimePicker; +exports.ElTimeSelect = ElTimeSelect; +exports.ElTimeline = ElTimeline; +exports.ElTimelineItem = ElTimelineItem; +exports.ElTooltip = ElTooltip; +exports.ElTour = ElTour; +exports.ElTourStep = ElTourStep; +exports.ElTransfer = ElTransfer; +exports.ElTree = ElTree; +exports.ElTreeSelect = ElTreeSelect; +exports.ElTreeV2 = ElTreeV2; +exports.ElUpload = ElUpload; +exports.ElWatermark = ElWatermark; +exports.FIRST_KEYS = FIRST_KEYS; +exports.FIRST_LAST_KEYS = FIRST_LAST_KEYS; +exports.FORWARD_REF_INJECTION_KEY = FORWARD_REF_INJECTION_KEY; +exports.FixedSizeGrid = FixedSizeGrid; +exports.FixedSizeList = FixedSizeList; +exports.GAP = GAP; +exports.ID_INJECTION_KEY = ID_INJECTION_KEY; +exports.INPUT_EVENT = INPUT_EVENT; +exports.INSTALLED_KEY = INSTALLED_KEY; +exports.IconComponentMap = IconComponentMap; +exports.IconMap = IconMap; +exports.LAST_KEYS = LAST_KEYS; +exports.LEFT_CHECK_CHANGE_EVENT = LEFT_CHECK_CHANGE_EVENT; +exports.MENU_INJECTION_KEY = MENU_INJECTION_KEY; +exports.MESSAGE_DEFAULT_PLACEMENT = MESSAGE_DEFAULT_PLACEMENT; +exports.MINIMUM_INPUT_WIDTH = MINIMUM_INPUT_WIDTH; +exports.Mousewheel = Mousewheel; +exports.NODE_INSTANCE_INJECTION_KEY = NODE_INSTANCE_INJECTION_KEY; +exports.PICKER_BASE_INJECTION_KEY = PICKER_BASE_INJECTION_KEY; +exports.PICKER_POPPER_OPTIONS_INJECTION_KEY = PICKER_POPPER_OPTIONS_INJECTION_KEY; +exports.POPPER_CONTENT_INJECTION_KEY = POPPER_CONTENT_INJECTION_KEY; +exports.POPPER_INJECTION_KEY = POPPER_INJECTION_KEY; +exports.RIGHT_CHECK_CHANGE_EVENT = RIGHT_CHECK_CHANGE_EVENT; +exports.ROOT_COMMON_COLOR_INJECTION_KEY = ROOT_COMMON_COLOR_INJECTION_KEY; +exports.ROOT_COMMON_PICKER_INJECTION_KEY = ROOT_COMMON_PICKER_INJECTION_KEY; +exports.ROOT_PICKER_INJECTION_KEY = ROOT_PICKER_INJECTION_KEY; +exports.ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY = ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY; +exports.ROOT_TREE_INJECTION_KEY = ROOT_TREE_INJECTION_KEY; +exports.RowAlign = RowAlign; +exports.RowJustify = RowJustify; +exports.SCOPE = SCOPE; +exports.SIZE_INJECTION_KEY = SIZE_INJECTION_KEY; +exports.STEPS_INJECTION_KEY = STEPS_INJECTION_KEY; +exports.SUB_MENU_INJECTION_KEY = SUB_MENU_INJECTION_KEY; +exports.TIMELINE_INJECTION_KEY = TIMELINE_INJECTION_KEY; +exports.TOOLTIP_INJECTION_KEY = TOOLTIP_INJECTION_KEY; +exports.TREE_NODE_MAP_INJECTION_KEY = TREE_NODE_MAP_INJECTION_KEY; +exports.TableV2 = TableV2; +exports.TableV2Alignment = Alignment; +exports.TableV2FixedDir = FixedDir; +exports.TableV2Placeholder = placeholderSign; +exports.TableV2SortOrder = SortOrder; +exports.TimePickPanel = panel_time_pick_default; +exports.TrapFocus = TrapFocus; +exports.UPDATE_MODEL_EVENT = UPDATE_MODEL_EVENT; +exports.WEEK_DAYS = WEEK_DAYS; +exports.ZINDEX_INJECTION_KEY = ZINDEX_INJECTION_KEY; +exports.affixEmits = affixEmits; +exports.affixProps = affixProps; +exports.alertEffects = alertEffects; +exports.alertEmits = alertEmits; +exports.alertProps = alertProps; +exports.anchorEmits = anchorEmits; +exports.anchorProps = anchorProps; +exports.ariaProps = ariaProps; +exports.arrowMiddleware = arrowMiddleware; +exports.autoResizerProps = autoResizerProps; +exports.autocompleteEmits = autocompleteEmits; +exports.autocompleteProps = autocompleteProps; +exports.avatarEmits = avatarEmits; +exports.avatarGroupContextKey = avatarGroupContextKey; +exports.avatarGroupProps = avatarGroupProps; +exports.avatarProps = avatarProps; +exports.backtopEmits = backtopEmits; +exports.backtopProps = backtopProps; +exports.badgeProps = badgeProps; +exports.breadcrumbItemProps = breadcrumbItemProps; +exports.breadcrumbKey = breadcrumbKey; +exports.breadcrumbProps = breadcrumbProps; +exports.buildLocaleContext = buildLocaleContext; +exports.buildTimeList = buildTimeList; +exports.buildTranslator = buildTranslator; +exports.buttonEmits = buttonEmits; +exports.buttonGroupContextKey = buttonGroupContextKey; +exports.buttonNativeTypes = buttonNativeTypes; +exports.buttonProps = buttonProps; +exports.buttonTypes = buttonTypes; +exports.calendarEmits = calendarEmits; +exports.calendarProps = calendarProps; +exports.cardContextKey = cardContextKey; +exports.cardProps = cardProps; +exports.carouselContextKey = carouselContextKey; +exports.carouselEmits = carouselEmits; +exports.carouselItemProps = carouselItemProps; +exports.carouselProps = carouselProps; +exports.cascaderEmits = cascaderEmits; +exports.cascaderPanelEmits = cascaderPanelEmits; +exports.cascaderPanelProps = cascaderPanelProps; +exports.cascaderProps = cascaderProps; +exports.checkTagEmits = checkTagEmits; +exports.checkTagProps = checkTagProps; +exports.checkboxDefaultProps = checkboxDefaultProps; +exports.checkboxEmits = checkboxEmits; +exports.checkboxGroupContextKey = checkboxGroupContextKey; +exports.checkboxGroupEmits = checkboxGroupEmits; +exports.checkboxGroupProps = checkboxGroupProps; +exports.checkboxProps = checkboxProps; +exports.checkboxPropsDefaults = checkboxPropsDefaults; +exports.colProps = colProps; +exports.collapseContextKey = collapseContextKey; +exports.collapseEmits = collapseEmits; +exports.collapseItemProps = collapseItemProps; +exports.collapseProps = collapseProps; +exports.colorPickerEmits = colorPickerEmits; +exports.colorPickerPanelContextKey = colorPickerPanelContextKey; +exports.colorPickerPanelEmits = colorPickerPanelEmits; +exports.colorPickerPanelProps = colorPickerPanelProps; +exports.colorPickerProps = colorPickerProps; +exports.colorPickerPropsDefaults = colorPickerPropsDefaults; +exports.columnAlignment = columnAlignment; +exports.componentSizeMap = componentSizeMap; +exports.componentSizes = componentSizes; +exports.configProviderContextKey = configProviderContextKey; +exports.configProviderProps = configProviderProps; +exports.countdownEmits = countdownEmits; +exports.countdownProps = countdownProps; +exports.createModelToggleComposable = createModelToggleComposable; +exports.dateEquals = dateEquals; +exports.datePickTypes = datePickTypes; +exports.datePickerPanelProps = datePickerPanelProps; +exports.datePickerProps = datePickerProps; +exports.dayOrDaysToDate = dayOrDaysToDate; +Object.defineProperty(exports, 'dayjs', { + enumerable: true, + get: function () { + return import_dayjs_min.default; + } +}); +exports.default = element_plus_default; +exports.defaultInitialZIndex = defaultInitialZIndex; +exports.defaultNamespace = defaultNamespace; +exports.defaultProps = defaultProps; +exports.descriptionItemProps = descriptionItemProps; +exports.descriptionProps = descriptionProps; +exports.dialogContextKey = dialogContextKey; +exports.dialogEmits = dialogEmits; +exports.dialogInjectionKey = dialogInjectionKey; +exports.dialogProps = dialogProps; +exports.dialogPropsDefaults = dialogPropsDefaults; +exports.dividerProps = dividerProps; +exports.drawerEmits = drawerEmits; +exports.drawerProps = drawerProps; +exports.dropdownItemProps = dropdownItemProps; +exports.dropdownMenuProps = dropdownMenuProps; +exports.dropdownProps = dropdownProps; +exports.elPaginationKey = elPaginationKey; +exports.emitChangeFn = emitChangeFn; +exports.emptyProps = emptyProps; +exports.emptyValuesContextKey = emptyValuesContextKey; +exports.extractDateFormat = extractDateFormat; +exports.extractTimeFormat = extractTimeFormat; +exports.formContextKey = formContextKey; +exports.formEmits = formEmits; +exports.formItemContextKey = formItemContextKey; +exports.formItemProps = formItemProps; +exports.formItemValidateStates = formItemValidateStates; +exports.formMetaProps = formMetaProps; +exports.formProps = formProps; +exports.formatter = formatter; +exports.genFileId = genFileId; +exports.getPositionDataWithUnit = getPositionDataWithUnit; +exports.iconProps = iconProps; +exports.imageEmits = imageEmits; +exports.imageProps = imageProps; +exports.imageViewerEmits = imageViewerEmits; +exports.imageViewerProps = imageViewerProps; +exports.inputEmits = inputEmits; +exports.inputNumberEmits = inputNumberEmits; +exports.inputNumberProps = inputNumberProps; +exports.inputProps = inputProps; +exports.inputPropsDefaults = inputPropsDefaults; +exports.inputTagEmits = inputTagEmits; +exports.inputTagProps = inputTagProps; +exports.install = install; +exports.linkEmits = linkEmits; +exports.linkProps = linkProps; +exports.localeContextKey = localeContextKey; +exports.makeInstaller = makeInstaller; +exports.makeList = makeList; +exports.mentionDefaultProps = mentionDefaultProps; +exports.mentionEmits = mentionEmits; +exports.mentionProps = mentionProps; +exports.menuEmits = menuEmits; +exports.menuItemEmits = menuItemEmits; +exports.menuItemGroupProps = menuItemGroupProps; +exports.menuItemProps = menuItemProps; +exports.menuProps = menuProps; +exports.messageConfig = messageConfig; +exports.messageDefaults = messageDefaults; +exports.messageEmits = messageEmits; +exports.messagePlacement = messagePlacement; +exports.messageProps = messageProps; +exports.messageTypes = messageTypes; +exports.namespaceContextKey = namespaceContextKey; +exports.notificationEmits = notificationEmits; +exports.notificationProps = notificationProps; +exports.notificationTypes = notificationTypes; +exports.overlayEmits = overlayEmits; +exports.overlayProps = overlayProps; +exports.pageHeaderEmits = pageHeaderEmits; +exports.pageHeaderProps = pageHeaderProps; +exports.paginationEmits = paginationEmits; +exports.paginationProps = paginationProps; +exports.parseDate = parseDate; +exports.popconfirmEmits = popconfirmEmits; +exports.popconfirmProps = popconfirmProps; +exports.popoverEmits = popoverEmits; +exports.popoverProps = popoverProps; +exports.popoverPropsDefaults = popoverPropsDefaults; +exports.popperArrowProps = popperArrowProps; +exports.popperArrowPropsDefaults = popperArrowPropsDefaults; +exports.popperContentEmits = popperContentEmits; +exports.popperContentProps = popperContentProps; +exports.popperContentPropsDefaults = popperContentPropsDefaults; +exports.popperCoreConfigProps = popperCoreConfigProps; +exports.popperCoreConfigPropsDefaults = popperCoreConfigPropsDefaults; +exports.popperProps = popperProps; +exports.popperTriggerProps = popperTriggerProps; +exports.progressProps = progressProps; +exports.provideGlobalConfig = provideGlobalConfig; +exports.radioButtonProps = radioButtonProps; +exports.radioButtonPropsDefaults = radioButtonPropsDefaults; +exports.radioDefaultProps = radioDefaultProps; +exports.radioEmits = radioEmits; +exports.radioGroupEmits = radioGroupEmits; +exports.radioGroupKey = radioGroupKey; +exports.radioGroupProps = radioGroupProps; +exports.radioGroupPropsDefaults = radioGroupPropsDefaults; +exports.radioProps = radioProps; +exports.radioPropsBase = radioPropsBase; +exports.radioPropsDefaults = radioPropsDefaults; +exports.rangeArr = rangeArr; +exports.rateEmits = rateEmits; +exports.rateProps = rateProps; +exports.renderThumbStyle = renderThumbStyle; +exports.resultProps = resultProps; +exports.roleTypes = roleTypes; +exports.rowContextKey = rowContextKey; +exports.rowProps = rowProps; +exports.scrollbarContextKey = scrollbarContextKey; +exports.scrollbarEmits = scrollbarEmits; +exports.scrollbarProps = scrollbarProps; +exports.segmentedEmits = segmentedEmits; +exports.segmentedProps = segmentedProps; +exports.selectEmits = selectEmits; +exports.selectGroupKey = selectGroupKey; +exports.selectKey = selectKey; +exports.selectProps = selectProps; +exports.selectV2InjectionKey = selectV2InjectionKey; +exports.skeletonItemProps = skeletonItemProps; +exports.skeletonProps = skeletonProps; +exports.sliderContextKey = sliderContextKey; +exports.sliderEmits = sliderEmits; +exports.sliderProps = sliderProps; +exports.spaceItemProps = spaceItemProps; +exports.spaceProps = spaceProps; +exports.splitterEmits = splitterEmits; +exports.splitterPanelEmits = splitterPanelEmits; +exports.splitterPanelProps = splitterPanelProps; +exports.splitterProps = splitterProps; +exports.statisticProps = statisticProps; +exports.stepProps = stepProps; +exports.stepsEmits = stepsEmits; +exports.stepsProps = stepsProps; +exports.subMenuProps = subMenuProps; +exports.switchEmits = switchEmits; +exports.switchProps = switchProps; +exports.tabBarProps = tabBarProps; +exports.tabNavEmits = tabNavEmits; +exports.tabNavProps = tabNavProps; +exports.tabPaneProps = tabPaneProps; +exports.tableV2Props = tableV2Props; +exports.tableV2RowProps = tableV2RowProps; +exports.tabsEmits = tabsEmits; +exports.tabsProps = tabsProps; +exports.tabsRootContextKey = tabsRootContextKey; +exports.tagEmits = tagEmits; +exports.tagProps = tagProps; +exports.textProps = textProps; +exports.thumbProps = thumbProps; +exports.timePickerDefaultProps = timePickerDefaultProps; +exports.timePickerRangeTriggerProps = timePickerRangeTriggerProps; +exports.timePickerRngeTriggerProps = timePickerRngeTriggerProps; +exports.timeSelectProps = timeSelectProps; +exports.timeUnits = timeUnits; +exports.timelineItemProps = timelineItemProps; +exports.timelineProps = timelineProps; +exports.tooltipEmits = tooltipEmits; +exports.tourContentEmits = tourContentEmits; +exports.tourContentProps = tourContentProps; +exports.tourEmits = tourEmits; +exports.tourPlacements = tourPlacements; +exports.tourProps = tourProps; +exports.tourStepEmits = tourStepEmits; +exports.tourStepProps = tourStepProps; +exports.tourStrategies = tourStrategies; +exports.transferCheckedChangeFn = transferCheckedChangeFn; +exports.transferEmits = transferEmits; +exports.transferProps = transferProps; +exports.translate = translate; +exports.treeEmits = treeEmits; +exports.treeProps = treeProps; +exports.uploadBaseProps = uploadBaseProps; +exports.uploadBasePropsDefaults = uploadBasePropsDefaults; +exports.uploadContentProps = uploadContentProps; +exports.uploadContentPropsDefaults = uploadContentPropsDefaults; +exports.uploadContextKey = uploadContextKey; +exports.uploadDraggerEmits = uploadDraggerEmits; +exports.uploadDraggerProps = uploadDraggerProps; +exports.uploadListEmits = uploadListEmits; +exports.uploadListProps = uploadListProps; +exports.uploadListTypes = uploadListTypes; +exports.uploadProps = uploadProps; +exports.uploadPropsDefaults = uploadPropsDefaults; +exports.useAriaProps = useAriaProps; +exports.useAttrs = useAttrs; +exports.useCalcInputWidth = useCalcInputWidth; +exports.useCascaderConfig = useCascaderConfig; +exports.useComposition = useComposition; +exports.useCursor = useCursor; +exports.useDelayedRender = useDelayedRender; +exports.useDelayedToggle = useDelayedToggle; +exports.useDelayedToggleProps = useDelayedToggleProps; +exports.useDelayedTogglePropsDefaults = useDelayedTogglePropsDefaults; +exports.useDeprecated = useDeprecated; +exports.useDialog = useDialog; +exports.useDisabled = useDisabled; +exports.useDraggable = useDraggable; +exports.useEmptyValues = useEmptyValues; +exports.useEmptyValuesProps = useEmptyValuesProps; +exports.useEscapeKeydown = useEscapeKeydown; +exports.useFloating = useFloating; +exports.useFloatingProps = useFloatingProps; +exports.useFocus = useFocus; +exports.useFocusController = useFocusController; +exports.useFormDisabled = useFormDisabled; +exports.useFormItem = useFormItem; +exports.useFormItemInputId = useFormItemInputId; +exports.useFormSize = useFormSize; +exports.useForwardRef = useForwardRef; +exports.useForwardRefDirective = useForwardRefDirective; +exports.useGetDerivedNamespace = useGetDerivedNamespace; +exports.useGlobalComponentSettings = useGlobalComponentSettings; +exports.useGlobalConfig = useGlobalConfig; +exports.useGlobalSize = useGlobalSize; +exports.useId = useId; +exports.useIdInjection = useIdInjection; +exports.useLocale = useLocale; +exports.useLockscreen = useLockscreen; +exports.useModal = useModal; +exports.useModelToggle = useModelToggle; +exports.useModelToggleEmits = useModelToggleEmits; +exports.useModelToggleProps = useModelToggleProps; +exports.useNamespace = useNamespace; +exports.useOrderedChildren = useOrderedChildren; +exports.usePopper = usePopper; +exports.usePopperArrowProps = usePopperArrowProps; +exports.usePopperContainer = usePopperContainer; +exports.usePopperContainerId = usePopperContainerId; +exports.usePopperContentEmits = usePopperContentEmits; +exports.usePopperContentProps = usePopperContentProps; +exports.usePopperCoreConfigProps = usePopperCoreConfigProps; +exports.usePopperProps = usePopperProps; +exports.usePopperTriggerProps = usePopperTriggerProps; +exports.usePreventGlobal = usePreventGlobal; +exports.useProp = useProp; +exports.useSameTarget = useSameTarget; +exports.useSize = useSize; +exports.useSizeProp = useSizeProp; +exports.useSizeProps = useSizeProps; +exports.useSpace = useSpace; +exports.useTeleport = useTeleport; +exports.useThrottleRender = useThrottleRender; +exports.useTimeout = useTimeout; +exports.useTooltipContentProps = useTooltipContentProps; +exports.useTooltipContentPropsDefaults = useTooltipContentPropsDefaults; +exports.useTooltipModelToggle = useTooltipModelToggle; +exports.useTooltipModelToggleEmits = useTooltipModelToggleEmits; +exports.useTooltipModelToggleProps = useTooltipModelToggleProps; +exports.useTooltipProps = useTooltipProps; +exports.useTooltipTriggerProps = useTooltipTriggerProps; +exports.useTooltipTriggerPropsDefaults = useTooltipTriggerPropsDefaults; +exports.useTransitionFallthrough = useTransitionFallthrough; +exports.useTransitionFallthroughEmits = useTransitionFallthroughEmits; +exports.useZIndex = useZIndex; +exports.vRepeatClick = vRepeatClick; +exports.valueEquals = valueEquals; +exports.version = version; +exports.virtualizedGridProps = virtualizedGridProps; +exports.virtualizedListProps = virtualizedListProps; +exports.virtualizedProps = virtualizedProps; +exports.virtualizedScrollbarProps = virtualizedScrollbarProps; +exports.watermarkProps = watermarkProps; +exports.zIndexContextKey = zIndexContextKey; +}); \ No newline at end of file diff --git a/platform/backend/static/static/element-plus/index.css b/platform/backend/static/static/element-plus/index.css new file mode 100644 index 0000000..601bc84 --- /dev/null +++ b/platform/backend/static/static/element-plus/index.css @@ -0,0 +1 @@ +@charset "UTF-8";:root{--el-color-white:#ffffff;--el-color-black:#000000;--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:0.3s;--el-transition-duration-fast:0.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(0.645, 0.045, 0.355, 1);--el-transition-function-fast-bezier:cubic-bezier(0.23, 1, 0.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}:root{color-scheme:light;--el-color-white:#ffffff;--el-color-black:#000000;--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:#ffffff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#ffffff;--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:#ffffff;--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, 0.04),0px 8px 20px rgba(0, 0, 0, 0.08);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, 0.12);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, 0.12);--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, 0.08),0px 12px 32px rgba(0, 0, 0, 0.12),0px 8px 16px -8px rgba(0, 0, 0, 0.16);--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:rgba(0, 0, 0, 0.8);--el-overlay-color-light:rgba(0, 0, 0, 0.7);--el-overlay-color-lighter:rgba(0, 0, 0, 0.5);--el-mask-color:rgba(255, 255, 255, 0.9);--el-mask-color-extra-light:rgba(255, 255, 255, 0.3);--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;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center top}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:center 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;transform:scaleY(1);transition:var(--el-transition-md-fade);transform-origin:center bottom}.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;transform:scale(1,1);transition:var(--el-transition-md-fade);transform-origin:top left}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45,.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-enter-active,.el-collapse-transition-leave-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-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}@keyframes rotating{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}.el-icon{--color:inherit;height:1em;width:1em;line-height:1em;display:inline-flex;justify-content:center;align-items:center;position:relative;fill:currentColor;color:var(--color);font-size:inherit}.el-icon.is-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon svg{height:1em;width: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:13px;--el-alert-description-font-size:12px;--el-alert-close-font-size:12px;--el-alert-close-customed-font-size:13px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;width:100%;padding:var(--el-alert-padding);margin:0;box-sizing:border-box;border-radius:var(--el-alert-border-radius-base);position:relative;background-color:var(--el-color-white);overflow:hidden;opacity:1;display:flex;align-items:center;transition:opacity var(--el-transition-duration-fast)}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn{color:var(--el-color-white)}.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.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{display:table-cell;padding:0 8px}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);width:var(--el-alert-icon-size)}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);width:var(--el-alert-icon-large-size)}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:18px;vertical-align:text-top}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:5px 0 0 0}.el-alert .el-alert__close-btn{font-size:var(--el-alert-close-font-size);opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert .el-alert__close-btn.is-customed{font-style:normal;font-size:var(--el-alert-close-customed-font-size);top:9px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{overflow:auto;box-sizing:border-box;flex-shrink:0;width:var(--el-aside-width,300px)}.el-autocomplete{position:relative;display:inline-block}.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:transparent;border-left-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);list-style:none;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li:hover{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.highlighted{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid var(--el-color-black)}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:var(--el-text-color-secondary)}.el-autocomplete-suggestion.is-loading li::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.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;--el-avatar-size:40px;display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;text-align:center;overflow:hidden;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)}.el-avatar>img{display:block;width:100%;height:100%}.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-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);position:fixed;background-color:var(--el-backtop-bg-color);width:40px;height:40px;border-radius:50%;color:var(--el-backtop-text-color);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5}.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;position:relative;vertical-align:middle;display:inline-block;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);display:inline-flex;justify-content:center;align-items:center;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)}.el-badge__content.is-fixed{position:absolute;top:0;right:calc(1px + var(--el-badge-size)/ 2);transform:translateY(-50%) translateX(100%);z-index:var(--el-index-normal)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.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{font-size:14px;line-height:1}.el-breadcrumb::after,.el-breadcrumb::before{display:table;content:""}.el-breadcrumb::after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:var(--el-text-color-placeholder)}.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;display:inline-flex;align-items:center}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;transition:var(--el-transition-color);color:var(--el-text-color-primary)}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:var(--el-text-color-regular);cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group::after,.el-button-group::before{display:table;content:""}.el-button-group::after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius: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:not(:last-child){margin-right:-1px}.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-button.is-active{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .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 .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .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 .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .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 .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .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 .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group .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{--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:rgba(255, 255, 255, 0.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-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-color-info);--el-button-active-color:var(--el-text-color-primary)}.el-button{display:inline-flex;justify-content:center;align-items:center;line-height:1;height:32px;white-space:nowrap;cursor:pointer;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;outline:0;transition:.1s;font-weight:var(--el-button-font-weight);-webkit-user-select:none;-moz-user-select:none;-ms-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);padding:8px 15px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button:focus,.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:0}.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:0}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px}.el-button>span{display:inline-flex;align-items:center}.el-button+.el-button{margin-left:12px}.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:0}.el-button.is-disabled,.el-button.is-disabled:focus,.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{position:relative;pointer-events:none}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:var(--el-mask-color-extra-light)}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-circle{width:32px;border-radius:50%;padding:8px}.el-button.is-text{color:var(--el-button-text-color);border:0 solid transparent;background-color:transparent}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important}.el-button.is-text:not(.is-disabled):focus,.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}.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:focus,.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{border-color:transparent;color:var(--el-button-text-color);background:0 0;padding:2px;height:auto}.el-button.is-link:focus,.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:transparent!important;border-color:transparent!important}.el-button.is-link:not(.is-disabled):focus,.el-button.is-link:not(.is-disabled):hover{border-color:transparent;background-color:transparent}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);border-color:transparent;background-color:transparent}.el-button--text{border-color:transparent;background:0 0;color:var(--el-color-primary);padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:transparent!important;border-color:transparent!important}.el-button--text:not(.is-disabled):focus,.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);border-color:transparent;background-color:transparent}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);border-color:transparent;background-color:transparent}.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-link,.el-button--primary.is-plain,.el-button--primary.is-text{--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-link.is-disabled,.el-button--primary.is-link.is-disabled:active,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:hover{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-link,.el-button--success.is-plain,.el-button--success.is-text{--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-link.is-disabled,.el-button--success.is-link.is-disabled:active,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:active,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:hover{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-link,.el-button--warning.is-plain,.el-button--warning.is-text{--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-link.is-disabled,.el-button--warning.is-link.is-disabled:active,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:hover{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-link,.el-button--danger.is-plain,.el-button--danger.is-text{--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-link.is-disabled,.el-button--danger.is-link.is-disabled:active,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:hover{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-link,.el-button--info.is-plain,.el-button--info.is-text{--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-link.is-disabled,.el-button--info.is-link.is-disabled:active,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:active,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:hover{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);padding:12px 19px;font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base)}.el-button--large [class*=el-icon]+span{margin-left:8px}.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);padding:5px 11px;font-size:12px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-button--small [class*=el-icon]+span{margin-left:4px}.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{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:var(--el-calendar-header-border-bottom)}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:var(--el-text-color-regular);font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{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;padding:8px;height:var(--el-calendar-cell-width)}.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)}.el-card{border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);overflow:hidden;color:var(--el-text-color-primary);transition:var(--el-transition-duration)}.el-card.is-always-shadow{box-shadow:var(--el-box-shadow-light)}.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{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)}.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{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;z-index:calc(var(--el-index-normal) - 1)}.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.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage: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{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--el-color-white);opacity:.24;transition:var(--el-transition-duration-fast)}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:rgba(31, 45, 61, 0.11);--el-carousel-arrow-hover-background:rgba(31, 45, 61, 0.23);--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{overflow:hidden}.el-carousel--vertical{overflow:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);border-radius:50%;background-color:var(--el-carousel-arrow-background);color:#fff;position:absolute;top:50%;z-index:10;transform:translateY(-50%);text-align:center;font-size:var(--el-carousel-arrow-font-size);display:inline-flex;justify-content:center;align-items:center}.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{position:absolute;list-style:none;margin:0;padding:0;z-index:calc(var(--el-index-normal) + 1)}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:calc(var(--el-carousel-indicator-height) + var(--el-carousel-indicator-padding-vertical) * 2);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{left:0;right:0;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px;color:#000}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal)}.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{display:block;opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;transition:var(--el-transition-duration)}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{transform:translateY(-50%) translateX(10px);opacity:0}.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)}.el-cascader-panel{display:flex;border-radius:var(--el-cascader-menu-radius);font-size:var(--el-cascader-menu-font-size)}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{min-width:180px;box-sizing:border-box;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{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;box-sizing:border-box}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;color:var(--el-cascader-color-empty)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{position:relative;display:flex;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.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-active,.el-cascader-node.is-selectable.in-checked-path{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):focus,.el-cascader-node:not(.is-disabled):hover{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{flex:1;text-align:left;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-checkbox{margin-right:0}.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);display:inline-block;vertical-align:middle;position:relative;font-size:var(--el-font-size-base);line-height:32px;outline:0}.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{display:flex;cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis;cursor:pointer}.el-cascader .el-input .el-input__suffix-inner .el-icon{height:calc(100% - 2px)}.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:rotateZ(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--small{font-size:12px;line-height:24px}.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)}.el-cascader__dropdown{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:transparent;border-left-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;transform:translateY(-50%);display:flex;flex-wrap:wrap;line-height:normal;text-align:left;box-sizing:border-box}.el-cascader__tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-cascader-tag-background)}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{display:inline-flex;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:var(--el-fill-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__collapse-tags .el-tag>span{flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__collapse-tags .el-tag .el-icon-close{flex:none;background-color:var(--el-text-color-placeholder);color:var(--el-color-white)}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center}.el-cascader__suggestion-item{display:flex;justify-content:space-between;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{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>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:var(--el-cascader-color-empty)}.el-cascader__search-input{flex:1;height:24px;min-width:60px;margin:2px 0 2px 11px;padding:0;color:var(--el-cascader-menu-text-color);border:none;outline:0;box-sizing:border-box;background:0 0}.el-cascader__search-input::-moz-placeholder{color:transparent}.el-cascader__search-input:-ms-input-placeholder{color:transparent}.el-cascader__search-input::placeholder{color:transparent}.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;display:inline-block;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);padding:7px 15px;transition:var(--el-transition-all);font-weight:700}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.is-checked:hover{background-color:var(--el-color-primary-light-7)}.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{position:relative;display:inline-block}.el-checkbox-button__inner{display:inline-block;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));border:var(--el-border);border-left-color:transparent;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.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;outline:0;position:absolute;margin:0;z-index:-1}.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:first-child .el-checkbox-button__inner{border-left:var(--el-border);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{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.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)}.el-checkbox{color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:30px;height:var(--el-checkbox-height,32px)}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.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{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.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{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:0 11px 0 7px;border-radius:calc(var(--el-border-radius-base) - 1px)}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after{height:6px;width:2px}.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:0;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)}.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{transform:rotate(45deg) scaleY(1);border-color:var(--el-checkbox-checked-icon-color)}.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:"";position:absolute;display:block;background-color:var(--el-checkbox-checked-icon-color);height:2px;transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner::after{display:none}.el-checkbox__inner{display:inline-block;position:relative;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)}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner::after{box-sizing:content-box;content:"";border:1px solid transparent;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:3px;transition:transform .15s ease-in 50ms;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox__label{display:inline-block;padding-left:8px;line-height:1;font-size:var(--el-checkbox-font-size)}.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{display:block;min-height:1px}.el-col-0{display:none}.el-col-0.is-guttered{display:none}.el-col-0{max-width:0%;flex:0 0 0%}.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{max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-offset-1{margin-left:4.1666666667%}.el-col-pull-1{position:relative;right:4.1666666667%}.el-col-push-1{position:relative;left:4.1666666667%}.el-col-2{max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-offset-2{margin-left:8.3333333333%}.el-col-pull-2{position:relative;right:8.3333333333%}.el-col-push-2{position:relative;left:8.3333333333%}.el-col-3{max-width:12.5%;flex:0 0 12.5%}.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{max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-offset-4{margin-left:16.6666666667%}.el-col-pull-4{position:relative;right:16.6666666667%}.el-col-push-4{position:relative;left:16.6666666667%}.el-col-5{max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-offset-5{margin-left:20.8333333333%}.el-col-pull-5{position:relative;right:20.8333333333%}.el-col-push-5{position:relative;left:20.8333333333%}.el-col-6{max-width:25%;flex:0 0 25%}.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{max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-offset-7{margin-left:29.1666666667%}.el-col-pull-7{position:relative;right:29.1666666667%}.el-col-push-7{position:relative;left:29.1666666667%}.el-col-8{max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-offset-8{margin-left:33.3333333333%}.el-col-pull-8{position:relative;right:33.3333333333%}.el-col-push-8{position:relative;left:33.3333333333%}.el-col-9{max-width:37.5%;flex:0 0 37.5%}.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{max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-offset-10{margin-left:41.6666666667%}.el-col-pull-10{position:relative;right:41.6666666667%}.el-col-push-10{position:relative;left:41.6666666667%}.el-col-11{max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-offset-11{margin-left:45.8333333333%}.el-col-pull-11{position:relative;right:45.8333333333%}.el-col-push-11{position:relative;left:45.8333333333%}.el-col-12{max-width:50%;flex:0 0 50%}.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{max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-offset-13{margin-left:54.1666666667%}.el-col-pull-13{position:relative;right:54.1666666667%}.el-col-push-13{position:relative;left:54.1666666667%}.el-col-14{max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-offset-14{margin-left:58.3333333333%}.el-col-pull-14{position:relative;right:58.3333333333%}.el-col-push-14{position:relative;left:58.3333333333%}.el-col-15{max-width:62.5%;flex:0 0 62.5%}.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{max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-offset-16{margin-left:66.6666666667%}.el-col-pull-16{position:relative;right:66.6666666667%}.el-col-push-16{position:relative;left:66.6666666667%}.el-col-17{max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-offset-17{margin-left:70.8333333333%}.el-col-pull-17{position:relative;right:70.8333333333%}.el-col-push-17{position:relative;left:70.8333333333%}.el-col-18{max-width:75%;flex:0 0 75%}.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{max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-offset-19{margin-left:79.1666666667%}.el-col-pull-19{position:relative;right:79.1666666667%}.el-col-push-19{position:relative;left:79.1666666667%}.el-col-20{max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-offset-20{margin-left:83.3333333333%}.el-col-pull-20{position:relative;right:83.3333333333%}.el-col-push-20{position:relative;left:83.3333333333%}.el-col-21{max-width:87.5%;flex:0 0 87.5%}.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{max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-offset-22{margin-left:91.6666666667%}.el-col-pull-22{position:relative;right:91.6666666667%}.el-col-push-22{position:relative;left:91.6666666667%}.el-col-23{max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-offset-23{margin-left:95.8333333333%}.el-col-pull-23{position:relative;right:95.8333333333%}.el-col-push-23{position:relative;left:95.8333333333%}.el-col-24{max-width:100%;flex:0 0 100%}.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 (max-width:768px){.el-col-xs-0{display:none}.el-col-xs-0.is-guttered{display:none}.el-col-xs-0{max-width:0%;flex:0 0 0%}.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{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xs-offset-1{margin-left:4.1666666667%}.el-col-xs-pull-1{position:relative;right:4.1666666667%}.el-col-xs-push-1{position:relative;left:4.1666666667%}.el-col-xs-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xs-offset-2{margin-left:8.3333333333%}.el-col-xs-pull-2{position:relative;right:8.3333333333%}.el-col-xs-push-2{position:relative;left:8.3333333333%}.el-col-xs-3{display:block;max-width:12.5%;flex:0 0 12.5%}.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{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xs-offset-4{margin-left:16.6666666667%}.el-col-xs-pull-4{position:relative;right:16.6666666667%}.el-col-xs-push-4{position:relative;left:16.6666666667%}.el-col-xs-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xs-offset-5{margin-left:20.8333333333%}.el-col-xs-pull-5{position:relative;right:20.8333333333%}.el-col-xs-push-5{position:relative;left:20.8333333333%}.el-col-xs-6{display:block;max-width:25%;flex:0 0 25%}.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{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xs-offset-7{margin-left:29.1666666667%}.el-col-xs-pull-7{position:relative;right:29.1666666667%}.el-col-xs-push-7{position:relative;left:29.1666666667%}.el-col-xs-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xs-offset-8{margin-left:33.3333333333%}.el-col-xs-pull-8{position:relative;right:33.3333333333%}.el-col-xs-push-8{position:relative;left:33.3333333333%}.el-col-xs-9{display:block;max-width:37.5%;flex:0 0 37.5%}.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{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xs-offset-10{margin-left:41.6666666667%}.el-col-xs-pull-10{position:relative;right:41.6666666667%}.el-col-xs-push-10{position:relative;left:41.6666666667%}.el-col-xs-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xs-offset-11{margin-left:45.8333333333%}.el-col-xs-pull-11{position:relative;right:45.8333333333%}.el-col-xs-push-11{position:relative;left:45.8333333333%}.el-col-xs-12{display:block;max-width:50%;flex:0 0 50%}.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{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xs-offset-13{margin-left:54.1666666667%}.el-col-xs-pull-13{position:relative;right:54.1666666667%}.el-col-xs-push-13{position:relative;left:54.1666666667%}.el-col-xs-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xs-offset-14{margin-left:58.3333333333%}.el-col-xs-pull-14{position:relative;right:58.3333333333%}.el-col-xs-push-14{position:relative;left:58.3333333333%}.el-col-xs-15{display:block;max-width:62.5%;flex:0 0 62.5%}.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{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xs-offset-16{margin-left:66.6666666667%}.el-col-xs-pull-16{position:relative;right:66.6666666667%}.el-col-xs-push-16{position:relative;left:66.6666666667%}.el-col-xs-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xs-offset-17{margin-left:70.8333333333%}.el-col-xs-pull-17{position:relative;right:70.8333333333%}.el-col-xs-push-17{position:relative;left:70.8333333333%}.el-col-xs-18{display:block;max-width:75%;flex:0 0 75%}.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{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xs-offset-19{margin-left:79.1666666667%}.el-col-xs-pull-19{position:relative;right:79.1666666667%}.el-col-xs-push-19{position:relative;left:79.1666666667%}.el-col-xs-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xs-offset-20{margin-left:83.3333333333%}.el-col-xs-pull-20{position:relative;right:83.3333333333%}.el-col-xs-push-20{position:relative;left:83.3333333333%}.el-col-xs-21{display:block;max-width:87.5%;flex:0 0 87.5%}.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{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xs-offset-22{margin-left:91.6666666667%}.el-col-xs-pull-22{position:relative;right:91.6666666667%}.el-col-xs-push-22{position:relative;left:91.6666666667%}.el-col-xs-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xs-offset-23{margin-left:95.8333333333%}.el-col-xs-pull-23{position:relative;right:95.8333333333%}.el-col-xs-push-23{position:relative;left:95.8333333333%}.el-col-xs-24{display:block;max-width:100%;flex:0 0 100%}.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 (min-width:768px){.el-col-sm-0{display:none}.el-col-sm-0.is-guttered{display:none}.el-col-sm-0{max-width:0%;flex:0 0 0%}.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{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-sm-offset-1{margin-left:4.1666666667%}.el-col-sm-pull-1{position:relative;right:4.1666666667%}.el-col-sm-push-1{position:relative;left:4.1666666667%}.el-col-sm-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-sm-offset-2{margin-left:8.3333333333%}.el-col-sm-pull-2{position:relative;right:8.3333333333%}.el-col-sm-push-2{position:relative;left:8.3333333333%}.el-col-sm-3{display:block;max-width:12.5%;flex:0 0 12.5%}.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{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-sm-offset-4{margin-left:16.6666666667%}.el-col-sm-pull-4{position:relative;right:16.6666666667%}.el-col-sm-push-4{position:relative;left:16.6666666667%}.el-col-sm-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-sm-offset-5{margin-left:20.8333333333%}.el-col-sm-pull-5{position:relative;right:20.8333333333%}.el-col-sm-push-5{position:relative;left:20.8333333333%}.el-col-sm-6{display:block;max-width:25%;flex:0 0 25%}.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{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-sm-offset-7{margin-left:29.1666666667%}.el-col-sm-pull-7{position:relative;right:29.1666666667%}.el-col-sm-push-7{position:relative;left:29.1666666667%}.el-col-sm-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-sm-offset-8{margin-left:33.3333333333%}.el-col-sm-pull-8{position:relative;right:33.3333333333%}.el-col-sm-push-8{position:relative;left:33.3333333333%}.el-col-sm-9{display:block;max-width:37.5%;flex:0 0 37.5%}.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{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-sm-offset-10{margin-left:41.6666666667%}.el-col-sm-pull-10{position:relative;right:41.6666666667%}.el-col-sm-push-10{position:relative;left:41.6666666667%}.el-col-sm-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-sm-offset-11{margin-left:45.8333333333%}.el-col-sm-pull-11{position:relative;right:45.8333333333%}.el-col-sm-push-11{position:relative;left:45.8333333333%}.el-col-sm-12{display:block;max-width:50%;flex:0 0 50%}.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{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-sm-offset-13{margin-left:54.1666666667%}.el-col-sm-pull-13{position:relative;right:54.1666666667%}.el-col-sm-push-13{position:relative;left:54.1666666667%}.el-col-sm-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-sm-offset-14{margin-left:58.3333333333%}.el-col-sm-pull-14{position:relative;right:58.3333333333%}.el-col-sm-push-14{position:relative;left:58.3333333333%}.el-col-sm-15{display:block;max-width:62.5%;flex:0 0 62.5%}.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{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-sm-offset-16{margin-left:66.6666666667%}.el-col-sm-pull-16{position:relative;right:66.6666666667%}.el-col-sm-push-16{position:relative;left:66.6666666667%}.el-col-sm-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-sm-offset-17{margin-left:70.8333333333%}.el-col-sm-pull-17{position:relative;right:70.8333333333%}.el-col-sm-push-17{position:relative;left:70.8333333333%}.el-col-sm-18{display:block;max-width:75%;flex:0 0 75%}.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{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-sm-offset-19{margin-left:79.1666666667%}.el-col-sm-pull-19{position:relative;right:79.1666666667%}.el-col-sm-push-19{position:relative;left:79.1666666667%}.el-col-sm-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-sm-offset-20{margin-left:83.3333333333%}.el-col-sm-pull-20{position:relative;right:83.3333333333%}.el-col-sm-push-20{position:relative;left:83.3333333333%}.el-col-sm-21{display:block;max-width:87.5%;flex:0 0 87.5%}.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{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-sm-offset-22{margin-left:91.6666666667%}.el-col-sm-pull-22{position:relative;right:91.6666666667%}.el-col-sm-push-22{position:relative;left:91.6666666667%}.el-col-sm-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-sm-offset-23{margin-left:95.8333333333%}.el-col-sm-pull-23{position:relative;right:95.8333333333%}.el-col-sm-push-23{position:relative;left:95.8333333333%}.el-col-sm-24{display:block;max-width:100%;flex:0 0 100%}.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 (min-width:992px){.el-col-md-0{display:none}.el-col-md-0.is-guttered{display:none}.el-col-md-0{max-width:0%;flex:0 0 0%}.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{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-md-offset-1{margin-left:4.1666666667%}.el-col-md-pull-1{position:relative;right:4.1666666667%}.el-col-md-push-1{position:relative;left:4.1666666667%}.el-col-md-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-md-offset-2{margin-left:8.3333333333%}.el-col-md-pull-2{position:relative;right:8.3333333333%}.el-col-md-push-2{position:relative;left:8.3333333333%}.el-col-md-3{display:block;max-width:12.5%;flex:0 0 12.5%}.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{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-md-offset-4{margin-left:16.6666666667%}.el-col-md-pull-4{position:relative;right:16.6666666667%}.el-col-md-push-4{position:relative;left:16.6666666667%}.el-col-md-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-md-offset-5{margin-left:20.8333333333%}.el-col-md-pull-5{position:relative;right:20.8333333333%}.el-col-md-push-5{position:relative;left:20.8333333333%}.el-col-md-6{display:block;max-width:25%;flex:0 0 25%}.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{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-md-offset-7{margin-left:29.1666666667%}.el-col-md-pull-7{position:relative;right:29.1666666667%}.el-col-md-push-7{position:relative;left:29.1666666667%}.el-col-md-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-md-offset-8{margin-left:33.3333333333%}.el-col-md-pull-8{position:relative;right:33.3333333333%}.el-col-md-push-8{position:relative;left:33.3333333333%}.el-col-md-9{display:block;max-width:37.5%;flex:0 0 37.5%}.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{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-md-offset-10{margin-left:41.6666666667%}.el-col-md-pull-10{position:relative;right:41.6666666667%}.el-col-md-push-10{position:relative;left:41.6666666667%}.el-col-md-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-md-offset-11{margin-left:45.8333333333%}.el-col-md-pull-11{position:relative;right:45.8333333333%}.el-col-md-push-11{position:relative;left:45.8333333333%}.el-col-md-12{display:block;max-width:50%;flex:0 0 50%}.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{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-md-offset-13{margin-left:54.1666666667%}.el-col-md-pull-13{position:relative;right:54.1666666667%}.el-col-md-push-13{position:relative;left:54.1666666667%}.el-col-md-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-md-offset-14{margin-left:58.3333333333%}.el-col-md-pull-14{position:relative;right:58.3333333333%}.el-col-md-push-14{position:relative;left:58.3333333333%}.el-col-md-15{display:block;max-width:62.5%;flex:0 0 62.5%}.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{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-md-offset-16{margin-left:66.6666666667%}.el-col-md-pull-16{position:relative;right:66.6666666667%}.el-col-md-push-16{position:relative;left:66.6666666667%}.el-col-md-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-md-offset-17{margin-left:70.8333333333%}.el-col-md-pull-17{position:relative;right:70.8333333333%}.el-col-md-push-17{position:relative;left:70.8333333333%}.el-col-md-18{display:block;max-width:75%;flex:0 0 75%}.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{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-md-offset-19{margin-left:79.1666666667%}.el-col-md-pull-19{position:relative;right:79.1666666667%}.el-col-md-push-19{position:relative;left:79.1666666667%}.el-col-md-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-md-offset-20{margin-left:83.3333333333%}.el-col-md-pull-20{position:relative;right:83.3333333333%}.el-col-md-push-20{position:relative;left:83.3333333333%}.el-col-md-21{display:block;max-width:87.5%;flex:0 0 87.5%}.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{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-md-offset-22{margin-left:91.6666666667%}.el-col-md-pull-22{position:relative;right:91.6666666667%}.el-col-md-push-22{position:relative;left:91.6666666667%}.el-col-md-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-md-offset-23{margin-left:95.8333333333%}.el-col-md-pull-23{position:relative;right:95.8333333333%}.el-col-md-push-23{position:relative;left:95.8333333333%}.el-col-md-24{display:block;max-width:100%;flex:0 0 100%}.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 (min-width:1200px){.el-col-lg-0{display:none}.el-col-lg-0.is-guttered{display:none}.el-col-lg-0{max-width:0%;flex:0 0 0%}.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{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-lg-offset-1{margin-left:4.1666666667%}.el-col-lg-pull-1{position:relative;right:4.1666666667%}.el-col-lg-push-1{position:relative;left:4.1666666667%}.el-col-lg-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-lg-offset-2{margin-left:8.3333333333%}.el-col-lg-pull-2{position:relative;right:8.3333333333%}.el-col-lg-push-2{position:relative;left:8.3333333333%}.el-col-lg-3{display:block;max-width:12.5%;flex:0 0 12.5%}.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{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-lg-offset-4{margin-left:16.6666666667%}.el-col-lg-pull-4{position:relative;right:16.6666666667%}.el-col-lg-push-4{position:relative;left:16.6666666667%}.el-col-lg-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-lg-offset-5{margin-left:20.8333333333%}.el-col-lg-pull-5{position:relative;right:20.8333333333%}.el-col-lg-push-5{position:relative;left:20.8333333333%}.el-col-lg-6{display:block;max-width:25%;flex:0 0 25%}.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{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-lg-offset-7{margin-left:29.1666666667%}.el-col-lg-pull-7{position:relative;right:29.1666666667%}.el-col-lg-push-7{position:relative;left:29.1666666667%}.el-col-lg-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-lg-offset-8{margin-left:33.3333333333%}.el-col-lg-pull-8{position:relative;right:33.3333333333%}.el-col-lg-push-8{position:relative;left:33.3333333333%}.el-col-lg-9{display:block;max-width:37.5%;flex:0 0 37.5%}.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{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-lg-offset-10{margin-left:41.6666666667%}.el-col-lg-pull-10{position:relative;right:41.6666666667%}.el-col-lg-push-10{position:relative;left:41.6666666667%}.el-col-lg-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-lg-offset-11{margin-left:45.8333333333%}.el-col-lg-pull-11{position:relative;right:45.8333333333%}.el-col-lg-push-11{position:relative;left:45.8333333333%}.el-col-lg-12{display:block;max-width:50%;flex:0 0 50%}.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{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-lg-offset-13{margin-left:54.1666666667%}.el-col-lg-pull-13{position:relative;right:54.1666666667%}.el-col-lg-push-13{position:relative;left:54.1666666667%}.el-col-lg-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-lg-offset-14{margin-left:58.3333333333%}.el-col-lg-pull-14{position:relative;right:58.3333333333%}.el-col-lg-push-14{position:relative;left:58.3333333333%}.el-col-lg-15{display:block;max-width:62.5%;flex:0 0 62.5%}.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{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-lg-offset-16{margin-left:66.6666666667%}.el-col-lg-pull-16{position:relative;right:66.6666666667%}.el-col-lg-push-16{position:relative;left:66.6666666667%}.el-col-lg-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-lg-offset-17{margin-left:70.8333333333%}.el-col-lg-pull-17{position:relative;right:70.8333333333%}.el-col-lg-push-17{position:relative;left:70.8333333333%}.el-col-lg-18{display:block;max-width:75%;flex:0 0 75%}.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{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-lg-offset-19{margin-left:79.1666666667%}.el-col-lg-pull-19{position:relative;right:79.1666666667%}.el-col-lg-push-19{position:relative;left:79.1666666667%}.el-col-lg-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-lg-offset-20{margin-left:83.3333333333%}.el-col-lg-pull-20{position:relative;right:83.3333333333%}.el-col-lg-push-20{position:relative;left:83.3333333333%}.el-col-lg-21{display:block;max-width:87.5%;flex:0 0 87.5%}.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{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-lg-offset-22{margin-left:91.6666666667%}.el-col-lg-pull-22{position:relative;right:91.6666666667%}.el-col-lg-push-22{position:relative;left:91.6666666667%}.el-col-lg-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-lg-offset-23{margin-left:95.8333333333%}.el-col-lg-pull-23{position:relative;right:95.8333333333%}.el-col-lg-push-23{position:relative;left:95.8333333333%}.el-col-lg-24{display:block;max-width:100%;flex:0 0 100%}.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 (min-width:1920px){.el-col-xl-0{display:none}.el-col-xl-0.is-guttered{display:none}.el-col-xl-0{max-width:0%;flex:0 0 0%}.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{display:block;max-width:4.1666666667%;flex:0 0 4.1666666667%}.el-col-xl-offset-1{margin-left:4.1666666667%}.el-col-xl-pull-1{position:relative;right:4.1666666667%}.el-col-xl-push-1{position:relative;left:4.1666666667%}.el-col-xl-2{display:block;max-width:8.3333333333%;flex:0 0 8.3333333333%}.el-col-xl-offset-2{margin-left:8.3333333333%}.el-col-xl-pull-2{position:relative;right:8.3333333333%}.el-col-xl-push-2{position:relative;left:8.3333333333%}.el-col-xl-3{display:block;max-width:12.5%;flex:0 0 12.5%}.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{display:block;max-width:16.6666666667%;flex:0 0 16.6666666667%}.el-col-xl-offset-4{margin-left:16.6666666667%}.el-col-xl-pull-4{position:relative;right:16.6666666667%}.el-col-xl-push-4{position:relative;left:16.6666666667%}.el-col-xl-5{display:block;max-width:20.8333333333%;flex:0 0 20.8333333333%}.el-col-xl-offset-5{margin-left:20.8333333333%}.el-col-xl-pull-5{position:relative;right:20.8333333333%}.el-col-xl-push-5{position:relative;left:20.8333333333%}.el-col-xl-6{display:block;max-width:25%;flex:0 0 25%}.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{display:block;max-width:29.1666666667%;flex:0 0 29.1666666667%}.el-col-xl-offset-7{margin-left:29.1666666667%}.el-col-xl-pull-7{position:relative;right:29.1666666667%}.el-col-xl-push-7{position:relative;left:29.1666666667%}.el-col-xl-8{display:block;max-width:33.3333333333%;flex:0 0 33.3333333333%}.el-col-xl-offset-8{margin-left:33.3333333333%}.el-col-xl-pull-8{position:relative;right:33.3333333333%}.el-col-xl-push-8{position:relative;left:33.3333333333%}.el-col-xl-9{display:block;max-width:37.5%;flex:0 0 37.5%}.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{display:block;max-width:41.6666666667%;flex:0 0 41.6666666667%}.el-col-xl-offset-10{margin-left:41.6666666667%}.el-col-xl-pull-10{position:relative;right:41.6666666667%}.el-col-xl-push-10{position:relative;left:41.6666666667%}.el-col-xl-11{display:block;max-width:45.8333333333%;flex:0 0 45.8333333333%}.el-col-xl-offset-11{margin-left:45.8333333333%}.el-col-xl-pull-11{position:relative;right:45.8333333333%}.el-col-xl-push-11{position:relative;left:45.8333333333%}.el-col-xl-12{display:block;max-width:50%;flex:0 0 50%}.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{display:block;max-width:54.1666666667%;flex:0 0 54.1666666667%}.el-col-xl-offset-13{margin-left:54.1666666667%}.el-col-xl-pull-13{position:relative;right:54.1666666667%}.el-col-xl-push-13{position:relative;left:54.1666666667%}.el-col-xl-14{display:block;max-width:58.3333333333%;flex:0 0 58.3333333333%}.el-col-xl-offset-14{margin-left:58.3333333333%}.el-col-xl-pull-14{position:relative;right:58.3333333333%}.el-col-xl-push-14{position:relative;left:58.3333333333%}.el-col-xl-15{display:block;max-width:62.5%;flex:0 0 62.5%}.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{display:block;max-width:66.6666666667%;flex:0 0 66.6666666667%}.el-col-xl-offset-16{margin-left:66.6666666667%}.el-col-xl-pull-16{position:relative;right:66.6666666667%}.el-col-xl-push-16{position:relative;left:66.6666666667%}.el-col-xl-17{display:block;max-width:70.8333333333%;flex:0 0 70.8333333333%}.el-col-xl-offset-17{margin-left:70.8333333333%}.el-col-xl-pull-17{position:relative;right:70.8333333333%}.el-col-xl-push-17{position:relative;left:70.8333333333%}.el-col-xl-18{display:block;max-width:75%;flex:0 0 75%}.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{display:block;max-width:79.1666666667%;flex:0 0 79.1666666667%}.el-col-xl-offset-19{margin-left:79.1666666667%}.el-col-xl-pull-19{position:relative;right:79.1666666667%}.el-col-xl-push-19{position:relative;left:79.1666666667%}.el-col-xl-20{display:block;max-width:83.3333333333%;flex:0 0 83.3333333333%}.el-col-xl-offset-20{margin-left:83.3333333333%}.el-col-xl-pull-20{position:relative;right:83.3333333333%}.el-col-xl-push-20{position:relative;left:83.3333333333%}.el-col-xl-21{display:block;max-width:87.5%;flex:0 0 87.5%}.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{display:block;max-width:91.6666666667%;flex:0 0 91.6666666667%}.el-col-xl-offset-22{margin-left:91.6666666667%}.el-col-xl-pull-22{position:relative;right:91.6666666667%}.el-col-xl-push-22{position:relative;left:91.6666666667%}.el-col-xl-23{display:block;max-width:95.8333333333%;flex:0 0 95.8333333333%}.el-col-xl-offset-23{margin-left:95.8333333333%}.el-col-xl-pull-23{position:relative;right:95.8333333333%}.el-col-xl-push-23{position:relative;left:95.8333333333%}.el-col-xl-24{display:block;max-width:100%;flex:0 0 100%}.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{--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-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{width:100%;padding:0;border:none;display:flex;align-items:center;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-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);font-weight:500;transition:border-bottom-color var(--el-transition-duration);outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);overflow:hidden;box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-item__content{padding-bottom:25px;font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);line-height:1.7692307692}.el-collapse-item:last-child{margin-bottom:-1px}.el-color-predefine{display:flex;font-size:12px;margin-top:8px;width:280px}.el-color-predefine__colors{display:flex;flex:1;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector>div{display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px;float:right}.el-color-hue-slider__bar{position:relative;background:linear-gradient(to right,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.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(to bottom,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{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:linear-gradient(to right,#fff,rgba(255,255,255,0))}.el-color-svpanel__black{background:linear-gradient(to top,#000,rgba(0,0,0,0))}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;box-sizing:border-box;width:280px;height:12px;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-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-alpha-slider__bar{position:relative;background:linear-gradient(to right,rgba(255,255,255,0) 0,var(--el-bg-color) 100%);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid var(--el-border-color-lighter);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(to bottom,rgba(255,255,255,0) 0,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper::after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:12px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-picker{display:inline-block;position:relative;line-height:normal;outline:0}.el-color-picker:hover:not(.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}.el-color-picker--large{height:40px}.el-color-picker--large .el-color-picker__trigger{height:40px;width:40px}.el-color-picker--large .el-color-picker__mask{height:38px;width:38px}.el-color-picker--small{height:24px}.el-color-picker--small .el-color-picker__trigger{height:24px;width:24px}.el-color-picker--small .el-color-picker__mask{height:22px;width:22px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{transform:scale(.8)}.el-color-picker__mask{height:30px;width:30px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:rgba(255,255,255,.7)}.el-color-picker__trigger{display:inline-flex;justify-content:center;align-items:center;box-sizing:border-box;height:32px;width:32px;padding:4px;border:1px solid var(--el-border-color);border-radius:4px;font-size:0;position:relative;cursor:pointer}.el-color-picker__color{position:relative;display:block;box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);width:100%;height:100%;text-align:center}.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-size:12px 12px;background-position:0 0,6px 0,6px -6px,0 6px}.el-color-picker__color-inner{display:inline-flex;justify-content:center;align-items:center;width:100%;height:100%}.el-color-picker .el-color-picker__empty{font-size:12px;color:var(--el-text-color-secondary)}.el-color-picker .el-color-picker__icon{display:inline-flex;justify-content:center;align-items:center;color:#fff;font-size:12px}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;box-sizing:content-box;background-color:#fff;border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light)}.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:#333333}.el-container{display:flex;flex-direction:row;flex:1;flex-basis:auto;box-sizing:border-box;min-width:0}.el-container.is-vertical{flex-direction:column}.el-date-table{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.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{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.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{width:32px;height:30px;padding:4px 0;box-sizing:border-box;text-align:center;cursor:pointer;position:relative}.el-date-table td .el-date-table-cell{height:30px;padding:3px 0;box-sizing:border-box}.el-date-table td .el-date-table-cell .el-date-table-cell__text{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;transform:translateX(-50%);border-radius: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.end-date .el-date-table-cell__text,.el-date-table td.today.start-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.end-date .el-date-table-cell,.el-date-table td.start-date .el-date-table-cell{color:#fff}.el-date-table td.end-date .el-date-table-cell__text,.el-date-table td.start-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date .el-date-table-cell{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.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{margin-left:5px;margin-right:5px;background-color:var(--el-datepicker-inrange-bg-color);border-radius:15px}.el-date-table td.selected .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.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{font-size:80%;color:var(--el-datepicker-header-text-color)}.el-date-table td:focus{outline:0}.el-date-table th{padding:5px;color:var(--el-datepicker-header-text-color);font-weight:400;border-bottom:solid 1px var(--el-border-color-lighter)}.el-month-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;box-sizing:border-box}.el-month-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range div{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range div:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:0}.el-month-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-year-table{font-size:12px;margin:-1px;border-collapse:collapse}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:var(--el-color-primary);font-weight:700}.el-year-table td.disabled .cell{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .cell:hover{color:var(--el-text-color-placeholder)}.el-year-table td .cell{width:48px;height:36px;display:block;line-height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto}.el-year-table td .cell:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.current:not(.disabled) .cell{color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:0}.el-year-table td:focus-visible .cell{outline:2px solid var(--el-datepicker-active-color)}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:192px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.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{font-size:12px;color:var(--el-text-color-secondary);position:absolute;left:0;width:100%;z-index:var(--el-index-normal);text-align:center;height:30px;line-height:30px;cursor:pointer}.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{padding:0;text-align:center}.el-time-spinner__list{padding:0;margin:0;list-style:none;text-align:center}.el-time-spinner__list::after,.el-time-spinner__list::before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:var(--el-text-color-regular)}.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:transparent;border-left-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.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%;position:relative;text-align:left;vertical-align:middle}.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.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{cursor:pointer}.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-text-color-secondary)}.el-date-editor .el-range__icon{height:inherit;font-size:14px;color:var(--el-text-color-placeholder);float:left}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;display:inline-block;height:30px;line-height:30px;margin:0;padding:0;width:39%;text-align:center;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:transparent}.el-date-editor .el-range-input::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{flex:1;display:inline-flex;justify-content:center;align-items:center;height:100%;padding:0 5px;margin:0;font-size:14px;word-break:keep-all;color:var(--el-text-color-primary)}.el-date-editor .el-range__close-icon{font-size:14px;color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer}.el-date-editor .el-range__close-icon:hover{color:var(--el-text-color-secondary)}.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{display:inline-flex;align-items:center;padding:0 10px}.el-range-editor.is-active{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.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{line-height:40px;font-size:14px}.el-range-editor--large .el-range-input{height:38px;line-height:38px;font-size:14px}.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{line-height:24px;font-size:12px}.el-range-editor--small .el-range-input{height:22px;line-height:22px;font-size:12px}.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:focus,.el-range-editor.is-disabled:hover{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::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled input:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.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-bg-color-overlay);border-radius:var(--el-border-radius-base);line-height:30px}.el-picker-panel .el-time-panel{margin:5px 0;border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-picker-panel__body-wrapper::after,.el-picker-panel__body::after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);padding:4px 12px;text-align:right;background-color:var(--el-bg-color-overlay);position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:var(--el-datepicker-text-color);padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:var(--el-datepicker-active-color)}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:var(--el-datepicker-icon-color);border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.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 .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;padding-top:6px;background-color:var(--el-bg-color-overlay);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-date-picker{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{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:solid 1px var(--el-border-color-lighter)}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:var(--el-text-color-regular)}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{outline:0;color:var(--el-datepicker-hover-text-color)}.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{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.el-date-picker .el-time-panel{position:absolute}.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-date-range-picker{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__header{position:relative;text-align:center;height:28px}.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{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;box-sizing:border-box;margin:0;padding:16px}.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{position:relative;border-bottom:1px solid var(--el-datepicker-inner-border-color);font-size:12px;padding:8px 5px 5px 5px;display:table;width:100%;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:var(--el-datepicker-icon-color)}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px;z-index:1}.el-time-range-picker__cell{box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid var(--el-datepicker-border-color)}.el-time-panel{border-radius:2px;position:relative;width:180px;left:0;z-index:var(--el-index-top);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;box-sizing:content-box}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content::after,.el-time-panel__content::before{content:"";top:50%;position:absolute;margin-top:-16px;height:32px;z-index:-1;left:0;right:0;box-sizing:border-box;padding-top:6px;text-align:left}.el-time-panel__content::after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content::before{padding-left:50%;margin-right:12%;margin-left:12%;border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light)}.el-time-panel__content.has-seconds::after{left:66.6666666667%}.el-time-panel__content.has-seconds::before{padding-left:33.3333333333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));padding:4px;height:36px;line-height:25px;text-align:right;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:var(--el-text-color-primary)}.el-time-panel__btn.confirm{font-weight:800;color:var(--el-timepicker-active-color,var(--el-color-primary))}.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{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.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-weight:400;line-height:23px;font-size:14px}.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{font-weight:700;color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background)}.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:0.5}.v-modal-enter{-webkit-animation:v-modal-in var(--el-transition-duration-fast) ease;animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{-webkit-animation:v-modal-out var(--el-transition-duration-fast) ease forwards;animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@-webkit-keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{100%{opacity:0}}@keyframes v-modal-out{100%{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color)}.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:20px;--el-dialog-border-radius:var(--el-border-radius-small);position:relative;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;width:var(--el-dialog-width,50%)}.el-dialog:focus{outline:0!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-dialog__header{padding:var(--el-dialog-padding-primary);padding-bottom:10px;margin-right:16px}.el-dialog__headerbtn{position:absolute;top:6px;right:0;padding:0;width:54px;height:54px;background:0 0;border:none;outline:0;cursor:pointer;font-size:var(--el-message-close-size,16px)}.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{padding:calc(var(--el-dialog-padding-primary) + 10px) var(--el-dialog-padding-primary);color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{padding:var(--el-dialog-padding-primary);padding-top:10px;text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px calc(var(--el-dialog-padding-primary) + 5px) 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-overlay-dialog{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto}.dialog-fade-enter-active{-webkit-animation:modal-fade-in var(--el-transition-duration);animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{-webkit-animation:dialog-fade-in var(--el-transition-duration);animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{-webkit-animation:modal-fade-out var(--el-transition-duration);animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{-webkit-animation:dialog-fade-out var(--el-transition-duration);animation:dialog-fade-out var(--el-transition-duration)}@-webkit-keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes dialog-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}@-webkit-keyframes modal-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes modal-fade-in{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes modal-fade-out{0%{opacity:1}100%{opacity:0}}@keyframes modal-fade-out{0%{opacity:1}100%{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0;border-top:1px var(--el-border-color) var(--el-border-style)}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative;border-left:1px var(--el-border-color) var(--el-border-style)}.el-divider__text{position:absolute;background-color:var(--el-bg-color);padding:0 20px;font-weight:500;color:var(--el-text-color-primary);font-size:14px}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.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{position:absolute;box-sizing:border-box;background-color:var(--el-drawer-bg-color);display:flex;flex-direction:column;box-shadow:var(--el-box-shadow-dark);overflow:hidden;transition:all var(--el-transition-duration)}.el-drawer .rtl{transform:translate(0,0)}.el-drawer .ltr{transform:translate(0,0)}.el-drawer .ttb{transform:translate(0,0)}.el-drawer .btt{transform:translate(0,0)}.el-drawer__sr-focus:focus{outline:0!important}.el-drawer__header{align-items:center;color:#72767b;display:flex;margin-bottom:32px;padding:var(--el-drawer-padding-primary);padding-bottom:0}.el-drawer__header>:first-child{flex:1}.el-drawer__title{margin:0;flex:1;line-height:inherit;font-size:1rem}.el-drawer__footer{padding:var(--el-drawer-padding-primary);padding-top:10px;text-align:right}.el-drawer__close-btn{display:inline-flex;border:none;cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:transparent;outline:0}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{flex:1;padding:var(--el-drawer-padding-primary);overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.btt,.el-drawer.ttb{width:100%;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.rtl{right:0}.el-drawer.ttb{top:0}.el-drawer.btt{bottom:0}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-active,.el-drawer-fade-enter-from,.el-drawer-fade-enter-to,.el-drawer-fade-leave-active,.el-drawer-fade-leave-from,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{opacity:0}.el-drawer-fade-enter-to,.el-drawer-fade-leave-from{opacity:1}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translateX(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translateX(-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;display:inline-flex;position:relative;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);line-height:1;vertical-align:top}.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:transparent;border-left-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:0}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{list-style:none;padding:0;margin:0;box-sizing:border-box}.el-dropdown .el-dropdown__caret-button{padding-left:0;padding-right:0;display:inline-flex;justify-content:center;align-items:center;width:32px;border-left:none}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button::before{content:"";position:absolute;display:block;width:1px;top:-1px;bottom:-1px;left:0;background:var(--el-overlay-color-lighter)}.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:0}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{position:relative;top:0;left:0;z-index:var(--el-dropdown-menu-index);padding:5px 0;margin:0;background-color:var(--el-bg-color-overlay);border:none;border-radius:var(--el-border-radius-base);box-shadow:none;list-style:none}.el-dropdown-menu__item{display:flex;align-items:center;white-space:nowrap;list-style:none;line-height:22px;padding:5px 16px;margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:0}.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{margin:6px 0;border-top:1px solid var(--el-border-color-lighter)}.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;line-height:22px;font-size:14px}.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;line-height:20px;font-size:12px}.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;display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding)}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;height:100%;vertical-align:top;-o-object-fit:contain;object-fit:contain}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:100%;height:100%;vertical-align:top}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-secondary)}.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;flex-shrink:0;height:var(--el-footer-height)}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--label-left .el-form-item__label{justify-content:flex-start}.el-form--label-top .el-form-item{display:block}.el-form--label-top .el-form-item .el-form-item__label{display:block;height:auto;text-align:left;margin-bottom:8px;line-height:22px}.el-form--inline .el-form-item{display:inline-flex;vertical-align:middle;margin-right:32px}.el-form--inline.el-form--label-top{display:flex;flex-wrap:wrap}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-form--large.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:12px;line-height:22px}.el-form--default.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:8px;line-height:22px}.el-form--small.el-form--label-top .el-form-item .el-form-item__label{margin-bottom:4px;line-height:20px}.el-form-item{display:flex;--font-size:14px;margin-bottom:18px}.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-wrap{display:flex}.el-form-item__label{display:inline-flex;justify-content:flex-end;align-items:flex-start;flex:0 0 auto;font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);height:32px;line-height:32px;padding:0 12px 0 0;box-sizing:border-box}.el-form-item__content{display:flex;flex-wrap:wrap;align-items:center;flex:1;line-height:32px;position:relative;font-size:var(--font-size);min-width:0}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);font-size:12px;line-height:1;padding-top:2px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.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-wrap>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-select-v2__wrapper.is-focused{border-color:transparent}.el-form-item.is-error .el-select-v2__wrapper,.el-form-item.is-error .el-select-v2__wrapper:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-color-danger) inset!important}.el-form-item.is-error .el-select:hover{box-shadow:0 0 0 1px transparent}.el-form-item.is-error .el-select .el-input .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset!important}.el-form-item.is-error .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-input-group__prepend .el-input__wrapper{box-shadow:0 0 0 1px transparent inset}.el-form-item.is-error .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;flex-shrink:0;height:var(--el-header-height)}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__btn .el-icon{font-size:inherit;cursor:pointer}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{position:static;width:100%;height:100%;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-image-viewer__actions{left:50%;bottom:30px;transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:flex;align-items:center;justify-content:space-around}.el-image-viewer__prev{top:50%;transform:translateY(-50%);left:40px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__next{top:50%;transform:translateY(-50%);right:40px;text-indent:2px;width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__close{width:44px;height:44px;font-size:24px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in var(--el-transition-duration);animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out var(--el-transition-duration);animation:viewer-fade-out var(--el-transition-duration)}@-webkit-keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes viewer-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{transform:translate3d(0,0,0);opacity:1}100%{transform:translate3d(0,-20px,0);opacity:0}}.el-image__error,.el-image__inner,.el-image__placeholder,.el-image__wrapper{width:100%;height:100%}.el-image{position:relative;display:inline-block;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{display:flex;justify-content:center;align-items:center;font-size:14px;background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle}.el-image__preview{cursor:pointer}.el-input-number{position:relative;display:inline-flex;width:150px;line-height:30px}.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,.el-input-number .el-input__inner::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.el-input-number__decrease,.el-input-number__increase{display:flex;justify-content:center;align-items:center;height:auto;position:absolute;z-index:1;top:1px;bottom:1px;width:32px;background:var(--el-fill-color-light);color:var(--el-text-color-regular);cursor:pointer;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:var(--el-color-primary)}.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__increase: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__decrease.is-disabled,.el-input-number__increase.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border)}.el-input-number__decrease{left:1px;border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border)}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase: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__decrease,.el-input-number--large .el-input-number__increase{width:40px;font-size:14px}.el-input-number--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__decrease,.el-input-number--small .el-input-number__increase{width:24px;font-size:12px}.el-input-number--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [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__decrease,.el-input-number.is-controls-right .el-input-number__increase{--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__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{bottom:auto;left:auto;border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border)}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;top:auto;left:auto;border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0}.el-input-number.is-controls-right[class*=large] [class*=decrease],.el-input-number.is-controls-right[class*=large] [class*=increase]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{--el-input-number-controls-height:11px}.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%}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:var(--el-font-size-base)}.el-textarea__inner{position:relative;display:block;resize:vertical;padding:5px 11px;line-height:1.5;box-sizing:border-box;width:100%;font-size:inherit;font-family:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;-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);border:none}.el-textarea__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.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{outline:0;box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);position:absolute;font-size:12px;line-height:14px;bottom:5px;right:10px}.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::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.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{--el-input-height:var(--el-component-size);position:relative;font-size:var(--el-font-size-base);display:inline-flex;width:var(--el-input-width);line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:var(--el-text-color-disabled)}.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);font-size:14px;cursor:pointer}.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%;display:inline-flex;align-items:center;color:var(--el-color-info);font-size:12px}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;display:inline-block;padding-left:8px}.el-input__wrapper{display:inline-flex;flex-grow:1;align-items:center;justify-content:center;padding:1px 11px;background-color:var(--el-input-bg-color,var(--el-fill-color-blank));background-image:none;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));cursor:text;transition:var(--el-transition-box-shadow);transform:translate3d(0,0,0);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.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__inner{--el-input-inner-height:calc(var(--el-input-height, 32px) - 2px);width:100%;flex-grow:1;-webkit-appearance:none;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);padding:0;outline:0;border:none;background:0 0;box-sizing:border-box}.el-input__inner:focus{outline:0}.el-input__inner::-moz-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner:-ms-input-placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.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__prefix{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__prefix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.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{display:inline-flex;white-space:nowrap;flex-shrink:0;flex-wrap:nowrap;height:100%;text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none}.el-input__suffix-inner{pointer-events:all;display:inline-flex;align-items:center;justify-content:center}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;display:flex;justify-content:center;align-items:center;transition:all var(--el-transition-duration);margin-left:8px}.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);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::-moz-placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:var(--el-text-color-placeholder)}.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-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{--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{--el-input-inner-height:calc(var(--el-input-height, 24px) - 2px)}.el-input-group{display:inline-flex;width:100%;align-items:stretch}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:100%;border-radius:var(--el-input-border-radius);padding:0 20px;white-space:nowrap}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:0 -20px}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-input__wrapper,.el-input-group__append div.el-select:hover .el-input__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-input__wrapper,.el-input-group__prepend div.el-select:hover .el-input__wrapper{border-color:transparent;background-color:transparent;color:inherit}.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{border-right:0;border-top-right-radius:0;border-bottom-right-radius:0;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}.el-input-group__append{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;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}.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-input .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input .el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0;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}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper{box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important;z-index:2}.el-input-group--prepend .el-input-group__prepend .el-select .el-input.is-focus .el-input__wrapper:focus{outline:0;z-index:2;box-shadow:1px 0 0 0 var(--el-input-focus-border-color) inset,1px 0 0 0 var(--el-input-focus-border-color),0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper{z-index:1;box-shadow:1px 0 0 0 var(--el-input-hover-border-color) inset,1px 0 0 0 var(--el-input-hover-border-color),0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.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-input .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input .el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0;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}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select .el-input.is-focus .el-input__wrapper{z-index:2;box-shadow:-1px 0 0 0 var(--el-input-focus-border-color),-1px 0 0 0 var(--el-input-focus-border-color) inset,0 1px 0 0 var(--el-input-focus-border-color) inset,0 -1px 0 0 var(--el-input-focus-border-color) inset!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__inner{box-shadow:none!important}.el-input-group--append .el-input-group__append .el-select:hover .el-input__wrapper{z-index:1;box-shadow:-1px 0 0 0 var(--el-input-hover-border-color),-1px 0 0 0 var(--el-input-hover-border-color) inset,0 1px 0 0 var(--el-input-hover-border-color) inset,0 -1px 0 0 var(--el-input-hover-border-color) inset!important}.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)}.el-link{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;cursor:pointer;padding:0;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color)}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid var(--el-link-hover-text-color)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default:after{border-color:var(--el-link-hover-text-color)}.el-link__inner{display:inline-flex;justify-content:center;align-items:center}.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--primary:after{border-color:var(--el-link-text-color)}.el-link.el-link--primary.is-underline:hover:after{border-color:var(--el-link-text-color)}.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--success:after{border-color:var(--el-link-text-color)}.el-link.el-link--success.is-underline:hover:after{border-color:var(--el-link-text-color)}.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--warning:after{border-color:var(--el-link-text-color)}.el-link.el-link--warning.is-underline:hover:after{border-color:var(--el-link-text-color)}.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--danger:after{border-color:var(--el-link-text-color)}.el-link.el-link--danger.is-underline:hover:after{border-color:var(--el-link-text-color)}.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--error:after{border-color:var(--el-link-text-color)}.el-link.el-link--error.is-underline:hover:after{border-color:var(--el-link-text-color)}.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.el-link--info:after{border-color:var(--el-link-text-color)}.el-link.el-link--info.is-underline:hover:after{border-color:var(--el-link-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{position:absolute;z-index:2000;background-color:var(--el-mask-color);margin:0;top:0;right:0;bottom:0;left:0;transition:opacity var(--el-transition-duration)}.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{top:50%;margin-top:calc((0px - var(--el-loading-spinner-size))/ 2);width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{display:inline;height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:var(--el-color-primary);stroke-linecap:round}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@-webkit-keyframes loading-rotate{100%{transform:rotate(360deg)}}@keyframes loading-rotate{100%{transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;display:block;flex:1;flex-basis:auto;overflow:auto;box-sizing:border-box;padding:var(--el-main-padding)}: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);list-style:none;position:relative;margin:0;padding-left:0;background-color:var(--el-menu-bg-color);box-sizing:border-box}.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-menu-item-group__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__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{display:flex;flex-wrap:nowrap;border-right:none;height:var(--el-menu-horizontal-height)}.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{display:inline-flex;justify-content:center;align-items:center;height:100%;margin:0;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.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:0}.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%;border-bottom:2px solid transparent;color:var(--el-menu-text-color)}.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);display:flex;align-items:center;height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);padding:0 10px;color:var(--el-menu-text-color)}.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-sub-menu.is-active>.el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:var(--el-menu-hover-text-color);background-color:var(--el-menu-hover-bg-color)}.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-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{margin:0;vertical-align:middle;width:var(--el-menu-icon-width);text-align:center}.el-menu--collapse>.el-menu-item .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,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--popup{z-index:100;min-width:200px;border:none;padding:5px 0;border-radius:var(--el-border-radius-small);box-shadow:var(--el-box-shadow-light)}.el-menu .el-icon{flex-shrink:0}.el-menu-item{display:flex;align-items:center;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);list-style:none;cursor:pointer;position:relative;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}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:focus,.el-menu-item:hover{outline:0}.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]{margin-right:5px;width:var(--el-menu-icon-width);text-align:center;font-size:18px;vertical-align:middle}.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{position:absolute;left:0;top:0;height:100%;width:100%;display:inline-flex;align-items:center;box-sizing:border-box;padding:0 var(--el-menu-base-level-padding)}.el-sub-menu{list-style:none;margin:0;padding-left:0}.el-sub-menu__title{display:flex;align-items:center;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);list-style:none;cursor:pointer;position:relative;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}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:focus,.el-sub-menu__title:hover{outline:0}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.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__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-menu-item,.el-sub-menu.is-disabled .el-sub-menu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;margin-right:5px;width:var(--el-menu-icon-width);text-align:center;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{position:absolute;top:50%;right:var(--el-menu-base-level-padding);margin-top:-6px;transition:transform var(--el-transition-duration);font-size:12px;margin-right:0;width:inherit}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);line-height:normal;font-size:12px;color:var(--el-text-color-secondary)}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--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:15px}.el-message-box{display:inline-block;max-width:var(--el-messagebox-width);width:100%;padding-bottom:10px;vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);border:1px solid var(--el-border-color-lighter);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-box-shadow-light);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box}.el-message-box:focus{outline:0!important}.el-overlay.is-message-box .el-overlay-message-box{text-align:center;position:fixed;top:0;right:0;bottom:0;left:0;padding:16px;overflow:auto}.el-overlay.is-message-box .el-overlay-message-box::after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-message-box__header{position:relative;padding:var(--el-messagebox-padding-primary);padding-bottom:10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:var(--el-messagebox-font-size);line-height:1;color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{position:absolute;top:var(--el-messagebox-padding-primary);right:var(--el-messagebox-padding-primary);padding:0;border:none;outline:0;background:0 0;font-size:var(--el-message-close-size,16px);cursor:pointer}.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{padding:10px var(--el-messagebox-padding-primary);color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__input div.invalid>input{border-color:var(--el-color-error)}.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{position:absolute;top:50%;transform:translateY(-50%);font-size:24px!important}.el-message-box__status::before{padding-left:1px}.el-message-box__status.el-icon{position:absolute}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px;word-break:break-word}.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{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{flex-direction:row-reverse}.el-message-box--center .el-message-box__title{position:relative;display:flex;align-items:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns{justify-content:center}.el-message-box--center .el-message-box__content{padding-left:calc(var(--el-messagebox-padding-primary) + 12px);padding-right:calc(var(--el-messagebox-padding-primary) + 12px);text-align:center}.fade-in-linear-enter-active .el-overlay-message-box{-webkit-animation:msgbox-fade-in var(--el-transition-duration);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}@-webkit-keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}@keyframes msgbox-fade-in{0%{transform:translate3d(0,-20px,0);opacity:0}100%{transform:translate3d(0,0,0);opacity:1}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:15px 19px;--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)}.el-message{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:calc(100% - 32px);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);position:fixed;left:50%;top:20px;transform:translateX(-50%);background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:31px}.el-message p{margin:0}.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:anywhere}.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:anywhere}.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:anywhere}.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:anywhere}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.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{position:absolute;top:50%;right:19px;transform:translateY(-50%);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;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)}.el-notification{display:flex;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);position:fixed;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:anywhere;overflow:hidden;z-index:9999}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right)}.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);line-height:24px;margin:6px 0 0;color:var(--el-notification-content-color);text-align:justify}.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)}.el-notification .el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size)}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-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:translateX(100%)}.el-notification-fade-enter-from.left{left:0;transform:translateX(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;height:100%;background-color:var(--el-overlay-color-lighter);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{display:flex;align-items:center;justify-content:space-between;line-height:24px}.el-page-header__left{display:flex;align-items:center;margin-right:40px;position:relative}.el-page-header__back{display:flex;align-items:center;cursor:pointer}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{font-size:16px;margin-right:10px;display:flex;align-items:center}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:var(--el-text-color-primary)}.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-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);font-weight:400;display:flex;align-items:center}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select .el-input{width:128px}.el-pagination button{display:flex;justify-content:center;align-items:center;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);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pagination button *{pointer-events:none}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:var(--el-pagination-hover-color)}.el-pagination button.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination button.is-active.is-disabled{font-weight:700;color:var(--el-text-color-secondary)}.el-pagination button.is-disabled,.el-pagination button:disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination button:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700;width:inherit}.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{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total{margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{display:flex;align-items:center;margin-left:var(--el-pagination-item-gap);font-weight:400;color:var(--el-text-color-regular)}.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,.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;display:flex;align-items:center;justify-content:flex-end}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 4px;background-color:var(--el-pagination-button-bg-color)}.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .btn-prev.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-next.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.is-disabled,.el-pagination.is-background .el-pager li:disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active,.el-pagination.is-background .el-pager li: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-next,.el-pagination--small .btn-prev,.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 button,.el-pagination--small span:not([class*=suffix]){font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select .el-input{width:100px}.el-pager{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;list-style:none;font-size:0;padding:0;margin:0;display:flex;align-items:center}.el-pager li{display:flex;justify-content:center;align-items:center;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);padding:0 4px;border:none;border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:0}.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{font-weight:700;color:var(--el-text-color-secondary)}.el-pager li.is-disabled,.el-pager li: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__main{display:flex;align-items:center}.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);min-width:150px;border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;text-align:justify;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);word-break:break-all;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);line-height:1;margin-bottom:12px}.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing){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,.el-popover.el-popper:focus:active{outline-width:0}.el-progress{position:relative;line-height:1;display:flex;align-items:center}.el-progress__text{font-size:14px;color:var(--el-text-color-regular);margin-left:5px;min-width:50px;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{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;transform:translate(0,-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{padding-right:0;margin-right:0;display:block}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-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{flex-grow:1;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:var(--el-border-color-lighter);overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:var(--el-color-primary);text-align:right;border-radius:100px;line-height:1;white-space:nowrap;transition:width .6s ease}.el-progress-bar__inner::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-progress-bar__inner--indeterminate{transform:translateZ(0);-webkit-animation:indeterminate 3s infinite;animation:indeterminate 3s infinite}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.1) 50%,rgba(0,0,0,.1) 75%,transparent 75%,transparent);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{-webkit-animation:striped-flow 3s linear infinite;animation:striped-flow 3s linear infinite}.el-progress-bar__innerText{display:inline-block;vertical-align:middle;color:#fff;font-size:12px;margin:0 5px}@-webkit-keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}@keyframes progress{0%{background-position:0 0}100%{background-position:32px 0}}@-webkit-keyframes indeterminate{0%{left:-100%}100%{left:100%}}@keyframes indeterminate{0%{left:-100%}100%{left:100%}}@-webkit-keyframes striped-flow{0%{background-position:-100%}100%{background-position:100%}}@keyframes striped-flow{0%{background-position:-100%}100%{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)}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));border:var(--el-border);font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));border-left:0;color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding:8px 15px;font-size:var(--el-font-size-base);border-radius:0}.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-left:var(--el-border);border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button__original-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__original-radio:checked+.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: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{padding:12px 19px;font-size:var(--el-font-size-base);border-radius:0}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{padding:5px 11px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{display:inline-flex;align-items:center;flex-wrap:wrap;font-size:0}.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)}.el-radio{color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);position:relative;cursor:pointer;display:inline-flex;align-items:center;white-space:nowrap;outline:0;font-size:var(--el-font-size-base);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-right:32px;height:32px}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{padding:0 15px 0 9px;border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box}.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{padding:0 19px 0 11px;border-radius:var(--el-border-radius-base)}.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{height:14px;width:14px}.el-radio.is-bordered.el-radio--small{padding:0 11px 0 7px;border-radius:var(--el-border-radius-base)}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{height:12px;width:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;outline:0;display:inline-flex;position:relative;vertical-align:middle}.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{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);position:relative;cursor:pointer;display:inline-block;box-sizing:border-box}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner::after{width:4px;height:4px;border-radius:var(--el-radio-input-border-radius);background-color:var(--el-color-white);content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin: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{display:inline-flex;align-items:center;height:32px}.el-rate:active,.el-rate:focus{outline:0}.el-rate__item{cursor:pointer;display:inline-block;position:relative;font-size:0;vertical-align:middle;color:var(--el-rate-void-color);line-height:normal}.el-rate .el-rate__icon{position:relative;display:inline-block;font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration)}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;left:0;top:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{position:absolute;top:0;left:0;display:inline-block;overflow:hidden;color:var(--el-rate-fill-color)}.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:auto;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}.el-result{display:flex;justify-content:center;align-items:center;flex-direction:column;text-align:center;box-sizing:border-box;padding:var(--el-result-padding)}.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{margin:0;font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{margin:0;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);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{display:flex;flex-wrap:wrap;position:relative;box-sizing:border-box}.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:0.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:0.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary)}.el-scrollbar{overflow:hidden;position:relative;height:100%}.el-scrollbar__wrap{overflow:auto;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3)}.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{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px}.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 340ms ease-out}.el-scrollbar-fade-leave-active{transition:opacity 120ms 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__option-item.is-selected:not(.is-multiple).is-disabled{color:var(--el-text-color-disabled)}.el-select-dropdown__option-item.is-selected:not(.is-multiple).is-disabled::after{background-color:var(--el-text-color-disabled)}.el-select-dropdown__option-item:hover:not(.hover){background-color:transparent}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-disabled.is-selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;margin:6px 0!important;padding:0!important;box-sizing:border-box}.el-select-dropdown__option-item{font-size:var(--el-select-font-size);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__option-item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__option-item.is-disabled:hover{background-color:var(--el-bg-color)}.el-select-dropdown__option-item.is-selected{background-color:var(--el-fill-color-light);font-weight:700}.el-select-dropdown__option-item.is-selected:not(.is-multiple){color:var(--el-color-primary)}.el-select-dropdown__option-item.hover{background-color:var(--el-fill-color-light)!important}.el-select-dropdown__option-item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon{position:absolute;right:20px;top:0;height:inherit;font-size:12px}.el-select-dropdown.is-multiple .el-select-dropdown__option-item.is-selected .el-icon svg{height:inherit;vertical-align:middle}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type)::after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:var(--el-border-color-light)}.el-select-group__split-dash{position:absolute;left:20px;right:20px;height:1px;background:var(--el-border-color-light)}.el-select-group__title{padding-left:20px;font-size:12px;color:var(--el-color-info);line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select-v2{--el-select-border-color-hover:var(--el-border-color-hover);--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-v2{display:inline-block;position:relative;vertical-align:middle;font-size:14px}.el-select-v2__wrapper{display:flex;align-items:center;flex-wrap:wrap;position:relative;box-sizing:border-box;cursor:pointer;padding:1px 30px 1px 0;border:1px solid var(--el-border-color);border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration)}.el-select-v2__wrapper:hover{border-color:var(--el-text-color-placeholder)}.el-select-v2__wrapper.is-filterable{cursor:text}.el-select-v2__wrapper.is-focused{border-color:var(--el-color-primary)}.el-select-v2__wrapper.is-hovering:not(.is-focused){border-color:var(--el-border-color-hover)}.el-select-v2__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled:hover{border-color:var(--el-select-disabled-border)}.el-select-v2__wrapper.is-disabled.is-focus{border-color:var(--el-input-focus-border-color)}.el-select-v2__wrapper.is-disabled .is-transparent{opacity:1;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-select-v2__wrapper.is-disabled .el-select-v2__caret{cursor:not-allowed}.el-select-v2__wrapper.is-disabled .el-select-v2__combobox-input{cursor:not-allowed}.el-select-v2__wrapper .el-select-v2__input-wrapper{box-sizing:border-box;position:relative;-webkit-margin-start:12px;margin-inline-start:12px;max-width:100%;overflow:hidden}.el-select-v2__wrapper,.el-select-v2__wrapper .el-select-v2__input-wrapper{line-height:32px}.el-select-v2__wrapper .el-select-v2__input-wrapper input{--el-input-inner-height:calc(var(--el-component-size, 32px) - 8px);height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);min-width:4px;width:100%;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:none;margin:2px 0;outline:0;padding:0}.el-select-v2 .el-select-v2__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select-v2__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:14px}.el-select-v2__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-v2__popper.el-popper .el-popper__arrow::before{border:1px solid var(--el-border-color-light)}.el-select-v2__popper.el-popper[data-popper-placement^=top] .el-popper__arrow::before{border-top-color:transparent;border-left-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-select-v2__popper.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-select-v2--large .el-select-v2__wrapper .el-select-v2__combobox-input{height:32px}.el-select-v2--large .el-select-v2__caret{height:40px}.el-select-v2--large .el-select-v2__suffix{height:40px}.el-select-v2--large .el-select-v2__placeholder{font-size:14px;line-height:40px}.el-select-v2--small .el-select-v2__wrapper .el-select-v2__combobox-input{height:16px}.el-select-v2--small .el-select-v2__caret{height:24px}.el-select-v2--small .el-select-v2__suffix{height:24px}.el-select-v2--small .el-select-v2__placeholder{font-size:12px;line-height:24px}.el-select-v2 .el-select-v2__selection>span{display:inline-block}.el-select-v2:hover .el-select-v2__combobox-input{border-color:var(--el-select-border-color-hover)}.el-select-v2 .el-select__selection-text{text-overflow:ellipsis;display:inline-block;overflow-x:hidden;vertical-align:bottom}.el-select-v2 .el-select-v2__combobox-input{padding-right:35px;display:block;color:var(--el-text-color-regular)}.el-select-v2 .el-select-v2__combobox-input:focus{border-color:var(--el-select-input-focus-border-color)}.el-select-v2__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px}.el-select-v2__input.is-small{height:14px}.el-select-v2__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select-v2__close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__suffix{display:inline-flex;position:absolute;right:12px;height:32px;top:50%;transform:translateY(-50%);color:var(--el-input-icon-color,var(--el-text-color-placeholder))}.el-select-v2__suffix .el-input__icon{height:inherit}.el-select-v2__suffix .el-input__icon:not(:first-child){margin-left:8px}.el-select-v2__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);transform:rotateZ(180deg);cursor:pointer}.el-select-v2__caret.is-reverse{transform:rotateZ(0)}.el-select-v2__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotateZ(180deg);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select-v2__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select-v2__caret.el-icon{height:inherit}.el-select-v2__caret.el-icon svg{vertical-align:middle}.el-select-v2__selection{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;width:100%}.el-select-v2__input-calculator{left:0;position:absolute;top:0;visibility:hidden;white-space:pre;z-index:999}.el-select-v2__selected-item{line-height:inherit;height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-wrap:wrap}.el-select-v2__placeholder{position:absolute;top:50%;transform:translateY(-50%);-webkit-margin-start:12px;margin-inline-start:12px;width:calc(100% - 52px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--el-input-text-color,var(--el-text-color-regular))}.el-select-v2__placeholder.is-transparent{color:var(--el-text-color-placeholder)}.el-select-v2 .el-select-v2__selection .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:var(--el-fill-color)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;color:var(--el-color-white)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select-v2 .el-select-v2__selection .el-tag .el-icon-close::before{display:block;transform:translate(0,.5px)}.el-select-v2.el-select-v2--small .el-select-v2__selection .el-tag{margin:1px 0 1px 6px;height:18px}.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.is-multiple .el-select-dropdown__item.selected{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:var(--el-fill-color-light)}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-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") 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") no-repeat;mask-size:100% 100%;-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") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.is-disabled::after{background-color:var(--el-text-color-disabled)}.el-select-dropdown .el-select-dropdown__option-item.is-selected::after{content:"";position:absolute;top:50%;right:20px;border-top:none;border-right:none;background-repeat:no-repeat;background-position:center;background-color:var(--el-color-primary);-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") 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") no-repeat;mask-size:100% 100%;-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") no-repeat;-webkit-mask-size:100% 100%;transform:translateY(-50%);width:12px;height:12px}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown .el-select-dropdown__item.is-disabled:hover{background-color:unset}.el-select-dropdown .el-select-dropdown__item.is-disabled.selected{color:var(--el-text-color-disabled)}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size)}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;box-sizing:border-box}.el-select-dropdown__header{padding:10px;border-bottom:1px solid var(--el-border-color-light)}.el-select-dropdown__footer{padding:10px;border-top:1px solid var(--el-border-color-light)}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--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{display:inline-block;position:relative;vertical-align:middle;line-height:32px}.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:transparent;border-left-color:transparent}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent;border-right-color:transparent}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent;border-bottom-color:transparent}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent;border-top-color:transparent}.el-select .el-select-tags-wrapper.has-prefix{margin-left:6px}.el-select--large{line-height:40px}.el-select--large .el-select-tags-wrapper.has-prefix{margin-left:8px}.el-select--small{line-height:24px}.el-select--small .el-select-tags-wrapper.has-prefix{margin-left:4px}.el-select .el-select__tags>span{display:inline-block}.el-select:hover:not(.el-select--disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-border-color-hover) inset}.el-select .el-select__tags-text{display:inline-block;line-height:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-select .el-input__wrapper{cursor:pointer}.el-select .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select .el-input__inner{cursor:pointer}.el-select .el-input{display:flex}.el-select .el-input .el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:transform var(--el-transition-duration);transform:rotateZ(0);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{transform:rotateZ(-180deg)}.el-select .el-input .el-select__caret.is-show-close{font-size:var(--el-select-font-size);text-align:center;transform:rotateZ(0);border-radius:var(--el-border-radius-circle);color:var(--el-select-input-color);transition:var(--el-transition-color)}.el-select .el-input .el-select__caret.is-show-close:hover{color:var(--el-select-close-hover-color)}.el-select .el-input .el-select__caret.el-icon{position:relative;height:inherit;z-index:2}.el-select .el-input.is-disabled .el-input__wrapper{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-select__caret{cursor:not-allowed}.el-select .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-select-input-focus-border-color) inset!important}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:var(--el-select-multiple-input-color);font-size:var(--el-select-font-size);-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-disabled{cursor:not-allowed}.el-select__input--iOS{position:absolute;left:0;top:0;z-index:6}.el-select__input.is-small{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:var(--el-index-top);right:25px;color:var(--el-select-input-color);line-height:18px;font-size:var(--el-select-input-font-size)}.el-select__close:hover{color:var(--el-select-close-hover-color)}.el-select__tags{position:absolute;line-height:normal;top:50%;transform:translateY(-50%);white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__tags .el-tag:last-child{margin-right:0}.el-select__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__tags .el-tag .el-icon-close::before{display:block;transform:translate(0,.5px)}.el-select__tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__tags.is-disabled{cursor:not-allowed}.el-select__collapse-tags{white-space:normal;z-index:var(--el-index-normal);display:flex;align-items:center;flex-wrap:wrap;cursor:pointer}.el-select__collapse-tags .el-tag{box-sizing:border-box;border-color:transparent;margin:2px 6px 2px 0}.el-select__collapse-tags .el-tag:last-child{margin-right:0}.el-select__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);right:-7px;top:0;color:#fff}.el-select__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-select__collapse-tags .el-tag .el-icon-close::before{display:block;transform:translate(0,.5px)}.el-select__collapse-tags .el-tag--info{background-color:var(--el-fill-color)}.el-select__collapse-tag{line-height:inherit;height:inherit;display:flex}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);display:inline-block;height:16px;border-radius:var(--el-border-radius-base);width:100%}.el-skeleton__circle{border-radius:50%;width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size)}.el-skeleton__button{height:40px;width:64px;border-radius:4px}.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;display:flex;align-items:center;justify-content:center;border-radius:0}.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)}@-webkit-keyframes el-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}@keyframes el-skeleton-loading{0%{background-position:100% 50%}100%{background-position:0 50%}}.el-skeleton{width:100%}.el-skeleton__first-line{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.el-skeleton__paragraph{height:16px;margin-top:16px;background:var(--el-skeleton-color)}.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%;-webkit-animation:el-skeleton-loading 1.4s ease infinite;animation:el-skeleton-loading 1.4s ease infinite}.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}.el-slider{width:100%;height:32px;display:flex;align-items:center}.el-slider__runway{flex:1;height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);position:relative;cursor:pointer}.el-slider__runway.show-input{margin-right:30px;width:auto}.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{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{transform:scale(1)}.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button:hover{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed}.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);position:absolute;z-index:1;top:var(--el-slider-button-wrapper-offset);transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal;outline:0}.el-slider__button-wrapper::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{display:inline-block;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);border-radius:50%;box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{position:absolute;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);transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;transform:translateX(-50%);font-size:14px;color:var(--el-color-info);margin-top:15px;white-space:pre}.el-slider.is-vertical{position:relative;display:inline-flex;width:auto;height:100%;flex:0}.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);height:auto;border-radius:0 0 3px 3px}.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{display:inline-flex;vertical-align:top}.el-space__item{display:flex;flex-wrap:wrap}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{100%{transform:rotate(360deg)}}@keyframes rotate{100%{transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-step{position:relative;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-basis:auto!important;flex-shrink:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.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{position:relative;z-index:1;display:inline-flex;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;box-sizing:border-box;background:var(--el-bg-color);transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.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{position:absolute;border-color:inherit;background-color:var(--el-text-color-placeholder)}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;transition:.15s ease-out;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:var(--el-text-color-primary)}.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{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.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{padding-left:10px;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.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-center .el-step__head{text-align:center}.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{display:flex;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.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{position:relative;display:flex;align-items:stretch;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{flex-grow:1;display:flex;align-items:center;justify-content:center}.el-step.is-simple .el-step__arrow::after,.el-step.is-simple .el-step__arrow::before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:var(--el-text-color-placeholder)}.el-step.is-simple .el-step__arrow::before{transform:rotate(-45deg) translateY(-4px);transform-origin:0 0}.el-step.is-simple .el-step__arrow::after{transform:rotate(45deg) translateY(4px);transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:var(--el-fill-color-light)}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;flex-flow:column}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color)}.el-switch{display:inline-flex;align-items:center;position:relative;font-size:14px;line-height:20px;height:32px;vertical-align:middle}.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);height:20px;display:inline-block;font-size:14px;font-weight:500;cursor:pointer;vertical-align:middle;color:var(--el-text-color-primary)}.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 *{line-height:1;font-size:14px;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{display:inline-flex;position:relative;align-items:center;min-width:40px;height:20px;border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));outline:0;border-radius:10px;box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration)}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);height:16px;display:flex;justify-content:center;align-items:center;overflow:hidden;padding:0 4px 0 calc(16px + 2px)}.el-switch__core .el-switch__inner .is-icon,.el-switch__core .el-switch__inner .is-text{font-size:12px;color:var(--el-color-white);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-switch__core .el-switch__action{position:absolute;left:1px;border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);width:16px;height:16px;background-color:var(--el-color-white);display:flex;justify-content:center;align-items:center;color:var(--el-switch-off-color)}.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{left:calc(100% - 17px);color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 calc(16px + 2px) 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{font-size:14px;line-height:24px;height:40px}.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{min-width:50px;height:24px;border-radius:12px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 calc(20px + 2px)}.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 calc(20px + 2px) 0 6px}.el-switch--small{font-size:12px;line-height:16px;height:24px}.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{min-width:30px;height:16px;border-radius:8px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 calc(12px + 2px)}.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 calc(12px + 2px) 0 2px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);border-radius:2px;background-color:#fff;box-shadow:var(--el-box-shadow-light);box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:var(--el-font-size-base)}.el-table-filter__list-item:hover{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__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:var(--el-text-color-regular);cursor:pointer;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:focus{outline:0}.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{display:flex;align-items:center;margin-right:5px;margin-bottom:12px;margin-left:5px;height:unset}.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-bg-color);--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-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, 0.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, 0.15);--el-table-index:var(--el-index-normal)}.el-table{position:relative;overflow:hidden;box-sizing:border-box;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;width:100%;max-width:100%;background-color:var(--el-table-bg-color);font-size:14px;color:var(--el-table-text-color)}.el-table__inner-wrapper{position:relative;display:flex;flex-direction:column;height:100%}.el-table__inner-wrapper::before{left:0;bottom:0;width:100%;height:1px}.el-table tbody:focus-visible{outline:0}.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell,.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell{border-bottom-color:transparent}.el-table__empty-block{position:-webkit-sticky;position:sticky;left:0;min-height:60px;text-align:center;width:100%;display:flex;justify-content:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:var(--el-text-color-secondary)}.el-table__expand-column .cell{padding:0;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.el-table__expand-icon{position:relative;cursor:pointer;color:var(--el-text-color-regular);font-size:12px;transition:transform var(--el-transition-duration-fast) ease-in-out;height:20px}.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:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.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 tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table .el-table__cell{padding:8px 0;min-width:0;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left;z-index:var(--el-table-index)}.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{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding:0 12px}.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:14px}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:12px}.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 td.el-table__cell,.el-table th.el-table__cell.is-leaf{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;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{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border .el-table__inner-wrapper::after,.el-table--border::after,.el-table--border::before,.el-table__inner-wrapper::before{content:"";position:absolute;background-color:var(--el-table-border-color);z-index:calc(var(--el-table-index) + 2)}.el-table--border .el-table__inner-wrapper::after{left:0;top:0;width:100%;height:1px;z-index:calc(var(--el-table-index) + 2)}.el-table--border::before{top:-1px;left:0;width:1px;height:100%}.el-table--border::after{top:-1px;right:0;width:1px;height:100%}.el-table--border .el-table__inner-wrapper{border-right:none;border-bottom:none}.el-table--border .el-table__footer-wrapper{position:relative;flex-shrink:0}.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__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.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,.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{position:-webkit-sticky!important;position:sticky!important;background:inherit;z-index:calc(var(--el-table-index) + 1)}.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--left.is-last-column::before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-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-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--right.is-first-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-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--right.is-first-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-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--right.is-first-column::before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.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--left.is-last-column::before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-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-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--right.is-first-column::before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column::before{content:"";position:absolute;top:0;width:10px;bottom:-1px;overflow-x:hidden;overflow-y:hidden;box-shadow:none;touch-action:none;pointer-events:none}.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,.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{left:-10px}.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,.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{right:-10px;box-shadow:none}.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,.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch{position:-webkit-sticky!important;position:sticky!important;z-index:calc(var(--el-table-index) + 1);background:#fff;right:0}.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__body,.el-table__footer,.el-table__header{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{overflow:hidden;flex-shrink:0}.el-table__body-wrapper .el-table-column--selection>.cell,.el-table__header-wrapper .el-table-column--selection>.cell{display:inline-flex;align-items:center;height:23px}.el-table__body-wrapper .el-table-column--selection .el-checkbox,.el-table__header-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{overflow:hidden;position:relative;flex:1}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:14px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:solid 5px transparent;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;position:absolute;z-index:-1}.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.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.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>td.el-table__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{position:-webkit-sticky;position:sticky;top:0;z-index:calc(var(--el-table-index) + 2)}.el-table.el-table--scrollable-y .el-table__body-footer{position:-webkit-sticky;position:sticky;bottom:0;z-index:calc(var(--el-table-index) + 2)}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:var(--el-table-border);z-index:calc(var(--el-table-index) + 9)}.el-table__column-filter-trigger{display:inline-block;cursor:pointer}.el-table__column-filter-trigger i{color:var(--el-color-info);font-size:14px;vertical-align:middle}.el-table__border-left-patch{top:0;left:0;width:1px;height:100%;z-index:calc(var(--el-table-index) + 2);position:absolute;background-color:var(--el-table-border-color)}.el-table__border-bottom-patch{left:0;height:1px;z-index:calc(var(--el-table-index) + 2);position:absolute;background-color:var(--el-table-border-color)}.el-table__border-right-patch{top:0;height:100%;width:1px;z-index:calc(var(--el-table-index) + 2);position:absolute;background-color:var(--el-table-border-color)}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s ease}.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{display:inline-block;width:12px;line-height:12px;height:12px;text-align:center;margin-right:8px}.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-bg-color);--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-bg-color);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px rgba(0, 0, 0, 0.15);--el-table-fixed-right-column:inset -10px 0 10px -10px rgba(0, 0, 0, 0.15);--el-table-index:var(--el-index-normal)}.el-table-v2{font-size:14px}.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{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);left:0;box-shadow:2px 0 4px 0 rgba(0,0,0,.06)}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__horizontal,.el-table-v2__left .el-vl__vertical{z-index:-1}.el-table-v2__right{display:flex;flex-direction:column-reverse;position:absolute;overflow:hidden;top:0;background-color:var(--el-bg-color);right:0;box-shadow:-2px 0 4px 0 rgba(0,0,0,.06)}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__horizontal,.el-table-v2__right .el-vl__vertical{z-index:-1}.el-table-v2__header-row{-webkit-padding-end:var(--el-table-scrollbar-size);padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__row{-webkit-padding-end:var(--el-table-scrollbar-size);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__footer{position:absolute;left:0;right:0;bottom:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{position:absolute;left:0;right:0;top:0;bottom:0;z-index:9999}.el-table-v2__header-row{display:flex;border-bottom:var(--el-table-border)}.el-table-v2__header-cell{display:flex;align-items:center;padding:0 8px;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;background-color:var(--el-table-header-bg-color);color:var(--el-table-header-text-color);font-weight:700}.el-table-v2__header-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__header-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{transition:opacity,display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{display:block;opacity:1}.el-table-v2__row{border-bottom:var(--el-table-border);display:flex;align-items:center;transition:background-color var(--el-transition-duration)}.el-table-v2__row.is-hovered{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{height:100%;overflow:hidden;display:flex;align-items:center;padding:0 8px}.el-table-v2__row-cell.is-align-center{justify-content:center;text-align:center}.el-table-v2__row-cell.is-align-right{justify-content:flex-end;text-align:right}.el-table-v2__expand-icon{margin:0 4px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.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{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-table-v2.is-dynamic .el-table-v2__row{overflow:hidden;align-items:stretch}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{word-break:break-all}.el-tabs{--el-tabs-header-height:40px}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:var(--el-color-primary);z-index:1;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}.el-tabs__new-tab{display:flex;align-items:center;justify-content:center;float:right;border:1px solid var(--el-border-color);height:20px;width:20px;line-height:20px;margin:10px 0 10px 10px;border-radius:3px;text-align:center;font-size:12px;color:var(--el-text-color-primary);cursor:pointer;transition:all .15s}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8,.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:var(--el-border-color-light);z-index:var(--el-index-normal)}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:var(--el-text-color-secondary);width:20px;text-align:center}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{display:flex;white-space:nowrap;position:relative;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1)}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:var(--el-tabs-header-height);box-sizing:border-box;display:flex;align-items:center;justify-content:center;list-style:none;font-size:var(--el-font-size-base);font-weight:500;color:var(--el-text-color-primary);position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.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{border-radius:50%;text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-left:5px}.el-tabs__item .is-icon-close:before{transform:scale(.9);display:inline-block}.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{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height)}.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);border-bottom:none;border-radius:4px 4px 0 0;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{position:relative;font-size:12px;width:0;height:14px;overflow:hidden;right:-2px;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;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)}.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);border:1px solid transparent;margin-top:-1px;color:var(--el-text-color-secondary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.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 .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.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),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.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){padding-left:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2):not(.is-active).is-closable:hover{padding-left:13px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.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,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.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{padding-right:20px}.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child:not(.is-active).is-closable:hover{padding-right:13px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.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 transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.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-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{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{top:0;bottom:auto;width:2px;height: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-next,.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-next,.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-next,.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-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.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-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{transform:rotateZ(90deg)}.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{left:auto;top:0}.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{right:auto;bottom:0}.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{height:100%;width:2px;bottom:auto;top:0}.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 .el-tabs__header.is-left{float: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{left:auto;right:0}.el-tabs--left .el-tabs__active-bar.is-left{right:0;left:auto}.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-right-color:#fff;border-left:none;border-bottom:none}.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-radius:4px 0 0 4px;border-bottom:1px solid var(--el-border-color-light);border-right:none}.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 transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.el-tabs--right .el-tabs__header.is-right{float: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-left-color:#fff;border-right:none;border-bottom: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-radius:0 4px 4px 0;border-bottom:1px solid var(--el-border-color-light);border-left:none}.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 transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:transparent;border-top-color:#d1dbe5;border-bottom-color:#d1dbe5}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter var(--el-transition-duration);animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave var(--el-transition-duration);animation:slideInRight-leave var(--el-transition-duration)}.slideInLeft-enter{-webkit-animation:slideInLeft-enter var(--el-transition-duration);animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave var(--el-transition-duration);animation:slideInLeft-leave var(--el-transition-duration)}@-webkit-keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translateX(-100%)}to{opacity:1;transform-origin:0 0;transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;transform:translateX(0);opacity:1}100%{transform-origin:0 0;transform:translateX(-100%);opacity:0}}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px}.el-tag{--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-text-color:var(--el-color-primary);background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);display:inline-flex;justify-content:center;align-items:center;vertical-align:middle;height:24px;padding:0 9px;font-size:var(--el-tag-font-size);line-height:1;border-width:1px;border-style:solid;border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px}.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.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.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)}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag .el-icon{border-radius:50%;cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size)}.el-tag .el-tag__close{margin-left:6px}.el-tag--dark{--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-text-color:var(--el-color-white);--el-tag-text-color:var(--el-color-white)}.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-text-color:var(--el-color-white)}.el-tag--dark.el-tag--success{--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--warning{--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--danger{--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--error{--el-tag-text-color:var(--el-color-white)}.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain{--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-bg-color:var(--el-fill-color-blank)}.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{padding:0 11px;height:32px;--el-icon-size:16px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{padding:0 7px;height:20px;--el-icon-size:12px}.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)}.el-text{align-self:center;margin:0;padding:0;font-size:var(--el-text-font-size);color:var(--el-text-color);word-break:break-all}.el-text.is-truncated{display:inline-block;max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.el-text.is-line-clamp{display:-webkit-inline-box;-webkit-box-orient:vertical;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{margin:5px 0;min-width: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);font-weight:700;cursor:pointer}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid var(--el-timeline-node-color)}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{position:absolute;background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}.el-timeline-item__node--normal{left:-1px;width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{left:-2px;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{position:absolute;display:flex;justify-content:center;align-items:center}.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{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light)}.el-timeline{margin:0;font-size:var(--el-font-size-base);list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{display:flex;align-items:center}.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{display:block;height:calc(50% - 10px)}.el-tooltip-v2__content{--el-tooltip-v2-padding:5px 10px;--el-tooltip-v2-border-radius:4px;--el-tooltip-v2-border-color:var(--el-border-color);border-radius:var(--el-tooltip-v2-border-radius);color:var(--el-color-black);background-color:var(--el-color-white);padding:var(--el-tooltip-v2-padding);border:1px solid var(--el-border-color)}.el-tooltip-v2__arrow{position:absolute;color:var(--el-color-white);width:var(--el-tooltip-v2-arrow-width);height:var(--el-tooltip-v2-arrow-height);pointer-events:none;left:var(--el-tooltip-v2-arrow-x);top:var(--el-tooltip-v2-arrow-y)}.el-tooltip-v2__arrow::before{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__arrow::after{content:"";width:0;height:0;border:var(--el-tooltip-v2-arrow-border-width) solid transparent;position:absolute}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow{bottom:0}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow::before{border-top-color:var(--el-color-white);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=top] .el-tooltip-v2__arrow::after{border-top-color:var(--el-border-color);border-top-width:var(--el-tooltip-v2-arrow-border-width);border-bottom:0;top:100%;z-index:-1}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow{top:0}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow::before{border-bottom-color:var(--el-color-white);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=bottom] .el-tooltip-v2__arrow::after{border-bottom-color:var(--el-border-color);border-bottom-width:var(--el-tooltip-v2-arrow-border-width);border-top:0;bottom:100%;z-index:-1}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow{right:0}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow::before{border-left-color:var(--el-color-white);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=left] .el-tooltip-v2__arrow::after{border-left-color:var(--el-border-color);border-left-width:var(--el-tooltip-v2-arrow-border-width);border-right:0;left:100%;z-index:-1}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow{left:0}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow::before{border-right-color:var(--el-color-white);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:calc(100% - 1px)}.el-tooltip-v2__content[data-side^=right] .el-tooltip-v2__arrow::after{border-right-color:var(--el-border-color);border-right-width:var(--el-tooltip-v2-arrow-border-width);border-left:0;right:100%;z-index:-1}.el-tooltip-v2__content.is-dark{--el-tooltip-v2-border-color:transparent;background-color:var(--el-color-black);color:var(--el-color-white);border-color:transparent}.el-tooltip-v2__content.is-dark .el-tooltip-v2__arrow{background-color:var(--el-color-black);border-color:transparent}.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}.el-transfer{font-size:var(--el-font-size-base)}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.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{overflow:hidden;background:var(--el-bg-color-overlay);display:inline-block;text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);max-height:100%;box-sizing:border-box;position:relative}.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-left-radius:0;border-bottom-right-radius:0}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:var(--el-transfer-panel-body-height);overflow:auto;box-sizing:border-box}.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)}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;box-sizing:border-box;padding-left:22px;line-height:var(--el-transfer-item-height)}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;padding:15px;box-sizing:border-box}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);width:100%;font-size:12px;display:inline-block;box-sizing:border-box;border-radius:calc(var(--el-transfer-filter-height)/ 2)}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{display:flex;align-items:center;height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);margin:0;padding-left:15px;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)}.el-transfer-panel .el-transfer-panel__header .el-checkbox{position:relative;display:flex;width:100%;align-items:center}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:var(--el-text-color-primary);font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;top:50%;transform:translate3d(0,-50%,0);color:var(--el-text-color-secondary);font-size:12px;font-weight:400}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);margin:0;padding:0;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)}.el-transfer-panel .el-transfer-panel__footer::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:var(--el-text-color-regular)}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding:6px 15px 0;color:var(--el-text-color-secondary);text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner::after{height:6px;width:3px;left:4px}.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)}.el-tree{position:relative;cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base)}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--el-text-color-secondary);font-size:var(--el-font-size-base)}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:var(--el-color-primary)}.el-tree-node{white-space:nowrap;outline:0}.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);display:flex;align-items:center;height:var(--el-tree-node-content-height);cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px;box-sizing:content-box}.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);font-size:12px;transform:rotate(0);transition:transform var(--el-transition-duration) ease-in-out}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default;visibility:hidden}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{margin-right:8px;font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color)}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.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__item{flex:1;background:0 0!important;padding-left:0;height:20px;line-height:20px}.el-upload{--el-upload-dragger-padding-horizontal:40px;--el-upload-dragger-padding-vertical:10px}.el-upload{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:var(--el-text-color-regular);margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0}.el-upload--picture-card{--el-upload-picture-card-size:148px;background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);border-radius:6px;box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;display:inline-flex;justify-content:center;align-items:center}.el-upload--picture-card>i{font-size:28px;color:var(--el-text-color-secondary)}.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-horizontal) var(--el-upload-dragger-padding-vertical);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);border-radius:6px;box-sizing:border-box;text-align:center;cursor:pointer;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{font-size:67px;color:var(--el-text-color-placeholder);margin-bottom:16px;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);font-size:14px;text-align:center}.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-horizontal) - 1px) calc(var(--el-upload-dragger-padding-vertical) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:var(--el-text-color-regular);margin-bottom:5px;position:relative;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.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{display:none;position:absolute;right:5px;top:50%;cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);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{display:none;position:absolute;top:1px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:var(--el-color-primary);font-style:normal}.el-upload-list__item:hover{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{display:inline-flex;justify-content:center;flex-direction:column;width:calc(100% - 30px);margin-left:4px}.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:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{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:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}.el-upload-list__item.is-success:active .el-icon--close-tip,.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip{display:none}.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label{display:none;opacity:0}.el-upload-list__item-name{color:var(--el-text-color-regular);display:inline-flex;text-align:center;align-items:center;padding:0 4px;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base)}.el-upload-list__item-name .el-icon{margin-right:6px;color:var(--el-text-color-secondary)}.el-upload-list__item-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none;height:100%;justify-content:center;align-items:center;transition:opacity var(--el-transition-duration)}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:var(--el-text-color-regular);display:none}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{--el-upload-list-picture-card-size:148px;display:inline-flex;flex-wrap:wrap;margin:0}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);margin:0 8px 8px 0;padding:0;display:inline-flex}.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{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.el-upload-list--picture-card .el-upload-list__item-status-label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;display:inline-flex;justify-content:center;align-items:center;color:#fff;opacity:0;font-size:20px;background-color:var(--el-overlay-color-lighter);transition:opacity var(--el-transition-duration)}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:1rem}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.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{top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);border-radius:6px;box-sizing:border-box;margin-top:10px;padding:10px;display:flex;align-items:center}.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{display:inline-flex;justify-content:center;align-items:center;width:70px;height:70px;-o-object-fit:contain;object-fit:contain;position:relative;z-index:1;background-color:var(--el-color-white)}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover::after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{right:-15px;top:-6px;width:40px;height:24px;background:var(--el-color-success);text-align:center;transform:rotate(45deg)}.el-upload-cover__label i{font-size:12px;margin-top:11px;transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:var(--el-overlay-color-light);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px}.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;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:var(--el-text-color-primary)}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar{opacity:1}.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 340ms 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{position:absolute;border-radius:var(--el-popper-border-radius);padding:5px 11px;z-index:2000;font-size:12px;line-height:20px;min-width:10px;word-wrap:break-word;visibility:visible}.el-popper.is-dark{color:var(--el-bg-color);background:var(--el-text-color-primary);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-text-color-primary);right:0}.el-popper.is-light{background:var(--el-bg-color-overlay);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-bg-color-overlay);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{position:absolute;width:10px;height:10px;z-index:-1}.el-popper__arrow::before{position:absolute;width:10px;height:10px;z-index:-1;content:" ";transform:rotate(45deg);background:var(--el-text-color-primary);box-sizing:border-box}.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:transparent!important;border-left-color:transparent!important}.el-popper[data-popper-placement^=bottom] .el-popper__arrow::before{border-bottom-color:transparent!important;border-right-color:transparent!important}.el-popper[data-popper-placement^=left] .el-popper__arrow::before{border-left-color:transparent!important;border-bottom-color:transparent!important}.el-popper[data-popper-placement^=right] .el-popper__arrow::before{border-right-color:transparent!important;border-top-color:transparent!important}.el-select-dropdown__item{font-size:var(--el-font-size-base);padding:0 32px 0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--el-text-color-regular);height:34px;line-height:34px;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.selected{color:var(--el-color-primary);font-weight:700}.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);line-height:20px;margin-bottom:4px}.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} \ No newline at end of file diff --git a/platform/backend/static/static/element-plus/index.full.min.js b/platform/backend/static/static/element-plus/index.full.min.js new file mode 100644 index 0000000..bfe9d16 --- /dev/null +++ b/platform/backend/static/static/element-plus/index.full.min.js @@ -0,0 +1,78 @@ +/*! Element Plus v2.4.3 */(function(V,e){typeof exports=="object"&&typeof module!="undefined"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(V=typeof globalThis!="undefined"?globalThis:V||self,e(V.ElementPlus={},V.Vue))})(this,function(V,e){"use strict";const xN='a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])',FN=t=>getComputedStyle(t).position==="fixed"?!1:t.offsetParent!==null,Sm=t=>Array.from(t.querySelectorAll(xN)).filter(n=>HN(n)&&FN(n)),HN=t=>{if(t.tabIndex>0||t.tabIndex===0&&t.getAttribute("tabIndex")!==null)return!0;if(t.disabled)return!1;switch(t.nodeName){case"A":return!!t.href&&t.rel!=="ignore";case"INPUT":return!(t.type==="hidden"||t.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},ja=function(t,n,...o){let r;n.includes("mouse")||n.includes("click")?r="MouseEvents":n.includes("key")?r="KeyboardEvent":r="HTMLEvents";const l=document.createEvent(r);return l.initEvent(n,...o),t.dispatchEvent(l),t},Em=t=>!t.getAttribute("aria-owns"),Nm=(t,n,o)=>{const{parentNode:r}=t;if(!r)return null;const l=r.querySelectorAll(o),a=Array.prototype.indexOf.call(l,t);return l[a+n]||null},Ua=t=>{!t||(t.focus(),!Em(t)&&t.click())},pt=(t,n,{checkForDefaultPrevented:o=!0}={})=>l=>{const a=t==null?void 0:t(l);if(o===!1||!a)return n==null?void 0:n(l)},_m=t=>n=>n.pointerType==="mouse"?t(n):void 0;var KN=Object.defineProperty,WN=Object.defineProperties,jN=Object.getOwnPropertyDescriptors,Bm=Object.getOwnPropertySymbols,UN=Object.prototype.hasOwnProperty,GN=Object.prototype.propertyIsEnumerable,$m=(t,n,o)=>n in t?KN(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,qN=(t,n)=>{for(var o in n||(n={}))UN.call(n,o)&&$m(t,o,n[o]);if(Bm)for(var o of Bm(n))GN.call(n,o)&&$m(t,o,n[o]);return t},YN=(t,n)=>WN(t,jN(n));function Tm(t,n){var o;const r=e.shallowRef();return e.watchEffect(()=>{r.value=t()},YN(qN({},n),{flush:(o=n==null?void 0:n.flush)!=null?o:"sync"})),e.readonly(r)}var vm;const He=typeof window!="undefined",XN=t=>typeof t!="undefined",ZN=t=>typeof t=="string",uc=()=>{},JN=He&&((vm=window==null?void 0:window.navigator)==null?void 0:vm.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function ur(t){return typeof t=="function"?t():e.unref(t)}function Vm(t,n){function o(...r){t(()=>n.apply(this,r),{fn:n,thisArg:this,args:r})}return o}function QN(t,n={}){let o,r;return a=>{const s=ur(t),i=ur(n.maxWait);if(o&&clearTimeout(o),s<=0||i!==void 0&&i<=0)return r&&(clearTimeout(r),r=null),a();i&&!r&&(r=setTimeout(()=>{o&&clearTimeout(o),r=null,a()},i)),o=setTimeout(()=>{r&&clearTimeout(r),r=null,a()},s)}}function e_(t,n=!0,o=!0){let r=0,l,a=!0;const s=()=>{l&&(clearTimeout(l),l=void 0)};return c=>{const f=ur(t),u=Date.now()-r;if(s(),f<=0)return r=Date.now(),c();u>f&&(o||!a)?(r=Date.now(),c()):n&&(l=setTimeout(()=>{r=Date.now(),a=!0,s(),c()},f)),!o&&!l&&(l=setTimeout(()=>a=!0,f)),a=!1}}function t_(t){return t}function Al(t){return e.getCurrentScope()?(e.onScopeDispose(t),!0):!1}function n_(t,n=200,o={}){return Vm(QN(n,o),t)}function o_(t,n=200,o={}){if(n<=0)return t;const r=e.ref(t.value),l=n_(()=>{r.value=t.value},n,o);return e.watch(t,()=>l()),r}function Mm(t,n=200,o=!1,r=!0){return Vm(e_(n,o,r),t)}function pc(t,n=!0){e.getCurrentInstance()?e.onMounted(t):n?t():e.nextTick(t)}function pr(t,n,o={}){const{immediate:r=!0}=o,l=e.ref(!1);let a=null;function s(){a&&(clearTimeout(a),a=null)}function i(){l.value=!1,s()}function c(...f){s(),l.value=!0,a=setTimeout(()=>{l.value=!1,a=null,t(...f)},ur(n))}return r&&(l.value=!0,He&&c()),Al(i),{isPending:l,start:c,stop:i}}function sn(t){var n;const o=ur(t);return(n=o==null?void 0:o.$el)!=null?n:o}const mr=He?window:void 0,r_=He?window.document:void 0;function rt(...t){let n,o,r,l;if(ZN(t[0])?([o,r,l]=t,n=mr):[n,o,r,l]=t,!n)return uc;let a=uc;const s=e.watch(()=>sn(n),c=>{a(),c&&(c.addEventListener(o,r,l),a=()=>{c.removeEventListener(o,r,l),a=uc})},{immediate:!0,flush:"post"}),i=()=>{s(),a()};return Al(i),i}function mc(t,n,o={}){const{window:r=mr,ignore:l,capture:a=!0,detectIframe:s=!1}=o;if(!r)return;const i=e.ref(!0);let c;const f=p=>{r.clearTimeout(c);const h=sn(t),g=p.composedPath();!h||h===p.target||g.includes(h)||!i.value||l&&l.length>0&&l.some(m=>{const b=sn(m);return b&&(p.target===b||g.includes(b))})||n(p)},u=[rt(r,"click",f,{passive:!0,capture:a}),rt(r,"pointerdown",p=>{const h=sn(t);i.value=!!h&&!p.composedPath().includes(h)},{passive:!0}),rt(r,"pointerup",p=>{if(p.button===0){const h=p.composedPath();p.composedPath=()=>h,c=r.setTimeout(()=>f(p),50)}},{passive:!0}),s&&rt(r,"blur",p=>{var h;const g=sn(t);((h=document.activeElement)==null?void 0:h.tagName)==="IFRAME"&&!(g!=null&&g.contains(document.activeElement))&&n(p)})].filter(Boolean);return()=>u.forEach(p=>p())}function Im(t,n=!1){const o=e.ref(),r=()=>o.value=Boolean(t());return r(),pc(r,n),o}const hc=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},gc="__vueuse_ssr_handlers__";hc[gc]=hc[gc]||{},hc[gc];function l_(t,n,{window:o=mr,initialValue:r=""}={}){const l=e.ref(r),a=e.computed(()=>{var s;return sn(n)||((s=o==null?void 0:o.document)==null?void 0:s.documentElement)});return e.watch([a,()=>ur(t)],([s,i])=>{var c;if(s&&o){const f=(c=o.getComputedStyle(s).getPropertyValue(i))==null?void 0:c.trim();l.value=f||r}},{immediate:!0}),e.watch(l,s=>{var i;(i=a.value)!=null&&i.style&&a.value.style.setProperty(ur(t),s)}),l}function a_({document:t=r_}={}){if(!t)return e.ref("visible");const n=e.ref(t.visibilityState);return rt(t,"visibilitychange",()=>{n.value=t.visibilityState}),n}var Pm=Object.getOwnPropertySymbols,s_=Object.prototype.hasOwnProperty,i_=Object.prototype.propertyIsEnumerable,c_=(t,n)=>{var o={};for(var r in t)s_.call(t,r)&&n.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&Pm)for(var r of Pm(t))n.indexOf(r)<0&&i_.call(t,r)&&(o[r]=t[r]);return o};function jt(t,n,o={}){const r=o,{window:l=mr}=r,a=c_(r,["window"]);let s;const i=Im(()=>l&&"ResizeObserver"in l),c=()=>{s&&(s.disconnect(),s=void 0)},f=e.watch(()=>sn(t),d=>{c(),i.value&&l&&d&&(s=new ResizeObserver(n),s.observe(d,a))},{immediate:!0,flush:"post"}),u=()=>{c(),f()};return Al(u),{isSupported:i,stop:u}}function Rm(t,n={}){const{reset:o=!0,windowResize:r=!0,windowScroll:l=!0,immediate:a=!0}=n,s=e.ref(0),i=e.ref(0),c=e.ref(0),f=e.ref(0),u=e.ref(0),d=e.ref(0),p=e.ref(0),h=e.ref(0);function g(){const m=sn(t);if(!m){o&&(s.value=0,i.value=0,c.value=0,f.value=0,u.value=0,d.value=0,p.value=0,h.value=0);return}const b=m.getBoundingClientRect();s.value=b.height,i.value=b.bottom,c.value=b.left,f.value=b.right,u.value=b.top,d.value=b.width,p.value=b.x,h.value=b.y}return jt(t,g),e.watch(()=>sn(t),m=>!m&&g()),l&&rt("scroll",g,{passive:!0}),r&&rt("resize",g,{passive:!0}),pc(()=>{a&&g()}),{height:s,bottom:i,left:c,right:f,top:u,width:d,x:p,y:h,update:g}}var Om=Object.getOwnPropertySymbols,d_=Object.prototype.hasOwnProperty,f_=Object.prototype.propertyIsEnumerable,u_=(t,n)=>{var o={};for(var r in t)d_.call(t,r)&&n.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&Om)for(var r of Om(t))n.indexOf(r)<0&&f_.call(t,r)&&(o[r]=t[r]);return o};function p_(t,n,o={}){const r=o,{window:l=mr}=r,a=u_(r,["window"]);let s;const i=Im(()=>l&&"MutationObserver"in l),c=()=>{s&&(s.disconnect(),s=void 0)},f=e.watch(()=>sn(t),d=>{c(),i.value&&l&&d&&(s=new MutationObserver(n),s.observe(d,a))},{immediate:!0}),u=()=>{c(),f()};return Al(u),{isSupported:i,stop:u}}var Am;(function(t){t.UP="UP",t.RIGHT="RIGHT",t.DOWN="DOWN",t.LEFT="LEFT",t.NONE="NONE"})(Am||(Am={}));var m_=Object.defineProperty,zm=Object.getOwnPropertySymbols,h_=Object.prototype.hasOwnProperty,g_=Object.prototype.propertyIsEnumerable,Dm=(t,n,o)=>n in t?m_(t,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[n]=o,y_=(t,n)=>{for(var o in n||(n={}))h_.call(n,o)&&Dm(t,o,n[o]);if(zm)for(var o of zm(n))g_.call(n,o)&&Dm(t,o,n[o]);return t};y_({linear:t_},{easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]});function b_(t,n,o,r={}){var l,a,s;const{passive:i=!1,eventName:c,deep:f=!1,defaultValue:u}=r,d=e.getCurrentInstance(),p=o||(d==null?void 0:d.emit)||((l=d==null?void 0:d.$emit)==null?void 0:l.bind(d))||((s=(a=d==null?void 0:d.proxy)==null?void 0:a.$emit)==null?void 0:s.bind(d==null?void 0:d.proxy));let h=c;n||(n="modelValue"),h=c||h||`update:${n.toString()}`;const g=()=>XN(t[n])?t[n]:u;if(i){const m=e.ref(g());return e.watch(()=>t[n],b=>m.value=b),e.watch(m,b=>{(b!==t[n]||f)&&p(h,b)},{deep:f}),m}else return e.computed({get(){return g()},set(m){p(h,m)}})}function C_({window:t=mr}={}){if(!t)return e.ref(!1);const n=e.ref(t.document.hasFocus());return rt(t,"blur",()=>{n.value=!1}),rt(t,"focus",()=>{n.value=!0}),n}function w_(t={}){const{window:n=mr,initialWidth:o=1/0,initialHeight:r=1/0,listenOrientation:l=!0}=t,a=e.ref(o),s=e.ref(r),i=()=>{n&&(a.value=n.innerWidth,s.value=n.innerHeight)};return i(),pc(i),rt("resize",i,{passive:!0}),l&&rt("orientationchange",i,{passive:!0}),{width:a,height:s}}const Lm=()=>He&&/firefox/i.test(window.navigator.userAgent),k_=(t,n)=>{if(!He||!t||!n)return!1;const o=t.getBoundingClientRect();let r;return n instanceof Element?r=n.getBoundingClientRect():r={top:0,right:window.innerWidth,bottom:window.innerHeight,left:0},o.topr.top&&o.right>r.left&&o.left{let n=0,o=t;for(;o;)n+=o.offsetTop,o=o.offsetParent;return n},S_=(t,n)=>Math.abs(xm(t)-xm(n)),yc=t=>{let n,o;return t.type==="touchend"?(o=t.changedTouches[0].clientY,n=t.changedTouches[0].clientX):t.type.startsWith("touch")?(o=t.touches[0].clientY,n=t.touches[0].clientX):(o=t.clientY,n=t.clientX),{clientX:n,clientY:o}},st=()=>{},E_=Object.prototype.hasOwnProperty,Lt=(t,n)=>E_.call(t,n),Re=Array.isArray,zl=t=>Cc(t)==="[object Date]",qe=t=>typeof t=="function",De=t=>typeof t=="string",nt=t=>t!==null&&typeof t=="object",bc=t=>nt(t)&&qe(t.then)&&qe(t.catch),N_=Object.prototype.toString,Cc=t=>N_.call(t),wc=t=>Cc(t).slice(8,-1),Fm=t=>Cc(t)==="[object Object]",kc=t=>{const n=Object.create(null);return o=>n[o]||(n[o]=t(o))},__=/-(\w)/g,Hm=kc(t=>t.replace(__,(n,o)=>o?o.toUpperCase():"")),B_=/\B([A-Z])/g,$_=kc(t=>t.replace(B_,"-$1").toLowerCase()),T_=kc(t=>t.charAt(0).toUpperCase()+t.slice(1));var Km=typeof global=="object"&&global&&global.Object===Object&&global,v_=typeof self=="object"&&self&&self.Object===Object&&self,Ot=Km||v_||Function("return this")(),Ut=Ot.Symbol,Wm=Object.prototype,V_=Wm.hasOwnProperty,M_=Wm.toString,Dl=Ut?Ut.toStringTag:void 0;function I_(t){var n=V_.call(t,Dl),o=t[Dl];try{t[Dl]=void 0;var r=!0}catch(a){}var l=M_.call(t);return r&&(n?t[Dl]=o:delete t[Dl]),l}var P_=Object.prototype,R_=P_.toString;function O_(t){return R_.call(t)}var A_="[object Null]",z_="[object Undefined]",jm=Ut?Ut.toStringTag:void 0;function Jt(t){return t==null?t===void 0?z_:A_:jm&&jm in Object(t)?I_(t):O_(t)}function Et(t){return t!=null&&typeof t=="object"}var D_="[object Symbol]";function gn(t){return typeof t=="symbol"||Et(t)&&Jt(t)==D_}var L_=0/0;function Um(t){return typeof t=="number"?t:gn(t)?L_:+t}function bt(t,n){for(var o=-1,r=t==null?0:t.length,l=Array(r);++o0){if(++n>=SB)return arguments[0]}else n=0;return t.apply(void 0,arguments)}}var sh=ah(th),_B=/\{\n\/\* \[wrapped with (.+)\] \*/,BB=/,? & /;function $B(t){var n=t.match(_B);return n?n[1].split(BB):[]}var TB=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function vB(t,n){var o=n.length;if(!o)return t;var r=o-1;return n[r]=(o>1?"& ":"")+n[r],n=n.join(o>2?", ":" "),t.replace(TB,`{ +/* [wrapped with `+n+`] */ +`)}function _c(t){return function(){return t}}var Ja=function(){try{var t=gr(Object,"defineProperty");return t({},"",{}),t}catch(n){}}(),VB=Ja?function(t,n){return Ja(t,"toString",{configurable:!0,enumerable:!1,value:_c(n),writable:!0})}:Qt,Bc=ah(VB);function Bn(t,n){for(var o=-1,r=t==null?0:t.length;++o-1}var IB=1,PB=2,RB=8,OB=16,AB=32,zB=64,DB=128,LB=256,xB=512,FB=[["ary",DB],["bind",IB],["bindKey",PB],["curry",RB],["curryRight",OB],["flip",xB],["partial",AB],["partialRight",zB],["rearg",LB]];function HB(t,n){return Bn(FB,function(o){var r="_."+o[0];n&o[1]&&!es(t,r)&&t.push(r)}),t.sort()}function ch(t,n,o){var r=n+"";return Bc(t,vB(r,HB($B(r),o)))}var KB=1,WB=2,jB=4,UB=8,dh=32,fh=64;function uh(t,n,o,r,l,a,s,i,c,f){var u=n&UB,d=u?s:void 0,p=u?void 0:s,h=u?a:void 0,g=u?void 0:a;n|=u?dh:fh,n&=~(u?fh:dh),n&jB||(n&=~(KB|WB));var m=[t,n,l,h,d,g,p,i,c,f],b=o.apply(void 0,m);return Nc(t)&&sh(b,m),b.placeholder=r,ch(b,t,n)}function Gr(t){var n=t;return n.placeholder}var GB=9007199254740991,qB=/^(?:0|[1-9]\d*)$/;function Co(t,n){var o=typeof t;return n=n==null?GB:n,!!n&&(o=="number"||o!="symbol"&&qB.test(t))&&t>-1&&t%1==0&&t1&&C.reverse(),u&&c-1&&t%1==0&&t<=h$}function dn(t){return t!=null&&ns(t.length)&&!bo(t)}function en(t,n,o){if(!Ct(o))return!1;var r=typeof n;return(r=="number"?dn(o)&&Co(n,o.length):r=="string"&&n in o)?Dn(o[n],t):!1}function qr(t){return Je(function(n,o){var r=-1,l=o.length,a=l>1?o[l-1]:void 0,s=l>2?o[2]:void 0;for(a=t.length>3&&typeof a=="function"?(l--,a):void 0,s&&en(o[0],o[1],s)&&(a=l<3?void 0:a,l=1),n=Object(n);++r-1}function BT(t,n){var o=this.__data__,r=rs(o,t);return r<0?(++this.size,o.push([t,n])):o[r][1]=n,this}function So(t){var n=-1,o=t==null?0:t.length;for(this.clear();++n0&&o(i)?n>1?xt(i,n-1,o,r,l):xo(l,i):r||(l[l.length]=i)}return l}function zc(t){var n=t==null?0:t.length;return n?xt(t,1):[]}function No(t){return Bc(Sh(t,void 0,zc),t+"")}var xT=No(Ac),as=Mh(Object.getPrototypeOf,Object),FT="[object Object]",HT=Function.prototype,KT=Object.prototype,Oh=HT.toString,WT=KT.hasOwnProperty,jT=Oh.call(Object);function ql(t){if(!Et(t)||Jt(t)!=FT)return!1;var n=as(t);if(n===null)return!0;var o=WT.call(n,"constructor")&&n.constructor;return typeof o=="function"&&o instanceof o&&Oh.call(o)==jT}var UT="[object DOMException]",GT="[object Error]";function Dc(t){if(!Et(t))return!1;var n=Jt(t);return n==GT||n==UT||typeof t.message=="string"&&typeof t.name=="string"&&!ql(t)}var Ah=Je(function(t,n){try{return bn(t,void 0,n)}catch(o){return Dc(o)?o:new Error(o)}}),qT="Expected a function";function zh(t,n){var o;if(typeof n!="function")throw new TypeError(qT);return t=Ze(t),function(){return--t>0&&(o=n.apply(this,arguments)),t<=1&&(n=void 0),o}}var YT=1,XT=32,ss=Je(function(t,n,o){var r=YT;if(o.length){var l=zo(o,Gr(ss));r|=XT}return wo(t,r,n,o,l)});ss.placeholder={};var ZT=No(function(t,n){return Bn(n,function(o){o=eo(o),ko(t,o,ss(t[o],t))}),t}),JT=1,QT=2,ev=32,Lc=Je(function(t,n,o){var r=JT|QT;if(o.length){var l=zo(o,Gr(Lc));r|=ev}return wo(n,r,t,o,l)});Lc.placeholder={};function Tn(t,n,o){var r=-1,l=t.length;n<0&&(n=-n>l?0:l+n),o=o>l?l:o,o<0&&(o+=l),l=n>o?0:o-n>>>0,n>>>=0;for(var a=Array(l);++r=r?t:Tn(t,n,o)}var tv="\\ud800-\\udfff",nv="\\u0300-\\u036f",ov="\\ufe20-\\ufe2f",rv="\\u20d0-\\u20ff",lv=nv+ov+rv,av="\\ufe0e\\ufe0f",sv="\\u200d",iv=RegExp("["+sv+tv+lv+av+"]");function Xr(t){return iv.test(t)}function cv(t){return t.split("")}var Dh="\\ud800-\\udfff",dv="\\u0300-\\u036f",fv="\\ufe20-\\ufe2f",uv="\\u20d0-\\u20ff",pv=dv+fv+uv,mv="\\ufe0e\\ufe0f",hv="["+Dh+"]",xc="["+pv+"]",Fc="\\ud83c[\\udffb-\\udfff]",gv="(?:"+xc+"|"+Fc+")",Lh="[^"+Dh+"]",xh="(?:\\ud83c[\\udde6-\\uddff]){2}",Fh="[\\ud800-\\udbff][\\udc00-\\udfff]",yv="\\u200d",Hh=gv+"?",Kh="["+mv+"]?",bv="(?:"+yv+"(?:"+[Lh,xh,Fh].join("|")+")"+Kh+Hh+")*",Cv=Kh+Hh+bv,wv="(?:"+[Lh+xc+"?",xc,xh,Fh,hv].join("|")+")",kv=RegExp(Fc+"(?="+Fc+")|"+wv+Cv,"g");function Sv(t){return t.match(kv)||[]}function Ln(t){return Xr(t)?Sv(t):cv(t)}function Wh(t){return function(n){n=it(n);var o=Xr(n)?Ln(n):void 0,r=o?o[0]:n.charAt(0),l=o?Fo(o,1).join(""):n.slice(1);return r[t]()+l}}var Hc=Wh("toUpperCase");function jh(t){return Hc(it(t).toLowerCase())}function Kc(t,n,o,r){var l=-1,a=t==null?0:t.length;for(r&&a&&(o=t[++l]);++l=n?t:n)),t}function mV(t,n,o){return o===void 0&&(o=n,n=void 0),o!==void 0&&(o=Nn(o),o=o===o?o:0),n!==void 0&&(n=Nn(n),n=n===n?n:0),wr(Nn(t),n,o)}function hV(){this.__data__=new So,this.size=0}function gV(t){var n=this.__data__,o=n.delete(t);return this.size=n.size,o}function yV(t){return this.__data__.get(t)}function bV(t){return this.__data__.has(t)}var CV=200;function wV(t,n){var o=this.__data__;if(o instanceof So){var r=o.__data__;if(!Ul||r.lengthi))return!1;var f=a.get(t),u=a.get(n);if(f&&u)return f==n&&u==t;var d=-1,p=!0,h=o&JM?new Sr:void 0;for(a.set(t,n),a.set(n,t);++d=n||_<0||d&&B>=a}function y(){var S=us();if(b(S))return C(S);i=setTimeout(y,m(S))}function C(S){return i=void 0,p&&r?h(S):(r=l=void 0,s)}function k(){i!==void 0&&clearTimeout(i),f=0,r=c=l=i=void 0}function w(){return i===void 0?s:C(us())}function E(){var S=us(),_=b(S);if(r=arguments,l=this,c=S,_){if(i===void 0)return g(c);if(d)return clearTimeout(i),i=setTimeout(y,n),h(c)}return i===void 0&&(i=setTimeout(y,n)),s}return E.cancel=k,E.flush=w,E}function KI(t,n){return t==null||t!==t?n:t}var Zg=Object.prototype,WI=Zg.hasOwnProperty,jI=Je(function(t,n){t=Object(t);var o=-1,r=n.length,l=r>2?n[2]:void 0;for(l&&en(n[0],n[1],l)&&(r=1);++o=ZI&&(a=Xl,s=!1,n=new Sr(n));e:for(;++l=0&&t.slice(o,l)==n}function iP(t,n){return bt(n,function(o){return[o,t[o]]})}function cP(t){var n=-1,o=Array(t.size);return t.forEach(function(r){o[++n]=[r,r]}),o}var dP="[object Map]",fP="[object Set]";function a0(t){return function(n){var o=to(n);return o==dP?td(n):o==fP?cP(n):iP(n,t(n))}}var s0=a0(Mt),i0=a0(fn),uP={"&":"&","<":"<",">":">",'"':""","'":"'"},pP=Wc(uP),c0=/[&<>"']/g,mP=RegExp(c0.source);function d0(t){return t=it(t),t&&mP.test(t)?t.replace(c0,pP):t}var f0=/[\\^$.*+?()[\]{}|]/g,hP=RegExp(f0.source);function gP(t){return t=it(t),t&&hP.test(t)?t.replace(f0,"\\$&"):t}function u0(t,n){for(var o=-1,r=t==null?0:t.length;++ol?0:l+o),r=r===void 0||r>l?l:Ze(r),r<0&&(r+=l),r=o>r?0:p0(r);o-1?l[a?n[s]:s]:void 0}}var EP=Math.max;function g0(t,n,o){var r=t==null?0:t.length;if(!r)return-1;var l=o==null?0:Ze(o);return l<0&&(l=EP(r+l,0)),Qa(t,Ue(n),l)}var NP=h0(g0);function y0(t,n,o){var r;return o(t,function(l,a,s){if(n(l,a,s))return r=a,!1}),r}function _P(t,n){return y0(t,Ue(n),no)}var BP=Math.max,$P=Math.min;function md(t,n,o){var r=t==null?0:t.length;if(!r)return-1;var l=r-1;return o!==void 0&&(l=Ze(o),l=o<0?BP(r+l,0):$P(l,r-1)),Qa(t,Ue(n),l,!0)}var TP=h0(md);function vP(t,n){return y0(t,Ue(n),pd)}function b0(t){return t&&t.length?t[0]:void 0}function C0(t,n){var o=-1,r=dn(t)?Array(t.length):[];return Wo(t,function(l,a,s){r[++o]=n(l,a,s)}),r}function hs(t,n){var o=Ye(t)?bt:C0;return o(t,Ue(n))}function w0(t,n){return xt(hs(t,n),1)}var VP=1/0;function MP(t,n){return xt(hs(t,n),VP)}function IP(t,n,o){return o=o===void 0?1:Ze(o),xt(hs(t,n),o)}var PP=1/0;function k0(t){var n=t==null?0:t.length;return n?xt(t,PP):[]}function RP(t,n){var o=t==null?0:t.length;return o?(n=n===void 0?1:Ze(n),xt(t,n)):[]}var OP=512;function AP(t){return wo(t,OP)}var zP=jc("floor"),DP="Expected a function",LP=8,xP=32,FP=128,HP=256;function S0(t){return No(function(n){var o=n.length,r=o,l=_n.prototype.thru;for(t&&n.reverse();r--;){var a=n[r];if(typeof a!="function")throw new TypeError(DP);if(l&&!s&&Za(a)=="wrapper")var s=new _n([],!0)}for(r=s?r:o;++rn}function ys(t){return function(n,o){return typeof n=="string"&&typeof o=="string"||(n=Nn(n),o=Nn(o)),t(n,o)}}var eR=ys(hd),tR=ys(function(t,n){return t>=n}),nR=Object.prototype,oR=nR.hasOwnProperty;function rR(t,n){return t!=null&&oR.call(t,n)}function lR(t,n){return t!=null&&jg(t,n,rR)}var aR=Math.max,sR=Math.min;function iR(t,n,o){return t>=sR(n,o)&&t-1:!!l&&Ur(t,n,o)>-1}var pR=Math.max;function mR(t,n,o){var r=t==null?0:t.length;if(!r)return-1;var l=o==null?0:Ze(o);return l<0&&(l=pR(r+l,0)),Ur(t,n,l)}function hR(t){var n=t==null?0:t.length;return n?Tn(t,0,-1):[]}var gR=Math.min;function yd(t,n,o){for(var r=o?ud:es,l=t[0].length,a=t.length,s=a,i=Array(a),c=1/0,f=[];s--;){var u=t[s];s&&n&&(u=bt(u,Cn(n))),c=gR(u.length,c),i[s]=!o&&(n||l>=120&&u.length>=120)?new Sr(s&&u):void 0}u=t[0];var d=-1,p=i[0];e:for(;++d=-M0&&t<=M0}function wd(t){return t===void 0}var oO="[object WeakMap]";function rO(t){return Et(t)&&to(t)==oO}var lO="[object WeakSet]";function aO(t){return Et(t)&&Jt(t)==lO}var sO=1;function iO(t){return Ue(typeof t=="function"?t:vn(t,sO))}var cO=Array.prototype,dO=cO.join;function fO(t,n){return t==null?"":dO.call(t,n)}var uO=Jr(function(t,n,o){return t+(o?"-":"")+n.toLowerCase()}),pO=fs(function(t,n,o){ko(t,o,n)});function mO(t,n,o){for(var r=o+1;r--;)if(t[r]===n)return r;return r}var hO=Math.max,gO=Math.min;function yO(t,n,o){var r=t==null?0:t.length;if(!r)return-1;var l=r;return o!==void 0&&(l=Ze(o),l=l<0?hO(r+l,0):gO(l,r-1)),n===n?mO(t,n,l):Qa(t,ih,l,!0)}var bO=Jr(function(t,n,o){return t+(o?" ":"")+n.toLowerCase()}),CO=Wh("toLowerCase");function kd(t,n){return t=this.__values__.length,n=t?void 0:this.__values__[this.__index__++];return{done:t,value:n}}function O0(t,n){var o=t.length;if(!!o)return n+=n<0?o:0,Co(n,o)?t[n]:void 0}function KO(t,n){return t&&t.length?O0(t,Ze(n)):void 0}function WO(t){return t=Ze(t),Je(function(n){return O0(n,t)})}function _d(t,n){return n=Lo(n,t),t=_0(t,n),t==null||delete t[eo(wn(n))]}function jO(t){return ql(t)?void 0:t}var UO=1,GO=2,qO=4,YO=No(function(t,n){var o={};if(t==null)return o;var r=!1;n=bt(n,function(a){return a=Lo(a,t),r||(r=a.length>1),a}),Qn(t,Yc(t),o),r&&(o=vn(o,UO|GO|qO,jO));for(var l=n.length;l--;)_d(o,n[l]);return o});function na(t,n,o,r){if(!Ct(t))return t;n=Lo(n,t);for(var l=-1,a=n.length,s=a-1,i=t;i!=null&&++ln||a&&s&&c&&!i&&!f||r&&s&&c||!o&&c||!l)return 1;if(!r&&!a&&!f&&t=i)return c;var f=o[r];return c*(f=="desc"?-1:1)}}return t.index-n.index}function L0(t,n,o){n.length?n=bt(n,function(a){return Ye(a)?function(s){return Cr(s,a.length===1?a[0]:a)}:a}):n=[Qt];var r=-1;n=bt(n,Cn(Ue));var l=C0(t,function(a,s,i){var c=bt(n,function(f){return f(a)});return{criteria:c,index:++r,value:a}});return JO(l,function(a,s){return QO(a,s,o)})}function eA(t,n,o,r){return t==null?[]:(Ye(n)||(n=n==null?[]:[n]),o=r?void 0:o,Ye(o)||(o=o==null?[]:[o]),L0(t,n,o))}function Bd(t){return No(function(n){return n=bt(n,Cn(Ue)),Je(function(o){var r=this;return t(n,function(l){return bn(l,r,o)})})})}var tA=Bd(bt),nA=Je,oA=Math.min,rA=nA(function(t,n){n=n.length==1&&Ye(n[0])?bt(n[0],Cn(Ue)):bt(xt(n,1),Cn(Ue));var o=n.length;return Je(function(r){for(var l=-1,a=oA(r.length,o);++lsA)return o;do n%2&&(o+=t),n=iA(n/2),n&&(t+=t);while(n);return o}var cA=ad("length"),x0="\\ud800-\\udfff",dA="\\u0300-\\u036f",fA="\\ufe20-\\ufe2f",uA="\\u20d0-\\u20ff",pA=dA+fA+uA,mA="\\ufe0e\\ufe0f",hA="["+x0+"]",Td="["+pA+"]",vd="\\ud83c[\\udffb-\\udfff]",gA="(?:"+Td+"|"+vd+")",F0="[^"+x0+"]",H0="(?:\\ud83c[\\udde6-\\uddff]){2}",K0="[\\ud800-\\udbff][\\udc00-\\udfff]",yA="\\u200d",W0=gA+"?",j0="["+mA+"]?",bA="(?:"+yA+"(?:"+[F0,H0,K0].join("|")+")"+j0+W0+")*",CA=j0+W0+bA,wA="(?:"+[F0+Td+"?",Td,H0,K0,hA].join("|")+")",U0=RegExp(vd+"(?="+vd+")|"+wA+CA,"g");function kA(t){for(var n=U0.lastIndex=0;U0.test(t);)++n;return n}function tl(t){return Xr(t)?kA(t):cA(t)}var SA=Math.ceil;function ws(t,n){n=n===void 0?" ":yn(n);var o=n.length;if(o<2)return o?$d(n,t):n;var r=$d(n,SA(t/tl(n)));return Xr(n)?Fo(Ln(r),0,t).join(""):r.slice(0,t)}var EA=Math.ceil,NA=Math.floor;function _A(t,n,o){t=it(t),n=Ze(n);var r=n?tl(t):0;if(!n||r>=n)return t;var l=(n-r)/2;return ws(NA(l),o)+t+ws(EA(l),o)}function BA(t,n,o){t=it(t),n=Ze(n);var r=n?tl(t):0;return n&&r-1;)i!==t&&G0.call(i,c,1),G0.call(t,c,1);return t}function q0(t,n){return t&&t.length&&n&&n.length?Md(t,n):t}var LA=Je(q0);function xA(t,n,o){return t&&t.length&&n&&n.length?Md(t,n,Ue(o)):t}function FA(t,n,o){return t&&t.length&&n&&n.length?Md(t,n,void 0,o):t}var HA=Array.prototype,KA=HA.splice;function Y0(t,n){for(var o=t?n.length:0,r=o-1;o--;){var l=n[o];if(o==r||l!==a){var a=l;Co(l)?KA.call(t,l,1):_d(t,l)}}return t}var WA=No(function(t,n){var o=t==null?0:t.length,r=Ac(t,n);return Y0(t,bt(n,function(l){return Co(l,o)?+l:l}).sort(D0)),r}),jA=Math.floor,UA=Math.random;function Id(t,n){return t+jA(UA()*(n-t+1))}var GA=parseFloat,qA=Math.min,YA=Math.random;function XA(t,n,o){if(o&&typeof o!="boolean"&&en(t,n,o)&&(n=o=void 0),o===void 0&&(typeof n=="boolean"?(o=n,n=void 0):typeof t=="boolean"&&(o=t,t=void 0)),t===void 0&&n===void 0?(t=0,n=1):(t=yo(t),n===void 0?(n=t,t=0):n=yo(n)),t>n){var r=t;t=n,n=r}if(o||t%1||n%1){var l=YA();return qA(t+l*(n-t+GA("1e-"+((l+"").length-1))),n)}return Id(t,n)}var ZA=Math.ceil,JA=Math.max;function QA(t,n,o,r){for(var l=-1,a=JA(ZA((n-t)/(o||1)),0),s=Array(a);a--;)s[r?a:++l]=t,t+=o;return s}function X0(t){return function(n,o,r){return r&&typeof r!="number"&&en(n,o,r)&&(o=r=void 0),n=yo(n),o===void 0?(o=n,n=0):o=yo(o),r=r===void 0?n1&&en(t,n[0],n[1])?n=[]:o>2&&en(n[0],n[1],n[2])&&(n=[n[0]]),L0(t,xt(n,1),[])}),R3=4294967295,O3=R3-1,A3=Math.floor,z3=Math.min;function Rd(t,n,o,r){var l=0,a=t==null?0:t.length;if(a===0)return 0;n=o(n);for(var s=n!==n,i=n===null,c=gn(n),f=n===void 0;l>>1;function Es(t,n,o){var r=0,l=t==null?r:t.length;if(typeof n=="number"&&n===n&&l<=L3){for(;r>>1,s=t[a];s!==null&&!gn(s)&&(o?s<=n:s>>0,o?(t=it(t),t&&(typeof n=="string"||n!=null&&!Cd(n))&&(n=yn(n),!n&&Xr(t))?Fo(Ln(t),0,o):t.split(n,o)):[]}var X3="Expected a function",Z3=Math.max;function J3(t,n){if(typeof t!="function")throw new TypeError(X3);return n=n==null?0:Z3(Ze(n),0),Je(function(o){var r=o[n],l=Fo(o,0,n);return r&&xo(l,r),bn(t,this,l)})}var Q3=Jr(function(t,n,o){return t+(o?" ":"")+Hc(n)});function e4(t,n,o){return t=it(t),o=o==null?0:wr(Ze(o),0,t.length),n=yn(n),t.slice(o,o+n.length)==n}function t4(){return{}}function n4(){return""}function o4(){return!0}var r4=Ga(function(t,n){return t-n},0);function l4(t){return t&&t.length?Sd(t,Qt):0}function a4(t,n){return t&&t.length?Sd(t,Ue(n)):0}function s4(t){var n=t==null?0:t.length;return n?Tn(t,1,n):[]}function i4(t,n,o){return t&&t.length?(n=o||n===void 0?1:Ze(n),Tn(t,0,n<0?0:n)):[]}function c4(t,n,o){var r=t==null?0:t.length;return r?(n=o||n===void 0?1:Ze(n),n=r-n,Tn(t,n<0?0:n,r)):[]}function d4(t,n){return t&&t.length?ms(t,Ue(n),!1,!0):[]}function f4(t,n){return t&&t.length?ms(t,Ue(n)):[]}function u4(t,n){return n(t),t}var ty=Object.prototype,p4=ty.hasOwnProperty;function ny(t,n,o,r){return t===void 0||Dn(t,ty[o])&&!p4.call(r,o)?n:t}var m4={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};function h4(t){return"\\"+m4[t]}var oy=/<%=([\s\S]+?)%>/g,g4=/<%-([\s\S]+?)%>/g,y4=/<%([\s\S]+?)%>/g,Od={escape:g4,evaluate:y4,interpolate:oy,variable:"",imports:{_:{escape:d0}}},b4="Invalid `variable` option passed into `_.template`",C4=/\b__p \+= '';/g,w4=/\b(__p \+=) '' \+/g,k4=/(__e\(.*?\)|\b__t\)) \+\n'';/g,S4=/[()=,{}\[\]\/\s]/,E4=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Ns=/($^)/,N4=/['\n\r\u2028\u2029\\]/g,_4=Object.prototype,ry=_4.hasOwnProperty;function B4(t,n,o){var r=Od.imports._.templateSettings||Od;o&&en(t,n,o)&&(n=void 0),t=it(t),n=os({},n,r,ny);var l=os({},n.imports,r.imports,ny),a=Mt(l),s=gd(l,a),i,c,f=0,u=n.interpolate||Ns,d="__p += '",p=RegExp((n.escape||Ns).source+"|"+u.source+"|"+(u===oy?E4:Ns).source+"|"+(n.evaluate||Ns).source+"|$","g"),h=ry.call(n,"sourceURL")?"//# sourceURL="+(n.sourceURL+"").replace(/\s/g," ")+` +`:"";t.replace(p,function(b,y,C,k,w,E){return C||(C=k),d+=t.slice(f,E).replace(N4,h4),y&&(i=!0,d+=`' + +__e(`+y+`) + +'`),w&&(c=!0,d+=`'; +`+w+`; +__p += '`),C&&(d+=`' + +((__t = (`+C+`)) == null ? '' : __t) + +'`),f=E+b.length,b}),d+=`'; +`;var g=ry.call(n,"variable")&&n.variable;if(!g)d=`with (obj) { +`+d+` +} +`;else if(S4.test(g))throw new Error(b4);d=(c?d.replace(C4,""):d).replace(w4,"$1").replace(k4,"$1;"),d="function("+(g||"obj")+`) { +`+(g?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(i?", __e = _.escape":"")+(c?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+d+`return __p +}`;var m=Ah(function(){return Function(a,h+"return "+d).apply(void 0,s)});if(m.source=d,Dc(m))throw m;return m}var $4="Expected a function";function jo(t,n,o){var r=!0,l=!0;if(typeof t!="function")throw new TypeError($4);return Ct(o)&&(r="leading"in o?!!o.leading:r,l="trailing"in o?!!o.trailing:l),Gt(t,n,{leading:r,maxWait:n,trailing:l})}function oa(t,n){return n(t)}var T4=9007199254740991,Ad=4294967295,v4=Math.min;function V4(t,n){if(t=Ze(t),t<1||t>T4)return[];var o=Ad,r=v4(t,Ad);n=oo(n),t-=Ad;for(var l=Mc(r,n);++o-1;);return o}function iy(t,n){for(var o=-1,r=t.length;++o-1;);return o}function z4(t,n,o){if(t=it(t),t&&(o||n===void 0))return Xm(t);if(!t||!(n=yn(n)))return t;var r=Ln(t),l=Ln(n),a=iy(r,l),s=sy(r,l)+1;return Fo(r,a,s).join("")}function D4(t,n,o){if(t=it(t),t&&(o||n===void 0))return t.slice(0,Ym(t)+1);if(!t||!(n=yn(n)))return t;var r=Ln(t),l=sy(r,Ln(n))+1;return Fo(r,0,l).join("")}var L4=/^\s+/;function x4(t,n,o){if(t=it(t),t&&(o||n===void 0))return t.replace(L4,"");if(!t||!(n=yn(n)))return t;var r=Ln(t),l=iy(r,Ln(n));return Fo(r,l).join("")}var F4=30,H4="...",K4=/\w*$/;function W4(t,n){var o=F4,r=H4;if(Ct(n)){var l="separator"in n?n.separator:l;o="length"in n?Ze(n.length):o,r="omission"in n?yn(n.omission):r}t=it(t);var a=t.length;if(Xr(t)){var s=Ln(t);a=s.length}if(o>=a)return t;var i=o-tl(r);if(i<1)return r;var c=s?Fo(s,0,i).join(""):t.slice(0,i);if(l===void 0)return c+r;if(s&&(i+=c.length-i),Cd(l)){if(t.slice(i).search(l)){var f,u=c;for(l.global||(l=RegExp(l.source,it(K4.exec(l))+"g")),l.lastIndex=0;f=l.exec(u);)var d=f.index;c=c.slice(0,d===void 0?i:d)}}else if(t.indexOf(yn(l),i)!=i){var p=c.lastIndexOf(l);p>-1&&(c=c.slice(0,p))}return c+r}function j4(t){return wh(t,1)}var U4={"&":"&","<":"<",">":">",""":'"',"'":"'"},G4=Wc(U4),cy=/&(?:amp|lt|gt|quot|#39);/g,q4=RegExp(cy.source);function Y4(t){return t=it(t),t&&q4.test(t)?t.replace(cy,G4):t}var X4=1/0,Z4=Qr&&1/cs(new Qr([,-0]))[1]==X4?function(t){return new Qr(t)}:Sc,J4=200;function Uo(t,n,o){var r=-1,l=es,a=t.length,s=!0,i=[],c=i;if(o)s=!1,l=ud;else if(a>=J4){var f=n?null:Z4(t);if(f)return cs(f);s=!1,l=Xl,c=new Sr}else c=n?[]:i;e:for(;++r1||this.__actions__.length||!(r instanceof et)||!Co(o)?this.thru(l):(r=r.slice(o,+o+(n?1:0)),r.__actions__.push({func:oa,args:[l],thisArg:void 0}),new _n(r,this.__chain__).thru(function(a){return n&&!a.length&&a.push(void 0),a}))});function hz(){return fg(this)}function gz(){var t=this.__wrapped__;if(t instanceof et){var n=t;return this.__actions__.length&&(n=new et(this)),n=n.reverse(),n.__actions__.push({func:oa,args:[Pd],thisArg:void 0}),new _n(n,this.__chain__)}return this.thru(Pd)}function Ld(t,n,o){var r=t.length;if(r<2)return r?Uo(t[0]):[];for(var l=-1,a=Array(r);++l1?t[n-1]:void 0;return o=typeof o=="function"?(t.pop(),o):void 0,dy(t,o)}),Ve={chunk:pV,compact:UM,concat:GM,difference:JI,differenceBy:QI,differenceWith:eP,drop:nP,dropRight:oP,dropRightWhile:rP,dropWhile:lP,fill:kP,findIndex:g0,findLastIndex:md,first:b0,flatten:zc,flattenDeep:k0,flattenDepth:RP,fromPairs:Ql,head:b0,indexOf:mR,initial:hR,intersection:yR,intersectionBy:bR,intersectionWith:CR,join:fO,last:wn,lastIndexOf:yO,nth:KO,pull:LA,pullAll:q0,pullAllBy:xA,pullAllWith:FA,pullAt:WA,remove:i3,reverse:Pd,slice:v3,sortedIndex:x3,sortedIndexBy:F3,sortedIndexOf:H3,sortedLastIndex:K3,sortedLastIndexBy:W3,sortedLastIndexOf:j3,sortedUniq:U3,sortedUniqBy:G3,tail:s4,take:i4,takeRight:c4,takeRightWhile:d4,takeWhile:f4,union:_s,unionBy:Q4,unionWith:ez,uniq:tz,uniqBy:nz,uniqWith:oz,unzip:Dd,unzipWith:dy,without:uz,xor:yz,xorBy:bz,xorWith:Cz,zip:wz,zipObject:kz,zipObjectDeep:Sz,zipWith:Ez},ft={countBy:AI,each:n0,eachRight:l0,every:bP,filter:SP,find:NP,findLast:TP,flatMap:w0,flatMapDeep:MP,flatMapDepth:IP,forEach:n0,forEachRight:l0,groupBy:QP,includes:uR,invokeMap:TR,keyBy:pO,map:hs,orderBy:eA,partition:PA,reduce:r3,reduceRight:a3,reject:s3,sample:b3,sampleSize:k3,shuffle:_3,size:T3,some:I3,sortBy:P3},Nz={now:us},Nt={after:X_,ary:wh,before:zh,bind:ss,bindKey:Lc,curry:id,curryRight:cd,debounce:Gt,defer:YI,delay:XI,flip:AP,memoize:Gl,negate:ta,once:ZO,overArgs:rA,partial:ks,partialRight:Vd,rearg:o3,rest:u3,spread:J3,throttle:jo,unary:j4,wrap:pz},Fe={castArray:Ho,clone:Qc,cloneDeep:Yl,cloneDeepWith:HM,cloneWith:WM,conformsTo:MI,eq:Dn,gt:eR,gte:tR,isArguments:yr,isArray:Ye,isArrayBuffer:MR,isArrayLike:dn,isArrayLikeObject:Bt,isBoolean:PR,isBuffer:Do,isDate:AR,isElement:zR,isEmpty:HR,isEqual:tn,isEqualWith:KR,isError:Dc,isFinite:jR,isFunction:bo,isInteger:T0,isLength:ns,isMap:Mg,isMatch:UR,isMatchWith:GR,isNaN:YR,isNative:JR,isNil:wt,isNull:QR,isNumber:v0,isObject:Ct,isObjectLike:Et,isPlainObject:ql,isRegExp:Cd,isSafeInteger:nO,isSet:Pg,isString:bs,isSymbol:gn,isTypedArray:Yr,isUndefined:wd,isWeakMap:rO,isWeakSet:aO,lt:wO,lte:kO,toArray:R0,toFinite:yo,toInteger:Ze,toLength:p0,toNumber:Nn,toPlainObject:Jg,toSafeInteger:R4,toString:it},nn={add:F_,ceil:dV,divide:tP,floor:zP,max:TO,maxBy:vO,mean:MO,meanBy:IO,min:OO,minBy:AO,multiply:zO,round:g3,subtract:r4,sum:l4,sumBy:a4},xd={clamp:mV,inRange:cR,random:XA},je={assign:tT,assignIn:Ih,assignInWith:os,assignWith:aT,at:xT,create:zI,defaults:jI,defaultsDeep:GI,entries:s0,entriesIn:i0,extend:Ih,extendWith:os,findKey:_P,findLastKey:vP,forIn:jP,forInRight:UP,forOwn:GP,forOwnRight:qP,functions:YP,functionsIn:XP,get:ct,has:lR,hasIn:ld,invert:ER,invertBy:BR,invoke:$R,keys:Mt,keysIn:fn,mapKeys:SO,mapValues:EO,merge:Ed,mergeWith:e0,omit:YO,omitBy:XO,pick:ro,pickBy:z0,result:p3,set:Q0,setWith:S3,toPairs:s0,toPairsIn:i0,transform:A4,unset:az,update:iz,updateWith:cz,values:el,valuesIn:fz},lo={at:mz,chain:fg,commit:jM,lodash:L,next:HO,plant:OA,reverse:gz,tap:u4,thru:oa,toIterator:M4,toJSON:zd,value:zd,valueOf:zd,wrapperChain:hz},lt={camelCase:sV,capitalize:jh,deburr:Uh,endsWith:sP,escape:d0,escapeRegExp:gP,kebabCase:uO,lowerCase:bO,lowerFirst:CO,pad:_A,padEnd:BA,padStart:$A,parseInt:VA,repeat:c3,replace:d3,snakeCase:V3,split:Y3,startCase:Q3,startsWith:e4,template:B4,templateSettings:Od,toLower:I4,toUpper:O4,trim:z4,trimEnd:D4,trimStart:x4,truncate:W4,unescape:Y4,upperCase:dz,upperFirst:Hc,words:dg},dt={attempt:Ah,bindAll:ZT,cond:$I,conforms:VI,constant:_c,defaultTo:KI,flow:KP,flowRight:WP,identity:Qt,iteratee:iO,matches:_O,matchesProperty:$O,method:PO,methodOf:RO,mixin:P0,noop:Sc,nthArg:WO,over:tA,overEvery:lA,overSome:aA,property:Gg,propertyOf:AA,range:e3,rangeRight:t3,stubArray:Uc,stubFalse:Ic,stubObject:t4,stubString:n4,stubTrue:o4,times:V4,toPath:P4,uniqueId:lz};function _z(){var t=new et(this.__wrapped__);return t.__actions__=cn(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=cn(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=cn(this.__views__),t}function Bz(){if(this.__filtered__){var t=new et(this);t.__dir__=-1,t.__filtered__=!0}else t=this.clone(),t.__dir__*=-1;return t}var $z=Math.max,Tz=Math.min;function vz(t,n,o){for(var r=-1,l=o.length;++r0||n<0)?new et(o):(t<0?o=o.takeRight(-t):t&&(o=o.drop(t)),n!==void 0&&(n=Ze(n),o=n<0?o.dropRight(-n):o.take(n-t)),o)},et.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},et.prototype.toArray=function(){return this.take(py)},no(et.prototype,function(t,n){var o=/^(?:filter|find|map|reject)|While$/.test(n),r=/^(?:head|last)$/.test(n),l=L[r?"take"+(n=="last"?"Right":""):n],a=r||/^find/.test(n);!l||(L.prototype[n]=function(){var s=this.__wrapped__,i=r?[1]:arguments,c=s instanceof et,f=i[0],u=c||Ye(s),d=function(y){var C=l.apply(L,xo([y],i));return r&&p?C[0]:C};u&&o&&typeof f=="function"&&f.length!=1&&(c=u=!1);var p=this.__chain__,h=!!this.__actions__.length,g=a&&!p,m=c&&!h;if(!a&&u){s=m?s:new et(this);var b=t.apply(s,i);return b.__actions__.push({func:oa,args:[d],thisArg:void 0}),new _n(b,p)}return g&&m?t.apply(this,i):(b=this.thru(d),g?r?b.value()[0]:b.value():b)})}),Bn(["pop","push","shift","sort","splice","unshift"],function(t){var n=Dz[t],o=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);L.prototype[t]=function(){var l=arguments;if(r&&!this.__chain__){var a=this.value();return n.apply(Ye(a)?a:[],l)}return this[o](function(s){return n.apply(Ye(s)?s:[],l)})}}),no(et.prototype,function(t,n){var o=L[n];if(o){var r=o.name+"";my.call(jr,r)||(jr[r]=[]),jr[r].push({name:n,func:o})}}),jr[ts(void 0,Oz).name]=[{name:"wrapper",func:void 0}],et.prototype.clone=_z,et.prototype.reverse=Bz,et.prototype.value=Pz,L.prototype.at=lo.at,L.prototype.chain=lo.wrapperChain,L.prototype.commit=lo.commit,L.prototype.next=lo.next,L.prototype.plant=lo.plant,L.prototype.reverse=lo.reverse,L.prototype.toJSON=L.prototype.valueOf=L.prototype.value=lo.value,L.prototype.first=L.prototype.head,hy&&(L.prototype[hy]=lo.toIterator);/** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */const $t=t=>t===void 0,Tt=t=>typeof t=="boolean",be=t=>typeof t=="number",Vn=t=>!t&&t!==0||Re(t)&&t.length===0||nt(t)&&!Object.keys(t).length,Mn=t=>typeof Element=="undefined"?!1:t instanceof Element,Fz=t=>wt(t),Hz=t=>De(t)?!Number.isNaN(Number(t)):!1,yy=(t="")=>t.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d"),ao=t=>T_(t),ra=t=>Object.keys(t),Kz=t=>Object.entries(t),Bs=(t,n,o)=>({get value(){return ct(t,n,o)},set value(r){Q0(t,n,r)}});class Wz extends Error{constructor(n){super(n),this.name="ElementPlusError"}}function vt(t,n){throw new Wz(`[${t}] ${n}`)}function pee(t,n){}const by=(t="")=>t.split(" ").filter(n=>!!n.trim()),Fn=(t,n)=>{if(!t||!n)return!1;if(n.includes(" "))throw new Error("className should not contain space.");return t.classList.contains(n)},so=(t,n)=>{!t||!n.trim()||t.classList.add(...by(n))},un=(t,n)=>{!t||!n.trim()||t.classList.remove(...by(n))},Go=(t,n)=>{var o;if(!He||!t||!n)return"";let r=Hm(n);r==="float"&&(r="cssFloat");try{const l=t.style[r];if(l)return l;const a=(o=document.defaultView)==null?void 0:o.getComputedStyle(t,"");return a?a[r]:""}catch(l){return t.style[r]}};function kt(t,n="px"){if(!t)return"";if(be(t)||Hz(t))return`${t}${n}`;if(De(t))return t}const jz=(t,n)=>{if(!He)return!1;const o={undefined:"overflow",true:"overflow-y",false:"overflow-x"}[String(n)],r=Go(t,o);return["scroll","auto","overlay"].some(l=>r.includes(l))},Hd=(t,n)=>{if(!He)return;let o=t;for(;o;){if([window,document,document.documentElement].includes(o))return window;if(jz(o,n))return o;o=o.parentNode}return o};let $s;const Cy=t=>{var n;if(!He)return 0;if($s!==void 0)return $s;const o=document.createElement("div");o.className=`${t}-scrollbar__wrap`,o.style.visibility="hidden",o.style.width="100px",o.style.position="absolute",o.style.top="-9999px",document.body.appendChild(o);const r=o.offsetWidth;o.style.overflow="scroll";const l=document.createElement("div");l.style.width="100%",o.appendChild(l);const a=l.offsetWidth;return(n=o.parentNode)==null||n.removeChild(o),$s=r-a,$s};function wy(t,n){if(!He)return;if(!n){t.scrollTop=0;return}const o=[];let r=n.offsetParent;for(;r!==null&&t!==r&&t.contains(r);)o.push(r),r=r.offsetParent;const l=n.offsetTop+o.reduce((c,f)=>c+f.offsetTop,0),a=l+n.offsetHeight,s=t.scrollTop,i=s+t.clientHeight;li&&(t.scrollTop=a-t.clientHeight)}let Uz=He?document.body:void 0;function Gz(t){const n=document.createElement("div");return t!==void 0&&n.setAttribute("id",t),Uz.appendChild(n),n}function qz(t){t.remove()}var Yz=e.defineComponent({name:"ArrowDown",__name:"arrow-down",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 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.592 30.592 0 0 0-42.752 0z"})]))}}),qo=Yz,Xz=e.defineComponent({name:"ArrowLeft",__name:"arrow-left",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"})]))}}),Yo=Xz,Zz=e.defineComponent({name:"ArrowRight",__name:"arrow-right",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 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"})]))}}),on=Zz,Jz=e.defineComponent({name:"ArrowUp",__name:"arrow-up",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),Ts=Jz,Qz=e.defineComponent({name:"Back",__name:"back",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64"}),e.createElementVNode("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"})]))}}),eD=Qz,tD=e.defineComponent({name:"Calendar",__name:"calendar",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),nD=tD,oD=e.defineComponent({name:"CaretRight",__name:"caret-right",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M384 192v640l384-320.064z"})]))}}),ky=oD,rD=e.defineComponent({name:"CaretTop",__name:"caret-top",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M512 320 192 704h639.936z"})]))}}),lD=rD,aD=e.defineComponent({name:"Check",__name:"check",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),la=aD,sD=e.defineComponent({name:"CircleCheckFilled",__name:"circle-check-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),iD=sD,cD=e.defineComponent({name:"CircleCheck",__name:"circle-check",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"}),e.createElementVNode("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.752l265.344-265.408z"})]))}}),Kd=cD,dD=e.defineComponent({name:"CircleCloseFilled",__name:"circle-close-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),Wd=dD,fD=e.defineComponent({name:"CircleClose",__name:"circle-close",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"}),e.createElementVNode("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"})]))}}),Xo=fD,uD=e.defineComponent({name:"Clock",__name:"clock",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"}),e.createElementVNode("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"}),e.createElementVNode("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32"})]))}}),Sy=uD,pD=e.defineComponent({name:"Close",__name:"close",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),Hn=pD,mD=e.defineComponent({name:"DArrowLeft",__name:"d-arrow-left",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.592 30.592 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.672l331.648-340.224zm256 0a29.12 29.12 0 0 1 41.728 0 30.592 30.592 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.592 30.592 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.672l331.648-340.224z"})]))}}),nl=mD,hD=e.defineComponent({name:"DArrowRight",__name:"d-arrow-right",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.592 30.592 0 0 1 0-42.752L764.736 512 452.864 192a30.592 30.592 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.592 30.592 0 0 1 0-42.752L508.736 512 196.864 192a30.592 30.592 0 0 1 0-42.688z"})]))}}),ol=hD,gD=e.defineComponent({name:"Delete",__name:"delete",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),yD=gD,bD=e.defineComponent({name:"Document",__name:"document",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),CD=bD,wD=e.defineComponent({name:"FullScreen",__name:"full-screen",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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-64l192-.192zm0 831.872-192-.192a32 32 0 0 1 0-64l192 .192V672a32 32 0 1 1 64 0v256h-64z"})]))}}),kD=wD,SD=e.defineComponent({name:"Hide",__name:"hide",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4-6.4-6.4-12.8-9.6-22.4-9.6-9.6 0-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 176C44.8 438.4 0 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.4 0 9.6 3.2 16 9.6 22.4 6.4 6.4 12.8 9.6 22.4 9.6 9.6 0 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4Zm-646.4 528c-76.8-70.4-128-128-153.6-172.8 28.8-48 80-105.6 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.4Zm140.8-96c-12.8-22.4-19.2-48-19.2-76.8 0-44.8 16-83.2 48-112 32-28.8 67.2-48 112-48 28.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.6-28.8 48-80 105.6-153.6 172.8-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-176C979.199 585.6 1024 528 1024 512s-48.001-73.6-134.401-176Z"}),e.createElementVNode("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 112-32 28.8-67.2 48-112 48Z"})]))}}),ED=SD,ND=e.defineComponent({name:"InfoFilled",__name:"info-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.992 12.992 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"})]))}}),jd=ND,_D=e.defineComponent({name:"Loading",__name:"loading",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.248zm452.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.248zM828.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 0z"})]))}}),Zo=_D,BD=e.defineComponent({name:"Minus",__name:"minus",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64"})]))}}),$D=BD,TD=e.defineComponent({name:"MoreFilled",__name:"more-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),Ey=TD,vD=e.defineComponent({name:"More",__name:"more",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),VD=vD,MD=e.defineComponent({name:"PictureFilled",__name:"picture-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),ID=MD,PD=e.defineComponent({name:"Plus",__name:"plus",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),Ny=PD,RD=e.defineComponent({name:"QuestionFilled",__name:"question-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.592 0-42.944-14.08-76.736-42.24-101.376-28.16-25.344-65.472-37.312-111.232-37.312zm-12.672 406.208a54.272 54.272 0 0 0-38.72 14.784 49.408 49.408 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.848 54.848 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.968 51.968 0 0 0-15.488-38.016 55.936 55.936 0 0 0-39.424-14.784z"})]))}}),OD=RD,AD=e.defineComponent({name:"RefreshLeft",__name:"refresh-left",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),zD=AD,DD=e.defineComponent({name:"RefreshRight",__name:"refresh-right",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.88z"})]))}}),LD=DD,xD=e.defineComponent({name:"ScaleToOriginal",__name:"scale-to-original",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 0 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118zm-361.412 0a30.118 30.118 0 0 0-30.118 30.118v301.177a30.118 30.118 0 1 0 60.236 0V331.294a30.118 30.118 0 0 0-30.118-30.118M512 361.412a30.118 30.118 0 0 0-30.118 30.117v30.118a30.118 30.118 0 0 0 60.236 0V391.53A30.118 30.118 0 0 0 512 361.412M512 512a30.118 30.118 0 0 0-30.118 30.118v30.117a30.118 30.118 0 0 0 60.236 0v-30.117A30.118 30.118 0 0 0 512 512"})]))}}),FD=xD,HD=e.defineComponent({name:"Search",__name:"search",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),KD=HD,WD=e.defineComponent({name:"SortDown",__name:"sort-down",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),jD=WD,UD=e.defineComponent({name:"SortUp",__name:"sort-up",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),GD=UD,qD=e.defineComponent({name:"StarFilled",__name:"star-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M283.84 867.84 512 747.776l228.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.72z"})]))}}),vs=qD,YD=e.defineComponent({name:"Star",__name:"star",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),XD=YD,ZD=e.defineComponent({name:"SuccessFilled",__name:"success-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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.272 38.272 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),_y=ZD,JD=e.defineComponent({name:"View",__name:"view",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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-288zm0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.192 160.192 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}}),QD=JD,eL=e.defineComponent({name:"WarningFilled",__name:"warning-filled",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.432 58.432 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.432 58.432 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"})]))}}),Vs=eL,tL=e.defineComponent({name:"ZoomIn",__name:"zoom-in",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),By=tL,nL=e.defineComponent({name:"ZoomOut",__name:"zoom-out",setup(t){return(n,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("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"})]))}}),oL=nL;/*! Element Plus Icons Vue v2.3.1 */const $y="__epPropKey",W=t=>t,rL=t=>nt(t)&&!!t[$y],Kn=(t,n)=>{if(!nt(t)||rL(t))return t;const{values:o,required:r,default:l,type:a,validator:s}=t,c={type:a,required:!!r,validator:o||s?f=>{let u=!1,d=[];if(o&&(d=Array.from(o),Lt(t,"default")&&d.push(l),u||(u=d.includes(f))),s&&(u||(u=s(f))),!u&&d.length>0){const p=[...new Set(d)].map(h=>JSON.stringify(h)).join(", ");e.warn(`Invalid prop: validation failed${n?` for prop "${n}"`:""}. Expected one of [${p}], got value ${JSON.stringify(f)}.`)}return u}:void 0,[$y]:!0};return Lt(t,"default")&&(c.default=l),c},le=t=>Ql(Object.entries(t).map(([n,o])=>[n,Kn(o,n)])),ot=W([String,Object,Function]),Ty={Close:Hn},Ud={Close:Hn,SuccessFilled:_y,InfoFilled:jd,WarningFilled:Vs,CircleCloseFilled:Wd},Jo={success:_y,warning:Vs,error:Wd,info:jd},Gd={validating:Zo,success:Kd,error:Xo},Me=(t,n)=>{if(t.install=o=>{for(const r of[t,...Object.values(n!=null?n:{})])o.component(r.name,r)},n)for(const[o,r]of Object.entries(n))t[o]=r;return t},vy=(t,n)=>(t.install=o=>{t._context=o._context,o.config.globalProperties[n]=t},t),lL=(t,n)=>(t.install=o=>{o.directive(n,t)},t),ht=t=>(t.install=st,t),Ms=(...t)=>n=>{t.forEach(o=>{qe(o)?o(n):o.value=n})},pe={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"},Vy=["year","month","date","dates","week","datetime","datetimerange","daterange","monthrange"],Is=["sun","mon","tue","wed","thu","fri","sat"],Ie="update:modelValue",at="change",qt="input",qd=Symbol("INSTALLED_KEY"),Wn=["","default","small","large"],My={large:40,default:32,small:24},aL=t=>My[t||"default"],Yd=t=>["",...Wn].includes(t);var In=(t=>(t[t.TEXT=1]="TEXT",t[t.CLASS=2]="CLASS",t[t.STYLE=4]="STYLE",t[t.PROPS=8]="PROPS",t[t.FULL_PROPS=16]="FULL_PROPS",t[t.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",t[t.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",t[t.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",t[t.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",t[t.NEED_PATCH=512]="NEED_PATCH",t[t.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",t[t.HOISTED=-1]="HOISTED",t[t.BAIL=-2]="BAIL",t))(In||{});function Xd(t){return e.isVNode(t)&&t.type===e.Fragment}function sL(t){return e.isVNode(t)&&t.type===e.Comment}function iL(t){return e.isVNode(t)&&!Xd(t)&&!sL(t)}const cL=t=>{if(!e.isVNode(t))return{};const n=t.props||{},o=(e.isVNode(t.type)?t.type.props:void 0)||{},r={};return Object.keys(o).forEach(l=>{Lt(o[l],"default")&&(r[l]=o[l].default)}),Object.keys(n).forEach(l=>{r[Hm(l)]=n[l]}),r},dL=t=>{if(!Re(t)||t.length>1)throw new Error("expect to receive a single Vue element child");return t[0]},Er=t=>{const n=Re(t)?t:[t],o=[];return n.forEach(r=>{var l;Re(r)?o.push(...Er(r)):e.isVNode(r)&&Re(r.children)?o.push(...Er(r.children)):(o.push(r),e.isVNode(r)&&((l=r.component)==null?void 0:l.subTree)&&o.push(...Er(r.component.subTree)))}),o},Iy=t=>[...new Set(t)],_o=t=>!t&&t!==0?[]:Array.isArray(t)?t:[t],Ps=t=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(t),rl=t=>He?window.requestAnimationFrame(t):setTimeout(t,16),Rs=t=>He?window.cancelAnimationFrame(t):clearTimeout(t),Os=()=>Math.floor(Math.random()*1e4),ut=t=>t,fL=["class","style"],uL=/^on[A-Z]/,As=(t={})=>{const{excludeListeners:n=!1,excludeKeys:o}=t,r=e.computed(()=>((o==null?void 0:o.value)||[]).concat(fL)),l=e.getCurrentInstance();return l?e.computed(()=>{var a;return Ql(Object.entries((a=l.proxy)==null?void 0:a.$attrs).filter(([s])=>!r.value.includes(s)&&!(n&&uL.test(s))))}):e.computed(()=>({}))},jn=({from:t,replacement:n,scope:o,version:r,ref:l,type:a="API"},s)=>{e.watch(()=>e.unref(s),i=>{},{immediate:!0})},Zd=(t,n,o)=>{let r={offsetX:0,offsetY:0};const l=i=>{const c=i.clientX,f=i.clientY,{offsetX:u,offsetY:d}=r,p=t.value.getBoundingClientRect(),h=p.left,g=p.top,m=p.width,b=p.height,y=document.documentElement.clientWidth,C=document.documentElement.clientHeight,k=-h+u,w=-g+d,E=y-h-m+u,S=C-g-b+d,_=M=>{const P=Math.min(Math.max(u+M.clientX-c,k),E),T=Math.min(Math.max(d+M.clientY-f,w),S);r={offsetX:P,offsetY:T},t.value&&(t.value.style.transform=`translate(${kt(P)}, ${kt(T)})`)},B=()=>{document.removeEventListener("mousemove",_),document.removeEventListener("mouseup",B)};document.addEventListener("mousemove",_),document.addEventListener("mouseup",B)},a=()=>{n.value&&t.value&&n.value.addEventListener("mousedown",l)},s=()=>{n.value&&t.value&&n.value.removeEventListener("mousedown",l)};e.onMounted(()=>{e.watchEffect(()=>{o.value?a():s()})}),e.onBeforeUnmount(()=>{s()})},pL=t=>({focus:()=>{var n,o;(o=(n=t.value)==null?void 0:n.focus)==null||o.call(n)}});var mL={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new 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",week:"week",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"},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"},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"}}};const Py=t=>(n,o)=>Ry(n,o,e.unref(t)),Ry=(t,n,o)=>ct(o,t,t).replace(/\{(\w+)\}/g,(r,l)=>{var a;return`${(a=n==null?void 0:n[l])!=null?a:`{${l}}`}`}),Oy=t=>{const n=e.computed(()=>e.unref(t).name),o=e.isRef(t)?t:e.ref(t);return{lang:n,locale:o,t:Py(t)}},Jd=Symbol("localeContextKey"),Ke=t=>{const n=t||e.inject(Jd,e.ref());return Oy(e.computed(()=>n.value||mL))};let hL;function gL(t,n=hL){n&&n.active&&n.effects.push(t)}const yL=t=>{const n=new Set(t);return n.w=0,n.n=0,n},Ay=t=>(t.w&Qo)>0,zy=t=>(t.n&Qo)>0,bL=({deps:t})=>{if(t.length)for(let n=0;n{const{deps:n}=t;if(n.length){let o=0;for(let r=0;r{this._dirty||(this._dirty=!0,NL(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!l,this.__v_isReadonly=r}get value(){const n=Ds(this);return EL(n),(n._dirty||!n._cacheable)&&(n._dirty=!1,n._value=n.effect.run()),n._value}set value(n){this._setter(n)}}function BL(t,n,o=!1){let r,l;const a=qe(t);return a?(r=t,l=st):(r=t.get,l=t.set),new _L(r,l,a||!l,o)}const ll="el",$L="is-",Nr=(t,n,o,r,l)=>{let a=`${t}-${n}`;return o&&(a+=`-${o}`),r&&(a+=`__${r}`),l&&(a+=`--${l}`),a},ef=Symbol("namespaceContextKey"),Ls=t=>{const n=t||(e.getCurrentInstance()?e.inject(ef,e.ref(ll)):e.ref(ll));return e.computed(()=>e.unref(n)||ll)},Q=(t,n)=>{const o=Ls(n);return{namespace:o,b:(m="")=>Nr(o.value,t,m,"",""),e:m=>m?Nr(o.value,t,"",m,""):"",m:m=>m?Nr(o.value,t,"","",m):"",be:(m,b)=>m&&b?Nr(o.value,t,m,b,""):"",em:(m,b)=>m&&b?Nr(o.value,t,"",m,b):"",bm:(m,b)=>m&&b?Nr(o.value,t,m,"",b):"",bem:(m,b,y)=>m&&b&&y?Nr(o.value,t,m,b,y):"",is:(m,...b)=>{const y=b.length>=1?b[0]:!0;return m&&y?`${$L}${m}`:""},cssVar:m=>{const b={};for(const y in m)m[y]&&(b[`--${o.value}-${y}`]=m[y]);return b},cssVarName:m=>`--${o.value}-${m}`,cssVarBlock:m=>{const b={};for(const y in m)m[y]&&(b[`--${o.value}-${t}-${y}`]=m[y]);return b},cssVarBlockName:m=>`--${o.value}-${t}-${m}`}},tf=(t,n={})=>{e.isRef(t)||vt("[useLockscreen]","You need to pass a ref param to this function");const o=n.ns||Q("popup"),r=BL(()=>o.bm("parent","hidden"));if(!He||Fn(document.body,r.value))return;let l=0,a=!1,s="0";const i=()=>{setTimeout(()=>{un(document==null?void 0:document.body,r.value),a&&document&&(document.body.style.width=s)},200)};e.watch(t,c=>{if(!c){i();return}a=!Fn(document.body,r.value),a&&(s=document.body.style.width),l=Cy(o.namespace.value);const f=document.documentElement.clientHeight0&&(f||u==="scroll")&&a&&(document.body.style.width=`calc(100% - ${l}px)`),so(document.body,r.value)}),e.onScopeDispose(()=>i())},al=[],TL=t=>{al.length!==0&&t.code===pe.esc&&(t.stopPropagation(),al[al.length-1].handleClose())},vL=(t,n)=>{e.watch(n,o=>{o?al.push(t):al.splice(al.indexOf(t),1)})};He&&rt(document,"keydown",TL);const VL=Kn({type:W(Boolean),default:null}),ML=Kn({type:W(Function)}),nf=t=>{const n=`update:${t}`,o=`onUpdate:${t}`,r=[n],l={[t]:VL,[o]:ML};return{useModelToggle:({indicator:s,toggleReason:i,shouldHideWhenRouteChanges:c,shouldProceed:f,onShow:u,onHide:d})=>{const p=e.getCurrentInstance(),{emit:h}=p,g=p.props,m=e.computed(()=>qe(g[o])),b=e.computed(()=>g[t]===null),y=_=>{s.value!==!0&&(s.value=!0,i&&(i.value=_),qe(u)&&u(_))},C=_=>{s.value!==!1&&(s.value=!1,i&&(i.value=_),qe(d)&&d(_))},k=_=>{if(g.disabled===!0||qe(f)&&!f())return;const B=m.value&&He;B&&h(n,!0),(b.value||!B)&&y(_)},w=_=>{if(g.disabled===!0||!He)return;const B=m.value&&He;B&&h(n,!1),(b.value||!B)&&C(_)},E=_=>{!Tt(_)||(g.disabled&&_?m.value&&h(n,!1):s.value!==_&&(_?y():C()))},S=()=>{s.value?w():k()};return e.watch(()=>g[t],E),c&&p.appContext.config.globalProperties.$route!==void 0&&e.watch(()=>({...p.proxy.$route}),()=>{c.value&&s.value&&w()}),e.onMounted(()=>{E(g[t])}),{hide:w,show:k,toggle:S,hasUpdateHandler:m}},useModelToggleProps:l,useModelToggleEmits:r}},{useModelToggle:IL,useModelToggleProps:PL,useModelToggleEmits:RL}=nf("modelValue"),OL=(t,n,o)=>{const r=a=>{o(a)&&a.stopImmediatePropagation()};let l;e.watch(()=>t.value,a=>{a?l=rt(document,n,r,!0):l==null||l()},{immediate:!0})},of=t=>{const n=e.getCurrentInstance();return e.computed(()=>{var o,r;return(r=(o=n==null?void 0:n.proxy)==null?void 0:o.$props)==null?void 0:r[t]})};var pn="top",Pn="bottom",Rn="right",mn="left",rf="auto",sa=[pn,Pn,Rn,mn],sl="start",ia="end",AL="clippingParents",xy="viewport",ca="popper",zL="reference",Fy=sa.reduce(function(t,n){return t.concat([n+"-"+sl,n+"-"+ia])},[]),_r=[].concat(sa,[rf]).reduce(function(t,n){return t.concat([n,n+"-"+sl,n+"-"+ia])},[]),DL="beforeRead",LL="read",xL="afterRead",FL="beforeMain",HL="main",KL="afterMain",WL="beforeWrite",jL="write",UL="afterWrite",GL=[DL,LL,xL,FL,HL,KL,WL,jL,UL];function co(t){return t?(t.nodeName||"").toLowerCase():null}function Un(t){if(t==null)return window;if(t.toString()!=="[object Window]"){var n=t.ownerDocument;return n&&n.defaultView||window}return t}function il(t){var n=Un(t).Element;return t instanceof n||t instanceof Element}function On(t){var n=Un(t).HTMLElement;return t instanceof n||t instanceof HTMLElement}function lf(t){if(typeof ShadowRoot=="undefined")return!1;var n=Un(t).ShadowRoot;return t instanceof n||t instanceof ShadowRoot}function qL(t){var n=t.state;Object.keys(n.elements).forEach(function(o){var r=n.styles[o]||{},l=n.attributes[o]||{},a=n.elements[o];!On(a)||!co(a)||(Object.assign(a.style,r),Object.keys(l).forEach(function(s){var i=l[s];i===!1?a.removeAttribute(s):a.setAttribute(s,i===!0?"":i)}))})}function YL(t){var n=t.state,o={popper:{position:n.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(n.elements.popper.style,o.popper),n.styles=o,n.elements.arrow&&Object.assign(n.elements.arrow.style,o.arrow),function(){Object.keys(n.elements).forEach(function(r){var l=n.elements[r],a=n.attributes[r]||{},s=Object.keys(n.styles.hasOwnProperty(r)?n.styles[r]:o[r]),i=s.reduce(function(c,f){return c[f]="",c},{});!On(l)||!co(l)||(Object.assign(l.style,i),Object.keys(a).forEach(function(c){l.removeAttribute(c)}))})}}var Hy={name:"applyStyles",enabled:!0,phase:"write",fn:qL,effect:YL,requires:["computeStyles"]};function fo(t){return t.split("-")[0]}var Br=Math.max,xs=Math.min,cl=Math.round;function dl(t,n){n===void 0&&(n=!1);var o=t.getBoundingClientRect(),r=1,l=1;if(On(t)&&n){var a=t.offsetHeight,s=t.offsetWidth;s>0&&(r=cl(o.width)/s||1),a>0&&(l=cl(o.height)/a||1)}return{width:o.width/r,height:o.height/l,top:o.top/l,right:o.right/r,bottom:o.bottom/l,left:o.left/r,x:o.left/r,y:o.top/l}}function af(t){var n=dl(t),o=t.offsetWidth,r=t.offsetHeight;return Math.abs(n.width-o)<=1&&(o=n.width),Math.abs(n.height-r)<=1&&(r=n.height),{x:t.offsetLeft,y:t.offsetTop,width:o,height:r}}function Ky(t,n){var o=n.getRootNode&&n.getRootNode();if(t.contains(n))return!0;if(o&&lf(o)){var r=n;do{if(r&&t.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function Bo(t){return Un(t).getComputedStyle(t)}function XL(t){return["table","td","th"].indexOf(co(t))>=0}function er(t){return((il(t)?t.ownerDocument:t.document)||window.document).documentElement}function Fs(t){return co(t)==="html"?t:t.assignedSlot||t.parentNode||(lf(t)?t.host:null)||er(t)}function Wy(t){return!On(t)||Bo(t).position==="fixed"?null:t.offsetParent}function ZL(t){var n=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,o=navigator.userAgent.indexOf("Trident")!==-1;if(o&&On(t)){var r=Bo(t);if(r.position==="fixed")return null}var l=Fs(t);for(lf(l)&&(l=l.host);On(l)&&["html","body"].indexOf(co(l))<0;){var a=Bo(l);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||n&&a.willChange==="filter"||n&&a.filter&&a.filter!=="none")return l;l=l.parentNode}return null}function da(t){for(var n=Un(t),o=Wy(t);o&&XL(o)&&Bo(o).position==="static";)o=Wy(o);return o&&(co(o)==="html"||co(o)==="body"&&Bo(o).position==="static")?n:o||ZL(t)||n}function sf(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function fa(t,n,o){return Br(t,xs(n,o))}function JL(t,n,o){var r=fa(t,n,o);return r>o?o:r}function jy(){return{top:0,right:0,bottom:0,left:0}}function Uy(t){return Object.assign({},jy(),t)}function Gy(t,n){return n.reduce(function(o,r){return o[r]=t,o},{})}var QL=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,Uy(typeof t!="number"?t:Gy(t,sa))};function ex(t){var n,o=t.state,r=t.name,l=t.options,a=o.elements.arrow,s=o.modifiersData.popperOffsets,i=fo(o.placement),c=sf(i),f=[mn,Rn].indexOf(i)>=0,u=f?"height":"width";if(!(!a||!s)){var d=QL(l.padding,o),p=af(a),h=c==="y"?pn:mn,g=c==="y"?Pn:Rn,m=o.rects.reference[u]+o.rects.reference[c]-s[c]-o.rects.popper[u],b=s[c]-o.rects.reference[c],y=da(a),C=y?c==="y"?y.clientHeight||0:y.clientWidth||0:0,k=m/2-b/2,w=d[h],E=C-p[u]-d[g],S=C/2-p[u]/2+k,_=fa(w,S,E),B=c;o.modifiersData[r]=(n={},n[B]=_,n.centerOffset=_-S,n)}}function tx(t){var n=t.state,o=t.options,r=o.element,l=r===void 0?"[data-popper-arrow]":r;l!=null&&(typeof l=="string"&&(l=n.elements.popper.querySelector(l),!l)||!Ky(n.elements.popper,l)||(n.elements.arrow=l))}var nx={name:"arrow",enabled:!0,phase:"main",fn:ex,effect:tx,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function fl(t){return t.split("-")[1]}var ox={top:"auto",right:"auto",bottom:"auto",left:"auto"};function rx(t){var n=t.x,o=t.y,r=window,l=r.devicePixelRatio||1;return{x:cl(n*l)/l||0,y:cl(o*l)/l||0}}function qy(t){var n,o=t.popper,r=t.popperRect,l=t.placement,a=t.variation,s=t.offsets,i=t.position,c=t.gpuAcceleration,f=t.adaptive,u=t.roundOffsets,d=t.isFixed,p=s.x,h=p===void 0?0:p,g=s.y,m=g===void 0?0:g,b=typeof u=="function"?u({x:h,y:m}):{x:h,y:m};h=b.x,m=b.y;var y=s.hasOwnProperty("x"),C=s.hasOwnProperty("y"),k=mn,w=pn,E=window;if(f){var S=da(o),_="clientHeight",B="clientWidth";if(S===Un(o)&&(S=er(o),Bo(S).position!=="static"&&i==="absolute"&&(_="scrollHeight",B="scrollWidth")),S=S,l===pn||(l===mn||l===Rn)&&a===ia){w=Pn;var M=d&&S===E&&E.visualViewport?E.visualViewport.height:S[_];m-=M-r.height,m*=c?1:-1}if(l===mn||(l===pn||l===Pn)&&a===ia){k=Rn;var P=d&&S===E&&E.visualViewport?E.visualViewport.width:S[B];h-=P-r.width,h*=c?1:-1}}var T=Object.assign({position:i},f&&ox),I=u===!0?rx({x:h,y:m}):{x:h,y:m};if(h=I.x,m=I.y,c){var v;return Object.assign({},T,(v={},v[w]=C?"0":"",v[k]=y?"0":"",v.transform=(E.devicePixelRatio||1)<=1?"translate("+h+"px, "+m+"px)":"translate3d("+h+"px, "+m+"px, 0)",v))}return Object.assign({},T,(n={},n[w]=C?m+"px":"",n[k]=y?h+"px":"",n.transform="",n))}function lx(t){var n=t.state,o=t.options,r=o.gpuAcceleration,l=r===void 0?!0:r,a=o.adaptive,s=a===void 0?!0:a,i=o.roundOffsets,c=i===void 0?!0:i,f={placement:fo(n.placement),variation:fl(n.placement),popper:n.elements.popper,popperRect:n.rects.popper,gpuAcceleration:l,isFixed:n.options.strategy==="fixed"};n.modifiersData.popperOffsets!=null&&(n.styles.popper=Object.assign({},n.styles.popper,qy(Object.assign({},f,{offsets:n.modifiersData.popperOffsets,position:n.options.strategy,adaptive:s,roundOffsets:c})))),n.modifiersData.arrow!=null&&(n.styles.arrow=Object.assign({},n.styles.arrow,qy(Object.assign({},f,{offsets:n.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:c})))),n.attributes.popper=Object.assign({},n.attributes.popper,{"data-popper-placement":n.placement})}var Yy={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:lx,data:{}},Hs={passive:!0};function ax(t){var n=t.state,o=t.instance,r=t.options,l=r.scroll,a=l===void 0?!0:l,s=r.resize,i=s===void 0?!0:s,c=Un(n.elements.popper),f=[].concat(n.scrollParents.reference,n.scrollParents.popper);return a&&f.forEach(function(u){u.addEventListener("scroll",o.update,Hs)}),i&&c.addEventListener("resize",o.update,Hs),function(){a&&f.forEach(function(u){u.removeEventListener("scroll",o.update,Hs)}),i&&c.removeEventListener("resize",o.update,Hs)}}var Xy={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:ax,data:{}},sx={left:"right",right:"left",bottom:"top",top:"bottom"};function Ks(t){return t.replace(/left|right|bottom|top/g,function(n){return sx[n]})}var ix={start:"end",end:"start"};function Zy(t){return t.replace(/start|end/g,function(n){return ix[n]})}function cf(t){var n=Un(t),o=n.pageXOffset,r=n.pageYOffset;return{scrollLeft:o,scrollTop:r}}function df(t){return dl(er(t)).left+cf(t).scrollLeft}function cx(t){var n=Un(t),o=er(t),r=n.visualViewport,l=o.clientWidth,a=o.clientHeight,s=0,i=0;return r&&(l=r.width,a=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=r.offsetLeft,i=r.offsetTop)),{width:l,height:a,x:s+df(t),y:i}}function dx(t){var n,o=er(t),r=cf(t),l=(n=t.ownerDocument)==null?void 0:n.body,a=Br(o.scrollWidth,o.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),s=Br(o.scrollHeight,o.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0),i=-r.scrollLeft+df(t),c=-r.scrollTop;return Bo(l||o).direction==="rtl"&&(i+=Br(o.clientWidth,l?l.clientWidth:0)-a),{width:a,height:s,x:i,y:c}}function ff(t){var n=Bo(t),o=n.overflow,r=n.overflowX,l=n.overflowY;return/auto|scroll|overlay|hidden/.test(o+l+r)}function Jy(t){return["html","body","#document"].indexOf(co(t))>=0?t.ownerDocument.body:On(t)&&ff(t)?t:Jy(Fs(t))}function ua(t,n){var o;n===void 0&&(n=[]);var r=Jy(t),l=r===((o=t.ownerDocument)==null?void 0:o.body),a=Un(r),s=l?[a].concat(a.visualViewport||[],ff(r)?r:[]):r,i=n.concat(s);return l?i:i.concat(ua(Fs(s)))}function uf(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function fx(t){var n=dl(t);return n.top=n.top+t.clientTop,n.left=n.left+t.clientLeft,n.bottom=n.top+t.clientHeight,n.right=n.left+t.clientWidth,n.width=t.clientWidth,n.height=t.clientHeight,n.x=n.left,n.y=n.top,n}function Qy(t,n){return n===xy?uf(cx(t)):il(n)?fx(n):uf(dx(er(t)))}function ux(t){var n=ua(Fs(t)),o=["absolute","fixed"].indexOf(Bo(t).position)>=0,r=o&&On(t)?da(t):t;return il(r)?n.filter(function(l){return il(l)&&Ky(l,r)&&co(l)!=="body"}):[]}function px(t,n,o){var r=n==="clippingParents"?ux(t):[].concat(n),l=[].concat(r,[o]),a=l[0],s=l.reduce(function(i,c){var f=Qy(t,c);return i.top=Br(f.top,i.top),i.right=xs(f.right,i.right),i.bottom=xs(f.bottom,i.bottom),i.left=Br(f.left,i.left),i},Qy(t,a));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function eb(t){var n=t.reference,o=t.element,r=t.placement,l=r?fo(r):null,a=r?fl(r):null,s=n.x+n.width/2-o.width/2,i=n.y+n.height/2-o.height/2,c;switch(l){case pn:c={x:s,y:n.y-o.height};break;case Pn:c={x:s,y:n.y+n.height};break;case Rn:c={x:n.x+n.width,y:i};break;case mn:c={x:n.x-o.width,y:i};break;default:c={x:n.x,y:n.y}}var f=l?sf(l):null;if(f!=null){var u=f==="y"?"height":"width";switch(a){case sl:c[f]=c[f]-(n[u]/2-o[u]/2);break;case ia:c[f]=c[f]+(n[u]/2-o[u]/2);break}}return c}function pa(t,n){n===void 0&&(n={});var o=n,r=o.placement,l=r===void 0?t.placement:r,a=o.boundary,s=a===void 0?AL:a,i=o.rootBoundary,c=i===void 0?xy:i,f=o.elementContext,u=f===void 0?ca:f,d=o.altBoundary,p=d===void 0?!1:d,h=o.padding,g=h===void 0?0:h,m=Uy(typeof g!="number"?g:Gy(g,sa)),b=u===ca?zL:ca,y=t.rects.popper,C=t.elements[p?b:u],k=px(il(C)?C:C.contextElement||er(t.elements.popper),s,c),w=dl(t.elements.reference),E=eb({reference:w,element:y,strategy:"absolute",placement:l}),S=uf(Object.assign({},y,E)),_=u===ca?S:w,B={top:k.top-_.top+m.top,bottom:_.bottom-k.bottom+m.bottom,left:k.left-_.left+m.left,right:_.right-k.right+m.right},M=t.modifiersData.offset;if(u===ca&&M){var P=M[l];Object.keys(B).forEach(function(T){var I=[Rn,Pn].indexOf(T)>=0?1:-1,v=[pn,Pn].indexOf(T)>=0?"y":"x";B[T]+=P[v]*I})}return B}function mx(t,n){n===void 0&&(n={});var o=n,r=o.placement,l=o.boundary,a=o.rootBoundary,s=o.padding,i=o.flipVariations,c=o.allowedAutoPlacements,f=c===void 0?_r:c,u=fl(r),d=u?i?Fy:Fy.filter(function(g){return fl(g)===u}):sa,p=d.filter(function(g){return f.indexOf(g)>=0});p.length===0&&(p=d);var h=p.reduce(function(g,m){return g[m]=pa(t,{placement:m,boundary:l,rootBoundary:a,padding:s})[fo(m)],g},{});return Object.keys(h).sort(function(g,m){return h[g]-h[m]})}function hx(t){if(fo(t)===rf)return[];var n=Ks(t);return[Zy(t),n,Zy(n)]}function gx(t){var n=t.state,o=t.options,r=t.name;if(!n.modifiersData[r]._skip){for(var l=o.mainAxis,a=l===void 0?!0:l,s=o.altAxis,i=s===void 0?!0:s,c=o.fallbackPlacements,f=o.padding,u=o.boundary,d=o.rootBoundary,p=o.altBoundary,h=o.flipVariations,g=h===void 0?!0:h,m=o.allowedAutoPlacements,b=n.options.placement,y=fo(b),C=y===b,k=c||(C||!g?[Ks(b)]:hx(b)),w=[b].concat(k).reduce(function(q,ne){return q.concat(fo(ne)===rf?mx(n,{placement:ne,boundary:u,rootBoundary:d,padding:f,flipVariations:g,allowedAutoPlacements:m}):ne)},[]),E=n.rects.reference,S=n.rects.popper,_=new Map,B=!0,M=w[0],P=0;P=0,D=O?"width":"height",z=pa(n,{placement:T,boundary:u,rootBoundary:d,altBoundary:p,padding:f}),$=O?v?Rn:mn:v?Pn:pn;E[D]>S[D]&&($=Ks($));var R=Ks($),N=[];if(a&&N.push(z[I]<=0),i&&N.push(z[$]<=0,z[R]<=0),N.every(function(q){return q})){M=T,B=!1;break}_.set(T,N)}if(B)for(var A=g?3:1,x=function(q){var ne=w.find(function(Y){var Z=_.get(Y);if(Z)return Z.slice(0,q).every(function(U){return U})});if(ne)return M=ne,"break"},H=A;H>0;H--){var K=x(H);if(K==="break")break}n.placement!==M&&(n.modifiersData[r]._skip=!0,n.placement=M,n.reset=!0)}}var yx={name:"flip",enabled:!0,phase:"main",fn:gx,requiresIfExists:["offset"],data:{_skip:!1}};function tb(t,n,o){return o===void 0&&(o={x:0,y:0}),{top:t.top-n.height-o.y,right:t.right-n.width+o.x,bottom:t.bottom-n.height+o.y,left:t.left-n.width-o.x}}function nb(t){return[pn,Rn,Pn,mn].some(function(n){return t[n]>=0})}function bx(t){var n=t.state,o=t.name,r=n.rects.reference,l=n.rects.popper,a=n.modifiersData.preventOverflow,s=pa(n,{elementContext:"reference"}),i=pa(n,{altBoundary:!0}),c=tb(s,r),f=tb(i,l,a),u=nb(c),d=nb(f);n.modifiersData[o]={referenceClippingOffsets:c,popperEscapeOffsets:f,isReferenceHidden:u,hasPopperEscaped:d},n.attributes.popper=Object.assign({},n.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var Cx={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:bx};function wx(t,n,o){var r=fo(t),l=[mn,pn].indexOf(r)>=0?-1:1,a=typeof o=="function"?o(Object.assign({},n,{placement:t})):o,s=a[0],i=a[1];return s=s||0,i=(i||0)*l,[mn,Rn].indexOf(r)>=0?{x:i,y:s}:{x:s,y:i}}function kx(t){var n=t.state,o=t.options,r=t.name,l=o.offset,a=l===void 0?[0,0]:l,s=_r.reduce(function(u,d){return u[d]=wx(d,n.rects,a),u},{}),i=s[n.placement],c=i.x,f=i.y;n.modifiersData.popperOffsets!=null&&(n.modifiersData.popperOffsets.x+=c,n.modifiersData.popperOffsets.y+=f),n.modifiersData[r]=s}var Sx={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:kx};function Ex(t){var n=t.state,o=t.name;n.modifiersData[o]=eb({reference:n.rects.reference,element:n.rects.popper,strategy:"absolute",placement:n.placement})}var ob={name:"popperOffsets",enabled:!0,phase:"read",fn:Ex,data:{}};function Nx(t){return t==="x"?"y":"x"}function _x(t){var n=t.state,o=t.options,r=t.name,l=o.mainAxis,a=l===void 0?!0:l,s=o.altAxis,i=s===void 0?!1:s,c=o.boundary,f=o.rootBoundary,u=o.altBoundary,d=o.padding,p=o.tether,h=p===void 0?!0:p,g=o.tetherOffset,m=g===void 0?0:g,b=pa(n,{boundary:c,rootBoundary:f,padding:d,altBoundary:u}),y=fo(n.placement),C=fl(n.placement),k=!C,w=sf(y),E=Nx(w),S=n.modifiersData.popperOffsets,_=n.rects.reference,B=n.rects.popper,M=typeof m=="function"?m(Object.assign({},n.rects,{placement:n.placement})):m,P=typeof M=="number"?{mainAxis:M,altAxis:M}:Object.assign({mainAxis:0,altAxis:0},M),T=n.modifiersData.offset?n.modifiersData.offset[n.placement]:null,I={x:0,y:0};if(S){if(a){var v,O=w==="y"?pn:mn,D=w==="y"?Pn:Rn,z=w==="y"?"height":"width",$=S[w],R=$+b[O],N=$-b[D],A=h?-B[z]/2:0,x=C===sl?_[z]:B[z],H=C===sl?-B[z]:-_[z],K=n.elements.arrow,q=h&&K?af(K):{width:0,height:0},ne=n.modifiersData["arrow#persistent"]?n.modifiersData["arrow#persistent"].padding:jy(),Y=ne[O],Z=ne[D],U=fa(0,_[z],q[z]),re=k?_[z]/2-A-U-Y-P.mainAxis:x-U-Y-P.mainAxis,te=k?-_[z]/2+A+U+Z+P.mainAxis:H+U+Z+P.mainAxis,oe=n.elements.arrow&&da(n.elements.arrow),ie=oe?w==="y"?oe.clientTop||0:oe.clientLeft||0:0,ye=(v=T==null?void 0:T[w])!=null?v:0,Ne=$+re-ye-ie,Te=$+te-ye,Pe=fa(h?xs(R,Ne):R,$,h?Br(N,Te):N);S[w]=Pe,I[w]=Pe-$}if(i){var he,Ce=w==="x"?pn:mn,ge=w==="x"?Pn:Rn,me=S[E],_e=E==="y"?"height":"width",$e=me+b[Ce],Ae=me-b[ge],Oe=[pn,mn].indexOf(y)!==-1,ce=(he=T==null?void 0:T[E])!=null?he:0,Ee=Oe?$e:me-_[_e]-B[_e]-ce+P.altAxis,Le=Oe?me+_[_e]+B[_e]-ce-P.altAxis:Ae,Xe=h&&Oe?JL(Ee,me,Le):fa(h?Ee:$e,me,h?Le:Ae);S[E]=Xe,I[E]=Xe-me}n.modifiersData[r]=I}}var Bx={name:"preventOverflow",enabled:!0,phase:"main",fn:_x,requiresIfExists:["offset"]};function $x(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function Tx(t){return t===Un(t)||!On(t)?cf(t):$x(t)}function vx(t){var n=t.getBoundingClientRect(),o=cl(n.width)/t.offsetWidth||1,r=cl(n.height)/t.offsetHeight||1;return o!==1||r!==1}function Vx(t,n,o){o===void 0&&(o=!1);var r=On(n),l=On(n)&&vx(n),a=er(n),s=dl(t,l),i={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!o)&&((co(n)!=="body"||ff(a))&&(i=Tx(n)),On(n)?(c=dl(n,!0),c.x+=n.clientLeft,c.y+=n.clientTop):a&&(c.x=df(a))),{x:s.left+i.scrollLeft-c.x,y:s.top+i.scrollTop-c.y,width:s.width,height:s.height}}function Mx(t){var n=new Map,o=new Set,r=[];t.forEach(function(a){n.set(a.name,a)});function l(a){o.add(a.name);var s=[].concat(a.requires||[],a.requiresIfExists||[]);s.forEach(function(i){if(!o.has(i)){var c=n.get(i);c&&l(c)}}),r.push(a)}return t.forEach(function(a){o.has(a.name)||l(a)}),r}function Ix(t){var n=Mx(t);return GL.reduce(function(o,r){return o.concat(n.filter(function(l){return l.phase===r}))},[])}function Px(t){var n;return function(){return n||(n=new Promise(function(o){Promise.resolve().then(function(){n=void 0,o(t())})})),n}}function Rx(t){var n=t.reduce(function(o,r){var l=o[r.name];return o[r.name]=l?Object.assign({},l,r,{options:Object.assign({},l.options,r.options),data:Object.assign({},l.data,r.data)}):r,o},{});return Object.keys(n).map(function(o){return n[o]})}var rb={placement:"bottom",modifiers:[],strategy:"absolute"};function lb(){for(var t=arguments.length,n=new Array(t),o=0;o{const r={name:"updateState",enabled:!0,phase:"write",fn:({state:c})=>{const f=zx(c);Object.assign(s.value,f)},requires:["computeStyles"]},l=e.computed(()=>{const{onFirstUpdate:c,placement:f,strategy:u,modifiers:d}=e.unref(o);return{onFirstUpdate:c,placement:f||"bottom",strategy:u||"absolute",modifiers:[...d||[],r,{name:"applyStyles",enabled:!1}]}}),a=e.shallowRef(),s=e.ref({styles:{popper:{position:e.unref(l).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),i=()=>{!a.value||(a.value.destroy(),a.value=void 0)};return e.watch(l,c=>{const f=e.unref(a);f&&f.setOptions(c)},{deep:!0}),e.watch([t,n],([c,f])=>{i(),!(!c||!f)&&(a.value=ab(c,f,e.unref(l)))}),e.onBeforeUnmount(()=>{i()}),{state:e.computed(()=>{var c;return{...((c=e.unref(a))==null?void 0:c.state)||{}}}),styles:e.computed(()=>e.unref(s).styles),attributes:e.computed(()=>e.unref(s).attributes),update:()=>{var c;return(c=e.unref(a))==null?void 0:c.update()},forceUpdate:()=>{var c;return(c=e.unref(a))==null?void 0:c.forceUpdate()},instanceRef:e.computed(()=>e.unref(a))}};function zx(t){const n=Object.keys(t.elements),o=Ql(n.map(l=>[l,t.styles[l]||{}])),r=Ql(n.map(l=>[l,t.attributes[l]]));return{styles:o,attributes:r}}const Ws=t=>{if(!t)return{onClick:st,onMousedown:st,onMouseup:st};let n=!1,o=!1;return{onClick:s=>{n&&o&&t(s),n=o=!1},onMousedown:s=>{n=s.target===s.currentTarget},onMouseup:s=>{o=s.target===s.currentTarget}}},Dx=(t,n)=>{const o=e.ref(!1);if(!He)return{isTeleportVisible:o,showTeleport:st,hideTeleport:st,renderTeleport:st};let r=null;const l=()=>{o.value=!0,r===null&&(r=Gz())},a=()=>{o.value=!1,r!==null&&(qz(r),r=null)},s=()=>n.value!==!0?t():o.value?[e.h(e.Teleport,{to:r},t())]:void 0;return e.onUnmounted(a),{isTeleportVisible:o,showTeleport:l,hideTeleport:a,renderTeleport:s}},ib=(t,n=0)=>{if(n===0)return t;const o=e.ref(!1);let r=0;const l=()=>{r&&clearTimeout(r),r=window.setTimeout(()=>{o.value=t.value},n)};return e.onMounted(l),e.watch(()=>t.value,a=>{a?l():o.value=a}),o};function mf(){let t;const n=(r,l)=>{o(),t=window.setTimeout(r,l)},o=()=>window.clearTimeout(t);return Al(()=>o()),{registerTimeout:n,cancelTimeout:o}}const cb="after-appear",db="after-enter",fb="after-leave",Lx="appear",ub="appear-cancelled",pb="before-enter",mb="before-leave",hb="enter",gb="enter-cancelled",yb="leave",bb="leave-cancelled",xx=[cb,db,fb,Lx,ub,pb,mb,hb,gb,yb,bb],Fx=()=>{const{emit:t}=e.getCurrentInstance();return{onAfterAppear:()=>{t(cb)},onAfterEnter:()=>{t(db)},onAfterLeave:()=>{t(fb)},onAppearCancelled:()=>{t(ub)},onBeforeEnter:()=>{t(pb)},onBeforeLeave:()=>{t(mb)},onEnter:()=>{t(hb)},onEnterCancelled:()=>{t(gb)},onLeave:()=>{t(yb)},onLeaveCancelled:()=>{t(bb)}}},Cb={prefix:Math.floor(Math.random()*1e4),current:0},wb=Symbol("elIdInjection"),hf=()=>e.getCurrentInstance()?e.inject(wb,Cb):Cb,rn=t=>{const n=hf(),o=Ls();return e.computed(()=>e.unref(t)||`${o.value}-id-${n.prefix}-${n.current++}`)};let ul=[];const kb=t=>{const n=t;n.key===pe.esc&&ul.forEach(o=>o(n))},Sb=t=>{e.onMounted(()=>{ul.length===0&&document.addEventListener("keydown",kb),He&&ul.push(t)}),e.onBeforeUnmount(()=>{ul=ul.filter(n=>n!==t),ul.length===0&&He&&document.removeEventListener("keydown",kb)})};let Eb;const gf=()=>{const t=Ls(),n=hf(),o=e.computed(()=>`${t.value}-popper-container-${n.prefix}`),r=e.computed(()=>`#${o.value}`);return{id:o,selector:r}},Hx=t=>{const n=document.createElement("div");return n.id=t,document.body.appendChild(n),n},Nb=()=>{const{id:t,selector:n}=gf();return e.onBeforeMount(()=>{!He||!Eb&&!document.body.querySelector(n.value)&&(Eb=Hx(t.value))}),{id:t,selector:n}},Kx=({indicator:t,intermediateIndicator:n,shouldSetIntermediate:o=()=>!0,beforeShow:r,afterShow:l,afterHide:a,beforeHide:s})=>{e.watch(()=>e.unref(t),i=>{i?(r==null||r(),e.nextTick(()=>{!e.unref(t)||o("show")&&(n.value=!0)})):(s==null||s(),e.nextTick(()=>{e.unref(t)||o("hide")&&(n.value=!1)}))}),e.watch(()=>n.value,i=>{i?l==null||l():a==null||a()})},_b=le({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),yf=({showAfter:t,hideAfter:n,autoClose:o,open:r,close:l})=>{const{registerTimeout:a}=mf(),{registerTimeout:s,cancelTimeout:i}=mf();return{onOpen:u=>{a(()=>{r(u);const d=e.unref(o);be(d)&&d>0&&s(()=>{l(u)},d)},e.unref(t))},onClose:u=>{i(),a(()=>{l(u)},e.unref(n))}}},bf=Symbol("elForwardRef"),Bb=t=>{const n=o=>{t.value=o};e.provide(bf,{setForwardRef:n})},$b=t=>({mounted(n){t(n)},updated(n){t(n)},unmounted(){t(null)}}),Tb=e.ref(0),Cf=2e3,wf=Symbol("zIndexContextKey"),$r=t=>{const n=t||(e.getCurrentInstance()?e.inject(wf,void 0):void 0),o=e.computed(()=>{const a=e.unref(n);return be(a)?a:Cf}),r=e.computed(()=>o.value+Tb.value);return{initialZIndex:o,currentZIndex:r,nextZIndex:()=>(Tb.value++,r.value)}};function kf(t){return t.split("-")[0]}function Sf(t){return t.split("-")[1]}function Ef(t){return["top","bottom"].includes(kf(t))?"x":"y"}function vb(t){return t==="y"?"height":"width"}function Vb(t,n,o){let{reference:r,floating:l}=t;const a=r.x+r.width/2-l.width/2,s=r.y+r.height/2-l.height/2,i=Ef(n),c=vb(i),f=r[c]/2-l[c]/2,u=kf(n),d=i==="x";let p;switch(u){case"top":p={x:a,y:r.y-l.height};break;case"bottom":p={x:a,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:s};break;case"left":p={x:r.x-l.width,y:s};break;default:p={x:r.x,y:r.y}}switch(Sf(n)){case"start":p[i]-=f*(o&&d?-1:1);break;case"end":p[i]+=f*(o&&d?-1:1);break}return p}const Wx=async(t,n,o)=>{const{placement:r="bottom",strategy:l="absolute",middleware:a=[],platform:s}=o,i=await(s.isRTL==null?void 0:s.isRTL(n));if(process.env.NODE_ENV!=="production"&&(s==null&&console.error(["Floating UI: `platform` property was not passed to config. If you","want to use Floating UI on the web, install @floating-ui/dom","instead of the /core package. Otherwise, you can create your own","`platform`: https://floating-ui.com/docs/platform"].join(" ")),a.filter(g=>{let{name:m}=g;return m==="autoPlacement"||m==="flip"}).length>1))throw new Error(["Floating UI: duplicate `flip` and/or `autoPlacement`","middleware detected. This will lead to an infinite loop. Ensure only","one of either has been passed to the `middleware` array."].join(" "));let c=await s.getElementRects({reference:t,floating:n,strategy:l}),{x:f,y:u}=Vb(c,r,i),d=r,p={},h=0;for(let g=0;g50&&console.warn(["Floating UI: The middleware lifecycle appears to be running in an","infinite loop. This is usually caused by a `reset` continually","being returned without a break condition."].join(" ")),w&&h<=50){h++,typeof w=="object"&&(w.placement&&(d=w.placement),w.rects&&(c=w.rects===!0?await s.getElementRects({reference:t,floating:n,strategy:l}):w.rects),{x:f,y:u}=Vb(c,d,i)),g=-1;continue}}return{x:f,y:u,placement:d,strategy:l,middlewareData:p}};function jx(t){return{top:0,right:0,bottom:0,left:0,...t}}function Ux(t){return typeof t!="number"?jx(t):{top:t,right:t,bottom:t,left:t}}function Mb(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}const Gx=Math.min,qx=Math.max;function Yx(t,n,o){return qx(t,Gx(n,o))}const Xx=t=>({name:"arrow",options:t,async fn(n){const{element:o,padding:r=0}=t!=null?t:{},{x:l,y:a,placement:s,rects:i,platform:c}=n;if(o==null)return process.env.NODE_ENV!=="production"&&console.warn("Floating UI: No `element` was passed to the `arrow` middleware."),{};const f=Ux(r),u={x:l,y:a},d=Ef(s),p=Sf(s),h=vb(d),g=await c.getDimensions(o),m=d==="y"?"top":"left",b=d==="y"?"bottom":"right",y=i.reference[h]+i.reference[d]-u[d]-i.floating[h],C=u[d]-i.reference[d],k=await(c.getOffsetParent==null?void 0:c.getOffsetParent(o));let w=k?d==="y"?k.clientHeight||0:k.clientWidth||0:0;w===0&&(w=i.floating[h]);const E=y/2-C/2,S=f[m],_=w-g[h]-f[b],B=w/2-g[h]/2+E,M=Yx(S,B,_),I=(p==="start"?f[m]:f[b])>0&&B!==M&&i.reference[h]<=i.floating[h]?Bn.brand+"/"+n.version).join(" "):navigator.userAgent}function po(t){return t instanceof $o(t).HTMLElement}function pl(t){return t instanceof $o(t).Element}function Qx(t){return t instanceof $o(t).Node}function ml(t){if(typeof ShadowRoot=="undefined")return!1;const n=$o(t).ShadowRoot;return t instanceof n||t instanceof ShadowRoot}function js(t){const{overflow:n,overflowX:o,overflowY:r}=uo(t);return/auto|scroll|overlay|hidden/.test(n+r+o)}function e8(t){return["table","td","th"].includes(To(t))}function Rb(t){const n=/firefox/i.test(Pb()),o=uo(t);return o.transform!=="none"||o.perspective!=="none"||o.contain==="paint"||["transform","perspective"].includes(o.willChange)||n&&o.willChange==="filter"||n&&(o.filter?o.filter!=="none":!1)}function Ob(){return!/^((?!chrome|android).)*safari/i.test(Pb())}const Ab=Math.min,ma=Math.max,Us=Math.round;function Tr(t,n,o){var r,l,a,s;n===void 0&&(n=!1),o===void 0&&(o=!1);const i=t.getBoundingClientRect();let c=1,f=1;n&&po(t)&&(c=t.offsetWidth>0&&Us(i.width)/t.offsetWidth||1,f=t.offsetHeight>0&&Us(i.height)/t.offsetHeight||1);const u=pl(t)?$o(t):window,d=!Ob()&&o,p=(i.left+(d&&(r=(l=u.visualViewport)==null?void 0:l.offsetLeft)!=null?r:0))/c,h=(i.top+(d&&(a=(s=u.visualViewport)==null?void 0:s.offsetTop)!=null?a:0))/f,g=i.width/c,m=i.height/f;return{width:g,height:m,top:h,right:p+g,bottom:h+m,left:p,x:p,y:h}}function tr(t){return((Qx(t)?t.ownerDocument:t.document)||window.document).documentElement}function Gs(t){return pl(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function zb(t){return Tr(tr(t)).left+Gs(t).scrollLeft}function t8(t){const n=Tr(t);return Us(n.width)!==t.offsetWidth||Us(n.height)!==t.offsetHeight}function n8(t,n,o){const r=po(n),l=tr(n),a=Tr(t,r&&t8(n),o==="fixed");let s={scrollLeft:0,scrollTop:0};const i={x:0,y:0};if(r||!r&&o!=="fixed")if((To(n)!=="body"||js(l))&&(s=Gs(n)),po(n)){const c=Tr(n,!0);i.x=c.x+n.clientLeft,i.y=c.y+n.clientTop}else l&&(i.x=zb(l));return{x:a.left+s.scrollLeft-i.x,y:a.top+s.scrollTop-i.y,width:a.width,height:a.height}}function Db(t){return To(t)==="html"?t:t.assignedSlot||t.parentNode||(ml(t)?t.host:null)||tr(t)}function Lb(t){return!po(t)||uo(t).position==="fixed"?null:o8(t)}function o8(t){let{offsetParent:n}=t,o=t,r=!1;for(;o&&o!==n;){const{assignedSlot:l}=o;if(l){let a=l.offsetParent;if(uo(l).display==="contents"){const s=l.hasAttribute("style"),i=l.style.display;l.style.display=uo(o).display,a=l.offsetParent,l.style.display=i,s||l.removeAttribute("style")}o=l,n!==a&&(n=a,r=!0)}else if(ml(o)&&o.host&&r)break;o=ml(o)&&o.host||o.parentNode}return n}function r8(t){let n=Db(t);for(ml(n)&&(n=n.host);po(n)&&!["html","body"].includes(To(n));){if(Rb(n))return n;{const o=n.parentNode;n=ml(o)?o.host:o}}return null}function Nf(t){const n=$o(t);let o=Lb(t);for(;o&&e8(o)&&uo(o).position==="static";)o=Lb(o);return o&&(To(o)==="html"||To(o)==="body"&&uo(o).position==="static"&&!Rb(o))?n:o||r8(t)||n}function xb(t){if(po(t))return{width:t.offsetWidth,height:t.offsetHeight};const n=Tr(t);return{width:n.width,height:n.height}}function l8(t){let{rect:n,offsetParent:o,strategy:r}=t;const l=po(o),a=tr(o);if(o===a)return n;let s={scrollLeft:0,scrollTop:0};const i={x:0,y:0};if((l||!l&&r!=="fixed")&&((To(o)!=="body"||js(a))&&(s=Gs(o)),po(o))){const c=Tr(o,!0);i.x=c.x+o.clientLeft,i.y=c.y+o.clientTop}return{...n,x:n.x-s.scrollLeft+i.x,y:n.y-s.scrollTop+i.y}}function a8(t,n){const o=$o(t),r=tr(t),l=o.visualViewport;let a=r.clientWidth,s=r.clientHeight,i=0,c=0;if(l){a=l.width,s=l.height;const f=Ob();(f||!f&&n==="fixed")&&(i=l.offsetLeft,c=l.offsetTop)}return{width:a,height:s,x:i,y:c}}function s8(t){var n;const o=tr(t),r=Gs(t),l=(n=t.ownerDocument)==null?void 0:n.body,a=ma(o.scrollWidth,o.clientWidth,l?l.scrollWidth:0,l?l.clientWidth:0),s=ma(o.scrollHeight,o.clientHeight,l?l.scrollHeight:0,l?l.clientHeight:0);let i=-r.scrollLeft+zb(t);const c=-r.scrollTop;return uo(l||o).direction==="rtl"&&(i+=ma(o.clientWidth,l?l.clientWidth:0)-a),{width:a,height:s,x:i,y:c}}function Fb(t){const n=Db(t);return["html","body","#document"].includes(To(n))?t.ownerDocument.body:po(n)&&js(n)?n:Fb(n)}function Hb(t,n){var o;n===void 0&&(n=[]);const r=Fb(t),l=r===((o=t.ownerDocument)==null?void 0:o.body),a=$o(r),s=l?[a].concat(a.visualViewport||[],js(r)?r:[]):r,i=n.concat(s);return l?i:i.concat(Hb(s))}function i8(t,n){const o=n.getRootNode==null?void 0:n.getRootNode();if(t.contains(n))return!0;if(o&&ml(o)){let r=n;do{if(r&&t===r)return!0;r=r.parentNode||r.host}while(r)}return!1}function c8(t,n){const o=Tr(t,!1,n==="fixed"),r=o.top+t.clientTop,l=o.left+t.clientLeft;return{top:r,left:l,x:l,y:r,right:l+t.clientWidth,bottom:r+t.clientHeight,width:t.clientWidth,height:t.clientHeight}}function Kb(t,n,o){return n==="viewport"?Mb(a8(t,o)):pl(n)?c8(n,o):Mb(s8(tr(t)))}function d8(t){const n=Hb(t),r=["absolute","fixed"].includes(uo(t).position)&&po(t)?Nf(t):t;return pl(r)?n.filter(l=>pl(l)&&i8(l,r)&&To(l)!=="body"):[]}function f8(t){let{element:n,boundary:o,rootBoundary:r,strategy:l}=t;const s=[...o==="clippingAncestors"?d8(n):[].concat(o),r],i=s[0],c=s.reduce((f,u)=>{const d=Kb(n,u,l);return f.top=ma(d.top,f.top),f.right=Ab(d.right,f.right),f.bottom=Ab(d.bottom,f.bottom),f.left=ma(d.left,f.left),f},Kb(n,i,l));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}const u8={getClippingRect:f8,convertOffsetParentRelativeRectToViewportRelativeRect:l8,isElement:pl,getDimensions:xb,getOffsetParent:Nf,getDocumentElement:tr,getElementRects:t=>{let{reference:n,floating:o,strategy:r}=t;return{reference:n8(n,Nf(o),r),floating:{...xb(o),x:0,y:0}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>uo(t).direction==="rtl"},p8=(t,n,o)=>Wx(t,n,{platform:u8,...o}),m8=le({}),h8=t=>{if(!He)return;if(!t)return t;const n=sn(t);return n||(e.isRef(t)?n:t)},g8=(t,n)=>{const o=t==null?void 0:t[n];return wt(o)?"":`${o}px`},Wb=({middleware:t,placement:n,strategy:o})=>{const r=e.ref(),l=e.ref(),a=e.ref(),s=e.ref(),i=e.ref({}),c={x:a,y:s,placement:n,strategy:o,middlewareData:i},f=async()=>{if(!He)return;const u=h8(r),d=sn(l);if(!u||!d)return;const p=await p8(u,d,{placement:e.unref(n),strategy:e.unref(o),middleware:e.unref(t)});ra(c).forEach(h=>{c[h].value=p[h]})};return e.onMounted(()=>{e.watchEffect(()=>{f()})}),{...c,update:f,referenceRef:r,contentRef:l}},jb=({arrowRef:t,padding:n})=>({name:"arrow",options:{element:t,padding:n},fn(o){const r=e.unref(t);return r?Xx({element:r,padding:n}).fn(o):{}}});function Ub(t){const n=e.ref();function o(){if(t.value==null)return;const{selectionStart:l,selectionEnd:a,value:s}=t.value;if(l==null||a==null)return;const i=s.slice(0,Math.max(0,l)),c=s.slice(Math.max(0,a));n.value={selectionStart:l,selectionEnd:a,value:s,beforeTxt:i,afterTxt:c}}function r(){if(t.value==null||n.value==null)return;const{value:l}=t.value,{beforeTxt:a,afterTxt:s,selectionStart:i}=n.value;if(a==null||s==null||i==null)return;let c=l.length;if(l.endsWith(s))c=l.length-s.length;else if(l.startsWith(a))c=a.length;else{const f=a[i-1],u=l.indexOf(f,i-1);u!==-1&&(c=u+1)}t.value.setSelectionRange(c,c)}return[o,r]}const y8=(t,n,o)=>Er(t.subTree).filter(a=>{var s;return e.isVNode(a)&&((s=a.type)==null?void 0:s.name)===n&&!!a.component}).map(a=>a.component.uid).map(a=>o[a]).filter(a=>!!a),qs=(t,n)=>{const o={},r=e.shallowRef([]);return{children:r,addChild:s=>{o[s.uid]=s,r.value=y8(t,n,o)},removeChild:s=>{delete o[s],r.value=r.value.filter(i=>i.uid!==s)}}},Vt=Kn({type:String,values:Wn,required:!1}),b8={size:Vt},_f=Symbol("size"),Gb=()=>{const t=e.inject(_f,{});return e.computed(()=>e.unref(t.size)||"")};function Bf(t,{afterFocus:n,beforeBlur:o,afterBlur:r}={}){const l=e.getCurrentInstance(),{emit:a}=l,s=e.shallowRef(),i=e.ref(!1),c=d=>{i.value||(i.value=!0,a("focus",d),n==null||n())},f=d=>{var p;(qe(o)?o(d):!1)||d.relatedTarget&&((p=s.value)==null?void 0:p.contains(d.relatedTarget))||(i.value=!1,a("blur",d),r==null||r())},u=()=>{var d;(d=t.value)==null||d.focus()};return e.watch(s,d=>{d&&d.setAttribute("tabindex","-1")}),rt(s,"click",u),{wrapperRef:s,isFocused:i,handleFocus:c,handleBlur:f}}const $f=Symbol(),Ys=e.ref();function ha(t,n=void 0){const o=e.getCurrentInstance()?e.inject($f,Ys):Ys;return t?e.computed(()=>{var r,l;return(l=(r=o.value)==null?void 0:r[t])!=null?l:n}):o}function ga(t,n){const o=ha(),r=Q(t,e.computed(()=>{var i;return((i=o.value)==null?void 0:i.namespace)||ll})),l=Ke(e.computed(()=>{var i;return(i=o.value)==null?void 0:i.locale})),a=$r(e.computed(()=>{var i;return((i=o.value)==null?void 0:i.zIndex)||Cf})),s=e.computed(()=>{var i;return e.unref(n)||((i=o.value)==null?void 0:i.size)||""});return Xs(e.computed(()=>e.unref(o)||{})),{ns:r,locale:l,zIndex:a,size:s}}const Xs=(t,n,o=!1)=>{var r;const l=!!e.getCurrentInstance(),a=l?ha():void 0,s=(r=n==null?void 0:n.provide)!=null?r:l?e.provide:void 0;if(!s)return;const i=e.computed(()=>{const c=e.unref(t);return a!=null&&a.value?C8(a.value,c):c});return s($f,i),s(Jd,e.computed(()=>i.value.locale)),s(ef,e.computed(()=>i.value.namespace)),s(wf,e.computed(()=>i.value.zIndex)),s(_f,{size:e.computed(()=>i.value.size||"")}),(o||!Ys.value)&&(Ys.value=i.value),i},C8=(t,n)=>{var o;const r=[...new Set([...ra(t),...ra(n)])],l={};for(const a of r)l[a]=(o=n[a])!=null?o:t[a];return l},qb=le({a11y:{type:Boolean,default:!0},locale:{type:W(Object)},size:Vt,button:{type:W(Object)},experimentalFeatures:{type:W(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:W(Object)},zIndex:Number,namespace:{type:String,default:"el"}}),Zs={},w8=e.defineComponent({name:"ElConfigProvider",props:qb,setup(t,{slots:n}){e.watch(()=>t.message,r=>{Object.assign(Zs,r!=null?r:{})},{immediate:!0,deep:!0});const o=Xs(t);return()=>e.renderSlot(n,"default",{config:o==null?void 0:o.value})}}),Yb=Me(w8),k8="2.4.3",Xb=(t=[])=>({version:k8,install:(o,r)=>{o[qd]||(o[qd]=!0,t.forEach(l=>o.use(l)),r&&Xs(r,o,!0))}}),Zb=le({zIndex:{type:W([Number,String]),default:100},target:{type:String,default:""},offset:{type:Number,default:0},position:{type:String,values:["top","bottom"],default:"top"}}),Jb={scroll:({scrollTop:t,fixed:n})=>be(t)&&Tt(n),[at]:t=>Tt(t)};var se=(t,n)=>{const o=t.__vccOpts||t;for(const[r,l]of n)o[r]=l;return o};const Qb="ElAffix",S8=e.defineComponent({name:Qb}),E8=e.defineComponent({...S8,props:Zb,emits:Jb,setup(t,{expose:n,emit:o}){const r=t,l=Q("affix"),a=e.shallowRef(),s=e.shallowRef(),i=e.shallowRef(),{height:c}=w_(),{height:f,width:u,top:d,bottom:p,update:h}=Rm(s,{windowScroll:!1}),g=Rm(a),m=e.ref(!1),b=e.ref(0),y=e.ref(0),C=e.computed(()=>({height:m.value?`${f.value}px`:"",width:m.value?`${u.value}px`:""})),k=e.computed(()=>{if(!m.value)return{};const S=r.offset?kt(r.offset):0;return{height:`${f.value}px`,width:`${u.value}px`,top:r.position==="top"?S:"",bottom:r.position==="bottom"?S:"",transform:y.value?`translateY(${y.value}px)`:"",zIndex:r.zIndex}}),w=()=>{if(!!i.value)if(b.value=i.value instanceof Window?document.documentElement.scrollTop:i.value.scrollTop||0,r.position==="top")if(r.target){const S=g.bottom.value-r.offset-f.value;m.value=r.offset>d.value&&g.bottom.value>0,y.value=S<0?S:0}else m.value=r.offset>d.value;else if(r.target){const S=c.value-g.top.value-r.offset-f.value;m.value=c.value-r.offsetg.top.value,y.value=S<0?-S:0}else m.value=c.value-r.offset{h(),o("scroll",{scrollTop:b.value,fixed:m.value})};return e.watch(m,S=>o("change",S)),e.onMounted(()=>{var S;r.target?(a.value=(S=document.querySelector(r.target))!=null?S:void 0,a.value||vt(Qb,`Target is not existed: ${r.target}`)):a.value=document.documentElement,i.value=Hd(s.value,!0),h()}),rt(i,"scroll",E),e.watchEffect(w),n({update:w,updateRoot:h}),(S,_)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:s,class:e.normalizeClass(e.unref(l).b()),style:e.normalizeStyle(e.unref(C))},[e.createElementVNode("div",{class:e.normalizeClass({[e.unref(l).m("fixed")]:m.value}),style:e.normalizeStyle(e.unref(k))},[e.renderSlot(S.$slots,"default")],6)],6))}});var N8=se(E8,[["__file","affix.vue"]]);const eC=Me(N8),tC=le({size:{type:W([Number,String])},color:{type:String}}),_8=e.defineComponent({name:"ElIcon",inheritAttrs:!1}),B8=e.defineComponent({..._8,props:tC,setup(t){const n=t,o=Q("icon"),r=e.computed(()=>{const{size:l,color:a}=n;return!l&&!a?{}:{fontSize:$t(l)?void 0:kt(l),"--color":a}});return(l,a)=>(e.openBlock(),e.createElementBlock("i",e.mergeProps({class:e.unref(o).b(),style:e.unref(r)},l.$attrs),[e.renderSlot(l.$slots,"default")],16))}});var $8=se(B8,[["__file","icon.vue"]]);const fe=Me($8),nC=["light","dark"],oC=le({title:{type:String,default:""},description:{type:String,default:""},type:{type:String,values:ra(Jo),default:"info"},closable:{type:Boolean,default:!0},closeText:{type:String,default:""},showIcon:Boolean,center:Boolean,effect:{type:String,values:nC,default:"light"}}),rC={close:t=>t instanceof MouseEvent},T8=e.defineComponent({name:"ElAlert"}),v8=e.defineComponent({...T8,props:oC,emits:rC,setup(t,{emit:n}){const o=t,{Close:r}=Ud,l=e.useSlots(),a=Q("alert"),s=e.ref(!0),i=e.computed(()=>Jo[o.type]),c=e.computed(()=>[a.e("icon"),{[a.is("big")]:!!o.description||!!l.default}]),f=e.computed(()=>({[a.is("bold")]:o.description||l.default})),u=d=>{s.value=!1,n("close",d)};return(d,p)=>(e.openBlock(),e.createBlock(e.Transition,{name:e.unref(a).b("fade"),persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass([e.unref(a).b(),e.unref(a).m(d.type),e.unref(a).is("center",d.center),e.unref(a).is(d.effect)]),role:"alert"},[d.showIcon&&e.unref(i)?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(c))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(i))))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("content"))},[d.title||d.$slots.title?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass([e.unref(a).e("title"),e.unref(f)])},[e.renderSlot(d.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(d.title),1)])],2)):e.createCommentVNode("v-if",!0),d.$slots.default||d.description?(e.openBlock(),e.createElementBlock("p",{key:1,class:e.normalizeClass(e.unref(a).e("description"))},[e.renderSlot(d.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(d.description),1)])],2)):e.createCommentVNode("v-if",!0),d.closable?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[d.closeText?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(a).e("close-btn"),e.unref(a).is("customed")]),onClick:u},e.toDisplayString(d.closeText),3)):(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass(e.unref(a).e("close-btn")),onClick:u},{default:e.withCtx(()=>[e.createVNode(e.unref(r))]),_:1},8,["class"]))],64)):e.createCommentVNode("v-if",!0)],2)],2),[[e.vShow,s.value]])]),_:3},8,["name"]))}});var V8=se(v8,[["__file","alert.vue"]]);const lC=Me(V8),nr=Symbol("formContextKey"),Gn=Symbol("formItemContextKey"),St=(t,n={})=>{const o=e.ref(void 0),r=n.prop?o:of("size"),l=n.global?o:Gb(),a=n.form?{size:void 0}:e.inject(nr,void 0),s=n.formItem?{size:void 0}:e.inject(Gn,void 0);return e.computed(()=>r.value||e.unref(t)||(s==null?void 0:s.size)||(a==null?void 0:a.size)||l.value||"")},Yt=t=>{const n=of("disabled"),o=e.inject(nr,void 0);return e.computed(()=>n.value||e.unref(t)||(o==null?void 0:o.disabled)||!1)},M8=St,I8=Yt,Xt=()=>{const t=e.inject(nr,void 0),n=e.inject(Gn,void 0);return{form:t,formItem:n}},vo=(t,{formItemContext:n,disableIdGeneration:o,disableIdManagement:r})=>{o||(o=e.ref(!1)),r||(r=e.ref(!1));const l=e.ref();let a;const s=e.computed(()=>{var i;return!!(!t.label&&n&&n.inputIds&&((i=n.inputIds)==null?void 0:i.length)<=1)});return e.onMounted(()=>{a=e.watch([e.toRef(t,"id"),o],([i,c])=>{const f=i!=null?i:c?void 0:rn().value;f!==l.value&&(n!=null&&n.removeInputId&&(l.value&&n.removeInputId(l.value),!(r!=null&&r.value)&&!c&&f&&n.addInputId(f)),l.value=f)},{immediate:!0})}),e.onUnmounted(()=>{a&&a(),n!=null&&n.removeInputId&&l.value&&n.removeInputId(l.value)}),{isLabeledByFormItem:s,inputId:l}},P8=le({size:{type:String,values:Wn},disabled:Boolean}),aC=le({...P8,model:Object,rules:{type:W(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:[Object,Boolean]}}),sC={validate:(t,n,o)=>(Re(t)||De(t))&&Tt(n)&&De(o)};function R8(){const t=e.ref([]),n=e.computed(()=>{if(!t.value.length)return"0";const a=Math.max(...t.value);return a?`${a}px`:""});function o(a){const s=t.value.indexOf(a);return s===-1&&n.value,s}function r(a,s){if(a&&s){const i=o(s);t.value.splice(i,1,a)}else a&&t.value.push(a)}function l(a){const s=o(a);s>-1&&t.value.splice(s,1)}return{autoLabelWidth:n,registerLabelWidth:r,deregisterLabelWidth:l}}const Js=(t,n)=>{const o=Ho(n);return o.length>0?t.filter(r=>r.prop&&o.includes(r.prop)):t},O8="ElForm",A8=e.defineComponent({name:O8}),z8=e.defineComponent({...A8,props:aC,emits:sC,setup(t,{expose:n,emit:o}){const r=t,l=[],a=St(),s=Q("form"),i=e.computed(()=>{const{labelPosition:C,inline:k}=r;return[s.b(),s.m(a.value||"default"),{[s.m(`label-${C}`)]:C,[s.m("inline")]:k}]}),c=C=>{l.push(C)},f=C=>{C.prop&&l.splice(l.indexOf(C),1)},u=(C=[])=>{!r.model||Js(l,C).forEach(k=>k.resetField())},d=(C=[])=>{Js(l,C).forEach(k=>k.clearValidate())},p=e.computed(()=>!!r.model),h=C=>{if(l.length===0)return[];const k=Js(l,C);return k.length?k:[]},g=async C=>b(void 0,C),m=async(C=[])=>{if(!p.value)return!1;const k=h(C);if(k.length===0)return!0;let w={};for(const E of k)try{await E.validate("")}catch(S){w={...w,...S}}return Object.keys(w).length===0?!0:Promise.reject(w)},b=async(C=[],k)=>{const w=!qe(k);try{const E=await m(C);return E===!0&&(k==null||k(E)),E}catch(E){if(E instanceof Error)throw E;const S=E;return r.scrollToError&&y(Object.keys(S)[0]),k==null||k(!1,S),w&&Promise.reject(S)}},y=C=>{var k;const w=Js(l,C)[0];w&&((k=w.$el)==null||k.scrollIntoView(r.scrollIntoViewOptions))};return e.watch(()=>r.rules,()=>{r.validateOnRuleChange&&g().catch(C=>void 0)},{deep:!0}),e.provide(nr,e.reactive({...e.toRefs(r),emit:o,resetFields:u,clearValidate:d,validateField:b,addField:c,removeField:f,...R8()})),n({validate:g,validateField:b,resetFields:u,clearValidate:d,scrollToField:y}),(C,k)=>(e.openBlock(),e.createElementBlock("form",{class:e.normalizeClass(e.unref(i))},[e.renderSlot(C.$slots,"default")],2))}});var D8=se(z8,[["__file","form.vue"]]);function vr(){return vr=Object.assign?Object.assign.bind():function(t){for(var n=1;n1?n-1:0),r=1;r=a)return i;switch(i){case"%s":return String(o[l++]);case"%d":return Number(o[l++]);case"%j":try{return JSON.stringify(o[l++])}catch(c){return"[Circular]"}break;default:return i}});return s}return t}function W8(t){return t==="string"||t==="url"||t==="hex"||t==="email"||t==="date"||t==="pattern"}function It(t,n){return!!(t==null||n==="array"&&Array.isArray(t)&&!t.length||W8(n)&&typeof t=="string"&&!t)}function j8(t,n,o){var r=[],l=0,a=t.length;function s(i){r.push.apply(r,i||[]),l++,l===a&&o(r)}t.forEach(function(i){n(i,s)})}function iC(t,n,o){var r=0,l=t.length;function a(s){if(s&&s.length){o(s);return}var i=r;r=r+1,i()\[\]\\.,;:\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},ba={integer:function(n){return ba.number(n)&&parseInt(n,10)===n},float:function(n){return ba.number(n)&&!ba.integer(n)},array:function(n){return Array.isArray(n)},regexp:function(n){if(n instanceof RegExp)return!0;try{return!!new RegExp(n)}catch(o){return!1}},date:function(n){return typeof n.getTime=="function"&&typeof n.getMonth=="function"&&typeof n.getYear=="function"&&!isNaN(n.getTime())},number:function(n){return isNaN(n)?!1:typeof n=="number"},object:function(n){return typeof n=="object"&&!ba.array(n)},method:function(n){return typeof n=="function"},email:function(n){return typeof n=="string"&&n.length<=320&&!!n.match(pC.email)},url:function(n){return typeof n=="string"&&n.length<=2048&&!!n.match(Z8())},hex:function(n){return typeof n=="string"&&!!n.match(pC.hex)}},J8=function(n,o,r,l,a){if(n.required&&o===void 0){uC(n,o,r,l,a);return}var s=["integer","float","array","regexp","object","method","email","number","date","url","hex"],i=n.type;s.indexOf(i)>-1?ba[i](o)||l.push(kn(a.messages.types[i],n.fullField,n.type)):i&&typeof o!==n.type&&l.push(kn(a.messages.types[i],n.fullField,n.type))},Q8=function(n,o,r,l,a){var s=typeof n.len=="number",i=typeof n.min=="number",c=typeof n.max=="number",f=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=o,d=null,p=typeof o=="number",h=typeof o=="string",g=Array.isArray(o);if(p?d="number":h?d="string":g&&(d="array"),!d)return!1;g&&(u=o.length),h&&(u=o.replace(f,"_").length),s?u!==n.len&&l.push(kn(a.messages[d].len,n.fullField,n.len)):i&&!c&&un.max?l.push(kn(a.messages[d].max,n.fullField,n.max)):i&&c&&(un.max)&&l.push(kn(a.messages[d].range,n.fullField,n.min,n.max))},hl="enum",e6=function(n,o,r,l,a){n[hl]=Array.isArray(n[hl])?n[hl]:[],n[hl].indexOf(o)===-1&&l.push(kn(a.messages[hl],n.fullField,n[hl].join(", ")))},t6=function(n,o,r,l,a){if(n.pattern){if(n.pattern instanceof RegExp)n.pattern.lastIndex=0,n.pattern.test(o)||l.push(kn(a.messages.pattern.mismatch,n.fullField,o,n.pattern));else if(typeof n.pattern=="string"){var s=new RegExp(n.pattern);s.test(o)||l.push(kn(a.messages.pattern.mismatch,n.fullField,o,n.pattern))}}},tt={required:uC,whitespace:X8,type:J8,range:Q8,enum:e6,pattern:t6},n6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o,"string")&&!n.required)return r();tt.required(n,o,l,s,a,"string"),It(o,"string")||(tt.type(n,o,l,s,a),tt.range(n,o,l,s,a),tt.pattern(n,o,l,s,a),n.whitespace===!0&&tt.whitespace(n,o,l,s,a))}r(s)},o6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&tt.type(n,o,l,s,a)}r(s)},r6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(o===""&&(o=void 0),It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&(tt.type(n,o,l,s,a),tt.range(n,o,l,s,a))}r(s)},l6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&tt.type(n,o,l,s,a)}r(s)},a6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),It(o)||tt.type(n,o,l,s,a)}r(s)},s6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&(tt.type(n,o,l,s,a),tt.range(n,o,l,s,a))}r(s)},i6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&(tt.type(n,o,l,s,a),tt.range(n,o,l,s,a))}r(s)},c6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(o==null&&!n.required)return r();tt.required(n,o,l,s,a,"array"),o!=null&&(tt.type(n,o,l,s,a),tt.range(n,o,l,s,a))}r(s)},d6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&tt.type(n,o,l,s,a)}r(s)},f6="enum",u6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a),o!==void 0&&tt[f6](n,o,l,s,a)}r(s)},p6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o,"string")&&!n.required)return r();tt.required(n,o,l,s,a),It(o,"string")||tt.pattern(n,o,l,s,a)}r(s)},m6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o,"date")&&!n.required)return r();if(tt.required(n,o,l,s,a),!It(o,"date")){var c;o instanceof Date?c=o:c=new Date(o),tt.type(n,c,l,s,a),c&&tt.range(n,c.getTime(),l,s,a)}}r(s)},h6=function(n,o,r,l,a){var s=[],i=Array.isArray(o)?"array":typeof o;tt.required(n,o,l,s,a,i),r(s)},Mf=function(n,o,r,l,a){var s=n.type,i=[],c=n.required||!n.required&&l.hasOwnProperty(n.field);if(c){if(It(o,s)&&!n.required)return r();tt.required(n,o,l,i,a,s),It(o,s)||tt.type(n,o,l,i,a)}r(i)},g6=function(n,o,r,l,a){var s=[],i=n.required||!n.required&&l.hasOwnProperty(n.field);if(i){if(It(o)&&!n.required)return r();tt.required(n,o,l,s,a)}r(s)},Ca={string:n6,method:o6,number:r6,boolean:l6,regexp:a6,integer:s6,float:i6,array:c6,object:d6,enum:u6,pattern:p6,date:m6,url:Mf,hex:Mf,email:Mf,required:h6,any:g6};function If(){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 n=JSON.parse(JSON.stringify(this));return n.clone=this.clone,n}}}var Pf=If(),wa=function(){function t(o){this.rules=null,this._messages=Pf,this.define(o)}var n=t.prototype;return n.define=function(r){var l=this;if(!r)throw new Error("Cannot configure a schema with no rules");if(typeof r!="object"||Array.isArray(r))throw new Error("Rules must be an object");this.rules={},Object.keys(r).forEach(function(a){var s=r[a];l.rules[a]=Array.isArray(s)?s:[s]})},n.messages=function(r){return r&&(this._messages=fC(If(),r)),this._messages},n.validate=function(r,l,a){var s=this;l===void 0&&(l={}),a===void 0&&(a=function(){});var i=r,c=l,f=a;if(typeof c=="function"&&(f=c,c={}),!this.rules||Object.keys(this.rules).length===0)return f&&f(null,i),Promise.resolve(i);function u(m){var b=[],y={};function C(w){if(Array.isArray(w)){var E;b=(E=b).concat.apply(E,w)}else b.push(w)}for(var k=0;k");const l=Q("form"),a=e.ref(),s=e.ref(0),i=()=>{var u;if((u=a.value)!=null&&u.firstElementChild){const d=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(d))}else return 0},c=(u="update")=>{e.nextTick(()=>{n.default&&t.isAutoWidth&&(u==="update"?s.value=i():u==="remove"&&(o==null||o.deregisterLabelWidth(s.value)))})},f=()=>c("update");return e.onMounted(()=>{f()}),e.onBeforeUnmount(()=>{c("remove")}),e.onUpdated(()=>f()),e.watch(s,(u,d)=>{t.updateAll&&(o==null||o.registerLabelWidth(u,d))}),jt(e.computed(()=>{var u,d;return(d=(u=a.value)==null?void 0:u.firstElementChild)!=null?d:null}),f),()=>{var u,d;if(!n)return null;const{isAutoWidth:p}=t;if(p){const h=o==null?void 0:o.autoLabelWidth,g=r==null?void 0:r.hasLabel,m={};if(g&&h&&h!=="auto"){const b=Math.max(0,Number.parseInt(h,10)-s.value),y=o.labelPosition==="left"?"marginRight":"marginLeft";b&&(m[y]=`${b}px`)}return e.createVNode("div",{ref:a,class:[l.be("item","label-wrap")],style:m},[(u=n.default)==null?void 0:u.call(n)])}else return e.createVNode(e.Fragment,{ref:a},[(d=n.default)==null?void 0:d.call(n)])}}});const b6=["role","aria-labelledby"],C6=e.defineComponent({name:"ElFormItem"}),w6=e.defineComponent({...C6,props:hC,setup(t,{expose:n}){const o=t,r=e.useSlots(),l=e.inject(nr,void 0),a=e.inject(Gn,void 0),s=St(void 0,{formItem:!1}),i=Q("form-item"),c=rn().value,f=e.ref([]),u=e.ref(""),d=o_(u,100),p=e.ref(""),h=e.ref();let g,m=!1;const b=e.computed(()=>{if((l==null?void 0:l.labelPosition)==="top")return{};const Z=kt(o.labelWidth||(l==null?void 0:l.labelWidth)||"");return Z?{width:Z}:{}}),y=e.computed(()=>{if((l==null?void 0:l.labelPosition)==="top"||(l==null?void 0:l.inline))return{};if(!o.label&&!o.labelWidth&&M)return{};const Z=kt(o.labelWidth||(l==null?void 0:l.labelWidth)||"");return!o.label&&!r.label?{marginLeft:Z}:{}}),C=e.computed(()=>[i.b(),i.m(s.value),i.is("error",u.value==="error"),i.is("validating",u.value==="validating"),i.is("success",u.value==="success"),i.is("required",O.value||o.required),i.is("no-asterisk",l==null?void 0:l.hideRequiredAsterisk),(l==null?void 0:l.requireAsteriskPosition)==="right"?"asterisk-right":"asterisk-left",{[i.m("feedback")]:l==null?void 0:l.statusIcon}]),k=e.computed(()=>Tt(o.inlineMessage)?o.inlineMessage:(l==null?void 0:l.inlineMessage)||!1),w=e.computed(()=>[i.e("error"),{[i.em("error","inline")]:k.value}]),E=e.computed(()=>o.prop?De(o.prop)?o.prop:o.prop.join("."):""),S=e.computed(()=>!!(o.label||r.label)),_=e.computed(()=>o.for||(f.value.length===1?f.value[0]:void 0)),B=e.computed(()=>!_.value&&S.value),M=!!a,P=e.computed(()=>{const Z=l==null?void 0:l.model;if(!(!Z||!o.prop))return Bs(Z,o.prop).value}),T=e.computed(()=>{const{required:Z}=o,U=[];o.rules&&U.push(...Ho(o.rules));const re=l==null?void 0:l.rules;if(re&&o.prop){const te=Bs(re,o.prop).value;te&&U.push(...Ho(te))}if(Z!==void 0){const te=U.map((oe,ie)=>[oe,ie]).filter(([oe])=>Object.keys(oe).includes("required"));if(te.length>0)for(const[oe,ie]of te)oe.required!==Z&&(U[ie]={...oe,required:Z});else U.push({required:Z})}return U}),I=e.computed(()=>T.value.length>0),v=Z=>T.value.filter(re=>!re.trigger||!Z?!0:Array.isArray(re.trigger)?re.trigger.includes(Z):re.trigger===Z).map(({trigger:re,...te})=>te),O=e.computed(()=>T.value.some(Z=>Z.required)),D=e.computed(()=>{var Z;return d.value==="error"&&o.showMessage&&((Z=l==null?void 0:l.showMessage)!=null?Z:!0)}),z=e.computed(()=>`${o.label||""}${(l==null?void 0:l.labelSuffix)||""}`),$=Z=>{u.value=Z},R=Z=>{var U,re;const{errors:te,fields:oe}=Z;(!te||!oe)&&console.error(Z),$("error"),p.value=te?(re=(U=te==null?void 0:te[0])==null?void 0:U.message)!=null?re:`${o.prop} is required`:"",l==null||l.emit("validate",o.prop,!1,p.value)},N=()=>{$("success"),l==null||l.emit("validate",o.prop,!0,"")},A=async Z=>{const U=E.value;return new wa({[U]:Z}).validate({[U]:P.value},{firstFields:!0}).then(()=>(N(),!0)).catch(te=>(R(te),Promise.reject(te)))},x=async(Z,U)=>{if(m||!o.prop)return!1;const re=qe(U);if(!I.value)return U==null||U(!1),!1;const te=v(Z);return te.length===0?(U==null||U(!0),!0):($("validating"),A(te).then(()=>(U==null||U(!0),!0)).catch(oe=>{const{fields:ie}=oe;return U==null||U(!1,ie),re?!1:Promise.reject(ie)}))},H=()=>{$(""),p.value="",m=!1},K=async()=>{const Z=l==null?void 0:l.model;if(!Z||!o.prop)return;const U=Bs(Z,o.prop);m=!0,U.value=Qc(g),await e.nextTick(),H(),m=!1},q=Z=>{f.value.includes(Z)||f.value.push(Z)},ne=Z=>{f.value=f.value.filter(U=>U!==Z)};e.watch(()=>o.error,Z=>{p.value=Z||"",$(Z?"error":"")},{immediate:!0}),e.watch(()=>o.validateStatus,Z=>$(Z||""));const Y=e.reactive({...e.toRefs(o),$el:h,size:s,validateState:u,labelId:c,inputIds:f,isGroup:B,hasLabel:S,addInputId:q,removeInputId:ne,resetField:K,clearValidate:H,validate:x});return e.provide(Gn,Y),e.onMounted(()=>{o.prop&&(l==null||l.addField(Y),g=Qc(P.value))}),e.onBeforeUnmount(()=>{l==null||l.removeField(Y)}),n({size:s,validateMessage:p,validateState:u,validate:x,clearValidate:H,resetField:K}),(Z,U)=>{var re;return e.openBlock(),e.createElementBlock("div",{ref_key:"formItemRef",ref:h,class:e.normalizeClass(e.unref(C)),role:e.unref(B)?"group":void 0,"aria-labelledby":e.unref(B)?e.unref(c):void 0},[e.createVNode(e.unref(y6),{"is-auto-width":e.unref(b).width==="auto","update-all":((re=e.unref(l))==null?void 0:re.labelWidth)==="auto"},{default:e.withCtx(()=>[e.unref(S)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(_)?"label":"div"),{key:0,id:e.unref(c),for:e.unref(_),class:e.normalizeClass(e.unref(i).e("label")),style:e.normalizeStyle(e.unref(b))},{default:e.withCtx(()=>[e.renderSlot(Z.$slots,"label",{label:e.unref(z)},()=>[e.createTextVNode(e.toDisplayString(e.unref(z)),1)])]),_:3},8,["id","for","class","style"])):e.createCommentVNode("v-if",!0)]),_:3},8,["is-auto-width","update-all"]),e.createElementVNode("div",{class:e.normalizeClass(e.unref(i).e("content")),style:e.normalizeStyle(e.unref(y))},[e.renderSlot(Z.$slots,"default"),e.createVNode(e.TransitionGroup,{name:`${e.unref(i).namespace.value}-zoom-in-top`},{default:e.withCtx(()=>[e.unref(D)?e.renderSlot(Z.$slots,"error",{key:0,error:p.value},()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(w))},e.toDisplayString(p.value),3)]):e.createCommentVNode("v-if",!0)]),_:3},8,["name"])],6)],10,b6)}}});var yC=se(w6,[["__file","form-item.vue"]]);const bC=Me(D8,{FormItem:yC}),CC=ht(yC);let qn;const k6=` + height:0 !important; + visibility:hidden !important; + ${Lm()?"":"overflow:hidden !important;"} + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important; +`,S6=["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"];function E6(t){const n=window.getComputedStyle(t),o=n.getPropertyValue("box-sizing"),r=Number.parseFloat(n.getPropertyValue("padding-bottom"))+Number.parseFloat(n.getPropertyValue("padding-top")),l=Number.parseFloat(n.getPropertyValue("border-bottom-width"))+Number.parseFloat(n.getPropertyValue("border-top-width"));return{contextStyle:S6.map(s=>`${s}:${n.getPropertyValue(s)}`).join(";"),paddingSize:r,borderSize:l,boxSizing:o}}function wC(t,n=1,o){var r;qn||(qn=document.createElement("textarea"),document.body.appendChild(qn));const{paddingSize:l,borderSize:a,boxSizing:s,contextStyle:i}=E6(t);qn.setAttribute("style",`${i};${k6}`),qn.value=t.value||t.placeholder||"";let c=qn.scrollHeight;const f={};s==="border-box"?c=c+a:s==="content-box"&&(c=c-l),qn.value="";const u=qn.scrollHeight-l;if(be(n)){let d=u*n;s==="border-box"&&(d=d+l+a),c=Math.max(d,c),f.minHeight=`${d}px`}if(be(o)){let d=u*o;s==="border-box"&&(d=d+l+a),c=Math.min(d,c)}return f.height=`${c}px`,(r=qn.parentNode)==null||r.removeChild(qn),qn=void 0,f}const kC=le({id:{type:String,default:void 0},size:Vt,disabled:Boolean,modelValue:{type:W([String,Number,Object]),default:""},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:W([Boolean,Object]),default:!1},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},showPassword:{type:Boolean,default:!1},showWordLimit:{type:Boolean,default:!1},suffixIcon:{type:ot},prefixIcon:{type:ot},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:W([Object,Array,String]),default:()=>ut({})},autofocus:{type:Boolean,default:!1}}),SC={[Ie]:t=>De(t),input:t=>De(t),change:t=>De(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,clear:()=>!0,mouseleave:t=>t instanceof MouseEvent,mouseenter:t=>t instanceof MouseEvent,keydown:t=>t instanceof Event,compositionstart:t=>t instanceof CompositionEvent,compositionupdate:t=>t instanceof CompositionEvent,compositionend:t=>t instanceof CompositionEvent},N6=["role"],_6=["id","type","disabled","formatter","parser","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus"],B6=["id","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus"],$6=e.defineComponent({name:"ElInput",inheritAttrs:!1}),T6=e.defineComponent({...$6,props:kC,emits:SC,setup(t,{expose:n,emit:o}){const r=t,l=e.useAttrs(),a=e.useSlots(),s=e.computed(()=>{const ce={};return r.containerRole==="combobox"&&(ce["aria-haspopup"]=l["aria-haspopup"],ce["aria-owns"]=l["aria-owns"],ce["aria-expanded"]=l["aria-expanded"]),ce}),i=e.computed(()=>[r.type==="textarea"?b.b():m.b(),m.m(h.value),m.is("disabled",g.value),m.is("exceed",q.value),{[m.b("group")]:a.prepend||a.append,[m.bm("group","append")]:a.append,[m.bm("group","prepend")]:a.prepend,[m.m("prefix")]:a.prefix||r.prefixIcon,[m.m("suffix")]:a.suffix||r.suffixIcon||r.clearable||r.showPassword,[m.bm("suffix","password-clear")]:A.value&&x.value},l.class]),c=e.computed(()=>[m.e("wrapper"),m.is("focus",P.value)]),f=As({excludeKeys:e.computed(()=>Object.keys(s.value))}),{form:u,formItem:d}=Xt(),{inputId:p}=vo(r,{formItemContext:d}),h=St(),g=Yt(),m=Q("input"),b=Q("textarea"),y=e.shallowRef(),C=e.shallowRef(),k=e.ref(!1),w=e.ref(!1),E=e.ref(!1),S=e.ref(),_=e.shallowRef(r.inputStyle),B=e.computed(()=>y.value||C.value),{wrapperRef:M,isFocused:P,handleFocus:T,handleBlur:I}=Bf(B,{afterBlur(){var ce;r.validateEvent&&((ce=d==null?void 0:d.validate)==null||ce.call(d,"blur").catch(Ee=>void 0))}}),v=e.computed(()=>{var ce;return(ce=u==null?void 0:u.statusIcon)!=null?ce:!1}),O=e.computed(()=>(d==null?void 0:d.validateState)||""),D=e.computed(()=>O.value&&Gd[O.value]),z=e.computed(()=>E.value?QD:ED),$=e.computed(()=>[l.style,r.inputStyle]),R=e.computed(()=>[r.inputStyle,_.value,{resize:r.resize}]),N=e.computed(()=>wt(r.modelValue)?"":String(r.modelValue)),A=e.computed(()=>r.clearable&&!g.value&&!r.readonly&&!!N.value&&(P.value||k.value)),x=e.computed(()=>r.showPassword&&!g.value&&!r.readonly&&!!N.value&&(!!N.value||P.value)),H=e.computed(()=>r.showWordLimit&&!!f.value.maxlength&&(r.type==="text"||r.type==="textarea")&&!g.value&&!r.readonly&&!r.showPassword),K=e.computed(()=>N.value.length),q=e.computed(()=>!!H.value&&K.value>Number(f.value.maxlength)),ne=e.computed(()=>!!a.suffix||!!r.suffixIcon||A.value||r.showPassword||H.value||!!O.value&&v.value),[Y,Z]=Ub(y);jt(C,ce=>{if(te(),!H.value||r.resize!=="both")return;const Ee=ce[0],{width:Le}=Ee.contentRect;S.value={right:`calc(100% - ${Le+15+6}px)`}});const U=()=>{const{type:ce,autosize:Ee}=r;if(!(!He||ce!=="textarea"||!C.value))if(Ee){const Le=nt(Ee)?Ee.minRows:void 0,Xe=nt(Ee)?Ee.maxRows:void 0,Qe=wC(C.value,Le,Xe);_.value={overflowY:"hidden",...Qe},e.nextTick(()=>{C.value.offsetHeight,_.value=Qe})}else _.value={minHeight:wC(C.value).minHeight}},te=(ce=>{let Ee=!1;return()=>{var Le;if(Ee||!r.autosize)return;((Le=C.value)==null?void 0:Le.offsetParent)===null||(ce(),Ee=!0)}})(U),oe=()=>{const ce=B.value,Ee=r.formatter?r.formatter(N.value):N.value;!ce||ce.value===Ee||(ce.value=Ee)},ie=async ce=>{Y();let{value:Ee}=ce.target;if(r.formatter&&(Ee=r.parser?r.parser(Ee):Ee),!w.value){if(Ee===N.value){oe();return}o(Ie,Ee),o("input",Ee),await e.nextTick(),oe(),Z()}},ye=ce=>{o("change",ce.target.value)},Ne=ce=>{o("compositionstart",ce),w.value=!0},Te=ce=>{var Ee;o("compositionupdate",ce);const Le=(Ee=ce.target)==null?void 0:Ee.value,Xe=Le[Le.length-1]||"";w.value=!Ps(Xe)},Pe=ce=>{o("compositionend",ce),w.value&&(w.value=!1,ie(ce))},he=()=>{E.value=!E.value,Ce()},Ce=async()=>{var ce;await e.nextTick(),(ce=B.value)==null||ce.focus()},ge=()=>{var ce;return(ce=B.value)==null?void 0:ce.blur()},me=ce=>{k.value=!1,o("mouseleave",ce)},_e=ce=>{k.value=!0,o("mouseenter",ce)},$e=ce=>{o("keydown",ce)},Ae=()=>{var ce;(ce=B.value)==null||ce.select()},Oe=()=>{o(Ie,""),o("change",""),o("clear"),o("input","")};return e.watch(()=>r.modelValue,()=>{var ce;e.nextTick(()=>U()),r.validateEvent&&((ce=d==null?void 0:d.validate)==null||ce.call(d,"change").catch(Ee=>void 0))}),e.watch(N,()=>oe()),e.watch(()=>r.type,async()=>{await e.nextTick(),oe(),U()}),e.onMounted(()=>{!r.formatter&&r.parser,oe(),e.nextTick(U)}),n({input:y,textarea:C,ref:B,textareaStyle:R,autosize:e.toRef(r,"autosize"),focus:Ce,blur:ge,select:Ae,clear:Oe,resizeTextarea:U}),(ce,Ee)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",e.mergeProps(e.unref(s),{class:e.unref(i),style:e.unref($),role:ce.containerRole,onMouseenter:_e,onMouseleave:me}),[e.createCommentVNode(" input "),ce.type!=="textarea"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createCommentVNode(" prepend slot "),ce.$slots.prepend?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(m).be("group","prepend"))},[e.renderSlot(ce.$slots,"prepend")],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{ref_key:"wrapperRef",ref:M,class:e.normalizeClass(e.unref(c))},[e.createCommentVNode(" prefix slot "),ce.$slots.prefix||ce.prefixIcon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(m).e("prefix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(m).e("prefix-inner"))},[e.renderSlot(ce.$slots,"prefix"),ce.prefixIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(m).e("icon"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(ce.prefixIcon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],2)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("input",e.mergeProps({id:e.unref(p),ref_key:"input",ref:y,class:e.unref(m).e("inner")},e.unref(f),{type:ce.showPassword?E.value?"text":"password":ce.type,disabled:e.unref(g),formatter:ce.formatter,parser:ce.parser,readonly:ce.readonly,autocomplete:ce.autocomplete,tabindex:ce.tabindex,"aria-label":ce.label,placeholder:ce.placeholder,style:ce.inputStyle,form:r.form,autofocus:r.autofocus,onCompositionstart:Ne,onCompositionupdate:Te,onCompositionend:Pe,onInput:ie,onFocus:Ee[0]||(Ee[0]=(...Le)=>e.unref(T)&&e.unref(T)(...Le)),onBlur:Ee[1]||(Ee[1]=(...Le)=>e.unref(I)&&e.unref(I)(...Le)),onChange:ye,onKeydown:$e}),null,16,_6),e.createCommentVNode(" suffix slot "),e.unref(ne)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(m).e("suffix"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(m).e("suffix-inner"))},[!e.unref(A)||!e.unref(x)||!e.unref(H)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.renderSlot(ce.$slots,"suffix"),ce.suffixIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(m).e("icon"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(ce.suffixIcon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],64)):e.createCommentVNode("v-if",!0),e.unref(A)?(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass([e.unref(m).e("icon"),e.unref(m).e("clear")]),onMousedown:e.withModifiers(e.unref(st),["prevent"]),onClick:Oe},{default:e.withCtx(()=>[e.createVNode(e.unref(Xo))]),_:1},8,["class","onMousedown"])):e.createCommentVNode("v-if",!0),e.unref(x)?(e.openBlock(),e.createBlock(e.unref(fe),{key:2,class:e.normalizeClass([e.unref(m).e("icon"),e.unref(m).e("password")]),onClick:he},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(z))))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.unref(H)?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(e.unref(m).e("count"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(m).e("count-inner"))},e.toDisplayString(e.unref(K))+" / "+e.toDisplayString(e.unref(f).maxlength),3)],2)):e.createCommentVNode("v-if",!0),e.unref(O)&&e.unref(D)&&e.unref(v)?(e.openBlock(),e.createBlock(e.unref(fe),{key:4,class:e.normalizeClass([e.unref(m).e("icon"),e.unref(m).e("validateIcon"),e.unref(m).is("loading",e.unref(O)==="validating")])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(D))))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],2)],2)):e.createCommentVNode("v-if",!0)],2),e.createCommentVNode(" append slot "),ce.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(m).be("group","append"))},[e.renderSlot(ce.$slots,"append")],2)):e.createCommentVNode("v-if",!0)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" textarea "),e.createElementVNode("textarea",e.mergeProps({id:e.unref(p),ref_key:"textarea",ref:C,class:e.unref(b).e("inner")},e.unref(f),{tabindex:ce.tabindex,disabled:e.unref(g),readonly:ce.readonly,autocomplete:ce.autocomplete,style:e.unref(R),"aria-label":ce.label,placeholder:ce.placeholder,form:r.form,autofocus:r.autofocus,onCompositionstart:Ne,onCompositionupdate:Te,onCompositionend:Pe,onInput:ie,onFocus:Ee[2]||(Ee[2]=(...Le)=>e.unref(T)&&e.unref(T)(...Le)),onBlur:Ee[3]||(Ee[3]=(...Le)=>e.unref(I)&&e.unref(I)(...Le)),onChange:ye,onKeydown:$e}),null,16,B6),e.unref(H)?(e.openBlock(),e.createElementBlock("span",{key:0,style:e.normalizeStyle(S.value),class:e.normalizeClass(e.unref(m).e("count"))},e.toDisplayString(e.unref(K))+" / "+e.toDisplayString(e.unref(f).maxlength),7)):e.createCommentVNode("v-if",!0)],64))],16,N6)),[[e.vShow,ce.type!=="hidden"]])}});var v6=se(T6,[["__file","input.vue"]]);const Ft=Me(v6),Vr=4,Rf={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"}},EC=({move:t,size:n,bar:o})=>({[o.size]:n,transform:`translate${o.axis}(${t}%)`}),Of=Symbol("scrollbarContextKey"),NC=le({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),V6="Thumb";var _C=se(e.defineComponent({__name:"thumb",props:NC,setup(t){const n=t,o=e.inject(Of),r=Q("scrollbar");o||vt(V6,"can not inject scrollbar context");const l=e.ref(),a=e.ref(),s=e.ref({}),i=e.ref(!1);let c=!1,f=!1,u=He?document.onselectstart:null;const d=e.computed(()=>Rf[n.vertical?"vertical":"horizontal"]),p=e.computed(()=>EC({size:n.size,move:n.move,bar:d.value})),h=e.computed(()=>l.value[d.value.offset]**2/o.wrapElement[d.value.scrollSize]/n.ratio/a.value[d.value.offset]),g=S=>{var _;if(S.stopPropagation(),S.ctrlKey||[1,2].includes(S.button))return;(_=window.getSelection())==null||_.removeAllRanges(),b(S);const B=S.currentTarget;!B||(s.value[d.value.axis]=B[d.value.offset]-(S[d.value.client]-B.getBoundingClientRect()[d.value.direction]))},m=S=>{if(!a.value||!l.value||!o.wrapElement)return;const _=Math.abs(S.target.getBoundingClientRect()[d.value.direction]-S[d.value.client]),B=a.value[d.value.offset]/2,M=(_-B)*100*h.value/l.value[d.value.offset];o.wrapElement[d.value.scroll]=M*o.wrapElement[d.value.scrollSize]/100},b=S=>{S.stopImmediatePropagation(),c=!0,document.addEventListener("mousemove",y),document.addEventListener("mouseup",C),u=document.onselectstart,document.onselectstart=()=>!1},y=S=>{if(!l.value||!a.value||c===!1)return;const _=s.value[d.value.axis];if(!_)return;const B=(l.value.getBoundingClientRect()[d.value.direction]-S[d.value.client])*-1,M=a.value[d.value.offset]-_,P=(B-M)*100*h.value/l.value[d.value.offset];o.wrapElement[d.value.scroll]=P*o.wrapElement[d.value.scrollSize]/100},C=()=>{c=!1,s.value[d.value.axis]=0,document.removeEventListener("mousemove",y),document.removeEventListener("mouseup",C),E(),f&&(i.value=!1)},k=()=>{f=!1,i.value=!!n.size},w=()=>{f=!0,i.value=c};e.onBeforeUnmount(()=>{E(),document.removeEventListener("mouseup",C)});const E=()=>{document.onselectstart!==u&&(document.onselectstart=u)};return rt(e.toRef(o,"scrollbarElement"),"mousemove",k),rt(e.toRef(o,"scrollbarElement"),"mouseleave",w),(S,_)=>(e.openBlock(),e.createBlock(e.Transition,{name:e.unref(r).b("fade"),persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"instance",ref:l,class:e.normalizeClass([e.unref(r).e("bar"),e.unref(r).is(e.unref(d).key)]),onMousedown:m},[e.createElementVNode("div",{ref_key:"thumb",ref:a,class:e.normalizeClass(e.unref(r).e("thumb")),style:e.normalizeStyle(e.unref(p)),onMousedown:g},null,38)],34),[[e.vShow,S.always||i.value]])]),_:1},8,["name"]))}}),[["__file","thumb.vue"]]);const M6=le({always:{type:Boolean,default:!0},width:String,height:String,ratioX:{type:Number,default:1},ratioY:{type:Number,default:1}});var I6=se(e.defineComponent({__name:"bar",props:M6,setup(t,{expose:n}){const o=t,r=e.ref(0),l=e.ref(0);return n({handleScroll:s=>{if(s){const i=s.offsetHeight-Vr,c=s.offsetWidth-Vr;l.value=s.scrollTop*100/i*o.ratioY,r.value=s.scrollLeft*100/c*o.ratioX}}}),(s,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(_C,{move:r.value,ratio:s.ratioX,size:s.width,always:s.always},null,8,["move","ratio","size","always"]),e.createVNode(_C,{move:l.value,ratio:s.ratioY,size:s.height,vertical:"",always:s.always},null,8,["move","ratio","size","always"])],64))}}),[["__file","bar.vue"]]);const BC=le({height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:{type:Boolean,default:!1},wrapStyle:{type:W([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},id:String,role:String,ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical"]}}),$C={scroll:({scrollTop:t,scrollLeft:n})=>[t,n].every(be)},P6="ElScrollbar",R6=e.defineComponent({name:P6}),O6=e.defineComponent({...R6,props:BC,emits:$C,setup(t,{expose:n,emit:o}){const r=t,l=Q("scrollbar");let a,s;const i=e.ref(),c=e.ref(),f=e.ref(),u=e.ref("0"),d=e.ref("0"),p=e.ref(),h=e.ref(1),g=e.ref(1),m=e.computed(()=>{const _={};return r.height&&(_.height=kt(r.height)),r.maxHeight&&(_.maxHeight=kt(r.maxHeight)),[r.wrapStyle,_]}),b=e.computed(()=>[r.wrapClass,l.e("wrap"),{[l.em("wrap","hidden-default")]:!r.native}]),y=e.computed(()=>[l.e("view"),r.viewClass]),C=()=>{var _;c.value&&((_=p.value)==null||_.handleScroll(c.value),o("scroll",{scrollTop:c.value.scrollTop,scrollLeft:c.value.scrollLeft}))};function k(_,B){nt(_)?c.value.scrollTo(_):be(_)&&be(B)&&c.value.scrollTo(_,B)}const w=_=>{!be(_)||(c.value.scrollTop=_)},E=_=>{!be(_)||(c.value.scrollLeft=_)},S=()=>{if(!c.value)return;const _=c.value.offsetHeight-Vr,B=c.value.offsetWidth-Vr,M=_**2/c.value.scrollHeight,P=B**2/c.value.scrollWidth,T=Math.max(M,r.minSize),I=Math.max(P,r.minSize);h.value=M/(_-M)/(T/(_-T)),g.value=P/(B-P)/(I/(B-I)),d.value=T+Vr<_?`${T}px`:"",u.value=I+Vrr.noresize,_=>{_?(a==null||a(),s==null||s()):({stop:a}=jt(f,S),s=rt("resize",S))},{immediate:!0}),e.watch(()=>[r.maxHeight,r.height],()=>{r.native||e.nextTick(()=>{var _;S(),c.value&&((_=p.value)==null||_.handleScroll(c.value))})}),e.provide(Of,e.reactive({scrollbarElement:i,wrapElement:c})),e.onMounted(()=>{r.native||e.nextTick(()=>{S()})}),e.onUpdated(()=>S()),n({wrapRef:c,update:S,scrollTo:k,setScrollTop:w,setScrollLeft:E,handleScroll:C}),(_,B)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"scrollbarRef",ref:i,class:e.normalizeClass(e.unref(l).b())},[e.createElementVNode("div",{ref_key:"wrapRef",ref:c,class:e.normalizeClass(e.unref(b)),style:e.normalizeStyle(e.unref(m)),onScroll:C},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(_.tag),{id:_.id,ref_key:"resizeRef",ref:f,class:e.normalizeClass(e.unref(y)),style:e.normalizeStyle(_.viewStyle),role:_.role,"aria-label":_.ariaLabel,"aria-orientation":_.ariaOrientation},{default:e.withCtx(()=>[e.renderSlot(_.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],38),_.native?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(I6,{key:0,ref_key:"barRef",ref:p,height:d.value,width:u.value,always:_.always,"ratio-x":g.value,"ratio-y":h.value},null,8,["height","width","always","ratio-x","ratio-y"]))],2))}});var A6=se(O6,[["__file","scrollbar.vue"]]);const mo=Me(A6),ti=Symbol("popper"),Af=Symbol("popperContent"),z6={LIGHT:"light",DARK:"dark"},TC=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],ni=le({role:{type:String,values:TC,default:"tooltip"}}),D6=ni,L6=e.defineComponent({name:"ElPopper",inheritAttrs:!1}),x6=e.defineComponent({...L6,props:ni,setup(t,{expose:n}){const o=t,r=e.ref(),l=e.ref(),a=e.ref(),s=e.ref(),i=e.computed(()=>o.role),c={triggerRef:r,popperInstanceRef:l,contentRef:a,referenceRef:s,role:i};return n(c),e.provide(ti,c),(f,u)=>e.renderSlot(f.$slots,"default")}});var F6=se(x6,[["__file","popper.vue"]]);const oi=le({arrowOffset:{type:Number,default:5}}),H6=oi,K6=e.defineComponent({name:"ElPopperArrow",inheritAttrs:!1}),W6=e.defineComponent({...K6,props:oi,setup(t,{expose:n}){const o=t,r=Q("popper"),{arrowOffset:l,arrowRef:a,arrowStyle:s}=e.inject(Af,void 0);return e.watch(()=>o.arrowOffset,i=>{l.value=i}),e.onBeforeUnmount(()=>{a.value=void 0}),n({arrowRef:a}),(i,c)=>(e.openBlock(),e.createElementBlock("span",{ref_key:"arrowRef",ref:a,class:e.normalizeClass(e.unref(r).e("arrow")),style:e.normalizeStyle(e.unref(s)),"data-popper-arrow":""},null,6))}});var vC=se(W6,[["__file","arrow.vue"]]);const j6="ElOnlyChild",VC=e.defineComponent({name:j6,setup(t,{slots:n,attrs:o}){var r;const l=e.inject(bf),a=$b((r=l==null?void 0:l.setForwardRef)!=null?r:st);return()=>{var s;const i=(s=n.default)==null?void 0:s.call(n,o);if(!i||i.length>1)return null;const c=MC(i);return c?e.withDirectives(e.cloneVNode(c,o),[[a]]):null}}});function MC(t){if(!t)return null;const n=t;for(const o of n){if(nt(o))switch(o.type){case e.Comment:continue;case e.Text:case"svg":return IC(o);case e.Fragment:return MC(o.children);default:return o}return IC(o)}return null}function IC(t){const n=Q("only-child");return e.createVNode("span",{class:n.e("content")},[t])}const ri=le({virtualRef:{type:W(Object)},virtualTriggering:Boolean,onMouseenter:{type:W(Function)},onMouseleave:{type:W(Function)},onClick:{type:W(Function)},onKeydown:{type:W(Function)},onFocus:{type:W(Function)},onBlur:{type:W(Function)},onContextmenu:{type:W(Function)},id:String,open:Boolean}),U6=ri,G6=e.defineComponent({name:"ElPopperTrigger",inheritAttrs:!1}),q6=e.defineComponent({...G6,props:ri,setup(t,{expose:n}){const o=t,{role:r,triggerRef:l}=e.inject(ti,void 0);Bb(l);const a=e.computed(()=>i.value?o.id:void 0),s=e.computed(()=>{if(r&&r.value==="tooltip")return o.open&&o.id?o.id:void 0}),i=e.computed(()=>{if(r&&r.value!=="tooltip")return r.value}),c=e.computed(()=>i.value?`${o.open}`:void 0);let f;return e.onMounted(()=>{e.watch(()=>o.virtualRef,u=>{u&&(l.value=sn(u))},{immediate:!0}),e.watch(l,(u,d)=>{f==null||f(),f=void 0,Mn(u)&&(["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"].forEach(p=>{var h;const g=o[p];g&&(u.addEventListener(p.slice(2).toLowerCase(),g),(h=d==null?void 0:d.removeEventListener)==null||h.call(d,p.slice(2).toLowerCase(),g))}),f=e.watch([a,s,i,c],p=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((h,g)=>{wt(p[g])?u.removeAttribute(h):u.setAttribute(h,p[g])})},{immediate:!0})),Mn(d)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(p=>d.removeAttribute(p))},{immediate:!0})}),e.onBeforeUnmount(()=>{f==null||f(),f=void 0}),n({triggerRef:l}),(u,d)=>u.virtualTriggering?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(e.unref(VC),e.mergeProps({key:0},u.$attrs,{"aria-controls":e.unref(a),"aria-describedby":e.unref(s),"aria-expanded":e.unref(c),"aria-haspopup":e.unref(i)}),{default:e.withCtx(()=>[e.renderSlot(u.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var PC=se(q6,[["__file","trigger.vue"]]);const zf="focus-trap.focus-after-trapped",Df="focus-trap.focus-after-released",Y6="focus-trap.focusout-prevented",RC={cancelable:!0,bubbles:!1},X6={cancelable:!0,bubbles:!1},OC="focusAfterTrapped",AC="focusAfterReleased",Lf=Symbol("elFocusTrap"),xf=e.ref(),li=e.ref(0),Ff=e.ref(0);let ai=0;const zC=t=>{const n=[],o=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const l=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||l?NodeFilter.FILTER_SKIP:r.tabIndex>=0||r===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)n.push(o.currentNode);return n},DC=(t,n)=>{for(const o of t)if(!Z6(o,n))return o},Z6=(t,n)=>{if(getComputedStyle(t).visibility==="hidden")return!0;for(;t;){if(n&&t===n)return!1;if(getComputedStyle(t).display==="none")return!0;t=t.parentElement}return!1},J6=t=>{const n=zC(t),o=DC(n,t),r=DC(n.reverse(),t);return[o,r]},Q6=t=>t instanceof HTMLInputElement&&"select"in t,or=(t,n)=>{if(t&&t.focus){const o=document.activeElement;t.focus({preventScroll:!0}),Ff.value=window.performance.now(),t!==o&&Q6(t)&&n&&t.select()}};function LC(t,n){const o=[...t],r=t.indexOf(n);return r!==-1&&o.splice(r,1),o}const eF=()=>{let t=[];return{push:r=>{const l=t[0];l&&r!==l&&l.pause(),t=LC(t,r),t.unshift(r)},remove:r=>{var l,a;t=LC(t,r),(a=(l=t[0])==null?void 0:l.resume)==null||a.call(l)}}},tF=(t,n=!1)=>{const o=document.activeElement;for(const r of t)if(or(r,n),document.activeElement!==o)return},xC=eF(),nF=()=>li.value>Ff.value,si=()=>{xf.value="pointer",li.value=window.performance.now()},FC=()=>{xf.value="keyboard",li.value=window.performance.now()},oF=()=>(e.onMounted(()=>{ai===0&&(document.addEventListener("mousedown",si),document.addEventListener("touchstart",si),document.addEventListener("keydown",FC)),ai++}),e.onBeforeUnmount(()=>{ai--,ai<=0&&(document.removeEventListener("mousedown",si),document.removeEventListener("touchstart",si),document.removeEventListener("keydown",FC))}),{focusReason:xf,lastUserFocusTimestamp:li,lastAutomatedFocusTimestamp:Ff}),ii=t=>new CustomEvent(Y6,{...X6,detail:t}),rF=e.defineComponent({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[OC,AC,"focusin","focusout","focusout-prevented","release-requested"],setup(t,{emit:n}){const o=e.ref();let r,l;const{focusReason:a}=oF();Sb(g=>{t.trapped&&!s.paused&&n("release-requested",g)});const s={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},i=g=>{if(!t.loop&&!t.trapped||s.paused)return;const{key:m,altKey:b,ctrlKey:y,metaKey:C,currentTarget:k,shiftKey:w}=g,{loop:E}=t,S=m===pe.tab&&!b&&!y&&!C,_=document.activeElement;if(S&&_){const B=k,[M,P]=J6(B);if(M&&P){if(!w&&_===P){const I=ii({focusReason:a.value});n("focusout-prevented",I),I.defaultPrevented||(g.preventDefault(),E&&or(M,!0))}else if(w&&[M,B].includes(_)){const I=ii({focusReason:a.value});n("focusout-prevented",I),I.defaultPrevented||(g.preventDefault(),E&&or(P,!0))}}else if(_===B){const I=ii({focusReason:a.value});n("focusout-prevented",I),I.defaultPrevented||g.preventDefault()}}};e.provide(Lf,{focusTrapRef:o,onKeydown:i}),e.watch(()=>t.focusTrapEl,g=>{g&&(o.value=g)},{immediate:!0}),e.watch([o],([g],[m])=>{g&&(g.addEventListener("keydown",i),g.addEventListener("focusin",u),g.addEventListener("focusout",d)),m&&(m.removeEventListener("keydown",i),m.removeEventListener("focusin",u),m.removeEventListener("focusout",d))});const c=g=>{n(OC,g)},f=g=>n(AC,g),u=g=>{const m=e.unref(o);if(!m)return;const b=g.target,y=g.relatedTarget,C=b&&m.contains(b);t.trapped||y&&m.contains(y)||(r=y),C&&n("focusin",g),!s.paused&&t.trapped&&(C?l=b:or(l,!0))},d=g=>{const m=e.unref(o);if(!(s.paused||!m))if(t.trapped){const b=g.relatedTarget;!wt(b)&&!m.contains(b)&&setTimeout(()=>{if(!s.paused&&t.trapped){const y=ii({focusReason:a.value});n("focusout-prevented",y),y.defaultPrevented||or(l,!0)}},0)}else{const b=g.target;b&&m.contains(b)||n("focusout",g)}};async function p(){await e.nextTick();const g=e.unref(o);if(g){xC.push(s);const m=g.contains(document.activeElement)?r:document.activeElement;if(r=m,!g.contains(m)){const y=new Event(zf,RC);g.addEventListener(zf,c),g.dispatchEvent(y),y.defaultPrevented||e.nextTick(()=>{let C=t.focusStartEl;De(C)||(or(C),document.activeElement!==C&&(C="first")),C==="first"&&tF(zC(g),!0),(document.activeElement===m||C==="container")&&or(g)})}}}function h(){const g=e.unref(o);if(g){g.removeEventListener(zf,c);const m=new CustomEvent(Df,{...RC,detail:{focusReason:a.value}});g.addEventListener(Df,f),g.dispatchEvent(m),!m.defaultPrevented&&(a.value=="keyboard"||!nF()||g.contains(document.activeElement))&&or(r!=null?r:document.body),g.removeEventListener(Df,f),xC.remove(s)}}return e.onMounted(()=>{t.trapped&&p(),e.watch(()=>t.trapped,g=>{g?p():h()})}),e.onBeforeUnmount(()=>{t.trapped&&h()}),{onKeydown:i}}});function lF(t,n,o,r,l,a){return e.renderSlot(t.$slots,"default",{handleKeydown:t.onKeydown})}var ci=se(rF,[["render",lF],["__file","focus-trap.vue"]]);const aF=["fixed","absolute"],Hf=le({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:W(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:_r,default:"bottom"},popperOptions:{type:W(Object),default:()=>({})},strategy:{type:String,values:aF,default:"absolute"}}),di=le({...Hf,id:String,style:{type:W([String,Array,Object])},className:{type:W([String,Array,Object])},effect:{type:String,default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{type:W([String,Array,Object])},popperStyle:{type:W([String,Array,Object])},referenceEl:{type:W(Object)},triggerTargetEl:{type:W(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{type:String,default:void 0},virtualTriggering:Boolean,zIndex:Number}),Kf={mouseenter:t=>t instanceof MouseEvent,mouseleave:t=>t instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},sF=Hf,iF=di,cF=Kf,dF=(t,n=[])=>{const{placement:o,strategy:r,popperOptions:l}=t,a={placement:o,strategy:r,...l,modifiers:[...uF(t),...n]};return pF(a,l==null?void 0:l.modifiers),a},fF=t=>{if(!!He)return sn(t)};function uF(t){const{offset:n,gpuAcceleration:o,fallbackPlacements:r}=t;return[{name:"offset",options:{offset:[0,n!=null?n:12]}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5,fallbackPlacements:r}},{name:"computeStyles",options:{gpuAcceleration:o}}]}function pF(t,n){n&&(t.modifiers=[...t.modifiers,...n!=null?n:[]])}const mF=0,hF=t=>{const{popperInstanceRef:n,contentRef:o,triggerRef:r,role:l}=e.inject(ti,void 0),a=e.ref(),s=e.ref(),i=e.computed(()=>({name:"eventListeners",enabled:!!t.visible})),c=e.computed(()=>{var y;const C=e.unref(a),k=(y=e.unref(s))!=null?y:mF;return{name:"arrow",enabled:!wd(C),options:{element:C,padding:k}}}),f=e.computed(()=>({onFirstUpdate:()=>{g()},...dF(t,[e.unref(c),e.unref(i)])})),u=e.computed(()=>fF(t.referenceEl)||e.unref(r)),{attributes:d,state:p,styles:h,update:g,forceUpdate:m,instanceRef:b}=sb(u,o,f);return e.watch(b,y=>n.value=y),e.onMounted(()=>{e.watch(()=>{var y;return(y=e.unref(u))==null?void 0:y.getBoundingClientRect()},()=>{g()})}),{attributes:d,arrowRef:a,contentRef:o,instanceRef:b,state:p,styles:h,role:l,forceUpdate:m,update:g}},gF=(t,{attributes:n,styles:o,role:r})=>{const{nextZIndex:l}=$r(),a=Q("popper"),s=e.computed(()=>e.unref(n).popper),i=e.ref(be(t.zIndex)?t.zIndex:l()),c=e.computed(()=>[a.b(),a.is("pure",t.pure),a.is(t.effect),t.popperClass]),f=e.computed(()=>[{zIndex:e.unref(i)},e.unref(o).popper,t.popperStyle||{}]),u=e.computed(()=>r.value==="dialog"?"false":void 0),d=e.computed(()=>e.unref(o).arrow||{});return{ariaModal:u,arrowStyle:d,contentAttrs:s,contentClass:c,contentStyle:f,contentZIndex:i,updateZIndex:()=>{i.value=be(t.zIndex)?t.zIndex:l()}}},yF=(t,n)=>{const o=e.ref(!1),r=e.ref();return{focusStartRef:r,trapped:o,onFocusAfterReleased:f=>{var u;((u=f.detail)==null?void 0:u.focusReason)!=="pointer"&&(r.value="first",n("blur"))},onFocusAfterTrapped:()=>{n("focus")},onFocusInTrap:f=>{t.visible&&!o.value&&(f.target&&(r.value=f.target),o.value=!0)},onFocusoutPrevented:f=>{t.trapping||(f.detail.focusReason==="pointer"&&f.preventDefault(),o.value=!1)},onReleaseRequested:()=>{o.value=!1,n("close")}}},bF=e.defineComponent({name:"ElPopperContent"}),CF=e.defineComponent({...bF,props:di,emits:Kf,setup(t,{expose:n,emit:o}){const r=t,{focusStartRef:l,trapped:a,onFocusAfterReleased:s,onFocusAfterTrapped:i,onFocusInTrap:c,onFocusoutPrevented:f,onReleaseRequested:u}=yF(r,o),{attributes:d,arrowRef:p,contentRef:h,styles:g,instanceRef:m,role:b,update:y}=hF(r),{ariaModal:C,arrowStyle:k,contentAttrs:w,contentClass:E,contentStyle:S,updateZIndex:_}=gF(r,{styles:g,attributes:d,role:b}),B=e.inject(Gn,void 0),M=e.ref();e.provide(Af,{arrowStyle:k,arrowRef:p,arrowOffset:M}),B&&(B.addInputId||B.removeInputId)&&e.provide(Gn,{...B,addInputId:st,removeInputId:st});let P;const T=(v=!0)=>{y(),v&&_()},I=()=>{T(!1),r.visible&&r.focusOnShow?a.value=!0:r.visible===!1&&(a.value=!1)};return e.onMounted(()=>{e.watch(()=>r.triggerTargetEl,(v,O)=>{P==null||P(),P=void 0;const D=e.unref(v||h.value),z=e.unref(O||h.value);Mn(D)&&(P=e.watch([b,()=>r.ariaLabel,C,()=>r.id],$=>{["role","aria-label","aria-modal","id"].forEach((R,N)=>{wt($[N])?D.removeAttribute(R):D.setAttribute(R,$[N])})},{immediate:!0})),z!==D&&Mn(z)&&["role","aria-label","aria-modal","id"].forEach($=>{z.removeAttribute($)})},{immediate:!0}),e.watch(()=>r.visible,I,{immediate:!0})}),e.onBeforeUnmount(()=>{P==null||P(),P=void 0}),n({popperContentRef:h,popperInstanceRef:m,updatePopper:T,contentStyle:S}),(v,O)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({ref_key:"contentRef",ref:h},e.unref(w),{style:e.unref(S),class:e.unref(E),tabindex:"-1",onMouseenter:O[0]||(O[0]=D=>v.$emit("mouseenter",D)),onMouseleave:O[1]||(O[1]=D=>v.$emit("mouseleave",D))}),[e.createVNode(e.unref(ci),{trapped:e.unref(a),"trap-on-focus-in":!0,"focus-trap-el":e.unref(h),"focus-start-el":e.unref(l),onFocusAfterTrapped:e.unref(i),onFocusAfterReleased:e.unref(s),onFocusin:e.unref(c),onFocusoutPrevented:e.unref(f),onReleaseRequested:e.unref(u)},{default:e.withCtx(()=>[e.renderSlot(v.$slots,"default")]),_:3},8,["trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16))}});var HC=se(CF,[["__file","content.vue"]]);const Wf=Me(F6),ka=Symbol("elTooltip"),Pt=le({..._b,...di,appendTo:{type:W([String,Object])},content:{type:String,default:""},rawContent:{type:Boolean,default:!1},persistent:Boolean,ariaLabel:String,visible:{type:W(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean}),gl=le({...ri,disabled:Boolean,trigger:{type:W([String,Array]),default:"hover"},triggerKeys:{type:W(Array),default:()=>[pe.enter,pe.space]}}),{useModelToggleProps:KC,useModelToggleEmits:WC,useModelToggle:jC}=nf("visible"),UC=le({...ni,...KC,...Pt,...gl,...oi,showArrow:{type:Boolean,default:!0}}),GC=[...WC,"before-show","before-hide","show","hide","open","close"],wF=(t,n)=>Re(t)?t.includes(n):t===n,yl=(t,n,o)=>r=>{wF(e.unref(t),n)&&o(r)},kF=e.defineComponent({name:"ElTooltipTrigger"}),SF=e.defineComponent({...kF,props:gl,setup(t,{expose:n}){const o=t,r=Q("tooltip"),{controlled:l,id:a,open:s,onOpen:i,onClose:c,onToggle:f}=e.inject(ka,void 0),u=e.ref(null),d=()=>{if(e.unref(l)||o.disabled)return!0},p=e.toRef(o,"trigger"),h=pt(d,yl(p,"hover",i)),g=pt(d,yl(p,"hover",c)),m=pt(d,yl(p,"click",w=>{w.button===0&&f(w)})),b=pt(d,yl(p,"focus",i)),y=pt(d,yl(p,"focus",c)),C=pt(d,yl(p,"contextmenu",w=>{w.preventDefault(),f(w)})),k=pt(d,w=>{const{code:E}=w;o.triggerKeys.includes(E)&&(w.preventDefault(),f(w))});return n({triggerRef:u}),(w,E)=>(e.openBlock(),e.createBlock(e.unref(PC),{id:e.unref(a),"virtual-ref":w.virtualRef,open:e.unref(s),"virtual-triggering":w.virtualTriggering,class:e.normalizeClass(e.unref(r).e("trigger")),onBlur:e.unref(y),onClick:e.unref(m),onContextmenu:e.unref(C),onFocus:e.unref(b),onMouseenter:e.unref(h),onMouseleave:e.unref(g),onKeydown:e.unref(k)},{default:e.withCtx(()=>[e.renderSlot(w.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var EF=se(SF,[["__file","trigger.vue"]]);const NF=e.defineComponent({name:"ElTooltipContent",inheritAttrs:!1}),_F=e.defineComponent({...NF,props:Pt,setup(t,{expose:n}){const o=t,{selector:r}=gf(),l=Q("tooltip"),a=e.ref(null),s=e.ref(!1),{controlled:i,id:c,open:f,trigger:u,onClose:d,onOpen:p,onShow:h,onHide:g,onBeforeShow:m,onBeforeHide:b}=e.inject(ka,void 0),y=e.computed(()=>o.transition||`${l.namespace.value}-fade-in-linear`),C=e.computed(()=>o.persistent);e.onBeforeUnmount(()=>{s.value=!0});const k=e.computed(()=>e.unref(C)?!0:e.unref(f)),w=e.computed(()=>o.disabled?!1:e.unref(f)),E=e.computed(()=>o.appendTo||r.value),S=e.computed(()=>{var $;return($=o.style)!=null?$:{}}),_=e.computed(()=>!e.unref(f)),B=()=>{g()},M=()=>{if(e.unref(i))return!0},P=pt(M,()=>{o.enterable&&e.unref(u)==="hover"&&p()}),T=pt(M,()=>{e.unref(u)==="hover"&&d()}),I=()=>{var $,R;(R=($=a.value)==null?void 0:$.updatePopper)==null||R.call($),m==null||m()},v=()=>{b==null||b()},O=()=>{h(),z=mc(e.computed(()=>{var $;return($=a.value)==null?void 0:$.popperContentRef}),()=>{if(e.unref(i))return;e.unref(u)!=="hover"&&d()})},D=()=>{o.virtualTriggering||d()};let z;return e.watch(()=>e.unref(f),$=>{$||z==null||z()},{flush:"post"}),e.watch(()=>o.content,()=>{var $,R;(R=($=a.value)==null?void 0:$.updatePopper)==null||R.call($)}),n({contentRef:a}),($,R)=>(e.openBlock(),e.createBlock(e.Teleport,{disabled:!$.teleported,to:e.unref(E)},[e.createVNode(e.Transition,{name:e.unref(y),onAfterLeave:B,onBeforeEnter:I,onAfterEnter:O,onBeforeLeave:v},{default:e.withCtx(()=>[e.unref(k)?e.withDirectives((e.openBlock(),e.createBlock(e.unref(HC),e.mergeProps({key:0,id:e.unref(c),ref_key:"contentRef",ref:a},$.$attrs,{"aria-label":$.ariaLabel,"aria-hidden":e.unref(_),"boundaries-padding":$.boundariesPadding,"fallback-placements":$.fallbackPlacements,"gpu-acceleration":$.gpuAcceleration,offset:$.offset,placement:$.placement,"popper-options":$.popperOptions,strategy:$.strategy,effect:$.effect,enterable:$.enterable,pure:$.pure,"popper-class":$.popperClass,"popper-style":[$.popperStyle,e.unref(S)],"reference-el":$.referenceEl,"trigger-target-el":$.triggerTargetEl,visible:e.unref(w),"z-index":$.zIndex,onMouseenter:e.unref(P),onMouseleave:e.unref(T),onBlur:D,onClose:e.unref(d)}),{default:e.withCtx(()=>[s.value?e.createCommentVNode("v-if",!0):e.renderSlot($.$slots,"default",{key:0})]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[e.vShow,e.unref(w)]]):e.createCommentVNode("v-if",!0)]),_:3},8,["name"])],8,["disabled","to"]))}});var BF=se(_F,[["__file","content.vue"]]);const $F=["innerHTML"],TF={key:1},vF=e.defineComponent({name:"ElTooltip"}),VF=e.defineComponent({...vF,props:UC,emits:GC,setup(t,{expose:n,emit:o}){const r=t;Nb();const l=rn(),a=e.ref(),s=e.ref(),i=()=>{var y;const C=e.unref(a);C&&((y=C.popperInstanceRef)==null||y.update())},c=e.ref(!1),f=e.ref(),{show:u,hide:d,hasUpdateHandler:p}=jC({indicator:c,toggleReason:f}),{onOpen:h,onClose:g}=yf({showAfter:e.toRef(r,"showAfter"),hideAfter:e.toRef(r,"hideAfter"),autoClose:e.toRef(r,"autoClose"),open:u,close:d}),m=e.computed(()=>Tt(r.visible)&&!p.value);e.provide(ka,{controlled:m,id:l,open:e.readonly(c),trigger:e.toRef(r,"trigger"),onOpen:y=>{h(y)},onClose:y=>{g(y)},onToggle:y=>{e.unref(c)?g(y):h(y)},onShow:()=>{o("show",f.value)},onHide:()=>{o("hide",f.value)},onBeforeShow:()=>{o("before-show",f.value)},onBeforeHide:()=>{o("before-hide",f.value)},updatePopper:i}),e.watch(()=>r.disabled,y=>{y&&c.value&&(c.value=!1)});const b=y=>{var C,k;const w=(k=(C=s.value)==null?void 0:C.contentRef)==null?void 0:k.popperContentRef,E=(y==null?void 0:y.relatedTarget)||document.activeElement;return w&&w.contains(E)};return e.onDeactivated(()=>c.value&&d()),n({popperRef:a,contentRef:s,isFocusInsideContent:b,updatePopper:i,onOpen:h,onClose:g,hide:d}),(y,C)=>(e.openBlock(),e.createBlock(e.unref(Wf),{ref_key:"popperRef",ref:a,role:y.role},{default:e.withCtx(()=>[e.createVNode(EF,{disabled:y.disabled,trigger:y.trigger,"trigger-keys":y.triggerKeys,"virtual-ref":y.virtualRef,"virtual-triggering":y.virtualTriggering},{default:e.withCtx(()=>[y.$slots.default?e.renderSlot(y.$slots,"default",{key:0}):e.createCommentVNode("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),e.createVNode(BF,{ref_key:"contentRef",ref:s,"aria-label":y.ariaLabel,"boundaries-padding":y.boundariesPadding,content:y.content,disabled:y.disabled,effect:y.effect,enterable:y.enterable,"fallback-placements":y.fallbackPlacements,"hide-after":y.hideAfter,"gpu-acceleration":y.gpuAcceleration,offset:y.offset,persistent:y.persistent,"popper-class":y.popperClass,"popper-style":y.popperStyle,placement:y.placement,"popper-options":y.popperOptions,pure:y.pure,"raw-content":y.rawContent,"reference-el":y.referenceEl,"trigger-target-el":y.triggerTargetEl,"show-after":y.showAfter,strategy:y.strategy,teleported:y.teleported,transition:y.transition,"virtual-triggering":y.virtualTriggering,"z-index":y.zIndex,"append-to":y.appendTo},{default:e.withCtx(()=>[e.renderSlot(y.$slots,"content",{},()=>[y.rawContent?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:y.content},null,8,$F)):(e.openBlock(),e.createElementBlock("span",TF,e.toDisplayString(y.content),1))]),y.showArrow?(e.openBlock(),e.createBlock(e.unref(vC),{key:0,"arrow-offset":y.arrowOffset},null,8,["arrow-offset"])):e.createCommentVNode("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","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});var MF=se(VF,[["__file","tooltip.vue"]]);const Zt=Me(MF),qC=le({valueKey:{type:String,default:"value"},modelValue:{type:[String,Number],default:""},debounce:{type:Number,default:300},placement:{type:W(String),values:["top","top-start","top-end","bottom","bottom-start","bottom-end"],default:"bottom-start"},fetchSuggestions:{type:W([Function,Array]),default:st},popperClass:{type:String,default:""},triggerOnFocus:{type:Boolean,default:!0},selectWhenUnmatched:{type:Boolean,default:!1},hideLoading:{type:Boolean,default:!1},label:{type:String},teleported:Pt.teleported,highlightFirstItem:{type:Boolean,default:!1},fitInputWidth:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},name:String}),YC={[Ie]:t=>De(t),[qt]:t=>De(t),[at]:t=>De(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,clear:()=>!0,select:t=>nt(t)},IF=["aria-expanded","aria-owns"],PF={key:0},RF=["id","aria-selected","onClick"],XC="ElAutocomplete",OF=e.defineComponent({name:XC,inheritAttrs:!1}),AF=e.defineComponent({...OF,props:qC,emits:YC,setup(t,{expose:n,emit:o}){const r=t,l=As(),a=e.useAttrs(),s=Yt(),i=Q("autocomplete"),c=e.ref(),f=e.ref(),u=e.ref(),d=e.ref();let p=!1,h=!1;const g=e.ref([]),m=e.ref(-1),b=e.ref(""),y=e.ref(!1),C=e.ref(!1),k=e.ref(!1),w=e.computed(()=>i.b(String(Os()))),E=e.computed(()=>a.style),S=e.computed(()=>(g.value.length>0||k.value)&&y.value),_=e.computed(()=>!r.hideLoading&&k.value),B=e.computed(()=>c.value?Array.from(c.value.$el.querySelectorAll("input")):[]),M=()=>{S.value&&(b.value=`${c.value.$el.offsetWidth}px`)},P=()=>{m.value=-1},I=Gt(async Y=>{if(C.value)return;const Z=U=>{k.value=!1,!C.value&&(Re(U)?(g.value=U,m.value=r.highlightFirstItem?0:-1):vt(XC,"autocomplete suggestions must be an array"))};if(k.value=!0,Re(r.fetchSuggestions))Z(r.fetchSuggestions);else{const U=await r.fetchSuggestions(Y,Z);Re(U)&&Z(U)}},r.debounce),v=Y=>{const Z=!!Y;if(o(qt,Y),o(Ie,Y),C.value=!1,y.value||(y.value=Z),!r.triggerOnFocus&&!Y){C.value=!0,g.value=[];return}I(Y)},O=Y=>{var Z;s.value||(((Z=Y.target)==null?void 0:Z.tagName)!=="INPUT"||B.value.includes(document.activeElement))&&(y.value=!0)},D=Y=>{o(at,Y)},z=Y=>{h?h=!1:(y.value=!0,o("focus",Y),r.triggerOnFocus&&!p&&I(String(r.modelValue)))},$=Y=>{setTimeout(()=>{var Z;if((Z=u.value)!=null&&Z.isFocusInsideContent()){h=!0;return}y.value&&x(),o("blur",Y)})},R=()=>{y.value=!1,o(Ie,""),o("clear")},N=async()=>{S.value&&m.value>=0&&m.value{S.value&&(Y.preventDefault(),Y.stopPropagation(),x())},x=()=>{y.value=!1},H=()=>{var Y;(Y=c.value)==null||Y.focus()},K=()=>{var Y;(Y=c.value)==null||Y.blur()},q=async Y=>{o(qt,Y[r.valueKey]),o(Ie,Y[r.valueKey]),o("select",Y),g.value=[],m.value=-1},ne=Y=>{if(!S.value||k.value)return;if(Y<0){m.value=-1;return}Y>=g.value.length&&(Y=g.value.length-1);const Z=f.value.querySelector(`.${i.be("suggestion","wrap")}`),re=Z.querySelectorAll(`.${i.be("suggestion","list")} li`)[Y],te=Z.scrollTop,{offsetTop:oe,scrollHeight:ie}=re;oe+ie>te+Z.clientHeight&&(Z.scrollTop+=ie),oe{S.value&&x()}),e.onMounted(()=>{c.value.ref.setAttribute("role","textbox"),c.value.ref.setAttribute("aria-autocomplete","list"),c.value.ref.setAttribute("aria-controls","id"),c.value.ref.setAttribute("aria-activedescendant",`${w.value}-item-${m.value}`),p=c.value.ref.hasAttribute("readonly")}),n({highlightedIndex:m,activated:y,loading:k,inputRef:c,popperRef:u,suggestions:g,handleSelect:q,handleKeyEnter:N,focus:H,blur:K,close:x,highlight:ne}),(Y,Z)=>(e.openBlock(),e.createBlock(e.unref(Zt),{ref_key:"popperRef",ref:u,visible:e.unref(S),placement:Y.placement,"fallback-placements":["bottom-start","top-start"],"popper-class":[e.unref(i).e("popper"),Y.popperClass],teleported:Y.teleported,"gpu-acceleration":!1,pure:"","manual-mode":"",effect:"light",trigger:"click",transition:`${e.unref(i).namespace.value}-zoom-in-top`,persistent:"",role:"listbox",onBeforeShow:M,onHide:P},{content:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"regionRef",ref:f,class:e.normalizeClass([e.unref(i).b("suggestion"),e.unref(i).is("loading",e.unref(_))]),style:e.normalizeStyle({[Y.fitInputWidth?"width":"minWidth"]:b.value,outline:"none"}),role:"region"},[e.createVNode(e.unref(mo),{id:e.unref(w),tag:"ul","wrap-class":e.unref(i).be("suggestion","wrap"),"view-class":e.unref(i).be("suggestion","list"),role:"listbox"},{default:e.withCtx(()=>[e.unref(_)?(e.openBlock(),e.createElementBlock("li",PF,[e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(i).is("loading"))},{default:e.withCtx(()=>[e.createVNode(e.unref(Zo))]),_:1},8,["class"])])):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(g.value,(U,re)=>(e.openBlock(),e.createElementBlock("li",{id:`${e.unref(w)}-item-${re}`,key:re,class:e.normalizeClass({highlighted:m.value===re}),role:"option","aria-selected":m.value===re,onClick:te=>q(U)},[e.renderSlot(Y.$slots,"default",{item:U},()=>[e.createTextVNode(e.toDisplayString(U[Y.valueKey]),1)])],10,RF))),128))]),_:3},8,["id","wrap-class","view-class"])],6)]),default:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"listboxRef",ref:d,class:e.normalizeClass([e.unref(i).b(),Y.$attrs.class]),style:e.normalizeStyle(e.unref(E)),role:"combobox","aria-haspopup":"listbox","aria-expanded":e.unref(S),"aria-owns":e.unref(w)},[e.createVNode(e.unref(Ft),e.mergeProps({ref_key:"inputRef",ref:c},e.unref(l),{clearable:Y.clearable,disabled:e.unref(s),name:Y.name,"model-value":Y.modelValue,onInput:v,onChange:D,onFocus:z,onBlur:$,onClear:R,onKeydown:[Z[0]||(Z[0]=e.withKeys(e.withModifiers(U=>ne(m.value-1),["prevent"]),["up"])),Z[1]||(Z[1]=e.withKeys(e.withModifiers(U=>ne(m.value+1),["prevent"]),["down"])),e.withKeys(N,["enter"]),e.withKeys(x,["tab"]),e.withKeys(A,["esc"])],onMousedown:O}),e.createSlots({_:2},[Y.$slots.prepend?{name:"prepend",fn:e.withCtx(()=>[e.renderSlot(Y.$slots,"prepend")])}:void 0,Y.$slots.append?{name:"append",fn:e.withCtx(()=>[e.renderSlot(Y.$slots,"append")])}:void 0,Y.$slots.prefix?{name:"prefix",fn:e.withCtx(()=>[e.renderSlot(Y.$slots,"prefix")])}:void 0,Y.$slots.suffix?{name:"suffix",fn:e.withCtx(()=>[e.renderSlot(Y.$slots,"suffix")])}:void 0]),1040,["clearable","disabled","name","model-value","onKeydown"])],14,IF)]),_:3},8,["visible","placement","popper-class","teleported","transition"]))}});var zF=se(AF,[["__file","autocomplete.vue"]]);const ZC=Me(zF),JC=le({size:{type:[Number,String],values:Wn,default:"",validator:t=>be(t)},shape:{type:String,values:["circle","square"],default:"circle"},icon:{type:ot},src:{type:String,default:""},alt:String,srcSet:String,fit:{type:W(String),default:"cover"}}),QC={error:t=>t instanceof Event},DF=["src","alt","srcset"],LF=e.defineComponent({name:"ElAvatar"}),xF=e.defineComponent({...LF,props:JC,emits:QC,setup(t,{emit:n}){const o=t,r=Q("avatar"),l=e.ref(!1),a=e.computed(()=>{const{size:f,icon:u,shape:d}=o,p=[r.b()];return De(f)&&p.push(r.m(f)),u&&p.push(r.m("icon")),d&&p.push(r.m(d)),p}),s=e.computed(()=>{const{size:f}=o;return be(f)?r.cssVarBlock({size:kt(f)||""}):void 0}),i=e.computed(()=>({objectFit:o.fit}));e.watch(()=>o.src,()=>l.value=!1);function c(f){l.value=!0,n("error",f)}return(f,u)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(a)),style:e.normalizeStyle(e.unref(s))},[(f.src||f.srcSet)&&!l.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:f.src,alt:f.alt,srcset:f.srcSet,style:e.normalizeStyle(e.unref(i)),onError:c},null,44,DF)):f.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(f.icon)))]),_:1})):e.renderSlot(f.$slots,"default",{key:2})],6))}});var FF=se(xF,[["__file","avatar.vue"]]);const ew=Me(FF),tw={visibilityHeight:{type:Number,default:200},target:{type:String,default:""},right:{type:Number,default:40},bottom:{type:Number,default:40}},nw={click:t=>t instanceof MouseEvent},HF=(t,n,o)=>{const r=e.shallowRef(),l=e.shallowRef(),a=e.ref(!1),s=()=>{r.value&&(a.value=r.value.scrollTop>=t.visibilityHeight)},i=f=>{var u;(u=r.value)==null||u.scrollTo({top:0,behavior:"smooth"}),n("click",f)},c=Mm(s,300,!0);return rt(l,"scroll",c),e.onMounted(()=>{var f;l.value=document,r.value=document.documentElement,t.target&&(r.value=(f=document.querySelector(t.target))!=null?f:void 0,r.value||vt(o,`target does not exist: ${t.target}`),l.value=r.value),s()}),{visible:a,handleClick:i}},ow="ElBacktop",KF=e.defineComponent({name:ow}),WF=e.defineComponent({...KF,props:tw,emits:nw,setup(t,{emit:n}){const o=t,r=Q("backtop"),{handleClick:l,visible:a}=HF(o,n,ow),s=e.computed(()=>({right:`${o.right}px`,bottom:`${o.bottom}px`}));return(i,c)=>(e.openBlock(),e.createBlock(e.Transition,{name:`${e.unref(r).namespace.value}-fade-in`},{default:e.withCtx(()=>[e.unref(a)?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(e.unref(s)),class:e.normalizeClass(e.unref(r).b()),onClick:c[0]||(c[0]=e.withModifiers((...f)=>e.unref(l)&&e.unref(l)(...f),["stop"]))},[e.renderSlot(i.$slots,"default",{},()=>[e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(r).e("icon"))},{default:e.withCtx(()=>[e.createVNode(e.unref(lD))]),_:1},8,["class"])])],6)):e.createCommentVNode("v-if",!0)]),_:3},8,["name"]))}});var jF=se(WF,[["__file","backtop.vue"]]);const rw=Me(jF),lw=le({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"}}),UF=["textContent"],GF=e.defineComponent({name:"ElBadge"}),qF=e.defineComponent({...GF,props:lw,setup(t,{expose:n}){const o=t,r=Q("badge"),l=e.computed(()=>o.isDot?"":be(o.value)&&be(o.max)?o.max(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(r).b())},[e.renderSlot(a.$slots,"default"),e.createVNode(e.Transition,{name:`${e.unref(r).namespace.value}-zoom-in-center`,persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("sup",{class:e.normalizeClass([e.unref(r).e("content"),e.unref(r).em("content",a.type),e.unref(r).is("fixed",!!a.$slots.default),e.unref(r).is("dot",a.isDot)]),textContent:e.toDisplayString(e.unref(l))},null,10,UF),[[e.vShow,!a.hidden&&(e.unref(l)||a.isDot)]])]),_:1},8,["name"])],2))}});var YF=se(qF,[["__file","badge.vue"]]);const jf=Me(YF),Uf=Symbol("breadcrumbKey"),aw=le({separator:{type:String,default:"/"},separatorIcon:{type:ot}}),XF=e.defineComponent({name:"ElBreadcrumb"}),ZF=e.defineComponent({...XF,props:aw,setup(t){const n=t,o=Q("breadcrumb"),r=e.ref();return e.provide(Uf,n),e.onMounted(()=>{const l=r.value.querySelectorAll(`.${o.e("item")}`);l.length&&l[l.length-1].setAttribute("aria-current","page")}),(l,a)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"breadcrumb",ref:r,class:e.normalizeClass(e.unref(o).b()),"aria-label":"Breadcrumb",role:"navigation"},[e.renderSlot(l.$slots,"default")],2))}});var JF=se(ZF,[["__file","breadcrumb.vue"]]);const sw=le({to:{type:W([String,Object]),default:""},replace:{type:Boolean,default:!1}}),QF=e.defineComponent({name:"ElBreadcrumbItem"}),e5=e.defineComponent({...QF,props:sw,setup(t){const n=t,o=e.getCurrentInstance(),r=e.inject(Uf,void 0),l=Q("breadcrumb"),a=o.appContext.config.globalProperties.$router,s=e.ref(),i=()=>{!n.to||!a||(n.replace?a.replace(n.to):a.push(n.to))};return(c,f)=>{var u,d;return e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(l).e("item"))},[e.createElementVNode("span",{ref_key:"link",ref:s,class:e.normalizeClass([e.unref(l).e("inner"),e.unref(l).is("link",!!c.to)]),role:"link",onClick:i},[e.renderSlot(c.$slots,"default")],2),(u=e.unref(r))!=null&&u.separatorIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(l).e("separator"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(r).separatorIcon)))]),_:1},8,["class"])):(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(l).e("separator")),role:"presentation"},e.toDisplayString((d=e.unref(r))==null?void 0:d.separator),3))],2)}}});var iw=se(e5,[["__file","breadcrumb-item.vue"]]);const cw=Me(JF,{BreadcrumbItem:iw}),dw=ht(iw),Gf=Symbol("buttonGroupContextKey"),t5=(t,n)=>{jn({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},e.computed(()=>t.type==="text"));const o=e.inject(Gf,void 0),r=ha("button"),{form:l}=Xt(),a=St(e.computed(()=>o==null?void 0:o.size)),s=Yt(),i=e.ref(),c=e.useSlots(),f=e.computed(()=>t.type||(o==null?void 0:o.type)||""),u=e.computed(()=>{var g,m,b;return(b=(m=t.autoInsertSpace)!=null?m:(g=r.value)==null?void 0:g.autoInsertSpace)!=null?b:!1}),d=e.computed(()=>t.tag==="button"?{ariaDisabled:s.value||t.loading,disabled:s.value||t.loading,autofocus:t.autofocus,type:t.nativeType}:{}),p=e.computed(()=>{var g;const m=(g=c.default)==null?void 0:g.call(c);if(u.value&&(m==null?void 0:m.length)===1){const b=m[0];if((b==null?void 0:b.type)===e.Text){const y=b.children;return/^\p{Unified_Ideograph}{2}$/u.test(y.trim())}}return!1});return{_disabled:s,_size:a,_type:f,_ref:i,_props:d,shouldAddSpace:p,handleClick:g=>{t.nativeType==="reset"&&(l==null||l.resetFields()),n("click",g)}}},fi=["default","primary","success","warning","info","danger","text",""],fw=["button","submit","reset"],ui=le({size:Vt,disabled:Boolean,type:{type:String,values:fi,default:""},icon:{type:ot},nativeType:{type:String,values:fw,default:"button"},loading:Boolean,loadingIcon:{type:ot,default:()=>Zo},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:W([String,Object]),default:"button"}}),uw={click:t=>t instanceof MouseEvent};function Ht(t,n){n5(t)&&(t="100%");var o=o5(t);return t=n===360?t:Math.min(n,Math.max(0,parseFloat(t))),o&&(t=parseInt(String(t*n),10)/100),Math.abs(t-n)<1e-6?1:(n===360?t=(t<0?t%n+n:t%n)/parseFloat(String(n)):t=t%n/parseFloat(String(n)),t)}function pi(t){return Math.min(1,Math.max(0,t))}function n5(t){return typeof t=="string"&&t.indexOf(".")!==-1&&parseFloat(t)===1}function o5(t){return typeof t=="string"&&t.indexOf("%")!==-1}function pw(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function mi(t){return t<=1?"".concat(Number(t)*100,"%"):t}function Mr(t){return t.length===1?"0"+t:String(t)}function r5(t,n,o){return{r:Ht(t,255)*255,g:Ht(n,255)*255,b:Ht(o,255)*255}}function mw(t,n,o){t=Ht(t,255),n=Ht(n,255),o=Ht(o,255);var r=Math.max(t,n,o),l=Math.min(t,n,o),a=0,s=0,i=(r+l)/2;if(r===l)s=0,a=0;else{var c=r-l;switch(s=i>.5?c/(2-r-l):c/(r+l),r){case t:a=(n-o)/c+(n1&&(o-=1),o<1/6?t+(n-t)*(6*o):o<1/2?n:o<2/3?t+(n-t)*(2/3-o)*6:t}function l5(t,n,o){var r,l,a;if(t=Ht(t,360),n=Ht(n,100),o=Ht(o,100),n===0)l=o,a=o,r=o;else{var s=o<.5?o*(1+n):o+n-o*n,i=2*o-s;r=qf(i,s,t+1/3),l=qf(i,s,t),a=qf(i,s,t-1/3)}return{r:r*255,g:l*255,b:a*255}}function hw(t,n,o){t=Ht(t,255),n=Ht(n,255),o=Ht(o,255);var r=Math.max(t,n,o),l=Math.min(t,n,o),a=0,s=r,i=r-l,c=r===0?0:i/r;if(r===l)a=0;else{switch(r){case t:a=(n-o)/i+(n>16,g:(t&65280)>>8,b:t&255}}var Yf={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 d5(t){var n={r:0,g:0,b:0},o=1,r=null,l=null,a=null,s=!1,i=!1;return typeof t=="string"&&(t=p5(t)),typeof t=="object"&&(Vo(t.r)&&Vo(t.g)&&Vo(t.b)?(n=r5(t.r,t.g,t.b),s=!0,i=String(t.r).substr(-1)==="%"?"prgb":"rgb"):Vo(t.h)&&Vo(t.s)&&Vo(t.v)?(r=mi(t.s),l=mi(t.v),n=a5(t.h,r,l),s=!0,i="hsv"):Vo(t.h)&&Vo(t.s)&&Vo(t.l)&&(r=mi(t.s),a=mi(t.l),n=l5(t.h,r,a),s=!0,i="hsl"),Object.prototype.hasOwnProperty.call(t,"a")&&(o=t.a)),o=pw(o),{ok:s,format:t.format||i,r:Math.min(255,Math.max(n.r,0)),g:Math.min(255,Math.max(n.g,0)),b:Math.min(255,Math.max(n.b,0)),a:o}}var f5="[-\\+]?\\d+%?",u5="[-\\+]?\\d*\\.\\d+%?",rr="(?:".concat(u5,")|(?:").concat(f5,")"),Xf="[\\s|\\(]+(".concat(rr,")[,|\\s]+(").concat(rr,")[,|\\s]+(").concat(rr,")\\s*\\)?"),Zf="[\\s|\\(]+(".concat(rr,")[,|\\s]+(").concat(rr,")[,|\\s]+(").concat(rr,")[,|\\s]+(").concat(rr,")\\s*\\)?"),Yn={CSS_UNIT:new RegExp(rr),rgb:new RegExp("rgb"+Xf),rgba:new RegExp("rgba"+Zf),hsl:new RegExp("hsl"+Xf),hsla:new RegExp("hsla"+Zf),hsv:new RegExp("hsv"+Xf),hsva:new RegExp("hsva"+Zf),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 p5(t){if(t=t.trim().toLowerCase(),t.length===0)return!1;var n=!1;if(Yf[t])t=Yf[t],n=!0;else if(t==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var o=Yn.rgb.exec(t);return o?{r:o[1],g:o[2],b:o[3]}:(o=Yn.rgba.exec(t),o?{r:o[1],g:o[2],b:o[3],a:o[4]}:(o=Yn.hsl.exec(t),o?{h:o[1],s:o[2],l:o[3]}:(o=Yn.hsla.exec(t),o?{h:o[1],s:o[2],l:o[3],a:o[4]}:(o=Yn.hsv.exec(t),o?{h:o[1],s:o[2],v:o[3]}:(o=Yn.hsva.exec(t),o?{h:o[1],s:o[2],v:o[3],a:o[4]}:(o=Yn.hex8.exec(t),o?{r:Sn(o[1]),g:Sn(o[2]),b:Sn(o[3]),a:yw(o[4]),format:n?"name":"hex8"}:(o=Yn.hex6.exec(t),o?{r:Sn(o[1]),g:Sn(o[2]),b:Sn(o[3]),format:n?"name":"hex"}:(o=Yn.hex4.exec(t),o?{r:Sn(o[1]+o[1]),g:Sn(o[2]+o[2]),b:Sn(o[3]+o[3]),a:yw(o[4]+o[4]),format:n?"name":"hex8"}:(o=Yn.hex3.exec(t),o?{r:Sn(o[1]+o[1]),g:Sn(o[2]+o[2]),b:Sn(o[3]+o[3]),format:n?"name":"hex"}:!1)))))))))}function Vo(t){return Boolean(Yn.CSS_UNIT.exec(String(t)))}var bw=function(){function t(n,o){n===void 0&&(n=""),o===void 0&&(o={});var r;if(n instanceof t)return n;typeof n=="number"&&(n=c5(n)),this.originalInput=n;var l=d5(n);this.originalInput=n,this.r=l.r,this.g=l.g,this.b=l.b,this.a=l.a,this.roundA=Math.round(100*this.a)/100,this.format=(r=o.format)!==null&&r!==void 0?r:l.format,this.gradientType=o.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=l.ok}return t.prototype.isDark=function(){return this.getBrightness()<128},t.prototype.isLight=function(){return!this.isDark()},t.prototype.getBrightness=function(){var n=this.toRgb();return(n.r*299+n.g*587+n.b*114)/1e3},t.prototype.getLuminance=function(){var n=this.toRgb(),o,r,l,a=n.r/255,s=n.g/255,i=n.b/255;return a<=.03928?o=a/12.92:o=Math.pow((a+.055)/1.055,2.4),s<=.03928?r=s/12.92:r=Math.pow((s+.055)/1.055,2.4),i<=.03928?l=i/12.92:l=Math.pow((i+.055)/1.055,2.4),.2126*o+.7152*r+.0722*l},t.prototype.getAlpha=function(){return this.a},t.prototype.setAlpha=function(n){return this.a=pw(n),this.roundA=Math.round(100*this.a)/100,this},t.prototype.toHsv=function(){var n=hw(this.r,this.g,this.b);return{h:n.h*360,s:n.s,v:n.v,a:this.a}},t.prototype.toHsvString=function(){var n=hw(this.r,this.g,this.b),o=Math.round(n.h*360),r=Math.round(n.s*100),l=Math.round(n.v*100);return this.a===1?"hsv(".concat(o,", ").concat(r,"%, ").concat(l,"%)"):"hsva(".concat(o,", ").concat(r,"%, ").concat(l,"%, ").concat(this.roundA,")")},t.prototype.toHsl=function(){var n=mw(this.r,this.g,this.b);return{h:n.h*360,s:n.s,l:n.l,a:this.a}},t.prototype.toHslString=function(){var n=mw(this.r,this.g,this.b),o=Math.round(n.h*360),r=Math.round(n.s*100),l=Math.round(n.l*100);return this.a===1?"hsl(".concat(o,", ").concat(r,"%, ").concat(l,"%)"):"hsla(".concat(o,", ").concat(r,"%, ").concat(l,"%, ").concat(this.roundA,")")},t.prototype.toHex=function(n){return n===void 0&&(n=!1),gw(this.r,this.g,this.b,n)},t.prototype.toHexString=function(n){return n===void 0&&(n=!1),"#"+this.toHex(n)},t.prototype.toHex8=function(n){return n===void 0&&(n=!1),s5(this.r,this.g,this.b,this.a,n)},t.prototype.toHex8String=function(n){return n===void 0&&(n=!1),"#"+this.toHex8(n)},t.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},t.prototype.toRgbString=function(){var n=Math.round(this.r),o=Math.round(this.g),r=Math.round(this.b);return this.a===1?"rgb(".concat(n,", ").concat(o,", ").concat(r,")"):"rgba(".concat(n,", ").concat(o,", ").concat(r,", ").concat(this.roundA,")")},t.prototype.toPercentageRgb=function(){var n=function(o){return"".concat(Math.round(Ht(o,255)*100),"%")};return{r:n(this.r),g:n(this.g),b:n(this.b),a:this.a}},t.prototype.toPercentageRgbString=function(){var n=function(o){return Math.round(Ht(o,255)*100)};return this.a===1?"rgb(".concat(n(this.r),"%, ").concat(n(this.g),"%, ").concat(n(this.b),"%)"):"rgba(".concat(n(this.r),"%, ").concat(n(this.g),"%, ").concat(n(this.b),"%, ").concat(this.roundA,")")},t.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var n="#"+gw(this.r,this.g,this.b,!1),o=0,r=Object.entries(Yf);o=0,a=!o&&l&&(n.startsWith("hex")||n==="name");return a?n==="name"&&this.a===0?this.toName():this.toRgbString():(n==="rgb"&&(r=this.toRgbString()),n==="prgb"&&(r=this.toPercentageRgbString()),(n==="hex"||n==="hex6")&&(r=this.toHexString()),n==="hex3"&&(r=this.toHexString(!0)),n==="hex4"&&(r=this.toHex8String(!0)),n==="hex8"&&(r=this.toHex8String()),n==="name"&&(r=this.toName()),n==="hsl"&&(r=this.toHslString()),n==="hsv"&&(r=this.toHsvString()),r||this.toHexString())},t.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},t.prototype.clone=function(){return new t(this.toString())},t.prototype.lighten=function(n){n===void 0&&(n=10);var o=this.toHsl();return o.l+=n/100,o.l=pi(o.l),new t(o)},t.prototype.brighten=function(n){n===void 0&&(n=10);var o=this.toRgb();return o.r=Math.max(0,Math.min(255,o.r-Math.round(255*-(n/100)))),o.g=Math.max(0,Math.min(255,o.g-Math.round(255*-(n/100)))),o.b=Math.max(0,Math.min(255,o.b-Math.round(255*-(n/100)))),new t(o)},t.prototype.darken=function(n){n===void 0&&(n=10);var o=this.toHsl();return o.l-=n/100,o.l=pi(o.l),new t(o)},t.prototype.tint=function(n){return n===void 0&&(n=10),this.mix("white",n)},t.prototype.shade=function(n){return n===void 0&&(n=10),this.mix("black",n)},t.prototype.desaturate=function(n){n===void 0&&(n=10);var o=this.toHsl();return o.s-=n/100,o.s=pi(o.s),new t(o)},t.prototype.saturate=function(n){n===void 0&&(n=10);var o=this.toHsl();return o.s+=n/100,o.s=pi(o.s),new t(o)},t.prototype.greyscale=function(){return this.desaturate(100)},t.prototype.spin=function(n){var o=this.toHsl(),r=(o.h+n)%360;return o.h=r<0?360+r:r,new t(o)},t.prototype.mix=function(n,o){o===void 0&&(o=50);var r=this.toRgb(),l=new t(n).toRgb(),a=o/100,s={r:(l.r-r.r)*a+r.r,g:(l.g-r.g)*a+r.g,b:(l.b-r.b)*a+r.b,a:(l.a-r.a)*a+r.a};return new t(s)},t.prototype.analogous=function(n,o){n===void 0&&(n=6),o===void 0&&(o=30);var r=this.toHsl(),l=360/o,a=[this];for(r.h=(r.h-(l*n>>1)+720)%360;--n;)r.h=(r.h+l)%360,a.push(new t(r));return a},t.prototype.complement=function(){var n=this.toHsl();return n.h=(n.h+180)%360,new t(n)},t.prototype.monochromatic=function(n){n===void 0&&(n=6);for(var o=this.toHsv(),r=o.h,l=o.s,a=o.v,s=[],i=1/n;n--;)s.push(new t({h:r,s:l,v:a})),a=(a+i)%1;return s},t.prototype.splitcomplement=function(){var n=this.toHsl(),o=n.h;return[this,new t({h:(o+72)%360,s:n.s,l:n.l}),new t({h:(o+216)%360,s:n.s,l:n.l})]},t.prototype.onBackground=function(n){var o=this.toRgb(),r=new t(n).toRgb();return new t({r:r.r+(o.r-r.r)*o.a,g:r.g+(o.g-r.g)*o.a,b:r.b+(o.b-r.b)*o.a})},t.prototype.triad=function(){return this.polyad(3)},t.prototype.tetrad=function(){return this.polyad(4)},t.prototype.polyad=function(n){for(var o=this.toHsl(),r=o.h,l=[this],a=360/n,s=1;s{let r={};const l=t.color;if(l){const a=new bw(l),s=t.dark?a.tint(20).toString():lr(a,20);if(t.plain)r=o.cssVarBlock({"bg-color":t.dark?lr(a,90):a.tint(90).toString(),"text-color":l,"border-color":t.dark?lr(a,50):a.tint(50).toString(),"hover-text-color":`var(${o.cssVarName("color-white")})`,"hover-bg-color":l,"hover-border-color":l,"active-bg-color":s,"active-text-color":`var(${o.cssVarName("color-white")})`,"active-border-color":s}),n.value&&(r[o.cssVarBlockName("disabled-bg-color")]=t.dark?lr(a,90):a.tint(90).toString(),r[o.cssVarBlockName("disabled-text-color")]=t.dark?lr(a,50):a.tint(50).toString(),r[o.cssVarBlockName("disabled-border-color")]=t.dark?lr(a,80):a.tint(80).toString());else{const i=t.dark?lr(a,30):a.tint(30).toString(),c=a.isDark()?`var(${o.cssVarName("color-white")})`:`var(${o.cssVarName("color-black")})`;if(r=o.cssVarBlock({"bg-color":l,"text-color":c,"border-color":l,"hover-bg-color":i,"hover-text-color":c,"hover-border-color":i,"active-bg-color":s,"active-border-color":s}),n.value){const f=t.dark?lr(a,50):a.tint(50).toString();r[o.cssVarBlockName("disabled-bg-color")]=f,r[o.cssVarBlockName("disabled-text-color")]=t.dark?"rgba(255, 255, 255, 0.5)":`var(${o.cssVarName("color-white")})`,r[o.cssVarBlockName("disabled-border-color")]=f}}}return r})}const h5=e.defineComponent({name:"ElButton"}),g5=e.defineComponent({...h5,props:ui,emits:uw,setup(t,{expose:n,emit:o}){const r=t,l=m5(r),a=Q("button"),{_ref:s,_size:i,_type:c,_disabled:f,_props:u,shouldAddSpace:d,handleClick:p}=t5(r,o);return n({ref:s,size:i,type:c,disabled:f,shouldAddSpace:d}),(h,g)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.tag),e.mergeProps({ref_key:"_ref",ref:s},e.unref(u),{class:[e.unref(a).b(),e.unref(a).m(e.unref(c)),e.unref(a).m(e.unref(i)),e.unref(a).is("disabled",e.unref(f)),e.unref(a).is("loading",h.loading),e.unref(a).is("plain",h.plain),e.unref(a).is("round",h.round),e.unref(a).is("circle",h.circle),e.unref(a).is("text",h.text),e.unref(a).is("link",h.link),e.unref(a).is("has-bg",h.bg)],style:e.unref(l),onClick:e.unref(p)}),{default:e.withCtx(()=>[h.loading?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[h.$slots.loading?e.renderSlot(h.$slots,"loading",{key:0}):(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass(e.unref(a).is("loading"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.loadingIcon)))]),_:1},8,["class"]))],64)):h.icon||h.$slots.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:1},{default:e.withCtx(()=>[h.icon?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.icon),{key:0})):e.renderSlot(h.$slots,"icon",{key:1})]),_:3})):e.createCommentVNode("v-if",!0),h.$slots.default?(e.openBlock(),e.createElementBlock("span",{key:2,class:e.normalizeClass({[e.unref(a).em("text","expand")]:e.unref(d)})},[e.renderSlot(h.$slots,"default")],2)):e.createCommentVNode("v-if",!0)]),_:3},16,["class","style","onClick"]))}});var y5=se(g5,[["__file","button.vue"]]);const b5={size:ui.size,type:ui.type},C5=e.defineComponent({name:"ElButtonGroup"}),w5=e.defineComponent({...C5,props:b5,setup(t){const n=t;e.provide(Gf,e.reactive({size:e.toRef(n,"size"),type:e.toRef(n,"type")}));const o=Q("button");return(r,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(`${e.unref(o).b("group")}`)},[e.renderSlot(r.$slots,"default")],2))}});var Cw=se(w5,[["__file","button-group.vue"]]);const At=Me(y5,{ButtonGroup:Cw}),Jf=ht(Cw);var Mo=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},ww={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){var o=1e3,r=6e4,l=36e5,a="millisecond",s="second",i="minute",c="hour",f="day",u="week",d="month",p="quarter",h="year",g="date",m="Invalid Date",b=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,C={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("_")},k=function(v,O,D){var z=String(v);return!z||z.length>=O?v:""+Array(O+1-z.length).join(D)+v},w={s:k,z:function(v){var O=-v.utcOffset(),D=Math.abs(O),z=Math.floor(D/60),$=D%60;return(O<=0?"+":"-")+k(z,2,"0")+":"+k($,2,"0")},m:function v(O,D){if(O.date()1)return v(N[0])}else{var A=O.name;S[A]=O,$=A}return!z&&$&&(E=$),$||!z&&E},M=function(v,O){if(_(v))return v.clone();var D=typeof O=="object"?O:{};return D.date=v,D.args=arguments,new T(D)},P=w;P.l=B,P.i=_,P.w=function(v,O){return M(v,{locale:O.$L,utc:O.$u,x:O.$x,$offset:O.$offset})};var T=function(){function v(D){this.$L=B(D.locale,null,!0),this.parse(D)}var O=v.prototype;return O.parse=function(D){this.$d=function(z){var $=z.date,R=z.utc;if($===null)return new Date(NaN);if(P.u($))return new Date;if($ instanceof Date)return new Date($);if(typeof $=="string"&&!/Z$/i.test($)){var N=$.match(b);if(N){var A=N[2]-1||0,x=(N[7]||"0").substring(0,3);return R?new Date(Date.UTC(N[1],A,N[3]||1,N[4]||0,N[5]||0,N[6]||0,x)):new Date(N[1],A,N[3]||1,N[4]||0,N[5]||0,N[6]||0,x)}}return new Date($)}(D),this.$x=D.x||{},this.init()},O.init=function(){var D=this.$d;this.$y=D.getFullYear(),this.$M=D.getMonth(),this.$D=D.getDate(),this.$W=D.getDay(),this.$H=D.getHours(),this.$m=D.getMinutes(),this.$s=D.getSeconds(),this.$ms=D.getMilliseconds()},O.$utils=function(){return P},O.isValid=function(){return this.$d.toString()!==m},O.isSame=function(D,z){var $=M(D);return this.startOf(z)<=$&&$<=this.endOf(z)},O.isAfter=function(D,z){return M(D)68?1900:2e3)},f=function(m){return function(b){this[m]=+b}},u=[/[+-]\d\d:?(\d\d)?|Z/,function(m){(this.zone||(this.zone={})).offset=function(b){if(!b||b==="Z")return 0;var y=b.match(/([+-]|\d\d)/g),C=60*y[1]+(+y[2]||0);return C===0?0:y[0]==="+"?-C:C}(m)}],d=function(m){var b=i[m];return b&&(b.indexOf?b:b.s.concat(b.f))},p=function(m,b){var y,C=i.meridiem;if(C){for(var k=1;k<=24;k+=1)if(m.indexOf(C(k,0,b))>-1){y=k>12;break}}else y=m===(b?"pm":"PM");return y},h={A:[s,function(m){this.afternoon=p(m,!1)}],a:[s,function(m){this.afternoon=p(m,!0)}],S:[/\d/,function(m){this.milliseconds=100*+m}],SS:[l,function(m){this.milliseconds=10*+m}],SSS:[/\d{3}/,function(m){this.milliseconds=+m}],s:[a,f("seconds")],ss:[a,f("seconds")],m:[a,f("minutes")],mm:[a,f("minutes")],H:[a,f("hours")],h:[a,f("hours")],HH:[a,f("hours")],hh:[a,f("hours")],D:[a,f("day")],DD:[l,f("day")],Do:[s,function(m){var b=i.ordinal,y=m.match(/\d+/);if(this.day=y[0],b)for(var C=1;C<=31;C+=1)b(C).replace(/\[|\]/g,"")===m&&(this.day=C)}],M:[a,f("month")],MM:[l,f("month")],MMM:[s,function(m){var b=d("months"),y=(d("monthsShort")||b.map(function(C){return C.slice(0,3)})).indexOf(m)+1;if(y<1)throw new Error;this.month=y%12||y}],MMMM:[s,function(m){var b=d("months").indexOf(m)+1;if(b<1)throw new Error;this.month=b%12||b}],Y:[/[+-]?\d+/,f("year")],YY:[l,function(m){this.year=c(m)}],YYYY:[/\d{4}/,f("year")],Z:u,ZZ:u};function g(m){var b,y;b=m,y=i&&i.formats;for(var C=(m=b.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(M,P,T){var I=T&&T.toUpperCase();return P||y[T]||o[T]||y[I].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(v,O,D){return O||D.slice(1)})})).match(r),k=C.length,w=0;w-1)return new Date(($==="X"?1e3:1)*z);var N=g($)(z),A=N.year,x=N.month,H=N.day,K=N.hours,q=N.minutes,ne=N.seconds,Y=N.milliseconds,Z=N.zone,U=new Date,re=H||(A||x?1:U.getDate()),te=A||U.getFullYear(),oe=0;A&&!x||(oe=x>0?x-1:U.getMonth());var ie=K||0,ye=q||0,Ne=ne||0,Te=Y||0;return Z?new Date(Date.UTC(te,oe,re,ie,ye,Ne,Te+60*Z.offset*1e3)):R?new Date(Date.UTC(te,oe,re,ie,ye,Ne,Te)):new Date(te,oe,re,ie,ye,Ne,Te)}catch(Pe){return new Date("")}}(E,B,S),this.init(),I&&I!==!0&&(this.$L=this.locale(I).$L),T&&E!=this.format(B)&&(this.$d=new Date("")),i={}}else if(B instanceof Array)for(var v=B.length,O=1;O<=v;O+=1){_[1]=B[O-1];var D=y.apply(this,_);if(D.isValid()){this.$d=D.$d,this.$L=D.$L,this.init();break}O===v&&(this.$d=new Date(""))}else k.call(this,w)}}})})(kw);var Qf=kw.exports;const eu=["hours","minutes","seconds"],hi="HH:mm:ss",Ir="YYYY-MM-DD",Sw={date:Ir,dates:Ir,week:"gggg[w]ww",year:"YYYY",month:"YYYY-MM",datetime:`${Ir} ${hi}`,monthrange:"YYYY-MM",daterange:Ir,datetimerange:`${Ir} ${hi}`},gi=(t,n)=>[t>0?t-1:void 0,t,tArray.from(Array.from({length:t}).keys()),tu=t=>t.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim(),nu=t=>t.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g,"").trim(),ou=function(t,n){const o=zl(t),r=zl(n);return o&&r?t.getTime()===n.getTime():!o&&!r?t===n:!1},ru=function(t,n){const o=Re(t),r=Re(n);return o&&r?t.length!==n.length?!1:t.every((l,a)=>ou(l,n[a])):!o&&!r?ou(t,n):!1},lu=function(t,n,o){const r=Vn(n)||n==="x"?ve(t).locale(o):ve(t,n).locale(o);return r.isValid()?r:void 0},au=function(t,n,o){return Vn(n)?t:n==="x"?+t:ve(t).locale(o).format(n)},yi=(t,n)=>{var o;const r=[],l=n==null?void 0:n();for(let a=0;a({})},modelValue:{type:W([Date,Array,String,Number]),default:""},rangeSeparator:{type:String,default:"-"},startPlaceholder:String,endPlaceholder:String,defaultValue:{type:W([Date,Array])},defaultTime:{type:W([Date,Array])},isRange:Boolean,...Ew,disabledDate:{type:Function},cellClassName:{type:Function},shortcuts:{type:Array,default:()=>[]},arrowControl:Boolean,label:{type:String,default:void 0},tabindex:{type:W([String,Number]),default:0},validateEvent:{type:Boolean,default:!0},unlinkPanels:Boolean}),k5=["id","name","placeholder","value","disabled","readonly"],S5=["id","name","placeholder","value","disabled","readonly"],E5=e.defineComponent({name:"Picker"}),N5=e.defineComponent({...E5,props:bi,emits:["update:modelValue","change","focus","blur","calendar-change","panel-change","visible-change","keydown"],setup(t,{expose:n,emit:o}){const r=t,l=e.useAttrs(),{lang:a}=Ke(),s=Q("date"),i=Q("input"),c=Q("range"),{form:f,formItem:u}=Xt(),d=e.inject("ElPopperOptions",{}),p=e.ref(),h=e.ref(),g=e.ref(!1),m=e.ref(!1),b=e.ref(null);let y=!1,C=!1;const k=e.computed(()=>[s.b("editor"),s.bm("editor",r.type),i.e("wrapper"),s.is("disabled",H.value),s.is("active",g.value),c.b("editor"),he?c.bm("editor",he.value):"",l.class]),w=e.computed(()=>[i.e("icon"),c.e("close-icon"),re.value?"":c.e("close-icon--hidden")]);e.watch(g,F=>{F?e.nextTick(()=>{F&&(b.value=r.modelValue)}):(me.value=null,e.nextTick(()=>{E(r.modelValue)}))});const E=(F,ue)=>{(ue||!ru(F,b.value))&&(o("change",F),r.validateEvent&&(u==null||u.validate("change").catch(Be=>void 0)))},S=F=>{if(!ru(r.modelValue,F)){let ue;Re(F)?ue=F.map(Be=>au(Be,r.valueFormat,a.value)):F&&(ue=au(F,r.valueFormat,a.value)),o("update:modelValue",F&&ue,a.value)}},_=F=>{o("keydown",F)},B=e.computed(()=>{if(h.value){const F=Pe.value?h.value:h.value.$el;return Array.from(F.querySelectorAll("input"))}return[]}),M=(F,ue,Be)=>{const xe=B.value;!xe.length||(!Be||Be==="min"?(xe[0].setSelectionRange(F,ue),xe[0].focus()):Be==="max"&&(xe[1].setSelectionRange(F,ue),xe[1].focus()))},P=()=>{R(!0,!0),e.nextTick(()=>{C=!1})},T=(F="",ue=!1)=>{ue||(C=!0),g.value=ue;let Be;Re(F)?Be=F.map(xe=>xe.toDate()):Be=F&&F.toDate(),me.value=null,S(Be)},I=()=>{m.value=!0},v=()=>{o("visible-change",!0)},O=F=>{(F==null?void 0:F.key)===pe.esc&&R(!0,!0)},D=()=>{m.value=!1,g.value=!1,C=!1,o("visible-change",!1)},z=()=>{g.value=!0},$=()=>{g.value=!1},R=(F=!0,ue=!1)=>{C=ue;const[Be,xe]=e.unref(B);let _t=Be;!F&&Pe.value&&(_t=xe),_t&&_t.focus()},N=F=>{r.readonly||H.value||g.value||C||(g.value=!0,o("focus",F))};let A;const x=F=>{const ue=async()=>{setTimeout(()=>{var Be;A===ue&&(!(((Be=p.value)==null?void 0:Be.isFocusInsideContent())&&!y)&&B.value.filter(xe=>xe.contains(document.activeElement)).length===0&&(_e(),g.value=!1,o("blur",F),r.validateEvent&&(u==null||u.validate("blur").catch(xe=>void 0))),y=!1)},0)};A=ue,ue()},H=e.computed(()=>r.disabled||(f==null?void 0:f.disabled)),K=e.computed(()=>{let F;if(oe.value?J.value.getDefaultValue&&(F=J.value.getDefaultValue()):Re(r.modelValue)?F=r.modelValue.map(ue=>lu(ue,r.valueFormat,a.value)):F=lu(r.modelValue,r.valueFormat,a.value),J.value.getRangeAvailableTime){const ue=J.value.getRangeAvailableTime(F);tn(ue,F)||(F=ue,S(Re(F)?F.map(Be=>Be.toDate()):F.toDate()))}return Re(F)&&F.some(ue=>!ue)&&(F=[]),F}),q=e.computed(()=>{if(!J.value.panelReady)return"";const F=Ae(K.value);return Re(me.value)?[me.value[0]||F&&F[0]||"",me.value[1]||F&&F[1]||""]:me.value!==null?me.value:!Y.value&&oe.value||!g.value&&oe.value?"":F?Z.value?F.join(", "):F:""}),ne=e.computed(()=>r.type.includes("time")),Y=e.computed(()=>r.type.startsWith("time")),Z=e.computed(()=>r.type==="dates"),U=e.computed(()=>r.prefixIcon||(ne.value?Sy:nD)),re=e.ref(!1),te=F=>{r.readonly||H.value||re.value&&(F.stopPropagation(),P(),S(null),E(null,!0),re.value=!1,g.value=!1,J.value.handleClear&&J.value.handleClear())},oe=e.computed(()=>{const{modelValue:F}=r;return!F||Re(F)&&!F.filter(Boolean).length}),ie=async F=>{var ue;r.readonly||H.value||(((ue=F.target)==null?void 0:ue.tagName)!=="INPUT"||B.value.includes(document.activeElement))&&(g.value=!0)},ye=()=>{r.readonly||H.value||!oe.value&&r.clearable&&(re.value=!0)},Ne=()=>{re.value=!1},Te=F=>{var ue;r.readonly||H.value||(((ue=F.touches[0].target)==null?void 0:ue.tagName)!=="INPUT"||B.value.includes(document.activeElement))&&(g.value=!0)},Pe=e.computed(()=>r.type.includes("range")),he=St(),Ce=e.computed(()=>{var F,ue;return(ue=(F=e.unref(p))==null?void 0:F.popperRef)==null?void 0:ue.contentRef}),ge=e.computed(()=>{var F;return e.unref(Pe)?e.unref(h):(F=e.unref(h))==null?void 0:F.$el});mc(ge,F=>{const ue=e.unref(Ce),Be=e.unref(ge);ue&&(F.target===ue||F.composedPath().includes(ue))||F.target===Be||F.composedPath().includes(Be)||(g.value=!1)});const me=e.ref(null),_e=()=>{if(me.value){const F=$e(q.value);F&&Oe(F)&&(S(Re(F)?F.map(ue=>ue.toDate()):F.toDate()),me.value=null)}me.value===""&&(S(null),E(null),me.value=null)},$e=F=>F?J.value.parseUserInput(F):null,Ae=F=>F?J.value.formatToString(F):null,Oe=F=>J.value.isValidValue(F),ce=async F=>{if(r.readonly||H.value)return;const{code:ue}=F;if(_(F),ue===pe.esc){g.value===!0&&(g.value=!1,F.preventDefault(),F.stopPropagation());return}if(ue===pe.down&&(J.value.handleFocusPicker&&(F.preventDefault(),F.stopPropagation()),g.value===!1&&(g.value=!0,await e.nextTick()),J.value.handleFocusPicker)){J.value.handleFocusPicker();return}if(ue===pe.tab){y=!0;return}if(ue===pe.enter||ue===pe.numpadEnter){(me.value===null||me.value===""||Oe($e(q.value)))&&(_e(),g.value=!1),F.stopPropagation();return}if(me.value){F.stopPropagation();return}J.value.handleKeydownInput&&J.value.handleKeydownInput(F)},Ee=F=>{me.value=F,g.value||(g.value=!0)},Le=F=>{const ue=F.target;me.value?me.value=[ue.value,me.value[1]]:me.value=[ue.value,null]},Xe=F=>{const ue=F.target;me.value?me.value=[me.value[0],ue.value]:me.value=[null,ue.value]},Qe=()=>{var F;const ue=me.value,Be=$e(ue&&ue[0]),xe=e.unref(K);if(Be&&Be.isValid()){me.value=[Ae(Be),((F=q.value)==null?void 0:F[1])||null];const _t=[Be,xe&&(xe[1]||null)];Oe(_t)&&(S(_t),me.value=null)}},ke=()=>{var F;const ue=e.unref(me),Be=$e(ue&&ue[1]),xe=e.unref(K);if(Be&&Be.isValid()){me.value=[((F=e.unref(q))==null?void 0:F[0])||null,Ae(Be)];const _t=[xe&&xe[0],Be];Oe(_t)&&(S(_t),me.value=null)}},J=e.ref({}),G=F=>{J.value[F[0]]=F[1],J.value.panelReady=!0},j=F=>{o("calendar-change",F)},ee=(F,ue,Be)=>{o("panel-change",F,ue,Be)};return e.provide("EP_PICKER_BASE",{props:r}),n({focus:R,handleFocusInput:N,handleBlurInput:x,handleOpen:z,handleClose:$,onPick:T}),(F,ue)=>(e.openBlock(),e.createBlock(e.unref(Zt),e.mergeProps({ref_key:"refPopper",ref:p,visible:g.value,effect:"light",pure:"",trigger:"click"},F.$attrs,{role:"dialog",teleported:"",transition:`${e.unref(s).namespace.value}-zoom-in-top`,"popper-class":[`${e.unref(s).namespace.value}-picker__popper`,F.popperClass],"popper-options":e.unref(d),"fallback-placements":["bottom","top","right","left"],"gpu-acceleration":!1,"stop-popper-mouse-event":!1,"hide-after":0,persistent:"",onBeforeShow:I,onShow:v,onHide:D}),{default:e.withCtx(()=>[e.unref(Pe)?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"inputRef",ref:h,class:e.normalizeClass(e.unref(k)),style:e.normalizeStyle(F.$attrs.style),onClick:N,onMouseenter:ye,onMouseleave:Ne,onTouchstart:Te,onKeydown:ce},[e.unref(U)?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass([e.unref(i).e("icon"),e.unref(c).e("icon")]),onMousedown:e.withModifiers(ie,["prevent"]),onTouchstart:Te},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(U))))]),_:1},8,["class","onMousedown"])):e.createCommentVNode("v-if",!0),e.createElementVNode("input",{id:F.id&&F.id[0],autocomplete:"off",name:F.name&&F.name[0],placeholder:F.startPlaceholder,value:e.unref(q)&&e.unref(q)[0],disabled:e.unref(H),readonly:!F.editable||F.readonly,class:e.normalizeClass(e.unref(c).b("input")),onMousedown:ie,onInput:Le,onChange:Qe,onFocus:N,onBlur:x},null,42,k5),e.renderSlot(F.$slots,"range-separator",{},()=>[e.createElementVNode("span",{class:e.normalizeClass(e.unref(c).b("separator"))},e.toDisplayString(F.rangeSeparator),3)]),e.createElementVNode("input",{id:F.id&&F.id[1],autocomplete:"off",name:F.name&&F.name[1],placeholder:F.endPlaceholder,value:e.unref(q)&&e.unref(q)[1],disabled:e.unref(H),readonly:!F.editable||F.readonly,class:e.normalizeClass(e.unref(c).b("input")),onMousedown:ie,onFocus:N,onBlur:x,onInput:Xe,onChange:ke},null,42,S5),F.clearIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass(e.unref(w)),onClick:te},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(F.clearIcon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],38)):(e.openBlock(),e.createBlock(e.unref(Ft),{key:0,id:F.id,ref_key:"inputRef",ref:h,"container-role":"combobox","model-value":e.unref(q),name:F.name,size:e.unref(he),disabled:e.unref(H),placeholder:F.placeholder,class:e.normalizeClass([e.unref(s).b("editor"),e.unref(s).bm("editor",F.type),F.$attrs.class]),style:e.normalizeStyle(F.$attrs.style),readonly:!F.editable||F.readonly||e.unref(Z)||F.type==="week",label:F.label,tabindex:F.tabindex,"validate-event":!1,onInput:Ee,onFocus:N,onBlur:x,onKeydown:ce,onChange:_e,onMousedown:ie,onMouseenter:ye,onMouseleave:Ne,onTouchstart:Te,onClick:ue[0]||(ue[0]=e.withModifiers(()=>{},["stop"]))},{prefix:e.withCtx(()=>[e.unref(U)?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(i).e("icon")),onMousedown:e.withModifiers(ie,["prevent"]),onTouchstart:Te},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(U))))]),_:1},8,["class","onMousedown"])):e.createCommentVNode("v-if",!0)]),suffix:e.withCtx(()=>[re.value&&F.clearIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(`${e.unref(i).e("icon")} clear-icon`),onClick:e.withModifiers(te,["stop"])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(F.clearIcon)))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0)]),_:1},8,["id","model-value","name","size","disabled","placeholder","class","style","readonly","label","tabindex","onKeydown"]))]),content:e.withCtx(()=>[e.renderSlot(F.$slots,"default",{visible:g.value,actualVisible:m.value,parsedValue:e.unref(K),format:F.format,dateFormat:F.dateFormat,timeFormat:F.timeFormat,unlinkPanels:F.unlinkPanels,type:F.type,defaultValue:F.defaultValue,onPick:T,onSelectRange:M,onSetPickerOption:G,onCalendarChange:j,onPanelChange:ee,onKeydown:O,onMousedown:ue[1]||(ue[1]=e.withModifiers(()=>{},["stop"]))})]),_:3},16,["visible","transition","popper-class","popper-options"]))}});var su=se(N5,[["__file","picker.vue"]]);const _5=le({...Nw,datetimeRole:String,parsedValue:{type:W(Object)}}),_w=({getAvailableHours:t,getAvailableMinutes:n,getAvailableSeconds:o})=>{const r=(s,i,c,f)=>{const u={hour:t,minute:n,second:o};let d=s;return["hour","minute","second"].forEach(p=>{if(u[p]){let h;const g=u[p];switch(p){case"minute":{h=g(d.hour(),i,f);break}case"second":{h=g(d.hour(),d.minute(),i,f);break}default:{h=g(i,f);break}}if((h==null?void 0:h.length)&&!h.includes(d[p]())){const m=c?0:h.length-1;d=d[p](h[m])}}}),d},l={};return{timePickerOptions:l,getAvailableTime:r,onSetOption:([s,i])=>{l[s]=i}}},iu=t=>{const n=(r,l)=>r||l,o=r=>r!==!0;return t.map(n).filter(o)},Bw=(t,n,o)=>({getHoursList:(s,i)=>yi(24,t&&(()=>t==null?void 0:t(s,i))),getMinutesList:(s,i,c)=>yi(60,n&&(()=>n==null?void 0:n(s,i,c))),getSecondsList:(s,i,c,f)=>yi(60,o&&(()=>o==null?void 0:o(s,i,c,f)))}),$w=(t,n,o)=>{const{getHoursList:r,getMinutesList:l,getSecondsList:a}=Bw(t,n,o);return{getAvailableHours:(f,u)=>iu(r(f,u)),getAvailableMinutes:(f,u,d)=>iu(l(f,u,d)),getAvailableSeconds:(f,u,d,p)=>iu(a(f,u,d,p))}},Tw=t=>{const n=e.ref(t.parsedValue);return e.watch(()=>t.visible,o=>{o||(n.value=t.parsedValue)}),n},ar=new Map;let vw;He&&(document.addEventListener("mousedown",t=>vw=t),document.addEventListener("mouseup",t=>{for(const n of ar.values())for(const{documentHandler:o}of n)o(t,vw)}));function Vw(t,n){let o=[];return Array.isArray(n.arg)?o=n.arg:Mn(n.arg)&&o.push(n.arg),function(r,l){const a=n.instance.popperRef,s=r.target,i=l==null?void 0:l.target,c=!n||!n.instance,f=!s||!i,u=t.contains(s)||t.contains(i),d=t===s,p=o.length&&o.some(g=>g==null?void 0:g.contains(s))||o.length&&o.includes(i),h=a&&(a.contains(s)||a.contains(i));c||f||u||d||p||h||n.value(r,l)}}const Po={beforeMount(t,n){ar.has(t)||ar.set(t,[]),ar.get(t).push({documentHandler:Vw(t,n),bindingFn:n.value})},updated(t,n){ar.has(t)||ar.set(t,[]);const o=ar.get(t),r=o.findIndex(a=>a.bindingFn===n.oldValue),l={documentHandler:Vw(t,n),bindingFn:n.value};r>=0?o.splice(r,1,l):o.push(l)},unmounted(t){ar.delete(t)}},B5=100,$5=600,Sa={beforeMount(t,n){const o=n.value,{interval:r=B5,delay:l=$5}=qe(o)?{}:o;let a,s;const i=()=>qe(o)?o():o.handler(),c=()=>{s&&(clearTimeout(s),s=void 0),a&&(clearInterval(a),a=void 0)};t.addEventListener("mousedown",f=>{f.button===0&&(c(),i(),document.addEventListener("mouseup",()=>c(),{once:!0}),s=setTimeout(()=>{a=setInterval(()=>{i()},r)},l))})}},cu="_trap-focus-children",Pr=[],Mw=t=>{if(Pr.length===0)return;const n=Pr[Pr.length-1][cu];if(n.length>0&&t.code===pe.tab){if(n.length===1){t.preventDefault(),document.activeElement!==n[0]&&n[0].focus();return}const o=t.shiftKey,r=t.target===n[0],l=t.target===n[n.length-1];r&&o&&(t.preventDefault(),n[n.length-1].focus()),l&&!o&&(t.preventDefault(),n[0].focus())}},Iw={beforeMount(t){t[cu]=Sm(t),Pr.push(t),Pr.length<=1&&document.addEventListener("keydown",Mw)},updated(t){e.nextTick(()=>{t[cu]=Sm(t)})},unmounted(){Pr.shift(),Pr.length===0&&document.removeEventListener("keydown",Mw)}};var Pw=!1,Rr,du,fu,Ci,wi,Rw,ki,uu,pu,mu,Ow,hu,gu,Aw,zw;function hn(){if(!Pw){Pw=!0;var t=navigator.userAgent,n=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(t),o=/(Mac OS X)|(Windows)|(Linux)/.exec(t);if(hu=/\b(iPhone|iP[ao]d)/.exec(t),gu=/\b(iP[ao]d)/.exec(t),mu=/Android/i.exec(t),Aw=/FBAN\/\w+;/i.exec(t),zw=/Mobile/i.exec(t),Ow=!!/Win64/.exec(t),n){Rr=n[1]?parseFloat(n[1]):n[5]?parseFloat(n[5]):NaN,Rr&&document&&document.documentMode&&(Rr=document.documentMode);var r=/(?:Trident\/(\d+.\d+))/.exec(t);Rw=r?parseFloat(r[1])+4:Rr,du=n[2]?parseFloat(n[2]):NaN,fu=n[3]?parseFloat(n[3]):NaN,Ci=n[4]?parseFloat(n[4]):NaN,Ci?(n=/(?:Chrome\/(\d+\.\d+))/.exec(t),wi=n&&n[1]?parseFloat(n[1]):NaN):wi=NaN}else Rr=du=fu=wi=Ci=NaN;if(o){if(o[1]){var l=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(t);ki=l?parseFloat(l[1].replace("_",".")):!0}else ki=!1;uu=!!o[2],pu=!!o[3]}else ki=uu=pu=!1}}var yu={ie:function(){return hn()||Rr},ieCompatibilityMode:function(){return hn()||Rw>Rr},ie64:function(){return yu.ie()&&Ow},firefox:function(){return hn()||du},opera:function(){return hn()||fu},webkit:function(){return hn()||Ci},safari:function(){return yu.webkit()},chrome:function(){return hn()||wi},windows:function(){return hn()||uu},osx:function(){return hn()||ki},linux:function(){return hn()||pu},iphone:function(){return hn()||hu},mobile:function(){return hn()||hu||gu||mu||zw},nativeApp:function(){return hn()||Aw},android:function(){return hn()||mu},ipad:function(){return hn()||gu}},T5=yu,Si=!!(typeof window<"u"&&window.document&&window.document.createElement),v5={canUseDOM:Si,canUseWorkers:typeof Worker<"u",canUseEventListeners:Si&&!!(window.addEventListener||window.attachEvent),canUseViewport:Si&&!!window.screen,isInWorker:!Si},Dw=v5,Lw;Dw.canUseDOM&&(Lw=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0);function V5(t,n){if(!Dw.canUseDOM||n&&!("addEventListener"in document))return!1;var o="on"+t,r=o in document;if(!r){var l=document.createElement("div");l.setAttribute(o,"return;"),r=typeof l[o]=="function"}return!r&&Lw&&t==="wheel"&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var M5=V5,xw=10,Fw=40,Hw=800;function Kw(t){var n=0,o=0,r=0,l=0;return"detail"in t&&(o=t.detail),"wheelDelta"in t&&(o=-t.wheelDelta/120),"wheelDeltaY"in t&&(o=-t.wheelDeltaY/120),"wheelDeltaX"in t&&(n=-t.wheelDeltaX/120),"axis"in t&&t.axis===t.HORIZONTAL_AXIS&&(n=o,o=0),r=n*xw,l=o*xw,"deltaY"in t&&(l=t.deltaY),"deltaX"in t&&(r=t.deltaX),(r||l)&&t.deltaMode&&(t.deltaMode==1?(r*=Fw,l*=Fw):(r*=Hw,l*=Hw)),r&&!n&&(n=r<1?-1:1),l&&!o&&(o=l<1?-1:1),{spinX:n,spinY:o,pixelX:r,pixelY:l}}Kw.getEventType=function(){return T5.firefox()?"DOMMouseScroll":M5("wheel")?"wheel":"mousewheel"};var I5=Kw;/** +* Checks if an event is supported in the current execution environment. +* +* NOTE: This will not work correctly for non-generic events such as `change`, +* `reset`, `load`, `error`, and `select`. +* +* Borrows from Modernizr. +* +* @param {string} eventNameSuffix Event name, e.g. "click". +* @param {?boolean} capture Check if the capture phase is supported. +* @return {boolean} True if the event is supported. +* @internal +* @license Modernizr 3.0.0pre (Custom Build) | MIT +*/const P5=function(t,n){if(t&&t.addEventListener){const o=function(r){const l=I5(r);n&&Reflect.apply(n,this,[r,l])};t.addEventListener("wheel",o,{passive:!0})}},Ww={beforeMount(t,n){P5(t,n.value)}},R5=le({role:{type:String,required:!0},spinnerDate:{type:W(Object),required:!0},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:W(String),default:""},...Ew}),O5=["onClick"],A5=["onMouseenter"];var bu=se(e.defineComponent({__name:"basic-time-spinner",props:R5,emits:["change","select-range","set-option"],setup(t,{emit:n}){const o=t,r=Q("time"),{getHoursList:l,getMinutesList:a,getSecondsList:s}=Bw(o.disabledHours,o.disabledMinutes,o.disabledSeconds);let i=!1;const c=e.ref(),f=e.ref(),u=e.ref(),d=e.ref(),p={hours:f,minutes:u,seconds:d},h=e.computed(()=>o.showSeconds?eu:eu.slice(0,2)),g=e.computed(()=>{const{spinnerDate:N}=o,A=N.hour(),x=N.minute(),H=N.second();return{hours:A,minutes:x,seconds:H}}),m=e.computed(()=>{const{hours:N,minutes:A}=e.unref(g);return{hours:l(o.role),minutes:a(N,o.role),seconds:s(N,A,o.role)}}),b=e.computed(()=>{const{hours:N,minutes:A,seconds:x}=e.unref(g);return{hours:gi(N,23),minutes:gi(A,59),seconds:gi(x,59)}}),y=Gt(N=>{i=!1,w(N)},200),C=N=>{if(!!!o.amPmMode)return"";const x=o.amPmMode==="A";let H=N<12?" am":" pm";return x&&(H=H.toUpperCase()),H},k=N=>{let A;switch(N){case"hours":A=[0,2];break;case"minutes":A=[3,5];break;case"seconds":A=[6,8];break}const[x,H]=A;n("select-range",x,H),c.value=N},w=N=>{_(N,e.unref(g)[N])},E=()=>{w("hours"),w("minutes"),w("seconds")},S=N=>N.querySelector(`.${r.namespace.value}-scrollbar__wrap`),_=(N,A)=>{if(o.arrowControl)return;const x=e.unref(p[N]);x&&x.$el&&(S(x.$el).scrollTop=Math.max(0,A*B(N)))},B=N=>{const A=e.unref(p[N]),x=A==null?void 0:A.$el.querySelector("li");return x&&Number.parseFloat(Go(x,"height"))||0},M=()=>{T(1)},P=()=>{T(-1)},T=N=>{c.value||k("hours");const A=c.value,x=e.unref(g)[A],H=c.value==="hours"?24:60,K=I(A,x,N,H);v(A,K),_(A,K),e.nextTick(()=>k(A))},I=(N,A,x,H)=>{let K=(A+x+H)%H;const q=e.unref(m)[N];for(;q[K]&&K!==A;)K=(K+x+H)%H;return K},v=(N,A)=>{if(e.unref(m)[N][A])return;const{hours:K,minutes:q,seconds:ne}=e.unref(g);let Y;switch(N){case"hours":Y=o.spinnerDate.hour(A).minute(q).second(ne);break;case"minutes":Y=o.spinnerDate.hour(K).minute(A).second(ne);break;case"seconds":Y=o.spinnerDate.hour(K).minute(q).second(A);break}n("change",Y)},O=(N,{value:A,disabled:x})=>{x||(v(N,A),k(N),_(N,A))},D=N=>{i=!0,y(N);const A=Math.min(Math.round((S(e.unref(p[N]).$el).scrollTop-(z(N)*.5-10)/B(N)+3)/B(N)),N==="hours"?23:59);v(N,A)},z=N=>e.unref(p[N]).$el.offsetHeight,$=()=>{const N=A=>{const x=e.unref(p[A]);x&&x.$el&&(S(x.$el).onscroll=()=>{D(A)})};N("hours"),N("minutes"),N("seconds")};e.onMounted(()=>{e.nextTick(()=>{!o.arrowControl&&$(),E(),o.role==="start"&&k("hours")})});const R=(N,A)=>{p[A].value=N};return n("set-option",[`${o.role}_scrollDown`,T]),n("set-option",[`${o.role}_emitSelectRange`,k]),e.watch(()=>o.spinnerDate,()=>{i||E()}),(N,A)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(r).b("spinner"),{"has-seconds":N.showSeconds}])},[N.arrowControl?e.createCommentVNode("v-if",!0):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(e.unref(h),x=>(e.openBlock(),e.createBlock(e.unref(mo),{key:x,ref_for:!0,ref:H=>R(H,x),class:e.normalizeClass(e.unref(r).be("spinner","wrapper")),"wrap-style":"max-height: inherit;","view-class":e.unref(r).be("spinner","list"),noresize:"",tag:"ul",onMouseenter:H=>k(x),onMousemove:H=>w(x)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m)[x],(H,K)=>(e.openBlock(),e.createElementBlock("li",{key:K,class:e.normalizeClass([e.unref(r).be("spinner","item"),e.unref(r).is("active",K===e.unref(g)[x]),e.unref(r).is("disabled",H)]),onClick:q=>O(x,{value:K,disabled:H})},[x==="hours"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(("0"+(N.amPmMode?K%12||12:K)).slice(-2))+e.toDisplayString(C(K)),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(("0"+K).slice(-2)),1)],64))],10,O5))),128))]),_:2},1032,["class","view-class","onMouseenter","onMousemove"]))),128)),N.arrowControl?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(e.unref(h),x=>(e.openBlock(),e.createElementBlock("div",{key:x,class:e.normalizeClass([e.unref(r).be("spinner","wrapper"),e.unref(r).is("arrow")]),onMouseenter:H=>k(x)},[e.withDirectives((e.openBlock(),e.createBlock(e.unref(fe),{class:e.normalizeClass(["arrow-up",e.unref(r).be("spinner","arrow")])},{default:e.withCtx(()=>[e.createVNode(e.unref(Ts))]),_:1},8,["class"])),[[e.unref(Sa),P]]),e.withDirectives((e.openBlock(),e.createBlock(e.unref(fe),{class:e.normalizeClass(["arrow-down",e.unref(r).be("spinner","arrow")])},{default:e.withCtx(()=>[e.createVNode(e.unref(qo))]),_:1},8,["class"])),[[e.unref(Sa),M]]),e.createElementVNode("ul",{class:e.normalizeClass(e.unref(r).be("spinner","list"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b)[x],(H,K)=>(e.openBlock(),e.createElementBlock("li",{key:K,class:e.normalizeClass([e.unref(r).be("spinner","item"),e.unref(r).is("active",H===e.unref(g)[x]),e.unref(r).is("disabled",e.unref(m)[x][H])])},[typeof H=="number"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[x==="hours"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(("0"+(N.amPmMode?H%12||12:H)).slice(-2))+e.toDisplayString(C(H)),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(("0"+H).slice(-2)),1)],64))],64)):e.createCommentVNode("v-if",!0)],2))),128))],2)],42,A5))),128)):e.createCommentVNode("v-if",!0)],2))}}),[["__file","basic-time-spinner.vue"]]),Ea=se(e.defineComponent({__name:"panel-time-pick",props:_5,emits:["pick","select-range","set-picker-option"],setup(t,{emit:n}){const o=t,r=e.inject("EP_PICKER_BASE"),{arrowControl:l,disabledHours:a,disabledMinutes:s,disabledSeconds:i,defaultValue:c}=r.props,{getAvailableHours:f,getAvailableMinutes:u,getAvailableSeconds:d}=$w(a,s,i),p=Q("time"),{t:h,lang:g}=Ke(),m=e.ref([0,2]),b=Tw(o),y=e.computed(()=>$t(o.actualVisible)?`${p.namespace.value}-zoom-in-top`:""),C=e.computed(()=>o.format.includes("ss")),k=e.computed(()=>o.format.includes("A")?"A":o.format.includes("a")?"a":""),w=R=>{const N=ve(R).locale(g.value),A=O(N);return N.isSame(A)},E=()=>{n("pick",b.value,!1)},S=(R=!1,N=!1)=>{N||n("pick",o.parsedValue,R)},_=R=>{if(!o.visible)return;const N=O(R).millisecond(0);n("pick",N,!0)},B=(R,N)=>{n("select-range",R,N),m.value=[R,N]},M=R=>{const N=[0,3].concat(C.value?[6]:[]),A=["hours","minutes"].concat(C.value?["seconds"]:[]),H=(N.indexOf(m.value[0])+R+N.length)%N.length;T.start_emitSelectRange(A[H])},P=R=>{const N=R.code,{left:A,right:x,up:H,down:K}=pe;if([A,x].includes(N)){M(N===A?-1:1),R.preventDefault();return}if([H,K].includes(N)){const q=N===H?-1:1;T.start_scrollDown(q),R.preventDefault();return}},{timePickerOptions:T,onSetOption:I,getAvailableTime:v}=_w({getAvailableHours:f,getAvailableMinutes:u,getAvailableSeconds:d}),O=R=>v(R,o.datetimeRole||"",!0),D=R=>R?ve(R,o.format).locale(g.value):null,z=R=>R?R.format(o.format):null,$=()=>ve(c).locale(g.value);return n("set-picker-option",["isValidValue",w]),n("set-picker-option",["formatToString",z]),n("set-picker-option",["parseUserInput",D]),n("set-picker-option",["handleKeydownInput",P]),n("set-picker-option",["getRangeAvailableTime",O]),n("set-picker-option",["getDefaultValue",$]),(R,N)=>(e.openBlock(),e.createBlock(e.Transition,{name:e.unref(y)},{default:e.withCtx(()=>[R.actualVisible||R.visible?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(p).b("panel"))},[e.createElementVNode("div",{class:e.normalizeClass([e.unref(p).be("panel","content"),{"has-seconds":e.unref(C)}])},[e.createVNode(bu,{ref:"spinner",role:R.datetimeRole||"start","arrow-control":e.unref(l),"show-seconds":e.unref(C),"am-pm-mode":e.unref(k),"spinner-date":R.parsedValue,"disabled-hours":e.unref(a),"disabled-minutes":e.unref(s),"disabled-seconds":e.unref(i),onChange:_,onSetOption:e.unref(I),onSelectRange:B},null,8,["role","arrow-control","show-seconds","am-pm-mode","spinner-date","disabled-hours","disabled-minutes","disabled-seconds","onSetOption"])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(p).be("panel","footer"))},[e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(p).be("panel","btn"),"cancel"]),onClick:E},e.toDisplayString(e.unref(h)("el.datepicker.cancel")),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(p).be("panel","btn"),"confirm"]),onClick:N[0]||(N[0]=A=>S())},e.toDisplayString(e.unref(h)("el.datepicker.confirm")),3)],2)],2)):e.createCommentVNode("v-if",!0)]),_:1},8,["name"]))}}),[["__file","panel-time-pick.vue"]]);const z5=le({...Nw,parsedValue:{type:W(Array)}}),D5=["disabled"];var L5=se(e.defineComponent({__name:"panel-time-range",props:z5,emits:["pick","select-range","set-picker-option"],setup(t,{emit:n}){const o=t,r=(oe,ie)=>{const ye=[];for(let Ne=oe;Ne<=ie;Ne++)ye.push(Ne);return ye},{t:l,lang:a}=Ke(),s=Q("time"),i=Q("picker"),c=e.inject("EP_PICKER_BASE"),{arrowControl:f,disabledHours:u,disabledMinutes:d,disabledSeconds:p,defaultValue:h}=c.props,g=e.computed(()=>[s.be("range-picker","body"),s.be("panel","content"),s.is("arrow",f),w.value?"has-seconds":""]),m=e.computed(()=>[s.be("range-picker","body"),s.be("panel","content"),s.is("arrow",f),w.value?"has-seconds":""]),b=e.computed(()=>o.parsedValue[0]),y=e.computed(()=>o.parsedValue[1]),C=Tw(o),k=()=>{n("pick",C.value,!1)},w=e.computed(()=>o.format.includes("ss")),E=e.computed(()=>o.format.includes("A")?"A":o.format.includes("a")?"a":""),S=(oe=!1)=>{n("pick",[b.value,y.value],oe)},_=oe=>{P(oe.millisecond(0),y.value)},B=oe=>{P(b.value,oe.millisecond(0))},M=oe=>{const ie=oe.map(Ne=>ve(Ne).locale(a.value)),ye=x(ie);return ie[0].isSame(ye[0])&&ie[1].isSame(ye[1])},P=(oe,ie)=>{n("pick",[oe,ie],!0)},T=e.computed(()=>b.value>y.value),I=e.ref([0,2]),v=(oe,ie)=>{n("select-range",oe,ie,"min"),I.value=[oe,ie]},O=e.computed(()=>w.value?11:8),D=(oe,ie)=>{n("select-range",oe,ie,"max");const ye=e.unref(O);I.value=[oe+ye,ie+ye]},z=oe=>{const ie=w.value?[0,3,6,11,14,17]:[0,3,8,11],ye=["hours","minutes"].concat(w.value?["seconds"]:[]),Te=(ie.indexOf(I.value[0])+oe+ie.length)%ie.length,Pe=ie.length/2;Te{const ie=oe.code,{left:ye,right:Ne,up:Te,down:Pe}=pe;if([ye,Ne].includes(ie)){z(ie===ye?-1:1),oe.preventDefault();return}if([Te,Pe].includes(ie)){const he=ie===Te?-1:1,Ce=I.value[0]{const ye=u?u(oe):[],Ne=oe==="start",Pe=(ie||(Ne?y.value:b.value)).hour(),he=Ne?r(Pe+1,23):r(0,Pe-1);return _s(ye,he)},N=(oe,ie,ye)=>{const Ne=d?d(oe,ie):[],Te=ie==="start",Pe=ye||(Te?y.value:b.value),he=Pe.hour();if(oe!==he)return Ne;const Ce=Pe.minute(),ge=Te?r(Ce+1,59):r(0,Ce-1);return _s(Ne,ge)},A=(oe,ie,ye,Ne)=>{const Te=p?p(oe,ie,ye):[],Pe=ye==="start",he=Ne||(Pe?y.value:b.value),Ce=he.hour(),ge=he.minute();if(oe!==Ce||ie!==ge)return Te;const me=he.second(),_e=Pe?r(me+1,59):r(0,me-1);return _s(Te,_e)},x=([oe,ie])=>[Y(oe,"start",!0,ie),Y(ie,"end",!1,oe)],{getAvailableHours:H,getAvailableMinutes:K,getAvailableSeconds:q}=$w(R,N,A),{timePickerOptions:ne,getAvailableTime:Y,onSetOption:Z}=_w({getAvailableHours:H,getAvailableMinutes:K,getAvailableSeconds:q}),U=oe=>oe?Re(oe)?oe.map(ie=>ve(ie,o.format).locale(a.value)):ve(oe,o.format).locale(a.value):null,re=oe=>oe?Re(oe)?oe.map(ie=>ie.format(o.format)):oe.format(o.format):null,te=()=>{if(Re(h))return h.map(ie=>ve(ie).locale(a.value));const oe=ve(h).locale(a.value);return[oe,oe.add(60,"m")]};return n("set-picker-option",["formatToString",re]),n("set-picker-option",["parseUserInput",U]),n("set-picker-option",["isValidValue",M]),n("set-picker-option",["handleKeydownInput",$]),n("set-picker-option",["getDefaultValue",te]),n("set-picker-option",["getRangeAvailableTime",x]),(oe,ie)=>oe.actualVisible?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(s).b("range-picker"),e.unref(i).b("panel")])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).be("range-picker","content"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).be("range-picker","cell"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).be("range-picker","header"))},e.toDisplayString(e.unref(l)("el.datepicker.startTime")),3),e.createElementVNode("div",{class:e.normalizeClass(e.unref(g))},[e.createVNode(bu,{ref:"minSpinner",role:"start","show-seconds":e.unref(w),"am-pm-mode":e.unref(E),"arrow-control":e.unref(f),"spinner-date":e.unref(b),"disabled-hours":R,"disabled-minutes":N,"disabled-seconds":A,onChange:_,onSetOption:e.unref(Z),onSelectRange:v},null,8,["show-seconds","am-pm-mode","arrow-control","spinner-date","onSetOption"])],2)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).be("range-picker","cell"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).be("range-picker","header"))},e.toDisplayString(e.unref(l)("el.datepicker.endTime")),3),e.createElementVNode("div",{class:e.normalizeClass(e.unref(m))},[e.createVNode(bu,{ref:"maxSpinner",role:"end","show-seconds":e.unref(w),"am-pm-mode":e.unref(E),"arrow-control":e.unref(f),"spinner-date":e.unref(y),"disabled-hours":R,"disabled-minutes":N,"disabled-seconds":A,onChange:B,onSetOption:e.unref(Z),onSelectRange:D},null,8,["show-seconds","am-pm-mode","arrow-control","spinner-date","onSetOption"])],2)],2)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).be("panel","footer"))},[e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(s).be("panel","btn"),"cancel"]),onClick:ie[0]||(ie[0]=ye=>k())},e.toDisplayString(e.unref(l)("el.datepicker.cancel")),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(s).be("panel","btn"),"confirm"]),disabled:e.unref(T),onClick:ie[1]||(ie[1]=ye=>S())},e.toDisplayString(e.unref(l)("el.datepicker.confirm")),11,D5)],2)],2)):e.createCommentVNode("v-if",!0)}}),[["__file","panel-time-range.vue"]]);ve.extend(Qf);var x5=e.defineComponent({name:"ElTimePicker",install:null,props:{...bi,isRange:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,n){const o=e.ref(),[r,l]=t.isRange?["timerange",L5]:["time",Ea],a=s=>n.emit("update:modelValue",s);return e.provide("ElPopperOptions",t.popperOptions),n.expose({focus:s=>{var i;(i=o.value)==null||i.handleFocusInput(s)},blur:s=>{var i;(i=o.value)==null||i.handleBlurInput(s)},handleOpen:()=>{var s;(s=o.value)==null||s.handleOpen()},handleClose:()=>{var s;(s=o.value)==null||s.handleClose()}}),()=>{var s;const i=(s=t.format)!=null?s:hi;return e.createVNode(su,e.mergeProps(t,{ref:o,type:r,format:i,"onUpdate:modelValue":a}),{default:c=>e.createVNode(l,c,null)})}}});const Ei=x5;Ei.install=t=>{t.component(Ei.name,Ei)};const jw=Ei,F5=(t,n)=>{const o=t.subtract(1,"month").endOf("month").date();return Io(n).map((r,l)=>o-(n-l-1))},H5=t=>{const n=t.daysInMonth();return Io(n).map((o,r)=>r+1)},K5=t=>Io(t.length/7).map(n=>{const o=n*7;return t.slice(o,o+7)}),W5=le({selectedDay:{type:W(Object)},range:{type:W(Array)},date:{type:W(Object),required:!0},hideHeader:{type:Boolean}}),j5={pick:t=>nt(t)};var Uw={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){return function(o,r,l){var a=r.prototype,s=function(d){return d&&(d.indexOf?d:d.s)},i=function(d,p,h,g,m){var b=d.name?d:d.$locale(),y=s(b[p]),C=s(b[h]),k=y||C.map(function(E){return E.slice(0,g)});if(!m)return k;var w=b.weekStart;return k.map(function(E,S){return k[(S+(w||0))%7]})},c=function(){return l.Ls[l.locale()]},f=function(d,p){return d.formats[p]||function(h){return h.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(g,m,b){return m||b.slice(1)})}(d.formats[p.toUpperCase()])},u=function(){var d=this;return{months:function(p){return p?p.format("MMMM"):i(d,"months")},monthsShort:function(p){return p?p.format("MMM"):i(d,"monthsShort","months",3)},firstDayOfWeek:function(){return d.$locale().weekStart||0},weekdays:function(p){return p?p.format("dddd"):i(d,"weekdays")},weekdaysMin:function(p){return p?p.format("dd"):i(d,"weekdaysMin","weekdays",2)},weekdaysShort:function(p){return p?p.format("ddd"):i(d,"weekdaysShort","weekdays",3)},longDateFormat:function(p){return f(d.$locale(),p)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};a.localeData=function(){return u.bind(this)()},l.localeData=function(){var d=c();return{firstDayOfWeek:function(){return d.weekStart||0},weekdays:function(){return l.weekdays()},weekdaysShort:function(){return l.weekdaysShort()},weekdaysMin:function(){return l.weekdaysMin()},months:function(){return l.months()},monthsShort:function(){return l.monthsShort()},longDateFormat:function(p){return f(d,p)},meridiem:d.meridiem,ordinal:d.ordinal}},l.months=function(){return i(c(),"months")},l.monthsShort=function(){return i(c(),"monthsShort","months",3)},l.weekdays=function(d){return i(c(),"weekdays",null,null,d)},l.weekdaysShort=function(d){return i(c(),"weekdaysShort","weekdays",3,d)},l.weekdaysMin=function(d){return i(c(),"weekdaysMin","weekdays",2,d)}}})})(Uw);var Gw=Uw.exports;const U5=(t,n)=>{ve.extend(Gw);const o=ve.localeData().firstDayOfWeek(),{t:r,lang:l}=Ke(),a=ve().locale(l.value),s=e.computed(()=>!!t.range&&!!t.range.length),i=e.computed(()=>{let p=[];if(s.value){const[h,g]=t.range,m=Io(g.date()-h.date()+1).map(C=>({text:h.date()+C,type:"current"}));let b=m.length%7;b=b===0?0:7-b;const y=Io(b).map((C,k)=>({text:k+1,type:"next"}));p=m.concat(y)}else{const h=t.date.startOf("month").day(),g=F5(t.date,(h-o+7)%7).map(C=>({text:C,type:"prev"})),m=H5(t.date).map(C=>({text:C,type:"current"}));p=[...g,...m];const b=7-(p.length%7||7),y=Io(b).map((C,k)=>({text:k+1,type:"next"}));p=p.concat(y)}return K5(p)}),c=e.computed(()=>{const p=o;return p===0?Is.map(h=>r(`el.datepicker.weeks.${h}`)):Is.slice(p).concat(Is.slice(0,p)).map(h=>r(`el.datepicker.weeks.${h}`))}),f=(p,h)=>{switch(h){case"prev":return t.date.startOf("month").subtract(1,"month").date(p);case"next":return t.date.startOf("month").add(1,"month").date(p);case"current":return t.date.date(p)}};return{now:a,isInRange:s,rows:i,weekDays:c,getFormattedDate:f,handlePickDay:({text:p,type:h})=>{const g=f(p,h);n("pick",g)},getSlotData:({text:p,type:h})=>{const g=f(p,h);return{isSelected:g.isSame(t.selectedDay),type:`${h}-month`,day:g.format("YYYY-MM-DD"),date:g.toDate()}}}},G5={key:0},q5=["onClick"],Y5=e.defineComponent({name:"DateTable"}),X5=e.defineComponent({...Y5,props:W5,emits:j5,setup(t,{expose:n,emit:o}){const r=t,{isInRange:l,now:a,rows:s,weekDays:i,getFormattedDate:c,handlePickDay:f,getSlotData:u}=U5(r,o),d=Q("calendar-table"),p=Q("calendar-day"),h=({text:g,type:m})=>{const b=[m];if(m==="current"){const y=c(g,m);y.isSame(r.selectedDay,"day")&&b.push(p.is("selected")),y.isSame(a,"day")&&b.push(p.is("today"))}return b};return n({getFormattedDate:c}),(g,m)=>(e.openBlock(),e.createElementBlock("table",{class:e.normalizeClass([e.unref(d).b(),e.unref(d).is("range",e.unref(l))]),cellspacing:"0",cellpadding:"0"},[g.hideHeader?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("thead",G5,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),b=>(e.openBlock(),e.createElementBlock("th",{key:b},e.toDisplayString(b),1))),128))])),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),(b,y)=>(e.openBlock(),e.createElementBlock("tr",{key:y,class:e.normalizeClass({[e.unref(d).e("row")]:!0,[e.unref(d).em("row","hide-border")]:y===0&&g.hideHeader})},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b,(C,k)=>(e.openBlock(),e.createElementBlock("td",{key:k,class:e.normalizeClass(h(C)),onClick:w=>e.unref(f)(C)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(p).b())},[e.renderSlot(g.$slots,"date-cell",{data:e.unref(u)(C)},()=>[e.createElementVNode("span",null,e.toDisplayString(C.text),1)])],2)],10,q5))),128))],2))),128))])],2))}});var qw=se(X5,[["__file","date-table.vue"]]);const Z5=(t,n)=>{const o=t.endOf("month"),r=n.startOf("month"),a=o.isSame(r,"week")?r.add(1,"week"):r;return[[t,o],[a.startOf("week"),n]]},J5=(t,n)=>{const o=t.endOf("month"),r=t.add(1,"month").startOf("month"),l=o.isSame(r,"week")?r.add(1,"week"):r,a=l.endOf("month"),s=n.startOf("month"),i=a.isSame(s,"week")?s.add(1,"week"):s;return[[t,o],[l.startOf("week"),a],[i.startOf("week"),n]]},Q5=(t,n,o)=>{const r=e.useSlots(),{lang:l}=Ke(),a=e.ref(),s=ve().locale(l.value),i=e.computed({get(){return t.modelValue?f.value:a.value},set(y){if(!y)return;a.value=y;const C=y.toDate();n(qt,C),n(Ie,C)}}),c=e.computed(()=>{if(!t.range)return[];const y=t.range.map(w=>ve(w).locale(l.value)),[C,k]=y;return C.isAfter(k)?[]:C.isSame(k,"month")?g(C,k):C.add(1,"month").month()!==k.month()?[]:g(C,k)}),f=e.computed(()=>t.modelValue?ve(t.modelValue).locale(l.value):i.value||(c.value.length?c.value[0][0]:s)),u=e.computed(()=>f.value.subtract(1,"month").date(1)),d=e.computed(()=>f.value.add(1,"month").date(1)),p=e.computed(()=>f.value.subtract(1,"year").date(1)),h=e.computed(()=>f.value.add(1,"year").date(1)),g=(y,C)=>{const k=y.startOf("week"),w=C.endOf("week"),E=k.get("month"),S=w.get("month");return E===S?[[k,w]]:(E+1)%12===S?Z5(k,w):E+2===S||(E+1)%11===S?J5(k,w):[]},m=y=>{i.value=y},b=y=>{const k={"prev-month":u.value,"next-month":d.value,"prev-year":p.value,"next-year":h.value,today:s}[y];k.isSame(f.value,"day")||m(k)};return jn({from:'"dateCell"',replacement:'"date-cell"',scope:"ElCalendar",version:"2.3.0",ref:"https://element-plus.org/en-US/component/calendar.html#slots",type:"Slot"},e.computed(()=>!!r.dateCell)),{calculateValidatedDateRange:g,date:f,realSelectedDay:i,pickDay:m,selectDate:b,validatedRange:c}},eH=t=>Re(t)&&t.length===2&&t.every(n=>zl(n)),Yw=le({modelValue:{type:Date},range:{type:W(Array),validator:eH}}),Xw={[Ie]:t=>zl(t),[qt]:t=>zl(t)},tH="ElCalendar",nH=e.defineComponent({name:tH}),oH=e.defineComponent({...nH,props:Yw,emits:Xw,setup(t,{expose:n,emit:o}){const r=t,l=Q("calendar"),{calculateValidatedDateRange:a,date:s,pickDay:i,realSelectedDay:c,selectDate:f,validatedRange:u}=Q5(r,o),{t:d}=Ke(),p=e.computed(()=>{const h=`el.datepicker.month${s.value.format("M")}`;return`${s.value.year()} ${d("el.datepicker.year")} ${d(h)}`});return n({selectedDay:c,pickDay:i,selectDate:f,calculateValidatedDateRange:a}),(h,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(l).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("header"))},[e.renderSlot(h.$slots,"header",{date:e.unref(p)},()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("title"))},e.toDisplayString(e.unref(p)),3),e.unref(u).length===0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("button-group"))},[e.createVNode(e.unref(Jf),null,{default:e.withCtx(()=>[e.createVNode(e.unref(At),{size:"small",onClick:g[0]||(g[0]=m=>e.unref(f)("prev-month"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(d)("el.datepicker.prevMonth")),1)]),_:1}),e.createVNode(e.unref(At),{size:"small",onClick:g[1]||(g[1]=m=>e.unref(f)("today"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(d)("el.datepicker.today")),1)]),_:1}),e.createVNode(e.unref(At),{size:"small",onClick:g[2]||(g[2]=m=>e.unref(f)("next-month"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(d)("el.datepicker.nextMonth")),1)]),_:1})]),_:1})],2)):e.createCommentVNode("v-if",!0)])],2),e.unref(u).length===0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("body"))},[e.createVNode(qw,{date:e.unref(s),"selected-day":e.unref(c),onPick:e.unref(i)},e.createSlots({_:2},[h.$slots["date-cell"]||h.$slots.dateCell?{name:"date-cell",fn:e.withCtx(m=>[h.$slots["date-cell"]?e.renderSlot(h.$slots,"date-cell",e.normalizeProps(e.mergeProps({key:0},m))):e.renderSlot(h.$slots,"dateCell",e.normalizeProps(e.mergeProps({key:1},m)))])}:void 0]),1032,["date","selected-day","onPick"])],2)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).e("body"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(u),(m,b)=>(e.openBlock(),e.createBlock(qw,{key:b,date:m[0],"selected-day":e.unref(c),range:m,"hide-header":b!==0,onPick:e.unref(i)},e.createSlots({_:2},[h.$slots["date-cell"]||h.$slots.dateCell?{name:"date-cell",fn:e.withCtx(y=>[h.$slots["date-cell"]?e.renderSlot(h.$slots,"date-cell",e.normalizeProps(e.mergeProps({key:0},y))):e.renderSlot(h.$slots,"dateCell",e.normalizeProps(e.mergeProps({key:1},y)))])}:void 0]),1032,["date","selected-day","range","hide-header","onPick"]))),128))],2))],2))}});var rH=se(oH,[["__file","calendar.vue"]]);const Zw=Me(rH),Jw=le({header:{type:String,default:""},footer:{type:String,default:""},bodyStyle:{type:W([String,Object,Array]),default:""},bodyClass:String,shadow:{type:String,values:["always","hover","never"],default:"always"}}),lH=e.defineComponent({name:"ElCard"}),aH=e.defineComponent({...lH,props:Jw,setup(t){const n=Q("card");return(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(n).b(),e.unref(n).is(`${o.shadow}-shadow`)])},[o.$slots.header||o.header?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(n).e("header"))},[e.renderSlot(o.$slots,"header",{},()=>[e.createTextVNode(e.toDisplayString(o.header),1)])],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass([e.unref(n).e("body"),o.bodyClass]),style:e.normalizeStyle(o.bodyStyle)},[e.renderSlot(o.$slots,"default")],6),o.$slots.footer||o.footer?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(n).e("footer"))},[e.renderSlot(o.$slots,"footer",{},()=>[e.createTextVNode(e.toDisplayString(o.footer),1)])],2)):e.createCommentVNode("v-if",!0)],2))}});var sH=se(aH,[["__file","card.vue"]]);const Qw=Me(sH),e1=le({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:""},loop:{type:Boolean,default:!0},direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},pauseOnHover:{type:Boolean,default:!0}}),t1={change:(t,n)=>[t,n].every(be)},Cu=Symbol("carouselContextKey"),n1=300,iH=(t,n,o)=>{const{children:r,addChild:l,removeChild:a}=qs(e.getCurrentInstance(),"ElCarouselItem"),s=e.useSlots(),i=e.ref(-1),c=e.ref(null),f=e.ref(!1),u=e.ref(),d=e.ref(0),p=e.ref(!0),h=e.computed(()=>t.arrow!=="never"&&!e.unref(b)),g=e.computed(()=>r.value.some(K=>K.props.label.toString().length>0)),m=e.computed(()=>t.type==="card"),b=e.computed(()=>t.direction==="vertical"),y=e.computed(()=>t.height!=="auto"?{height:t.height}:{height:`${d.value}px`,overflow:"hidden"}),C=jo(K=>{B(K)},n1,{trailing:!0}),k=jo(K=>{z(K)},n1),w=K=>p.value?i.value<=1?K<=1:K>1:!0;function E(){c.value&&(clearInterval(c.value),c.value=null)}function S(){t.interval<=0||!t.autoplay||c.value||(c.value=setInterval(()=>_(),t.interval))}const _=()=>{i.valueZ.props.name===K);Y.length>0&&(K=r.value.indexOf(Y[0]))}if(K=Number(K),Number.isNaN(K)||K!==Math.floor(K))return;const q=r.value.length,ne=i.value;K<0?i.value=t.loop?q-1:0:K>=q?i.value=t.loop?0:q-1:i.value=K,ne===i.value&&M(ne),N()}function M(K){r.value.forEach((q,ne)=>{q.translateItem(ne,i.value,K)})}function P(K,q){var ne,Y,Z,U;const re=e.unref(r),te=re.length;if(te===0||!K.states.inStage)return!1;const oe=q+1,ie=q-1,ye=te-1,Ne=re[ye].states.active,Te=re[0].states.active,Pe=(Y=(ne=re[oe])==null?void 0:ne.states)==null?void 0:Y.active,he=(U=(Z=re[ie])==null?void 0:Z.states)==null?void 0:U.active;return q===ye&&Te||Pe?"left":q===0&&Ne||he?"right":!1}function T(){f.value=!0,t.pauseOnHover&&E()}function I(){f.value=!1,S()}function v(K){e.unref(b)||r.value.forEach((q,ne)=>{K===P(q,ne)&&(q.states.hover=!0)})}function O(){e.unref(b)||r.value.forEach(K=>{K.states.hover=!1})}function D(K){i.value=K}function z(K){t.trigger==="hover"&&K!==i.value&&(i.value=K)}function $(){B(i.value-1)}function R(){B(i.value+1)}function N(){E(),t.pauseOnHover||S()}function A(K){t.height==="auto"&&(d.value=K)}function x(){var K;const q=(K=s.default)==null?void 0:K.call(s);if(!q)return null;const ne=Er(q),Y="ElCarouselItem",Z=ne.filter(U=>e.isVNode(U)&&U.type.name===Y);return(Z==null?void 0:Z.length)===2&&t.loop&&!m.value?(p.value=!0,Z):(p.value=!1,null)}e.watch(()=>i.value,(K,q)=>{M(q),p.value&&(K=K%2,q=q%2),q>-1&&n("change",K,q)}),e.watch(()=>t.autoplay,K=>{K?S():E()}),e.watch(()=>t.loop,()=>{B(i.value)}),e.watch(()=>t.interval,()=>{N()});const H=e.shallowRef();return e.onMounted(()=>{e.watch(()=>r.value,()=>{r.value.length>0&&B(t.initialIndex)},{immediate:!0}),H.value=jt(u.value,()=>{M()}),S()}),e.onBeforeUnmount(()=>{E(),u.value&&H.value&&H.value.stop()}),e.provide(Cu,{root:u,isCardType:m,isVertical:b,items:r,loop:t.loop,addItem:l,removeItem:a,setActiveItem:B,setContainerHeight:A}),{root:u,activeIndex:i,arrowDisplay:h,hasLabel:g,hover:f,isCardType:m,items:r,isVertical:b,containerStyle:y,isItemsTwoLength:p,handleButtonEnter:v,handleButtonLeave:O,handleIndicatorClick:D,handleMouseEnter:T,handleMouseLeave:I,setActiveItem:B,prev:$,next:R,PlaceholderItem:x,isTwoLengthShow:w,throttledArrowClick:C,throttledIndicatorHover:k}},cH=["onMouseenter","onClick"],dH={key:0},fH="ElCarousel",uH=e.defineComponent({name:fH}),pH=e.defineComponent({...uH,props:e1,emits:t1,setup(t,{expose:n,emit:o}){const r=t,{root:l,activeIndex:a,arrowDisplay:s,hasLabel:i,hover:c,isCardType:f,items:u,isVertical:d,containerStyle:p,handleButtonEnter:h,handleButtonLeave:g,handleIndicatorClick:m,handleMouseEnter:b,handleMouseLeave:y,setActiveItem:C,prev:k,next:w,PlaceholderItem:E,isTwoLengthShow:S,throttledArrowClick:_,throttledIndicatorHover:B}=iH(r,o),M=Q("carousel"),P=e.computed(()=>{const I=[M.b(),M.m(r.direction)];return e.unref(f)&&I.push(M.m("card")),I}),T=e.computed(()=>{const I=[M.e("indicators"),M.em("indicators",r.direction)];return e.unref(i)&&I.push(M.em("indicators","labels")),r.indicatorPosition==="outside"&&I.push(M.em("indicators","outside")),e.unref(d)&&I.push(M.em("indicators","right")),I});return n({setActiveItem:C,prev:k,next:w}),(I,v)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"root",ref:l,class:e.normalizeClass(e.unref(P)),onMouseenter:v[6]||(v[6]=e.withModifiers((...O)=>e.unref(b)&&e.unref(b)(...O),["stop"])),onMouseleave:v[7]||(v[7]=e.withModifiers((...O)=>e.unref(y)&&e.unref(y)(...O),["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(M).e("container")),style:e.normalizeStyle(e.unref(p))},[e.unref(s)?(e.openBlock(),e.createBlock(e.Transition,{key:0,name:"carousel-arrow-left",persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(M).e("arrow"),e.unref(M).em("arrow","left")]),onMouseenter:v[0]||(v[0]=O=>e.unref(h)("left")),onMouseleave:v[1]||(v[1]=(...O)=>e.unref(g)&&e.unref(g)(...O)),onClick:v[2]||(v[2]=e.withModifiers(O=>e.unref(_)(e.unref(a)-1),["stop"]))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Yo))]),_:1})],34),[[e.vShow,(I.arrow==="always"||e.unref(c))&&(r.loop||e.unref(a)>0)]])]),_:1})):e.createCommentVNode("v-if",!0),e.unref(s)?(e.openBlock(),e.createBlock(e.Transition,{key:1,name:"carousel-arrow-right",persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(M).e("arrow"),e.unref(M).em("arrow","right")]),onMouseenter:v[3]||(v[3]=O=>e.unref(h)("right")),onMouseleave:v[4]||(v[4]=(...O)=>e.unref(g)&&e.unref(g)(...O)),onClick:v[5]||(v[5]=e.withModifiers(O=>e.unref(_)(e.unref(a)+1),["stop"]))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})],34),[[e.vShow,(I.arrow==="always"||e.unref(c))&&(r.loop||e.unref(a)e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:D,class:e.normalizeClass([e.unref(M).e("indicator"),e.unref(M).em("indicator",I.direction),e.unref(M).is("active",D===e.unref(a))]),onMouseenter:z=>e.unref(B)(D),onClick:e.withModifiers(z=>e.unref(m)(D),["stop"])},[e.createElementVNode("button",{class:e.normalizeClass(e.unref(M).e("button"))},[e.unref(i)?(e.openBlock(),e.createElementBlock("span",dH,e.toDisplayString(O.props.label),1)):e.createCommentVNode("v-if",!0)],2)],42,cH)),[[e.vShow,e.unref(S)(D)]])),128))],2)):e.createCommentVNode("v-if",!0)],34))}});var mH=se(pH,[["__file","carousel.vue"]]);const o1=le({name:{type:String,default:""},label:{type:[String,Number],default:""}}),hH=(t,n)=>{const o=e.inject(Cu),r=e.getCurrentInstance(),l=.83,a=e.ref(),s=e.ref(!1),i=e.ref(0),c=e.ref(1),f=e.ref(!1),u=e.ref(!1),d=e.ref(!1),p=e.ref(!1),{isCardType:h,isVertical:g}=o;function m(w,E,S){const _=S-1,B=E-1,M=E+1,P=S/2;return E===0&&w===_?-1:E===_&&w===0?S:w=P?S+1:w>M&&w-E>=P?-2:w}function b(w,E){var S,_;const B=e.unref(g)?((S=o.root.value)==null?void 0:S.offsetHeight)||0:((_=o.root.value)==null?void 0:_.offsetWidth)||0;return d.value?B*((2-l)*(w-E)+1)/4:w{var _;const B=e.unref(h),M=(_=o.items.value.length)!=null?_:Number.NaN,P=w===E;!B&&!$t(S)&&(p.value=P||w===S),!P&&M>2&&o.loop&&(w=m(w,E,M));const T=e.unref(g);f.value=P,B?(d.value=Math.round(Math.abs(w-E))<=1,i.value=b(w,E),c.value=e.unref(f)?1:l):i.value=y(w,E,T),u.value=!0,P&&a.value&&o.setContainerHeight(a.value.offsetHeight)};function k(){if(o&&e.unref(h)){const w=o.items.value.findIndex(({uid:E})=>E===r.uid);o.setActiveItem(w)}}return e.onMounted(()=>{o.addItem({props:t,states:e.reactive({hover:s,translate:i,scale:c,active:f,ready:u,inStage:d,animating:p}),uid:r.uid,translateItem:C})}),e.onUnmounted(()=>{o.removeItem(r.uid)}),{carouselItemRef:a,active:f,animating:p,hover:s,inStage:d,isVertical:g,translate:i,isCardType:h,scale:c,ready:u,handleItemClick:k}},gH=e.defineComponent({name:"ElCarouselItem"}),yH=e.defineComponent({...gH,props:o1,setup(t){const n=t,o=Q("carousel"),{carouselItemRef:r,active:l,animating:a,hover:s,inStage:i,isVertical:c,translate:f,isCardType:u,scale:d,ready:p,handleItemClick:h}=hH(n),g=e.computed(()=>{const b=`${`translate${e.unref(c)?"Y":"X"}`}(${e.unref(f)}px)`,y=`scale(${e.unref(d)})`;return{transform:[b,y].join(" ")}});return(m,b)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{ref_key:"carouselItemRef",ref:r,class:e.normalizeClass([e.unref(o).e("item"),e.unref(o).is("active",e.unref(l)),e.unref(o).is("in-stage",e.unref(i)),e.unref(o).is("hover",e.unref(s)),e.unref(o).is("animating",e.unref(a)),{[e.unref(o).em("item","card")]:e.unref(u),[e.unref(o).em("item","card-vertical")]:e.unref(u)&&e.unref(c)}]),style:e.normalizeStyle(e.unref(g)),onClick:b[0]||(b[0]=(...y)=>e.unref(h)&&e.unref(h)(...y))},[e.unref(u)?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).e("mask"))},null,2)),[[e.vShow,!e.unref(l)]]):e.createCommentVNode("v-if",!0),e.renderSlot(m.$slots,"default")],6)),[[e.vShow,e.unref(p)]])}});var r1=se(yH,[["__file","carousel-item.vue"]]);const l1=Me(mH,{CarouselItem:r1}),a1=ht(r1),wu={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:Boolean,checked:Boolean,name:{type:String,default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},controls:{type:String,default:void 0},border:Boolean,size:Vt,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0}},ku={[Ie]:t=>De(t)||be(t)||Tt(t),change:t=>De(t)||be(t)||Tt(t)},Or=Symbol("checkboxGroupContextKey"),bH=({model:t,isChecked:n})=>{const o=e.inject(Or,void 0),r=e.computed(()=>{var a,s;const i=(a=o==null?void 0:o.max)==null?void 0:a.value,c=(s=o==null?void 0:o.min)==null?void 0:s.value;return!$t(i)&&t.value.length>=i&&!n.value||!$t(c)&&t.value.length<=c&&n.value});return{isDisabled:Yt(e.computed(()=>(o==null?void 0:o.disabled.value)||r.value)),isLimitDisabled:r}},CH=(t,{model:n,isLimitExceeded:o,hasOwnLabel:r,isDisabled:l,isLabeledByFormItem:a})=>{const s=e.inject(Or,void 0),{formItem:i}=Xt(),{emit:c}=e.getCurrentInstance();function f(g){var m,b;return g===t.trueLabel||g===!0?(m=t.trueLabel)!=null?m:!0:(b=t.falseLabel)!=null?b:!1}function u(g,m){c("change",f(g),m)}function d(g){if(o.value)return;const m=g.target;c("change",f(m.checked),g)}async function p(g){o.value||!r.value&&!l.value&&a.value&&(g.composedPath().some(y=>y.tagName==="LABEL")||(n.value=f([!1,t.falseLabel].includes(n.value)),await e.nextTick(),u(n.value,g)))}const h=e.computed(()=>(s==null?void 0:s.validateEvent)||t.validateEvent);return e.watch(()=>t.modelValue,()=>{h.value&&(i==null||i.validate("change").catch(g=>void 0))}),{handleChange:d,onClickRoot:p}},wH=t=>{const n=e.ref(!1),{emit:o}=e.getCurrentInstance(),r=e.inject(Or,void 0),l=e.computed(()=>$t(r)===!1),a=e.ref(!1);return{model:e.computed({get(){var i,c;return l.value?(i=r==null?void 0:r.modelValue)==null?void 0:i.value:(c=t.modelValue)!=null?c:n.value},set(i){var c,f;l.value&&Re(i)?(a.value=((c=r==null?void 0:r.max)==null?void 0:c.value)!==void 0&&i.length>(r==null?void 0:r.max.value),a.value===!1&&((f=r==null?void 0:r.changeEvent)==null||f.call(r,i))):(o(Ie,i),n.value=i)}}),isGroup:l,isLimitExceeded:a}},kH=(t,n,{model:o})=>{const r=e.inject(Or,void 0),l=e.ref(!1),a=e.computed(()=>{const f=o.value;return Tt(f)?f:Re(f)?nt(t.label)?f.map(e.toRaw).some(u=>tn(u,t.label)):f.map(e.toRaw).includes(t.label):f!=null?f===t.trueLabel:!!f}),s=St(e.computed(()=>{var f;return(f=r==null?void 0:r.size)==null?void 0:f.value}),{prop:!0}),i=St(e.computed(()=>{var f;return(f=r==null?void 0:r.size)==null?void 0:f.value})),c=e.computed(()=>!!n.default||!wt(t.label));return{checkboxButtonSize:s,isChecked:a,isFocused:l,checkboxSize:i,hasOwnLabel:c}},SH=(t,{model:n})=>{function o(){Re(n.value)&&!n.value.includes(t.label)?n.value.push(t.label):n.value=t.trueLabel||!0}t.checked&&o()},s1=(t,n)=>{const{formItem:o}=Xt(),{model:r,isGroup:l,isLimitExceeded:a}=wH(t),{isFocused:s,isChecked:i,checkboxButtonSize:c,checkboxSize:f,hasOwnLabel:u}=kH(t,n,{model:r}),{isDisabled:d}=bH({model:r,isChecked:i}),{inputId:p,isLabeledByFormItem:h}=vo(t,{formItemContext:o,disableIdGeneration:u,disableIdManagement:l}),{handleChange:g,onClickRoot:m}=CH(t,{model:r,isLimitExceeded:a,hasOwnLabel:u,isDisabled:d,isLabeledByFormItem:h});return SH(t,{model:r}),{inputId:p,isLabeledByFormItem:h,isChecked:i,isDisabled:d,isFocused:s,checkboxButtonSize:c,checkboxSize:f,hasOwnLabel:u,model:r,handleChange:g,onClickRoot:m}},EH=["id","indeterminate","name","tabindex","disabled","true-value","false-value"],NH=["id","indeterminate","disabled","value","name","tabindex"],_H=e.defineComponent({name:"ElCheckbox"}),BH=e.defineComponent({..._H,props:wu,emits:ku,setup(t){const n=t,o=e.useSlots(),{inputId:r,isLabeledByFormItem:l,isChecked:a,isDisabled:s,isFocused:i,checkboxSize:c,hasOwnLabel:f,model:u,handleChange:d,onClickRoot:p}=s1(n,o),h=Q("checkbox"),g=e.computed(()=>[h.b(),h.m(c.value),h.is("disabled",s.value),h.is("bordered",n.border),h.is("checked",a.value)]),m=e.computed(()=>[h.e("input"),h.is("disabled",s.value),h.is("checked",a.value),h.is("indeterminate",n.indeterminate),h.is("focus",i.value)]);return(b,y)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(!e.unref(f)&&e.unref(l)?"span":"label"),{class:e.normalizeClass(e.unref(g)),"aria-controls":b.indeterminate?b.controls:null,onClick:e.unref(p)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(e.unref(m))},[b.trueLabel||b.falseLabel?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,id:e.unref(r),"onUpdate:modelValue":y[0]||(y[0]=C=>e.isRef(u)?u.value=C:null),class:e.normalizeClass(e.unref(h).e("original")),type:"checkbox",indeterminate:b.indeterminate,name:b.name,tabindex:b.tabindex,disabled:e.unref(s),"true-value":b.trueLabel,"false-value":b.falseLabel,onChange:y[1]||(y[1]=(...C)=>e.unref(d)&&e.unref(d)(...C)),onFocus:y[2]||(y[2]=C=>i.value=!0),onBlur:y[3]||(y[3]=C=>i.value=!1),onClick:y[4]||(y[4]=e.withModifiers(()=>{},["stop"]))},null,42,EH)),[[e.vModelCheckbox,e.unref(u)]]):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,id:e.unref(r),"onUpdate:modelValue":y[5]||(y[5]=C=>e.isRef(u)?u.value=C:null),class:e.normalizeClass(e.unref(h).e("original")),type:"checkbox",indeterminate:b.indeterminate,disabled:e.unref(s),value:b.label,name:b.name,tabindex:b.tabindex,onChange:y[6]||(y[6]=(...C)=>e.unref(d)&&e.unref(d)(...C)),onFocus:y[7]||(y[7]=C=>i.value=!0),onBlur:y[8]||(y[8]=C=>i.value=!1),onClick:y[9]||(y[9]=e.withModifiers(()=>{},["stop"]))},null,42,NH)),[[e.vModelCheckbox,e.unref(u)]]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(h).e("inner"))},null,2)],2),e.unref(f)?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(h).e("label"))},[e.renderSlot(b.$slots,"default"),b.$slots.default?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(b.label),1)],64))],2)):e.createCommentVNode("v-if",!0)]),_:3},8,["class","aria-controls","onClick"]))}});var $H=se(BH,[["__file","checkbox.vue"]]);const TH=["name","tabindex","disabled","true-value","false-value"],vH=["name","tabindex","disabled","value"],VH=e.defineComponent({name:"ElCheckboxButton"}),MH=e.defineComponent({...VH,props:wu,emits:ku,setup(t){const n=t,o=e.useSlots(),{isFocused:r,isChecked:l,isDisabled:a,checkboxButtonSize:s,model:i,handleChange:c}=s1(n,o),f=e.inject(Or,void 0),u=Q("checkbox"),d=e.computed(()=>{var h,g,m,b;const y=(g=(h=f==null?void 0:f.fill)==null?void 0:h.value)!=null?g:"";return{backgroundColor:y,borderColor:y,color:(b=(m=f==null?void 0:f.textColor)==null?void 0:m.value)!=null?b:"",boxShadow:y?`-1px 0 0 0 ${y}`:void 0}}),p=e.computed(()=>[u.b("button"),u.bm("button",s.value),u.is("disabled",a.value),u.is("checked",l.value),u.is("focus",r.value)]);return(h,g)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(e.unref(p))},[h.trueLabel||h.falseLabel?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,"onUpdate:modelValue":g[0]||(g[0]=m=>e.isRef(i)?i.value=m:null),class:e.normalizeClass(e.unref(u).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:e.unref(a),"true-value":h.trueLabel,"false-value":h.falseLabel,onChange:g[1]||(g[1]=(...m)=>e.unref(c)&&e.unref(c)(...m)),onFocus:g[2]||(g[2]=m=>r.value=!0),onBlur:g[3]||(g[3]=m=>r.value=!1),onClick:g[4]||(g[4]=e.withModifiers(()=>{},["stop"]))},null,42,TH)),[[e.vModelCheckbox,e.unref(i)]]):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":g[5]||(g[5]=m=>e.isRef(i)?i.value=m:null),class:e.normalizeClass(e.unref(u).be("button","original")),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:e.unref(a),value:h.label,onChange:g[6]||(g[6]=(...m)=>e.unref(c)&&e.unref(c)(...m)),onFocus:g[7]||(g[7]=m=>r.value=!0),onBlur:g[8]||(g[8]=m=>r.value=!1),onClick:g[9]||(g[9]=e.withModifiers(()=>{},["stop"]))},null,42,vH)),[[e.vModelCheckbox,e.unref(i)]]),h.$slots.default||h.label?(e.openBlock(),e.createElementBlock("span",{key:2,class:e.normalizeClass(e.unref(u).be("button","inner")),style:e.normalizeStyle(e.unref(l)?e.unref(d):void 0)},[e.renderSlot(h.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(h.label),1)])],6)):e.createCommentVNode("v-if",!0)],2))}});var i1=se(MH,[["__file","checkbox-button.vue"]]);const c1=le({modelValue:{type:W(Array),default:()=>[]},disabled:Boolean,min:Number,max:Number,size:Vt,label:String,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0}}),d1={[Ie]:t=>Re(t),change:t=>Re(t)},IH=e.defineComponent({name:"ElCheckboxGroup"}),PH=e.defineComponent({...IH,props:c1,emits:d1,setup(t,{emit:n}){const o=t,r=Q("checkbox"),{formItem:l}=Xt(),{inputId:a,isLabeledByFormItem:s}=vo(o,{formItemContext:l}),i=async f=>{n(Ie,f),await e.nextTick(),n("change",f)},c=e.computed({get(){return o.modelValue},set(f){i(f)}});return e.provide(Or,{...ro(e.toRefs(o),["size","min","max","disabled","validateEvent","fill","textColor"]),modelValue:c,changeEvent:i}),e.watch(()=>o.modelValue,()=>{o.validateEvent&&(l==null||l.validate("change").catch(f=>void 0))}),(f,u)=>{var d;return e.openBlock(),e.createBlock(e.resolveDynamicComponent(f.tag),{id:e.unref(a),class:e.normalizeClass(e.unref(r).b("group")),role:"group","aria-label":e.unref(s)?void 0:f.label||"checkbox-group","aria-labelledby":e.unref(s)?(d=e.unref(l))==null?void 0:d.labelId:void 0},{default:e.withCtx(()=>[e.renderSlot(f.$slots,"default")]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var f1=se(PH,[["__file","checkbox-group.vue"]]);const En=Me($H,{CheckboxButton:i1,CheckboxGroup:f1}),u1=ht(i1),Su=ht(f1),Eu=le({size:Vt,disabled:Boolean,label:{type:[String,Number,Boolean],default:""}}),p1=le({...Eu,modelValue:{type:[String,Number,Boolean],default:""},name:{type:String,default:""},border:Boolean}),Nu={[Ie]:t=>De(t)||be(t)||Tt(t),[at]:t=>De(t)||be(t)||Tt(t)},_u=Symbol("radioGroupKey"),m1=(t,n)=>{const o=e.ref(),r=e.inject(_u,void 0),l=e.computed(()=>!!r),a=e.computed({get(){return l.value?r.modelValue:t.modelValue},set(u){l.value?r.changeEvent(u):n&&n(Ie,u),o.value.checked=t.modelValue===t.label}}),s=St(e.computed(()=>r==null?void 0:r.size)),i=Yt(e.computed(()=>r==null?void 0:r.disabled)),c=e.ref(!1),f=e.computed(()=>i.value||l.value&&a.value!==t.label?-1:0);return{radioRef:o,isGroup:l,radioGroup:r,focus:c,size:s,disabled:i,tabIndex:f,modelValue:a}},RH=["value","name","disabled"],OH=e.defineComponent({name:"ElRadio"}),AH=e.defineComponent({...OH,props:p1,emits:Nu,setup(t,{emit:n}){const o=t,r=Q("radio"),{radioRef:l,radioGroup:a,focus:s,size:i,disabled:c,modelValue:f}=m1(o,n);function u(){e.nextTick(()=>n("change",f.value))}return(d,p)=>{var h;return e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass([e.unref(r).b(),e.unref(r).is("disabled",e.unref(c)),e.unref(r).is("focus",e.unref(s)),e.unref(r).is("bordered",d.border),e.unref(r).is("checked",e.unref(f)===d.label),e.unref(r).m(e.unref(i))])},[e.createElementVNode("span",{class:e.normalizeClass([e.unref(r).e("input"),e.unref(r).is("disabled",e.unref(c)),e.unref(r).is("checked",e.unref(f)===d.label)])},[e.withDirectives(e.createElementVNode("input",{ref_key:"radioRef",ref:l,"onUpdate:modelValue":p[0]||(p[0]=g=>e.isRef(f)?f.value=g:null),class:e.normalizeClass(e.unref(r).e("original")),value:d.label,name:d.name||((h=e.unref(a))==null?void 0:h.name),disabled:e.unref(c),type:"radio",onFocus:p[1]||(p[1]=g=>s.value=!0),onBlur:p[2]||(p[2]=g=>s.value=!1),onChange:u,onClick:p[3]||(p[3]=e.withModifiers(()=>{},["stop"]))},null,42,RH),[[e.vModelRadio,e.unref(f)]]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(r).e("inner"))},null,2)],2),e.createElementVNode("span",{class:e.normalizeClass(e.unref(r).e("label")),onKeydown:p[4]||(p[4]=e.withModifiers(()=>{},["stop"]))},[e.renderSlot(d.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(d.label),1)])],34)],2)}}});var zH=se(AH,[["__file","radio.vue"]]);const h1=le({...Eu,name:{type:String,default:""}}),DH=["value","name","disabled"],LH=e.defineComponent({name:"ElRadioButton"}),xH=e.defineComponent({...LH,props:h1,setup(t){const n=t,o=Q("radio"),{radioRef:r,focus:l,size:a,disabled:s,modelValue:i,radioGroup:c}=m1(n),f=e.computed(()=>({backgroundColor:(c==null?void 0:c.fill)||"",borderColor:(c==null?void 0:c.fill)||"",boxShadow:c!=null&&c.fill?`-1px 0 0 0 ${c.fill}`:"",color:(c==null?void 0:c.textColor)||""}));return(u,d)=>{var p;return e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass([e.unref(o).b("button"),e.unref(o).is("active",e.unref(i)===u.label),e.unref(o).is("disabled",e.unref(s)),e.unref(o).is("focus",e.unref(l)),e.unref(o).bm("button",e.unref(a))])},[e.withDirectives(e.createElementVNode("input",{ref_key:"radioRef",ref:r,"onUpdate:modelValue":d[0]||(d[0]=h=>e.isRef(i)?i.value=h:null),class:e.normalizeClass(e.unref(o).be("button","original-radio")),value:u.label,type:"radio",name:u.name||((p=e.unref(c))==null?void 0:p.name),disabled:e.unref(s),onFocus:d[1]||(d[1]=h=>l.value=!0),onBlur:d[2]||(d[2]=h=>l.value=!1),onClick:d[3]||(d[3]=e.withModifiers(()=>{},["stop"]))},null,42,DH),[[e.vModelRadio,e.unref(i)]]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(o).be("button","inner")),style:e.normalizeStyle(e.unref(i)===u.label?e.unref(f):{}),onKeydown:d[4]||(d[4]=e.withModifiers(()=>{},["stop"]))},[e.renderSlot(u.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(u.label),1)])],38)],2)}}});var g1=se(xH,[["__file","radio-button.vue"]]);const y1=le({id:{type:String,default:void 0},size:Vt,disabled:Boolean,modelValue:{type:[String,Number,Boolean],default:""},fill:{type:String,default:""},label:{type:String,default:void 0},textColor:{type:String,default:""},name:{type:String,default:void 0},validateEvent:{type:Boolean,default:!0}}),b1=Nu,FH=["id","aria-label","aria-labelledby"],HH=e.defineComponent({name:"ElRadioGroup"}),KH=e.defineComponent({...HH,props:y1,emits:b1,setup(t,{emit:n}){const o=t,r=Q("radio"),l=rn(),a=e.ref(),{formItem:s}=Xt(),{inputId:i,isLabeledByFormItem:c}=vo(o,{formItemContext:s}),f=d=>{n(Ie,d),e.nextTick(()=>n("change",d))};e.onMounted(()=>{const d=a.value.querySelectorAll("[type=radio]"),p=d[0];!Array.from(d).some(h=>h.checked)&&p&&(p.tabIndex=0)});const u=e.computed(()=>o.name||l.value);return e.provide(_u,e.reactive({...e.toRefs(o),changeEvent:f,name:u})),e.watch(()=>o.modelValue,()=>{o.validateEvent&&(s==null||s.validate("change").catch(d=>void 0))}),(d,p)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(i),ref_key:"radioGroupRef",ref:a,class:e.normalizeClass(e.unref(r).b("group")),role:"radiogroup","aria-label":e.unref(c)?void 0:d.label||"radio-group","aria-labelledby":e.unref(c)?e.unref(s).labelId:void 0},[e.renderSlot(d.$slots,"default")],10,FH))}});var C1=se(KH,[["__file","radio-group.vue"]]);const Bu=Me(zH,{RadioButton:g1,RadioGroup:C1}),w1=ht(C1),k1=ht(g1);var WH=e.defineComponent({name:"NodeContent",setup(){return{ns:Q("cascader-node")}},render(){const{ns:t}=this,{node:n,panel:o}=this.$parent,{data:r,label:l}=n,{renderLabelFn:a}=o;return e.h("span",{class:t.e("label")},a?a({node:n,data:r}):l)}});const Ni=Symbol(),jH=e.defineComponent({name:"ElCascaderNode",components:{ElCheckbox:En,ElRadio:Bu,NodeContent:WH,ElIcon:fe,Check:la,Loading:Zo,ArrowRight:on},props:{node:{type:Object,required:!0},menuId:String},emits:["expand"],setup(t,{emit:n}){const o=e.inject(Ni),r=Q("cascader-node"),l=e.computed(()=>o.isHoverMenu),a=e.computed(()=>o.config.multiple),s=e.computed(()=>o.config.checkStrictly),i=e.computed(()=>{var S;return(S=o.checkedNodes[0])==null?void 0:S.uid}),c=e.computed(()=>t.node.isDisabled),f=e.computed(()=>t.node.isLeaf),u=e.computed(()=>s.value&&!f.value||!c.value),d=e.computed(()=>h(o.expandingNode)),p=e.computed(()=>s.value&&o.checkedNodes.some(h)),h=S=>{var _;const{level:B,uid:M}=t.node;return((_=S==null?void 0:S.pathNodes[B-1])==null?void 0:_.uid)===M},g=()=>{d.value||o.expandNode(t.node)},m=S=>{const{node:_}=t;S!==_.checked&&o.handleCheckChange(_,S)},b=()=>{o.lazyLoad(t.node,()=>{f.value||g()})},y=S=>{!l.value||(C(),!f.value&&n("expand",S))},C=()=>{const{node:S}=t;!u.value||S.loading||(S.loaded?g():b())},k=()=>{l.value&&!f.value||(f.value&&!c.value&&!s.value&&!a.value?E(!0):C())},w=S=>{s.value?(m(S),t.node.loaded&&g()):E(S)},E=S=>{t.node.loaded?(m(S),!s.value&&g()):b()};return{panel:o,isHoverMenu:l,multiple:a,checkStrictly:s,checkedNodeId:i,isDisabled:c,isLeaf:f,expandable:u,inExpandingPath:d,inCheckedPath:p,ns:r,handleHoverExpand:y,handleExpand:C,handleClick:k,handleCheck:E,handleSelectCheck:w}}}),UH=["id","aria-haspopup","aria-owns","aria-expanded","tabindex"],GH=e.createElementVNode("span",null,null,-1);function qH(t,n,o,r,l,a){const s=e.resolveComponent("el-checkbox"),i=e.resolveComponent("el-radio"),c=e.resolveComponent("check"),f=e.resolveComponent("el-icon"),u=e.resolveComponent("node-content"),d=e.resolveComponent("loading"),p=e.resolveComponent("arrow-right");return e.openBlock(),e.createElementBlock("li",{id:`${t.menuId}-${t.node.uid}`,role:"menuitem","aria-haspopup":!t.isLeaf,"aria-owns":t.isLeaf?null:t.menuId,"aria-expanded":t.inExpandingPath,tabindex:t.expandable?-1:void 0,class:e.normalizeClass([t.ns.b(),t.ns.is("selectable",t.checkStrictly),t.ns.is("active",t.node.checked),t.ns.is("disabled",!t.expandable),t.inExpandingPath&&"in-active-path",t.inCheckedPath&&"in-checked-path"]),onMouseenter:n[2]||(n[2]=(...h)=>t.handleHoverExpand&&t.handleHoverExpand(...h)),onFocus:n[3]||(n[3]=(...h)=>t.handleHoverExpand&&t.handleHoverExpand(...h)),onClick:n[4]||(n[4]=(...h)=>t.handleClick&&t.handleClick(...h))},[e.createCommentVNode(" prefix "),t.multiple?(e.openBlock(),e.createBlock(s,{key:0,"model-value":t.node.checked,indeterminate:t.node.indeterminate,disabled:t.isDisabled,onClick:n[0]||(n[0]=e.withModifiers(()=>{},["stop"])),"onUpdate:modelValue":t.handleSelectCheck},null,8,["model-value","indeterminate","disabled","onUpdate:modelValue"])):t.checkStrictly?(e.openBlock(),e.createBlock(i,{key:1,"model-value":t.checkedNodeId,label:t.node.uid,disabled:t.isDisabled,"onUpdate:modelValue":t.handleSelectCheck,onClick:n[1]||(n[1]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[e.createCommentVNode(` + Add an empty element to avoid render label, + do not use empty fragment here for https://github.com/vuejs/vue-next/pull/2485 + `),GH]),_:1},8,["model-value","label","disabled","onUpdate:modelValue"])):t.isLeaf&&t.node.checked?(e.openBlock(),e.createBlock(f,{key:2,class:e.normalizeClass(t.ns.e("prefix"))},{default:e.withCtx(()=>[e.createVNode(c)]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.createCommentVNode(" content "),e.createVNode(u),e.createCommentVNode(" postfix "),t.isLeaf?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[t.node.loading?(e.openBlock(),e.createBlock(f,{key:0,class:e.normalizeClass([t.ns.is("loading"),t.ns.e("postfix")])},{default:e.withCtx(()=>[e.createVNode(d)]),_:1},8,["class"])):(e.openBlock(),e.createBlock(f,{key:1,class:e.normalizeClass(["arrow-right",t.ns.e("postfix")])},{default:e.withCtx(()=>[e.createVNode(p)]),_:1},8,["class"]))],64))],42,UH)}var YH=se(jH,[["render",qH],["__file","node.vue"]]);const XH=e.defineComponent({name:"ElCascaderMenu",components:{Loading:Zo,ElIcon:fe,ElScrollbar:mo,ElCascaderNode:YH},props:{nodes:{type:Array,required:!0},index:{type:Number,required:!0}},setup(t){const n=e.getCurrentInstance(),o=Q("cascader-menu"),{t:r}=Ke(),l=Os();let a=null,s=null;const i=e.inject(Ni),c=e.ref(null),f=e.computed(()=>!t.nodes.length),u=e.computed(()=>!i.initialLoaded),d=e.computed(()=>`cascader-menu-${l}-${t.index}`),p=b=>{a=b.target},h=b=>{if(!(!i.isHoverMenu||!a||!c.value))if(a.contains(b.target)){g();const y=n.vnode.el,{left:C}=y.getBoundingClientRect(),{offsetWidth:k,offsetHeight:w}=y,E=b.clientX-C,S=a.offsetTop,_=S+a.offsetHeight;c.value.innerHTML=` + + + `}else s||(s=window.setTimeout(m,i.config.hoverThreshold))},g=()=>{!s||(clearTimeout(s),s=null)},m=()=>{!c.value||(c.value.innerHTML="",g())};return{ns:o,panel:i,hoverZone:c,isEmpty:f,isLoading:u,menuId:d,t:r,handleExpand:p,handleMouseMove:h,clearHoverZone:m}}});function ZH(t,n,o,r,l,a){const s=e.resolveComponent("el-cascader-node"),i=e.resolveComponent("loading"),c=e.resolveComponent("el-icon"),f=e.resolveComponent("el-scrollbar");return e.openBlock(),e.createBlock(f,{key:t.menuId,tag:"ul",role:"menu",class:e.normalizeClass(t.ns.b()),"wrap-class":t.ns.e("wrap"),"view-class":[t.ns.e("list"),t.ns.is("empty",t.isEmpty)],onMousemove:t.handleMouseMove,onMouseleave:t.clearHoverZone},{default:e.withCtx(()=>{var u;return[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.nodes,d=>(e.openBlock(),e.createBlock(s,{key:d.uid,node:d,"menu-id":t.menuId,onExpand:t.handleExpand},null,8,["node","menu-id","onExpand"]))),128)),t.isLoading?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(t.ns.e("empty-text"))},[e.createVNode(c,{size:"14",class:e.normalizeClass(t.ns.is("loading"))},{default:e.withCtx(()=>[e.createVNode(i)]),_:1},8,["class"]),e.createTextVNode(" "+e.toDisplayString(t.t("el.cascader.loading")),1)],2)):t.isEmpty?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(t.ns.e("empty-text"))},e.toDisplayString(t.t("el.cascader.noData")),3)):(u=t.panel)!=null&&u.isHoverMenu?(e.openBlock(),e.createElementBlock("svg",{key:2,ref:"hoverZone",class:e.normalizeClass(t.ns.e("hover-zone"))},null,2)):e.createCommentVNode("v-if",!0)]}),_:1},8,["class","wrap-class","view-class","onMousemove","onMouseleave"])}var JH=se(XH,[["render",ZH],["__file","menu.vue"]]);let QH=0;const eK=t=>{const n=[t];let{parent:o}=t;for(;o;)n.unshift(o),o=o.parent;return n};class _i{constructor(n,o,r,l=!1){this.data=n,this.config=o,this.parent=r,this.root=l,this.uid=QH++,this.checked=!1,this.indeterminate=!1,this.loading=!1;const{value:a,label:s,children:i}=o,c=n[i],f=eK(this);this.level=l?0:r?r.level+1:1,this.value=n[a],this.label=n[s],this.pathNodes=f,this.pathValues=f.map(u=>u.value),this.pathLabels=f.map(u=>u.label),this.childrenData=c,this.children=(c||[]).map(u=>new _i(u,o,this)),this.loaded=!o.lazy||this.isLeaf||!Vn(c)}get isDisabled(){const{data:n,parent:o,config:r}=this,{disabled:l,checkStrictly:a}=r;return(qe(l)?l(n,this):!!n[l])||!a&&(o==null?void 0:o.isDisabled)}get isLeaf(){const{data:n,config:o,childrenData:r,loaded:l}=this,{lazy:a,leaf:s}=o,i=qe(s)?s(n,this):n[s];return $t(i)?a&&!l?!1:!(Array.isArray(r)&&r.length):!!i}get valueByOption(){return this.config.emitPath?this.pathValues:this.value}appendChild(n){const{childrenData:o,children:r}=this,l=new _i(n,this.config,this);return Array.isArray(o)?o.push(n):this.childrenData=[n],r.push(l),l}calcText(n,o){const r=n?this.pathLabels.join(o):this.label;return this.text=r,r}broadcast(n,...o){const r=`onParent${ao(n)}`;this.children.forEach(l=>{l&&(l.broadcast(n,...o),l[r]&&l[r](...o))})}emit(n,...o){const{parent:r}=this,l=`onChild${ao(n)}`;r&&(r[l]&&r[l](...o),r.emit(n,...o))}onParentCheck(n){this.isDisabled||this.setCheckState(n)}onChildCheck(){const{children:n}=this,o=n.filter(l=>!l.isDisabled),r=o.length?o.every(l=>l.checked):!1;this.setCheckState(r)}setCheckState(n){const o=this.children.length,r=this.children.reduce((l,a)=>{const s=a.checked?1:a.indeterminate?.5:0;return l+s},0);this.checked=this.loaded&&this.children.filter(l=>!l.isDisabled).every(l=>l.loaded&&l.checked)&&n,this.indeterminate=this.loaded&&r!==o&&r>0}doCheck(n){if(this.checked===n)return;const{checkStrictly:o,multiple:r}=this.config;o||!r?this.checked=n:(this.broadcast("check",n),this.setCheckState(n),this.emit("check"))}}var $u=_i;const Tu=(t,n)=>t.reduce((o,r)=>(r.isLeaf?o.push(r):(!n&&o.push(r),o=o.concat(Tu(r.children,n))),o),[]);class S1{constructor(n,o){this.config=o;const r=(n||[]).map(l=>new $u(l,this.config));this.nodes=r,this.allNodes=Tu(r,!1),this.leafNodes=Tu(r,!0)}getNodes(){return this.nodes}getFlattedNodes(n){return n?this.leafNodes:this.allNodes}appendNode(n,o){const r=o?o.appendChild(n):new $u(n,this.config);o||this.nodes.push(r),this.allNodes.push(r),r.isLeaf&&this.leafNodes.push(r)}appendNodes(n,o){n.forEach(r=>this.appendNode(r,o))}getNodeByValue(n,o=!1){return!n&&n!==0?null:this.getFlattedNodes(o).find(l=>tn(l.value,n)||tn(l.pathValues,n))||null}getSameNode(n){return n&&this.getFlattedNodes(!1).find(({value:r,level:l})=>tn(n.value,r)&&n.level===l)||null}}const vu=le({modelValue:{type:W([Number,String,Array])},options:{type:W(Array),default:()=>[]},props:{type:W(Object),default:()=>({})}}),E1={expandTrigger:"click",multiple:!1,checkStrictly:!1,emitPath:!0,lazy:!1,lazyLoad:st,value:"value",label:"label",children:"children",leaf:"leaf",disabled:"disabled",hoverThreshold:500},N1=t=>e.computed(()=>({...E1,...t.props})),_1=t=>{if(!t)return 0;const n=t.id.split("-");return Number(n[n.length-2])},tK=t=>{if(!t)return;const n=t.querySelector("input");n?n.click():Em(t)&&t.click()},nK=(t,n)=>{const o=n.slice(0),r=o.map(a=>a.uid),l=t.reduce((a,s)=>{const i=r.indexOf(s.uid);return i>-1&&(a.push(s),o.splice(i,1),r.splice(i,1)),a},[]);return l.push(...o),l},oK=e.defineComponent({name:"ElCascaderPanel",components:{ElCascaderMenu:JH},props:{...vu,border:{type:Boolean,default:!0},renderLabel:Function},emits:[Ie,at,"close","expand-change"],setup(t,{emit:n,slots:o}){let r=!1;const l=Q("cascader"),a=N1(t);let s=null;const i=e.ref(!0),c=e.ref([]),f=e.ref(null),u=e.ref([]),d=e.ref(null),p=e.ref([]),h=e.computed(()=>a.value.expandTrigger==="hover"),g=e.computed(()=>t.renderLabel||o.default),m=()=>{const{options:I}=t,v=a.value;r=!1,s=new S1(I,v),u.value=[s.getNodes()],v.lazy&&Vn(t.options)?(i.value=!1,b(void 0,O=>{O&&(s=new S1(O,v),u.value=[s.getNodes()]),i.value=!0,B(!1,!0)})):B(!1,!0)},b=(I,v)=>{const O=a.value;I=I||new $u({},O,void 0,!0),I.loading=!0;const D=z=>{const $=I,R=$.root?null:$;z&&(s==null||s.appendNodes(z,R)),$.loading=!1,$.loaded=!0,$.childrenData=$.childrenData||[],v&&v(z)};O.lazyLoad(I,D)},y=(I,v)=>{var O;const{level:D}=I,z=u.value.slice(0,D);let $;I.isLeaf?$=I.pathNodes[D-2]:($=I,z.push(I.children)),((O=d.value)==null?void 0:O.uid)!==($==null?void 0:$.uid)&&(d.value=I,u.value=z,!v&&n("expand-change",(I==null?void 0:I.pathValues)||[]))},C=(I,v,O=!0)=>{const{checkStrictly:D,multiple:z}=a.value,$=p.value[0];r=!0,!z&&($==null||$.doCheck(!1)),I.doCheck(v),_(),O&&!z&&!D&&n("close"),!O&&!z&&!D&&k(I)},k=I=>{!I||(I=I.parent,k(I),I&&y(I))},w=I=>s==null?void 0:s.getFlattedNodes(I),E=I=>{var v;return(v=w(I))==null?void 0:v.filter(O=>O.checked!==!1)},S=()=>{p.value.forEach(I=>I.doCheck(!1)),_(),u.value=u.value.slice(0,1),d.value=null,n("expand-change",[])},_=()=>{var I;const{checkStrictly:v,multiple:O}=a.value,D=p.value,z=E(!v),$=nK(D,z),R=$.map(N=>N.valueByOption);p.value=$,f.value=O?R:(I=R[0])!=null?I:null},B=(I=!1,v=!1)=>{const{modelValue:O}=t,{lazy:D,multiple:z,checkStrictly:$}=a.value,R=!$;if(!(!i.value||r||!v&&tn(O,f.value)))if(D&&!I){const A=Iy(k0(_o(O))).map(x=>s==null?void 0:s.getNodeByValue(x)).filter(x=>!!x&&!x.loaded&&!x.loading);A.length?A.forEach(x=>{b(x,()=>B(!1,v))}):B(!0,v)}else{const N=z?_o(O):[O],A=Iy(N.map(x=>s==null?void 0:s.getNodeByValue(x,R)));M(A,v),f.value=Yl(O)}},M=(I,v=!0)=>{const{checkStrictly:O}=a.value,D=p.value,z=I.filter(N=>!!N&&(O||N.isLeaf)),$=s==null?void 0:s.getSameNode(d.value),R=v&&$||z[0];R?R.pathNodes.forEach(N=>y(N,!0)):d.value=null,D.forEach(N=>N.doCheck(!1)),t.props.multiple?e.reactive(z).forEach(N=>N.doCheck(!0)):z.forEach(N=>N.doCheck(!0)),p.value=z,e.nextTick(P)},P=()=>{!He||c.value.forEach(I=>{const v=I==null?void 0:I.$el;if(v){const O=v.querySelector(`.${l.namespace.value}-scrollbar__wrap`),D=v.querySelector(`.${l.b("node")}.${l.is("active")}`)||v.querySelector(`.${l.b("node")}.in-active-path`);wy(O,D)}})},T=I=>{const v=I.target,{code:O}=I;switch(O){case pe.up:case pe.down:{I.preventDefault();const D=O===pe.up?-1:1;Ua(Nm(v,D,`.${l.b("node")}[tabindex="-1"]`));break}case pe.left:{I.preventDefault();const D=c.value[_1(v)-1],z=D==null?void 0:D.$el.querySelector(`.${l.b("node")}[aria-expanded="true"]`);Ua(z);break}case pe.right:{I.preventDefault();const D=c.value[_1(v)+1],z=D==null?void 0:D.$el.querySelector(`.${l.b("node")}[tabindex="-1"]`);Ua(z);break}case pe.enter:tK(v);break}};return e.provide(Ni,e.reactive({config:a,expandingNode:d,checkedNodes:p,isHoverMenu:h,initialLoaded:i,renderLabelFn:g,lazyLoad:b,expandNode:y,handleCheckChange:C})),e.watch([a,()=>t.options],m,{deep:!0,immediate:!0}),e.watch(()=>t.modelValue,()=>{r=!1,B()},{deep:!0}),e.watch(()=>f.value,I=>{tn(I,t.modelValue)||(n(Ie,I),n(at,I))}),e.onBeforeUpdate(()=>c.value=[]),e.onMounted(()=>!Vn(t.modelValue)&&B()),{ns:l,menuList:c,menus:u,checkedNodes:p,handleKeyDown:T,handleCheckChange:C,getFlattedNodes:w,getCheckedNodes:E,clearCheckedNodes:S,calculateCheckedValue:_,scrollToExpandingNode:P}}});function rK(t,n,o,r,l,a){const s=e.resolveComponent("el-cascader-menu");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.ns.b("panel"),t.ns.is("bordered",t.border)]),onKeydown:n[0]||(n[0]=(...i)=>t.handleKeyDown&&t.handleKeyDown(...i))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.menus,(i,c)=>(e.openBlock(),e.createBlock(s,{key:c,ref_for:!0,ref:f=>t.menuList[c]=f,index:c,nodes:[...i]},null,8,["index","nodes"]))),128))],34)}var Bi=se(oK,[["render",rK],["__file","index.vue"]]);Bi.install=t=>{t.component(Bi.name,Bi)};const B1=Bi,$1=B1,$i=le({type:{type:String,values:["success","info","warning","danger",""],default:""},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:{type:String,default:""},size:{type:String,values:Wn,default:""},effect:{type:String,values:["dark","light","plain"],default:"light"},round:Boolean}),T1={close:t=>t instanceof MouseEvent,click:t=>t instanceof MouseEvent},lK=e.defineComponent({name:"ElTag"}),aK=e.defineComponent({...lK,props:$i,emits:T1,setup(t,{emit:n}){const o=t,r=St(),l=Q("tag"),a=e.computed(()=>{const{type:c,hit:f,effect:u,closable:d,round:p}=o;return[l.b(),l.is("closable",d),l.m(c),l.m(r.value),l.m(u),l.is("hit",f),l.is("round",p)]}),s=c=>{n("close",c)},i=c=>{n("click",c)};return(c,f)=>c.disableTransitions?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(a)),style:e.normalizeStyle({backgroundColor:c.color}),onClick:i},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).e("content"))},[e.renderSlot(c.$slots,"default")],2),c.closable?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(l).e("close")),onClick:e.withModifiers(s,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(Hn))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0)],6)):(e.openBlock(),e.createBlock(e.Transition,{key:1,name:`${e.unref(l).namespace.value}-zoom-in-center`,appear:""},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(e.unref(a)),style:e.normalizeStyle({backgroundColor:c.color}),onClick:i},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).e("content"))},[e.renderSlot(c.$slots,"default")],2),c.closable?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(l).e("close")),onClick:e.withModifiers(s,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(Hn))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0)],6)]),_:3},8,["name"]))}});var sK=se(aK,[["__file","tag.vue"]]);const bl=Me(sK),v1=le({...vu,size:Vt,placeholder:String,disabled:Boolean,clearable:Boolean,filterable:Boolean,filterMethod:{type:W(Function),default:(t,n)=>t.text.includes(n)},separator:{type:String,default:" / "},showAllLevels:{type:Boolean,default:!0},collapseTags:Boolean,maxCollapseTags:{type:Number,default:1},collapseTagsTooltip:{type:Boolean,default:!1},debounce:{type:Number,default:300},beforeFilter:{type:W(Function),default:()=>!0},popperClass:{type:String,default:""},teleported:Pt.teleported,tagType:{...$i.type,default:"info"},validateEvent:{type:Boolean,default:!0}}),V1={[Ie]:t=>!!t||t===null,[at]:t=>!!t||t===null,focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent,visibleChange:t=>Tt(t),expandChange:t=>!!t,removeTag:t=>!!t},iK={key:0},cK=["placeholder","onKeydown"],dK=["onClick"],fK="ElCascader",uK=e.defineComponent({name:fK}),pK=e.defineComponent({...uK,props:v1,emits:V1,setup(t,{expose:n,emit:o}){const r=t,l={modifiers:[{name:"arrowPosition",enabled:!0,phase:"main",fn:({state:G})=>{const{modifiersData:j,placement:ee}=G;["right","left","bottom","top"].includes(ee)||(j.arrow.x=35)},requires:["arrow"]}]},a=e.useAttrs();let s=0,i=0;const c=Q("cascader"),f=Q("input"),{t:u}=Ke(),{form:d,formItem:p}=Xt(),h=e.ref(null),g=e.ref(null),m=e.ref(null),b=e.ref(null),y=e.ref(null),C=e.ref(!1),k=e.ref(!1),w=e.ref(!1),E=e.ref(!1),S=e.ref(""),_=e.ref(""),B=e.ref([]),M=e.ref([]),P=e.ref([]),T=e.ref(!1),I=e.computed(()=>a.style),v=e.computed(()=>r.disabled||(d==null?void 0:d.disabled)),O=e.computed(()=>r.placeholder||u("el.cascader.placeholder")),D=e.computed(()=>_.value||B.value.length>0||T.value?"":O.value),z=St(),$=e.computed(()=>["small"].includes(z.value)?"small":"default"),R=e.computed(()=>!!r.props.multiple),N=e.computed(()=>!r.filterable||R.value),A=e.computed(()=>R.value?_.value:S.value),x=e.computed(()=>{var G;return((G=b.value)==null?void 0:G.checkedNodes)||[]}),H=e.computed(()=>!r.clearable||v.value||w.value||!k.value?!1:!!x.value.length),K=e.computed(()=>{const{showAllLevels:G,separator:j}=r,ee=x.value;return ee.length?R.value?"":ee[0].calcText(G,j):""}),q=e.computed({get(){return Yl(r.modelValue)},set(G){o(Ie,G),o(at,G),r.validateEvent&&(p==null||p.validate("change").catch(j=>void 0))}}),ne=e.computed(()=>[c.b(),c.m(z.value),c.is("disabled",v.value),a.class]),Y=e.computed(()=>[f.e("icon"),"icon-arrow-down",c.is("reverse",C.value)]),Z=e.computed(()=>c.is("focus",C.value||E.value)),U=e.computed(()=>{var G,j;return(j=(G=h.value)==null?void 0:G.popperRef)==null?void 0:j.contentRef}),re=G=>{var j,ee,F;v.value||(G=G!=null?G:!C.value,G!==C.value&&(C.value=G,(ee=(j=g.value)==null?void 0:j.input)==null||ee.setAttribute("aria-expanded",`${G}`),G?(te(),e.nextTick((F=b.value)==null?void 0:F.scrollToExpandingNode)):r.filterable&&Ae(),o("visibleChange",G)))},te=()=>{e.nextTick(()=>{var G;(G=h.value)==null||G.updatePopper()})},oe=()=>{w.value=!1},ie=G=>{const{showAllLevels:j,separator:ee}=r;return{node:G,key:G.uid,text:G.calcText(j,ee),hitState:!1,closable:!v.value&&!G.isDisabled,isCollapseTag:!1}},ye=G=>{var j;const ee=G.node;ee.doCheck(!1),(j=b.value)==null||j.calculateCheckedValue(),o("removeTag",ee.valueByOption)},Ne=()=>{if(!R.value)return;const G=x.value,j=[],ee=[];if(G.forEach(F=>ee.push(ie(F))),M.value=ee,G.length){G.slice(0,r.maxCollapseTags).forEach(Be=>j.push(ie(Be)));const F=G.slice(r.maxCollapseTags),ue=F.length;ue&&(r.collapseTags?j.push({key:-1,text:`+ ${ue}`,closable:!1,isCollapseTag:!0}):F.forEach(Be=>j.push(ie(Be))))}B.value=j},Te=()=>{var G,j;const{filterMethod:ee,showAllLevels:F,separator:ue}=r,Be=(j=(G=b.value)==null?void 0:G.getFlattedNodes(!r.props.checkStrictly))==null?void 0:j.filter(xe=>xe.isDisabled?!1:(xe.calcText(F,ue),ee(xe,A.value)));R.value&&(B.value.forEach(xe=>{xe.hitState=!1}),M.value.forEach(xe=>{xe.hitState=!1})),w.value=!0,P.value=Be,te()},Pe=()=>{var G;let j;w.value&&y.value?j=y.value.$el.querySelector(`.${c.e("suggestion-item")}`):j=(G=b.value)==null?void 0:G.$el.querySelector(`.${c.b("node")}[tabindex="-1"]`),j&&(j.focus(),!w.value&&j.click())},he=()=>{var G,j;const ee=(G=g.value)==null?void 0:G.input,F=m.value,ue=(j=y.value)==null?void 0:j.$el;if(!(!He||!ee)){if(ue){const Be=ue.querySelector(`.${c.e("suggestion-list")}`);Be.style.minWidth=`${ee.offsetWidth}px`}if(F){const{offsetHeight:Be}=F,xe=B.value.length>0?`${Math.max(Be+6,s)}px`:`${s}px`;ee.style.height=xe,te()}}},Ce=G=>{var j;return(j=b.value)==null?void 0:j.getCheckedNodes(G)},ge=G=>{te(),o("expandChange",G)},me=G=>{var j;const ee=(j=G.target)==null?void 0:j.value;if(G.type==="compositionend")T.value=!1,e.nextTick(()=>ke(ee));else{const F=ee[ee.length-1]||"";T.value=!Ps(F)}},_e=G=>{if(!T.value)switch(G.code){case pe.enter:re();break;case pe.down:re(!0),e.nextTick(Pe),G.preventDefault();break;case pe.esc:C.value===!0&&(G.preventDefault(),G.stopPropagation(),re(!1));break;case pe.tab:re(!1);break}},$e=()=>{var G;(G=b.value)==null||G.clearCheckedNodes(),!C.value&&r.filterable&&Ae(),re(!1)},Ae=()=>{const{value:G}=K;S.value=G,_.value=G},Oe=G=>{var j,ee;const{checked:F}=G;R.value?(j=b.value)==null||j.handleCheckChange(G,!F,!1):(!F&&((ee=b.value)==null||ee.handleCheckChange(G,!0,!1)),re(!1))},ce=G=>{const j=G.target,{code:ee}=G;switch(ee){case pe.up:case pe.down:{const F=ee===pe.up?-1:1;Ua(Nm(j,F,`.${c.e("suggestion-item")}[tabindex="-1"]`));break}case pe.enter:j.click();break}},Ee=()=>{const G=B.value,j=G[G.length-1];i=_.value?0:i+1,!(!j||!i||r.collapseTags&&G.length>1)&&(j.hitState?ye(j):j.hitState=!0)},Le=G=>{const j=G.target,ee=c.e("search-input");j.className===ee&&(E.value=!0),o("focus",G)},Xe=G=>{E.value=!1,o("blur",G)},Qe=Gt(()=>{const{value:G}=A;if(!G)return;const j=r.beforeFilter(G);bc(j)?j.then(Te).catch(()=>{}):j!==!1?Te():oe()},r.debounce),ke=(G,j)=>{!C.value&&re(!0),!(j!=null&&j.isComposing)&&(G?Qe():oe())},J=G=>Number.parseFloat(l_(f.cssVarName("input-height"),G).value)-2;return e.watch(w,te),e.watch([x,v],Ne),e.watch(B,()=>{e.nextTick(()=>he())}),e.watch(z,async()=>{await e.nextTick();const G=g.value.input;s=J(G)||s,he()}),e.watch(K,Ae,{immediate:!0}),e.onMounted(()=>{const G=g.value.input,j=J(G);s=G.offsetHeight||j,jt(G,he)}),n({getCheckedNodes:Ce,cascaderPanelRef:b,togglePopperVisible:re,contentRef:U}),(G,j)=>(e.openBlock(),e.createBlock(e.unref(Zt),{ref_key:"tooltipRef",ref:h,visible:C.value,teleported:G.teleported,"popper-class":[e.unref(c).e("dropdown"),G.popperClass],"popper-options":l,"fallback-placements":["bottom-start","bottom","top-start","top","right","left"],"stop-popper-mouse-event":!1,"gpu-acceleration":!1,placement:"bottom-start",transition:`${e.unref(c).namespace.value}-zoom-in-top`,effect:"light",pure:"",persistent:"",onHide:oe},{default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(ne)),style:e.normalizeStyle(e.unref(I)),onClick:j[5]||(j[5]=()=>re(e.unref(N)?void 0:!0)),onKeydown:_e,onMouseenter:j[6]||(j[6]=ee=>k.value=!0),onMouseleave:j[7]||(j[7]=ee=>k.value=!1)},[e.createVNode(e.unref(Ft),{ref_key:"input",ref:g,modelValue:S.value,"onUpdate:modelValue":j[1]||(j[1]=ee=>S.value=ee),placeholder:e.unref(D),readonly:e.unref(N),disabled:e.unref(v),"validate-event":!1,size:e.unref(z),class:e.normalizeClass(e.unref(Z)),tabindex:e.unref(R)&&G.filterable&&!e.unref(v)?-1:void 0,onCompositionstart:me,onCompositionupdate:me,onCompositionend:me,onFocus:Le,onBlur:Xe,onInput:ke},{suffix:e.withCtx(()=>[e.unref(H)?(e.openBlock(),e.createBlock(e.unref(fe),{key:"clear",class:e.normalizeClass([e.unref(f).e("icon"),"icon-circle-close"]),onClick:e.withModifiers($e,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(Xo))]),_:1},8,["class","onClick"])):(e.openBlock(),e.createBlock(e.unref(fe),{key:"arrow-down",class:e.normalizeClass(e.unref(Y)),onClick:j[0]||(j[0]=e.withModifiers(ee=>re(),["stop"]))},{default:e.withCtx(()=>[e.createVNode(e.unref(qo))]),_:1},8,["class"]))]),_:1},8,["modelValue","placeholder","readonly","disabled","size","class","tabindex"]),e.unref(R)?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"tagWrapper",ref:m,class:e.normalizeClass(e.unref(c).e("tags"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,ee=>(e.openBlock(),e.createBlock(e.unref(bl),{key:ee.key,type:G.tagType,size:e.unref($),hit:ee.hitState,closable:ee.closable,"disable-transitions":"",onClose:F=>ye(ee)},{default:e.withCtx(()=>[ee.isCollapseTag===!1?(e.openBlock(),e.createElementBlock("span",iK,e.toDisplayString(ee.text),1)):(e.openBlock(),e.createBlock(e.unref(Zt),{key:1,disabled:C.value||!G.collapseTagsTooltip,"fallback-placements":["bottom","top","right","left"],placement:"bottom",effect:"light"},{default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(ee.text),1)]),content:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(c).e("collapse-tags"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.value.slice(G.maxCollapseTags),(F,ue)=>(e.openBlock(),e.createElementBlock("div",{key:ue,class:e.normalizeClass(e.unref(c).e("collapse-tag"))},[(e.openBlock(),e.createBlock(e.unref(bl),{key:F.key,class:"in-tooltip",type:G.tagType,size:e.unref($),hit:F.hitState,closable:F.closable,"disable-transitions":"",onClose:Be=>ye(F)},{default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(F.text),1)]),_:2},1032,["type","size","hit","closable","onClose"]))],2))),128))],2)]),_:2},1032,["disabled"]))]),_:2},1032,["type","size","hit","closable","onClose"]))),128)),G.filterable&&!e.unref(v)?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,"onUpdate:modelValue":j[2]||(j[2]=ee=>_.value=ee),type:"text",class:e.normalizeClass(e.unref(c).e("search-input")),placeholder:e.unref(K)?"":e.unref(O),onInput:j[3]||(j[3]=ee=>ke(_.value,ee)),onClick:j[4]||(j[4]=e.withModifiers(ee=>re(!0),["stop"])),onKeydown:e.withKeys(Ee,["delete"]),onCompositionstart:me,onCompositionupdate:me,onCompositionend:me,onFocus:Le,onBlur:Xe},null,42,cK)),[[e.vModelText,_.value]]):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0)],38)),[[e.unref(Po),()=>re(!1),e.unref(U)]])]),content:e.withCtx(()=>[e.withDirectives(e.createVNode(e.unref(B1),{ref_key:"cascaderPanelRef",ref:b,modelValue:e.unref(q),"onUpdate:modelValue":j[8]||(j[8]=ee=>e.isRef(q)?q.value=ee:null),options:G.options,props:r.props,border:!1,"render-label":G.$slots.default,onExpandChange:ge,onClose:j[9]||(j[9]=ee=>G.$nextTick(()=>re(!1)))},null,8,["modelValue","options","props","render-label"]),[[e.vShow,!w.value]]),G.filterable?e.withDirectives((e.openBlock(),e.createBlock(e.unref(mo),{key:0,ref_key:"suggestionPanel",ref:y,tag:"ul",class:e.normalizeClass(e.unref(c).e("suggestion-panel")),"view-class":e.unref(c).e("suggestion-list"),onKeydown:ce},{default:e.withCtx(()=>[P.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(P.value,ee=>(e.openBlock(),e.createElementBlock("li",{key:ee.uid,class:e.normalizeClass([e.unref(c).e("suggestion-item"),e.unref(c).is("checked",ee.checked)]),tabindex:-1,onClick:F=>Oe(ee)},[e.createElementVNode("span",null,e.toDisplayString(ee.text),1),ee.checked?(e.openBlock(),e.createBlock(e.unref(fe),{key:0},{default:e.withCtx(()=>[e.createVNode(e.unref(la))]),_:1})):e.createCommentVNode("v-if",!0)],10,dK))),128)):e.renderSlot(G.$slots,"empty",{key:1},()=>[e.createElementVNode("li",{class:e.normalizeClass(e.unref(c).e("empty-text"))},e.toDisplayString(e.unref(u)("el.cascader.noMatch")),3)])]),_:3},8,["class","view-class"])),[[e.vShow,w.value]]):e.createCommentVNode("v-if",!0)]),_:3},8,["visible","teleported","popper-class","transition"]))}});var Ti=se(pK,[["__file","cascader.vue"]]);Ti.install=t=>{t.component(Ti.name,Ti)};const M1=Ti,I1=le({checked:{type:Boolean,default:!1}}),P1={"update:checked":t=>Tt(t),[at]:t=>Tt(t)},mK=e.defineComponent({name:"ElCheckTag"}),hK=e.defineComponent({...mK,props:I1,emits:P1,setup(t,{emit:n}){const o=t,r=Q("check-tag"),l=e.computed(()=>[r.b(),r.is("checked",o.checked)]),a=()=>{const s=!o.checked;n(at,s),n("update:checked",s)};return(s,i)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(l)),onClick:a},[e.renderSlot(s.$slots,"default")],2))}});var gK=se(hK,[["__file","check-tag.vue"]]);const R1=Me(gK),Vu=Symbol("rowContextKey"),O1=["start","center","end","space-around","space-between","space-evenly"],A1=["top","middle","bottom"],z1=le({tag:{type:String,default:"div"},gutter:{type:Number,default:0},justify:{type:String,values:O1,default:"start"},align:{type:String,values:A1}}),yK=e.defineComponent({name:"ElRow"}),bK=e.defineComponent({...yK,props:z1,setup(t){const n=t,o=Q("row"),r=e.computed(()=>n.gutter);e.provide(Vu,{gutter:r});const l=e.computed(()=>{const s={};return n.gutter&&(s.marginRight=s.marginLeft=`-${n.gutter/2}px`),s}),a=e.computed(()=>[o.b(),o.is(`justify-${n.justify}`,n.justify!=="start"),o.is(`align-${n.align}`,!!n.align)]);return(s,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.tag),{class:e.normalizeClass(e.unref(a)),style:e.normalizeStyle(e.unref(l))},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},8,["class","style"]))}});var CK=se(bK,[["__file","row.vue"]]);const D1=Me(CK),L1=le({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:W([Number,Object]),default:()=>ut({})},sm:{type:W([Number,Object]),default:()=>ut({})},md:{type:W([Number,Object]),default:()=>ut({})},lg:{type:W([Number,Object]),default:()=>ut({})},xl:{type:W([Number,Object]),default:()=>ut({})}}),wK=e.defineComponent({name:"ElCol"}),kK=e.defineComponent({...wK,props:L1,setup(t){const n=t,{gutter:o}=e.inject(Vu,{gutter:e.computed(()=>0)}),r=Q("col"),l=e.computed(()=>{const s={};return o.value&&(s.paddingLeft=s.paddingRight=`${o.value/2}px`),s}),a=e.computed(()=>{const s=[];return["span","offset","pull","push"].forEach(f=>{const u=n[f];be(u)&&(f==="span"?s.push(r.b(`${n[f]}`)):u>0&&s.push(r.b(`${f}-${n[f]}`)))}),["xs","sm","md","lg","xl"].forEach(f=>{be(n[f])?s.push(r.b(`${f}-${n[f]}`)):nt(n[f])&&Object.entries(n[f]).forEach(([u,d])=>{s.push(u!=="span"?r.b(`${f}-${u}-${d}`):r.b(`${f}-${d}`))})}),o.value&&s.push(r.is("guttered")),[r.b(),s]});return(s,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.tag),{class:e.normalizeClass(e.unref(a)),style:e.normalizeStyle(e.unref(l))},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},8,["class","style"]))}});var SK=se(kK,[["__file","col.vue"]]);const x1=Me(SK),Mu=t=>typeof be(t),F1=le({accordion:Boolean,modelValue:{type:W([Array,String,Number]),default:()=>ut([])}}),H1={[Ie]:Mu,[at]:Mu},Iu=Symbol("collapseContextKey"),EK=(t,n)=>{const o=e.ref(Ho(t.modelValue)),r=a=>{o.value=a;const s=t.accordion?o.value[0]:o.value;n(Ie,s),n(at,s)},l=a=>{if(t.accordion)r([o.value[0]===a?"":a]);else{const s=[...o.value],i=s.indexOf(a);i>-1?s.splice(i,1):s.push(a),r(s)}};return e.watch(()=>t.modelValue,()=>o.value=Ho(t.modelValue),{deep:!0}),e.provide(Iu,{activeNames:o,handleItemClick:l}),{activeNames:o,setActiveNames:r}},NK=()=>{const t=Q("collapse");return{rootKls:e.computed(()=>t.b())}},_K=e.defineComponent({name:"ElCollapse"}),BK=e.defineComponent({..._K,props:F1,emits:H1,setup(t,{expose:n,emit:o}){const r=t,{activeNames:l,setActiveNames:a}=EK(r,o),{rootKls:s}=NK();return n({activeNames:l,setActiveNames:a}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(s))},[e.renderSlot(i.$slots,"default")],2))}});var $K=se(BK,[["__file","collapse.vue"]]);const TK=e.defineComponent({name:"ElCollapseTransition"}),vK=e.defineComponent({...TK,setup(t){const n=Q("collapse-transition"),o=l=>{l.style.maxHeight="",l.style.overflow=l.dataset.oldOverflow,l.style.paddingTop=l.dataset.oldPaddingTop,l.style.paddingBottom=l.dataset.oldPaddingBottom},r={beforeEnter(l){l.dataset||(l.dataset={}),l.dataset.oldPaddingTop=l.style.paddingTop,l.dataset.oldPaddingBottom=l.style.paddingBottom,l.style.maxHeight=0,l.style.paddingTop=0,l.style.paddingBottom=0},enter(l){l.dataset.oldOverflow=l.style.overflow,l.scrollHeight!==0?l.style.maxHeight=`${l.scrollHeight}px`:l.style.maxHeight=0,l.style.paddingTop=l.dataset.oldPaddingTop,l.style.paddingBottom=l.dataset.oldPaddingBottom,l.style.overflow="hidden"},afterEnter(l){l.style.maxHeight="",l.style.overflow=l.dataset.oldOverflow},enterCancelled(l){o(l)},beforeLeave(l){l.dataset||(l.dataset={}),l.dataset.oldPaddingTop=l.style.paddingTop,l.dataset.oldPaddingBottom=l.style.paddingBottom,l.dataset.oldOverflow=l.style.overflow,l.style.maxHeight=`${l.scrollHeight}px`,l.style.overflow="hidden"},leave(l){l.scrollHeight!==0&&(l.style.maxHeight=0,l.style.paddingTop=0,l.style.paddingBottom=0)},afterLeave(l){o(l)},leaveCancelled(l){o(l)}};return(l,a)=>(e.openBlock(),e.createBlock(e.Transition,e.mergeProps({name:e.unref(n).b()},e.toHandlers(r)),{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},16,["name"]))}});var vi=se(vK,[["__file","collapse-transition.vue"]]);vi.install=t=>{t.component(vi.name,vi)};const Vi=vi,K1=Vi,W1=le({title:{type:String,default:""},name:{type:W([String,Number]),default:()=>Os()},disabled:Boolean}),VK=t=>{const n=e.inject(Iu),o=e.ref(!1),r=e.ref(!1),l=e.ref(Os()),a=e.computed(()=>n==null?void 0:n.activeNames.value.includes(t.name));return{focusing:o,id:l,isActive:a,handleFocus:()=>{setTimeout(()=>{r.value?r.value=!1:o.value=!0},50)},handleHeaderClick:()=>{t.disabled||(n==null||n.handleItemClick(t.name),o.value=!1,r.value=!0)},handleEnterClick:()=>{n==null||n.handleItemClick(t.name)}}},MK=(t,{focusing:n,isActive:o,id:r})=>{const l=Q("collapse"),a=e.computed(()=>[l.b("item"),l.is("active",e.unref(o)),l.is("disabled",t.disabled)]),s=e.computed(()=>[l.be("item","header"),l.is("active",e.unref(o)),{focusing:e.unref(n)&&!t.disabled}]),i=e.computed(()=>[l.be("item","arrow"),l.is("active",e.unref(o))]),c=e.computed(()=>l.be("item","wrap")),f=e.computed(()=>l.be("item","content")),u=e.computed(()=>l.b(`content-${e.unref(r)}`)),d=e.computed(()=>l.b(`head-${e.unref(r)}`));return{arrowKls:i,headKls:s,rootKls:a,itemWrapperKls:c,itemContentKls:f,scopedContentId:u,scopedHeadId:d}},IK=["id","aria-expanded","aria-controls","aria-describedby","tabindex"],PK=["id","aria-hidden","aria-labelledby"],RK=e.defineComponent({name:"ElCollapseItem"}),OK=e.defineComponent({...RK,props:W1,setup(t,{expose:n}){const o=t,{focusing:r,id:l,isActive:a,handleFocus:s,handleHeaderClick:i,handleEnterClick:c}=VK(o),{arrowKls:f,headKls:u,rootKls:d,itemWrapperKls:p,itemContentKls:h,scopedContentId:g,scopedHeadId:m}=MK(o,{focusing:r,isActive:a,id:l});return n({isActive:a}),(b,y)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(d))},[e.createElementVNode("button",{id:e.unref(m),class:e.normalizeClass(e.unref(u)),"aria-expanded":e.unref(a),"aria-controls":e.unref(g),"aria-describedby":e.unref(g),tabindex:b.disabled?-1:0,type:"button",onClick:y[0]||(y[0]=(...C)=>e.unref(i)&&e.unref(i)(...C)),onKeydown:y[1]||(y[1]=e.withKeys(e.withModifiers((...C)=>e.unref(c)&&e.unref(c)(...C),["stop","prevent"]),["space","enter"])),onFocus:y[2]||(y[2]=(...C)=>e.unref(s)&&e.unref(s)(...C)),onBlur:y[3]||(y[3]=C=>r.value=!1)},[e.renderSlot(b.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(b.title),1)]),e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(f))},{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1},8,["class"])],42,IK),e.createVNode(e.unref(Vi),null,{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{id:e.unref(g),role:"region",class:e.normalizeClass(e.unref(p)),"aria-hidden":!e.unref(a),"aria-labelledby":e.unref(m)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(h))},[e.renderSlot(b.$slots,"default")],2)],10,PK),[[e.vShow,e.unref(a)]])]),_:3})],2))}});var j1=se(OK,[["__file","collapse-item.vue"]]);const U1=Me($K,{CollapseItem:j1}),G1=ht(j1),AK=le({color:{type:W(Object),required:!0},vertical:{type:Boolean,default:!1}});let Pu=!1;function Na(t,n){if(!He)return;const o=function(a){var s;(s=n.drag)==null||s.call(n,a)},r=function(a){var s;document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",r),document.removeEventListener("touchmove",o),document.removeEventListener("touchend",r),document.onselectstart=null,document.ondragstart=null,Pu=!1,(s=n.end)==null||s.call(n,a)},l=function(a){var s;Pu||(a.preventDefault(),document.onselectstart=()=>!1,document.ondragstart=()=>!1,document.addEventListener("mousemove",o),document.addEventListener("mouseup",r),document.addEventListener("touchmove",o),document.addEventListener("touchend",r),Pu=!0,(s=n.start)==null||s.call(n,a))};t.addEventListener("mousedown",l),t.addEventListener("touchstart",l)}const zK=t=>{const n=e.getCurrentInstance(),o=e.shallowRef(),r=e.shallowRef();function l(s){s.target!==o.value&&a(s)}function a(s){if(!r.value||!o.value)return;const c=n.vnode.el.getBoundingClientRect(),{clientX:f,clientY:u}=yc(s);if(t.vertical){let d=u-c.top;d=Math.max(o.value.offsetHeight/2,d),d=Math.min(d,c.height-o.value.offsetHeight/2),t.color.set("alpha",Math.round((d-o.value.offsetHeight/2)/(c.height-o.value.offsetHeight)*100))}else{let d=f-c.left;d=Math.max(o.value.offsetWidth/2,d),d=Math.min(d,c.width-o.value.offsetWidth/2),t.color.set("alpha",Math.round((d-o.value.offsetWidth/2)/(c.width-o.value.offsetWidth)*100))}}return{thumb:o,bar:r,handleDrag:a,handleClick:l}},DK=(t,{bar:n,thumb:o,handleDrag:r})=>{const l=e.getCurrentInstance(),a=Q("color-alpha-slider"),s=e.ref(0),i=e.ref(0),c=e.ref();function f(){if(!o.value||t.vertical)return 0;const C=l.vnode.el,k=t.color.get("alpha");return C?Math.round(k*(C.offsetWidth-o.value.offsetWidth/2)/100):0}function u(){if(!o.value)return 0;const C=l.vnode.el;if(!t.vertical)return 0;const k=t.color.get("alpha");return C?Math.round(k*(C.offsetHeight-o.value.offsetHeight/2)/100):0}function d(){if(t.color&&t.color.value){const{r:C,g:k,b:w}=t.color.toRgb();return`linear-gradient(to right, rgba(${C}, ${k}, ${w}, 0) 0%, rgba(${C}, ${k}, ${w}, 1) 100%)`}return""}function p(){s.value=f(),i.value=u(),c.value=d()}e.onMounted(()=>{if(!n.value||!o.value)return;const C={drag:k=>{r(k)},end:k=>{r(k)}};Na(n.value,C),Na(o.value,C),p()}),e.watch(()=>t.color.get("alpha"),()=>p()),e.watch(()=>t.color.value,()=>p());const h=e.computed(()=>[a.b(),a.is("vertical",t.vertical)]),g=e.computed(()=>a.e("bar")),m=e.computed(()=>a.e("thumb")),b=e.computed(()=>({background:c.value})),y=e.computed(()=>({left:kt(s.value),top:kt(i.value)}));return{rootKls:h,barKls:g,barStyle:b,thumbKls:m,thumbStyle:y,update:p}},LK="ElColorAlphaSlider",xK=e.defineComponent({name:LK}),FK=e.defineComponent({...xK,props:AK,setup(t,{expose:n}){const o=t,{bar:r,thumb:l,handleDrag:a,handleClick:s}=zK(o),{rootKls:i,barKls:c,barStyle:f,thumbKls:u,thumbStyle:d,update:p}=DK(o,{bar:r,thumb:l,handleDrag:a});return n({update:p,bar:r,thumb:l}),(h,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(i))},[e.createElementVNode("div",{ref_key:"bar",ref:r,class:e.normalizeClass(e.unref(c)),style:e.normalizeStyle(e.unref(f)),onClick:g[0]||(g[0]=(...m)=>e.unref(s)&&e.unref(s)(...m))},null,6),e.createElementVNode("div",{ref_key:"thumb",ref:l,class:e.normalizeClass(e.unref(u)),style:e.normalizeStyle(e.unref(d))},null,6)],2))}});var HK=se(FK,[["__file","alpha-slider.vue"]]);const KK=e.defineComponent({name:"ElColorHueSlider",props:{color:{type:Object,required:!0},vertical:Boolean},setup(t){const n=Q("color-hue-slider"),o=e.getCurrentInstance(),r=e.ref(),l=e.ref(),a=e.ref(0),s=e.ref(0),i=e.computed(()=>t.color.get("hue"));e.watch(()=>i.value,()=>{p()});function c(h){h.target!==r.value&&f(h)}function f(h){if(!l.value||!r.value)return;const m=o.vnode.el.getBoundingClientRect(),{clientX:b,clientY:y}=yc(h);let C;if(t.vertical){let k=y-m.top;k=Math.min(k,m.height-r.value.offsetHeight/2),k=Math.max(r.value.offsetHeight/2,k),C=Math.round((k-r.value.offsetHeight/2)/(m.height-r.value.offsetHeight)*360)}else{let k=b-m.left;k=Math.min(k,m.width-r.value.offsetWidth/2),k=Math.max(r.value.offsetWidth/2,k),C=Math.round((k-r.value.offsetWidth/2)/(m.width-r.value.offsetWidth)*360)}t.color.set("hue",C)}function u(){if(!r.value)return 0;const h=o.vnode.el;if(t.vertical)return 0;const g=t.color.get("hue");return h?Math.round(g*(h.offsetWidth-r.value.offsetWidth/2)/360):0}function d(){if(!r.value)return 0;const h=o.vnode.el;if(!t.vertical)return 0;const g=t.color.get("hue");return h?Math.round(g*(h.offsetHeight-r.value.offsetHeight/2)/360):0}function p(){a.value=u(),s.value=d()}return e.onMounted(()=>{if(!l.value||!r.value)return;const h={drag:g=>{f(g)},end:g=>{f(g)}};Na(l.value,h),Na(r.value,h),p()}),{bar:l,thumb:r,thumbLeft:a,thumbTop:s,hueValue:i,handleClick:c,update:p,ns:n}}});function WK(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.ns.b(),t.ns.is("vertical",t.vertical)])},[e.createElementVNode("div",{ref:"bar",class:e.normalizeClass(t.ns.e("bar")),onClick:n[0]||(n[0]=(...s)=>t.handleClick&&t.handleClick(...s))},null,2),e.createElementVNode("div",{ref:"thumb",class:e.normalizeClass(t.ns.e("thumb")),style:e.normalizeStyle({left:t.thumbLeft+"px",top:t.thumbTop+"px"})},null,6)],2)}var jK=se(KK,[["render",WK],["__file","hue-slider.vue"]]);const q1=le({modelValue:String,id:String,showAlpha:Boolean,colorFormat:String,disabled:Boolean,size:Vt,popperClass:{type:String,default:""},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},predefine:{type:W(Array)},validateEvent:{type:Boolean,default:!0}}),Y1={[Ie]:t=>De(t)||wt(t),[at]:t=>De(t)||wt(t),activeChange:t=>De(t)||wt(t),focus:t=>t instanceof FocusEvent,blur:t=>t instanceof FocusEvent},Ru=Symbol("colorPickerContextKey"),X1=function(t,n,o){return[t,n*o/((t=(2-n)*o)<1?t:2-t)||0,t/2]},UK=function(t){return typeof t=="string"&&t.includes(".")&&Number.parseFloat(t)===1},GK=function(t){return typeof t=="string"&&t.includes("%")},Cl=function(t,n){UK(t)&&(t="100%");const o=GK(t);return t=Math.min(n,Math.max(0,Number.parseFloat(`${t}`))),o&&(t=Number.parseInt(`${t*n}`,10)/100),Math.abs(t-n)<1e-6?1:t%n/Number.parseFloat(n)},Z1={10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"},Mi=t=>{t=Math.min(Math.round(t),255);const n=Math.floor(t/16),o=t%16;return`${Z1[n]||n}${Z1[o]||o}`},J1=function({r:t,g:n,b:o}){return Number.isNaN(+t)||Number.isNaN(+n)||Number.isNaN(+o)?"":`#${Mi(t)}${Mi(n)}${Mi(o)}`},Ou={A:10,B:11,C:12,D:13,E:14,F:15},Ar=function(t){return t.length===2?(Ou[t[0].toUpperCase()]||+t[0])*16+(Ou[t[1].toUpperCase()]||+t[1]):Ou[t[1].toUpperCase()]||+t[1]},qK=function(t,n,o){n=n/100,o=o/100;let r=n;const l=Math.max(o,.01);o*=2,n*=o<=1?o:2-o,r*=l<=1?l:2-l;const a=(o+n)/2,s=o===0?2*r/(l+r):2*n/(o+n);return{h:t,s:s*100,v:a*100}},Q1=(t,n,o)=>{t=Cl(t,255),n=Cl(n,255),o=Cl(o,255);const r=Math.max(t,n,o),l=Math.min(t,n,o);let a;const s=r,i=r-l,c=r===0?0:i/r;if(r===l)a=0;else{switch(r){case t:{a=(n-o)/i+(n{this._hue=Math.max(0,Math.min(360,r)),this._saturation=Math.max(0,Math.min(100,l)),this._value=Math.max(0,Math.min(100,a)),this.doOnChange()};if(n.includes("hsl")){const r=n.replace(/hsla|hsl|\(|\)/gm,"").split(/\s|,/g).filter(l=>l!=="").map((l,a)=>a>2?Number.parseFloat(l):Number.parseInt(l,10));if(r.length===4?this._alpha=Number.parseFloat(r[3])*100:r.length===3&&(this._alpha=100),r.length>=3){const{h:l,s:a,v:s}=qK(r[0],r[1],r[2]);o(l,a,s)}}else if(n.includes("hsv")){const r=n.replace(/hsva|hsv|\(|\)/gm,"").split(/\s|,/g).filter(l=>l!=="").map((l,a)=>a>2?Number.parseFloat(l):Number.parseInt(l,10));r.length===4?this._alpha=Number.parseFloat(r[3])*100:r.length===3&&(this._alpha=100),r.length>=3&&o(r[0],r[1],r[2])}else if(n.includes("rgb")){const r=n.replace(/rgba|rgb|\(|\)/gm,"").split(/\s|,/g).filter(l=>l!=="").map((l,a)=>a>2?Number.parseFloat(l):Number.parseInt(l,10));if(r.length===4?this._alpha=Number.parseFloat(r[3])*100:r.length===3&&(this._alpha=100),r.length>=3){const{h:l,s:a,v:s}=Q1(r[0],r[1],r[2]);o(l,a,s)}}else if(n.includes("#")){const r=n.replace("#","").trim();if(!/^[0-9a-fA-F]{3}$|^[0-9a-fA-F]{6}$|^[0-9a-fA-F]{8}$/.test(r))return;let l,a,s;r.length===3?(l=Ar(r[0]+r[0]),a=Ar(r[1]+r[1]),s=Ar(r[2]+r[2])):(r.length===6||r.length===8)&&(l=Ar(r.slice(0,2)),a=Ar(r.slice(2,4)),s=Ar(r.slice(4,6))),r.length===8?this._alpha=Ar(r.slice(6))/255*100:(r.length===3||r.length===6)&&(this._alpha=100);const{h:i,s:c,v:f}=Q1(l,a,s);o(i,c,f)}}compare(n){return Math.abs(n._hue-this._hue)<2&&Math.abs(n._saturation-this._saturation)<1&&Math.abs(n._value-this._value)<1&&Math.abs(n._alpha-this._alpha)<1}doOnChange(){const{_hue:n,_saturation:o,_value:r,_alpha:l,format:a}=this;if(this.enableAlpha)switch(a){case"hsl":{const s=X1(n,o/100,r/100);this.value=`hsla(${n}, ${Math.round(s[1]*100)}%, ${Math.round(s[2]*100)}%, ${this.get("alpha")/100})`;break}case"hsv":{this.value=`hsva(${n}, ${Math.round(o)}%, ${Math.round(r)}%, ${this.get("alpha")/100})`;break}case"hex":{this.value=`${J1(_a(n,o,r))}${Mi(l*255/100)}`;break}default:{const{r:s,g:i,b:c}=_a(n,o,r);this.value=`rgba(${s}, ${i}, ${c}, ${this.get("alpha")/100})`}}else switch(a){case"hsl":{const s=X1(n,o/100,r/100);this.value=`hsl(${n}, ${Math.round(s[1]*100)}%, ${Math.round(s[2]*100)}%)`;break}case"hsv":{this.value=`hsv(${n}, ${Math.round(o)}%, ${Math.round(r)}%)`;break}case"rgb":{const{r:s,g:i,b:c}=_a(n,o,r);this.value=`rgb(${s}, ${i}, ${c})`;break}default:this.value=J1(_a(n,o,r))}}}const YK=e.defineComponent({props:{colors:{type:Array,required:!0},color:{type:Object,required:!0}},setup(t){const n=Q("color-predefine"),{currentColor:o}=e.inject(Ru),r=e.ref(a(t.colors,t.color));e.watch(()=>o.value,s=>{const i=new Ba;i.fromString(s),r.value.forEach(c=>{c.selected=i.compare(c)})}),e.watchEffect(()=>{r.value=a(t.colors,t.color)});function l(s){t.color.fromString(t.colors[s])}function a(s,i){return s.map(c=>{const f=new Ba;return f.enableAlpha=!0,f.format="rgba",f.fromString(c),f.selected=f.value===i.value,f})}return{rgbaColors:r,handleSelect:l,ns:n}}}),XK=["onClick"];function ZK(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.ns.b())},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("colors"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.rgbaColors,(s,i)=>(e.openBlock(),e.createElementBlock("div",{key:t.colors[i],class:e.normalizeClass([t.ns.e("color-selector"),t.ns.is("alpha",s._alpha<100),{selected:s.selected}]),onClick:c=>t.handleSelect(i)},[e.createElementVNode("div",{style:e.normalizeStyle({backgroundColor:s.value})},null,4)],10,XK))),128))],2)],2)}var JK=se(YK,[["render",ZK],["__file","predefine.vue"]]);const QK=e.defineComponent({name:"ElSlPanel",props:{color:{type:Object,required:!0}},setup(t){const n=Q("color-svpanel"),o=e.getCurrentInstance(),r=e.ref(0),l=e.ref(0),a=e.ref("hsl(0, 100%, 50%)"),s=e.computed(()=>{const f=t.color.get("hue"),u=t.color.get("value");return{hue:f,value:u}});function i(){const f=t.color.get("saturation"),u=t.color.get("value"),d=o.vnode.el,{clientWidth:p,clientHeight:h}=d;l.value=f*p/100,r.value=(100-u)*h/100,a.value=`hsl(${t.color.get("hue")}, 100%, 50%)`}function c(f){const d=o.vnode.el.getBoundingClientRect(),{clientX:p,clientY:h}=yc(f);let g=p-d.left,m=h-d.top;g=Math.max(0,g),g=Math.min(g,d.width),m=Math.max(0,m),m=Math.min(m,d.height),l.value=g,r.value=m,t.color.set({saturation:g/d.width*100,value:100-m/d.height*100})}return e.watch(()=>s.value,()=>{i()}),e.onMounted(()=>{Na(o.vnode.el,{drag:f=>{c(f)},end:f=>{c(f)}}),i()}),{cursorTop:r,cursorLeft:l,background:a,colorValue:s,handleDrag:c,update:i,ns:n}}}),eW=[e.createElementVNode("div",null,null,-1)];function tW(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(t.ns.b()),style:e.normalizeStyle({backgroundColor:t.background})},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("white"))},null,2),e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("black"))},null,2),e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("cursor")),style:e.normalizeStyle({top:t.cursorTop+"px",left:t.cursorLeft+"px"})},eW,6)],6)}var nW=se(QK,[["render",tW],["__file","sv-panel.vue"]]);const oW=["onKeydown"],rW=["id","aria-label","aria-labelledby","aria-description","aria-disabled","tabindex"],lW=e.defineComponent({name:"ElColorPicker"}),aW=e.defineComponent({...lW,props:q1,emits:Y1,setup(t,{expose:n,emit:o}){const r=t,{t:l}=Ke(),a=Q("color"),{formItem:s}=Xt(),i=St(),c=Yt(),{inputId:f,isLabeledByFormItem:u}=vo(r,{formItemContext:s}),d=e.ref(),p=e.ref(),h=e.ref(),g=e.ref(),m=e.ref(),b=e.ref(),{isFocused:y,handleFocus:C,handleBlur:k}=Bf(m,{beforeBlur(te){var oe;return(oe=g.value)==null?void 0:oe.isFocusInsideContent(te)},afterBlur(){z(!1),A()}}),w=te=>{if(c.value)return re();C(te)};let E=!0;const S=e.reactive(new Ba({enableAlpha:r.showAlpha,format:r.colorFormat||"",value:r.modelValue})),_=e.ref(!1),B=e.ref(!1),M=e.ref(""),P=e.computed(()=>!r.modelValue&&!B.value?"transparent":D(S,r.showAlpha)),T=e.computed(()=>!r.modelValue&&!B.value?"":S.value),I=e.computed(()=>u.value?void 0:r.label||l("el.colorpicker.defaultLabel")),v=e.computed(()=>u.value?s==null?void 0:s.labelId:void 0),O=e.computed(()=>[a.b("picker"),a.is("disabled",c.value),a.bm("picker",i.value),a.is("focused",y.value)]);function D(te,oe){if(!(te instanceof Ba))throw new TypeError("color should be instance of _color Class");const{r:ie,g:ye,b:Ne}=te.toRgb();return oe?`rgba(${ie}, ${ye}, ${Ne}, ${te.get("alpha")/100})`:`rgb(${ie}, ${ye}, ${Ne})`}function z(te){_.value=te}const $=Gt(z,100,{leading:!0});function R(){c.value||z(!0)}function N(){$(!1),A()}function A(){e.nextTick(()=>{r.modelValue?S.fromString(r.modelValue):(S.value="",e.nextTick(()=>{B.value=!1}))})}function x(){c.value||$(!_.value)}function H(){S.fromString(M.value)}function K(){const te=S.value;o(Ie,te),o("change",te),r.validateEvent&&(s==null||s.validate("change").catch(oe=>void 0)),$(!1),e.nextTick(()=>{const oe=new Ba({enableAlpha:r.showAlpha,format:r.colorFormat||"",value:r.modelValue});S.compare(oe)||A()})}function q(){$(!1),o(Ie,null),o("change",null),r.modelValue!==null&&r.validateEvent&&(s==null||s.validate("change").catch(te=>void 0)),A()}function ne(te){if(!!_.value&&(N(),y.value)){const oe=new FocusEvent("focus",te);k(oe)}}function Y(te){te.preventDefault(),te.stopPropagation(),z(!1),A()}function Z(te){switch(te.code){case pe.enter:case pe.space:te.preventDefault(),te.stopPropagation(),R(),b.value.focus();break;case pe.esc:Y(te);break}}function U(){m.value.focus()}function re(){m.value.blur()}return e.onMounted(()=>{r.modelValue&&(M.value=T.value)}),e.watch(()=>r.modelValue,te=>{te?te&&te!==S.value&&(E=!1,S.fromString(te)):B.value=!1}),e.watch(()=>T.value,te=>{M.value=te,E&&o("activeChange",te),E=!0}),e.watch(()=>S.value,()=>{!r.modelValue&&!B.value&&(B.value=!0)}),e.watch(()=>_.value,()=>{e.nextTick(()=>{var te,oe,ie;(te=d.value)==null||te.update(),(oe=p.value)==null||oe.update(),(ie=h.value)==null||ie.update()})}),e.provide(Ru,{currentColor:T}),n({color:S,show:R,hide:N,focus:U,blur:re}),(te,oe)=>(e.openBlock(),e.createBlock(e.unref(Zt),{ref_key:"popper",ref:g,visible:_.value,"show-arrow":!1,"fallback-placements":["bottom","top","right","left"],offset:0,"gpu-acceleration":!1,"popper-class":[e.unref(a).be("picker","panel"),e.unref(a).b("dropdown"),te.popperClass],"stop-popper-mouse-event":!1,effect:"light",trigger:"click",transition:`${e.unref(a).namespace.value}-zoom-in-top`,persistent:"",onHide:oe[2]||(oe[2]=ie=>z(!1))},{content:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createElementBlock("div",{onKeydown:e.withKeys(Y,["esc"])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).be("dropdown","main-wrapper"))},[e.createVNode(jK,{ref_key:"hue",ref:d,class:"hue-slider",color:e.unref(S),vertical:""},null,8,["color"]),e.createVNode(nW,{ref_key:"sv",ref:p,color:e.unref(S)},null,8,["color"])],2),te.showAlpha?(e.openBlock(),e.createBlock(HK,{key:0,ref_key:"alpha",ref:h,color:e.unref(S)},null,8,["color"])):e.createCommentVNode("v-if",!0),te.predefine?(e.openBlock(),e.createBlock(JK,{key:1,ref:"predefine",color:e.unref(S),colors:te.predefine},null,8,["color","colors"])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).be("dropdown","btns"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).be("dropdown","value"))},[e.createVNode(e.unref(Ft),{ref_key:"inputRef",ref:b,modelValue:M.value,"onUpdate:modelValue":oe[0]||(oe[0]=ie=>M.value=ie),"validate-event":!1,size:"small",onKeyup:e.withKeys(H,["enter"]),onBlur:H},null,8,["modelValue","onKeyup"])],2),e.createVNode(e.unref(At),{class:e.normalizeClass(e.unref(a).be("dropdown","link-btn")),text:"",size:"small",onClick:q},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(l)("el.colorpicker.clear")),1)]),_:1},8,["class"]),e.createVNode(e.unref(At),{plain:"",size:"small",class:e.normalizeClass(e.unref(a).be("dropdown","btn")),onClick:K},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(l)("el.colorpicker.confirm")),1)]),_:1},8,["class"])],2)],40,oW)),[[e.unref(Po),ne]])]),default:e.withCtx(()=>[e.createElementVNode("div",{id:e.unref(f),ref_key:"triggerRef",ref:m,class:e.normalizeClass(e.unref(O)),role:"button","aria-label":e.unref(I),"aria-labelledby":e.unref(v),"aria-description":e.unref(l)("el.colorpicker.description",{color:te.modelValue||""}),"aria-disabled":e.unref(c),tabindex:e.unref(c)?-1:te.tabindex,onKeydown:Z,onFocus:w,onBlur:oe[1]||(oe[1]=(...ie)=>e.unref(k)&&e.unref(k)(...ie))},[e.unref(c)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(a).be("picker","mask"))},null,2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).be("picker","trigger")),onClick:x},[e.createElementVNode("span",{class:e.normalizeClass([e.unref(a).be("picker","color"),e.unref(a).is("alpha",te.showAlpha)])},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).be("picker","color-inner")),style:e.normalizeStyle({backgroundColor:e.unref(P)})},[e.withDirectives(e.createVNode(e.unref(fe),{class:e.normalizeClass([e.unref(a).be("picker","icon"),e.unref(a).is("icon-arrow-down")])},{default:e.withCtx(()=>[e.createVNode(e.unref(qo))]),_:1},8,["class"]),[[e.vShow,te.modelValue||B.value]]),e.withDirectives(e.createVNode(e.unref(fe),{class:e.normalizeClass([e.unref(a).be("picker","empty"),e.unref(a).is("icon-close")])},{default:e.withCtx(()=>[e.createVNode(e.unref(Hn))]),_:1},8,["class"]),[[e.vShow,!te.modelValue&&!B.value]])],6)],2)],2)],42,rW)]),_:1},8,["visible","popper-class","transition"]))}});var sW=se(aW,[["__file","color-picker.vue"]]);const ek=Me(sW),iW=e.defineComponent({name:"ElContainer"}),cW=e.defineComponent({...iW,props:{direction:{type:String}},setup(t){const n=t,o=e.useSlots(),r=Q("container"),l=e.computed(()=>n.direction==="vertical"?!0:n.direction==="horizontal"?!1:o&&o.default?o.default().some(s=>{const i=s.type.name;return i==="ElHeader"||i==="ElFooter"}):!1);return(a,s)=>(e.openBlock(),e.createElementBlock("section",{class:e.normalizeClass([e.unref(r).b(),e.unref(r).is("vertical",e.unref(l))])},[e.renderSlot(a.$slots,"default")],2))}});var dW=se(cW,[["__file","container.vue"]]);const fW=e.defineComponent({name:"ElAside"}),uW=e.defineComponent({...fW,props:{width:{type:String,default:null}},setup(t){const n=t,o=Q("aside"),r=e.computed(()=>n.width?o.cssVarBlock({width:n.width}):{});return(l,a)=>(e.openBlock(),e.createElementBlock("aside",{class:e.normalizeClass(e.unref(o).b()),style:e.normalizeStyle(e.unref(r))},[e.renderSlot(l.$slots,"default")],6))}});var tk=se(uW,[["__file","aside.vue"]]);const pW=e.defineComponent({name:"ElFooter"}),mW=e.defineComponent({...pW,props:{height:{type:String,default:null}},setup(t){const n=t,o=Q("footer"),r=e.computed(()=>n.height?o.cssVarBlock({height:n.height}):{});return(l,a)=>(e.openBlock(),e.createElementBlock("footer",{class:e.normalizeClass(e.unref(o).b()),style:e.normalizeStyle(e.unref(r))},[e.renderSlot(l.$slots,"default")],6))}});var nk=se(mW,[["__file","footer.vue"]]);const hW=e.defineComponent({name:"ElHeader"}),gW=e.defineComponent({...hW,props:{height:{type:String,default:null}},setup(t){const n=t,o=Q("header"),r=e.computed(()=>n.height?o.cssVarBlock({height:n.height}):{});return(l,a)=>(e.openBlock(),e.createElementBlock("header",{class:e.normalizeClass(e.unref(o).b()),style:e.normalizeStyle(e.unref(r))},[e.renderSlot(l.$slots,"default")],6))}});var ok=se(gW,[["__file","header.vue"]]);const yW=e.defineComponent({name:"ElMain"}),bW=e.defineComponent({...yW,setup(t){const n=Q("main");return(o,r)=>(e.openBlock(),e.createElementBlock("main",{class:e.normalizeClass(e.unref(n).b())},[e.renderSlot(o.$slots,"default")],2))}});var rk=se(bW,[["__file","main.vue"]]);const lk=Me(dW,{Aside:tk,Footer:nk,Header:ok,Main:rk}),ak=ht(tk),sk=ht(nk),ik=ht(ok),ck=ht(rk);var dk={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){return function(o,r,l){var a=r.prototype,s=a.format;l.en.ordinal=function(i){var c=["th","st","nd","rd"],f=i%100;return"["+i+(c[(f-20)%10]||c[f]||c[0])+"]"},a.format=function(i){var c=this,f=this.$locale();if(!this.isValid())return s.bind(this)(i);var u=this.$utils(),d=(i||"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(p){switch(p){case"Q":return Math.ceil((c.$M+1)/3);case"Do":return f.ordinal(c.$D);case"gggg":return c.weekYear();case"GGGG":return c.isoWeekYear();case"wo":return f.ordinal(c.week(),"W");case"w":case"ww":return u.s(c.week(),p==="w"?1:2,"0");case"W":case"WW":return u.s(c.isoWeek(),p==="W"?1:2,"0");case"k":case"kk":return u.s(String(c.$H===0?24:c.$H),p==="k"?1:2,"0");case"X":return Math.floor(c.$d.getTime()/1e3);case"x":return c.$d.getTime();case"z":return"["+c.offsetName()+"]";case"zzz":return"["+c.offsetName("long")+"]";default:return p}});return s.bind(this)(d)}}})})(dk);var CW=dk.exports,fk={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){var o="week",r="year";return function(l,a,s){var i=a.prototype;i.week=function(c){if(c===void 0&&(c=null),c!==null)return this.add(7*(c-this.week()),"day");var f=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var u=s(this).startOf(r).add(1,r).date(f),d=s(this).endOf(o);if(u.isBefore(d))return 1}var p=s(this).startOf(r).date(f).startOf(o).subtract(1,"millisecond"),h=this.diff(p,o,!0);return h<0?s(this).startOf("week").week():Math.ceil(h)},i.weeks=function(c){return c===void 0&&(c=null),this.week(c)}}})})(fk);var wW=fk.exports,uk={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){return function(o,r){r.prototype.weekYear=function(){var l=this.month(),a=this.week(),s=this.year();return a===1&&l===11?s+1:l===0&&a>=52?s-1:s}}})})(uk);var kW=uk.exports,pk={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){return function(o,r,l){r.prototype.dayOfYear=function(a){var s=Math.round((l(this).startOf("day")-l(this).startOf("year"))/864e5)+1;return a==null?s:this.add(a-s,"day")}}})})(pk);var SW=pk.exports,mk={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){return function(o,r){r.prototype.isSameOrAfter=function(l,a){return this.isSame(l,a)||this.isAfter(l,a)}}})})(mk);var EW=mk.exports,hk={exports:{}};(function(t,n){(function(o,r){t.exports=r()})(Mo,function(){return function(o,r){r.prototype.isSameOrBefore=function(l,a){return this.isSame(l,a)||this.isBefore(l,a)}}})})(hk);var NW=hk.exports;const Ii=Symbol(),gk=le({...bi,type:{type:W(String),default:"date"}}),_W=["date","dates","year","month","week","range"],Au=le({disabledDate:{type:W(Function)},date:{type:W(Object),required:!0},minDate:{type:W(Object)},maxDate:{type:W(Object)},parsedValue:{type:W([Object,Array])},rangeState:{type:W(Object),default:()=>({endDate:null,selecting:!1})}}),yk=le({type:{type:W(String),required:!0,values:Vy},dateFormat:String,timeFormat:String}),bk=le({unlinkPanels:Boolean,parsedValue:{type:W(Array)}}),Ck=t=>({type:String,values:_W,default:t}),BW=le({...yk,parsedValue:{type:W([Object,Array])},visible:{type:Boolean},format:{type:String,default:""}}),$W=le({...Au,cellClassName:{type:W(Function)},showWeekNumber:Boolean,selectionMode:Ck("date")}),TW=["changerange","pick","select"],zu=t=>{if(!Re(t))return!1;const[n,o]=t;return ve.isDayjs(n)&&ve.isDayjs(o)&&n.isSameOrBefore(o)},wk=(t,{lang:n,unit:o,unlinkPanels:r})=>{let l;if(Re(t)){let[a,s]=t.map(i=>ve(i).locale(n));return r||(s=a.add(1,o)),[a,s]}else t?l=ve(t):l=ve();return l=l.locale(n),[l,l.add(1,o)]},vW=(t,n,{columnIndexOffset:o,startDate:r,nextEndDate:l,now:a,unit:s,relativeDateGetter:i,setCellMetadata:c,setRowMetadata:f})=>{for(let u=0;u["normal","today"].includes(t),VW=(t,n)=>{const{lang:o}=Ke(),r=e.ref(),l=e.ref(),a=e.ref(),s=e.ref(),i=e.ref([[],[],[],[],[],[]]);let c=!1;const f=t.date.$locale().weekStart||7,u=t.date.locale("en").localeData().weekdaysShort().map(N=>N.toLowerCase()),d=e.computed(()=>f>3?7-f:-f),p=e.computed(()=>{const N=t.date.startOf("month");return N.subtract(N.day()||7,"day")}),h=e.computed(()=>u.concat(u).slice(f,f+7)),g=e.computed(()=>zc(e.unref(w)).some(N=>N.isCurrent)),m=e.computed(()=>{const N=t.date.startOf("month"),A=N.day()||7,x=N.daysInMonth(),H=N.subtract(1,"month").daysInMonth();return{startOfMonthDay:A,dateCountOfMonth:x,dateCountOfLastMonth:H}}),b=e.computed(()=>t.selectionMode==="dates"?_o(t.parsedValue):[]),y=(N,{count:A,rowIndex:x,columnIndex:H})=>{const{startOfMonthDay:K,dateCountOfMonth:q,dateCountOfLastMonth:ne}=e.unref(m),Y=e.unref(d);if(x>=0&&x<=1){const Z=K+Y<0?7+K+Y:K+Y;if(H+x*7>=Z)return N.text=A,!0;N.text=ne-(Z-H%7)+1+x*7,N.type="prev-month"}else return A<=q?N.text=A:(N.text=A-q,N.type="next-month"),!0;return!1},C=(N,{columnIndex:A,rowIndex:x},H)=>{const{disabledDate:K,cellClassName:q}=t,ne=e.unref(b),Y=y(N,{count:H,rowIndex:x,columnIndex:A}),Z=N.dayjs.toDate();return N.selected=ne.find(U=>U.valueOf()===N.dayjs.valueOf()),N.isSelected=!!N.selected,N.isCurrent=S(N),N.disabled=K==null?void 0:K(Z),N.customClass=q==null?void 0:q(Z),Y},k=N=>{if(t.selectionMode==="week"){const[A,x]=t.showWeekNumber?[1,7]:[0,6],H=R(N[A+1]);N[A].inRange=H,N[A].start=H,N[x].inRange=H,N[x].end=H}},w=e.computed(()=>{const{minDate:N,maxDate:A,rangeState:x,showWeekNumber:H}=t,K=e.unref(d),q=e.unref(i),ne="day";let Y=1;if(H)for(let Z=0;Z<6;Z++)q[Z][0]||(q[Z][0]={type:"week",text:e.unref(p).add(Z*7+1,ne).week()});return vW({row:6,column:7},q,{startDate:N,columnIndexOffset:H?1:0,nextEndDate:x.endDate||A||x.selecting&&N||null,now:ve().locale(e.unref(o)).startOf(ne),unit:ne,relativeDateGetter:Z=>e.unref(p).add(Z-K,ne),setCellMetadata:(...Z)=>{C(...Z,Y)&&(Y+=1)},setRowMetadata:k}),q});e.watch(()=>t.date,async()=>{var N;(N=e.unref(r))!=null&&N.contains(document.activeElement)&&(await e.nextTick(),await E())});const E=async()=>{var N;return(N=e.unref(l))==null?void 0:N.focus()},S=N=>t.selectionMode==="date"&&Du(N.type)&&_(N,t.parsedValue),_=(N,A)=>A?ve(A).locale(e.unref(o)).isSame(t.date.date(Number(N.text)),"day"):!1,B=(N,A)=>{const x=N*7+(A-(t.showWeekNumber?1:0))-e.unref(d);return e.unref(p).add(x,"day")},M=N=>{var A;if(!t.rangeState.selecting)return;let x=N.target;if(x.tagName==="SPAN"&&(x=(A=x.parentNode)==null?void 0:A.parentNode),x.tagName==="DIV"&&(x=x.parentNode),x.tagName!=="TD")return;const H=x.parentNode.rowIndex-1,K=x.cellIndex;e.unref(w)[H][K].disabled||(H!==e.unref(a)||K!==e.unref(s))&&(a.value=H,s.value=K,n("changerange",{selecting:!0,endDate:B(H,K)}))},P=N=>!e.unref(g)&&(N==null?void 0:N.text)===1&&N.type==="normal"||N.isCurrent,T=N=>{c||e.unref(g)||t.selectionMode!=="date"||$(N,!0)},I=N=>{!N.target.closest("td")||(c=!0)},v=N=>{!N.target.closest("td")||(c=!1)},O=N=>{!t.rangeState.selecting||!t.minDate?(n("pick",{minDate:N,maxDate:null}),n("select",!0)):(N>=t.minDate?n("pick",{minDate:t.minDate,maxDate:N}):n("pick",{minDate:N,maxDate:t.minDate}),n("select",!1))},D=N=>{const A=N.week(),x=`${N.year()}w${A}`;n("pick",{year:N.year(),week:A,value:x,date:N.startOf("week")})},z=(N,A)=>{const x=A?_o(t.parsedValue).filter(H=>(H==null?void 0:H.valueOf())!==N.valueOf()):_o(t.parsedValue).concat([N]);n("pick",x)},$=(N,A=!1)=>{const x=N.target.closest("td");if(!x)return;const H=x.parentNode.rowIndex-1,K=x.cellIndex,q=e.unref(w)[H][K];if(q.disabled||q.type==="week")return;const ne=B(H,K);switch(t.selectionMode){case"range":{O(ne);break}case"date":{n("pick",ne,A);break}case"week":{D(ne);break}case"dates":{z(ne,!!q.selected);break}}},R=N=>{if(t.selectionMode!=="week")return!1;let A=t.date.startOf("day");if(N.type==="prev-month"&&(A=A.subtract(1,"month")),N.type==="next-month"&&(A=A.add(1,"month")),A=A.date(Number.parseInt(N.text,10)),t.parsedValue&&!Array.isArray(t.parsedValue)){const x=(t.parsedValue.day()-f+7)%7-1;return t.parsedValue.subtract(x,"day").isSame(A,"day")}return!1};return{WEEKS:h,rows:w,tbodyRef:r,currentCellRef:l,focus:E,isCurrent:S,isWeekActive:R,isSelectedCell:P,handlePickDate:$,handleMouseUp:v,handleMouseDown:I,handleMouseMove:M,handleFocus:T}},MW=(t,{isCurrent:n,isWeekActive:o})=>{const r=Q("date-table"),{t:l}=Ke(),a=e.computed(()=>[r.b(),{"is-week-mode":t.selectionMode==="week"}]),s=e.computed(()=>l("el.datepicker.dateTablePrompt")),i=e.computed(()=>l("el.datepicker.week"));return{tableKls:a,tableLabel:s,weekLabel:i,getCellClasses:u=>{const d=[];return Du(u.type)&&!u.disabled?(d.push("available"),u.type==="today"&&d.push("today")):d.push(u.type),n(u)&&d.push("current"),u.inRange&&(Du(u.type)||t.selectionMode==="week")&&(d.push("in-range"),u.start&&d.push("start-date"),u.end&&d.push("end-date")),u.disabled&&d.push("disabled"),u.selected&&d.push("selected"),u.customClass&&d.push(u.customClass),d.join(" ")},getRowKls:u=>[r.e("row"),{current:o(u)}],t:l}},IW=le({cell:{type:W(Object)}});var PW=e.defineComponent({name:"ElDatePickerCell",props:IW,setup(t){const n=Q("date-table-cell"),{slots:o}=e.inject(Ii);return()=>{const{cell:r}=t;if(o.default){const l=o.default(r).filter(a=>a.patchFlag!==-2&&a.type.toString()!=="Symbol(Comment)"&&a.type.toString()!=="Symbol(v-cmt)");if(l.length)return l}return e.createVNode("div",{class:n.b()},[e.createVNode("span",{class:n.e("text")},[r==null?void 0:r.text])])}}});const RW=["aria-label"],OW={key:0,scope:"col"},AW=["aria-label"],zW=["aria-current","aria-selected","tabindex"];var Lu=se(e.defineComponent({__name:"basic-date-table",props:$W,emits:TW,setup(t,{expose:n,emit:o}){const r=t,{WEEKS:l,rows:a,tbodyRef:s,currentCellRef:i,focus:c,isCurrent:f,isWeekActive:u,isSelectedCell:d,handlePickDate:p,handleMouseUp:h,handleMouseDown:g,handleMouseMove:m,handleFocus:b}=VW(r,o),{tableLabel:y,tableKls:C,weekLabel:k,getCellClasses:w,getRowKls:E,t:S}=MW(r,{isCurrent:f,isWeekActive:u});return n({focus:c}),(_,B)=>(e.openBlock(),e.createElementBlock("table",{"aria-label":e.unref(y),class:e.normalizeClass(e.unref(C)),cellspacing:"0",cellpadding:"0",role:"grid",onClick:B[1]||(B[1]=(...M)=>e.unref(p)&&e.unref(p)(...M)),onMousemove:B[2]||(B[2]=(...M)=>e.unref(m)&&e.unref(m)(...M)),onMousedown:B[3]||(B[3]=e.withModifiers((...M)=>e.unref(g)&&e.unref(g)(...M),["prevent"])),onMouseup:B[4]||(B[4]=(...M)=>e.unref(h)&&e.unref(h)(...M))},[e.createElementVNode("tbody",{ref_key:"tbodyRef",ref:s},[e.createElementVNode("tr",null,[_.showWeekNumber?(e.openBlock(),e.createElementBlock("th",OW,e.toDisplayString(e.unref(k)),1)):e.createCommentVNode("v-if",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(l),(M,P)=>(e.openBlock(),e.createElementBlock("th",{key:P,"aria-label":e.unref(S)("el.datepicker.weeksFull."+M),scope:"col"},e.toDisplayString(e.unref(S)("el.datepicker.weeks."+M)),9,AW))),128))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),(M,P)=>(e.openBlock(),e.createElementBlock("tr",{key:P,class:e.normalizeClass(e.unref(E)(M[1]))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M,(T,I)=>(e.openBlock(),e.createElementBlock("td",{key:`${P}.${I}`,ref_for:!0,ref:v=>e.unref(d)(T)&&(i.value=v),class:e.normalizeClass(e.unref(w)(T)),"aria-current":T.isCurrent?"date":void 0,"aria-selected":T.isCurrent,tabindex:e.unref(d)(T)?0:-1,onFocus:B[0]||(B[0]=(...v)=>e.unref(b)&&e.unref(b)(...v))},[e.createVNode(e.unref(PW),{cell:T},null,8,["cell"])],42,zW))),128))],2))),128))],512)],42,RW))}}),[["__file","basic-date-table.vue"]]);const DW=le({...Au,selectionMode:Ck("month")}),LW=["aria-label"],xW=["aria-selected","aria-label","tabindex","onKeydown"],FW={class:"cell"};var xu=se(e.defineComponent({__name:"basic-month-table",props:DW,emits:["changerange","pick","select"],setup(t,{expose:n,emit:o}){const r=t,l=(w,E,S)=>{const _=ve().locale(S).startOf("month").month(E).year(w),B=_.daysInMonth();return Io(B).map(M=>_.add(M,"day").toDate())},a=Q("month-table"),{t:s,lang:i}=Ke(),c=e.ref(),f=e.ref(),u=e.ref(r.date.locale("en").localeData().monthsShort().map(w=>w.toLowerCase())),d=e.ref([[],[],[]]),p=e.ref(),h=e.ref(),g=e.computed(()=>{var w,E;const S=d.value,_=ve().locale(i.value).startOf("month");for(let B=0;B<3;B++){const M=S[B];for(let P=0;P<4;P++){const T=M[P]||(M[P]={row:B,column:P,type:"normal",inRange:!1,start:!1,end:!1,text:-1,disabled:!1});T.type="normal";const I=B*4+P,v=r.date.startOf("year").month(I),O=r.rangeState.endDate||r.maxDate||r.rangeState.selecting&&r.minDate||null;T.inRange=!!(r.minDate&&v.isSameOrAfter(r.minDate,"month")&&O&&v.isSameOrBefore(O,"month"))||!!(r.minDate&&v.isSameOrBefore(r.minDate,"month")&&O&&v.isSameOrAfter(O,"month")),(w=r.minDate)!=null&&w.isSameOrAfter(O)?(T.start=!!(O&&v.isSame(O,"month")),T.end=r.minDate&&v.isSame(r.minDate,"month")):(T.start=!!(r.minDate&&v.isSame(r.minDate,"month")),T.end=!!(O&&v.isSame(O,"month"))),_.isSame(v)&&(T.type="today"),T.text=I,T.disabled=((E=r.disabledDate)==null?void 0:E.call(r,v.toDate()))||!1}}return S}),m=()=>{var w;(w=f.value)==null||w.focus()},b=w=>{const E={},S=r.date.year(),_=new Date,B=w.text;return E.disabled=r.disabledDate?l(S,B,i.value).every(r.disabledDate):!1,E.current=_o(r.parsedValue).findIndex(M=>ve.isDayjs(M)&&M.year()===S&&M.month()===B)>=0,E.today=_.getFullYear()===S&&_.getMonth()===B,w.inRange&&(E["in-range"]=!0,w.start&&(E["start-date"]=!0),w.end&&(E["end-date"]=!0)),E},y=w=>{const E=r.date.year(),S=w.text;return _o(r.date).findIndex(_=>_.year()===E&&_.month()===S)>=0},C=w=>{var E;if(!r.rangeState.selecting)return;let S=w.target;if(S.tagName==="A"&&(S=(E=S.parentNode)==null?void 0:E.parentNode),S.tagName==="DIV"&&(S=S.parentNode),S.tagName!=="TD")return;const _=S.parentNode.rowIndex,B=S.cellIndex;g.value[_][B].disabled||(_!==p.value||B!==h.value)&&(p.value=_,h.value=B,o("changerange",{selecting:!0,endDate:r.date.startOf("year").month(_*4+B)}))},k=w=>{var E;const S=(E=w.target)==null?void 0:E.closest("td");if((S==null?void 0:S.tagName)!=="TD"||Fn(S,"disabled"))return;const _=S.cellIndex,M=S.parentNode.rowIndex*4+_,P=r.date.startOf("year").month(M);r.selectionMode==="range"?r.rangeState.selecting?(r.minDate&&P>=r.minDate?o("pick",{minDate:r.minDate,maxDate:P}):o("pick",{minDate:P,maxDate:r.minDate}),o("select",!1)):(o("pick",{minDate:P,maxDate:null}),o("select",!0)):o("pick",M)};return e.watch(()=>r.date,async()=>{var w,E;(w=c.value)!=null&&w.contains(document.activeElement)&&(await e.nextTick(),(E=f.value)==null||E.focus())}),n({focus:m}),(w,E)=>(e.openBlock(),e.createElementBlock("table",{role:"grid","aria-label":e.unref(s)("el.datepicker.monthTablePrompt"),class:e.normalizeClass(e.unref(a).b()),onClick:k,onMousemove:C},[e.createElementVNode("tbody",{ref_key:"tbodyRef",ref:c},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),(S,_)=>(e.openBlock(),e.createElementBlock("tr",{key:_},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S,(B,M)=>(e.openBlock(),e.createElementBlock("td",{key:M,ref_for:!0,ref:P=>y(B)&&(f.value=P),class:e.normalizeClass(b(B)),"aria-selected":`${y(B)}`,"aria-label":e.unref(s)(`el.datepicker.month${+B.text+1}`),tabindex:y(B)?0:-1,onKeydown:[e.withKeys(e.withModifiers(k,["prevent","stop"]),["space"]),e.withKeys(e.withModifiers(k,["prevent","stop"]),["enter"])]},[e.createElementVNode("div",null,[e.createElementVNode("span",FW,e.toDisplayString(e.unref(s)("el.datepicker.months."+u.value[B.text])),1)])],42,xW))),128))]))),128))],512)],42,LW))}}),[["__file","basic-month-table.vue"]]);const{date:HW,disabledDate:KW,parsedValue:WW}=Au,jW=le({date:HW,disabledDate:KW,parsedValue:WW}),UW=["aria-label"],GW=["aria-selected","tabindex","onKeydown"],qW={class:"cell"},YW={key:1};var XW=se(e.defineComponent({__name:"basic-year-table",props:jW,emits:["pick"],setup(t,{expose:n,emit:o}){const r=t,l=(m,b)=>{const y=ve(String(m)).locale(b).startOf("year"),k=y.endOf("year").dayOfYear();return Io(k).map(w=>y.add(w,"day").toDate())},a=Q("year-table"),{t:s,lang:i}=Ke(),c=e.ref(),f=e.ref(),u=e.computed(()=>Math.floor(r.date.year()/10)*10),d=()=>{var m;(m=f.value)==null||m.focus()},p=m=>{const b={},y=ve().locale(i.value);return b.disabled=r.disabledDate?l(m,i.value).every(r.disabledDate):!1,b.current=_o(r.parsedValue).findIndex(C=>C.year()===m)>=0,b.today=y.year()===m,b},h=m=>m===u.value&&r.date.year()u.value+9||_o(r.date).findIndex(b=>b.year()===m)>=0,g=m=>{const y=m.target.closest("td");if(y&&y.textContent){if(Fn(y,"disabled"))return;const C=y.textContent||y.innerText;o("pick",Number(C))}};return e.watch(()=>r.date,async()=>{var m,b;(m=c.value)!=null&&m.contains(document.activeElement)&&(await e.nextTick(),(b=f.value)==null||b.focus())}),n({focus:d}),(m,b)=>(e.openBlock(),e.createElementBlock("table",{role:"grid","aria-label":e.unref(s)("el.datepicker.yearTablePrompt"),class:e.normalizeClass(e.unref(a).b()),onClick:g},[e.createElementVNode("tbody",{ref_key:"tbodyRef",ref:c},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(3,(y,C)=>e.createElementVNode("tr",{key:C},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(4,(k,w)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:C+"_"+w},[C*4+w<10?(e.openBlock(),e.createElementBlock("td",{key:0,ref_for:!0,ref:E=>h(e.unref(u)+C*4+w)&&(f.value=E),class:e.normalizeClass(["available",p(e.unref(u)+C*4+w)]),"aria-selected":`${h(e.unref(u)+C*4+w)}`,tabindex:h(e.unref(u)+C*4+w)?0:-1,onKeydown:[e.withKeys(e.withModifiers(g,["prevent","stop"]),["space"]),e.withKeys(e.withModifiers(g,["prevent","stop"]),["enter"])]},[e.createElementVNode("span",qW,e.toDisplayString(e.unref(u)+C*4+w),1)],42,GW)):(e.openBlock(),e.createElementBlock("td",YW))],64))),64))])),64))],512)],10,UW))}}),[["__file","basic-year-table.vue"]]);const ZW=["onClick"],JW=["aria-label"],QW=["aria-label"],e9=["aria-label"],t9=["aria-label"];var n9=se(e.defineComponent({__name:"panel-date-pick",props:BW,emits:["pick","set-picker-option","panel-change"],setup(t,{emit:n}){const o=t,r=(J,G,j)=>!0,l=Q("picker-panel"),a=Q("date-picker"),s=e.useAttrs(),i=e.useSlots(),{t:c,lang:f}=Ke(),u=e.inject("EP_PICKER_BASE"),d=e.inject(ka),{shortcuts:p,disabledDate:h,cellClassName:g,defaultTime:m}=u.props,b=e.toRef(u.props,"defaultValue"),y=e.ref(),C=e.ref(ve().locale(f.value)),k=e.ref(!1);let w=!1;const E=e.computed(()=>ve(m).locale(f.value)),S=e.computed(()=>C.value.month()),_=e.computed(()=>C.value.year()),B=e.ref([]),M=e.ref(null),P=e.ref(null),T=J=>B.value.length>0?r(J,B.value,o.format||"HH:mm:ss"):!0,I=J=>m&&!Ne.value&&!k.value&&!w?E.value.year(J.year()).month(J.month()).date(J.date()):Y.value?J.millisecond(0):J.startOf("day"),v=(J,...G)=>{if(!J)n("pick",J,...G);else if(Re(J)){const j=J.map(I);n("pick",j,...G)}else n("pick",I(J),...G);M.value=null,P.value=null,k.value=!1,w=!1},O=(J,G)=>{if(A.value==="date"){J=J;let j=o.parsedValue?o.parsedValue.year(J.year()).month(J.month()).date(J.date()):J;T(j)||(j=B.value[0][0].year(J.year()).month(J.month()).date(J.date())),C.value=j,v(j,Y.value||G)}else A.value==="week"?v(J.date):A.value==="dates"&&v(J,!0)},D=J=>{const G=J?"add":"subtract";C.value=C.value[G](1,"month"),ke("month")},z=J=>{const G=C.value,j=J?"add":"subtract";C.value=$.value==="year"?G[j](10,"year"):G[j](1,"year"),ke("year")},$=e.ref("date"),R=e.computed(()=>{const J=c("el.datepicker.year");if($.value==="year"){const G=Math.floor(_.value/10)*10;return J?`${G} ${J} - ${G+9} ${J}`:`${G} - ${G+9}`}return`${_.value} ${J}`}),N=J=>{const G=qe(J.value)?J.value():J.value;if(G){w=!0,v(ve(G).locale(f.value));return}J.onClick&&J.onClick({attrs:s,slots:i,emit:n})},A=e.computed(()=>{const{type:J}=o;return["week","month","year","dates"].includes(J)?J:"date"}),x=e.computed(()=>A.value==="date"?$.value:A.value),H=e.computed(()=>!!p.length),K=async J=>{C.value=C.value.startOf("month").month(J),A.value==="month"?v(C.value,!1):($.value="date",["month","year","date","week"].includes(A.value)&&(v(C.value,!0),await e.nextTick(),Le())),ke("month")},q=async J=>{A.value==="year"?(C.value=C.value.startOf("year").year(J),v(C.value,!1)):(C.value=C.value.year(J),$.value="month",["month","year","date","week"].includes(A.value)&&(v(C.value,!0),await e.nextTick(),Le())),ke("year")},ne=async J=>{$.value=J,await e.nextTick(),Le()},Y=e.computed(()=>o.type==="datetime"||o.type==="datetimerange"),Z=e.computed(()=>Y.value||A.value==="dates"),U=e.computed(()=>h?o.parsedValue?Re(o.parsedValue)?h(o.parsedValue[0].toDate()):h(o.parsedValue.toDate()):!0:!1),re=()=>{if(A.value==="dates")v(o.parsedValue);else{let J=o.parsedValue;if(!J){const G=ve(m).locale(f.value),j=Ee();J=G.year(j.year()).month(j.month()).date(j.date())}C.value=J,v(J)}},te=e.computed(()=>h?h(ve().locale(f.value).toDate()):!1),oe=()=>{const G=ve().locale(f.value).toDate();k.value=!0,(!h||!h(G))&&T(G)&&(C.value=ve().locale(f.value),v(C.value))},ie=e.computed(()=>o.timeFormat||nu(o.format)),ye=e.computed(()=>o.dateFormat||tu(o.format)),Ne=e.computed(()=>{if(P.value)return P.value;if(!(!o.parsedValue&&!b.value))return(o.parsedValue||C.value).format(ie.value)}),Te=e.computed(()=>{if(M.value)return M.value;if(!(!o.parsedValue&&!b.value))return(o.parsedValue||C.value).format(ye.value)}),Pe=e.ref(!1),he=()=>{Pe.value=!0},Ce=()=>{Pe.value=!1},ge=J=>({hour:J.hour(),minute:J.minute(),second:J.second(),year:J.year(),month:J.month(),date:J.date()}),me=(J,G,j)=>{const{hour:ee,minute:F,second:ue}=ge(J),Be=o.parsedValue?o.parsedValue.hour(ee).minute(F).second(ue):J;C.value=Be,v(C.value,!0),j||(Pe.value=G)},_e=J=>{const G=ve(J,ie.value).locale(f.value);if(G.isValid()&&T(G)){const{year:j,month:ee,date:F}=ge(C.value);C.value=G.year(j).month(ee).date(F),P.value=null,Pe.value=!1,v(C.value,!0)}},$e=J=>{const G=ve(J,ye.value).locale(f.value);if(G.isValid()){if(h&&h(G.toDate()))return;const{hour:j,minute:ee,second:F}=ge(C.value);C.value=G.hour(j).minute(ee).second(F),M.value=null,v(C.value,!0)}},Ae=J=>ve.isDayjs(J)&&J.isValid()&&(h?!h(J.toDate()):!0),Oe=J=>A.value==="dates"?J.map(G=>G.format(o.format)):J.format(o.format),ce=J=>ve(J,o.format).locale(f.value),Ee=()=>{const J=ve(b.value).locale(f.value);if(!b.value){const G=E.value;return ve().hour(G.hour()).minute(G.minute()).second(G.second()).locale(f.value)}return J},Le=async()=>{var J;["week","month","year","date"].includes(A.value)&&((J=y.value)==null||J.focus(),A.value==="week"&&Qe(pe.down))},Xe=J=>{const{code:G}=J;[pe.up,pe.down,pe.left,pe.right,pe.home,pe.end,pe.pageUp,pe.pageDown].includes(G)&&(Qe(G),J.stopPropagation(),J.preventDefault()),[pe.enter,pe.space,pe.numpadEnter].includes(G)&&M.value===null&&P.value===null&&(J.preventDefault(),v(C.value,!1))},Qe=J=>{var G;const{up:j,down:ee,left:F,right:ue,home:Be,end:xe,pageUp:_t,pageDown:gt}=pe,zn={year:{[j]:-4,[ee]:4,[F]:-1,[ue]:1,offset:(X,de)=>X.setFullYear(X.getFullYear()+de)},month:{[j]:-4,[ee]:4,[F]:-1,[ue]:1,offset:(X,de)=>X.setMonth(X.getMonth()+de)},week:{[j]:-1,[ee]:1,[F]:-1,[ue]:1,offset:(X,de)=>X.setDate(X.getDate()+de*7)},date:{[j]:-7,[ee]:7,[F]:-1,[ue]:1,[Be]:X=>-X.getDay(),[xe]:X=>-X.getDay()+6,[_t]:X=>-new Date(X.getFullYear(),X.getMonth(),0).getDate(),[gt]:X=>new Date(X.getFullYear(),X.getMonth()+1,0).getDate(),offset:(X,de)=>X.setDate(X.getDate()+de)}},Wt=C.value.toDate();for(;Math.abs(C.value.diff(Wt,"year",!0))<1;){const X=zn[x.value];if(!X)return;if(X.offset(Wt,qe(X[J])?X[J](Wt):(G=X[J])!=null?G:0),h&&h(Wt))break;const de=ve(Wt).locale(f.value);C.value=de,n("pick",de,!0);break}},ke=J=>{n("panel-change",C.value.toDate(),J,$.value)};return e.watch(()=>A.value,J=>{if(["month","year"].includes(J)){$.value=J;return}$.value="date"},{immediate:!0}),e.watch(()=>$.value,()=>{d==null||d.updatePopper()}),e.watch(()=>b.value,J=>{J&&(C.value=Ee())},{immediate:!0}),e.watch(()=>o.parsedValue,J=>{if(J){if(A.value==="dates"||Array.isArray(J))return;C.value=J}else C.value=Ee()},{immediate:!0}),n("set-picker-option",["isValidValue",Ae]),n("set-picker-option",["formatToString",Oe]),n("set-picker-option",["parseUserInput",ce]),n("set-picker-option",["handleFocusPicker",Le]),(J,G)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(l).b(),e.unref(a).b(),{"has-sidebar":J.$slots.sidebar||e.unref(H),"has-time":e.unref(Y)}])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("body-wrapper"))},[e.renderSlot(J.$slots,"sidebar",{class:e.normalizeClass(e.unref(l).e("sidebar"))}),e.unref(H)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("sidebar"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),(j,ee)=>(e.openBlock(),e.createElementBlock("button",{key:ee,type:"button",class:e.normalizeClass(e.unref(l).e("shortcut")),onClick:F=>N(j)},e.toDisplayString(j.text),11,ZW))),128))],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("body"))},[e.unref(Y)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(a).e("time-header"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).e("editor-wrap"))},[e.createVNode(e.unref(Ft),{placeholder:e.unref(c)("el.datepicker.selectDate"),"model-value":e.unref(Te),size:"small","validate-event":!1,onInput:G[0]||(G[0]=j=>M.value=j),onChange:$e},null,8,["placeholder","model-value"])],2),e.withDirectives((e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(a).e("editor-wrap"))},[e.createVNode(e.unref(Ft),{placeholder:e.unref(c)("el.datepicker.selectTime"),"model-value":e.unref(Ne),size:"small","validate-event":!1,onFocus:he,onInput:G[1]||(G[1]=j=>P.value=j),onChange:_e},null,8,["placeholder","model-value"]),e.createVNode(e.unref(Ea),{visible:Pe.value,format:e.unref(ie),"parsed-value":C.value,onPick:me},null,8,["visible","format","parsed-value"])],2)),[[e.unref(Po),Ce]])],2)):e.createCommentVNode("v-if",!0),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass([e.unref(a).e("header"),($.value==="year"||$.value==="month")&&e.unref(a).e("header--bordered")])},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).e("prev-btn"))},[e.createElementVNode("button",{type:"button","aria-label":e.unref(c)("el.datepicker.prevYear"),class:e.normalizeClass(["d-arrow-left",e.unref(l).e("icon-btn")]),onClick:G[2]||(G[2]=j=>z(!1))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(nl))]),_:1})],10,JW),e.withDirectives(e.createElementVNode("button",{type:"button","aria-label":e.unref(c)("el.datepicker.prevMonth"),class:e.normalizeClass([e.unref(l).e("icon-btn"),"arrow-left"]),onClick:G[3]||(G[3]=j=>D(!1))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Yo))]),_:1})],10,QW),[[e.vShow,$.value==="date"]])],2),e.createElementVNode("span",{role:"button",class:e.normalizeClass(e.unref(a).e("header-label")),"aria-live":"polite",tabindex:"0",onKeydown:G[4]||(G[4]=e.withKeys(j=>ne("year"),["enter"])),onClick:G[5]||(G[5]=j=>ne("year"))},e.toDisplayString(e.unref(R)),35),e.withDirectives(e.createElementVNode("span",{role:"button","aria-live":"polite",tabindex:"0",class:e.normalizeClass([e.unref(a).e("header-label"),{active:$.value==="month"}]),onKeydown:G[6]||(G[6]=e.withKeys(j=>ne("month"),["enter"])),onClick:G[7]||(G[7]=j=>ne("month"))},e.toDisplayString(e.unref(c)(`el.datepicker.month${e.unref(S)+1}`)),35),[[e.vShow,$.value==="date"]]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(a).e("next-btn"))},[e.withDirectives(e.createElementVNode("button",{type:"button","aria-label":e.unref(c)("el.datepicker.nextMonth"),class:e.normalizeClass([e.unref(l).e("icon-btn"),"arrow-right"]),onClick:G[8]||(G[8]=j=>D(!0))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})],10,e9),[[e.vShow,$.value==="date"]]),e.createElementVNode("button",{type:"button","aria-label":e.unref(c)("el.datepicker.nextYear"),class:e.normalizeClass([e.unref(l).e("icon-btn"),"d-arrow-right"]),onClick:G[9]||(G[9]=j=>z(!0))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(ol))]),_:1})],10,t9)],2)],2),[[e.vShow,$.value!=="time"]]),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("content")),onKeydown:Xe},[$.value==="date"?(e.openBlock(),e.createBlock(Lu,{key:0,ref_key:"currentViewRef",ref:y,"selection-mode":e.unref(A),date:C.value,"parsed-value":J.parsedValue,"disabled-date":e.unref(h),"cell-class-name":e.unref(g),onPick:O},null,8,["selection-mode","date","parsed-value","disabled-date","cell-class-name"])):e.createCommentVNode("v-if",!0),$.value==="year"?(e.openBlock(),e.createBlock(XW,{key:1,ref_key:"currentViewRef",ref:y,date:C.value,"disabled-date":e.unref(h),"parsed-value":J.parsedValue,onPick:q},null,8,["date","disabled-date","parsed-value"])):e.createCommentVNode("v-if",!0),$.value==="month"?(e.openBlock(),e.createBlock(xu,{key:2,ref_key:"currentViewRef",ref:y,date:C.value,"parsed-value":J.parsedValue,"disabled-date":e.unref(h),onPick:K},null,8,["date","parsed-value","disabled-date"])):e.createCommentVNode("v-if",!0)],34)],2)],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("footer"))},[e.withDirectives(e.createVNode(e.unref(At),{text:"",size:"small",class:e.normalizeClass(e.unref(l).e("link-btn")),disabled:e.unref(te),onClick:oe},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(c)("el.datepicker.now")),1)]),_:1},8,["class","disabled"]),[[e.vShow,e.unref(A)!=="dates"]]),e.createVNode(e.unref(At),{plain:"",size:"small",class:e.normalizeClass(e.unref(l).e("link-btn")),disabled:e.unref(U),onClick:re},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(c)("el.datepicker.confirm")),1)]),_:1},8,["class","disabled"])],2),[[e.vShow,e.unref(Z)&&$.value==="date"]])],2))}}),[["__file","panel-date-pick.vue"]]);const o9=le({...yk,...bk}),r9=t=>{const{emit:n}=e.getCurrentInstance(),o=e.useAttrs(),r=e.useSlots();return a=>{const s=qe(a.value)?a.value():a.value;if(s){n("pick",[ve(s[0]).locale(t.value),ve(s[1]).locale(t.value)]);return}a.onClick&&a.onClick({attrs:o,slots:r,emit:n})}},kk=(t,{defaultValue:n,leftDate:o,rightDate:r,unit:l,onParsedValueChanged:a})=>{const{emit:s}=e.getCurrentInstance(),{pickerNs:i}=e.inject(Ii),c=Q("date-range-picker"),{t:f,lang:u}=Ke(),d=r9(u),p=e.ref(),h=e.ref(),g=e.ref({endDate:null,selecting:!1}),m=k=>{g.value=k},b=(k=!1)=>{const w=e.unref(p),E=e.unref(h);zu([w,E])&&s("pick",[w,E],k)},y=k=>{g.value.selecting=k,k||(g.value.endDate=null)},C=()=>{const[k,w]=wk(e.unref(n),{lang:e.unref(u),unit:l,unlinkPanels:t.unlinkPanels});p.value=void 0,h.value=void 0,o.value=k,r.value=w};return e.watch(n,k=>{k&&C()},{immediate:!0}),e.watch(()=>t.parsedValue,k=>{if(Re(k)&&k.length===2){const[w,E]=k;p.value=w,o.value=w,h.value=E,a(e.unref(p),e.unref(h))}else C()},{immediate:!0}),{minDate:p,maxDate:h,rangeState:g,lang:u,ppNs:i,drpNs:c,handleChangeRange:m,handleRangeConfirm:b,handleShortcutClick:d,onSelect:y,t:f}},l9=["onClick"],a9=["aria-label"],s9=["aria-label"],i9=["disabled","aria-label"],c9=["disabled","aria-label"],d9=["disabled","aria-label"],f9=["disabled","aria-label"],u9=["aria-label"],p9=["aria-label"],Pi="month";var m9=se(e.defineComponent({__name:"panel-date-range",props:o9,emits:["pick","set-picker-option","calendar-change","panel-change"],setup(t,{emit:n}){const o=t,r=e.inject("EP_PICKER_BASE"),{disabledDate:l,cellClassName:a,format:s,defaultTime:i,clearable:c}=r.props,f=e.toRef(r.props,"shortcuts"),u=e.toRef(r.props,"defaultValue"),{lang:d}=Ke(),p=e.ref(ve().locale(d.value)),h=e.ref(ve().locale(d.value).add(1,Pi)),{minDate:g,maxDate:m,rangeState:b,ppNs:y,drpNs:C,handleChangeRange:k,handleRangeConfirm:w,handleShortcutClick:E,onSelect:S,t:_}=kk(o,{defaultValue:u,leftDate:p,rightDate:h,unit:Pi,onParsedValueChanged:G}),B=e.ref({min:null,max:null}),M=e.ref({min:null,max:null}),P=e.computed(()=>`${p.value.year()} ${_("el.datepicker.year")} ${_(`el.datepicker.month${p.value.month()+1}`)}`),T=e.computed(()=>`${h.value.year()} ${_("el.datepicker.year")} ${_(`el.datepicker.month${h.value.month()+1}`)}`),I=e.computed(()=>p.value.year()),v=e.computed(()=>p.value.month()),O=e.computed(()=>h.value.year()),D=e.computed(()=>h.value.month()),z=e.computed(()=>!!f.value.length),$=e.computed(()=>B.value.min!==null?B.value.min:g.value?g.value.format(H.value):""),R=e.computed(()=>B.value.max!==null?B.value.max:m.value||g.value?(m.value||g.value).format(H.value):""),N=e.computed(()=>M.value.min!==null?M.value.min:g.value?g.value.format(x.value):""),A=e.computed(()=>M.value.max!==null?M.value.max:m.value||g.value?(m.value||g.value).format(x.value):""),x=e.computed(()=>o.timeFormat||nu(s)),H=e.computed(()=>o.dateFormat||tu(s)),K=j=>zu(j)&&(l?!l(j[0].toDate())&&!l(j[1].toDate()):!0),q=()=>{p.value=p.value.subtract(1,"year"),o.unlinkPanels||(h.value=p.value.add(1,"month")),ie("year")},ne=()=>{p.value=p.value.subtract(1,"month"),o.unlinkPanels||(h.value=p.value.add(1,"month")),ie("month")},Y=()=>{o.unlinkPanels?h.value=h.value.add(1,"year"):(p.value=p.value.add(1,"year"),h.value=p.value.add(1,"month")),ie("year")},Z=()=>{o.unlinkPanels?h.value=h.value.add(1,"month"):(p.value=p.value.add(1,"month"),h.value=p.value.add(1,"month")),ie("month")},U=()=>{p.value=p.value.add(1,"year"),ie("year")},re=()=>{p.value=p.value.add(1,"month"),ie("month")},te=()=>{h.value=h.value.subtract(1,"year"),ie("year")},oe=()=>{h.value=h.value.subtract(1,"month"),ie("month")},ie=j=>{n("panel-change",[p.value.toDate(),h.value.toDate()],j)},ye=e.computed(()=>{const j=(v.value+1)%12,ee=v.value+1>=12?1:0;return o.unlinkPanels&&new Date(I.value+ee,j)o.unlinkPanels&&O.value*12+D.value-(I.value*12+v.value+1)>=12),Te=e.computed(()=>!(g.value&&m.value&&!b.value.selecting&&zu([g.value,m.value]))),Pe=e.computed(()=>o.type==="datetime"||o.type==="datetimerange"),he=(j,ee)=>{if(!!j)return i?ve(i[ee]||i).locale(d.value).year(j.year()).month(j.month()).date(j.date()):j},Ce=(j,ee=!0)=>{const F=j.minDate,ue=j.maxDate,Be=he(F,0),xe=he(ue,1);m.value===xe&&g.value===Be||(n("calendar-change",[F.toDate(),ue&&ue.toDate()]),m.value=xe,g.value=Be,!(!ee||Pe.value)&&w())},ge=e.ref(!1),me=e.ref(!1),_e=()=>{ge.value=!1},$e=()=>{me.value=!1},Ae=(j,ee)=>{B.value[ee]=j;const F=ve(j,H.value).locale(d.value);if(F.isValid()){if(l&&l(F.toDate()))return;ee==="min"?(p.value=F,g.value=(g.value||p.value).year(F.year()).month(F.month()).date(F.date()),!o.unlinkPanels&&(!m.value||m.value.isBefore(g.value))&&(h.value=F.add(1,"month"),m.value=g.value.add(1,"month"))):(h.value=F,m.value=(m.value||h.value).year(F.year()).month(F.month()).date(F.date()),!o.unlinkPanels&&(!g.value||g.value.isAfter(m.value))&&(p.value=F.subtract(1,"month"),g.value=m.value.subtract(1,"month")))}},Oe=(j,ee)=>{B.value[ee]=null},ce=(j,ee)=>{M.value[ee]=j;const F=ve(j,x.value).locale(d.value);F.isValid()&&(ee==="min"?(ge.value=!0,g.value=(g.value||p.value).hour(F.hour()).minute(F.minute()).second(F.second()),(!m.value||m.value.isBefore(g.value))&&(m.value=g.value)):(me.value=!0,m.value=(m.value||h.value).hour(F.hour()).minute(F.minute()).second(F.second()),h.value=m.value,m.value&&m.value.isBefore(g.value)&&(g.value=m.value)))},Ee=(j,ee)=>{M.value[ee]=null,ee==="min"?(p.value=g.value,ge.value=!1):(h.value=m.value,me.value=!1)},Le=(j,ee,F)=>{M.value.min||(j&&(p.value=j,g.value=(g.value||p.value).hour(j.hour()).minute(j.minute()).second(j.second())),F||(ge.value=ee),(!m.value||m.value.isBefore(g.value))&&(m.value=g.value,h.value=j))},Xe=(j,ee,F)=>{M.value.max||(j&&(h.value=j,m.value=(m.value||h.value).hour(j.hour()).minute(j.minute()).second(j.second())),F||(me.value=ee),m.value&&m.value.isBefore(g.value)&&(g.value=m.value))},Qe=()=>{p.value=wk(e.unref(u),{lang:e.unref(d),unit:"month",unlinkPanels:o.unlinkPanels})[0],h.value=p.value.add(1,"month"),n("pick",null)},ke=j=>Re(j)?j.map(ee=>ee.format(s)):j.format(s),J=j=>Re(j)?j.map(ee=>ve(ee,s).locale(d.value)):ve(j,s).locale(d.value);function G(j,ee){if(o.unlinkPanels&&ee){const F=(j==null?void 0:j.year())||0,ue=(j==null?void 0:j.month())||0,Be=ee.year(),xe=ee.month();h.value=F===Be&&ue===xe?ee.add(1,Pi):ee}else h.value=p.value.add(1,Pi),ee&&(h.value=h.value.hour(ee.hour()).minute(ee.minute()).second(ee.second()))}return n("set-picker-option",["isValidValue",K]),n("set-picker-option",["parseUserInput",J]),n("set-picker-option",["formatToString",ke]),n("set-picker-option",["handleClear",Qe]),(j,ee)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(y).b(),e.unref(C).b(),{"has-sidebar":j.$slots.sidebar||e.unref(z),"has-time":e.unref(Pe)}])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(y).e("body-wrapper"))},[e.renderSlot(j.$slots,"sidebar",{class:e.normalizeClass(e.unref(y).e("sidebar"))}),e.unref(z)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(y).e("sidebar"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),(F,ue)=>(e.openBlock(),e.createElementBlock("button",{key:ue,type:"button",class:e.normalizeClass(e.unref(y).e("shortcut")),onClick:Be=>e.unref(E)(F)},e.toDisplayString(F.text),11,l9))),128))],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(y).e("body"))},[e.unref(Pe)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(C).e("time-header"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(C).e("editors-wrap"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(C).e("time-picker-wrap"))},[e.createVNode(e.unref(Ft),{size:"small",disabled:e.unref(b).selecting,placeholder:e.unref(_)("el.datepicker.startDate"),class:e.normalizeClass(e.unref(C).e("editor")),"model-value":e.unref($),"validate-event":!1,onInput:ee[0]||(ee[0]=F=>Ae(F,"min")),onChange:ee[1]||(ee[1]=F=>Oe(F,"min"))},null,8,["disabled","placeholder","class","model-value"])],2),e.withDirectives((e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(C).e("time-picker-wrap"))},[e.createVNode(e.unref(Ft),{size:"small",class:e.normalizeClass(e.unref(C).e("editor")),disabled:e.unref(b).selecting,placeholder:e.unref(_)("el.datepicker.startTime"),"model-value":e.unref(N),"validate-event":!1,onFocus:ee[2]||(ee[2]=F=>ge.value=!0),onInput:ee[3]||(ee[3]=F=>ce(F,"min")),onChange:ee[4]||(ee[4]=F=>Ee(F,"min"))},null,8,["class","disabled","placeholder","model-value"]),e.createVNode(e.unref(Ea),{visible:ge.value,format:e.unref(x),"datetime-role":"start","parsed-value":p.value,onPick:Le},null,8,["visible","format","parsed-value"])],2)),[[e.unref(Po),_e]])],2),e.createElementVNode("span",null,[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})]),e.createElementVNode("span",{class:e.normalizeClass([e.unref(C).e("editors-wrap"),"is-right"])},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(C).e("time-picker-wrap"))},[e.createVNode(e.unref(Ft),{size:"small",class:e.normalizeClass(e.unref(C).e("editor")),disabled:e.unref(b).selecting,placeholder:e.unref(_)("el.datepicker.endDate"),"model-value":e.unref(R),readonly:!e.unref(g),"validate-event":!1,onInput:ee[5]||(ee[5]=F=>Ae(F,"max")),onChange:ee[6]||(ee[6]=F=>Oe(F,"max"))},null,8,["class","disabled","placeholder","model-value","readonly"])],2),e.withDirectives((e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(C).e("time-picker-wrap"))},[e.createVNode(e.unref(Ft),{size:"small",class:e.normalizeClass(e.unref(C).e("editor")),disabled:e.unref(b).selecting,placeholder:e.unref(_)("el.datepicker.endTime"),"model-value":e.unref(A),readonly:!e.unref(g),"validate-event":!1,onFocus:ee[7]||(ee[7]=F=>e.unref(g)&&(me.value=!0)),onInput:ee[8]||(ee[8]=F=>ce(F,"max")),onChange:ee[9]||(ee[9]=F=>Ee(F,"max"))},null,8,["class","disabled","placeholder","model-value","readonly"]),e.createVNode(e.unref(Ea),{"datetime-role":"end",visible:me.value,format:e.unref(x),"parsed-value":h.value,onPick:Xe},null,8,["visible","format","parsed-value"])],2)),[[e.unref(Po),$e]])],2)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass([[e.unref(y).e("content"),e.unref(C).e("content")],"is-left"])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(C).e("header"))},[e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(y).e("icon-btn"),"d-arrow-left"]),"aria-label":e.unref(_)("el.datepicker.prevYear"),onClick:q},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(nl))]),_:1})],10,a9),e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(y).e("icon-btn"),"arrow-left"]),"aria-label":e.unref(_)("el.datepicker.prevMonth"),onClick:ne},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Yo))]),_:1})],10,s9),j.unlinkPanels?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:!e.unref(Ne),class:e.normalizeClass([[e.unref(y).e("icon-btn"),{"is-disabled":!e.unref(Ne)}],"d-arrow-right"]),"aria-label":e.unref(_)("el.datepicker.nextYear"),onClick:U},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(ol))]),_:1})],10,i9)):e.createCommentVNode("v-if",!0),j.unlinkPanels?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:!e.unref(ye),class:e.normalizeClass([[e.unref(y).e("icon-btn"),{"is-disabled":!e.unref(ye)}],"arrow-right"]),"aria-label":e.unref(_)("el.datepicker.nextMonth"),onClick:re},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})],10,c9)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",null,e.toDisplayString(e.unref(P)),1)],2),e.createVNode(Lu,{"selection-mode":"range",date:p.value,"min-date":e.unref(g),"max-date":e.unref(m),"range-state":e.unref(b),"disabled-date":e.unref(l),"cell-class-name":e.unref(a),onChangerange:e.unref(k),onPick:Ce,onSelect:e.unref(S)},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onSelect"])],2),e.createElementVNode("div",{class:e.normalizeClass([[e.unref(y).e("content"),e.unref(C).e("content")],"is-right"])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(C).e("header"))},[j.unlinkPanels?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:!e.unref(Ne),class:e.normalizeClass([[e.unref(y).e("icon-btn"),{"is-disabled":!e.unref(Ne)}],"d-arrow-left"]),"aria-label":e.unref(_)("el.datepicker.prevYear"),onClick:te},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(nl))]),_:1})],10,d9)):e.createCommentVNode("v-if",!0),j.unlinkPanels?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",disabled:!e.unref(ye),class:e.normalizeClass([[e.unref(y).e("icon-btn"),{"is-disabled":!e.unref(ye)}],"arrow-left"]),"aria-label":e.unref(_)("el.datepicker.prevMonth"),onClick:oe},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Yo))]),_:1})],10,f9)):e.createCommentVNode("v-if",!0),e.createElementVNode("button",{type:"button","aria-label":e.unref(_)("el.datepicker.nextYear"),class:e.normalizeClass([e.unref(y).e("icon-btn"),"d-arrow-right"]),onClick:Y},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(ol))]),_:1})],10,u9),e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(y).e("icon-btn"),"arrow-right"]),"aria-label":e.unref(_)("el.datepicker.nextMonth"),onClick:Z},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})],10,p9),e.createElementVNode("div",null,e.toDisplayString(e.unref(T)),1)],2),e.createVNode(Lu,{"selection-mode":"range",date:h.value,"min-date":e.unref(g),"max-date":e.unref(m),"range-state":e.unref(b),"disabled-date":e.unref(l),"cell-class-name":e.unref(a),onChangerange:e.unref(k),onPick:Ce,onSelect:e.unref(S)},null,8,["date","min-date","max-date","range-state","disabled-date","cell-class-name","onChangerange","onSelect"])],2)],2)],2),e.unref(Pe)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(y).e("footer"))},[e.unref(c)?(e.openBlock(),e.createBlock(e.unref(At),{key:0,text:"",size:"small",class:e.normalizeClass(e.unref(y).e("link-btn")),onClick:Qe},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(_)("el.datepicker.clear")),1)]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.createVNode(e.unref(At),{plain:"",size:"small",class:e.normalizeClass(e.unref(y).e("link-btn")),disabled:e.unref(Te),onClick:ee[10]||(ee[10]=F=>e.unref(w)(!1))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(_)("el.datepicker.confirm")),1)]),_:1},8,["class","disabled"])],2)):e.createCommentVNode("v-if",!0)],2))}}),[["__file","panel-date-range.vue"]]);const h9=le({...bk}),g9=["pick","set-picker-option","calendar-change"],y9=({unlinkPanels:t,leftDate:n,rightDate:o})=>{const{t:r}=Ke(),l=()=>{n.value=n.value.subtract(1,"year"),t.value||(o.value=o.value.subtract(1,"year"))},a=()=>{t.value||(n.value=n.value.add(1,"year")),o.value=o.value.add(1,"year")},s=()=>{n.value=n.value.add(1,"year")},i=()=>{o.value=o.value.subtract(1,"year")},c=e.computed(()=>`${n.value.year()} ${r("el.datepicker.year")}`),f=e.computed(()=>`${o.value.year()} ${r("el.datepicker.year")}`),u=e.computed(()=>n.value.year()),d=e.computed(()=>o.value.year()===n.value.year()?n.value.year()+1:o.value.year());return{leftPrevYear:l,rightNextYear:a,leftNextYear:s,rightPrevYear:i,leftLabel:c,rightLabel:f,leftYear:u,rightYear:d}},b9=["onClick"],C9=["disabled"],w9=["disabled"],Ri="year",k9=e.defineComponent({name:"DatePickerMonthRange"}),S9=e.defineComponent({...k9,props:h9,emits:g9,setup(t,{emit:n}){const o=t,{lang:r}=Ke(),l=e.inject("EP_PICKER_BASE"),{shortcuts:a,disabledDate:s,format:i}=l.props,c=e.toRef(l.props,"defaultValue"),f=e.ref(ve().locale(r.value)),u=e.ref(ve().locale(r.value).add(1,Ri)),{minDate:d,maxDate:p,rangeState:h,ppNs:g,drpNs:m,handleChangeRange:b,handleRangeConfirm:y,handleShortcutClick:C,onSelect:k}=kk(o,{defaultValue:c,leftDate:f,rightDate:u,unit:Ri,onParsedValueChanged:z}),w=e.computed(()=>!!a.length),{leftPrevYear:E,rightNextYear:S,leftNextYear:_,rightPrevYear:B,leftLabel:M,rightLabel:P,leftYear:T,rightYear:I}=y9({unlinkPanels:e.toRef(o,"unlinkPanels"),leftDate:f,rightDate:u}),v=e.computed(()=>o.unlinkPanels&&I.value>T.value+1),O=($,R=!0)=>{const N=$.minDate,A=$.maxDate;p.value===A&&d.value===N||(n("calendar-change",[N.toDate(),A&&A.toDate()]),p.value=A,d.value=N,R&&y())},D=$=>$.map(R=>R.format(i));function z($,R){if(o.unlinkPanels&&R){const N=($==null?void 0:$.year())||0,A=R.year();u.value=N===A?R.add(1,Ri):R}else u.value=f.value.add(1,Ri)}return n("set-picker-option",["formatToString",D]),($,R)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(g).b(),e.unref(m).b(),{"has-sidebar":Boolean($.$slots.sidebar)||e.unref(w)}])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(g).e("body-wrapper"))},[e.renderSlot($.$slots,"sidebar",{class:e.normalizeClass(e.unref(g).e("sidebar"))}),e.unref(w)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(g).e("sidebar"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),(N,A)=>(e.openBlock(),e.createElementBlock("button",{key:A,type:"button",class:e.normalizeClass(e.unref(g).e("shortcut")),onClick:x=>e.unref(C)(N)},e.toDisplayString(N.text),11,b9))),128))],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(g).e("body"))},[e.createElementVNode("div",{class:e.normalizeClass([[e.unref(g).e("content"),e.unref(m).e("content")],"is-left"])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(m).e("header"))},[e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(g).e("icon-btn"),"d-arrow-left"]),onClick:R[0]||(R[0]=(...N)=>e.unref(E)&&e.unref(E)(...N))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(nl))]),_:1})],2),$.unlinkPanels?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:!e.unref(v),class:e.normalizeClass([[e.unref(g).e("icon-btn"),{[e.unref(g).is("disabled")]:!e.unref(v)}],"d-arrow-right"]),onClick:R[1]||(R[1]=(...N)=>e.unref(_)&&e.unref(_)(...N))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(ol))]),_:1})],10,C9)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",null,e.toDisplayString(e.unref(M)),1)],2),e.createVNode(xu,{"selection-mode":"range",date:f.value,"min-date":e.unref(d),"max-date":e.unref(p),"range-state":e.unref(h),"disabled-date":e.unref(s),onChangerange:e.unref(b),onPick:O,onSelect:e.unref(k)},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onSelect"])],2),e.createElementVNode("div",{class:e.normalizeClass([[e.unref(g).e("content"),e.unref(m).e("content")],"is-right"])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(m).e("header"))},[$.unlinkPanels?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",disabled:!e.unref(v),class:e.normalizeClass([[e.unref(g).e("icon-btn"),{"is-disabled":!e.unref(v)}],"d-arrow-left"]),onClick:R[2]||(R[2]=(...N)=>e.unref(B)&&e.unref(B)(...N))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(nl))]),_:1})],10,w9)):e.createCommentVNode("v-if",!0),e.createElementVNode("button",{type:"button",class:e.normalizeClass([e.unref(g).e("icon-btn"),"d-arrow-right"]),onClick:R[3]||(R[3]=(...N)=>e.unref(S)&&e.unref(S)(...N))},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(ol))]),_:1})],2),e.createElementVNode("div",null,e.toDisplayString(e.unref(P)),1)],2),e.createVNode(xu,{"selection-mode":"range",date:u.value,"min-date":e.unref(d),"max-date":e.unref(p),"range-state":e.unref(h),"disabled-date":e.unref(s),onChangerange:e.unref(b),onPick:O,onSelect:e.unref(k)},null,8,["date","min-date","max-date","range-state","disabled-date","onChangerange","onSelect"])],2)],2)],2)],2))}});var E9=se(S9,[["__file","panel-month-range.vue"]]);const N9=function(t){switch(t){case"daterange":case"datetimerange":return m9;case"monthrange":return E9;default:return n9}};ve.extend(Gw),ve.extend(CW),ve.extend(Qf),ve.extend(wW),ve.extend(kW),ve.extend(SW),ve.extend(EW),ve.extend(NW);var _9=e.defineComponent({name:"ElDatePicker",install:null,props:gk,emits:["update:modelValue"],setup(t,{expose:n,emit:o,slots:r}){const l=Q("picker-panel");e.provide("ElPopperOptions",e.reactive(e.toRef(t,"popperOptions"))),e.provide(Ii,{slots:r,pickerNs:l});const a=e.ref();n({focus:(c=!0)=>{var f;(f=a.value)==null||f.focus(c)},handleOpen:()=>{var c;(c=a.value)==null||c.handleOpen()},handleClose:()=>{var c;(c=a.value)==null||c.handleClose()}});const i=c=>{o("update:modelValue",c)};return()=>{var c;const f=(c=t.format)!=null?c:Sw[t.type]||Ir,u=N9(t.type);return e.createVNode(su,e.mergeProps(t,{format:f,type:t.type,ref:a,"onUpdate:modelValue":i}),{default:d=>e.createVNode(u,d,null),"range-separator":r["range-separator"]})}}});const Oi=_9;Oi.install=t=>{t.component(Oi.name,Oi)};const Sk=Oi,Fu=Symbol("elDescriptions");var $a=e.defineComponent({name:"ElDescriptionsCell",props:{cell:{type:Object},tag:{type:String,default:"td"},type:{type:String}},setup(){return{descriptions:e.inject(Fu,{})}},render(){var t,n,o,r,l,a,s;const i=cL(this.cell),c=(((t=this.cell)==null?void 0:t.dirs)||[]).map(E=>{const{dir:S,arg:_,modifiers:B,value:M}=E;return[S,M,_,B]}),{border:f,direction:u}=this.descriptions,d=u==="vertical",p=((r=(o=(n=this.cell)==null?void 0:n.children)==null?void 0:o.label)==null?void 0:r.call(o))||i.label,h=(s=(a=(l=this.cell)==null?void 0:l.children)==null?void 0:a.default)==null?void 0:s.call(a),g=i.span,m=i.align?`is-${i.align}`:"",b=i.labelAlign?`is-${i.labelAlign}`:m,y=i.className,C=i.labelClassName,k={width:kt(i.width),minWidth:kt(i.minWidth)},w=Q("descriptions");switch(this.type){case"label":return e.withDirectives(e.h(this.tag,{style:k,class:[w.e("cell"),w.e("label"),w.is("bordered-label",f),w.is("vertical-label",d),b,C],colSpan:d?g:1},p),c);case"content":return e.withDirectives(e.h(this.tag,{style:k,class:[w.e("cell"),w.e("content"),w.is("bordered-content",f),w.is("vertical-content",d),m,y],colSpan:d?g:g*2-1},h),c);default:return e.withDirectives(e.h("td",{style:k,class:[w.e("cell"),m],colSpan:g},[wt(p)?void 0:e.h("span",{class:[w.e("label"),C]},p),e.h("span",{class:[w.e("content"),y]},h)]),c)}}});const B9=le({row:{type:W(Array),default:()=>[]}}),$9={key:1},T9=e.defineComponent({name:"ElDescriptionsRow"}),v9=e.defineComponent({...T9,props:B9,setup(t){const n=e.inject(Fu,{});return(o,r)=>e.unref(n).direction==="vertical"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.row,(l,a)=>(e.openBlock(),e.createBlock(e.unref($a),{key:`tr1-${a}`,cell:l,tag:"th",type:"label"},null,8,["cell"]))),128))]),e.createElementVNode("tr",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.row,(l,a)=>(e.openBlock(),e.createBlock(e.unref($a),{key:`tr2-${a}`,cell:l,tag:"td",type:"content"},null,8,["cell"]))),128))])],64)):(e.openBlock(),e.createElementBlock("tr",$9,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.row,(l,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:`tr3-${a}`},[e.unref(n).border?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(e.unref($a),{cell:l,tag:"td",type:"label"},null,8,["cell"]),e.createVNode(e.unref($a),{cell:l,tag:"td",type:"content"},null,8,["cell"])],64)):(e.openBlock(),e.createBlock(e.unref($a),{key:1,cell:l,tag:"td",type:"both"},null,8,["cell"]))],64))),128))]))}});var V9=se(v9,[["__file","descriptions-row.vue"]]);const Ek=le({border:{type:Boolean,default:!1},column:{type:Number,default:3},direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},size:Vt,title:{type:String,default:""},extra:{type:String,default:""}}),M9=e.defineComponent({name:"ElDescriptions"}),I9=e.defineComponent({...M9,props:Ek,setup(t){const n=t,o=Q("descriptions"),r=St(),l=e.useSlots();e.provide(Fu,n);const a=e.computed(()=>[o.b(),o.m(r.value)]),s=(c,f,u,d=!1)=>(c.props||(c.props={}),f>u&&(c.props.span=u),d&&(c.props.span=f),c),i=()=>{if(!l.default)return[];const c=Er(l.default()).filter(h=>{var g;return((g=h==null?void 0:h.type)==null?void 0:g.name)==="ElDescriptionsItem"}),f=[];let u=[],d=n.column,p=0;return c.forEach((h,g)=>{var m;const b=((m=h.props)==null?void 0:m.span)||1;if(gd?d:b),g===c.length-1){const y=n.column-p%n.column;u.push(s(h,y,d,!0)),f.push(u);return}b(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(a))},[c.title||c.extra||c.$slots.title||c.$slots.extra?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).e("header"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("title"))},[e.renderSlot(c.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(c.title),1)])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("extra"))},[e.renderSlot(c.$slots,"extra",{},()=>[e.createTextVNode(e.toDisplayString(c.extra),1)])],2)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("body"))},[e.createElementVNode("table",{class:e.normalizeClass([e.unref(o).e("table"),e.unref(o).is("bordered",c.border)])},[e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i(),(u,d)=>(e.openBlock(),e.createBlock(V9,{key:d,row:u},null,8,["row"]))),128))])],2)],2)],2))}});var P9=se(I9,[["__file","description.vue"]]);const R9=le({label:{type:String,default:""},span:{type:Number,default:1},width:{type:[String,Number],default:""},minWidth:{type:[String,Number],default:""},align:{type:String,default:"left"},labelAlign:{type:String,default:""},className:{type:String,default:""},labelClassName:{type:String,default:""}});var Nk=e.defineComponent({name:"ElDescriptionsItem",props:R9});const _k=Me(P9,{DescriptionsItem:Nk}),Bk=ht(Nk),$k=le({mask:{type:Boolean,default:!0},customMaskEvent:{type:Boolean,default:!1},overlayClass:{type:W([String,Array,Object])},zIndex:{type:W([String,Number])}}),Tk={click:t=>t instanceof MouseEvent},O9="overlay";var A9=e.defineComponent({name:"ElOverlay",props:$k,emits:Tk,setup(t,{slots:n,emit:o}){const r=Q(O9),l=c=>{o("click",c)},{onClick:a,onMousedown:s,onMouseup:i}=Ws(t.customMaskEvent?void 0:l);return()=>t.mask?e.createVNode("div",{class:[r.b(),t.overlayClass],style:{zIndex:t.zIndex},onClick:a,onMousedown:s,onMouseup:i},[e.renderSlot(n,"default")],In.STYLE|In.CLASS|In.PROPS,["onClick","onMouseup","onMousedown"]):e.h("div",{class:t.overlayClass,style:{zIndex:t.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[e.renderSlot(n,"default")])}});const Ai=A9,Hu=Symbol("dialogInjectionKey"),vk=le({center:Boolean,alignCenter:Boolean,closeIcon:{type:ot},customClass:{type:String,default:""},draggable:Boolean,fullscreen:Boolean,showClose:{type:Boolean,default:!0},title:{type:String,default:""},ariaLevel:{type:String,default:"2"}}),z9={close:()=>!0},D9=["aria-level"],L9=["aria-label"],x9=["id"],F9=e.defineComponent({name:"ElDialogContent"}),H9=e.defineComponent({...F9,props:vk,emits:z9,setup(t){const n=t,{t:o}=Ke(),{Close:r}=Ty,{dialogRef:l,headerRef:a,bodyId:s,ns:i,style:c}=e.inject(Hu),{focusTrapRef:f}=e.inject(Lf),u=e.computed(()=>[i.b(),i.is("fullscreen",n.fullscreen),i.is("draggable",n.draggable),i.is("align-center",n.alignCenter),{[i.m("center")]:n.center},n.customClass]),d=Ms(f,l),p=e.computed(()=>n.draggable);return Zd(l,a,p),(h,g)=>(e.openBlock(),e.createElementBlock("div",{ref:e.unref(d),class:e.normalizeClass(e.unref(u)),style:e.normalizeStyle(e.unref(c)),tabindex:"-1"},[e.createElementVNode("header",{ref_key:"headerRef",ref:a,class:e.normalizeClass(e.unref(i).e("header"))},[e.renderSlot(h.$slots,"header",{},()=>[e.createElementVNode("span",{role:"heading","aria-level":h.ariaLevel,class:e.normalizeClass(e.unref(i).e("title"))},e.toDisplayString(h.title),11,D9)]),h.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,"aria-label":e.unref(o)("el.dialog.close"),class:e.normalizeClass(e.unref(i).e("headerbtn")),type:"button",onClick:g[0]||(g[0]=m=>h.$emit("close"))},[e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(i).e("close"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.closeIcon||e.unref(r))))]),_:1},8,["class"])],10,L9)):e.createCommentVNode("v-if",!0)],2),e.createElementVNode("div",{id:e.unref(s),class:e.normalizeClass(e.unref(i).e("body"))},[e.renderSlot(h.$slots,"default")],10,x9),h.$slots.footer?(e.openBlock(),e.createElementBlock("footer",{key:0,class:e.normalizeClass(e.unref(i).e("footer"))},[e.renderSlot(h.$slots,"footer")],2)):e.createCommentVNode("v-if",!0)],6))}});var K9=se(H9,[["__file","dialog-content.vue"]]);const Ku=le({...vk,appendToBody:Boolean,appendTo:{type:W(String),default:"body"},beforeClose:{type:W(Function)},destroyOnClose:Boolean,closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:Boolean,modalClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:{type:Boolean,default:!1},headerAriaLevel:{type:String,default:"2"}}),Wu={open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[Ie]:t=>Tt(t),openAutoFocus:()=>!0,closeAutoFocus:()=>!0},ju=(t,n)=>{var o;const l=e.getCurrentInstance().emit,{nextZIndex:a}=$r();let s="";const i=rn(),c=rn(),f=e.ref(!1),u=e.ref(!1),d=e.ref(!1),p=e.ref((o=t.zIndex)!=null?o:a());let h,g;const m=ha("namespace",ll),b=e.computed(()=>{const D={},z=`--${m.value}-dialog`;return t.fullscreen||(t.top&&(D[`${z}-margin-top`]=t.top),t.width&&(D[`${z}-width`]=kt(t.width))),D}),y=e.computed(()=>t.alignCenter?{display:"flex"}:{});function C(){l("opened")}function k(){l("closed"),l(Ie,!1),t.destroyOnClose&&(d.value=!1)}function w(){l("close")}function E(){g==null||g(),h==null||h(),t.openDelay&&t.openDelay>0?{stop:h}=pr(()=>M(),t.openDelay):M()}function S(){h==null||h(),g==null||g(),t.closeDelay&&t.closeDelay>0?{stop:g}=pr(()=>P(),t.closeDelay):P()}function _(){function D(z){z||(u.value=!0,f.value=!1)}t.beforeClose?t.beforeClose(D):S()}function B(){t.closeOnClickModal&&_()}function M(){!He||(f.value=!0)}function P(){f.value=!1}function T(){l("openAutoFocus")}function I(){l("closeAutoFocus")}function v(D){var z;((z=D.detail)==null?void 0:z.focusReason)==="pointer"&&D.preventDefault()}t.lockScroll&&tf(f);function O(){t.closeOnPressEscape&&_()}return e.watch(()=>t.modelValue,D=>{D?(u.value=!1,E(),d.value=!0,p.value=wd(t.zIndex)?a():p.value++,e.nextTick(()=>{l("open"),n.value&&(n.value.scrollTop=0)})):f.value&&S()}),e.watch(()=>t.fullscreen,D=>{!n.value||(D?(s=n.value.style.transform,n.value.style.transform=""):n.value.style.transform=s)}),e.onMounted(()=>{t.modelValue&&(f.value=!0,d.value=!0,E())}),{afterEnter:C,afterLeave:k,beforeLeave:w,handleClose:_,onModalClick:B,close:S,doClose:P,onOpenAutoFocus:T,onCloseAutoFocus:I,onCloseRequested:O,onFocusoutPrevented:v,titleId:i,bodyId:c,closed:u,style:b,overlayDialogStyle:y,rendered:d,visible:f,zIndex:p}},W9=["aria-label","aria-labelledby","aria-describedby"],j9=e.defineComponent({name:"ElDialog",inheritAttrs:!1}),U9=e.defineComponent({...j9,props:Ku,emits:Wu,setup(t,{expose:n}){const o=t,r=e.useSlots();jn({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"},e.computed(()=>!!r.title)),jn({scope:"el-dialog",from:"custom-class",replacement:"class",version:"2.3.0",ref:"https://element-plus.org/en-US/component/dialog.html#attributes",type:"Attribute"},e.computed(()=>!!o.customClass));const l=Q("dialog"),a=e.ref(),s=e.ref(),i=e.ref(),{visible:c,titleId:f,bodyId:u,style:d,overlayDialogStyle:p,rendered:h,zIndex:g,afterEnter:m,afterLeave:b,beforeLeave:y,handleClose:C,onModalClick:k,onOpenAutoFocus:w,onCloseAutoFocus:E,onCloseRequested:S,onFocusoutPrevented:_}=ju(o,a);e.provide(Hu,{dialogRef:a,headerRef:s,bodyId:u,ns:l,rendered:h,style:d});const B=Ws(k),M=e.computed(()=>o.draggable&&!o.fullscreen);return n({visible:c,dialogContentRef:i}),(P,T)=>(e.openBlock(),e.createBlock(e.Teleport,{to:P.appendTo,disabled:P.appendTo!=="body"?!1:!P.appendToBody},[e.createVNode(e.Transition,{name:"dialog-fade",onAfterEnter:e.unref(m),onAfterLeave:e.unref(b),onBeforeLeave:e.unref(y),persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(e.unref(Ai),{"custom-mask-event":"",mask:P.modal,"overlay-class":P.modalClass,"z-index":e.unref(g)},{default:e.withCtx(()=>[e.createElementVNode("div",{role:"dialog","aria-modal":"true","aria-label":P.title||void 0,"aria-labelledby":P.title?void 0:e.unref(f),"aria-describedby":e.unref(u),class:e.normalizeClass(`${e.unref(l).namespace.value}-overlay-dialog`),style:e.normalizeStyle(e.unref(p)),onClick:T[0]||(T[0]=(...I)=>e.unref(B).onClick&&e.unref(B).onClick(...I)),onMousedown:T[1]||(T[1]=(...I)=>e.unref(B).onMousedown&&e.unref(B).onMousedown(...I)),onMouseup:T[2]||(T[2]=(...I)=>e.unref(B).onMouseup&&e.unref(B).onMouseup(...I))},[e.createVNode(e.unref(ci),{loop:"",trapped:e.unref(c),"focus-start-el":"container",onFocusAfterTrapped:e.unref(w),onFocusAfterReleased:e.unref(E),onFocusoutPrevented:e.unref(_),onReleaseRequested:e.unref(S)},{default:e.withCtx(()=>[e.unref(h)?(e.openBlock(),e.createBlock(K9,e.mergeProps({key:0,ref_key:"dialogContentRef",ref:i},P.$attrs,{"custom-class":P.customClass,center:P.center,"align-center":P.alignCenter,"close-icon":P.closeIcon,draggable:e.unref(M),fullscreen:P.fullscreen,"show-close":P.showClose,title:P.title,"aria-level":P.headerAriaLevel,onClose:e.unref(C)}),e.createSlots({header:e.withCtx(()=>[P.$slots.title?e.renderSlot(P.$slots,"title",{key:1}):e.renderSlot(P.$slots,"header",{key:0,close:e.unref(C),titleId:e.unref(f),titleClass:e.unref(l).e("title")})]),default:e.withCtx(()=>[e.renderSlot(P.$slots,"default")]),_:2},[P.$slots.footer?{name:"footer",fn:e.withCtx(()=>[e.renderSlot(P.$slots,"footer")])}:void 0]),1040,["custom-class","center","align-center","close-icon","draggable","fullscreen","show-close","title","aria-level","onClose"])):e.createCommentVNode("v-if",!0)]),_:3},8,["trapped","onFocusAfterTrapped","onFocusAfterReleased","onFocusoutPrevented","onReleaseRequested"])],46,W9)]),_:3},8,["mask","overlay-class","z-index"]),[[e.vShow,e.unref(c)]])]),_:3},8,["onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["to","disabled"]))}});var G9=se(U9,[["__file","dialog.vue"]]);const Vk=Me(G9),Mk=le({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},contentPosition:{type:String,values:["left","center","right"],default:"center"},borderStyle:{type:W(String),default:"solid"}}),q9=e.defineComponent({name:"ElDivider"}),Y9=e.defineComponent({...q9,props:Mk,setup(t){const n=t,o=Q("divider"),r=e.computed(()=>o.cssVar({"border-style":n.borderStyle}));return(l,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(o).b(),e.unref(o).m(l.direction)]),style:e.normalizeStyle(e.unref(r)),role:"separator"},[l.$slots.default&&l.direction!=="vertical"?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(o).e("text"),e.unref(o).is(l.contentPosition)])},[e.renderSlot(l.$slots,"default")],2)):e.createCommentVNode("v-if",!0)],6))}});var X9=se(Y9,[["__file","divider.vue"]]);const Uu=Me(X9),Ik=le({...Ku,direction:{type:String,default:"rtl",values:["ltr","rtl","ttb","btt"]},size:{type:[String,Number],default:"30%"},withHeader:{type:Boolean,default:!0},modalFade:{type:Boolean,default:!0},headerAriaLevel:{type:String,default:"2"}}),Pk=Wu,Z9=e.defineComponent({name:"ElDrawer",components:{ElOverlay:Ai,ElFocusTrap:ci,ElIcon:fe,Close:Hn},inheritAttrs:!1,props:Ik,emits:Pk,setup(t,{slots:n}){jn({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"},e.computed(()=>!!n.title)),jn({scope:"el-drawer",from:"custom-class",replacement:"class",version:"2.3.0",ref:"https://element-plus.org/en-US/component/drawer.html#attributes",type:"Attribute"},e.computed(()=>!!t.customClass));const o=e.ref(),r=e.ref(),l=Q("drawer"),{t:a}=Ke(),s=e.computed(()=>t.direction==="rtl"||t.direction==="ltr"),i=e.computed(()=>kt(t.size));return{...ju(t,o),drawerRef:o,focusStartRef:r,isHorizontal:s,drawerSize:i,ns:l,t:a}}}),J9=["aria-label","aria-labelledby","aria-describedby"],Q9=["id","aria-level"],e7=["aria-label"],t7=["id"];function n7(t,n,o,r,l,a){const s=e.resolveComponent("close"),i=e.resolveComponent("el-icon"),c=e.resolveComponent("el-focus-trap"),f=e.resolveComponent("el-overlay");return e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!t.appendToBody},[e.createVNode(e.Transition,{name:t.ns.b("fade"),onAfterEnter:t.afterEnter,onAfterLeave:t.afterLeave,onBeforeLeave:t.beforeLeave,persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(f,{mask:t.modal,"overlay-class":t.modalClass,"z-index":t.zIndex,onClick:t.onModalClick},{default:e.withCtx(()=>[e.createVNode(c,{loop:"",trapped:t.visible,"focus-trap-el":t.drawerRef,"focus-start-el":t.focusStartRef,onReleaseRequested:t.onCloseRequested},{default:e.withCtx(()=>[e.createElementVNode("div",e.mergeProps({ref:"drawerRef","aria-modal":"true","aria-label":t.title||void 0,"aria-labelledby":t.title?void 0:t.titleId,"aria-describedby":t.bodyId},t.$attrs,{class:[t.ns.b(),t.direction,t.visible&&"open",t.customClass],style:t.isHorizontal?"width: "+t.drawerSize:"height: "+t.drawerSize,role:"dialog",onClick:n[1]||(n[1]=e.withModifiers(()=>{},["stop"]))}),[e.createElementVNode("span",{ref:"focusStartRef",class:e.normalizeClass(t.ns.e("sr-focus")),tabindex:"-1"},null,2),t.withHeader?(e.openBlock(),e.createElementBlock("header",{key:0,class:e.normalizeClass(t.ns.e("header"))},[t.$slots.title?e.renderSlot(t.$slots,"title",{key:1},()=>[e.createCommentVNode(" DEPRECATED SLOT ")]):e.renderSlot(t.$slots,"header",{key:0,close:t.handleClose,titleId:t.titleId,titleClass:t.ns.e("title")},()=>[t.$slots.title?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("span",{key:0,id:t.titleId,role:"heading","aria-level":t.headerAriaLevel,class:e.normalizeClass(t.ns.e("title"))},e.toDisplayString(t.title),11,Q9))]),t.showClose?(e.openBlock(),e.createElementBlock("button",{key:2,"aria-label":t.t("el.drawer.close"),class:e.normalizeClass(t.ns.e("close-btn")),type:"button",onClick:n[0]||(n[0]=(...u)=>t.handleClose&&t.handleClose(...u))},[e.createVNode(i,{class:e.normalizeClass(t.ns.e("close"))},{default:e.withCtx(()=>[e.createVNode(s)]),_:1},8,["class"])],10,e7)):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0),t.rendered?(e.openBlock(),e.createElementBlock("div",{key:1,id:t.bodyId,class:e.normalizeClass(t.ns.e("body"))},[e.renderSlot(t.$slots,"default")],10,t7)):e.createCommentVNode("v-if",!0),t.$slots.footer?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(t.ns.e("footer"))},[e.renderSlot(t.$slots,"footer")],2)):e.createCommentVNode("v-if",!0)],16,J9)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])]),_:3},8,["mask","overlay-class","z-index","onClick"]),[[e.vShow,t.visible]])]),_:3},8,["name","onAfterEnter","onAfterLeave","onBeforeLeave"])],8,["disabled"])}var o7=se(Z9,[["render",n7],["__file","drawer.vue"]]);const Rk=Me(o7),r7=e.defineComponent({inheritAttrs:!1});function l7(t,n,o,r,l,a){return e.renderSlot(t.$slots,"default")}var a7=se(r7,[["render",l7],["__file","collection.vue"]]);const s7=e.defineComponent({name:"ElCollectionItem",inheritAttrs:!1});function i7(t,n,o,r,l,a){return e.renderSlot(t.$slots,"default")}var c7=se(s7,[["render",i7],["__file","collection-item.vue"]]);const Ok="data-el-collection-item",Ak=t=>{const n=`El${t}Collection`,o=`${n}Item`,r=Symbol(n),l=Symbol(o),a={...a7,name:n,setup(){const i=e.ref(null),c=new Map,f=()=>{const u=e.unref(i);if(!u)return[];const d=Array.from(u.querySelectorAll(`[${Ok}]`));return[...c.values()].sort((h,g)=>d.indexOf(h.ref)-d.indexOf(g.ref))};e.provide(r,{itemMap:c,getItems:f,collectionRef:i})}},s={...c7,name:o,setup(i,{attrs:c}){const f=e.ref(null),u=e.inject(r,void 0);e.provide(l,{collectionItemRef:f}),e.onMounted(()=>{const d=e.unref(f);d&&u.itemMap.set(d,{ref:d,...c})}),e.onBeforeUnmount(()=>{const d=e.unref(f);u.itemMap.delete(d)})}};return{COLLECTION_INJECTION_KEY:r,COLLECTION_ITEM_INJECTION_KEY:l,ElCollection:a,ElCollectionItem:s}},d7=le({style:{type:W([String,Array,Object])},currentTabId:{type:W(String)},defaultCurrentTabId:String,loop:Boolean,dir:{type:String,values:["ltr","rtl"],default:"ltr"},orientation:{type:W(String)},onBlur:Function,onFocus:Function,onMousedown:Function}),{ElCollection:f7,ElCollectionItem:u7,COLLECTION_INJECTION_KEY:Gu,COLLECTION_ITEM_INJECTION_KEY:p7}=Ak("RovingFocusGroup"),qu=Symbol("elRovingFocusGroup"),zk=Symbol("elRovingFocusGroupItem"),m7={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"},h7=(t,n)=>{if(n!=="rtl")return t;switch(t){case pe.right:return pe.left;case pe.left:return pe.right;default:return t}},g7=(t,n,o)=>{const r=h7(t.key,o);if(!(n==="vertical"&&[pe.left,pe.right].includes(r))&&!(n==="horizontal"&&[pe.up,pe.down].includes(r)))return m7[r]},y7=(t,n)=>t.map((o,r)=>t[(r+n)%t.length]),Yu=t=>{const{activeElement:n}=document;for(const o of t)if(o===n||(o.focus(),n!==document.activeElement))return},Dk="currentTabIdChange",Lk="rovingFocusGroup.entryFocus",b7={bubbles:!1,cancelable:!0},C7=e.defineComponent({name:"ElRovingFocusGroupImpl",inheritAttrs:!1,props:d7,emits:[Dk,"entryFocus"],setup(t,{emit:n}){var o;const r=e.ref((o=t.currentTabId||t.defaultCurrentTabId)!=null?o:null),l=e.ref(!1),a=e.ref(!1),s=e.ref(null),{getItems:i}=e.inject(Gu,void 0),c=e.computed(()=>[{outline:"none"},t.style]),f=m=>{n(Dk,m)},u=()=>{l.value=!0},d=pt(m=>{var b;(b=t.onMousedown)==null||b.call(t,m)},()=>{a.value=!0}),p=pt(m=>{var b;(b=t.onFocus)==null||b.call(t,m)},m=>{const b=!e.unref(a),{target:y,currentTarget:C}=m;if(y===C&&b&&!e.unref(l)){const k=new Event(Lk,b7);if(C==null||C.dispatchEvent(k),!k.defaultPrevented){const w=i().filter(M=>M.focusable),E=w.find(M=>M.active),S=w.find(M=>M.id===e.unref(r)),B=[E,S,...w].filter(Boolean).map(M=>M.ref);Yu(B)}}a.value=!1}),h=pt(m=>{var b;(b=t.onBlur)==null||b.call(t,m)},()=>{l.value=!1}),g=(...m)=>{n("entryFocus",...m)};e.provide(qu,{currentTabbedId:e.readonly(r),loop:e.toRef(t,"loop"),tabIndex:e.computed(()=>e.unref(l)?-1:0),rovingFocusGroupRef:s,rovingFocusGroupRootStyle:c,orientation:e.toRef(t,"orientation"),dir:e.toRef(t,"dir"),onItemFocus:f,onItemShiftTab:u,onBlur:h,onFocus:p,onMousedown:d}),e.watch(()=>t.currentTabId,m=>{r.value=m!=null?m:null}),rt(s,Lk,g)}});function w7(t,n,o,r,l,a){return e.renderSlot(t.$slots,"default")}var k7=se(C7,[["render",w7],["__file","roving-focus-group-impl.vue"]]);const S7=e.defineComponent({name:"ElRovingFocusGroup",components:{ElFocusGroupCollection:f7,ElRovingFocusGroupImpl:k7}});function E7(t,n,o,r,l,a){const s=e.resolveComponent("el-roving-focus-group-impl"),i=e.resolveComponent("el-focus-group-collection");return e.openBlock(),e.createBlock(i,null,{default:e.withCtx(()=>[e.createVNode(s,e.normalizeProps(e.guardReactiveProps(t.$attrs)),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},16)]),_:3})}var N7=se(S7,[["render",E7],["__file","roving-focus-group.vue"]]);const _7=e.defineComponent({components:{ElRovingFocusCollectionItem:u7},props:{focusable:{type:Boolean,default:!0},active:{type:Boolean,default:!1}},emits:["mousedown","focus","keydown"],setup(t,{emit:n}){const{currentTabbedId:o,loop:r,onItemFocus:l,onItemShiftTab:a}=e.inject(qu,void 0),{getItems:s}=e.inject(Gu,void 0),i=rn(),c=e.ref(null),f=pt(h=>{n("mousedown",h)},h=>{t.focusable?l(e.unref(i)):h.preventDefault()}),u=pt(h=>{n("focus",h)},()=>{l(e.unref(i))}),d=pt(h=>{n("keydown",h)},h=>{const{key:g,shiftKey:m,target:b,currentTarget:y}=h;if(g===pe.tab&&m){a();return}if(b!==y)return;const C=g7(h);if(C){h.preventDefault();let w=s().filter(E=>E.focusable).map(E=>E.ref);switch(C){case"last":{w.reverse();break}case"prev":case"next":{C==="prev"&&w.reverse();const E=w.indexOf(y);w=r.value?y7(w,E+1):w.slice(E+1);break}}e.nextTick(()=>{Yu(w)})}}),p=e.computed(()=>o.value===e.unref(i));return e.provide(zk,{rovingFocusGroupItemRef:c,tabIndex:e.computed(()=>e.unref(p)?0:-1),handleMousedown:f,handleFocus:u,handleKeydown:d}),{id:i,handleKeydown:d,handleFocus:u,handleMousedown:f}}});function B7(t,n,o,r,l,a){const s=e.resolveComponent("el-roving-focus-collection-item");return e.openBlock(),e.createBlock(s,{id:t.id,focusable:t.focusable,active:t.active},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["id","focusable","active"])}var $7=se(_7,[["render",B7],["__file","roving-focus-item.vue"]]);const Ta=le({trigger:gl.trigger,effect:{...Pt.effect,default:"light"},type:{type:W(String)},placement:{type:W(String),default:"bottom"},popperOptions:{type:W(Object),default:()=>({})},id:String,size:{type:String,default:""},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:W([Number,String]),default:0},maxHeight:{type:W([Number,String]),default:""},popperClass:{type:String,default:""},disabled:{type:Boolean,default:!1},role:{type:String,default:"menu"},buttonProps:{type:W(Object)},teleported:Pt.teleported}),Xu=le({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:ot}}),xk=le({onKeydown:{type:W(Function)}}),Fk=[pe.down,pe.pageDown,pe.home],Zu=[pe.up,pe.pageUp,pe.end],Hk=[...Fk,...Zu],{ElCollection:Kk,ElCollectionItem:Wk,COLLECTION_INJECTION_KEY:jk,COLLECTION_ITEM_INJECTION_KEY:Uk}=Ak("Dropdown"),va=Symbol("elDropdown"),{ButtonGroup:T7}=At,v7=e.defineComponent({name:"ElDropdown",components:{ElButton:At,ElButtonGroup:T7,ElScrollbar:mo,ElDropdownCollection:Kk,ElTooltip:Zt,ElRovingFocusGroup:N7,ElOnlyChild:VC,ElIcon:fe,ArrowDown:qo},props:Ta,emits:["visible-change","click","command"],setup(t,{emit:n}){const o=e.getCurrentInstance(),r=Q("dropdown"),{t:l}=Ke(),a=e.ref(),s=e.ref(),i=e.ref(null),c=e.ref(null),f=e.ref(null),u=e.ref(null),d=e.ref(!1),p=[pe.enter,pe.space,pe.down],h=e.computed(()=>({maxHeight:kt(t.maxHeight)})),g=e.computed(()=>[r.m(E.value)]),m=e.computed(()=>Ho(t.trigger)),b=rn().value,y=e.computed(()=>t.id||b);e.watch([a,m],([$,R],[N])=>{var A,x,H;(A=N==null?void 0:N.$el)!=null&&A.removeEventListener&&N.$el.removeEventListener("pointerenter",_),(x=$==null?void 0:$.$el)!=null&&x.removeEventListener&&$.$el.removeEventListener("pointerenter",_),((H=$==null?void 0:$.$el)==null?void 0:H.addEventListener)&&R.includes("hover")&&$.$el.addEventListener("pointerenter",_)},{immediate:!0}),e.onBeforeUnmount(()=>{var $,R;(R=($=a.value)==null?void 0:$.$el)!=null&&R.removeEventListener&&a.value.$el.removeEventListener("pointerenter",_)});function C(){k()}function k(){var $;($=i.value)==null||$.onClose()}function w(){var $;($=i.value)==null||$.onOpen()}const E=St();function S(...$){n("command",...$)}function _(){var $,R;(R=($=a.value)==null?void 0:$.$el)==null||R.focus()}function B(){}function M(){const $=e.unref(c);m.value.includes("hover")&&($==null||$.focus()),u.value=null}function P($){u.value=$}function T($){d.value||($.preventDefault(),$.stopImmediatePropagation())}function I(){n("visible-change",!0)}function v($){($==null?void 0:$.type)==="keydown"&&c.value.focus()}function O(){n("visible-change",!1)}return e.provide(va,{contentRef:c,role:e.computed(()=>t.role),triggerId:y,isUsingKeyboard:d,onItemEnter:B,onItemLeave:M}),e.provide("elDropdown",{instance:o,dropdownSize:E,handleClick:C,commandHandler:S,trigger:e.toRef(t,"trigger"),hideOnClick:e.toRef(t,"hideOnClick")}),{t:l,ns:r,scrollbar:f,wrapStyle:h,dropdownTriggerKls:g,dropdownSize:E,triggerId:y,triggerKeys:p,currentTabId:u,handleCurrentTabIdChange:P,handlerMainButtonClick:$=>{n("click",$)},handleEntryFocus:T,handleClose:k,handleOpen:w,handleBeforeShowTooltip:I,handleShowTooltip:v,handleBeforeHideTooltip:O,onFocusAfterTrapped:$=>{var R,N;$.preventDefault(),(N=(R=c.value)==null?void 0:R.focus)==null||N.call(R,{preventScroll:!0})},popperRef:i,contentRef:c,triggeringElementRef:a,referenceElementRef:s}}});function V7(t,n,o,r,l,a){var s;const i=e.resolveComponent("el-dropdown-collection"),c=e.resolveComponent("el-roving-focus-group"),f=e.resolveComponent("el-scrollbar"),u=e.resolveComponent("el-only-child"),d=e.resolveComponent("el-tooltip"),p=e.resolveComponent("el-button"),h=e.resolveComponent("arrow-down"),g=e.resolveComponent("el-icon"),m=e.resolveComponent("el-button-group");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.ns.b(),t.ns.is("disabled",t.disabled)])},[e.createVNode(d,{ref:"popperRef",role:t.role,effect:t.effect,"fallback-placements":["bottom","top"],"popper-options":t.popperOptions,"gpu-acceleration":!1,"hide-after":t.trigger==="hover"?t.hideTimeout:0,"manual-mode":!0,placement:t.placement,"popper-class":[t.ns.e("popper"),t.popperClass],"reference-element":(s=t.referenceElementRef)==null?void 0:s.$el,trigger:t.trigger,"trigger-keys":t.triggerKeys,"trigger-target-el":t.contentRef,"show-after":t.trigger==="hover"?t.showTimeout:0,"stop-popper-mouse-event":!1,"virtual-ref":t.triggeringElementRef,"virtual-triggering":t.splitButton,disabled:t.disabled,transition:`${t.ns.namespace.value}-zoom-in-top`,teleported:t.teleported,pure:"",persistent:"",onBeforeShow:t.handleBeforeShowTooltip,onShow:t.handleShowTooltip,onBeforeHide:t.handleBeforeHideTooltip},e.createSlots({content:e.withCtx(()=>[e.createVNode(f,{ref:"scrollbar","wrap-style":t.wrapStyle,tag:"div","view-class":t.ns.e("list")},{default:e.withCtx(()=>[e.createVNode(c,{loop:t.loop,"current-tab-id":t.currentTabId,orientation:"horizontal",onCurrentTabIdChange:t.handleCurrentTabIdChange,onEntryFocus:t.handleEntryFocus},{default:e.withCtx(()=>[e.createVNode(i,null,{default:e.withCtx(()=>[e.renderSlot(t.$slots,"dropdown")]),_:3})]),_:3},8,["loop","current-tab-id","onCurrentTabIdChange","onEntryFocus"])]),_:3},8,["wrap-style","view-class"])]),_:2},[t.splitButton?void 0:{name:"default",fn:e.withCtx(()=>[e.createVNode(u,{id:t.triggerId,ref:"triggeringElementRef",role:"button",tabindex:t.tabindex},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["id","tabindex"])])}]),1032,["role","effect","popper-options","hide-after","placement","popper-class","reference-element","trigger","trigger-keys","trigger-target-el","show-after","virtual-ref","virtual-triggering","disabled","transition","teleported","onBeforeShow","onShow","onBeforeHide"]),t.splitButton?(e.openBlock(),e.createBlock(m,{key:0},{default:e.withCtx(()=>[e.createVNode(p,e.mergeProps({ref:"referenceElementRef"},t.buttonProps,{size:t.dropdownSize,type:t.type,disabled:t.disabled,tabindex:t.tabindex,onClick:t.handlerMainButtonClick}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},16,["size","type","disabled","tabindex","onClick"]),e.createVNode(p,e.mergeProps({id:t.triggerId,ref:"triggeringElementRef"},t.buttonProps,{role:"button",size:t.dropdownSize,type:t.type,class:t.ns.e("caret-button"),disabled:t.disabled,tabindex:t.tabindex,"aria-label":t.t("el.dropdown.toggleDropdown")}),{default:e.withCtx(()=>[e.createVNode(g,{class:e.normalizeClass(t.ns.e("icon"))},{default:e.withCtx(()=>[e.createVNode(h)]),_:1},8,["class"])]),_:1},16,["id","size","type","class","disabled","tabindex","aria-label"])]),_:3})):e.createCommentVNode("v-if",!0)],2)}var M7=se(v7,[["render",V7],["__file","dropdown.vue"]]);const I7=e.defineComponent({name:"DropdownItemImpl",components:{ElIcon:fe},props:Xu,emits:["pointermove","pointerleave","click","clickimpl"],setup(t,{emit:n}){const o=Q("dropdown"),{role:r}=e.inject(va,void 0),{collectionItemRef:l}=e.inject(Uk,void 0),{collectionItemRef:a}=e.inject(p7,void 0),{rovingFocusGroupItemRef:s,tabIndex:i,handleFocus:c,handleKeydown:f,handleMousedown:u}=e.inject(zk,void 0),d=Ms(l,a,s),p=e.computed(()=>r.value==="menu"?"menuitem":r.value==="navigation"?"link":"button"),h=pt(g=>{const{code:m}=g;if(m===pe.enter||m===pe.space)return g.preventDefault(),g.stopImmediatePropagation(),n("clickimpl",g),!0},f);return{ns:o,itemRef:d,dataset:{[Ok]:""},role:p,tabIndex:i,handleFocus:c,handleKeydown:h,handleMousedown:u}}}),P7=["aria-disabled","tabindex","role"];function R7(t,n,o,r,l,a){const s=e.resolveComponent("el-icon");return e.openBlock(),e.createElementBlock(e.Fragment,null,[t.divided?(e.openBlock(),e.createElementBlock("li",e.mergeProps({key:0,role:"separator",class:t.ns.bem("menu","item","divided")},t.$attrs),null,16)):e.createCommentVNode("v-if",!0),e.createElementVNode("li",e.mergeProps({ref:t.itemRef},{...t.dataset,...t.$attrs},{"aria-disabled":t.disabled,class:[t.ns.be("menu","item"),t.ns.is("disabled",t.disabled)],tabindex:t.tabIndex,role:t.role,onClick:n[0]||(n[0]=i=>t.$emit("clickimpl",i)),onFocus:n[1]||(n[1]=(...i)=>t.handleFocus&&t.handleFocus(...i)),onKeydown:n[2]||(n[2]=e.withModifiers((...i)=>t.handleKeydown&&t.handleKeydown(...i),["self"])),onMousedown:n[3]||(n[3]=(...i)=>t.handleMousedown&&t.handleMousedown(...i)),onPointermove:n[4]||(n[4]=i=>t.$emit("pointermove",i)),onPointerleave:n[5]||(n[5]=i=>t.$emit("pointerleave",i))}),[t.icon?(e.openBlock(),e.createBlock(s,{key:0},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon)))]),_:1})):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"default")],16,P7)],64)}var O7=se(I7,[["render",R7],["__file","dropdown-item-impl.vue"]]);const Gk=()=>{const t=e.inject("elDropdown",{}),n=e.computed(()=>t==null?void 0:t.dropdownSize);return{elDropdown:t,_elDropdownSize:n}},A7=e.defineComponent({name:"ElDropdownItem",components:{ElDropdownCollectionItem:Wk,ElRovingFocusItem:$7,ElDropdownItemImpl:O7},inheritAttrs:!1,props:Xu,emits:["pointermove","pointerleave","click"],setup(t,{emit:n,attrs:o}){const{elDropdown:r}=Gk(),l=e.getCurrentInstance(),a=e.ref(null),s=e.computed(()=>{var h,g;return(g=(h=e.unref(a))==null?void 0:h.textContent)!=null?g:""}),{onItemEnter:i,onItemLeave:c}=e.inject(va,void 0),f=pt(h=>(n("pointermove",h),h.defaultPrevented),_m(h=>{if(t.disabled){c(h);return}const g=h.currentTarget;g===document.activeElement||g.contains(document.activeElement)||(i(h),h.defaultPrevented||g==null||g.focus())})),u=pt(h=>(n("pointerleave",h),h.defaultPrevented),_m(h=>{c(h)})),d=pt(h=>{if(!t.disabled)return n("click",h),h.type!=="keydown"&&h.defaultPrevented},h=>{var g,m,b;if(t.disabled){h.stopImmediatePropagation();return}(g=r==null?void 0:r.hideOnClick)!=null&&g.value&&((m=r.handleClick)==null||m.call(r)),(b=r.commandHandler)==null||b.call(r,t.command,l,h)}),p=e.computed(()=>({...t,...o}));return{handleClick:d,handlePointerMove:f,handlePointerLeave:u,textContent:s,propsAndAttrs:p}}});function z7(t,n,o,r,l,a){var s;const i=e.resolveComponent("el-dropdown-item-impl"),c=e.resolveComponent("el-roving-focus-item"),f=e.resolveComponent("el-dropdown-collection-item");return e.openBlock(),e.createBlock(f,{disabled:t.disabled,"text-value":(s=t.textValue)!=null?s:t.textContent},{default:e.withCtx(()=>[e.createVNode(c,{focusable:!t.disabled},{default:e.withCtx(()=>[e.createVNode(i,e.mergeProps(t.propsAndAttrs,{onPointerleave:t.handlePointerLeave,onPointermove:t.handlePointerMove,onClickimpl:t.handleClick}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},16,["onPointerleave","onPointermove","onClickimpl"])]),_:3},8,["focusable"])]),_:3},8,["disabled","text-value"])}var qk=se(A7,[["render",z7],["__file","dropdown-item.vue"]]);const D7=e.defineComponent({name:"ElDropdownMenu",props:xk,setup(t){const n=Q("dropdown"),{_elDropdownSize:o}=Gk(),r=o.value,{focusTrapRef:l,onKeydown:a}=e.inject(Lf,void 0),{contentRef:s,role:i,triggerId:c}=e.inject(va,void 0),{collectionRef:f,getItems:u}=e.inject(jk,void 0),{rovingFocusGroupRef:d,rovingFocusGroupRootStyle:p,tabIndex:h,onBlur:g,onFocus:m,onMousedown:b}=e.inject(qu,void 0),{collectionRef:y}=e.inject(Gu,void 0),C=e.computed(()=>[n.b("menu"),n.bm("menu",r==null?void 0:r.value)]),k=Ms(s,f,l,d,y),w=pt(S=>{var _;(_=t.onKeydown)==null||_.call(t,S)},S=>{const{currentTarget:_,code:B,target:M}=S;if(_.contains(M),pe.tab===B&&S.stopImmediatePropagation(),S.preventDefault(),M!==e.unref(s)||!Hk.includes(B))return;const T=u().filter(I=>!I.disabled).map(I=>I.ref);Zu.includes(B)&&T.reverse(),Yu(T)});return{size:r,rovingFocusGroupRootStyle:p,tabIndex:h,dropdownKls:C,role:i,triggerId:c,dropdownListWrapperRef:k,handleKeydown:S=>{w(S),a(S)},onBlur:g,onFocus:m,onMousedown:b}}}),L7=["role","aria-labelledby"];function x7(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("ul",{ref:t.dropdownListWrapperRef,class:e.normalizeClass(t.dropdownKls),style:e.normalizeStyle(t.rovingFocusGroupRootStyle),tabindex:-1,role:t.role,"aria-labelledby":t.triggerId,onBlur:n[0]||(n[0]=(...s)=>t.onBlur&&t.onBlur(...s)),onFocus:n[1]||(n[1]=(...s)=>t.onFocus&&t.onFocus(...s)),onKeydown:n[2]||(n[2]=e.withModifiers((...s)=>t.handleKeydown&&t.handleKeydown(...s),["self"])),onMousedown:n[3]||(n[3]=e.withModifiers((...s)=>t.onMousedown&&t.onMousedown(...s),["self"]))},[e.renderSlot(t.$slots,"default")],46,L7)}var Yk=se(D7,[["render",x7],["__file","dropdown-menu.vue"]]);const Xk=Me(M7,{DropdownItem:qk,DropdownMenu:Yk}),Zk=ht(qk),Jk=ht(Yk),F7={viewBox:"0 0 79 86",version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink"},H7=["id"],K7=["stop-color"],W7=["stop-color"],j7=["id"],U7=["stop-color"],G7=["stop-color"],q7=["id"],Y7={id:"Illustrations",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},X7={id:"B-type",transform:"translate(-1268.000000, -535.000000)"},Z7={id:"Group-2",transform:"translate(1268.000000, 535.000000)"},J7=["fill"],Q7=["fill"],ej={id:"Group-Copy",transform:"translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)"},tj=["fill"],nj=["fill"],oj=["fill"],rj=["fill"],lj=["fill"],aj={id:"Rectangle-Copy-17",transform:"translate(53.000000, 45.000000)"},sj=["fill","xlink:href"],ij=["fill","mask"],cj=["fill"],dj=e.defineComponent({name:"ImgEmpty"}),fj=e.defineComponent({...dj,setup(t){const n=Q("empty"),o=rn();return(r,l)=>(e.openBlock(),e.createElementBlock("svg",F7,[e.createElementVNode("defs",null,[e.createElementVNode("linearGradient",{id:`linearGradient-1-${e.unref(o)}`,x1:"38.8503086%",y1:"0%",x2:"61.1496914%",y2:"100%"},[e.createElementVNode("stop",{"stop-color":`var(${e.unref(n).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,K7),e.createElementVNode("stop",{"stop-color":`var(${e.unref(n).cssVarBlockName("fill-color-4")})`,offset:"100%"},null,8,W7)],8,H7),e.createElementVNode("linearGradient",{id:`linearGradient-2-${e.unref(o)}`,x1:"0%",y1:"9.5%",x2:"100%",y2:"90.5%"},[e.createElementVNode("stop",{"stop-color":`var(${e.unref(n).cssVarBlockName("fill-color-1")})`,offset:"0%"},null,8,U7),e.createElementVNode("stop",{"stop-color":`var(${e.unref(n).cssVarBlockName("fill-color-6")})`,offset:"100%"},null,8,G7)],8,j7),e.createElementVNode("rect",{id:`path-3-${e.unref(o)}`,x:"0",y:"0",width:"17",height:"36"},null,8,q7)]),e.createElementVNode("g",Y7,[e.createElementVNode("g",X7,[e.createElementVNode("g",Z7,[e.createElementVNode("path",{id:"Oval-Copy-2",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(${e.unref(n).cssVarBlockName("fill-color-3")})`},null,8,J7),e.createElementVNode("polygon",{id:"Rectangle-Copy-14",fill:`var(${e.unref(n).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,Q7),e.createElementVNode("g",ej,[e.createElementVNode("polygon",{id:"Rectangle-Copy-10",fill:`var(${e.unref(n).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,tj),e.createElementVNode("polygon",{id:"Rectangle-Copy-11",fill:`var(${e.unref(n).cssVarBlockName("fill-color-5")})`,points:"-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43"},null,8,nj),e.createElementVNode("rect",{id:"Rectangle-Copy-12",fill:`url(#linearGradient-1-${e.unref(o)})`,transform:"translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) ",x:"38",y:"7",width:"17",height:"36"},null,8,oj),e.createElementVNode("polygon",{id:"Rectangle-Copy-13",fill:`var(${e.unref(n).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,rj)]),e.createElementVNode("rect",{id:"Rectangle-Copy-15",fill:`url(#linearGradient-2-${e.unref(o)})`,x:"13",y:"45",width:"40",height:"36"},null,8,lj),e.createElementVNode("g",aj,[e.createElementVNode("use",{id:"Mask",fill:`var(${e.unref(n).cssVarBlockName("fill-color-8")})`,transform:"translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) ","xlink:href":`#path-3-${e.unref(o)}`},null,8,sj),e.createElementVNode("polygon",{id:"Rectangle-Copy",fill:`var(${e.unref(n).cssVarBlockName("fill-color-9")})`,mask:`url(#mask-4-${e.unref(o)})`,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,ij)]),e.createElementVNode("polygon",{id:"Rectangle-Copy-18",fill:`var(${e.unref(n).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,cj)])])])]))}});var uj=se(fj,[["__file","img-empty.vue"]]);const Qk=le({image:{type:String,default:""},imageSize:Number,description:{type:String,default:""}}),pj=["src"],mj={key:1},hj=e.defineComponent({name:"ElEmpty"}),gj=e.defineComponent({...hj,props:Qk,setup(t){const n=t,{t:o}=Ke(),r=Q("empty"),l=e.computed(()=>n.description||o("el.table.emptyText")),a=e.computed(()=>({width:kt(n.imageSize)}));return(s,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(r).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).e("image")),style:e.normalizeStyle(e.unref(a))},[s.image?(e.openBlock(),e.createElementBlock("img",{key:0,src:s.image,ondragstart:"return false"},null,8,pj)):e.renderSlot(s.$slots,"image",{key:1},()=>[e.createVNode(uj)])],6),e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).e("description"))},[s.$slots.description?e.renderSlot(s.$slots,"description",{key:0}):(e.openBlock(),e.createElementBlock("p",mj,e.toDisplayString(e.unref(l)),1))],2),s.$slots.default?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).e("bottom"))},[e.renderSlot(s.$slots,"default")],2)):e.createCommentVNode("v-if",!0)],2))}});var yj=se(gj,[["__file","empty.vue"]]);const Ju=Me(yj),eS=le({urlList:{type:W(Array),default:()=>ut([])},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},minScale:{type:Number,default:.2},maxScale:{type:Number,default:7}}),tS={close:()=>!0,switch:t=>be(t),rotate:t=>be(t)},bj=["src"],Cj=e.defineComponent({name:"ElImageViewer"}),wj=e.defineComponent({...Cj,props:eS,emits:tS,setup(t,{expose:n,emit:o}){const r=t,l={CONTAIN:{name:"contain",icon:e.markRaw(kD)},ORIGINAL:{name:"original",icon:e.markRaw(FD)}},{t:a}=Ke(),s=Q("image-viewer"),{nextZIndex:i}=$r(),c=e.ref(),f=e.ref([]),u=e.effectScope(),d=e.ref(!0),p=e.ref(r.initialIndex),h=e.shallowRef(l.CONTAIN),g=e.ref({scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}),m=e.computed(()=>{const{urlList:N}=r;return N.length<=1}),b=e.computed(()=>p.value===0),y=e.computed(()=>p.value===r.urlList.length-1),C=e.computed(()=>r.urlList[p.value]),k=e.computed(()=>[s.e("btn"),s.e("prev"),s.is("disabled",!r.infinite&&b.value)]),w=e.computed(()=>[s.e("btn"),s.e("next"),s.is("disabled",!r.infinite&&y.value)]),E=e.computed(()=>{const{scale:N,deg:A,offsetX:x,offsetY:H,enableTransition:K}=g.value;let q=x/N,ne=H/N;switch(A%360){case 90:case-270:[q,ne]=[ne,-q];break;case 180:case-180:[q,ne]=[-q,-ne];break;case 270:case-90:[q,ne]=[-ne,q];break}const Y={transform:`scale(${N}) rotate(${A}deg) translate(${q}px, ${ne}px)`,transition:K?"transform .3s":""};return h.value.name===l.CONTAIN.name&&(Y.maxWidth=Y.maxHeight="100%"),Y}),S=e.computed(()=>be(r.zIndex)?r.zIndex:i());function _(){M(),o("close")}function B(){const N=jo(x=>{switch(x.code){case pe.esc:r.closeOnPressEscape&&_();break;case pe.space:O();break;case pe.left:z();break;case pe.up:R("zoomIn");break;case pe.right:$();break;case pe.down:R("zoomOut");break}}),A=jo(x=>{const H=x.deltaY||x.deltaX;R(H<0?"zoomIn":"zoomOut",{zoomRate:r.zoomRate,enableTransition:!1})});u.run(()=>{rt(document,"keydown",N),rt(document,"wheel",A)})}function M(){u.stop()}function P(){d.value=!1}function T(N){d.value=!1,N.target.alt=a("el.image.error")}function I(N){if(d.value||N.button!==0||!c.value)return;g.value.enableTransition=!1;const{offsetX:A,offsetY:x}=g.value,H=N.pageX,K=N.pageY,q=jo(Y=>{g.value={...g.value,offsetX:A+Y.pageX-H,offsetY:x+Y.pageY-K}}),ne=rt(document,"mousemove",q);rt(document,"mouseup",()=>{ne()}),N.preventDefault()}function v(){g.value={scale:1,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}function O(){if(d.value)return;const N=ra(l),A=Object.values(l),x=h.value.name,K=(A.findIndex(q=>q.name===x)+1)%N.length;h.value=l[N[K]],v()}function D(N){const A=r.urlList.length;p.value=(N+A)%A}function z(){b.value&&!r.infinite||D(p.value-1)}function $(){y.value&&!r.infinite||D(p.value+1)}function R(N,A={}){if(d.value)return;const{minScale:x,maxScale:H}=r,{zoomRate:K,rotateDeg:q,enableTransition:ne}={zoomRate:r.zoomRate,rotateDeg:90,enableTransition:!0,...A};switch(N){case"zoomOut":g.value.scale>x&&(g.value.scale=Number.parseFloat((g.value.scale/K).toFixed(3)));break;case"zoomIn":g.value.scale{e.nextTick(()=>{const N=f.value[0];N!=null&&N.complete||(d.value=!0)})}),e.watch(p,N=>{v(),o("switch",N)}),e.onMounted(()=>{var N,A;B(),(A=(N=c.value)==null?void 0:N.focus)==null||A.call(N)}),n({setActiveItem:D}),(N,A)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!N.teleported},[e.createVNode(e.Transition,{name:"viewer-fade",appear:""},{default:e.withCtx(()=>[e.createElementVNode("div",{ref_key:"wrapper",ref:c,tabindex:-1,class:e.normalizeClass(e.unref(s).e("wrapper")),style:e.normalizeStyle({zIndex:e.unref(S)})},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).e("mask")),onClick:A[0]||(A[0]=e.withModifiers(x=>N.hideOnClickModal&&_(),["self"]))},null,2),e.createCommentVNode(" CLOSE "),e.createElementVNode("span",{class:e.normalizeClass([e.unref(s).e("btn"),e.unref(s).e("close")]),onClick:_},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Hn))]),_:1})],2),e.createCommentVNode(" ARROW "),e.unref(m)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(k)),onClick:z},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Yo))]),_:1})],2),e.createElementVNode("span",{class:e.normalizeClass(e.unref(w)),onClick:$},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})],2)],64)),e.createCommentVNode(" ACTIONS "),e.createElementVNode("div",{class:e.normalizeClass([e.unref(s).e("btn"),e.unref(s).e("actions")])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).e("actions__inner"))},[e.createVNode(e.unref(fe),{onClick:A[1]||(A[1]=x=>R("zoomOut"))},{default:e.withCtx(()=>[e.createVNode(e.unref(oL))]),_:1}),e.createVNode(e.unref(fe),{onClick:A[2]||(A[2]=x=>R("zoomIn"))},{default:e.withCtx(()=>[e.createVNode(e.unref(By))]),_:1}),e.createElementVNode("i",{class:e.normalizeClass(e.unref(s).e("actions__divider"))},null,2),e.createVNode(e.unref(fe),{onClick:O},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(h).icon)))]),_:1}),e.createElementVNode("i",{class:e.normalizeClass(e.unref(s).e("actions__divider"))},null,2),e.createVNode(e.unref(fe),{onClick:A[3]||(A[3]=x=>R("anticlockwise"))},{default:e.withCtx(()=>[e.createVNode(e.unref(zD))]),_:1}),e.createVNode(e.unref(fe),{onClick:A[4]||(A[4]=x=>R("clockwise"))},{default:e.withCtx(()=>[e.createVNode(e.unref(LD))]),_:1})],2)],2),e.createCommentVNode(" CANVAS "),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).e("canvas"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.urlList,(x,H)=>e.withDirectives((e.openBlock(),e.createElementBlock("img",{ref_for:!0,ref:K=>f.value[H]=K,key:x,src:x,style:e.normalizeStyle(e.unref(E)),class:e.normalizeClass(e.unref(s).e("img")),onLoad:P,onError:T,onMousedown:I},null,46,bj)),[[e.vShow,H===p.value]])),128))],2),e.renderSlot(N.$slots,"default")],6)]),_:3})],8,["disabled"]))}});var kj=se(wj,[["__file","image-viewer.vue"]]);const Qu=Me(kj),nS=le({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:W([String,Object])},previewSrcList:{type:W(Array),default:()=>ut([])},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},minScale:{type:Number,default:.2},maxScale:{type:Number,default:7}}),oS={load:t=>t instanceof Event,error:t=>t instanceof Event,switch:t=>be(t),close:()=>!0,show:()=>!0},Sj=["src","loading"],Ej={key:0},Nj=e.defineComponent({name:"ElImage",inheritAttrs:!1}),_j=e.defineComponent({...Nj,props:nS,emits:oS,setup(t,{emit:n}){const o=t;let r="";const{t:l}=Ke(),a=Q("image"),s=e.useAttrs(),i=As(),c=e.ref(),f=e.ref(!1),u=e.ref(!0),d=e.ref(!1),p=e.ref(),h=e.ref(),g=He&&"loading"in HTMLImageElement.prototype;let m,b;const y=e.computed(()=>[a.e("inner"),w.value&&a.e("preview"),u.value&&a.is("loading")]),C=e.computed(()=>s.style),k=e.computed(()=>{const{fit:R}=o;return He&&R?{objectFit:R}:{}}),w=e.computed(()=>{const{previewSrcList:R}=o;return Array.isArray(R)&&R.length>0}),E=e.computed(()=>{const{previewSrcList:R,initialIndex:N}=o;let A=N;return N>R.length-1&&(A=0),A}),S=e.computed(()=>o.loading==="eager"?!1:!g&&o.loading==="lazy"||o.lazy),_=()=>{!He||(u.value=!0,f.value=!1,c.value=o.src)};function B(R){u.value=!1,f.value=!1,n("load",R)}function M(R){u.value=!1,f.value=!0,n("error",R)}function P(){k_(p.value,h.value)&&(_(),v())}const T=Mm(P,200,!0);async function I(){var R;if(!He)return;await e.nextTick();const{scrollContainer:N}=o;Mn(N)?h.value=N:De(N)&&N!==""?h.value=(R=document.querySelector(N))!=null?R:void 0:p.value&&(h.value=Hd(p.value)),h.value&&(m=rt(h,"scroll",T),setTimeout(()=>P(),100))}function v(){!He||!h.value||!T||(m==null||m(),h.value=void 0)}function O(R){if(!!R.ctrlKey){if(R.deltaY<0)return R.preventDefault(),!1;if(R.deltaY>0)return R.preventDefault(),!1}}function D(){!w.value||(b=rt("wheel",O,{passive:!1}),r=document.body.style.overflow,document.body.style.overflow="hidden",d.value=!0,n("show"))}function z(){b==null||b(),document.body.style.overflow=r,d.value=!1,n("close")}function $(R){n("switch",R)}return e.watch(()=>o.src,()=>{S.value?(u.value=!0,f.value=!1,v(),I()):_()}),e.onMounted(()=>{S.value?I():_()}),(R,N)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:p,class:e.normalizeClass([e.unref(a).b(),R.$attrs.class]),style:e.normalizeStyle(e.unref(C))},[f.value?e.renderSlot(R.$slots,"error",{key:0},()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("error"))},e.toDisplayString(e.unref(l)("el.image.error")),3)]):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[c.value!==void 0?(e.openBlock(),e.createElementBlock("img",e.mergeProps({key:0},e.unref(i),{src:c.value,loading:R.loading,style:e.unref(k),class:e.unref(y),onClick:D,onLoad:B,onError:M}),null,16,Sj)):e.createCommentVNode("v-if",!0),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(a).e("wrapper"))},[e.renderSlot(R.$slots,"placeholder",{},()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(a).e("placeholder"))},null,2)])],2)):e.createCommentVNode("v-if",!0)],64)),e.unref(w)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[d.value?(e.openBlock(),e.createBlock(e.unref(Qu),{key:0,"z-index":R.zIndex,"initial-index":e.unref(E),infinite:R.infinite,"zoom-rate":R.zoomRate,"min-scale":R.minScale,"max-scale":R.maxScale,"url-list":R.previewSrcList,"hide-on-click-modal":R.hideOnClickModal,teleported:R.previewTeleported,"close-on-press-escape":R.closeOnPressEscape,onClose:z,onSwitch:$},{default:e.withCtx(()=>[R.$slots.viewer?(e.openBlock(),e.createElementBlock("div",Ej,[e.renderSlot(R.$slots,"viewer")])):e.createCommentVNode("v-if",!0)]),_:3},8,["z-index","initial-index","infinite","zoom-rate","min-scale","max-scale","url-list","hide-on-click-modal","teleported","close-on-press-escape"])):e.createCommentVNode("v-if",!0)],64)):e.createCommentVNode("v-if",!0)],6))}});var Bj=se(_j,[["__file","image.vue"]]);const rS=Me(Bj),lS=le({id:{type:String,default:void 0},step:{type:Number,default:1},stepStrictly:Boolean,max:{type:Number,default:Number.POSITIVE_INFINITY},min:{type:Number,default:Number.NEGATIVE_INFINITY},modelValue:Number,readonly:Boolean,disabled:Boolean,size:Vt,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:"",values:["","right"]},valueOnClear:{type:[String,Number,null],validator:t=>t===null||be(t)||["min","max"].includes(t),default:null},name:String,label:String,placeholder:String,precision:{type:Number,validator:t=>t>=0&&t===Number.parseInt(`${t}`,10)},validateEvent:{type:Boolean,default:!0}}),aS={[at]:(t,n)=>n!==t,blur:t=>t instanceof FocusEvent,focus:t=>t instanceof FocusEvent,[qt]:t=>be(t)||wt(t),[Ie]:t=>be(t)||wt(t)},$j=["aria-label","onKeydown"],Tj=["aria-label","onKeydown"],vj=e.defineComponent({name:"ElInputNumber"}),Vj=e.defineComponent({...vj,props:lS,emits:aS,setup(t,{expose:n,emit:o}){const r=t,{t:l}=Ke(),a=Q("input-number"),s=e.ref(),i=e.reactive({currentValue:r.modelValue,userInput:null}),{formItem:c}=Xt(),f=e.computed(()=>be(r.modelValue)&&r.modelValue<=r.min),u=e.computed(()=>be(r.modelValue)&&r.modelValue>=r.max),d=e.computed(()=>{const v=y(r.step);return $t(r.precision)?Math.max(y(r.modelValue),v):(v>r.precision,r.precision)}),p=e.computed(()=>r.controls&&r.controlsPosition==="right"),h=St(),g=Yt(),m=e.computed(()=>{if(i.userInput!==null)return i.userInput;let v=i.currentValue;if(wt(v))return"";if(be(v)){if(Number.isNaN(v))return"";$t(r.precision)||(v=v.toFixed(r.precision))}return v}),b=(v,O)=>{if($t(O)&&(O=d.value),O===0)return Math.round(v);let D=String(v);const z=D.indexOf(".");if(z===-1||!D.replace(".","").split("")[z+O])return v;const N=D.length;return D.charAt(N-1)==="5"&&(D=`${D.slice(0,Math.max(0,N-1))}6`),Number.parseFloat(Number(D).toFixed(O))},y=v=>{if(wt(v))return 0;const O=v.toString(),D=O.indexOf(".");let z=0;return D!==-1&&(z=O.length-D-1),z},C=(v,O=1)=>be(v)?b(v+r.step*O):i.currentValue,k=()=>{if(r.readonly||g.value||u.value)return;const v=Number(m.value)||0,O=C(v);S(O),o(qt,i.currentValue)},w=()=>{if(r.readonly||g.value||f.value)return;const v=Number(m.value)||0,O=C(v,-1);S(O),o(qt,i.currentValue)},E=(v,O)=>{const{max:D,min:z,step:$,precision:R,stepStrictly:N,valueOnClear:A}=r;DD||xD?D:z,O&&o(Ie,x)),x},S=(v,O=!0)=>{var D;const z=i.currentValue,$=E(v);if(!O){o(Ie,$);return}z!==$&&(i.userInput=null,o(Ie,$),o(at,$,z),r.validateEvent&&((D=c==null?void 0:c.validate)==null||D.call(c,"change").catch(R=>void 0)),i.currentValue=$)},_=v=>{i.userInput=v;const O=v===""?null:Number(v);o(qt,O),S(O,!1)},B=v=>{const O=v!==""?Number(v):"";(be(O)&&!Number.isNaN(O)||v==="")&&S(O),i.userInput=null},M=()=>{var v,O;(O=(v=s.value)==null?void 0:v.focus)==null||O.call(v)},P=()=>{var v,O;(O=(v=s.value)==null?void 0:v.blur)==null||O.call(v)},T=v=>{o("focus",v)},I=v=>{var O;o("blur",v),r.validateEvent&&((O=c==null?void 0:c.validate)==null||O.call(c,"blur").catch(D=>void 0))};return e.watch(()=>r.modelValue,v=>{const O=E(i.userInput),D=E(v,!0);!be(O)&&(!O||O!==D)&&(i.currentValue=D,i.userInput=null)},{immediate:!0}),e.onMounted(()=>{var v;const{min:O,max:D,modelValue:z}=r,$=(v=s.value)==null?void 0:v.input;if($.setAttribute("role","spinbutton"),Number.isFinite(D)?$.setAttribute("aria-valuemax",String(D)):$.removeAttribute("aria-valuemax"),Number.isFinite(O)?$.setAttribute("aria-valuemin",String(O)):$.removeAttribute("aria-valuemin"),$.setAttribute("aria-valuenow",i.currentValue||i.currentValue===0?String(i.currentValue):""),$.setAttribute("aria-disabled",String(g.value)),!be(z)&&z!=null){let R=Number(z);Number.isNaN(R)&&(R=null),o(Ie,R)}}),e.onUpdated(()=>{var v,O;const D=(v=s.value)==null?void 0:v.input;D==null||D.setAttribute("aria-valuenow",`${(O=i.currentValue)!=null?O:""}`)}),n({focus:M,blur:P}),(v,O)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(a).b(),e.unref(a).m(e.unref(h)),e.unref(a).is("disabled",e.unref(g)),e.unref(a).is("without-controls",!v.controls),e.unref(a).is("controls-right",e.unref(p))]),onDragstart:O[1]||(O[1]=e.withModifiers(()=>{},["prevent"]))},[v.controls?e.withDirectives((e.openBlock(),e.createElementBlock("span",{key:0,role:"button","aria-label":e.unref(l)("el.inputNumber.decrease"),class:e.normalizeClass([e.unref(a).e("decrease"),e.unref(a).is("disabled",e.unref(f))]),onKeydown:e.withKeys(w,["enter"])},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.unref(p)?(e.openBlock(),e.createBlock(e.unref(qo),{key:0})):(e.openBlock(),e.createBlock(e.unref($D),{key:1}))]),_:1})],42,$j)),[[e.unref(Sa),w]]):e.createCommentVNode("v-if",!0),v.controls?e.withDirectives((e.openBlock(),e.createElementBlock("span",{key:1,role:"button","aria-label":e.unref(l)("el.inputNumber.increase"),class:e.normalizeClass([e.unref(a).e("increase"),e.unref(a).is("disabled",e.unref(u))]),onKeydown:e.withKeys(k,["enter"])},[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.unref(p)?(e.openBlock(),e.createBlock(e.unref(Ts),{key:0})):(e.openBlock(),e.createBlock(e.unref(Ny),{key:1}))]),_:1})],42,Tj)),[[e.unref(Sa),k]]):e.createCommentVNode("v-if",!0),e.createVNode(e.unref(Ft),{id:v.id,ref_key:"input",ref:s,type:"number",step:v.step,"model-value":e.unref(m),placeholder:v.placeholder,readonly:v.readonly,disabled:e.unref(g),size:e.unref(h),max:v.max,min:v.min,name:v.name,label:v.label,"validate-event":!1,onWheel:O[0]||(O[0]=e.withModifiers(()=>{},["prevent"])),onKeydown:[e.withKeys(e.withModifiers(k,["prevent"]),["up"]),e.withKeys(e.withModifiers(w,["prevent"]),["down"])],onBlur:I,onFocus:T,onInput:_,onChange:B},null,8,["id","step","model-value","placeholder","readonly","disabled","size","max","min","name","label","onKeydown"])],34))}});var Mj=se(Vj,[["__file","input-number.vue"]]);const ep=Me(Mj),sS=le({type:{type:String,values:["primary","success","warning","info","danger","default"],default:"default"},underline:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},href:{type:String,default:""},icon:{type:ot}}),iS={click:t=>t instanceof MouseEvent},Ij=["href"],Pj=e.defineComponent({name:"ElLink"}),Rj=e.defineComponent({...Pj,props:sS,emits:iS,setup(t,{emit:n}){const o=t,r=Q("link"),l=e.computed(()=>[r.b(),r.m(o.type),r.is("disabled",o.disabled),r.is("underline",o.underline&&!o.disabled)]);function a(s){o.disabled||n("click",s)}return(s,i)=>(e.openBlock(),e.createElementBlock("a",{class:e.normalizeClass(e.unref(l)),href:s.disabled||!s.href?void 0:s.href,onClick:a},[s.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.icon)))]),_:1})):e.createCommentVNode("v-if",!0),s.$slots.default?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(r).e("inner"))},[e.renderSlot(s.$slots,"default")],2)):e.createCommentVNode("v-if",!0),s.$slots.icon?e.renderSlot(s.$slots,"icon",{key:2}):e.createCommentVNode("v-if",!0)],10,Ij))}});var Oj=se(Rj,[["__file","link.vue"]]);const cS=Me(Oj);class Aj{constructor(n,o){this.parent=n,this.domNode=o,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(n){n===this.subMenuItems.length?n=0:n<0&&(n=this.subMenuItems.length-1),this.subMenuItems[n].focus(),this.subIndex=n}addListeners(){const n=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,o=>{o.addEventListener("keydown",r=>{let l=!1;switch(r.code){case pe.down:{this.gotoSubIndex(this.subIndex+1),l=!0;break}case pe.up:{this.gotoSubIndex(this.subIndex-1),l=!0;break}case pe.tab:{ja(n,"mouseleave");break}case pe.enter:case pe.space:{l=!0,r.currentTarget.click();break}}return l&&(r.preventDefault(),r.stopPropagation()),!1})})}}var zj=Aj;class Dj{constructor(n,o){this.domNode=n,this.submenu=null,this.submenu=null,this.init(o)}init(n){this.domNode.setAttribute("tabindex","0");const o=this.domNode.querySelector(`.${n}-menu`);o&&(this.submenu=new zj(this,o)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",n=>{let o=!1;switch(n.code){case pe.down:{ja(n.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),o=!0;break}case pe.up:{ja(n.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),o=!0;break}case pe.tab:{ja(n.currentTarget,"mouseleave");break}case pe.enter:case pe.space:{o=!0,n.currentTarget.click();break}}o&&n.preventDefault()})}}var Lj=Dj;class xj{constructor(n,o){this.domNode=n,this.init(o)}init(n){const o=this.domNode.childNodes;Array.from(o).forEach(r=>{r.nodeType===1&&new Lj(r,n)})}}var Fj=xj;const Hj=e.defineComponent({name:"ElMenuCollapseTransition",setup(){const t=Q("menu");return{listeners:{onBeforeEnter:o=>o.style.opacity="0.2",onEnter(o,r){so(o,`${t.namespace.value}-opacity-transition`),o.style.opacity="1",r()},onAfterEnter(o){un(o,`${t.namespace.value}-opacity-transition`),o.style.opacity=""},onBeforeLeave(o){o.dataset||(o.dataset={}),Fn(o,t.m("collapse"))?(un(o,t.m("collapse")),o.dataset.oldOverflow=o.style.overflow,o.dataset.scrollWidth=o.clientWidth.toString(),so(o,t.m("collapse"))):(so(o,t.m("collapse")),o.dataset.oldOverflow=o.style.overflow,o.dataset.scrollWidth=o.clientWidth.toString(),un(o,t.m("collapse"))),o.style.width=`${o.scrollWidth}px`,o.style.overflow="hidden"},onLeave(o){so(o,"horizontal-collapse-transition"),o.style.width=`${o.dataset.scrollWidth}px`}}}}});function Kj(t,n,o,r,l,a){return e.openBlock(),e.createBlock(e.Transition,e.mergeProps({mode:"out-in"},t.listeners),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},16)}var Wj=se(Hj,[["render",Kj],["__file","menu-collapse-transition.vue"]]);function dS(t,n){const o=e.computed(()=>{let l=t.parent;const a=[n.value];for(;l.type.name!=="ElMenu";)l.props.index&&a.unshift(l.props.index),l=l.parent;return a});return{parentMenu:e.computed(()=>{let l=t.parent;for(;l&&!["ElMenu","ElSubMenu"].includes(l.type.name);)l=l.parent;return l}),indexPath:o}}function jj(t){return e.computed(()=>{const o=t.backgroundColor;return o?new bw(o).shade(20).toString():""})}const fS=(t,n)=>{const o=Q("menu");return e.computed(()=>o.cssVarBlock({"text-color":t.textColor||"","hover-text-color":t.textColor||"","bg-color":t.backgroundColor||"","hover-bg-color":jj(t).value||"","active-color":t.activeTextColor||"",level:`${n}`}))},uS=le({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},teleported:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:ot},expandOpenIcon:{type:ot},collapseCloseIcon:{type:ot},collapseOpenIcon:{type:ot}}),zi="ElSubMenu";var tp=e.defineComponent({name:zi,props:uS,setup(t,{slots:n,expose:o}){jn({from:"popper-append-to-body",replacement:"teleported",scope:zi,version:"2.3.0",ref:"https://element-plus.org/en-US/component/menu.html#submenu-attributes"},e.computed(()=>t.popperAppendToBody!==void 0));const r=e.getCurrentInstance(),{indexPath:l,parentMenu:a}=dS(r,e.computed(()=>t.index)),s=Q("menu"),i=Q("sub-menu"),c=e.inject("rootMenu");c||vt(zi,"can not inject root menu");const f=e.inject(`subMenu:${a.value.uid}`);f||vt(zi,"can not inject sub menu");const u=e.ref({}),d=e.ref({});let p;const h=e.ref(!1),g=e.ref(),m=e.ref(null),b=e.computed(()=>B.value==="horizontal"&&C.value?"bottom-start":"right-start"),y=e.computed(()=>B.value==="horizontal"&&C.value||B.value==="vertical"&&!c.props.collapse?t.expandCloseIcon&&t.expandOpenIcon?S.value?t.expandOpenIcon:t.expandCloseIcon:qo:t.collapseCloseIcon&&t.collapseOpenIcon?S.value?t.collapseOpenIcon:t.collapseCloseIcon:on),C=e.computed(()=>f.level===0),k=e.computed(()=>{var z;const $=(z=t.teleported)!=null?z:t.popperAppendToBody;return $===void 0?C.value:$}),w=e.computed(()=>c.props.collapse?`${s.namespace.value}-zoom-in-left`:`${s.namespace.value}-zoom-in-top`),E=e.computed(()=>B.value==="horizontal"&&C.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"]),S=e.computed(()=>c.openedMenus.includes(t.index)),_=e.computed(()=>{let z=!1;return Object.values(u.value).forEach($=>{$.active&&(z=!0)}),Object.values(d.value).forEach($=>{$.active&&(z=!0)}),z}),B=e.computed(()=>c.props.mode),M=e.reactive({index:t.index,indexPath:l,active:_}),P=fS(c.props,f.level+1),T=()=>{var z,$,R;return(R=($=(z=m.value)==null?void 0:z.popperRef)==null?void 0:$.popperInstanceRef)==null?void 0:R.destroy()},I=z=>{z||T()},v=()=>{c.props.menuTrigger==="hover"&&c.props.mode==="horizontal"||c.props.collapse&&c.props.mode==="vertical"||t.disabled||c.handleSubMenuClick({index:t.index,indexPath:l.value,active:_.value})},O=(z,$=t.showTimeout)=>{var R;z.type!=="focus"&&(c.props.menuTrigger==="click"&&c.props.mode==="horizontal"||!c.props.collapse&&c.props.mode==="vertical"||t.disabled||(f.mouseInChild.value=!0,p==null||p(),{stop:p}=pr(()=>{c.openMenu(t.index,l.value)},$),k.value&&((R=a.value.vnode.el)==null||R.dispatchEvent(new MouseEvent("mouseenter")))))},D=(z=!1)=>{var $,R;c.props.menuTrigger==="click"&&c.props.mode==="horizontal"||!c.props.collapse&&c.props.mode==="vertical"||(p==null||p(),f.mouseInChild.value=!1,{stop:p}=pr(()=>!h.value&&c.closeMenu(t.index,l.value),t.hideTimeout),k.value&&z&&(($=r.parent)==null?void 0:$.type.name)==="ElSubMenu"&&((R=f.handleMouseleave)==null||R.call(f,!0)))};e.watch(()=>c.props.collapse,z=>I(Boolean(z)));{const z=R=>{d.value[R.index]=R},$=R=>{delete d.value[R.index]};e.provide(`subMenu:${r.uid}`,{addSubMenu:z,removeSubMenu:$,handleMouseleave:D,mouseInChild:h,level:f.level+1})}return o({opened:S}),e.onMounted(()=>{c.addSubMenu(M),f.addSubMenu(M)}),e.onBeforeUnmount(()=>{f.removeSubMenu(M),c.removeSubMenu(M)}),()=>{var z;const $=[(z=n.title)==null?void 0:z.call(n),e.h(fe,{class:i.e("icon-arrow"),style:{transform:S.value?t.expandCloseIcon&&t.expandOpenIcon||t.collapseCloseIcon&&t.collapseOpenIcon&&c.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>De(y.value)?e.h(r.appContext.components[y.value]):e.h(y.value)})],R=c.isMenuPopup?e.h(Zt,{ref:m,visible:S.value,effect:"light",pure:!0,offset:t.popperOffset,showArrow:!1,persistent:!0,popperClass:t.popperClass,placement:b.value,teleported:k.value,fallbackPlacements:E.value,transition:w.value,gpuAcceleration:!1},{content:()=>{var N;return e.h("div",{class:[s.m(B.value),s.m("popup-container"),t.popperClass],onMouseenter:A=>O(A,100),onMouseleave:()=>D(!0),onFocus:A=>O(A,100)},[e.h("ul",{class:[s.b(),s.m("popup"),s.m(`popup-${b.value}`)],style:P.value},[(N=n.default)==null?void 0:N.call(n)])])},default:()=>e.h("div",{class:i.e("title"),onClick:v},$)}):e.h(e.Fragment,{},[e.h("div",{class:i.e("title"),ref:g,onClick:v},$),e.h(Vi,{},{default:()=>{var N;return e.withDirectives(e.h("ul",{role:"menu",class:[s.b(),s.m("inline")],style:P.value},[(N=n.default)==null?void 0:N.call(n)]),[[e.vShow,S.value]])}})]);return e.h("li",{class:[i.b(),i.is("active",_.value),i.is("opened",S.value),i.is("disabled",t.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:S.value,onMouseenter:O,onMouseleave:()=>D(!0),onFocus:O},[R])}}});const pS=le({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:W(Array),default:()=>ut([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),np=t=>Array.isArray(t)&&t.every(n=>De(n)),mS={close:(t,n)=>De(t)&&np(n),open:(t,n)=>De(t)&&np(n),select:(t,n,o,r)=>De(t)&&np(n)&&nt(o)&&(r===void 0||r instanceof Promise)};var Uj=e.defineComponent({name:"ElMenu",props:pS,emits:mS,setup(t,{emit:n,slots:o,expose:r}){const l=e.getCurrentInstance(),a=l.appContext.config.globalProperties.$router,s=e.ref(),i=Q("menu"),c=Q("sub-menu"),f=e.ref(-1),u=e.ref(t.defaultOpeneds&&!t.collapse?t.defaultOpeneds.slice(0):[]),d=e.ref(t.defaultActive),p=e.ref({}),h=e.ref({}),g=e.computed(()=>t.mode==="horizontal"||t.mode==="vertical"&&t.collapse),m=()=>{const T=d.value&&p.value[d.value];if(!T||t.mode==="horizontal"||t.collapse)return;T.indexPath.forEach(v=>{const O=h.value[v];O&&b(v,O.indexPath)})},b=(T,I)=>{u.value.includes(T)||(t.uniqueOpened&&(u.value=u.value.filter(v=>I.includes(v))),u.value.push(T),n("open",T,I))},y=T=>{const I=u.value.indexOf(T);I!==-1&&u.value.splice(I,1)},C=(T,I)=>{y(T),n("close",T,I)},k=({index:T,indexPath:I})=>{u.value.includes(T)?C(T,I):b(T,I)},w=T=>{(t.mode==="horizontal"||t.collapse)&&(u.value=[]);const{index:I,indexPath:v}=T;if(!(wt(I)||wt(v)))if(t.router&&a){const O=T.route||I,D=a.push(O).then(z=>(z||(d.value=I),z));n("select",I,v,{index:I,indexPath:v,route:O},D)}else d.value=I,n("select",I,v,{index:I,indexPath:v})},E=T=>{const I=p.value,v=I[T]||d.value&&I[d.value]||I[t.defaultActive];v?d.value=v.index:d.value=T},S=()=>{var T,I;if(!s.value)return-1;const v=Array.from((I=(T=s.value)==null?void 0:T.childNodes)!=null?I:[]).filter(A=>A.nodeName!=="#comment"&&(A.nodeName!=="#text"||A.nodeValue)),O=64,D=Number.parseInt(getComputedStyle(s.value).paddingLeft,10),z=Number.parseInt(getComputedStyle(s.value).paddingRight,10),$=s.value.clientWidth-D-z;let R=0,N=0;return v.forEach((A,x)=>{R+=A.offsetWidth||0,R<=$-O&&(N=x+1)}),N===v.length?-1:N},_=(T,I=33.34)=>{let v;return()=>{v&&clearTimeout(v),v=setTimeout(()=>{T()},I)}};let B=!0;const M=()=>{const T=()=>{f.value=-1,e.nextTick(()=>{f.value=S()})};B?T():_(T)(),B=!1};e.watch(()=>t.defaultActive,T=>{p.value[T]||(d.value=""),E(T)}),e.watch(()=>t.collapse,T=>{T&&(u.value=[])}),e.watch(p.value,m);let P;e.watchEffect(()=>{t.mode==="horizontal"&&t.ellipsis?P=jt(s,M).stop:P==null||P()});{const T=D=>{h.value[D.index]=D},I=D=>{delete h.value[D.index]},v=D=>{p.value[D.index]=D},O=D=>{delete p.value[D.index]};e.provide("rootMenu",e.reactive({props:t,openedMenus:u,items:p,subMenus:h,activeIndex:d,isMenuPopup:g,addMenuItem:v,removeMenuItem:O,addSubMenu:T,removeSubMenu:I,openMenu:b,closeMenu:C,handleMenuItemClick:w,handleSubMenuClick:k})),e.provide(`subMenu:${l.uid}`,{addSubMenu:T,removeSubMenu:I,mouseInChild:e.ref(!1),level:0})}return e.onMounted(()=>{t.mode==="horizontal"&&new Fj(l.vnode.el,i.namespace.value)}),r({open:I=>{const{indexPath:v}=h.value[I];v.forEach(O=>b(O,v))},close:y,handleResize:M}),()=>{var T,I;let v=(I=(T=o.default)==null?void 0:T.call(o))!=null?I:[];const O=[];if(t.mode==="horizontal"&&s.value){const $=Er(v),R=f.value===-1?$:$.slice(0,f.value),N=f.value===-1?[]:$.slice(f.value);(N==null?void 0:N.length)&&t.ellipsis&&(v=R,O.push(e.h(tp,{index:"sub-menu-more",class:c.e("hide-arrow")},{title:()=>e.h(fe,{class:c.e("icon-more")},{default:()=>e.h(VD)}),default:()=>N})))}const D=fS(t,0),z=e.h("ul",{key:String(t.collapse),role:"menubar",ref:s,style:D.value,class:{[i.b()]:!0,[i.m(t.mode)]:!0,[i.m("collapse")]:t.collapse}},[...v,...O]);return t.collapseTransition&&t.mode==="vertical"?e.h(Wj,()=>z):z}}});const hS=le({index:{type:W([String,null]),default:null},route:{type:W([String,Object])},disabled:Boolean}),gS={click:t=>De(t.index)&&Array.isArray(t.indexPath)},op="ElMenuItem",Gj=e.defineComponent({name:op,components:{ElTooltip:Zt},props:hS,emits:gS,setup(t,{emit:n}){const o=e.getCurrentInstance(),r=e.inject("rootMenu"),l=Q("menu"),a=Q("menu-item");r||vt(op,"can not inject root menu");const{parentMenu:s,indexPath:i}=dS(o,e.toRef(t,"index")),c=e.inject(`subMenu:${s.value.uid}`);c||vt(op,"can not inject sub menu");const f=e.computed(()=>t.index===r.activeIndex),u=e.reactive({index:t.index,indexPath:i,active:f}),d=()=>{t.disabled||(r.handleMenuItemClick({index:t.index,indexPath:i.value,route:t.route}),n("click",u))};return e.onMounted(()=>{c.addSubMenu(u),r.addMenuItem(u)}),e.onBeforeUnmount(()=>{c.removeSubMenu(u),r.removeMenuItem(u)}),{parentMenu:s,rootMenu:r,active:f,nsMenu:l,nsMenuItem:a,handleClick:d}}});function qj(t,n,o,r,l,a){const s=e.resolveComponent("el-tooltip");return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass([t.nsMenuItem.b(),t.nsMenuItem.is("active",t.active),t.nsMenuItem.is("disabled",t.disabled)]),role:"menuitem",tabindex:"-1",onClick:n[0]||(n[0]=(...i)=>t.handleClick&&t.handleClick(...i))},[t.parentMenu.type.name==="ElMenu"&&t.rootMenu.props.collapse&&t.$slots.title?(e.openBlock(),e.createBlock(s,{key:0,effect:t.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:e.withCtx(()=>[e.renderSlot(t.$slots,"title")]),default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(t.nsMenu.be("tooltip","trigger"))},[e.renderSlot(t.$slots,"default")],2)]),_:3},8,["effect"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.renderSlot(t.$slots,"default"),e.renderSlot(t.$slots,"title")],64))],2)}var yS=se(Gj,[["render",qj],["__file","menu-item.vue"]]);const bS={title:String},Yj="ElMenuItemGroup",Xj=e.defineComponent({name:Yj,props:bS,setup(){return{ns:Q("menu-item-group")}}});function Zj(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass(t.ns.b())},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("title"))},[t.$slots.title?e.renderSlot(t.$slots,"title",{key:1}):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.title),1)],64))],2),e.createElementVNode("ul",null,[e.renderSlot(t.$slots,"default")])],2)}var CS=se(Xj,[["render",Zj],["__file","menu-item-group.vue"]]);const wS=Me(Uj,{MenuItem:yS,MenuItemGroup:CS,SubMenu:tp}),kS=ht(yS),SS=ht(CS),ES=ht(tp),NS=le({icon:{type:ot,default:()=>eD},title:String,content:{type:String,default:""}}),_S={back:()=>!0},Jj=["aria-label"],Qj=e.defineComponent({name:"ElPageHeader"}),eU=e.defineComponent({...Qj,props:NS,emits:_S,setup(t,{emit:n}){const o=e.useSlots(),{t:r}=Ke(),l=Q("page-header"),a=e.computed(()=>[l.b(),{[l.m("has-breadcrumb")]:!!o.breadcrumb,[l.m("has-extra")]:!!o.extra,[l.is("contentful")]:!!o.default}]);function s(){n("back")}return(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(a))},[i.$slots.breadcrumb?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("breadcrumb"))},[e.renderSlot(i.$slots,"breadcrumb")],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("header"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("left"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("back")),role:"button",tabindex:"0",onClick:s},[i.icon||i.$slots.icon?(e.openBlock(),e.createElementBlock("div",{key:0,"aria-label":i.title||e.unref(r)("el.pageHeader.title"),class:e.normalizeClass(e.unref(l).e("icon"))},[e.renderSlot(i.$slots,"icon",{},()=>[i.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.icon)))]),_:1})):e.createCommentVNode("v-if",!0)])],10,Jj)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("title"))},[e.renderSlot(i.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(i.title||e.unref(r)("el.pageHeader.title")),1)])],2)],2),e.createVNode(e.unref(Uu),{direction:"vertical"}),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("content"))},[e.renderSlot(i.$slots,"content",{},()=>[e.createTextVNode(e.toDisplayString(i.content),1)])],2)],2),i.$slots.extra?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(l).e("extra"))},[e.renderSlot(i.$slots,"extra")],2)):e.createCommentVNode("v-if",!0)],2),i.$slots.default?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).e("main"))},[e.renderSlot(i.$slots,"default")],2)):e.createCommentVNode("v-if",!0)],2))}});var tU=se(eU,[["__file","page-header.vue"]]);const BS=Me(tU),rp=Symbol("elPaginationKey"),nU=le({disabled:Boolean,currentPage:{type:Number,default:1},prevText:{type:String},prevIcon:{type:ot}}),oU={click:t=>t instanceof MouseEvent},rU=["disabled","aria-label","aria-disabled"],lU={key:0},aU=e.defineComponent({name:"ElPaginationPrev"}),sU=e.defineComponent({...aU,props:nU,emits:oU,setup(t){const n=t,{t:o}=Ke(),r=e.computed(()=>n.disabled||n.currentPage<=1);return(l,a)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:"btn-prev",disabled:e.unref(r),"aria-label":l.prevText||e.unref(o)("el.pagination.prev"),"aria-disabled":e.unref(r),onClick:a[0]||(a[0]=s=>l.$emit("click",s))},[l.prevText?(e.openBlock(),e.createElementBlock("span",lU,e.toDisplayString(l.prevText),1)):(e.openBlock(),e.createBlock(e.unref(fe),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.prevIcon)))]),_:1}))],8,rU))}});var iU=se(sU,[["__file","prev.vue"]]);const cU=le({disabled:Boolean,currentPage:{type:Number,default:1},pageCount:{type:Number,default:50},nextText:{type:String},nextIcon:{type:ot}}),dU=["disabled","aria-label","aria-disabled"],fU={key:0},uU=e.defineComponent({name:"ElPaginationNext"}),pU=e.defineComponent({...uU,props:cU,emits:["click"],setup(t){const n=t,{t:o}=Ke(),r=e.computed(()=>n.disabled||n.currentPage===n.pageCount||n.pageCount===0);return(l,a)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:"btn-next",disabled:e.unref(r),"aria-label":l.nextText||e.unref(o)("el.pagination.next"),"aria-disabled":e.unref(r),onClick:a[0]||(a[0]=s=>l.$emit("click",s))},[l.nextText?(e.openBlock(),e.createElementBlock("span",fU,e.toDisplayString(l.nextText),1)):(e.openBlock(),e.createBlock(e.unref(fe),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.nextIcon)))]),_:1}))],8,dU))}});var mU=se(pU,[["__file","next.vue"]]);const lp=Symbol("ElSelectGroup"),wl=Symbol("ElSelect");function hU(t,n){const o=e.inject(wl),r=e.inject(lp,{disabled:!1}),l=e.computed(()=>nt(t.value)),a=e.computed(()=>o.props.multiple?d(o.props.modelValue,t.value):p(t.value,o.props.modelValue)),s=e.computed(()=>{if(o.props.multiple){const m=o.props.modelValue||[];return!a.value&&m.length>=o.props.multipleLimit&&o.props.multipleLimit>0}else return!1}),i=e.computed(()=>t.label||(l.value?"":t.value)),c=e.computed(()=>t.value||t.label||""),f=e.computed(()=>t.disabled||n.groupDisabled||s.value),u=e.getCurrentInstance(),d=(m=[],b)=>{if(l.value){const y=o.props.valueKey;return m&&m.some(C=>e.toRaw(ct(C,y))===ct(b,y))}else return m&&m.includes(b)},p=(m,b)=>{if(l.value){const{valueKey:y}=o.props;return ct(m,y)===ct(b,y)}else return m===b},h=()=>{!t.disabled&&!r.disabled&&(o.hoverIndex=o.optionsArray.indexOf(u.proxy))};e.watch(()=>i.value,()=>{!t.created&&!o.props.remote&&o.setSelected()}),e.watch(()=>t.value,(m,b)=>{const{remote:y,valueKey:C}=o.props;if(Object.is(m,b)||(o.onOptionDestroy(b,u.proxy),o.onOptionCreate(u.proxy)),!t.created&&!y){if(C&&nt(m)&&nt(b)&&m[C]===b[C])return;o.setSelected()}}),e.watch(()=>r.disabled,()=>{n.groupDisabled=r.disabled},{immediate:!0});const{queryChange:g}=e.toRaw(o);return e.watch(g,m=>{const{query:b}=e.unref(m),y=new RegExp(yy(b),"i");n.visible=y.test(i.value)||t.created,n.visible||o.filteredOptionsCount--},{immediate:!0}),{select:o,currentLabel:i,currentValue:c,itemSelected:a,isDisabled:f,hoverItem:h}}const gU=e.defineComponent({name:"ElOption",componentName:"ElOption",props:{value:{required:!0,type:[String,Number,Boolean,Object]},label:[String,Number],created:Boolean,disabled:Boolean},setup(t){const n=Q("select"),o=rn(),r=e.computed(()=>[n.be("dropdown","item"),n.is("disabled",e.unref(i)),{selected:e.unref(s),hover:e.unref(d)}]),l=e.reactive({index:-1,groupDisabled:!1,visible:!0,hitState:!1,hover:!1}),{currentLabel:a,itemSelected:s,isDisabled:i,select:c,hoverItem:f}=hU(t,l),{visible:u,hover:d}=e.toRefs(l),p=e.getCurrentInstance().proxy;c.onOptionCreate(p),e.onBeforeUnmount(()=>{const g=p.value,{selected:m}=c,y=(c.props.multiple?m:[m]).some(C=>C.value===p.value);e.nextTick(()=>{c.cachedOptions.get(g)===p&&!y&&c.cachedOptions.delete(g)}),c.onOptionDestroy(g,p)});function h(){t.disabled!==!0&&l.groupDisabled!==!0&&c.handleOptionSelect(p)}return{ns:n,id:o,containerKls:r,currentLabel:a,itemSelected:s,isDisabled:i,select:c,hoverItem:f,visible:u,hover:d,selectOptionClick:h,states:l}}}),yU=["id","aria-disabled","aria-selected"];function bU(t,n,o,r,l,a){return e.withDirectives((e.openBlock(),e.createElementBlock("li",{id:t.id,class:e.normalizeClass(t.containerKls),role:"option","aria-disabled":t.isDisabled||void 0,"aria-selected":t.itemSelected,onMouseenter:n[0]||(n[0]=(...s)=>t.hoverItem&&t.hoverItem(...s)),onClick:n[1]||(n[1]=e.withModifiers((...s)=>t.selectOptionClick&&t.selectOptionClick(...s),["stop"]))},[e.renderSlot(t.$slots,"default",{},()=>[e.createElementVNode("span",null,e.toDisplayString(t.currentLabel),1)])],42,yU)),[[e.vShow,t.visible]])}var ap=se(gU,[["render",bU],["__file","option.vue"]]);const CU=e.defineComponent({name:"ElSelectDropdown",componentName:"ElSelectDropdown",setup(){const t=e.inject(wl),n=Q("select"),o=e.computed(()=>t.props.popperClass),r=e.computed(()=>t.props.multiple),l=e.computed(()=>t.props.fitInputWidth),a=e.ref("");function s(){var i;a.value=`${(i=t.selectWrapper)==null?void 0:i.offsetWidth}px`}return e.onMounted(()=>{s(),jt(t.selectWrapper,s)}),{ns:n,minWidth:a,popperClass:o,isMultiple:r,isFitInputWidth:l}}});function wU(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([t.ns.b("dropdown"),t.ns.is("multiple",t.isMultiple),t.popperClass]),style:e.normalizeStyle({[t.isFitInputWidth?"width":"minWidth"]:t.minWidth})},[t.$slots.header?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(t.ns.be("dropdown","header"))},[e.renderSlot(t.$slots,"header")],2)):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"default"),t.$slots.footer?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(t.ns.be("dropdown","footer"))},[e.renderSlot(t.$slots,"footer")],2)):e.createCommentVNode("v-if",!0)],6)}var kU=se(CU,[["render",wU],["__file","select-dropdown.vue"]]);function SU(t){const{t:n}=Ke();return e.reactive({options:new Map,cachedOptions:new Map,disabledOptions:new Map,createdLabel:null,createdSelected:!1,selected:t.multiple?[]:{},inputLength:20,inputWidth:0,optionsCount:0,filteredOptionsCount:0,visible:!1,selectedLabel:"",hoverIndex:-1,query:"",previousQuery:null,inputHovering:!1,cachedPlaceHolder:"",currentPlaceholder:n("el.select.placeholder"),menuVisibleOnFocus:!1,isOnComposition:!1,prefixWidth:11,mouseEnter:!1,focused:!1})}const EU=(t,n,o)=>{const{t:r}=Ke(),l=Q("select");jn({from:"suffixTransition",replacement:"override style scheme",version:"2.3.0",scope:"props",ref:"https://element-plus.org/en-US/component/select.html#select-attributes"},e.computed(()=>t.suffixTransition===!1));const a=e.ref(null),s=e.ref(null),i=e.ref(null),c=e.ref(null),f=e.ref(null),u=e.ref(null),d=e.ref(null),p=e.ref(null),h=e.ref(),g=e.shallowRef({query:""}),m=e.shallowRef(""),b=e.ref([]);let y=0;const{form:C,formItem:k}=Xt(),w=e.computed(()=>!t.filterable||t.multiple||!n.visible),E=e.computed(()=>t.disabled||(C==null?void 0:C.disabled)),S=e.computed(()=>{const X=t.multiple?Array.isArray(t.modelValue)&&t.modelValue.length>0:t.modelValue!==void 0&&t.modelValue!==null&&t.modelValue!=="";return t.clearable&&!E.value&&n.inputHovering&&X}),_=e.computed(()=>t.remote&&t.filterable&&!t.remoteShowSuffix?"":t.suffixIcon),B=e.computed(()=>l.is("reverse",_.value&&n.visible&&t.suffixTransition)),M=e.computed(()=>(C==null?void 0:C.statusIcon)&&(k==null?void 0:k.validateState)&&Gd[k==null?void 0:k.validateState]),P=e.computed(()=>t.remote?300:0),T=e.computed(()=>t.loading?t.loadingText||r("el.select.loading"):t.remote&&n.query===""&&n.options.size===0?!1:t.filterable&&n.query&&n.options.size>0&&n.filteredOptionsCount===0?t.noMatchText||r("el.select.noMatch"):n.options.size===0?t.noDataText||r("el.select.noData"):null),I=e.computed(()=>{const X=Array.from(n.options.values()),de=[];return b.value.forEach(Se=>{const We=X.findIndex(Rt=>Rt.currentLabel===Se);We>-1&&de.push(X[We])}),de.length>=X.length?de:X}),v=e.computed(()=>Array.from(n.cachedOptions.values())),O=e.computed(()=>{const X=I.value.filter(de=>!de.created).some(de=>de.currentLabel===n.query);return t.filterable&&t.allowCreate&&n.query!==""&&!X}),D=St(),z=e.computed(()=>["small"].includes(D.value)?"small":"default"),$=e.computed({get(){return n.visible&&T.value!==!1},set(X){n.visible=X}});e.watch([()=>E.value,()=>D.value,()=>C==null?void 0:C.size],()=>{e.nextTick(()=>{R()})}),e.watch(()=>t.placeholder,X=>{n.cachedPlaceHolder=n.currentPlaceholder=X,t.multiple&&Array.isArray(t.modelValue)&&t.modelValue.length>0&&(n.currentPlaceholder="")}),e.watch(()=>t.modelValue,(X,de)=>{t.multiple&&(R(),X&&X.length>0||s.value&&n.query!==""?n.currentPlaceholder="":n.currentPlaceholder=n.cachedPlaceHolder,t.filterable&&!t.reserveKeyword&&(n.query="",N(n.query))),H(),t.filterable&&!t.multiple&&(n.inputLength=20),!tn(X,de)&&t.validateEvent&&(k==null||k.validate("change").catch(Se=>void 0))},{flush:"post",deep:!0}),e.watch(()=>n.visible,X=>{var de,Se,We,Rt,ae;X?((Se=(de=c.value)==null?void 0:de.updatePopper)==null||Se.call(de),t.filterable&&(n.filteredOptionsCount=n.optionsCount,n.query=t.remote?"":n.selectedLabel,(Rt=(We=i.value)==null?void 0:We.focus)==null||Rt.call(We),t.multiple?(ae=s.value)==null||ae.focus():n.selectedLabel&&(n.currentPlaceholder=`${n.selectedLabel}`,n.selectedLabel=""),N(n.query),!t.multiple&&!t.remote&&(g.value.query="",e.triggerRef(g),e.triggerRef(m)))):(t.filterable&&(qe(t.filterMethod)&&t.filterMethod(""),qe(t.remoteMethod)&&t.remoteMethod("")),n.query="",n.previousQuery=null,n.selectedLabel="",n.inputLength=20,n.menuVisibleOnFocus=!1,q(),e.nextTick(()=>{s.value&&s.value.value===""&&n.selected.length===0&&(n.currentPlaceholder=n.cachedPlaceHolder)}),t.multiple||(n.selected&&(t.filterable&&t.allowCreate&&n.createdSelected&&n.createdLabel?n.selectedLabel=n.createdLabel:n.selectedLabel=n.selected.currentLabel,t.filterable&&(n.query=n.selectedLabel)),t.filterable&&(n.currentPlaceholder=n.cachedPlaceHolder))),o.emit("visible-change",X)}),e.watch(()=>n.options.entries(),()=>{var X,de,Se;if(!He)return;(de=(X=c.value)==null?void 0:X.updatePopper)==null||de.call(X),t.multiple&&R();const We=((Se=d.value)==null?void 0:Se.querySelectorAll("input"))||[];(!t.filterable&&!t.defaultFirstOption&&!$t(t.modelValue)||!Array.from(We).includes(document.activeElement))&&H(),t.defaultFirstOption&&(t.filterable||t.remote)&&n.filteredOptionsCount&&x()},{flush:"post"}),e.watch(()=>n.hoverIndex,X=>{be(X)&&X>-1?h.value=I.value[X]||{}:h.value={},I.value.forEach(de=>{de.hover=h.value===de})});const R=()=>{e.nextTick(()=>{var X,de;if(!a.value)return;const Se=a.value.$el.querySelector("input");y=y||(Se.clientHeight>0?Se.clientHeight+2:0);const We=u.value,Rt=getComputedStyle(Se).getPropertyValue(l.cssVarName("input-height")),ae=Number.parseFloat(Rt)||aL(D.value||(C==null?void 0:C.size)),we=D.value||ae===y||y<=0?ae:y;!(Se.offsetParent===null)&&(Se.style.height=`${(n.selected.length===0?we:Math.max(We?We.clientHeight+(We.clientHeight>we?6:0):0,we))-2}px`),n.visible&&T.value!==!1&&((de=(X=c.value)==null?void 0:X.updatePopper)==null||de.call(X))})},N=async X=>{if(!(n.previousQuery===X||n.isOnComposition)){if(n.previousQuery===null&&(qe(t.filterMethod)||qe(t.remoteMethod))){n.previousQuery=X;return}n.previousQuery=X,e.nextTick(()=>{var de,Se;n.visible&&((Se=(de=c.value)==null?void 0:de.updatePopper)==null||Se.call(de))}),n.hoverIndex=-1,t.multiple&&t.filterable&&e.nextTick(()=>{if(!E.value){const de=s.value.value.length*15+20;n.inputLength=t.collapseTags?Math.min(50,de):de,A()}R()}),t.remote&&qe(t.remoteMethod)?(n.hoverIndex=-1,t.remoteMethod(X)):qe(t.filterMethod)?(t.filterMethod(X),e.triggerRef(m)):(n.filteredOptionsCount=n.optionsCount,g.value.query=X,e.triggerRef(g),e.triggerRef(m)),t.defaultFirstOption&&(t.filterable||t.remote)&&n.filteredOptionsCount&&(await e.nextTick(),x())}},A=()=>{n.currentPlaceholder!==""&&(n.currentPlaceholder=s.value.value?"":n.cachedPlaceHolder)},x=()=>{const X=I.value.filter(We=>We.visible&&!We.disabled&&!We.states.groupDisabled),de=X.find(We=>We.created),Se=X[0];n.hoverIndex=Pe(I.value,de||Se)},H=()=>{var X;if(t.multiple)n.selectedLabel="";else{const Se=K(t.modelValue);(X=Se.props)!=null&&X.created?(n.createdLabel=Se.props.value,n.createdSelected=!0):n.createdSelected=!1,n.selectedLabel=Se.currentLabel,n.selected=Se,t.filterable&&(n.query=n.selectedLabel);return}const de=[];Array.isArray(t.modelValue)&&t.modelValue.forEach(Se=>{de.push(K(Se))}),n.selected=de,e.nextTick(()=>{R()})},K=X=>{let de;const Se=wc(X).toLowerCase()==="object",We=wc(X).toLowerCase()==="null",Rt=wc(X).toLowerCase()==="undefined";for(let ze=n.cachedOptions.size-1;ze>=0;ze--){const Ge=v.value[ze];if(Se?ct(Ge.value,t.valueKey)===ct(X,t.valueKey):Ge.value===X){de={value:X,currentLabel:Ge.currentLabel,isDisabled:Ge.isDisabled};break}}if(de)return de;const ae=Se?X.label:!We&&!Rt?X:"",we={value:X,currentLabel:ae};return t.multiple&&(we.hitState=!1),we},q=()=>{setTimeout(()=>{const X=t.valueKey;t.multiple?n.selected.length>0?n.hoverIndex=Math.min.apply(null,n.selected.map(de=>I.value.findIndex(Se=>ct(Se,X)===ct(de,X)))):n.hoverIndex=-1:n.hoverIndex=I.value.findIndex(de=>ee(de)===ee(n.selected))},300)},ne=()=>{var X,de;Y(),(de=(X=c.value)==null?void 0:X.updatePopper)==null||de.call(X),t.multiple&&R()},Y=()=>{var X;n.inputWidth=(X=a.value)==null?void 0:X.$el.offsetWidth},Z=()=>{t.filterable&&n.query!==n.selectedLabel&&(n.query=n.selectedLabel,N(n.query))},U=Gt(()=>{Z()},P.value),re=Gt(X=>{N(X.target.value)},P.value),te=X=>{tn(t.modelValue,X)||o.emit(at,X)},oe=X=>md(X,de=>!n.disabledOptions.has(de)),ie=X=>{if(X.code!==pe.delete){if(X.target.value.length<=0&&!$e()){const de=t.modelValue.slice(),Se=oe(de);if(Se<0)return;de.splice(Se,1),o.emit(Ie,de),te(de)}X.target.value.length===1&&t.modelValue.length===0&&(n.currentPlaceholder=n.cachedPlaceHolder)}},ye=(X,de)=>{const Se=n.selected.indexOf(de);if(Se>-1&&!E.value){const We=t.modelValue.slice();We.splice(Se,1),o.emit(Ie,We),te(We),o.emit("remove-tag",de.value)}X.stopPropagation(),Ee()},Ne=X=>{X.stopPropagation();const de=t.multiple?[]:"";if(!De(de))for(const Se of n.selected)Se.isDisabled&&de.push(Se.value);o.emit(Ie,de),te(de),n.hoverIndex=-1,n.visible=!1,o.emit("clear"),Ee()},Te=X=>{var de;if(t.multiple){const Se=(t.modelValue||[]).slice(),We=Pe(Se,X.value);We>-1?Se.splice(We,1):(t.multipleLimit<=0||Se.length{Ce(X)})},Pe=(X=[],de)=>{if(!nt(de))return X.indexOf(de);const Se=t.valueKey;let We=-1;return X.some((Rt,ae)=>e.toRaw(ct(Rt,Se))===ct(de,Se)?(We=ae,!0):!1),We},he=()=>{const X=s.value||a.value;X&&(X==null||X.focus())},Ce=X=>{var de,Se,We,Rt,ae;const we=Array.isArray(X)?X[0]:X;let ze=null;if(we!=null&&we.value){const Ge=I.value.filter(zt=>zt.value===we.value);Ge.length>0&&(ze=Ge[0].$el)}if(c.value&&ze){const Ge=(Rt=(We=(Se=(de=c.value)==null?void 0:de.popperRef)==null?void 0:Se.contentRef)==null?void 0:We.querySelector)==null?void 0:Rt.call(We,`.${l.be("dropdown","wrap")}`);Ge&&wy(Ge,ze)}(ae=p.value)==null||ae.handleScroll()},ge=X=>{n.optionsCount++,n.filteredOptionsCount++,n.options.set(X.value,X),n.cachedOptions.set(X.value,X),X.disabled&&n.disabledOptions.set(X.value,X)},me=(X,de)=>{n.options.get(X)===de&&(n.optionsCount--,n.filteredOptionsCount--,n.options.delete(X))},_e=X=>{X.code!==pe.backspace&&$e(!1),n.inputLength=s.value.value.length*15+20,R()},$e=X=>{if(!Array.isArray(n.selected))return;const de=oe(n.selected.map(We=>We.value)),Se=n.selected[de];if(!!Se)return X===!0||X===!1?(Se.hitState=X,X):(Se.hitState=!Se.hitState,Se.hitState)},Ae=X=>{const de=X.target.value;if(X.type==="compositionend")n.isOnComposition=!1,e.nextTick(()=>N(de));else{const Se=de[de.length-1]||"";n.isOnComposition=!Ps(Se)}},Oe=()=>{e.nextTick(()=>Ce(n.selected))},ce=X=>{n.focused||((t.automaticDropdown||t.filterable)&&(t.filterable&&!n.visible&&(n.menuVisibleOnFocus=!0),n.visible=!0),n.focused=!0,o.emit("focus",X))},Ee=()=>{var X,de;n.visible?(X=s.value||a.value)==null||X.focus():(de=a.value)==null||de.focus()},Le=()=>{var X,de,Se;n.visible=!1,(X=a.value)==null||X.blur(),(Se=(de=i.value)==null?void 0:de.blur)==null||Se.call(de)},Xe=X=>{var de,Se,We;((de=c.value)==null?void 0:de.isFocusInsideContent(X))||((Se=f.value)==null?void 0:Se.isFocusInsideContent(X))||((We=d.value)==null?void 0:We.contains(X.relatedTarget))||(n.visible&&ke(),n.focused=!1,o.emit("blur",X))},Qe=X=>{Ne(X)},ke=()=>{n.visible=!1},J=X=>{n.visible&&(X.preventDefault(),X.stopPropagation(),n.visible=!1)},G=X=>{X&&!n.mouseEnter||E.value||(n.menuVisibleOnFocus?n.menuVisibleOnFocus=!1:(!c.value||!c.value.isFocusInsideContent())&&(n.visible=!n.visible),Ee())},j=()=>{n.visible?I.value[n.hoverIndex]&&Te(I.value[n.hoverIndex]):G()},ee=X=>nt(X.value)?ct(X.value,t.valueKey):X.value,F=e.computed(()=>I.value.filter(X=>X.visible).every(X=>X.disabled)),ue=e.computed(()=>t.multiple?n.selected.slice(0,t.maxCollapseTags):[]),Be=e.computed(()=>t.multiple?n.selected.slice(t.maxCollapseTags):[]),xe=X=>{if(!n.visible){n.visible=!0;return}if(!(n.options.size===0||n.filteredOptionsCount===0)&&!n.isOnComposition&&!F.value){X==="next"?(n.hoverIndex++,n.hoverIndex===n.options.size&&(n.hoverIndex=0)):X==="prev"&&(n.hoverIndex--,n.hoverIndex<0&&(n.hoverIndex=n.options.size-1));const de=I.value[n.hoverIndex];(de.disabled===!0||de.states.groupDisabled===!0||!de.visible)&&xe(X),e.nextTick(()=>Ce(h.value))}},_t=()=>{n.mouseEnter=!0},gt=()=>{n.mouseEnter=!1},zn=(X,de)=>{var Se,We;ye(X,de),(We=(Se=f.value)==null?void 0:Se.updatePopper)==null||We.call(Se)},Wt=e.computed(()=>({maxWidth:`${e.unref(n.inputWidth)-32-(M.value?22:0)}px`,width:"100%"}));return{optionList:b,optionsArray:I,hoverOption:h,selectSize:D,handleResize:ne,debouncedOnInputChange:U,debouncedQueryChange:re,deletePrevTag:ie,deleteTag:ye,deleteSelected:Ne,handleOptionSelect:Te,scrollToOption:Ce,readonly:w,resetInputHeight:R,showClose:S,iconComponent:_,iconReverse:B,showNewOption:O,collapseTagSize:z,setSelected:H,managePlaceholder:A,selectDisabled:E,emptyText:T,toggleLastOptionHitState:$e,resetInputState:_e,handleComposition:Ae,onOptionCreate:ge,onOptionDestroy:me,handleMenuEnter:Oe,handleFocus:ce,focus:Ee,blur:Le,handleBlur:Xe,handleClearClick:Qe,handleClose:ke,handleKeydownEscape:J,toggleMenu:G,selectOption:j,getValueKey:ee,navigateOptions:xe,handleDeleteTooltipTag:zn,dropMenuVisible:$,queryChange:g,groupQueryChange:m,showTagList:ue,collapseTagList:Be,selectTagsStyle:Wt,reference:a,input:s,iOSInput:i,tooltipRef:c,tagTooltipRef:f,tags:u,selectWrapper:d,scrollbar:p,handleMouseEnter:_t,handleMouseLeave:gt}};var NU=e.defineComponent({name:"ElOptions",emits:["update-options"],setup(t,{slots:n,emit:o}){let r=[];function l(a,s){if(a.length!==s.length)return!1;for(const[i]of a.entries())if(a[i]!=s[i])return!1;return!0}return()=>{var a,s;const i=(a=n.default)==null?void 0:a.call(n),c=[];function f(u){!Array.isArray(u)||u.forEach(d=>{var p,h,g,m;const b=(p=(d==null?void 0:d.type)||{})==null?void 0:p.name;b==="ElOptionGroup"?f(!De(d.children)&&!Array.isArray(d.children)&&qe((h=d.children)==null?void 0:h.default)?(g=d.children)==null?void 0:g.default():d.children):b==="ElOption"?c.push((m=d.props)==null?void 0:m.label):Array.isArray(d.children)&&f(d.children)})}return i.length&&f((s=i[0])==null?void 0:s.children),l(c,r)||(r=c,o("update-options",c)),i}}});const $S="ElSelect",_U=e.defineComponent({name:$S,componentName:$S,components:{ElInput:Ft,ElSelectMenu:kU,ElOption:ap,ElOptions:NU,ElTag:bl,ElScrollbar:mo,ElTooltip:Zt,ElIcon:fe},directives:{ClickOutside:Po},props:{name:String,id:String,modelValue:{type:[Array,String,Number,Boolean,Object],default:void 0},autocomplete:{type:String,default:"off"},automaticDropdown:Boolean,size:{type:String,validator:Yd},effect:{type:String,default:"light"},disabled:Boolean,clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:{type:String,default:""},popperOptions:{type:Object,default:()=>({})},remote:Boolean,loadingText:String,noMatchText:String,noDataText:String,remoteMethod:Function,filterMethod: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,maxCollapseTags:{type:Number,default:1},teleported:Pt.teleported,persistent:{type:Boolean,default:!0},clearIcon:{type:ot,default:Xo},fitInputWidth:Boolean,suffixIcon:{type:ot,default:qo},tagType:{...$i.type,default:"info"},validateEvent:{type:Boolean,default:!0},remoteShowSuffix:Boolean,suffixTransition:{type:Boolean,default:!0},placement:{type:String,values:_r,default:"bottom-start"},ariaLabel:{type:String,default:void 0}},emits:[Ie,at,"remove-tag","clear","visible-change","focus","blur"],setup(t,n){const o=Q("select"),r=Q("input"),{t:l}=Ke(),a=rn(),s=SU(t),{optionList:i,optionsArray:c,hoverOption:f,selectSize:u,readonly:d,handleResize:p,collapseTagSize:h,debouncedOnInputChange:g,debouncedQueryChange:m,deletePrevTag:b,deleteTag:y,deleteSelected:C,handleOptionSelect:k,scrollToOption:w,setSelected:E,resetInputHeight:S,managePlaceholder:_,showClose:B,selectDisabled:M,iconComponent:P,iconReverse:T,showNewOption:I,emptyText:v,toggleLastOptionHitState:O,resetInputState:D,handleComposition:z,onOptionCreate:$,onOptionDestroy:R,handleMenuEnter:N,handleFocus:A,focus:x,blur:H,handleBlur:K,handleClearClick:q,handleClose:ne,handleKeydownEscape:Y,toggleMenu:Z,selectOption:U,getValueKey:re,navigateOptions:te,handleDeleteTooltipTag:oe,dropMenuVisible:ie,reference:ye,input:Ne,iOSInput:Te,tooltipRef:Pe,tagTooltipRef:he,tags:Ce,selectWrapper:ge,scrollbar:me,queryChange:_e,groupQueryChange:$e,handleMouseEnter:Ae,handleMouseLeave:Oe,showTagList:ce,collapseTagList:Ee,selectTagsStyle:Le}=EU(t,s,n),{inputWidth:Xe,selected:Qe,inputLength:ke,filteredOptionsCount:J,visible:G,selectedLabel:j,hoverIndex:ee,query:F,inputHovering:ue,currentPlaceholder:Be,menuVisibleOnFocus:xe,isOnComposition:_t,options:gt,cachedOptions:zn,optionsCount:Wt,prefixWidth:X}=e.toRefs(s),de=e.computed(()=>{const Dt=[o.b()],Kr=e.unref(u);return Kr&&Dt.push(o.m(Kr)),t.disabled&&Dt.push(o.m("disabled")),Dt}),Se=e.computed(()=>[o.e("tags"),o.is("disabled",e.unref(M))]),We=e.computed(()=>[o.b("tags-wrapper"),{"has-prefix":e.unref(X)&&e.unref(Qe).length}]),Rt=e.computed(()=>[o.e("input"),o.is(e.unref(u)),o.is("disabled",e.unref(M))]),ae=e.computed(()=>[o.e("input"),o.is(e.unref(u)),o.em("input","iOS")]),we=e.computed(()=>[o.is("empty",!t.allowCreate&&Boolean(e.unref(F))&&e.unref(J)===0)]),ze=e.computed(()=>({maxWidth:`${e.unref(Xe)>123&&e.unref(Qe).length>t.maxCollapseTags?e.unref(Xe)-123:e.unref(Xe)-75}px`})),Ge=e.computed(()=>({marginLeft:`${e.unref(X)}px`,flexGrow:1,width:`${e.unref(ke)/(e.unref(Xe)-32)}%`,maxWidth:`${e.unref(Xe)-42}px`}));e.provide(wl,e.reactive({props:t,options:gt,optionsArray:c,cachedOptions:zn,optionsCount:Wt,filteredOptionsCount:J,hoverIndex:ee,handleOptionSelect:k,onOptionCreate:$,onOptionDestroy:R,selectWrapper:ge,selected:Qe,setSelected:E,queryChange:_e,groupQueryChange:$e})),e.onMounted(()=>{s.cachedPlaceHolder=Be.value=t.placeholder||(()=>l("el.select.placeholder")),t.multiple&&Array.isArray(t.modelValue)&&t.modelValue.length>0&&(Be.value=""),jt(ge,p),t.remote&&t.multiple&&S(),e.nextTick(()=>{const Dt=ye.value&&ye.value.$el;if(!!Dt&&(Xe.value=Dt.getBoundingClientRect().width,n.slots.prefix)){const Kr=Dt.querySelector(`.${r.e("prefix")}`);X.value=Math.max(Kr.getBoundingClientRect().width+11,30)}}),E()}),t.multiple&&!Array.isArray(t.modelValue)&&n.emit(Ie,[]),!t.multiple&&Array.isArray(t.modelValue)&&n.emit(Ie,"");const zt=e.computed(()=>{var Dt,Kr;return(Kr=(Dt=Pe.value)==null?void 0:Dt.popperRef)==null?void 0:Kr.contentRef});return{isIOS:JN,onOptionsRendered:Dt=>{i.value=Dt},prefixWidth:X,selectSize:u,readonly:d,handleResize:p,collapseTagSize:h,debouncedOnInputChange:g,debouncedQueryChange:m,deletePrevTag:b,deleteTag:y,handleDeleteTooltipTag:oe,deleteSelected:C,handleOptionSelect:k,scrollToOption:w,inputWidth:Xe,selected:Qe,inputLength:ke,filteredOptionsCount:J,visible:G,selectedLabel:j,hoverIndex:ee,query:F,inputHovering:ue,currentPlaceholder:Be,menuVisibleOnFocus:xe,isOnComposition:_t,options:gt,resetInputHeight:S,managePlaceholder:_,showClose:B,selectDisabled:M,iconComponent:P,iconReverse:T,showNewOption:I,emptyText:v,toggleLastOptionHitState:O,resetInputState:D,handleComposition:z,handleMenuEnter:N,handleFocus:A,focus:x,blur:H,handleBlur:K,handleClearClick:q,handleClose:ne,handleKeydownEscape:Y,toggleMenu:Z,selectOption:U,getValueKey:re,navigateOptions:te,dropMenuVisible:ie,reference:ye,input:Ne,iOSInput:Te,tooltipRef:Pe,popperPaneRef:zt,tags:Ce,selectWrapper:ge,scrollbar:me,wrapperKls:de,tagsKls:Se,tagWrapperKls:We,inputKls:Rt,iOSInputKls:ae,scrollbarKls:we,selectTagsStyle:Le,nsSelect:o,tagTextStyle:ze,inputStyle:Ge,handleMouseEnter:Ae,handleMouseLeave:Oe,showTagList:ce,collapseTagList:Ee,tagTooltipRef:he,contentId:a,hoverOption:f}}}),BU=["disabled","autocomplete","aria-activedescendant","aria-controls","aria-expanded","aria-label"],$U=["disabled"],TU={style:{height:"100%",display:"flex","justify-content":"center","align-items":"center"}};function vU(t,n,o,r,l,a){const s=e.resolveComponent("el-tag"),i=e.resolveComponent("el-tooltip"),c=e.resolveComponent("el-icon"),f=e.resolveComponent("el-input"),u=e.resolveComponent("el-option"),d=e.resolveComponent("el-options"),p=e.resolveComponent("el-scrollbar"),h=e.resolveComponent("el-select-menu"),g=e.resolveDirective("click-outside");return e.withDirectives((e.openBlock(),e.createElementBlock("div",{ref:"selectWrapper",class:e.normalizeClass(t.wrapperKls),onMouseenter:n[22]||(n[22]=(...m)=>t.handleMouseEnter&&t.handleMouseEnter(...m)),onMouseleave:n[23]||(n[23]=(...m)=>t.handleMouseLeave&&t.handleMouseLeave(...m)),onClick:n[24]||(n[24]=e.withModifiers((...m)=>t.toggleMenu&&t.toggleMenu(...m),["stop"]))},[e.createVNode(i,{ref:"tooltipRef",visible:t.dropMenuVisible,placement:t.placement,teleported:t.teleported,"popper-class":[t.nsSelect.e("popper"),t.popperClass],"popper-options":t.popperOptions,"fallback-placements":["bottom-start","top-start","right","left"],effect:t.effect,pure:"",trigger:"click",transition:`${t.nsSelect.namespace.value}-zoom-in-top`,"stop-popper-mouse-event":!1,"gpu-acceleration":!1,persistent:t.persistent,onShow:t.handleMenuEnter},{default:e.withCtx(()=>{var m,b;return[e.createElementVNode("div",{class:"select-trigger",onMouseenter:n[20]||(n[20]=y=>t.inputHovering=!0),onMouseleave:n[21]||(n[21]=y=>t.inputHovering=!1)},[t.multiple?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"tags",tabindex:"-1",class:e.normalizeClass(t.tagsKls),style:e.normalizeStyle(t.selectTagsStyle),onClick:n[15]||(n[15]=(...y)=>t.focus&&t.focus(...y))},[t.collapseTags&&t.selected.length?(e.openBlock(),e.createBlock(e.Transition,{key:0,onAfterLeave:t.resetInputHeight},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.tagWrapperKls)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.showTagList,y=>(e.openBlock(),e.createBlock(s,{key:t.getValueKey(y),closable:!t.selectDisabled&&!y.isDisabled,size:t.collapseTagSize,hit:y.hitState,type:t.tagType,"disable-transitions":"",onClose:C=>t.deleteTag(C,y)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelect.e("tags-text")),style:e.normalizeStyle(t.tagTextStyle)},e.toDisplayString(y.currentLabel),7)]),_:2},1032,["closable","size","hit","type","onClose"]))),128)),t.selected.length>t.maxCollapseTags?(e.openBlock(),e.createBlock(s,{key:0,closable:!1,size:t.collapseTagSize,type:t.tagType,"disable-transitions":""},{default:e.withCtx(()=>[t.collapseTagsTooltip?(e.openBlock(),e.createBlock(i,{key:0,ref:"tagTooltipRef",disabled:t.dropMenuVisible,"fallback-placements":["bottom","top","right","left"],effect:t.effect,placement:"bottom",teleported:t.teleported},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelect.e("tags-text"))},"+ "+e.toDisplayString(t.selected.length-t.maxCollapseTags),3)]),content:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(t.nsSelect.e("collapse-tags"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.collapseTagList,y=>(e.openBlock(),e.createElementBlock("div",{key:t.getValueKey(y),class:e.normalizeClass(t.nsSelect.e("collapse-tag"))},[e.createVNode(s,{class:"in-tooltip",closable:!t.selectDisabled&&!y.isDisabled,size:t.collapseTagSize,hit:y.hitState,type:t.tagType,"disable-transitions":"",style:{margin:"2px"},onClose:C=>t.handleDeleteTooltipTag(C,y)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelect.e("tags-text")),style:e.normalizeStyle({maxWidth:t.inputWidth-75+"px"})},e.toDisplayString(y.currentLabel),7)]),_:2},1032,["closable","size","hit","type","onClose"])],2))),128))],2)]),_:1},8,["disabled","effect","teleported"])):(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(t.nsSelect.e("tags-text"))},"+ "+e.toDisplayString(t.selected.length-t.maxCollapseTags),3))]),_:1},8,["size","type"])):e.createCommentVNode("v-if",!0)],2)]),_:1},8,["onAfterLeave"])):e.createCommentVNode("v-if",!0),t.collapseTags?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(e.Transition,{key:1,onAfterLeave:t.resetInputHeight},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.tagWrapperKls),style:e.normalizeStyle(t.prefixWidth&&t.selected.length?{marginLeft:`${t.prefixWidth}px`}:"")},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.selected,y=>(e.openBlock(),e.createBlock(s,{key:t.getValueKey(y),closable:!t.selectDisabled&&!y.isDisabled,size:t.collapseTagSize,hit:y.hitState,type:t.tagType,"disable-transitions":"",onClose:C=>t.deleteTag(C,y)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelect.e("tags-text")),style:e.normalizeStyle({maxWidth:t.inputWidth-75+"px"})},e.toDisplayString(y.currentLabel),7)]),_:2},1032,["closable","size","hit","type","onClose"]))),128))],6)]),_:1},8,["onAfterLeave"])),t.filterable&&!t.selectDisabled?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:2,ref:"input","onUpdate:modelValue":n[0]||(n[0]=y=>t.query=y),type:"text",class:e.normalizeClass(t.inputKls),disabled:t.selectDisabled,autocomplete:t.autocomplete,style:e.normalizeStyle(t.inputStyle),role:"combobox","aria-activedescendant":((m=t.hoverOption)==null?void 0:m.id)||"","aria-controls":t.contentId,"aria-expanded":t.dropMenuVisible,"aria-label":t.ariaLabel,"aria-autocomplete":"none","aria-haspopup":"listbox",onFocus:n[1]||(n[1]=(...y)=>t.handleFocus&&t.handleFocus(...y)),onBlur:n[2]||(n[2]=(...y)=>t.handleBlur&&t.handleBlur(...y)),onKeyup:n[3]||(n[3]=(...y)=>t.managePlaceholder&&t.managePlaceholder(...y)),onKeydown:[n[4]||(n[4]=(...y)=>t.resetInputState&&t.resetInputState(...y)),n[5]||(n[5]=e.withKeys(e.withModifiers(y=>t.navigateOptions("next"),["prevent"]),["down"])),n[6]||(n[6]=e.withKeys(e.withModifiers(y=>t.navigateOptions("prev"),["prevent"]),["up"])),n[7]||(n[7]=e.withKeys((...y)=>t.handleKeydownEscape&&t.handleKeydownEscape(...y),["esc"])),n[8]||(n[8]=e.withKeys(e.withModifiers((...y)=>t.selectOption&&t.selectOption(...y),["stop","prevent"]),["enter"])),n[9]||(n[9]=e.withKeys((...y)=>t.deletePrevTag&&t.deletePrevTag(...y),["delete"])),n[10]||(n[10]=e.withKeys(y=>t.visible=!1,["tab"]))],onCompositionstart:n[11]||(n[11]=(...y)=>t.handleComposition&&t.handleComposition(...y)),onCompositionupdate:n[12]||(n[12]=(...y)=>t.handleComposition&&t.handleComposition(...y)),onCompositionend:n[13]||(n[13]=(...y)=>t.handleComposition&&t.handleComposition(...y)),onInput:n[14]||(n[14]=(...y)=>t.debouncedQueryChange&&t.debouncedQueryChange(...y))},null,46,BU)),[[e.vModelText,t.query]]):e.createCommentVNode("v-if",!0)],6)):e.createCommentVNode("v-if",!0),t.isIOS&&!t.multiple&&t.filterable&&t.readonly?(e.openBlock(),e.createElementBlock("input",{key:1,ref:"iOSInput",class:e.normalizeClass(t.iOSInputKls),disabled:t.selectDisabled,type:"text"},null,10,$U)):e.createCommentVNode("v-if",!0),e.createVNode(f,{id:t.id,ref:"reference",modelValue:t.selectedLabel,"onUpdate:modelValue":n[16]||(n[16]=y=>t.selectedLabel=y),type:"text",placeholder:typeof t.currentPlaceholder=="function"?t.currentPlaceholder():t.currentPlaceholder,name:t.name,autocomplete:t.autocomplete,size:t.selectSize,disabled:t.selectDisabled,readonly:t.readonly,"validate-event":!1,class:e.normalizeClass([t.nsSelect.is("focus",t.visible)]),tabindex:t.multiple&&t.filterable?-1:void 0,role:"combobox","aria-activedescendant":((b=t.hoverOption)==null?void 0:b.id)||"","aria-controls":t.contentId,"aria-expanded":t.dropMenuVisible,label:t.ariaLabel,"aria-autocomplete":"none","aria-haspopup":"listbox",onFocus:t.handleFocus,onBlur:t.handleBlur,onInput:t.debouncedOnInputChange,onPaste:t.debouncedOnInputChange,onCompositionstart:t.handleComposition,onCompositionupdate:t.handleComposition,onCompositionend:t.handleComposition,onKeydown:[n[17]||(n[17]=e.withKeys(e.withModifiers(y=>t.navigateOptions("next"),["stop","prevent"]),["down"])),n[18]||(n[18]=e.withKeys(e.withModifiers(y=>t.navigateOptions("prev"),["stop","prevent"]),["up"])),e.withKeys(e.withModifiers(t.selectOption,["stop","prevent"]),["enter"]),e.withKeys(t.handleKeydownEscape,["esc"]),n[19]||(n[19]=e.withKeys(y=>t.visible=!1,["tab"]))]},e.createSlots({suffix:e.withCtx(()=>[t.iconComponent&&!t.showClose?(e.openBlock(),e.createBlock(c,{key:0,class:e.normalizeClass([t.nsSelect.e("caret"),t.nsSelect.e("icon"),t.iconReverse])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconComponent)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),t.showClose&&t.clearIcon?(e.openBlock(),e.createBlock(c,{key:1,class:e.normalizeClass([t.nsSelect.e("caret"),t.nsSelect.e("icon")]),onClick:t.handleClearClick},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.clearIcon)))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0)]),_:2},[t.$slots.prefix?{name:"prefix",fn:e.withCtx(()=>[e.createElementVNode("div",TU,[e.renderSlot(t.$slots,"prefix")])])}:void 0]),1032,["id","modelValue","placeholder","name","autocomplete","size","disabled","readonly","class","tabindex","aria-activedescendant","aria-controls","aria-expanded","label","onFocus","onBlur","onInput","onPaste","onCompositionstart","onCompositionupdate","onCompositionend","onKeydown"])],32)]}),content:e.withCtx(()=>[e.createVNode(h,null,e.createSlots({default:e.withCtx(()=>[e.withDirectives(e.createVNode(p,{id:t.contentId,ref:"scrollbar",tag:"ul","wrap-class":t.nsSelect.be("dropdown","wrap"),"view-class":t.nsSelect.be("dropdown","list"),class:e.normalizeClass(t.scrollbarKls),role:"listbox","aria-label":t.ariaLabel,"aria-orientation":"vertical"},{default:e.withCtx(()=>[t.showNewOption?(e.openBlock(),e.createBlock(u,{key:0,value:t.query,created:!0},null,8,["value"])):e.createCommentVNode("v-if",!0),e.createVNode(d,{onUpdateOptions:t.onOptionsRendered},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},8,["onUpdateOptions"])]),_:3},8,["id","wrap-class","view-class","class","aria-label"]),[[e.vShow,t.options.size>0&&!t.loading]]),t.emptyText&&(!t.allowCreate||t.loading||t.allowCreate&&t.options.size===0)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.$slots.empty?e.renderSlot(t.$slots,"empty",{key:0}):(e.openBlock(),e.createElementBlock("p",{key:1,class:e.normalizeClass(t.nsSelect.be("dropdown","empty"))},e.toDisplayString(t.emptyText),3))],64)):e.createCommentVNode("v-if",!0)]),_:2},[t.$slots.header?{name:"header",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"header")])}:void 0,t.$slots.footer?{name:"footer",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"footer")])}:void 0]),1024)]),_:3},8,["visible","placement","teleported","popper-class","popper-options","effect","transition","persistent","onShow"])],34)),[[g,t.handleClose,t.popperPaneRef]])}var VU=se(_U,[["render",vU],["__file","select.vue"]]);const MU=e.defineComponent({name:"ElOptionGroup",componentName:"ElOptionGroup",props:{label:String,disabled:Boolean},setup(t){const n=Q("select"),o=e.ref(!0),r=e.getCurrentInstance(),l=e.ref([]);e.provide(lp,e.reactive({...e.toRefs(t)}));const a=e.inject(wl);e.onMounted(()=>{l.value=s(r.subTree)});const s=c=>{const f=[];return Array.isArray(c.children)&&c.children.forEach(u=>{var d;u.type&&u.type.name==="ElOption"&&u.component&&u.component.proxy?f.push(u.component.proxy):(d=u.children)!=null&&d.length&&f.push(...s(u))}),f},{groupQueryChange:i}=e.toRaw(a);return e.watch(i,()=>{o.value=l.value.some(c=>c.visible===!0)},{flush:"post"}),{visible:o,ns:n}}});function IU(t,n,o,r,l,a){return e.withDirectives((e.openBlock(),e.createElementBlock("ul",{class:e.normalizeClass(t.ns.be("group","wrap"))},[e.createElementVNode("li",{class:e.normalizeClass(t.ns.be("group","title"))},e.toDisplayString(t.label),3),e.createElementVNode("li",null,[e.createElementVNode("ul",{class:e.normalizeClass(t.ns.b("group"))},[e.renderSlot(t.$slots,"default")],2)])],2)),[[e.vShow,t.visible]])}var TS=se(MU,[["render",IU],["__file","option-group.vue"]]);const sr=Me(VU,{Option:ap,OptionGroup:TS}),Va=ht(ap),vS=ht(TS),sp=()=>e.inject(rp,{}),PU=le({pageSize:{type:Number,required:!0},pageSizes:{type:W(Array),default:()=>ut([10,20,30,40,50,100])},popperClass:{type:String},disabled:Boolean,teleported:Boolean,size:{type:String,values:Wn}}),RU=e.defineComponent({name:"ElPaginationSizes"}),OU=e.defineComponent({...RU,props:PU,emits:["page-size-change"],setup(t,{emit:n}){const o=t,{t:r}=Ke(),l=Q("pagination"),a=sp(),s=e.ref(o.pageSize);e.watch(()=>o.pageSizes,(f,u)=>{if(!tn(f,u)&&Array.isArray(f)){const d=f.includes(o.pageSize)?o.pageSize:o.pageSizes[0];n("page-size-change",d)}}),e.watch(()=>o.pageSize,f=>{s.value=f});const i=e.computed(()=>o.pageSizes);function c(f){var u;f!==s.value&&(s.value=f,(u=a.handleSizeChange)==null||u.call(a,Number(f)))}return(f,u)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(l).e("sizes"))},[e.createVNode(e.unref(sr),{"model-value":s.value,disabled:f.disabled,"popper-class":f.popperClass,size:f.size,teleported:f.teleported,"validate-event":!1,onChange:c},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),d=>(e.openBlock(),e.createBlock(e.unref(Va),{key:d,value:d,label:d+e.unref(r)("el.pagination.pagesize")},null,8,["value","label"]))),128))]),_:1},8,["model-value","disabled","popper-class","size","teleported"])],2))}});var AU=se(OU,[["__file","sizes.vue"]]);const zU=le({size:{type:String,values:Wn}}),DU=["disabled"],LU=e.defineComponent({name:"ElPaginationJumper"}),xU=e.defineComponent({...LU,props:zU,setup(t){const{t:n}=Ke(),o=Q("pagination"),{pageCount:r,disabled:l,currentPage:a,changeEvent:s}=sp(),i=e.ref(),c=e.computed(()=>{var d;return(d=i.value)!=null?d:a==null?void 0:a.value});function f(d){i.value=d?+d:""}function u(d){d=Math.trunc(+d),s==null||s(d),i.value=void 0}return(d,p)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(o).e("jump")),disabled:e.unref(l)},[e.createElementVNode("span",{class:e.normalizeClass([e.unref(o).e("goto")])},e.toDisplayString(e.unref(n)("el.pagination.goto")),3),e.createVNode(e.unref(Ft),{size:d.size,class:e.normalizeClass([e.unref(o).e("editor"),e.unref(o).is("in-pagination")]),min:1,max:e.unref(r),disabled:e.unref(l),"model-value":e.unref(c),"validate-event":!1,label:e.unref(n)("el.pagination.page"),type:"number","onUpdate:modelValue":f,onChange:u},null,8,["size","class","max","disabled","model-value","label"]),e.createElementVNode("span",{class:e.normalizeClass([e.unref(o).e("classifier")])},e.toDisplayString(e.unref(n)("el.pagination.pageClassifier")),3)],10,DU))}});var FU=se(xU,[["__file","jumper.vue"]]);const HU=le({total:{type:Number,default:1e3}}),KU=["disabled"],WU=e.defineComponent({name:"ElPaginationTotal"}),jU=e.defineComponent({...WU,props:HU,setup(t){const{t:n}=Ke(),o=Q("pagination"),{disabled:r}=sp();return(l,a)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(o).e("total")),disabled:e.unref(r)},e.toDisplayString(e.unref(n)("el.pagination.total",{total:l.total})),11,KU))}});var UU=se(jU,[["__file","total.vue"]]);const GU=le({currentPage:{type:Number,default:1},pageCount:{type:Number,required:!0},pagerCount:{type:Number,default:7},disabled:Boolean}),qU=["onKeyup"],YU=["aria-current","aria-label","tabindex"],XU=["tabindex","aria-label"],ZU=["aria-current","aria-label","tabindex"],JU=["tabindex","aria-label"],QU=["aria-current","aria-label","tabindex"],eG=e.defineComponent({name:"ElPaginationPager"}),tG=e.defineComponent({...eG,props:GU,emits:["change"],setup(t,{emit:n}){const o=t,r=Q("pager"),l=Q("icon"),{t:a}=Ke(),s=e.ref(!1),i=e.ref(!1),c=e.ref(!1),f=e.ref(!1),u=e.ref(!1),d=e.ref(!1),p=e.computed(()=>{const w=o.pagerCount,E=(w-1)/2,S=Number(o.currentPage),_=Number(o.pageCount);let B=!1,M=!1;_>w&&(S>w-E&&(B=!0),S<_-E&&(M=!0));const P=[];if(B&&!M){const T=_-(w-2);for(let I=T;I<_;I++)P.push(I)}else if(!B&&M)for(let T=2;T["more","btn-quickprev",l.b(),r.is("disabled",o.disabled)]),g=e.computed(()=>["more","btn-quicknext",l.b(),r.is("disabled",o.disabled)]),m=e.computed(()=>o.disabled?-1:0);e.watchEffect(()=>{const w=(o.pagerCount-1)/2;s.value=!1,i.value=!1,o.pageCount>o.pagerCount&&(o.currentPage>o.pagerCount-w&&(s.value=!0),o.currentPage_&&(S=_)),S!==B&&n("change",S)}return(w,E)=>(e.openBlock(),e.createElementBlock("ul",{class:e.normalizeClass(e.unref(r).b()),onClick:k,onKeyup:e.withKeys(C,["enter"])},[w.pageCount>0?(e.openBlock(),e.createElementBlock("li",{key:0,class:e.normalizeClass([[e.unref(r).is("active",w.currentPage===1),e.unref(r).is("disabled",w.disabled)],"number"]),"aria-current":w.currentPage===1,"aria-label":e.unref(a)("el.pagination.currentPage",{pager:1}),tabindex:e.unref(m)}," 1 ",10,YU)):e.createCommentVNode("v-if",!0),s.value?(e.openBlock(),e.createElementBlock("li",{key:1,class:e.normalizeClass(e.unref(h)),tabindex:e.unref(m),"aria-label":e.unref(a)("el.pagination.prevPages",{pager:w.pagerCount-2}),onMouseenter:E[0]||(E[0]=S=>b(!0)),onMouseleave:E[1]||(E[1]=S=>c.value=!1),onFocus:E[2]||(E[2]=S=>y(!0)),onBlur:E[3]||(E[3]=S=>u.value=!1)},[(c.value||u.value)&&!w.disabled?(e.openBlock(),e.createBlock(e.unref(nl),{key:0})):(e.openBlock(),e.createBlock(e.unref(Ey),{key:1}))],42,XU)):e.createCommentVNode("v-if",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(p),S=>(e.openBlock(),e.createElementBlock("li",{key:S,class:e.normalizeClass([[e.unref(r).is("active",w.currentPage===S),e.unref(r).is("disabled",w.disabled)],"number"]),"aria-current":w.currentPage===S,"aria-label":e.unref(a)("el.pagination.currentPage",{pager:S}),tabindex:e.unref(m)},e.toDisplayString(S),11,ZU))),128)),i.value?(e.openBlock(),e.createElementBlock("li",{key:2,class:e.normalizeClass(e.unref(g)),tabindex:e.unref(m),"aria-label":e.unref(a)("el.pagination.nextPages",{pager:w.pagerCount-2}),onMouseenter:E[4]||(E[4]=S=>b()),onMouseleave:E[5]||(E[5]=S=>f.value=!1),onFocus:E[6]||(E[6]=S=>y()),onBlur:E[7]||(E[7]=S=>d.value=!1)},[(f.value||d.value)&&!w.disabled?(e.openBlock(),e.createBlock(e.unref(ol),{key:0})):(e.openBlock(),e.createBlock(e.unref(Ey),{key:1}))],42,JU)):e.createCommentVNode("v-if",!0),w.pageCount>1?(e.openBlock(),e.createElementBlock("li",{key:3,class:e.normalizeClass([[e.unref(r).is("active",w.currentPage===w.pageCount),e.unref(r).is("disabled",w.disabled)],"number"]),"aria-current":w.currentPage===w.pageCount,"aria-label":e.unref(a)("el.pagination.currentPage",{pager:w.pageCount}),tabindex:e.unref(m)},e.toDisplayString(w.pageCount),11,QU)):e.createCommentVNode("v-if",!0)],42,qU))}});var nG=se(tG,[["__file","pager.vue"]]);const ln=t=>typeof t!="number",VS=le({pageSize:Number,defaultPageSize:Number,total:Number,pageCount:Number,pagerCount:{type:Number,validator:t=>be(t)&&Math.trunc(t)===t&&t>4&&t<22&&t%2===1,default:7},currentPage:Number,defaultCurrentPage:Number,layout:{type:String,default:["prev","pager","next","jumper","->","total"].join(", ")},pageSizes:{type:W(Array),default:()=>ut([10,20,30,40,50,100])},popperClass:{type:String,default:""},prevText:{type:String,default:""},prevIcon:{type:ot,default:()=>Yo},nextText:{type:String,default:""},nextIcon:{type:ot,default:()=>on},teleported:{type:Boolean,default:!0},small:Boolean,background:Boolean,disabled:Boolean,hideOnSinglePage:Boolean}),MS={"update:current-page":t=>be(t),"update:page-size":t=>be(t),"size-change":t=>be(t),"current-change":t=>be(t),"prev-click":t=>be(t),"next-click":t=>be(t)},IS="ElPagination";var oG=e.defineComponent({name:IS,props:VS,emits:MS,setup(t,{emit:n,slots:o}){const{t:r}=Ke(),l=Q("pagination"),a=e.getCurrentInstance().vnode.props||{},s="onUpdate:currentPage"in a||"onUpdate:current-page"in a||"onCurrentChange"in a,i="onUpdate:pageSize"in a||"onUpdate:page-size"in a||"onSizeChange"in a,c=e.computed(()=>{if(ln(t.total)&&ln(t.pageCount)||!ln(t.currentPage)&&!s)return!1;if(t.layout.includes("sizes")){if(ln(t.pageCount)){if(!ln(t.total)&&!ln(t.pageSize)&&!i)return!1}else if(!i)return!1}return!0}),f=e.ref(ln(t.defaultPageSize)?10:t.defaultPageSize),u=e.ref(ln(t.defaultCurrentPage)?1:t.defaultCurrentPage),d=e.computed({get(){return ln(t.pageSize)?f.value:t.pageSize},set(k){ln(t.pageSize)&&(f.value=k),i&&(n("update:page-size",k),n("size-change",k))}}),p=e.computed(()=>{let k=0;return ln(t.pageCount)?ln(t.total)||(k=Math.max(1,Math.ceil(t.total/d.value))):k=t.pageCount,k}),h=e.computed({get(){return ln(t.currentPage)?u.value:t.currentPage},set(k){let w=k;k<1?w=1:k>p.value&&(w=p.value),ln(t.currentPage)&&(u.value=w),s&&(n("update:current-page",w),n("current-change",w))}});e.watch(p,k=>{h.value>k&&(h.value=k)});function g(k){h.value=k}function m(k){d.value=k;const w=p.value;h.value>w&&(h.value=w)}function b(){t.disabled||(h.value-=1,n("prev-click",h.value))}function y(){t.disabled||(h.value+=1,n("next-click",h.value))}function C(k,w){k&&(k.props||(k.props={}),k.props.class=[k.props.class,w].join(" "))}return e.provide(rp,{pageCount:p,disabled:e.computed(()=>t.disabled),currentPage:h,changeEvent:g,handleSizeChange:m}),()=>{var k,w;if(!c.value)return r("el.pagination.deprecationWarning"),null;if(!t.layout||t.hideOnSinglePage&&p.value<=1)return null;const E=[],S=[],_=e.h("div",{class:l.e("rightwrapper")},S),B={prev:e.h(iU,{disabled:t.disabled,currentPage:h.value,prevText:t.prevText,prevIcon:t.prevIcon,onClick:b}),jumper:e.h(FU,{size:t.small?"small":"default"}),pager:e.h(nG,{currentPage:h.value,pageCount:p.value,pagerCount:t.pagerCount,onChange:g,disabled:t.disabled}),next:e.h(mU,{disabled:t.disabled,currentPage:h.value,pageCount:p.value,nextText:t.nextText,nextIcon:t.nextIcon,onClick:y}),sizes:e.h(AU,{pageSize:d.value,pageSizes:t.pageSizes,popperClass:t.popperClass,disabled:t.disabled,teleported:t.teleported,size:t.small?"small":"default"}),slot:(w=(k=o==null?void 0:o.default)==null?void 0:k.call(o))!=null?w:null,total:e.h(UU,{total:ln(t.total)?0:t.total})},M=t.layout.split(",").map(T=>T.trim());let P=!1;return M.forEach(T=>{if(T==="->"){P=!0;return}P?S.push(B[T]):E.push(B[T])}),C(E[0],l.is("first")),C(E[E.length-1],l.is("last")),P&&S.length>0&&(C(S[0],l.is("first")),C(S[S.length-1],l.is("last")),E.push(_)),e.h("div",{class:[l.b(),l.is("background",t.background),{[l.m("small")]:t.small}]},E)}}});const PS=Me(oG),RS=le({title:String,confirmButtonText:String,cancelButtonText:String,confirmButtonType:{type:String,values:fi,default:"primary"},cancelButtonType:{type:String,values:fi,default:"text"},icon:{type:ot,default:()=>OD},iconColor:{type:String,default:"#f90"},hideIcon:{type:Boolean,default:!1},hideAfter:{type:Number,default:200},teleported:Pt.teleported,persistent:Pt.persistent,width:{type:[String,Number],default:150}}),OS={confirm:t=>t instanceof MouseEvent,cancel:t=>t instanceof MouseEvent},rG=e.defineComponent({name:"ElPopconfirm"}),lG=e.defineComponent({...rG,props:RS,emits:OS,setup(t,{emit:n}){const o=t,{t:r}=Ke(),l=Q("popconfirm"),a=e.ref(),s=()=>{var p,h;(h=(p=a.value)==null?void 0:p.onClose)==null||h.call(p)},i=e.computed(()=>({width:kt(o.width)})),c=p=>{n("confirm",p),s()},f=p=>{n("cancel",p),s()},u=e.computed(()=>o.confirmButtonText||r("el.popconfirm.confirmButtonText")),d=e.computed(()=>o.cancelButtonText||r("el.popconfirm.cancelButtonText"));return(p,h)=>(e.openBlock(),e.createBlock(e.unref(Zt),e.mergeProps({ref_key:"tooltipRef",ref:a,trigger:"click",effect:"light"},p.$attrs,{"popper-class":`${e.unref(l).namespace.value}-popover`,"popper-style":e.unref(i),teleported:p.teleported,"fallback-placements":["bottom","top","right","left"],"hide-after":p.hideAfter,persistent:p.persistent}),{content:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("main"))},[!p.hideIcon&&p.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(l).e("icon")),style:e.normalizeStyle({color:p.iconColor})},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.icon)))]),_:1},8,["class","style"])):e.createCommentVNode("v-if",!0),e.createTextVNode(" "+e.toDisplayString(p.title),1)],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("action"))},[e.createVNode(e.unref(At),{size:"small",type:p.cancelButtonType==="text"?"":p.cancelButtonType,text:p.cancelButtonType==="text",onClick:f},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(d)),1)]),_:1},8,["type","text"]),e.createVNode(e.unref(At),{size:"small",type:p.confirmButtonType==="text"?"":p.confirmButtonType,text:p.confirmButtonType==="text",onClick:c},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(u)),1)]),_:1},8,["type","text"])],2)],2)]),default:e.withCtx(()=>[p.$slots.reference?e.renderSlot(p.$slots,"reference",{key:0}):e.createCommentVNode("v-if",!0)]),_:3},16,["popper-class","popper-style","teleported","hide-after","persistent"]))}});var aG=se(lG,[["__file","popconfirm.vue"]]);const AS=Me(aG),zS=le({trigger:gl.trigger,placement:Ta.placement,disabled:gl.disabled,visible:Pt.visible,transition:Pt.transition,popperOptions:Ta.popperOptions,tabindex:Ta.tabindex,content:Pt.content,popperStyle:Pt.popperStyle,popperClass:Pt.popperClass,enterable:{...Pt.enterable,default:!0},effect:{...Pt.effect,default:"light"},teleported:Pt.teleported,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}}),DS={"update:visible":t=>Tt(t),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},sG="onUpdate:visible",iG=e.defineComponent({name:"ElPopover"}),cG=e.defineComponent({...iG,props:zS,emits:DS,setup(t,{expose:n,emit:o}){const r=t,l=e.computed(()=>r[sG]),a=Q("popover"),s=e.ref(),i=e.computed(()=>{var b;return(b=e.unref(s))==null?void 0:b.popperRef}),c=e.computed(()=>[{width:kt(r.width)},r.popperStyle]),f=e.computed(()=>[a.b(),r.popperClass,{[a.m("plain")]:!!r.content}]),u=e.computed(()=>r.transition===`${a.namespace.value}-fade-in-linear`),d=()=>{var b;(b=s.value)==null||b.hide()},p=()=>{o("before-enter")},h=()=>{o("before-leave")},g=()=>{o("after-enter")},m=()=>{o("update:visible",!1),o("after-leave")};return n({popperRef:i,hide:d}),(b,y)=>(e.openBlock(),e.createBlock(e.unref(Zt),e.mergeProps({ref_key:"tooltipRef",ref:s},b.$attrs,{trigger:b.trigger,placement:b.placement,disabled:b.disabled,visible:b.visible,transition:b.transition,"popper-options":b.popperOptions,tabindex:b.tabindex,content:b.content,offset:b.offset,"show-after":b.showAfter,"hide-after":b.hideAfter,"auto-close":b.autoClose,"show-arrow":b.showArrow,"aria-label":b.title,effect:b.effect,enterable:b.enterable,"popper-class":e.unref(f),"popper-style":e.unref(c),teleported:b.teleported,persistent:b.persistent,"gpu-acceleration":e.unref(u),"onUpdate:visible":e.unref(l),onBeforeShow:p,onBeforeHide:h,onShow:g,onHide:m}),{content:e.withCtx(()=>[b.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(a).e("title")),role:"title"},e.toDisplayString(b.title),3)):e.createCommentVNode("v-if",!0),e.renderSlot(b.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(b.content),1)])]),default:e.withCtx(()=>[b.$slots.reference?e.renderSlot(b.$slots,"reference",{key:0}):e.createCommentVNode("v-if",!0)]),_:3},16,["trigger","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","persistent","gpu-acceleration","onUpdate:visible"]))}});var dG=se(cG,[["__file","popover.vue"]]);const LS=(t,n)=>{const o=n.arg||n.value,r=o==null?void 0:o.popperRef;r&&(r.triggerRef=t)};var fG={mounted(t,n){LS(t,n)},updated(t,n){LS(t,n)}};const ip=lL(fG,"popover"),xS=Me(dG,{directive:ip}),FS=le({type:{type:String,default:"line",values:["line","circle","dashboard"]},percentage:{type:Number,default:0,validator:t=>t>=0&&t<=100},status:{type:String,default:"",values:["","success","exception","warning"]},indeterminate:{type:Boolean,default:!1},duration:{type:Number,default:3},strokeWidth:{type:Number,default:6},strokeLinecap:{type:W(String),default:"round"},textInside:{type:Boolean,default:!1},width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:W([String,Array,Function]),default:""},striped:Boolean,stripedFlow:Boolean,format:{type:W(Function),default:t=>`${t}%`}}),uG=["aria-valuenow"],pG={viewBox:"0 0 100 100"},mG=["d","stroke","stroke-linecap","stroke-width"],hG=["d","stroke","opacity","stroke-linecap","stroke-width"],gG={key:0},yG=e.defineComponent({name:"ElProgress"}),bG=e.defineComponent({...yG,props:FS,setup(t){const n=t,o={success:"#13ce66",exception:"#ff4949",warning:"#e6a23c",default:"#20a0ff"},r=Q("progress"),l=e.computed(()=>({width:`${n.percentage}%`,animationDuration:`${n.duration}s`,backgroundColor:C(n.percentage)})),a=e.computed(()=>(n.strokeWidth/n.width*100).toFixed(1)),s=e.computed(()=>["circle","dashboard"].includes(n.type)?Number.parseInt(`${50-Number.parseFloat(a.value)/2}`,10):0),i=e.computed(()=>{const k=s.value,w=n.type==="dashboard";return` + M 50 50 + m 0 ${w?"":"-"}${k} + a ${k} ${k} 0 1 1 0 ${w?"-":""}${k*2} + a ${k} ${k} 0 1 1 0 ${w?"":"-"}${k*2} + `}),c=e.computed(()=>2*Math.PI*s.value),f=e.computed(()=>n.type==="dashboard"?.75:1),u=e.computed(()=>`${-1*c.value*(1-f.value)/2}px`),d=e.computed(()=>({strokeDasharray:`${c.value*f.value}px, ${c.value}px`,strokeDashoffset:u.value})),p=e.computed(()=>({strokeDasharray:`${c.value*f.value*(n.percentage/100)}px, ${c.value}px`,strokeDashoffset:u.value,transition:"stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s"})),h=e.computed(()=>{let k;return n.color?k=C(n.percentage):k=o[n.status]||o.default,k}),g=e.computed(()=>n.status==="warning"?Vs:n.type==="line"?n.status==="success"?Kd:Xo:n.status==="success"?la:Hn),m=e.computed(()=>n.type==="line"?12+n.strokeWidth*.4:n.width*.111111+2),b=e.computed(()=>n.format(n.percentage));function y(k){const w=100/k.length;return k.map((S,_)=>De(S)?{color:S,percentage:(_+1)*w}:S).sort((S,_)=>S.percentage-_.percentage)}const C=k=>{var w;const{color:E}=n;if(qe(E))return E(k);if(De(E))return E;{const S=y(E);for(const _ of S)if(_.percentage>k)return _.color;return(w=S[S.length-1])==null?void 0:w.color}};return(k,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(r).b(),e.unref(r).m(k.type),e.unref(r).is(k.status),{[e.unref(r).m("without-text")]:!k.showText,[e.unref(r).m("text-inside")]:k.textInside}]),role:"progressbar","aria-valuenow":k.percentage,"aria-valuemin":"0","aria-valuemax":"100"},[k.type==="line"?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).b("bar"))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).be("bar","outer")),style:e.normalizeStyle({height:`${k.strokeWidth}px`})},[e.createElementVNode("div",{class:e.normalizeClass([e.unref(r).be("bar","inner"),{[e.unref(r).bem("bar","inner","indeterminate")]:k.indeterminate},{[e.unref(r).bem("bar","inner","striped")]:k.striped},{[e.unref(r).bem("bar","inner","striped-flow")]:k.stripedFlow}]),style:e.normalizeStyle(e.unref(l))},[(k.showText||k.$slots.default)&&k.textInside?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).be("bar","innerText"))},[e.renderSlot(k.$slots,"default",{percentage:k.percentage},()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(b)),1)])],2)):e.createCommentVNode("v-if",!0)],6)],6)],2)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(r).b("circle")),style:e.normalizeStyle({height:`${k.width}px`,width:`${k.width}px`})},[(e.openBlock(),e.createElementBlock("svg",pG,[e.createElementVNode("path",{class:e.normalizeClass(e.unref(r).be("circle","track")),d:e.unref(i),stroke:`var(${e.unref(r).cssVarName("fill-color-light")}, #e5e9f2)`,"stroke-linecap":k.strokeLinecap,"stroke-width":e.unref(a),fill:"none",style:e.normalizeStyle(e.unref(d))},null,14,mG),e.createElementVNode("path",{class:e.normalizeClass(e.unref(r).be("circle","path")),d:e.unref(i),stroke:e.unref(h),fill:"none",opacity:k.percentage?1:0,"stroke-linecap":k.strokeLinecap,"stroke-width":e.unref(a),style:e.normalizeStyle(e.unref(p))},null,14,hG)]))],6)),(k.showText||k.$slots.default)&&!k.textInside?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(e.unref(r).e("text")),style:e.normalizeStyle({fontSize:`${e.unref(m)}px`})},[e.renderSlot(k.$slots,"default",{percentage:k.percentage},()=>[k.status?(e.openBlock(),e.createBlock(e.unref(fe),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(g))))]),_:1})):(e.openBlock(),e.createElementBlock("span",gG,e.toDisplayString(e.unref(b)),1))])],6)):e.createCommentVNode("v-if",!0)],10,uG))}});var CG=se(bG,[["__file","progress.vue"]]);const cp=Me(CG),HS=le({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:W([Array,Object]),default:()=>ut(["","",""])},voidColor:{type:String,default:""},disabledVoidColor:{type:String,default:""},icons:{type:W([Array,Object]),default:()=>[vs,vs,vs]},voidIcon:{type:ot,default:()=>XD},disabledVoidIcon:{type:ot,default:()=>vs},disabled:Boolean,allowHalf:Boolean,showText:Boolean,showScore:Boolean,textColor:{type:String,default:""},texts:{type:W(Array),default:()=>ut(["Extremely bad","Disappointed","Fair","Satisfied","Surprise"])},scoreTemplate:{type:String,default:"{value}"},size:Vt,label:{type:String,default:void 0},clearable:{type:Boolean,default:!1}}),KS={[at]:t=>be(t),[Ie]:t=>be(t)},wG=["id","aria-label","aria-labelledby","aria-valuenow","aria-valuetext","aria-valuemax"],kG=["onMousemove","onClick"],SG=e.defineComponent({name:"ElRate"}),EG=e.defineComponent({...SG,props:HS,emits:KS,setup(t,{expose:n,emit:o}){const r=t;function l(z,$){const R=x=>nt(x),N=Object.keys($).map(x=>+x).filter(x=>{const H=$[x];return(R(H)?H.excluded:!1)?zx-H),A=$[N[0]];return R(A)&&A.value||A}const a=e.inject(nr,void 0),s=e.inject(Gn,void 0),i=St(),c=Q("rate"),{inputId:f,isLabeledByFormItem:u}=vo(r,{formItemContext:s}),d=e.ref(r.modelValue),p=e.ref(-1),h=e.ref(!0),g=e.computed(()=>[c.b(),c.m(i.value)]),m=e.computed(()=>r.disabled||(a==null?void 0:a.disabled)),b=e.computed(()=>c.cssVarBlock({"void-color":r.voidColor,"disabled-void-color":r.disabledVoidColor,"fill-color":w.value})),y=e.computed(()=>{let z="";return r.showScore?z=r.scoreTemplate.replace(/\{\s*value\s*\}/,m.value?`${r.modelValue}`:`${d.value}`):r.showText&&(z=r.texts[Math.ceil(d.value)-1]),z}),C=e.computed(()=>r.modelValue*100-Math.floor(r.modelValue)*100),k=e.computed(()=>Re(r.colors)?{[r.lowThreshold]:r.colors[0],[r.highThreshold]:{value:r.colors[1],excluded:!0},[r.max]:r.colors[2]}:r.colors),w=e.computed(()=>{const z=l(d.value,k.value);return nt(z)?"":z}),E=e.computed(()=>{let z="";return m.value?z=`${C.value}%`:r.allowHalf&&(z="50%"),{color:w.value,width:z}}),S=e.computed(()=>{let z=Re(r.icons)?[...r.icons]:{...r.icons};return z=e.markRaw(z),Re(z)?{[r.lowThreshold]:z[0],[r.highThreshold]:{value:z[1],excluded:!0},[r.max]:z[2]}:z}),_=e.computed(()=>l(r.modelValue,S.value)),B=e.computed(()=>m.value?De(r.disabledVoidIcon)?r.disabledVoidIcon:e.markRaw(r.disabledVoidIcon):De(r.voidIcon)?r.voidIcon:e.markRaw(r.voidIcon)),M=e.computed(()=>l(d.value,S.value));function P(z){const $=m.value&&C.value>0&&z-1r.modelValue,R=r.allowHalf&&h.value&&z-.5<=d.value&&z>d.value;return $||R}function T(z){r.clearable&&z===r.modelValue&&(z=0),o(Ie,z),r.modelValue!==z&&o("change",z)}function I(z){m.value||(r.allowHalf&&h.value?T(d.value):T(z))}function v(z){if(m.value)return;let $=d.value;const R=z.code;return R===pe.up||R===pe.right?(r.allowHalf?$+=.5:$+=1,z.stopPropagation(),z.preventDefault()):(R===pe.left||R===pe.down)&&(r.allowHalf?$-=.5:$-=1,z.stopPropagation(),z.preventDefault()),$=$<0?0:$,$=$>r.max?r.max:$,o(Ie,$),o("change",$),$}function O(z,$){if(!m.value){if(r.allowHalf&&$){let R=$.target;Fn(R,c.e("item"))&&(R=R.querySelector(`.${c.e("icon")}`)),(R.clientWidth===0||Fn(R,c.e("decimal")))&&(R=R.parentNode),h.value=$.offsetX*2<=R.clientWidth,d.value=h.value?z-.5:z}else d.value=z;p.value=z}}function D(){m.value||(r.allowHalf&&(h.value=r.modelValue!==Math.floor(r.modelValue)),d.value=r.modelValue,p.value=-1)}return e.watch(()=>r.modelValue,z=>{d.value=z,h.value=r.modelValue!==Math.floor(r.modelValue)}),r.modelValue||o(Ie,0),n({setCurrentValue:O,resetCurrentValue:D}),(z,$)=>{var R;return e.openBlock(),e.createElementBlock("div",{id:e.unref(f),class:e.normalizeClass([e.unref(g),e.unref(c).is("disabled",e.unref(m))]),role:"slider","aria-label":e.unref(u)?void 0:z.label||"rating","aria-labelledby":e.unref(u)?(R=e.unref(s))==null?void 0:R.labelId:void 0,"aria-valuenow":d.value,"aria-valuetext":e.unref(y)||void 0,"aria-valuemin":"0","aria-valuemax":z.max,tabindex:"0",style:e.normalizeStyle(e.unref(b)),onKeydown:v},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(z.max,(N,A)=>(e.openBlock(),e.createElementBlock("span",{key:A,class:e.normalizeClass(e.unref(c).e("item")),onMousemove:x=>O(N,x),onMouseleave:D,onClick:x=>I(N)},[e.createVNode(e.unref(fe),{class:e.normalizeClass([e.unref(c).e("icon"),{hover:p.value===N},e.unref(c).is("active",N<=d.value)])},{default:e.withCtx(()=>[P(N)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(M)),null,null,512)),[[e.vShow,N<=d.value]]),e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(B)),null,null,512)),[[e.vShow,!(N<=d.value)]])],64)),P(N)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(B)),{class:e.normalizeClass([e.unref(c).em("decimal","box")])},null,8,["class"])),e.createVNode(e.unref(fe),{style:e.normalizeStyle(e.unref(E)),class:e.normalizeClass([e.unref(c).e("icon"),e.unref(c).e("decimal")])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(_))))]),_:1},8,["style","class"])],64)):e.createCommentVNode("v-if",!0)]),_:2},1032,["class"])],42,kG))),128)),z.showText||z.showScore?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(c).e("text")),style:e.normalizeStyle({color:z.textColor})},e.toDisplayString(e.unref(y)),7)):e.createCommentVNode("v-if",!0)],46,wG)}}});var NG=se(EG,[["__file","rate.vue"]]);const WS=Me(NG),zr={success:"icon-success",warning:"icon-warning",error:"icon-error",info:"icon-info"},dp={[zr.success]:iD,[zr.warning]:Vs,[zr.error]:Wd,[zr.info]:jd},jS=le({title:{type:String,default:""},subTitle:{type:String,default:""},icon:{type:String,values:["success","warning","info","error"],default:"info"}}),_G=e.defineComponent({name:"ElResult"}),BG=e.defineComponent({..._G,props:jS,setup(t){const n=t,o=Q("result"),r=e.computed(()=>{const l=n.icon,a=l&&zr[l]?zr[l]:"icon-info",s=dp[a]||dp["icon-info"];return{class:a,component:s}});return(l,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(o).b())},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("icon"))},[e.renderSlot(l.$slots,"icon",{},()=>[e.unref(r).component?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(r).component),{key:0,class:e.normalizeClass(e.unref(r).class)},null,8,["class"])):e.createCommentVNode("v-if",!0)])],2),l.title||l.$slots.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).e("title"))},[e.renderSlot(l.$slots,"title",{},()=>[e.createElementVNode("p",null,e.toDisplayString(l.title),1)])],2)):e.createCommentVNode("v-if",!0),l.subTitle||l.$slots["sub-title"]?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(o).e("subtitle"))},[e.renderSlot(l.$slots,"sub-title",{},()=>[e.createElementVNode("p",null,e.toDisplayString(l.subTitle),1)])],2)):e.createCommentVNode("v-if",!0),l.$slots.extra?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(e.unref(o).e("extra"))},[e.renderSlot(l.$slots,"extra")],2)):e.createCommentVNode("v-if",!0)],2))}});var $G=se(BG,[["__file","result.vue"]]);const US=Me($G);var GS=Number.isNaN||function(n){return typeof n=="number"&&n!==n};function TG(t,n){return!!(t===n||GS(t)&&GS(n))}function vG(t,n){if(t.length!==n.length)return!1;for(var o=0;o{const n=e.getCurrentInstance().proxy.$props;return e.computed(()=>{const o=(r,l,a)=>({});return n.perfMode?Gl(o):VG(o)})},fp=50,Di="itemRendered",Li="scroll",kl="forward",xi="backward",An="auto",Fi="smart",Ma="start",ho="center",Ia="end",Sl="horizontal",up="vertical",MG="ltr",El="rtl",Pa="negative",pp="positive-ascending",mp="positive-descending",IG={[Sl]:"left",[up]:"top"},PG=20,RG={[Sl]:"deltaX",[up]:"deltaY"};var OG=({atEndEdge:t,atStartEdge:n,layout:o},r)=>{let l,a=0;const s=c=>c<0&&n.value||c>0&&t.value;return{hasReachedEdge:s,onWheel:c=>{Rs(l);const f=c[RG[o.value]];s(a)&&s(a+f)||(a+=f,Lm()||c.preventDefault(),l=rl(()=>{r(a),a=0}))}}};const hp=Kn({type:W([Number,Function]),required:!0}),gp=Kn({type:Number}),yp=Kn({type:Number,default:2}),AG=Kn({type:String,values:["ltr","rtl"],default:"ltr"}),bp=Kn({type:Number,default:0}),Hi=Kn({type:Number,required:!0}),YS=Kn({type:String,values:["horizontal","vertical"],default:up}),Cp=le({className:{type:String,default:""},containerElement:{type:W([String,Object]),default:"div"},data:{type:W(Array),default:()=>ut([])},direction:AG,height:{type:[String,Number],required:!0},innerElement:{type:[String,Object],default:"div"},style:{type:W([Object,String,Array])},useIsScrolling:{type:Boolean,default:!1},width:{type:[Number,String],required:!1},perfMode:{type:Boolean,default:!0},scrollbarAlwaysOn:{type:Boolean,default:!1}}),wp=le({cache:yp,estimatedItemSize:gp,layout:YS,initScrollOffset:bp,total:Hi,itemSize:hp,...Cp}),kp={type:Number,default:6},XS={type:Number,default:0},ZS={type:Number,default:2},ir=le({columnCache:yp,columnWidth:hp,estimatedColumnWidth:gp,estimatedRowHeight:gp,initScrollLeft:bp,initScrollTop:bp,itemKey:{type:W(Function),default:({columnIndex:t,rowIndex:n})=>`${n}:${t}`},rowCache:yp,rowHeight:hp,totalColumn:Hi,totalRow:Hi,hScrollbarSize:kp,vScrollbarSize:kp,scrollbarStartGap:XS,scrollbarEndGap:ZS,role:String,...Cp}),Sp=le({alwaysOn:Boolean,class:String,layout:YS,total:Hi,ratio:{type:Number,required:!0},clientSize:{type:Number,required:!0},scrollFrom:{type:Number,required:!0},scrollbarSize:kp,startGap:XS,endGap:ZS,visible:Boolean}),Dr=(t,n)=>tt===MG||t===El||t===Sl,JS=t=>t===El;let Nl=null;function Ki(t=!1){if(Nl===null||t){const n=document.createElement("div"),o=n.style;o.width="50px",o.height="50px",o.overflow="scroll",o.direction="rtl";const r=document.createElement("div"),l=r.style;return l.width="100px",l.height="100px",n.appendChild(r),document.body.appendChild(n),n.scrollLeft>0?Nl=mp:(n.scrollLeft=1,n.scrollLeft===0?Nl=Pa:Nl=pp),document.body.removeChild(n),Nl}return Nl}function zG({move:t,size:n,bar:o},r){const l={},a=`translate${o.axis}(${t}px)`;return l[o.size]=n,l.transform=a,l.msTransform=a,l.webkitTransform=a,r==="horizontal"?l.height="100%":l.width="100%",l}var Ep=e.defineComponent({name:"ElVirtualScrollBar",props:Sp,emits:["scroll","start-move","stop-move"],setup(t,{emit:n}){const o=e.computed(()=>t.startGap+t.endGap),r=Q("virtual-scrollbar"),l=Q("scrollbar"),a=e.ref(),s=e.ref();let i=null,c=null;const f=e.reactive({isDragging:!1,traveled:0}),u=e.computed(()=>Rf[t.layout]),d=e.computed(()=>t.clientSize-e.unref(o)),p=e.computed(()=>({position:"absolute",width:`${Sl===t.layout?d.value:t.scrollbarSize}px`,height:`${Sl===t.layout?t.scrollbarSize:d.value}px`,[IG[t.layout]]:"2px",right:"2px",bottom:"2px",borderRadius:"4px"})),h=e.computed(()=>{const S=t.ratio,_=t.clientSize;if(S>=100)return Number.POSITIVE_INFINITY;if(S>=50)return S*_/100;const B=_/3;return Math.floor(Math.min(Math.max(S*_,PG),B))}),g=e.computed(()=>{if(!Number.isFinite(h.value))return{display:"none"};const S=`${h.value}px`;return zG({bar:u.value,size:S,move:f.traveled},t.layout)}),m=e.computed(()=>Math.floor(t.clientSize-h.value-e.unref(o))),b=()=>{window.addEventListener("mousemove",w),window.addEventListener("mouseup",k);const S=e.unref(s);!S||(c=document.onselectstart,document.onselectstart=()=>!1,S.addEventListener("touchmove",w),S.addEventListener("touchend",k))},y=()=>{window.removeEventListener("mousemove",w),window.removeEventListener("mouseup",k),document.onselectstart=c,c=null;const S=e.unref(s);!S||(S.removeEventListener("touchmove",w),S.removeEventListener("touchend",k))},C=S=>{S.stopImmediatePropagation(),!(S.ctrlKey||[1,2].includes(S.button))&&(f.isDragging=!0,f[u.value.axis]=S.currentTarget[u.value.offset]-(S[u.value.client]-S.currentTarget.getBoundingClientRect()[u.value.direction]),n("start-move"),b())},k=()=>{f.isDragging=!1,f[u.value.axis]=0,n("stop-move"),y()},w=S=>{const{isDragging:_}=f;if(!_||!s.value||!a.value)return;const B=f[u.value.axis];if(!B)return;Rs(i);const M=(a.value.getBoundingClientRect()[u.value.direction]-S[u.value.client])*-1,P=s.value[u.value.offset]-B,T=M-P;i=rl(()=>{f.traveled=Math.max(t.startGap,Math.min(T,m.value)),n("scroll",T,m.value)})},E=S=>{const _=Math.abs(S.target.getBoundingClientRect()[u.value.direction]-S[u.value.client]),B=s.value[u.value.offset]/2,M=_-B;f.traveled=Math.max(0,Math.min(M,m.value)),n("scroll",M,m.value)};return e.watch(()=>t.scrollFrom,S=>{f.isDragging||(f.traveled=Math.ceil(S*m.value))}),e.onBeforeUnmount(()=>{y()}),()=>e.h("div",{role:"presentation",ref:a,class:[r.b(),t.class,(t.alwaysOn||f.isDragging)&&"always-on"],style:p.value,onMousedown:e.withModifiers(E,["stop","prevent"]),onTouchstartPrevent:C},e.h("div",{ref:s,class:l.e("thumb"),style:g.value,onMousedown:C},[]))}}),QS=({name:t,getOffset:n,getItemSize:o,getItemOffset:r,getEstimatedTotalSize:l,getStartIndexForOffset:a,getStopIndexForStartIndex:s,initCache:i,clearCache:c,validateProps:f})=>e.defineComponent({name:t!=null?t:"ElVirtualList",props:wp,emits:[Di,Li],setup(u,{emit:d,expose:p}){f(u);const h=e.getCurrentInstance(),g=Q("vl"),m=e.ref(i(u,h)),b=qS(),y=e.ref(),C=e.ref(),k=e.ref(),w=e.ref({isScrolling:!1,scrollDir:"forward",scrollOffset:be(u.initScrollOffset)?u.initScrollOffset:0,updateRequested:!1,isScrollbarDragging:!1,scrollbarAlwaysOn:u.scrollbarAlwaysOn}),E=e.computed(()=>{const{total:K,cache:q}=u,{isScrolling:ne,scrollDir:Y,scrollOffset:Z}=e.unref(w);if(K===0)return[0,0,0,0];const U=a(u,Z,e.unref(m)),re=s(u,U,Z,e.unref(m)),te=!ne||Y===xi?Math.max(1,q):1,oe=!ne||Y===kl?Math.max(1,q):1;return[Math.max(0,U-te),Math.max(0,Math.min(K-1,re+oe)),U,re]}),S=e.computed(()=>l(u,e.unref(m))),_=e.computed(()=>Ra(u.layout)),B=e.computed(()=>[{position:"relative",[`overflow-${_.value?"x":"y"}`]:"scroll",WebkitOverflowScrolling:"touch",willChange:"transform"},{direction:u.direction,height:be(u.height)?`${u.height}px`:u.height,width:be(u.width)?`${u.width}px`:u.width},u.style]),M=e.computed(()=>{const K=e.unref(S),q=e.unref(_);return{height:q?"100%":`${K}px`,pointerEvents:e.unref(w).isScrolling?"none":void 0,width:q?`${K}px`:"100%"}}),P=e.computed(()=>_.value?u.width:u.height),{onWheel:T}=OG({atStartEdge:e.computed(()=>w.value.scrollOffset<=0),atEndEdge:e.computed(()=>w.value.scrollOffset>=S.value),layout:e.computed(()=>u.layout)},K=>{var q,ne;(ne=(q=k.value).onMouseUp)==null||ne.call(q),$(Math.min(w.value.scrollOffset+K,S.value-P.value))}),I=()=>{const{total:K}=u;if(K>0){const[Z,U,re,te]=e.unref(E);d(Di,Z,U,re,te)}const{scrollDir:q,scrollOffset:ne,updateRequested:Y}=e.unref(w);d(Li,q,ne,Y)},v=K=>{const{clientHeight:q,scrollHeight:ne,scrollTop:Y}=K.currentTarget,Z=e.unref(w);if(Z.scrollOffset===Y)return;const U=Math.max(0,Math.min(Y,ne-q));w.value={...Z,isScrolling:!0,scrollDir:Dr(Z.scrollOffset,U),scrollOffset:U,updateRequested:!1},e.nextTick(A)},O=K=>{const{clientWidth:q,scrollLeft:ne,scrollWidth:Y}=K.currentTarget,Z=e.unref(w);if(Z.scrollOffset===ne)return;const{direction:U}=u;let re=ne;if(U===El)switch(Ki()){case Pa:{re=-ne;break}case mp:{re=Y-q-ne;break}}re=Math.max(0,Math.min(re,Y-q)),w.value={...Z,isScrolling:!0,scrollDir:Dr(Z.scrollOffset,re),scrollOffset:re,updateRequested:!1},e.nextTick(A)},D=K=>{e.unref(_)?O(K):v(K),I()},z=(K,q)=>{const ne=(S.value-P.value)/q*K;$(Math.min(S.value-P.value,ne))},$=K=>{K=Math.max(K,0),K!==e.unref(w).scrollOffset&&(w.value={...e.unref(w),scrollOffset:K,scrollDir:Dr(e.unref(w).scrollOffset,K),updateRequested:!0},e.nextTick(A))},R=(K,q=An)=>{const{scrollOffset:ne}=e.unref(w);K=Math.max(0,Math.min(K,u.total-1)),$(n(u,K,q,ne,e.unref(m)))},N=K=>{const{direction:q,itemSize:ne,layout:Y}=u,Z=b.value(c&&ne,c&&Y,c&&q);let U;if(Lt(Z,String(K)))U=Z[K];else{const re=r(u,K,e.unref(m)),te=o(u,K,e.unref(m)),oe=e.unref(_),ie=q===El,ye=oe?re:0;Z[K]=U={position:"absolute",left:ie?void 0:`${ye}px`,right:ie?`${ye}px`:void 0,top:oe?0:`${re}px`,height:oe?"100%":`${te}px`,width:oe?`${te}px`:"100%"}}return U},A=()=>{w.value.isScrolling=!1,e.nextTick(()=>{b.value(-1,null,null)})},x=()=>{const K=y.value;K&&(K.scrollTop=0)};e.onMounted(()=>{if(!He)return;const{initScrollOffset:K}=u,q=e.unref(y);be(K)&&q&&(e.unref(_)?q.scrollLeft=K:q.scrollTop=K),I()}),e.onUpdated(()=>{const{direction:K,layout:q}=u,{scrollOffset:ne,updateRequested:Y}=e.unref(w),Z=e.unref(y);if(Y&&Z)if(q===Sl)if(K===El)switch(Ki()){case Pa:{Z.scrollLeft=-ne;break}case pp:{Z.scrollLeft=ne;break}default:{const{clientWidth:U,scrollWidth:re}=Z;Z.scrollLeft=re-U-ne;break}}else Z.scrollLeft=ne;else Z.scrollTop=ne});const H={ns:g,clientSize:P,estimatedTotalSize:S,windowStyle:B,windowRef:y,innerRef:C,innerStyle:M,itemsToRender:E,scrollbarRef:k,states:w,getItemStyle:N,onScroll:D,onScrollbarScroll:z,onWheel:T,scrollTo:$,scrollToItem:R,resetScrollTop:x};return p({windowRef:y,innerRef:C,getItemStyleCache:b,scrollTo:$,scrollToItem:R,resetScrollTop:x,states:w}),H},render(u){var d;const{$slots:p,className:h,clientSize:g,containerElement:m,data:b,getItemStyle:y,innerElement:C,itemsToRender:k,innerStyle:w,layout:E,total:S,onScroll:_,onScrollbarScroll:B,onWheel:M,states:P,useIsScrolling:T,windowStyle:I,ns:v}=u,[O,D]=k,z=e.resolveDynamicComponent(m),$=e.resolveDynamicComponent(C),R=[];if(S>0)for(let H=O;H<=D;H++)R.push((d=p.default)==null?void 0:d.call(p,{data:b,key:H,index:H,isScrolling:T?P.isScrolling:void 0,style:y(H)}));const N=[e.h($,{style:w,ref:"innerRef"},De($)?R:{default:()=>R})],A=e.h(Ep,{ref:"scrollbarRef",clientSize:g,layout:E,onScroll:B,ratio:g*100/this.estimatedTotalSize,scrollFrom:P.scrollOffset/(this.estimatedTotalSize-g),total:S}),x=e.h(z,{class:[v.e("window"),h],style:I,onScroll:_,onWheel:M,ref:"windowRef",key:0},De(z)?[N]:{default:()=>[N]});return e.h("div",{key:0,class:[v.e("wrapper"),P.scrollbarAlwaysOn?"always-on":""]},[x,A])}}),Np=QS({name:"ElFixedSizeList",getItemOffset:({itemSize:t},n)=>n*t,getItemSize:({itemSize:t})=>t,getEstimatedTotalSize:({total:t,itemSize:n})=>n*t,getOffset:({height:t,total:n,itemSize:o,layout:r,width:l},a,s,i)=>{const c=Ra(r)?l:t,f=Math.max(0,n*o-c),u=Math.min(f,a*o),d=Math.max(0,(a+1)*o-c);switch(s===Fi&&(i>=d-c&&i<=u+c?s=An:s=ho),s){case Ma:return u;case Ia:return d;case ho:{const p=Math.round(d+(u-d)/2);return pf+Math.floor(c/2)?f:p}case An:default:return i>=d&&i<=u?i:iMath.max(0,Math.min(t-1,Math.floor(o/n))),getStopIndexForStartIndex:({height:t,total:n,itemSize:o,layout:r,width:l},a,s)=>{const i=a*o,c=Ra(r)?l:t,f=Math.ceil((c+s-i)/o);return Math.max(0,Math.min(n-1,a+f-1))},initCache(){},clearCache:!0,validateProps(){}});const _l=(t,n,o)=>{const{itemSize:r}=t,{items:l,lastVisitedIndex:a}=o;if(n>a){let s=0;if(a>=0){const i=l[a];s=i.offset+i.size}for(let i=a+1;i<=n;i++){const c=r(i);l[i]={offset:s,size:c},s+=c}o.lastVisitedIndex=n}return l[n]},DG=(t,n,o)=>{const{items:r,lastVisitedIndex:l}=n;return(l>0?r[l].offset:0)>=o?eE(t,n,0,l,o):LG(t,n,Math.max(0,l),o)},eE=(t,n,o,r,l)=>{for(;o<=r;){const a=o+Math.floor((r-o)/2),s=_l(t,a,n).offset;if(s===l)return a;sl&&(r=a-1)}return Math.max(0,o-1)},LG=(t,n,o,r)=>{const{total:l}=t;let a=1;for(;o{let l=0;if(r>=t&&(r=t-1),r>=0){const i=n[r];l=i.offset+i.size}const s=(t-r-1)*o;return l+s};var nE=QS({name:"ElDynamicSizeList",getItemOffset:(t,n,o)=>_l(t,n,o).offset,getItemSize:(t,n,{items:o})=>o[n].size,getEstimatedTotalSize:tE,getOffset:(t,n,o,r,l)=>{const{height:a,layout:s,width:i}=t,c=Ra(s)?i:a,f=_l(t,n,l),u=tE(t,l),d=Math.max(0,Math.min(u-c,f.offset)),p=Math.max(0,f.offset-c+f.size);switch(o===Fi&&(r>=p-c&&r<=d+c?o=An:o=ho),o){case Ma:return d;case Ia:return p;case ho:return Math.round(p+(d-p)/2);case An:default:return r>=p&&r<=d?r:rDG(t,o,n),getStopIndexForStartIndex:(t,n,o,r)=>{const{height:l,total:a,layout:s,width:i}=t,c=Ra(s)?i:l,f=_l(t,n,r),u=o+c;let d=f.offset+f.size,p=n;for(;p{var a,s;o.lastVisitedIndex=Math.min(o.lastVisitedIndex,r-1),(a=n.exposed)==null||a.getItemStyleCache(-1),l&&((s=n.proxy)==null||s.$forceUpdate())},o},clearCache:!1,validateProps:({itemSize:t})=>{}});const xG=({atXEndEdge:t,atXStartEdge:n,atYEndEdge:o,atYStartEdge:r},l)=>{let a=null,s=0,i=0;const c=(u,d)=>{const p=u<=0&&n.value||u>=0&&t.value,h=d<=0&&r.value||d>=0&&o.value;return p&&h};return{hasReachedEdge:c,onWheel:u=>{Rs(a);let d=u.deltaX,p=u.deltaY;Math.abs(d)>Math.abs(p)?p=0:d=0,u.shiftKey&&p!==0&&(d=p,p=0),!(c(s,i)&&c(s+d,i+p))&&(s+=d,i+=p,u.preventDefault(),a=rl(()=>{l(s,i),s=0,i=0}))}}};var oE=({name:t,clearCache:n,getColumnPosition:o,getColumnStartIndexForOffset:r,getColumnStopIndexForStartIndex:l,getEstimatedTotalHeight:a,getEstimatedTotalWidth:s,getColumnOffset:i,getRowOffset:c,getRowPosition:f,getRowStartIndexForOffset:u,getRowStopIndexForStartIndex:d,initCache:p,injectToInstance:h,validateProps:g})=>e.defineComponent({name:t!=null?t:"ElVirtualList",props:ir,emits:[Di,Li],setup(m,{emit:b,expose:y,slots:C}){const k=Q("vl");g(m);const w=e.getCurrentInstance(),E=e.ref(p(m,w));h==null||h(w,E);const S=e.ref(),_=e.ref(),B=e.ref(),M=e.ref(null),P=e.ref({isScrolling:!1,scrollLeft:be(m.initScrollLeft)?m.initScrollLeft:0,scrollTop:be(m.initScrollTop)?m.initScrollTop:0,updateRequested:!1,xAxisScrollDir:kl,yAxisScrollDir:kl}),T=qS(),I=e.computed(()=>Number.parseInt(`${m.height}`,10)),v=e.computed(()=>Number.parseInt(`${m.width}`,10)),O=e.computed(()=>{const{totalColumn:he,totalRow:Ce,columnCache:ge}=m,{isScrolling:me,xAxisScrollDir:_e,scrollLeft:$e}=e.unref(P);if(he===0||Ce===0)return[0,0,0,0];const Ae=r(m,$e,e.unref(E)),Oe=l(m,Ae,$e,e.unref(E)),ce=!me||_e===xi?Math.max(1,ge):1,Ee=!me||_e===kl?Math.max(1,ge):1;return[Math.max(0,Ae-ce),Math.max(0,Math.min(he-1,Oe+Ee)),Ae,Oe]}),D=e.computed(()=>{const{totalColumn:he,totalRow:Ce,rowCache:ge}=m,{isScrolling:me,yAxisScrollDir:_e,scrollTop:$e}=e.unref(P);if(he===0||Ce===0)return[0,0,0,0];const Ae=u(m,$e,e.unref(E)),Oe=d(m,Ae,$e,e.unref(E)),ce=!me||_e===xi?Math.max(1,ge):1,Ee=!me||_e===kl?Math.max(1,ge):1;return[Math.max(0,Ae-ce),Math.max(0,Math.min(Ce-1,Oe+Ee)),Ae,Oe]}),z=e.computed(()=>a(m,e.unref(E))),$=e.computed(()=>s(m,e.unref(E))),R=e.computed(()=>{var he;return[{position:"relative",overflow:"hidden",WebkitOverflowScrolling:"touch",willChange:"transform"},{direction:m.direction,height:be(m.height)?`${m.height}px`:m.height,width:be(m.width)?`${m.width}px`:m.width},(he=m.style)!=null?he:{}]}),N=e.computed(()=>{const he=`${e.unref($)}px`;return{height:`${e.unref(z)}px`,pointerEvents:e.unref(P).isScrolling?"none":void 0,width:he}}),A=()=>{const{totalColumn:he,totalRow:Ce}=m;if(he>0&&Ce>0){const[Oe,ce,Ee,Le]=e.unref(O),[Xe,Qe,ke,J]=e.unref(D);b(Di,{columnCacheStart:Oe,columnCacheEnd:ce,rowCacheStart:Xe,rowCacheEnd:Qe,columnVisibleStart:Ee,columnVisibleEnd:Le,rowVisibleStart:ke,rowVisibleEnd:J})}const{scrollLeft:ge,scrollTop:me,updateRequested:_e,xAxisScrollDir:$e,yAxisScrollDir:Ae}=e.unref(P);b(Li,{xAxisScrollDir:$e,scrollLeft:ge,yAxisScrollDir:Ae,scrollTop:me,updateRequested:_e})},x=he=>{const{clientHeight:Ce,clientWidth:ge,scrollHeight:me,scrollLeft:_e,scrollTop:$e,scrollWidth:Ae}=he.currentTarget,Oe=e.unref(P);if(Oe.scrollTop===$e&&Oe.scrollLeft===_e)return;let ce=_e;if(JS(m.direction))switch(Ki()){case Pa:ce=-_e;break;case mp:ce=Ae-ge-_e;break}P.value={...Oe,isScrolling:!0,scrollLeft:ce,scrollTop:Math.max(0,Math.min($e,me-Ce)),updateRequested:!0,xAxisScrollDir:Dr(Oe.scrollLeft,ce),yAxisScrollDir:Dr(Oe.scrollTop,$e)},e.nextTick(()=>U()),re(),A()},H=(he,Ce)=>{const ge=e.unref(I),me=(z.value-ge)/Ce*he;ne({scrollTop:Math.min(z.value-ge,me)})},K=(he,Ce)=>{const ge=e.unref(v),me=($.value-ge)/Ce*he;ne({scrollLeft:Math.min($.value-ge,me)})},{onWheel:q}=xG({atXStartEdge:e.computed(()=>P.value.scrollLeft<=0),atXEndEdge:e.computed(()=>P.value.scrollLeft>=$.value-e.unref(v)),atYStartEdge:e.computed(()=>P.value.scrollTop<=0),atYEndEdge:e.computed(()=>P.value.scrollTop>=z.value-e.unref(I))},(he,Ce)=>{var ge,me,_e,$e;(me=(ge=_.value)==null?void 0:ge.onMouseUp)==null||me.call(ge),($e=(_e=B.value)==null?void 0:_e.onMouseUp)==null||$e.call(_e);const Ae=e.unref(v),Oe=e.unref(I);ne({scrollLeft:Math.min(P.value.scrollLeft+he,$.value-Ae),scrollTop:Math.min(P.value.scrollTop+Ce,z.value-Oe)})}),ne=({scrollLeft:he=P.value.scrollLeft,scrollTop:Ce=P.value.scrollTop})=>{he=Math.max(he,0),Ce=Math.max(Ce,0);const ge=e.unref(P);Ce===ge.scrollTop&&he===ge.scrollLeft||(P.value={...ge,xAxisScrollDir:Dr(ge.scrollLeft,he),yAxisScrollDir:Dr(ge.scrollTop,Ce),scrollLeft:he,scrollTop:Ce,updateRequested:!0},e.nextTick(()=>U()),re(),A())},Y=(he=0,Ce=0,ge=An)=>{const me=e.unref(P);Ce=Math.max(0,Math.min(Ce,m.totalColumn-1)),he=Math.max(0,Math.min(he,m.totalRow-1));const _e=Cy(k.namespace.value),$e=e.unref(E),Ae=a(m,$e),Oe=s(m,$e);ne({scrollLeft:i(m,Ce,ge,me.scrollLeft,$e,Oe>m.width?_e:0),scrollTop:c(m,he,ge,me.scrollTop,$e,Ae>m.height?_e:0)})},Z=(he,Ce)=>{const{columnWidth:ge,direction:me,rowHeight:_e}=m,$e=T.value(n&&ge,n&&_e,n&&me),Ae=`${he},${Ce}`;if(Lt($e,Ae))return $e[Ae];{const[,Oe]=o(m,Ce,e.unref(E)),ce=e.unref(E),Ee=JS(me),[Le,Xe]=f(m,he,ce),[Qe]=o(m,Ce,ce);return $e[Ae]={position:"absolute",left:Ee?void 0:`${Oe}px`,right:Ee?`${Oe}px`:void 0,top:`${Xe}px`,height:`${Le}px`,width:`${Qe}px`},$e[Ae]}},U=()=>{P.value.isScrolling=!1,e.nextTick(()=>{T.value(-1,null,null)})};e.onMounted(()=>{if(!He)return;const{initScrollLeft:he,initScrollTop:Ce}=m,ge=e.unref(S);ge&&(be(he)&&(ge.scrollLeft=he),be(Ce)&&(ge.scrollTop=Ce)),A()});const re=()=>{const{direction:he}=m,{scrollLeft:Ce,scrollTop:ge,updateRequested:me}=e.unref(P),_e=e.unref(S);if(me&&_e){if(he===El)switch(Ki()){case Pa:{_e.scrollLeft=-Ce;break}case pp:{_e.scrollLeft=Ce;break}default:{const{clientWidth:$e,scrollWidth:Ae}=_e;_e.scrollLeft=Ae-$e-Ce;break}}else _e.scrollLeft=Math.max(0,Ce);_e.scrollTop=Math.max(0,ge)}},{resetAfterColumnIndex:te,resetAfterRowIndex:oe,resetAfter:ie}=w.proxy;y({windowRef:S,innerRef:M,getItemStyleCache:T,scrollTo:ne,scrollToItem:Y,states:P,resetAfterColumnIndex:te,resetAfterRowIndex:oe,resetAfter:ie});const ye=()=>{const{scrollbarAlwaysOn:he,scrollbarStartGap:Ce,scrollbarEndGap:ge,totalColumn:me,totalRow:_e}=m,$e=e.unref(v),Ae=e.unref(I),Oe=e.unref($),ce=e.unref(z),{scrollLeft:Ee,scrollTop:Le}=e.unref(P),Xe=e.h(Ep,{ref:_,alwaysOn:he,startGap:Ce,endGap:ge,class:k.e("horizontal"),clientSize:$e,layout:"horizontal",onScroll:K,ratio:$e*100/Oe,scrollFrom:Ee/(Oe-$e),total:_e,visible:!0}),Qe=e.h(Ep,{ref:B,alwaysOn:he,startGap:Ce,endGap:ge,class:k.e("vertical"),clientSize:Ae,layout:"vertical",onScroll:H,ratio:Ae*100/ce,scrollFrom:Le/(ce-Ae),total:me,visible:!0});return{horizontalScrollbar:Xe,verticalScrollbar:Qe}},Ne=()=>{var he;const[Ce,ge]=e.unref(O),[me,_e]=e.unref(D),{data:$e,totalColumn:Ae,totalRow:Oe,useIsScrolling:ce,itemKey:Ee}=m,Le=[];if(Oe>0&&Ae>0)for(let Xe=me;Xe<=_e;Xe++)for(let Qe=Ce;Qe<=ge;Qe++)Le.push((he=C.default)==null?void 0:he.call(C,{columnIndex:Qe,data:$e,key:Ee({columnIndex:Qe,data:$e,rowIndex:Xe}),isScrolling:ce?e.unref(P).isScrolling:void 0,style:Z(Xe,Qe),rowIndex:Xe}));return Le},Te=()=>{const he=e.resolveDynamicComponent(m.innerElement),Ce=Ne();return[e.h(he,{style:e.unref(N),ref:M},De(he)?Ce:{default:()=>Ce})]};return()=>{const he=e.resolveDynamicComponent(m.containerElement),{horizontalScrollbar:Ce,verticalScrollbar:ge}=ye(),me=Te();return e.h("div",{key:0,class:k.e("wrapper"),role:m.role},[e.h(he,{class:m.className,style:e.unref(R),onScroll:x,onWheel:q,ref:S},De(he)?me:{default:()=>me}),Ce,ge])}}}),rE=oE({name:"ElFixedSizeGrid",getColumnPosition:({columnWidth:t},n)=>[t,n*t],getRowPosition:({rowHeight:t},n)=>[t,n*t],getEstimatedTotalHeight:({totalRow:t,rowHeight:n})=>n*t,getEstimatedTotalWidth:({totalColumn:t,columnWidth:n})=>n*t,getColumnOffset:({totalColumn:t,columnWidth:n,width:o},r,l,a,s,i)=>{o=Number(o);const c=Math.max(0,t*n-o),f=Math.min(c,r*n),u=Math.max(0,r*n-o+i+n);switch(l==="smart"&&(a>=u-o&&a<=f+o?l=An:l=ho),l){case Ma:return f;case Ia:return u;case ho:{const d=Math.round(u+(f-u)/2);return dc+Math.floor(o/2)?c:d}case An:default:return a>=u&&a<=f?a:u>f||a{n=Number(n);const c=Math.max(0,o*t-n),f=Math.min(c,r*t),u=Math.max(0,r*t-n+i+t);switch(l===Fi&&(a>=u-n&&a<=f+n?l=An:l=ho),l){case Ma:return f;case Ia:return u;case ho:{const d=Math.round(u+(f-u)/2);return dc+Math.floor(n/2)?c:d}case An:default:return a>=u&&a<=f?a:u>f||aMath.max(0,Math.min(n-1,Math.floor(o/t))),getColumnStopIndexForStartIndex:({columnWidth:t,totalColumn:n,width:o},r,l)=>{const a=r*t,s=Math.ceil((o+l-a)/t);return Math.max(0,Math.min(n-1,r+s-1))},getRowStartIndexForOffset:({rowHeight:t,totalRow:n},o)=>Math.max(0,Math.min(n-1,Math.floor(o/t))),getRowStopIndexForStartIndex:({rowHeight:t,totalRow:n,height:o},r,l)=>{const a=r*t,s=Math.ceil((o+l-a)/t);return Math.max(0,Math.min(n-1,r+s-1))},initCache:()=>{},clearCache:!0,validateProps:({columnWidth:t,rowHeight:n})=>{}});const{max:Wi,min:lE,floor:aE}=Math,FG={column:"columnWidth",row:"rowHeight"},_p={column:"lastVisitedColumnIndex",row:"lastVisitedRowIndex"},Ro=(t,n,o,r)=>{const[l,a,s]=[o[r],t[FG[r]],o[_p[r]]];if(n>s){let i=0;if(s>=0){const c=l[s];i=c.offset+c.size}for(let c=s+1;c<=n;c++){const f=a(c);l[c]={offset:i,size:f},i+=f}o[_p[r]]=n}return l[n]},sE=(t,n,o,r,l,a)=>{for(;o<=r;){const s=o+aE((r-o)/2),i=Ro(t,s,n,a).offset;if(i===l)return s;i{const a=l==="column"?t.totalColumn:t.totalRow;let s=1;for(;o{const[l,a]=[n[r],n[_p[r]]];return(a>0?l[a].offset:0)>=o?sE(t,n,0,a,o,r):HG(t,n,Wi(0,a),o,r)},cE=({totalRow:t},{estimatedRowHeight:n,lastVisitedRowIndex:o,row:r})=>{let l=0;if(o>=t&&(o=t-1),o>=0){const i=r[o];l=i.offset+i.size}const s=(t-o-1)*n;return l+s},dE=({totalColumn:t},{column:n,estimatedColumnWidth:o,lastVisitedColumnIndex:r})=>{let l=0;if(r>t&&(r=t-1),r>=0){const i=n[r];l=i.offset+i.size}const s=(t-r-1)*o;return l+s},KG={column:dE,row:cE},fE=(t,n,o,r,l,a,s)=>{const[i,c]=[a==="row"?t.height:t.width,KG[a]],f=Ro(t,n,l,a),u=c(t,l),d=Wi(0,lE(u-i,f.offset)),p=Wi(0,f.offset-i+s+f.size);switch(o===Fi&&(r>=p-i&&r<=d+i?o=An:o=ho),o){case Ma:return d;case Ia:return p;case ho:return Math.round(p+(d-p)/2);case An:default:return r>=p&&r<=d?r:p>d||r{const r=Ro(t,n,o,"column");return[r.size,r.offset]},getRowPosition:(t,n,o)=>{const r=Ro(t,n,o,"row");return[r.size,r.offset]},getColumnOffset:(t,n,o,r,l,a)=>fE(t,n,o,r,l,"column",a),getRowOffset:(t,n,o,r,l,a)=>fE(t,n,o,r,l,"row",a),getColumnStartIndexForOffset:(t,n,o)=>iE(t,o,n,"column"),getColumnStopIndexForStartIndex:(t,n,o,r)=>{const l=Ro(t,n,r,"column"),a=o+t.width;let s=l.offset+l.size,i=n;for(;iiE(t,o,n,"row"),getRowStopIndexForStartIndex:(t,n,o,r)=>{const{totalRow:l,height:a}=t,s=Ro(t,n,r,"row"),i=o+a;let c=s.size+s.offset,f=n;for(;f{const o=({columnIndex:a,rowIndex:s},i)=>{var c,f;i=$t(i)?!0:i,be(a)&&(n.value.lastVisitedColumnIndex=Math.min(n.value.lastVisitedColumnIndex,a-1)),be(s)&&(n.value.lastVisitedRowIndex=Math.min(n.value.lastVisitedRowIndex,s-1)),(c=t.exposed)==null||c.getItemStyleCache.value(-1,null,null),i&&((f=t.proxy)==null||f.$forceUpdate())},r=(a,s)=>{o({columnIndex:a},s)},l=(a,s)=>{o({rowIndex:a},s)};Object.assign(t.proxy,{resetAfterColumnIndex:r,resetAfterRowIndex:l,resetAfter:o})},initCache:({estimatedColumnWidth:t=fp,estimatedRowHeight:n=fp})=>({column:{},estimatedColumnWidth:t,estimatedRowHeight:n,lastVisitedColumnIndex:-1,lastVisitedRowIndex:-1,row:{}}),clearCache:!1,validateProps:({columnWidth:t,rowHeight:n})=>{}});const WG=e.defineComponent({props:{item:{type:Object,required:!0},style:Object,height:Number},setup(){return{ns:Q("select")}}});function jG(t,n,o,r,l,a){return t.item.isTitle?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(t.ns.be("group","title")),style:e.normalizeStyle([t.style,{lineHeight:`${t.height}px`}])},e.toDisplayString(t.item.label),7)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(t.ns.be("group","split")),style:e.normalizeStyle(t.style)},[e.createElementVNode("span",{class:e.normalizeClass(t.ns.be("group","split-dash")),style:e.normalizeStyle({top:`${t.height/2}px`})},null,6)],6))}var UG=se(WG,[["render",jG],["__file","group-item.vue"]]);function GG(t,{emit:n}){return{hoverItem:()=>{t.disabled||n("hover",t.index)},selectOptionClick:()=>{t.disabled||n("select",t.item,t.index)}}}const pE={label:"label",value:"value",disabled:"disabled",options:"options"};function ji(t){const n=e.computed(()=>({...pE,...t.props}));return{aliasProps:n,getLabel:s=>ct(s,n.value.label),getValue:s=>ct(s,n.value.value),getDisabled:s=>ct(s,n.value.disabled),getOptions:s=>ct(s,n.value.options)}}const qG=le({allowCreate:Boolean,autocomplete:{type:W(String),default:"none"},automaticDropdown:Boolean,clearable:Boolean,clearIcon:{type:ot,default:Xo},effect:{type:W(String),default:"light"},collapseTags:Boolean,collapseTagsTooltip:{type:Boolean,default:!1},maxCollapseTags:{type:Number,default:1},defaultFirstOption:Boolean,disabled:Boolean,estimatedOptionHeight:{type:Number,default:void 0},filterable:Boolean,filterMethod:Function,height:{type:Number,default:170},itemHeight:{type:Number,default:34},id:String,loading:Boolean,loadingText:String,label:String,modelValue:{type:W([Array,String,Number,Boolean,Object])},multiple:Boolean,multipleLimit:{type:Number,default:0},name:String,noDataText:String,noMatchText:String,remoteMethod:Function,reserveKeyword:{type:Boolean,default:!0},options:{type:W(Array),required:!0},placeholder:{type:String},teleported:Pt.teleported,persistent:{type:Boolean,default:!0},popperClass:{type:String,default:""},popperOptions:{type:W(Object),default:()=>({})},remote:Boolean,size:Vt,props:{type:W(Object),default:()=>pE},valueKey:{type:String,default:"value"},scrollbarAlwaysOn:{type:Boolean,default:!1},validateEvent:{type:Boolean,default:!0},placement:{type:W(String),values:_r,default:"bottom-start"}}),YG=le({data:Array,disabled:Boolean,hovering:Boolean,item:{type:W(Object),required:!0},index:Number,style:Object,selected:Boolean,created:Boolean}),Ui=Symbol("ElSelectV2Injection"),XG=e.defineComponent({props:YG,emits:["select","hover"],setup(t,{emit:n}){const o=e.inject(Ui),r=Q("select"),{hoverItem:l,selectOptionClick:a}=GG(t,{emit:n}),{getLabel:s}=ji(o.props);return{ns:r,hoverItem:l,selectOptionClick:a,getLabel:s}}}),ZG=["aria-selected"];function JG(t,n,o,r,l,a){return e.openBlock(),e.createElementBlock("li",{"aria-selected":t.selected,style:e.normalizeStyle(t.style),class:e.normalizeClass([t.ns.be("dropdown","option-item"),t.ns.is("selected",t.selected),t.ns.is("disabled",t.disabled),t.ns.is("created",t.created),{hover:t.hovering}]),onMouseenter:n[0]||(n[0]=(...s)=>t.hoverItem&&t.hoverItem(...s)),onClick:n[1]||(n[1]=e.withModifiers((...s)=>t.selectOptionClick&&t.selectOptionClick(...s),["stop"]))},[e.renderSlot(t.$slots,"default",{item:t.item,index:t.index,disabled:t.disabled},()=>[e.createElementVNode("span",null,e.toDisplayString(t.getLabel(t.item)),1)])],46,ZG)}var QG=se(XG,[["render",JG],["__file","option-item.vue"]]),eq=e.defineComponent({name:"ElSelectDropdown",props:{data:{type:Array,required:!0},hoveringIndex:Number,width:Number},setup(t,{slots:n,expose:o}){const r=e.inject(Ui),l=Q("select"),{getLabel:a,getValue:s,getDisabled:i}=ji(r.props),c=e.ref([]),f=e.ref(),u=e.computed(()=>t.data.length);e.watch(()=>u.value,()=>{var T,I;(I=(T=r.popper.value).updatePopper)==null||I.call(T)});const d=e.computed(()=>$t(r.props.estimatedOptionHeight)),p=e.computed(()=>d.value?{itemSize:r.props.itemHeight}:{estimatedSize:r.props.estimatedOptionHeight,itemSize:T=>c.value[T]}),h=(T=[],I)=>{const{props:{valueKey:v}}=r;return nt(I)?T&&T.some(O=>e.toRaw(ct(O,v))===ct(I,v)):T.includes(I)},g=(T,I)=>{if(nt(I)){const{valueKey:v}=r.props;return ct(T,v)===ct(I,v)}else return T===I},m=(T,I)=>r.props.multiple?h(T,s(I)):g(T,s(I)),b=(T,I)=>{const{disabled:v,multiple:O,multipleLimit:D}=r.props;return v||!I&&(O?D>0&&T.length>=D:!1)},y=T=>t.hoveringIndex===T;o({listRef:f,isSized:d,isItemDisabled:b,isItemHovering:y,isItemSelected:m,scrollToItem:T=>{const I=f.value;I&&I.scrollToItem(T)},resetScrollTop:()=>{const T=f.value;T&&T.resetScrollTop()}});const w=T=>{const{index:I,data:v,style:O}=T,D=e.unref(d),{itemSize:z,estimatedSize:$}=e.unref(p),{modelValue:R}=r.props,{onSelect:N,onHover:A}=r,x=v[I];if(x.type==="Group")return e.createVNode(UG,{item:x,style:O,height:D?z:$},null);const H=m(R,x),K=b(R,H),q=y(I);return e.createVNode(QG,e.mergeProps(T,{selected:H,disabled:i(x)||K,created:!!x.created,hovering:q,item:x,onSelect:N,onHover:A}),{default:ne=>{var Y;return((Y=n.default)==null?void 0:Y.call(n,ne))||e.createVNode("span",null,[a(x)])}})},{onKeyboardNavigate:E,onKeyboardSelect:S}=r,_=()=>{E("forward")},B=()=>{E("backward")},M=()=>{r.expanded=!1},P=T=>{const{code:I}=T,{tab:v,esc:O,down:D,up:z,enter:$}=pe;switch(I!==v&&(T.preventDefault(),T.stopPropagation()),I){case v:case O:{M();break}case D:{_();break}case z:{B();break}case $:{S();break}}};return()=>{var T;const{data:I,width:v}=t,{height:O,multiple:D,scrollbarAlwaysOn:z}=r.props;if(I.length===0)return e.createVNode("div",{class:l.b("dropdown"),style:{width:`${v}px`}},[(T=n.empty)==null?void 0:T.call(n)]);const $=e.unref(d)?Np:nE;return e.createVNode("div",{class:[l.b("dropdown"),l.is("multiple",D)]},[e.createVNode($,e.mergeProps({ref:f},e.unref(p),{className:l.be("dropdown","list"),scrollbarAlwaysOn:z,data:I,height:O,width:v,total:I.length,onKeydown:P}),{default:R=>e.createVNode(w,R,null)})])}}});function tq(t,n){const{aliasProps:o,getLabel:r,getValue:l}=ji(t),a=e.ref(0),s=e.ref(null),i=e.computed(()=>t.allowCreate&&t.filterable);function c(h){const g=m=>l(m)===h;return t.options&&t.options.some(g)||n.createdOptions.some(g)}function f(h){!i.value||(t.multiple&&h.created?a.value++:s.value=h)}function u(h){if(i.value)if(h&&h.length>0&&!c(h)){const g={[o.value.value]:h,[o.value.label]:h,created:!0,[o.value.disabled]:!1};n.createdOptions.length>=a.value?n.createdOptions[a.value]=g:n.createdOptions.push(g)}else if(t.multiple)n.createdOptions.length=a.value;else{const g=s.value;n.createdOptions.length=0,g&&g.created&&n.createdOptions.push(g)}}function d(h){if(!i.value||!h||!h.created||h.created&&t.reserveKeyword&&n.inputValue===r(h))return;const g=n.createdOptions.findIndex(m=>l(m)===l(h));~g&&(n.createdOptions.splice(g,1),a.value--)}function p(){i.value&&(n.createdOptions.length=0,a.value=0)}return{createNewOption:u,removeNewOption:d,selectNewOption:f,clearAllNewOption:p}}function nq(t){const n=e.ref(!1);return{handleCompositionStart:()=>{n.value=!0},handleCompositionUpdate:a=>{const s=a.target.value,i=s[s.length-1]||"";n.value=!Ps(i)},handleCompositionEnd:a=>{n.value&&(n.value=!1,qe(t)&&t(a))}}}const mE="",hE=11,oq={larget:51,default:42,small:33};var rq=(t,n)=>{const{t:o}=Ke(),r=Q("select-v2"),l=Q("input"),{form:a,formItem:s}=Xt(),{getLabel:i,getValue:c,getDisabled:f,getOptions:u}=ji(t),d=e.reactive({inputValue:mE,displayInputValue:mE,calculatedWidth:0,cachedPlaceholder:"",cachedOptions:[],createdOptions:[],createdLabel:"",createdSelected:!1,currentPlaceholder:"",hoveringIndex:-1,comboBoxHovering:!1,isOnComposition:!1,isSilentBlur:!1,isComposing:!1,inputLength:20,selectWidth:200,initialInputHeight:0,previousQuery:null,previousValue:void 0,query:"",selectedLabel:"",softFocus:!1,tagInMultiLine:!1}),p=e.ref(-1),h=e.ref(-1),g=e.ref(null),m=e.ref(null),b=e.ref(null),y=e.ref(null),C=e.ref(null),k=e.ref(null),w=e.ref(null),E=e.ref(!1),S=e.computed(()=>t.disabled||(a==null?void 0:a.disabled)),_=e.computed(()=>{const ae=z.value.length*34;return ae>t.height?t.height:ae}),B=e.computed(()=>!wt(t.modelValue)),M=e.computed(()=>{const ae=t.multiple?Array.isArray(t.modelValue)&&t.modelValue.length>0:B.value;return t.clearable&&!S.value&&d.comboBoxHovering&&ae}),P=e.computed(()=>t.remote&&t.filterable?"":Ts),T=e.computed(()=>P.value&&r.is("reverse",E.value)),I=e.computed(()=>(s==null?void 0:s.validateState)||""),v=e.computed(()=>Gd[I.value]),O=e.computed(()=>t.remote?300:0),D=e.computed(()=>{const ae=z.value;return t.loading?t.loadingText||o("el.select.loading"):t.remote&&d.inputValue===""&&ae.length===0?!1:t.filterable&&d.inputValue&&ae.length>0?t.noMatchText||o("el.select.noMatch"):ae.length===0?t.noDataText||o("el.select.noData"):null}),z=e.computed(()=>{const ae=we=>{const ze=d.inputValue,Ge=new RegExp(yy(ze),"i");return ze?Ge.test(i(we)||""):!0};return t.loading?[]:[...t.options,...d.createdOptions].reduce((we,ze)=>{const Ge=u(ze);if(Re(Ge)){const zt=Ge.filter(ae);zt.length>0&&we.push({label:i(ze),isTitle:!0,type:"Group"},...zt,{type:"Group"})}else(t.remote||ae(ze))&&we.push(ze);return we},[])}),$=e.computed(()=>{const ae=new Map;return z.value.forEach((we,ze)=>{ae.set(Ee(c(we)),{option:we,index:ze})}),ae}),R=e.computed(()=>z.value.every(ae=>f(ae))),N=St(),A=e.computed(()=>N.value==="small"?"small":"default"),x=e.computed(()=>{const ae=k.value,we=A.value||"default",ze=ae?Number.parseInt(getComputedStyle(ae).paddingLeft):0,Ge=ae?Number.parseInt(getComputedStyle(ae).paddingRight):0;return d.selectWidth-Ge-ze-oq[we]}),H=()=>{var ae;h.value=((ae=C.value)==null?void 0:ae.offsetWidth)||200},K=e.computed(()=>({width:`${d.calculatedWidth===0?hE:Math.ceil(d.calculatedWidth)+hE}px`})),q=e.computed(()=>Re(t.modelValue)?t.modelValue.length===0&&!d.displayInputValue:t.filterable?d.displayInputValue.length===0:!0),ne=e.computed(()=>{const ae=t.placeholder||o("el.select.placeholder");return t.multiple||wt(t.modelValue)?ae:d.selectedLabel}),Y=e.computed(()=>{var ae,we;return(we=(ae=y.value)==null?void 0:ae.popperRef)==null?void 0:we.contentRef}),Z=e.computed(()=>{if(t.multiple){const ae=t.modelValue.length;if(t.modelValue.length>0&&$.value.has(t.modelValue[ae-1])){const{index:we}=$.value.get(t.modelValue[ae-1]);return we}}else if(t.modelValue&&$.value.has(t.modelValue)){const{index:ae}=$.value.get(t.modelValue);return ae}return-1}),U=e.computed({get(){return E.value&&D.value!==!1},set(ae){E.value=ae}}),re=e.computed(()=>d.cachedOptions.slice(0,t.maxCollapseTags)),te=e.computed(()=>d.cachedOptions.slice(t.maxCollapseTags)),{createNewOption:oe,removeNewOption:ie,selectNewOption:ye,clearAllNewOption:Ne}=tq(t,d),{handleCompositionStart:Te,handleCompositionUpdate:Pe,handleCompositionEnd:he}=nq(ae=>X(ae)),Ce=()=>{var ae,we,ze;(we=(ae=m.value)==null?void 0:ae.focus)==null||we.call(ae),(ze=y.value)==null||ze.updatePopper()},ge=()=>{if(!t.automaticDropdown&&!S.value)return d.isComposing&&(d.softFocus=!0),e.nextTick(()=>{var ae,we;E.value=!E.value,(we=(ae=m.value)==null?void 0:ae.focus)==null||we.call(ae)})},me=()=>(t.filterable&&d.inputValue!==d.selectedLabel&&(d.query=d.selectedLabel),$e(d.inputValue),e.nextTick(()=>{oe(d.inputValue)})),_e=Gt(me,O.value),$e=ae=>{d.previousQuery!==ae&&(d.previousQuery=ae,t.filterable&&qe(t.filterMethod)?t.filterMethod(ae):t.filterable&&t.remote&&qe(t.remoteMethod)&&t.remoteMethod(ae))},Ae=ae=>{tn(t.modelValue,ae)||n(at,ae)},Oe=ae=>{n(Ie,ae),Ae(ae),d.previousValue=String(ae)},ce=(ae=[],we)=>{if(!nt(we))return ae.indexOf(we);const ze=t.valueKey;let Ge=-1;return ae.some((zt,Jn)=>ct(zt,ze)===ct(we,ze)?(Ge=Jn,!0):!1),Ge},Ee=ae=>nt(ae)?ct(ae,t.valueKey):ae,Le=()=>e.nextTick(()=>{var ae,we;if(!m.value)return;const ze=k.value;C.value.height=ze.offsetHeight,E.value&&D.value!==!1&&((we=(ae=y.value)==null?void 0:ae.updatePopper)==null||we.call(ae))}),Xe=()=>{var ae,we;if(Qe(),H(),(we=(ae=y.value)==null?void 0:ae.updatePopper)==null||we.call(ae),t.multiple)return Le()},Qe=()=>{const ae=k.value;ae&&(d.selectWidth=ae.getBoundingClientRect().width)},ke=(ae,we,ze=!0)=>{var Ge,zt;if(t.multiple){let Jn=t.modelValue.slice();const Dt=ce(Jn,c(ae));Dt>-1?(Jn=[...Jn.slice(0,Dt),...Jn.slice(Dt+1)],d.cachedOptions.splice(Dt,1),ie(ae)):(t.multipleLimit<=0||Jn.length{let ze=t.modelValue.slice();const Ge=ce(ze,c(we));if(Ge>-1&&!S.value)return ze=[...t.modelValue.slice(0,Ge),...t.modelValue.slice(Ge+1)],d.cachedOptions.splice(Ge,1),Oe(ze),n("remove-tag",c(we)),d.softFocus=!0,ie(we),e.nextTick(Ce);ae.stopPropagation()},G=ae=>{const we=d.isComposing;d.isComposing=!0,d.softFocus?d.softFocus=!1:we||n("focus",ae)},j=ae=>(d.softFocus=!1,e.nextTick(()=>{var we,ze;(ze=(we=m.value)==null?void 0:we.blur)==null||ze.call(we),w.value&&(d.calculatedWidth=w.value.getBoundingClientRect().width),d.isSilentBlur?d.isSilentBlur=!1:d.isComposing&&n("blur",ae),d.isComposing=!1})),ee=()=>{d.displayInputValue.length>0?Be(""):E.value=!1},F=ae=>{if(d.displayInputValue.length===0){ae.preventDefault();const we=t.modelValue.slice();we.pop(),ie(d.cachedOptions.pop()),Oe(we)}},ue=()=>{let ae;return Re(t.modelValue)?ae=[]:ae=void 0,d.softFocus=!0,t.multiple?d.cachedOptions=[]:d.selectedLabel="",E.value=!1,Oe(ae),n("clear"),Ne(),e.nextTick(Ce)},Be=ae=>{d.displayInputValue=ae,d.inputValue=ae},xe=(ae,we=void 0)=>{const ze=z.value;if(!["forward","backward"].includes(ae)||S.value||ze.length<=0||R.value)return;if(!E.value)return ge();we===void 0&&(we=d.hoveringIndex);let Ge=-1;ae==="forward"?(Ge=we+1,Ge>=ze.length&&(Ge=0)):ae==="backward"&&(Ge=we-1,(Ge<0||Ge>=ze.length)&&(Ge=ze.length-1));const zt=ze[Ge];if(f(zt)||zt.type==="Group")return xe(ae,Ge);gt(Ge),We(Ge)},_t=()=>{if(E.value)~d.hoveringIndex&&z.value[d.hoveringIndex]&&ke(z.value[d.hoveringIndex],d.hoveringIndex,!1);else return ge()},gt=ae=>{d.hoveringIndex=ae},zn=()=>{d.hoveringIndex=-1},Wt=()=>{var ae;const we=m.value;we&&((ae=we.focus)==null||ae.call(we))},X=ae=>{const we=ae.target.value;if(Be(we),d.displayInputValue.length>0&&!E.value&&(E.value=!0),d.calculatedWidth=w.value.getBoundingClientRect().width,t.multiple&&Le(),t.remote)_e();else return me()},de=()=>(E.value=!1,j()),Se=()=>(d.inputValue=d.displayInputValue,e.nextTick(()=>{~Z.value&&(gt(Z.value),We(d.hoveringIndex))})),We=ae=>{b.value.scrollToItem(ae)},Rt=()=>{if(zn(),t.multiple)if(t.modelValue.length>0){let ae=!1;d.cachedOptions.length=0,d.previousValue=t.modelValue.toString();for(const we of t.modelValue){const ze=Ee(we);if($.value.has(ze)){const{index:Ge,option:zt}=$.value.get(ze);d.cachedOptions.push(zt),ae||gt(Ge),ae=!0}}}else d.cachedOptions=[],d.previousValue=void 0;else if(B.value){d.previousValue=t.modelValue;const ae=z.value,we=ae.findIndex(ze=>Ee(c(ze))===Ee(t.modelValue));~we?(d.selectedLabel=i(ae[we]),gt(we)):d.selectedLabel=Ee(t.modelValue)}else d.selectedLabel="",d.previousValue=void 0;Ne(),H()};return e.watch(E,ae=>{var we,ze;n("visible-change",ae),ae?(ze=(we=y.value).update)==null||ze.call(we):(d.displayInputValue="",d.previousQuery=null,oe(""))}),e.watch(()=>t.modelValue,(ae,we)=>{var ze;(!ae||ae.toString()!==d.previousValue)&&Rt(),!tn(ae,we)&&t.validateEvent&&((ze=s==null?void 0:s.validate)==null||ze.call(s,"change").catch(Ge=>void 0))},{deep:!0}),e.watch(()=>t.options,()=>{const ae=m.value;(!ae||ae&&document.activeElement!==ae)&&Rt()},{deep:!0}),e.watch(z,()=>b.value&&e.nextTick(b.value.resetScrollTop)),e.watch(()=>U.value,ae=>{ae||zn()}),e.onMounted(()=>{Rt()}),jt(C,Xe),{collapseTagSize:A,currentPlaceholder:ne,expanded:E,emptyText:D,popupHeight:_,debounce:O,filteredOptions:z,iconComponent:P,iconReverse:T,inputWrapperStyle:K,popperSize:h,dropdownMenuVisible:U,hasModelValue:B,shouldShowPlaceholder:q,selectDisabled:S,selectSize:N,showClearBtn:M,states:d,tagMaxWidth:x,nsSelectV2:r,nsInput:l,calculatorRef:w,controlRef:g,inputRef:m,menuRef:b,popper:y,selectRef:C,selectionRef:k,popperRef:Y,validateState:I,validateIcon:v,showTagList:re,collapseTagList:te,debouncedOnInputChange:_e,deleteTag:J,getLabel:i,getValue:c,getDisabled:f,getValueKey:Ee,handleBlur:j,handleClear:ue,handleClickOutside:de,handleDel:F,handleEsc:ee,handleFocus:G,handleMenuEnter:Se,handleResize:Xe,toggleMenu:ge,scrollTo:We,onInput:X,onKeyboardNavigate:xe,onKeyboardSelect:_t,onSelect:ke,onHover:gt,onUpdateInputValue:Be,handleCompositionStart:Te,handleCompositionEnd:he,handleCompositionUpdate:Pe}};const lq=e.defineComponent({name:"ElSelectV2",components:{ElSelectMenu:eq,ElTag:bl,ElTooltip:Zt,ElIcon:fe},directives:{ClickOutside:Po,ModelText:e.vModelText},props:qG,emits:[Ie,at,"remove-tag","clear","visible-change","focus","blur"],setup(t,{emit:n}){const o=e.computed(()=>{const{modelValue:l,multiple:a}=t,s=a?[]:void 0;return Re(l)?a?l:s:a?s:l}),r=rq(e.reactive({...e.toRefs(t),modelValue:o}),n);return e.provide(Ui,{props:e.reactive({...e.toRefs(t),height:r.popupHeight,modelValue:o}),popper:r.popper,onSelect:r.onSelect,onHover:r.onHover,onKeyboardNavigate:r.onKeyboardNavigate,onKeyboardSelect:r.onKeyboardSelect}),{...r,modelValue:o}}}),aq={key:0},sq=["id","autocomplete","aria-expanded","aria-labelledby","disabled","readonly","name","unselectable"],iq=["textContent"],cq=["id","aria-labelledby","aria-expanded","autocomplete","disabled","name","readonly","unselectable"],dq=["textContent"];function fq(t,n,o,r,l,a){const s=e.resolveComponent("el-tag"),i=e.resolveComponent("el-tooltip"),c=e.resolveComponent("el-icon"),f=e.resolveComponent("el-select-menu"),u=e.resolveDirective("model-text"),d=e.resolveDirective("click-outside");return e.withDirectives((e.openBlock(),e.createElementBlock("div",{ref:"selectRef",class:e.normalizeClass([t.nsSelectV2.b(),t.nsSelectV2.m(t.selectSize)]),onClick:n[24]||(n[24]=e.withModifiers((...p)=>t.toggleMenu&&t.toggleMenu(...p),["stop"])),onMouseenter:n[25]||(n[25]=p=>t.states.comboBoxHovering=!0),onMouseleave:n[26]||(n[26]=p=>t.states.comboBoxHovering=!1)},[e.createVNode(i,{ref:"popper",visible:t.dropdownMenuVisible,teleported:t.teleported,"popper-class":[t.nsSelectV2.e("popper"),t.popperClass],"gpu-acceleration":!1,"stop-popper-mouse-event":!1,"popper-options":t.popperOptions,"fallback-placements":["bottom-start","top-start","right","left"],effect:t.effect,placement:t.placement,pure:"",transition:`${t.nsSelectV2.namespace.value}-zoom-in-top`,trigger:"click",persistent:t.persistent,onBeforeShow:t.handleMenuEnter,onHide:n[23]||(n[23]=p=>t.states.inputValue=t.states.displayInputValue)},{default:e.withCtx(()=>[e.createElementVNode("div",{ref:"selectionRef",class:e.normalizeClass([t.nsSelectV2.e("wrapper"),t.nsSelectV2.is("focused",t.states.isComposing||t.expanded),t.nsSelectV2.is("hovering",t.states.comboBoxHovering),t.nsSelectV2.is("filterable",t.filterable),t.nsSelectV2.is("disabled",t.selectDisabled)])},[t.$slots.prefix?(e.openBlock(),e.createElementBlock("div",aq,[e.renderSlot(t.$slots,"prefix")])):e.createCommentVNode("v-if",!0),t.multiple?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(t.nsSelectV2.e("selection"))},[t.collapseTags&&t.modelValue.length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.showTagList,p=>(e.openBlock(),e.createElementBlock("div",{key:t.getValueKey(t.getValue(p)),class:e.normalizeClass(t.nsSelectV2.e("selected-item"))},[e.createVNode(s,{closable:!t.selectDisabled&&!t.getDisabled(p),size:t.collapseTagSize,type:"info","disable-transitions":"",onClose:h=>t.deleteTag(h,p)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelectV2.e("tags-text")),style:e.normalizeStyle({maxWidth:`${t.tagMaxWidth}px`})},e.toDisplayString(t.getLabel(p)),7)]),_:2},1032,["closable","size","onClose"])],2))),128)),e.createElementVNode("div",{class:e.normalizeClass(t.nsSelectV2.e("selected-item"))},[t.modelValue.length>t.maxCollapseTags?(e.openBlock(),e.createBlock(s,{key:0,closable:!1,size:t.collapseTagSize,type:"info","disable-transitions":""},{default:e.withCtx(()=>[t.collapseTagsTooltip?(e.openBlock(),e.createBlock(i,{key:0,disabled:t.dropdownMenuVisible,"fallback-placements":["bottom","top","right","left"],effect:t.effect,placement:"bottom",teleported:!1},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelectV2.e("tags-text")),style:e.normalizeStyle({maxWidth:`${t.tagMaxWidth}px`})}," + "+e.toDisplayString(t.modelValue.length-t.maxCollapseTags),7)]),content:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(t.nsSelectV2.e("selection"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.collapseTagList,p=>(e.openBlock(),e.createElementBlock("div",{key:t.getValueKey(t.getValue(p)),class:e.normalizeClass(t.nsSelectV2.e("selected-item"))},[e.createVNode(s,{closable:!t.selectDisabled&&!t.getDisabled(p),size:t.collapseTagSize,class:"in-tooltip",type:"info","disable-transitions":"",onClose:h=>t.deleteTag(h,p)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelectV2.e("tags-text")),style:e.normalizeStyle({maxWidth:`${t.tagMaxWidth}px`})},e.toDisplayString(t.getLabel(p)),7)]),_:2},1032,["closable","size","onClose"])],2))),128))],2)]),_:1},8,["disabled","effect"])):(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(t.nsSelectV2.e("tags-text")),style:e.normalizeStyle({maxWidth:`${t.tagMaxWidth}px`})}," + "+e.toDisplayString(t.modelValue.length-t.maxCollapseTags),7))]),_:1},8,["size"])):e.createCommentVNode("v-if",!0)],2)],64)):(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(t.states.cachedOptions,p=>(e.openBlock(),e.createElementBlock("div",{key:t.getValueKey(t.getValue(p)),class:e.normalizeClass(t.nsSelectV2.e("selected-item"))},[e.createVNode(s,{closable:!t.selectDisabled&&!t.getDisabled(p),size:t.collapseTagSize,type:"info","disable-transitions":"",onClose:h=>t.deleteTag(h,p)},{default:e.withCtx(()=>[e.createElementVNode("span",{class:e.normalizeClass(t.nsSelectV2.e("tags-text")),style:e.normalizeStyle({maxWidth:`${t.tagMaxWidth}px`})},e.toDisplayString(t.getLabel(p)),7)]),_:2},1032,["closable","size","onClose"])],2))),128)),e.createElementVNode("div",{class:e.normalizeClass([t.nsSelectV2.e("selected-item"),t.nsSelectV2.e("input-wrapper")]),style:e.normalizeStyle(t.inputWrapperStyle)},[e.withDirectives(e.createElementVNode("input",{id:t.id,ref:"inputRef",autocomplete:t.autocomplete,"aria-autocomplete":"list","aria-haspopup":"listbox",autocapitalize:"off","aria-expanded":t.expanded,"aria-labelledby":t.label,class:e.normalizeClass([t.nsSelectV2.is(t.selectSize),t.nsSelectV2.e("combobox-input")]),disabled:t.disabled,role:"combobox",readonly:!t.filterable,spellcheck:"false",type:"text",name:t.name,unselectable:t.expanded?"on":void 0,"onUpdate:modelValue":n[0]||(n[0]=(...p)=>t.onUpdateInputValue&&t.onUpdateInputValue(...p)),onFocus:n[1]||(n[1]=(...p)=>t.handleFocus&&t.handleFocus(...p)),onBlur:n[2]||(n[2]=(...p)=>t.handleBlur&&t.handleBlur(...p)),onInput:n[3]||(n[3]=(...p)=>t.onInput&&t.onInput(...p)),onCompositionstart:n[4]||(n[4]=(...p)=>t.handleCompositionStart&&t.handleCompositionStart(...p)),onCompositionupdate:n[5]||(n[5]=(...p)=>t.handleCompositionUpdate&&t.handleCompositionUpdate(...p)),onCompositionend:n[6]||(n[6]=(...p)=>t.handleCompositionEnd&&t.handleCompositionEnd(...p)),onKeydown:[n[7]||(n[7]=e.withKeys(e.withModifiers(p=>t.onKeyboardNavigate("backward"),["stop","prevent"]),["up"])),n[8]||(n[8]=e.withKeys(e.withModifiers(p=>t.onKeyboardNavigate("forward"),["stop","prevent"]),["down"])),n[9]||(n[9]=e.withKeys(e.withModifiers((...p)=>t.onKeyboardSelect&&t.onKeyboardSelect(...p),["stop","prevent"]),["enter"])),n[10]||(n[10]=e.withKeys(e.withModifiers((...p)=>t.handleEsc&&t.handleEsc(...p),["stop","prevent"]),["esc"])),n[11]||(n[11]=e.withKeys(e.withModifiers((...p)=>t.handleDel&&t.handleDel(...p),["stop"]),["delete"]))]},null,42,sq),[[u,t.states.displayInputValue]]),t.filterable?(e.openBlock(),e.createElementBlock("span",{key:0,ref:"calculatorRef","aria-hidden":"true",class:e.normalizeClass(t.nsSelectV2.e("input-calculator")),textContent:e.toDisplayString(t.states.displayInputValue)},null,10,iq)):e.createCommentVNode("v-if",!0)],6)],2)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",{class:e.normalizeClass([t.nsSelectV2.e("selected-item"),t.nsSelectV2.e("input-wrapper")])},[e.withDirectives(e.createElementVNode("input",{id:t.id,ref:"inputRef","aria-autocomplete":"list","aria-haspopup":"listbox","aria-labelledby":t.label,"aria-expanded":t.expanded,autocapitalize:"off",autocomplete:t.autocomplete,class:e.normalizeClass(t.nsSelectV2.e("combobox-input")),disabled:t.disabled,name:t.name,role:"combobox",readonly:!t.filterable,spellcheck:"false",type:"text",unselectable:t.expanded?"on":void 0,onCompositionstart:n[12]||(n[12]=(...p)=>t.handleCompositionStart&&t.handleCompositionStart(...p)),onCompositionupdate:n[13]||(n[13]=(...p)=>t.handleCompositionUpdate&&t.handleCompositionUpdate(...p)),onCompositionend:n[14]||(n[14]=(...p)=>t.handleCompositionEnd&&t.handleCompositionEnd(...p)),onFocus:n[15]||(n[15]=(...p)=>t.handleFocus&&t.handleFocus(...p)),onBlur:n[16]||(n[16]=(...p)=>t.handleBlur&&t.handleBlur(...p)),onInput:n[17]||(n[17]=(...p)=>t.onInput&&t.onInput(...p)),onKeydown:[n[18]||(n[18]=e.withKeys(e.withModifiers(p=>t.onKeyboardNavigate("backward"),["stop","prevent"]),["up"])),n[19]||(n[19]=e.withKeys(e.withModifiers(p=>t.onKeyboardNavigate("forward"),["stop","prevent"]),["down"])),n[20]||(n[20]=e.withKeys(e.withModifiers((...p)=>t.onKeyboardSelect&&t.onKeyboardSelect(...p),["stop","prevent"]),["enter"])),n[21]||(n[21]=e.withKeys(e.withModifiers((...p)=>t.handleEsc&&t.handleEsc(...p),["stop","prevent"]),["esc"]))],"onUpdate:modelValue":n[22]||(n[22]=(...p)=>t.onUpdateInputValue&&t.onUpdateInputValue(...p))},null,42,cq),[[u,t.states.displayInputValue]])],2),t.filterable?(e.openBlock(),e.createElementBlock("span",{key:0,ref:"calculatorRef","aria-hidden":"true",class:e.normalizeClass([t.nsSelectV2.e("selected-item"),t.nsSelectV2.e("input-calculator")]),textContent:e.toDisplayString(t.states.displayInputValue)},null,10,dq)):e.createCommentVNode("v-if",!0)],64)),t.shouldShowPlaceholder?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass([t.nsSelectV2.e("placeholder"),t.nsSelectV2.is("transparent",t.multiple?t.modelValue.length===0:!t.hasModelValue)])},e.toDisplayString(t.currentPlaceholder),3)):e.createCommentVNode("v-if",!0),e.createElementVNode("span",{class:e.normalizeClass(t.nsSelectV2.e("suffix"))},[t.iconComponent?e.withDirectives((e.openBlock(),e.createBlock(c,{key:0,class:e.normalizeClass([t.nsSelectV2.e("caret"),t.nsInput.e("icon"),t.iconReverse])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconComponent)))]),_:1},8,["class"])),[[e.vShow,!t.showClearBtn]]):e.createCommentVNode("v-if",!0),t.showClearBtn&&t.clearIcon?(e.openBlock(),e.createBlock(c,{key:1,class:e.normalizeClass([t.nsSelectV2.e("caret"),t.nsInput.e("icon")]),onClick:e.withModifiers(t.handleClear,["prevent","stop"])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.clearIcon)))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0),t.validateState&&t.validateIcon?(e.openBlock(),e.createBlock(c,{key:2,class:e.normalizeClass([t.nsInput.e("icon"),t.nsInput.e("validateIcon")])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.validateIcon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],2)],2)]),content:e.withCtx(()=>[e.createVNode(f,{ref:"menuRef",data:t.filteredOptions,width:t.popperSize,"hovering-index":t.states.hoveringIndex,"scrollbar-always-on":t.scrollbarAlwaysOn},{default:e.withCtx(p=>[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(p)))]),empty:e.withCtx(()=>[e.renderSlot(t.$slots,"empty",{},()=>[e.createElementVNode("p",{class:e.normalizeClass(t.nsSelectV2.e("empty"))},e.toDisplayString(t.emptyText?t.emptyText:""),3)])]),_:3},8,["data","width","hovering-index","scrollbar-always-on"])]),_:3},8,["visible","teleported","popper-class","popper-options","effect","placement","transition","persistent","onBeforeShow"])],34)),[[d,t.handleClickOutside,t.popperRef]])}var Gi=se(lq,[["render",fq],["__file","select.vue"]]);Gi.install=t=>{t.component(Gi.name,Gi)};const gE=Gi,yE=le({animated:{type:Boolean,default:!1},count:{type:Number,default:1},rows:{type:Number,default:3},loading:{type:Boolean,default:!0},throttle:{type:Number}}),bE=le({variant:{type:String,values:["circle","rect","h1","h3","text","caption","p","image","button"],default:"text"}}),uq=e.defineComponent({name:"ElSkeletonItem"}),pq=e.defineComponent({...uq,props:bE,setup(t){const n=Q("skeleton");return(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(n).e("item"),e.unref(n).e(o.variant)])},[o.variant==="image"?(e.openBlock(),e.createBlock(e.unref(ID),{key:0})):e.createCommentVNode("v-if",!0)],2))}});var qi=se(pq,[["__file","skeleton-item.vue"]]);const mq=e.defineComponent({name:"ElSkeleton"}),hq=e.defineComponent({...mq,props:yE,setup(t,{expose:n}){const o=t,r=Q("skeleton"),l=ib(e.toRef(o,"loading"),o.throttle);return n({uiLoading:l}),(a,s)=>e.unref(l)?(e.openBlock(),e.createElementBlock("div",e.mergeProps({key:0,class:[e.unref(r).b(),e.unref(r).is("animated",a.animated)]},a.$attrs),[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.count,i=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:i},[a.loading?e.renderSlot(a.$slots,"template",{key:i},()=>[e.createVNode(qi,{class:e.normalizeClass(e.unref(r).is("first")),variant:"p"},null,8,["class"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.rows,c=>(e.openBlock(),e.createBlock(qi,{key:c,class:e.normalizeClass([e.unref(r).e("paragraph"),e.unref(r).is("last",c===a.rows&&a.rows>1)]),variant:"p"},null,8,["class"]))),128))]):e.createCommentVNode("v-if",!0)],64))),128))],16)):e.renderSlot(a.$slots,"default",e.normalizeProps(e.mergeProps({key:1},a.$attrs)))}});var gq=se(hq,[["__file","skeleton.vue"]]);const CE=Me(gq,{SkeletonItem:qi}),wE=ht(qi),Bp=Symbol("sliderContextKey"),kE=le({modelValue:{type:W([Number,Array]),default:0},id:{type:String,default:void 0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},showInput:Boolean,showInputControls:{type:Boolean,default:!0},size:Vt,inputSize:Vt,showStops:Boolean,showTooltip:{type:Boolean,default:!0},formatTooltip:{type:W(Function),default:void 0},disabled:Boolean,range:Boolean,vertical:Boolean,height:String,debounce:{type:Number,default:300},label:{type:String,default:void 0},rangeStartLabel:{type:String,default:void 0},rangeEndLabel:{type:String,default:void 0},formatValueText:{type:W(Function),default:void 0},tooltipClass:{type:String,default:void 0},placement:{type:String,values:_r,default:"top"},marks:{type:W(Object)},validateEvent:{type:Boolean,default:!0}}),$p=t=>be(t)||Re(t)&&t.every(be),SE={[Ie]:$p,[qt]:$p,[at]:$p},yq=(t,n,o)=>{const r=e.ref();return e.onMounted(async()=>{t.range?(Array.isArray(t.modelValue)?(n.firstValue=Math.max(t.min,t.modelValue[0]),n.secondValue=Math.min(t.max,t.modelValue[1])):(n.firstValue=t.min,n.secondValue=t.max),n.oldValue=[n.firstValue,n.secondValue]):(typeof t.modelValue!="number"||Number.isNaN(t.modelValue)?n.firstValue=t.min:n.firstValue=Math.min(t.max,Math.max(t.min,t.modelValue)),n.oldValue=n.firstValue),rt(window,"resize",o),await e.nextTick(),o()}),{sliderWrapper:r}},bq=t=>e.computed(()=>t.marks?Object.keys(t.marks).map(Number.parseFloat).sort((o,r)=>o-r).filter(o=>o<=t.max&&o>=t.min).map(o=>({point:o,position:(o-t.min)*100/(t.max-t.min),mark:t.marks[o]})):[]),Cq=(t,n,o)=>{const{form:r,formItem:l}=Xt(),a=e.shallowRef(),s=e.ref(),i=e.ref(),c={firstButton:s,secondButton:i},f=e.computed(()=>t.disabled||(r==null?void 0:r.disabled)||!1),u=e.computed(()=>Math.min(n.firstValue,n.secondValue)),d=e.computed(()=>Math.max(n.firstValue,n.secondValue)),p=e.computed(()=>t.range?`${100*(d.value-u.value)/(t.max-t.min)}%`:`${100*(n.firstValue-t.min)/(t.max-t.min)}%`),h=e.computed(()=>t.range?`${100*(u.value-t.min)/(t.max-t.min)}%`:"0%"),g=e.computed(()=>t.vertical?{height:t.height}:{}),m=e.computed(()=>t.vertical?{height:p.value,bottom:h.value}:{width:p.value,left:h.value}),b=()=>{a.value&&(n.sliderSize=a.value[`client${t.vertical?"Height":"Width"}`])},y=T=>{const I=t.min+T*(t.max-t.min)/100;if(!t.range)return s;let v;return Math.abs(u.value-I)n.secondValue?"firstButton":"secondButton",c[v]},C=T=>{const I=y(T);return I.value.setPosition(T),I},k=T=>{n.firstValue=T,E(t.range?[u.value,d.value]:T)},w=T=>{n.secondValue=T,t.range&&E([u.value,d.value])},E=T=>{o(Ie,T),o(qt,T)},S=async()=>{await e.nextTick(),o(at,t.range?[u.value,d.value]:t.modelValue)},_=T=>{var I,v,O,D,z,$;if(f.value||n.dragging)return;b();let R=0;if(t.vertical){const N=(O=(v=(I=T.touches)==null?void 0:I.item(0))==null?void 0:v.clientY)!=null?O:T.clientY;R=(a.value.getBoundingClientRect().bottom-N)/n.sliderSize*100}else{const N=($=(z=(D=T.touches)==null?void 0:D.item(0))==null?void 0:z.clientX)!=null?$:T.clientX,A=a.value.getBoundingClientRect().left;R=(N-A)/n.sliderSize*100}if(!(R<0||R>100))return C(R)};return{elFormItem:l,slider:a,firstButton:s,secondButton:i,sliderDisabled:f,minValue:u,maxValue:d,runwayStyle:g,barStyle:m,resetSize:b,setPosition:C,emitChange:S,onSliderWrapperPrevent:T=>{var I,v;(((I=c.firstButton.value)==null?void 0:I.dragging)||((v=c.secondButton.value)==null?void 0:v.dragging))&&T.preventDefault()},onSliderClick:T=>{_(T)&&S()},onSliderDown:async T=>{const I=_(T);I&&(await e.nextTick(),I.value.onButtonDown(T))},setFirstValue:k,setSecondValue:w}},{left:wq,down:kq,right:Sq,up:Eq,home:Nq,end:_q,pageUp:Bq,pageDown:$q}=pe,Tq=(t,n,o)=>{const r=e.ref(),l=e.ref(!1),a=e.computed(()=>n.value instanceof Function),s=e.computed(()=>a.value&&n.value(t.modelValue)||t.modelValue),i=Gt(()=>{o.value&&(l.value=!0)},50),c=Gt(()=>{o.value&&(l.value=!1)},50);return{tooltip:r,tooltipVisible:l,formatValue:s,displayTooltip:i,hideTooltip:c}},vq=(t,n,o)=>{const{disabled:r,min:l,max:a,step:s,showTooltip:i,precision:c,sliderSize:f,formatTooltip:u,emitChange:d,resetSize:p,updateDragging:h}=e.inject(Bp),{tooltip:g,tooltipVisible:m,formatValue:b,displayTooltip:y,hideTooltip:C}=Tq(t,u,i),k=e.ref(),w=e.computed(()=>`${(t.modelValue-l.value)/(a.value-l.value)*100}%`),E=e.computed(()=>t.vertical?{bottom:w.value}:{left:w.value}),S=()=>{n.hovering=!0,y()},_=()=>{n.hovering=!1,n.dragging||C()},B=H=>{r.value||(H.preventDefault(),R(H),window.addEventListener("mousemove",N),window.addEventListener("touchmove",N),window.addEventListener("mouseup",A),window.addEventListener("touchend",A),window.addEventListener("contextmenu",A),k.value.focus())},M=H=>{r.value||(n.newPosition=Number.parseFloat(w.value)+H/(a.value-l.value)*100,x(n.newPosition),d())},P=()=>{M(-s.value)},T=()=>{M(s.value)},I=()=>{M(-s.value*4)},v=()=>{M(s.value*4)},O=()=>{r.value||(x(0),d())},D=()=>{r.value||(x(100),d())},z=H=>{let K=!0;[wq,kq].includes(H.key)?P():[Sq,Eq].includes(H.key)?T():H.key===Nq?O():H.key===_q?D():H.key===$q?I():H.key===Bq?v():K=!1,K&&H.preventDefault()},$=H=>{let K,q;return H.type.startsWith("touch")?(q=H.touches[0].clientY,K=H.touches[0].clientX):(q=H.clientY,K=H.clientX),{clientX:K,clientY:q}},R=H=>{n.dragging=!0,n.isClick=!0;const{clientX:K,clientY:q}=$(H);t.vertical?n.startY=q:n.startX=K,n.startPosition=Number.parseFloat(w.value),n.newPosition=n.startPosition},N=H=>{if(n.dragging){n.isClick=!1,y(),p();let K;const{clientX:q,clientY:ne}=$(H);t.vertical?(n.currentY=ne,K=(n.startY-n.currentY)/f.value*100):(n.currentX=q,K=(n.currentX-n.startX)/f.value*100),n.newPosition=n.startPosition+K,x(n.newPosition)}},A=()=>{n.dragging&&(setTimeout(()=>{n.dragging=!1,n.hovering||C(),n.isClick||x(n.newPosition),d()},0),window.removeEventListener("mousemove",N),window.removeEventListener("touchmove",N),window.removeEventListener("mouseup",A),window.removeEventListener("touchend",A),window.removeEventListener("contextmenu",A))},x=async H=>{if(H===null||Number.isNaN(+H))return;H<0?H=0:H>100&&(H=100);const K=100/((a.value-l.value)/s.value);let ne=Math.round(H/K)*K*(a.value-l.value)*.01+l.value;ne=Number.parseFloat(ne.toFixed(c.value)),ne!==t.modelValue&&o(Ie,ne),!n.dragging&&t.modelValue!==n.oldValue&&(n.oldValue=t.modelValue),await e.nextTick(),n.dragging&&y(),g.value.updatePopper()};return e.watch(()=>n.dragging,H=>{h(H)}),{disabled:r,button:k,tooltip:g,tooltipVisible:m,showTooltip:i,wrapperStyle:E,formatValue:b,handleMouseEnter:S,handleMouseLeave:_,onButtonDown:B,onKeyDown:z,setPosition:x}},Vq=(t,n,o,r)=>({stops:e.computed(()=>{if(!t.showStops||t.min>t.max)return[];if(t.step===0)return[];const s=(t.max-t.min)/t.step,i=100*t.step/(t.max-t.min),c=Array.from({length:s-1}).map((f,u)=>(u+1)*i);return t.range?c.filter(f=>f<100*(o.value-t.min)/(t.max-t.min)||f>100*(r.value-t.min)/(t.max-t.min)):c.filter(f=>f>100*(n.firstValue-t.min)/(t.max-t.min))}),getStopStyle:s=>t.vertical?{bottom:`${s}%`}:{left:`${s}%`}}),Mq=(t,n,o,r,l,a)=>{const s=f=>{l(Ie,f),l(qt,f)},i=()=>t.range?![o.value,r.value].every((f,u)=>f===n.oldValue[u]):t.modelValue!==n.oldValue,c=()=>{var f,u;t.min>t.max&&vt("Slider","min should not be greater than max.");const d=t.modelValue;t.range&&Array.isArray(d)?d[1]t.max?s([t.max,t.max]):d[0]t.max?s([d[0],t.max]):(n.firstValue=d[0],n.secondValue=d[1],i()&&(t.validateEvent&&((f=a==null?void 0:a.validate)==null||f.call(a,"change").catch(p=>void 0)),n.oldValue=d.slice())):!t.range&&typeof d=="number"&&!Number.isNaN(d)&&(dt.max?s(t.max):(n.firstValue=d,i()&&(t.validateEvent&&((u=a==null?void 0:a.validate)==null||u.call(a,"change").catch(p=>void 0)),n.oldValue=d)))};c(),e.watch(()=>n.dragging,f=>{f||c()}),e.watch(()=>t.modelValue,(f,u)=>{n.dragging||Array.isArray(f)&&Array.isArray(u)&&f.every((d,p)=>d===u[p])&&n.firstValue===f[0]&&n.secondValue===f[1]||c()},{deep:!0}),e.watch(()=>[t.min,t.max],()=>{c()})},Iq=le({modelValue:{type:Number,default:0},vertical:Boolean,tooltipClass:String,placement:{type:String,values:_r,default:"top"}}),Pq={[Ie]:t=>be(t)},Rq=["tabindex"],Oq=e.defineComponent({name:"ElSliderButton"}),Aq=e.defineComponent({...Oq,props:Iq,emits:Pq,setup(t,{expose:n,emit:o}){const r=t,l=Q("slider"),a=e.reactive({hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:0,oldValue:r.modelValue}),{disabled:s,button:i,tooltip:c,showTooltip:f,tooltipVisible:u,wrapperStyle:d,formatValue:p,handleMouseEnter:h,handleMouseLeave:g,onButtonDown:m,onKeyDown:b,setPosition:y}=vq(r,a,o),{hovering:C,dragging:k}=e.toRefs(a);return n({onButtonDown:m,onKeyDown:b,setPosition:y,hovering:C,dragging:k}),(w,E)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"button",ref:i,class:e.normalizeClass([e.unref(l).e("button-wrapper"),{hover:e.unref(C),dragging:e.unref(k)}]),style:e.normalizeStyle(e.unref(d)),tabindex:e.unref(s)?-1:0,onMouseenter:E[0]||(E[0]=(...S)=>e.unref(h)&&e.unref(h)(...S)),onMouseleave:E[1]||(E[1]=(...S)=>e.unref(g)&&e.unref(g)(...S)),onMousedown:E[2]||(E[2]=(...S)=>e.unref(m)&&e.unref(m)(...S)),onTouchstart:E[3]||(E[3]=(...S)=>e.unref(m)&&e.unref(m)(...S)),onFocus:E[4]||(E[4]=(...S)=>e.unref(h)&&e.unref(h)(...S)),onBlur:E[5]||(E[5]=(...S)=>e.unref(g)&&e.unref(g)(...S)),onKeydown:E[6]||(E[6]=(...S)=>e.unref(b)&&e.unref(b)(...S))},[e.createVNode(e.unref(Zt),{ref_key:"tooltip",ref:c,visible:e.unref(u),placement:w.placement,"fallback-placements":["top","bottom","right","left"],"stop-popper-mouse-event":!1,"popper-class":w.tooltipClass,disabled:!e.unref(f),persistent:""},{content:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(p)),1)]),default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass([e.unref(l).e("button"),{hover:e.unref(C),dragging:e.unref(k)}])},null,2)]),_:1},8,["visible","placement","popper-class","disabled"])],46,Rq))}});var EE=se(Aq,[["__file","button.vue"]]);const zq=le({mark:{type:W([String,Object]),default:void 0}});var Dq=e.defineComponent({name:"ElSliderMarker",props:zq,setup(t){const n=Q("slider"),o=e.computed(()=>De(t.mark)?t.mark:t.mark.label),r=e.computed(()=>De(t.mark)?void 0:t.mark.style);return()=>e.h("div",{class:n.e("marks-text"),style:r.value},o.value)}});const Lq=["id","role","aria-label","aria-labelledby"],xq={key:1},Fq=e.defineComponent({name:"ElSlider"}),Hq=e.defineComponent({...Fq,props:kE,emits:SE,setup(t,{expose:n,emit:o}){const r=t,l=Q("slider"),{t:a}=Ke(),s=e.reactive({firstValue:0,secondValue:0,oldValue:0,dragging:!1,sliderSize:1}),{elFormItem:i,slider:c,firstButton:f,secondButton:u,sliderDisabled:d,minValue:p,maxValue:h,runwayStyle:g,barStyle:m,resetSize:b,emitChange:y,onSliderWrapperPrevent:C,onSliderClick:k,onSliderDown:w,setFirstValue:E,setSecondValue:S}=Cq(r,s,o),{stops:_,getStopStyle:B}=Vq(r,s,p,h),{inputId:M,isLabeledByFormItem:P}=vo(r,{formItemContext:i}),T=St(),I=e.computed(()=>r.inputSize||T.value),v=e.computed(()=>r.label||a("el.slider.defaultLabel",{min:r.min,max:r.max})),O=e.computed(()=>r.range?r.rangeStartLabel||a("el.slider.defaultRangeStartLabel"):v.value),D=e.computed(()=>r.formatValueText?r.formatValueText(H.value):`${H.value}`),z=e.computed(()=>r.rangeEndLabel||a("el.slider.defaultRangeEndLabel")),$=e.computed(()=>r.formatValueText?r.formatValueText(K.value):`${K.value}`),R=e.computed(()=>[l.b(),l.m(T.value),l.is("vertical",r.vertical),{[l.m("with-input")]:r.showInput}]),N=bq(r);Mq(r,s,p,h,o,i);const A=e.computed(()=>{const Y=[r.min,r.max,r.step].map(Z=>{const U=`${Z}`.split(".")[1];return U?U.length:0});return Math.max.apply(null,Y)}),{sliderWrapper:x}=yq(r,s,b),{firstValue:H,secondValue:K,sliderSize:q}=e.toRefs(s),ne=Y=>{s.dragging=Y};return e.provide(Bp,{...e.toRefs(r),sliderSize:q,disabled:d,precision:A,emitChange:y,resetSize:b,updateDragging:ne}),n({onSliderClick:k}),(Y,Z)=>{var U,re;return e.openBlock(),e.createElementBlock("div",{id:Y.range?e.unref(M):void 0,ref_key:"sliderWrapper",ref:x,class:e.normalizeClass(e.unref(R)),role:Y.range?"group":void 0,"aria-label":Y.range&&!e.unref(P)?e.unref(v):void 0,"aria-labelledby":Y.range&&e.unref(P)?(U=e.unref(i))==null?void 0:U.labelId:void 0,onTouchstart:Z[2]||(Z[2]=(...te)=>e.unref(C)&&e.unref(C)(...te)),onTouchmove:Z[3]||(Z[3]=(...te)=>e.unref(C)&&e.unref(C)(...te))},[e.createElementVNode("div",{ref_key:"slider",ref:c,class:e.normalizeClass([e.unref(l).e("runway"),{"show-input":Y.showInput&&!Y.range},e.unref(l).is("disabled",e.unref(d))]),style:e.normalizeStyle(e.unref(g)),onMousedown:Z[0]||(Z[0]=(...te)=>e.unref(w)&&e.unref(w)(...te)),onTouchstart:Z[1]||(Z[1]=(...te)=>e.unref(w)&&e.unref(w)(...te))},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("bar")),style:e.normalizeStyle(e.unref(m))},null,6),e.createVNode(EE,{id:Y.range?void 0:e.unref(M),ref_key:"firstButton",ref:f,"model-value":e.unref(H),vertical:Y.vertical,"tooltip-class":Y.tooltipClass,placement:Y.placement,role:"slider","aria-label":Y.range||!e.unref(P)?e.unref(O):void 0,"aria-labelledby":!Y.range&&e.unref(P)?(re=e.unref(i))==null?void 0:re.labelId:void 0,"aria-valuemin":Y.min,"aria-valuemax":Y.range?e.unref(K):Y.max,"aria-valuenow":e.unref(H),"aria-valuetext":e.unref(D),"aria-orientation":Y.vertical?"vertical":"horizontal","aria-disabled":e.unref(d),"onUpdate:modelValue":e.unref(E)},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"]),Y.range?(e.openBlock(),e.createBlock(EE,{key:0,ref_key:"secondButton",ref:u,"model-value":e.unref(K),vertical:Y.vertical,"tooltip-class":Y.tooltipClass,placement:Y.placement,role:"slider","aria-label":e.unref(z),"aria-valuemin":e.unref(H),"aria-valuemax":Y.max,"aria-valuenow":e.unref(K),"aria-valuetext":e.unref($),"aria-orientation":Y.vertical?"vertical":"horizontal","aria-disabled":e.unref(d),"onUpdate:modelValue":e.unref(S)},null,8,["model-value","vertical","tooltip-class","placement","aria-label","aria-valuemin","aria-valuemax","aria-valuenow","aria-valuetext","aria-orientation","aria-disabled","onUpdate:modelValue"])):e.createCommentVNode("v-if",!0),Y.showStops?(e.openBlock(),e.createElementBlock("div",xq,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(_),(te,oe)=>(e.openBlock(),e.createElementBlock("div",{key:oe,class:e.normalizeClass(e.unref(l).e("stop")),style:e.normalizeStyle(e.unref(B)(te))},null,6))),128))])):e.createCommentVNode("v-if",!0),e.unref(N).length>0?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N),(te,oe)=>(e.openBlock(),e.createElementBlock("div",{key:oe,style:e.normalizeStyle(e.unref(B)(te.position)),class:e.normalizeClass([e.unref(l).e("stop"),e.unref(l).e("marks-stop")])},null,6))),128))]),e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).e("marks"))},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N),(te,oe)=>(e.openBlock(),e.createBlock(e.unref(Dq),{key:oe,mark:te.mark,style:e.normalizeStyle(e.unref(B)(te.position))},null,8,["mark","style"]))),128))],2)],64)):e.createCommentVNode("v-if",!0)],38),Y.showInput&&!Y.range?(e.openBlock(),e.createBlock(e.unref(ep),{key:0,ref:"input","model-value":e.unref(H),class:e.normalizeClass(e.unref(l).e("input")),step:Y.step,disabled:e.unref(d),controls:Y.showInputControls,min:Y.min,max:Y.max,debounce:Y.debounce,size:e.unref(I),"onUpdate:modelValue":e.unref(E),onChange:e.unref(y)},null,8,["model-value","class","step","disabled","controls","min","max","debounce","size","onUpdate:modelValue","onChange"])):e.createCommentVNode("v-if",!0)],42,Lq)}}});var Kq=se(Hq,[["__file","slider.vue"]]);const NE=Me(Kq),Wq=le({prefixCls:{type:String}});var _E=e.defineComponent({name:"ElSpaceItem",props:Wq,setup(t,{slots:n}){const o=Q("space"),r=e.computed(()=>`${t.prefixCls||o.b()}__item`);return()=>e.h("div",{class:r.value},e.renderSlot(n,"default"))}});const BE={small:8,default:12,large:16};function $E(t){const n=Q("space"),o=e.computed(()=>[n.b(),n.m(t.direction),t.class]),r=e.ref(0),l=e.ref(0),a=e.computed(()=>{const i=t.wrap||t.fill?{flexWrap:"wrap",marginBottom:`-${l.value}px`}:{},c={alignItems:t.alignment};return[i,c,t.style]}),s=e.computed(()=>{const i={paddingBottom:`${l.value}px`,marginRight:`${r.value}px`},c=t.fill?{flexGrow:1,minWidth:`${t.fillRatio}%`}:{};return[i,c]});return e.watchEffect(()=>{const{size:i="small",wrap:c,direction:f,fill:u}=t;if(Re(i)){const[d=0,p=0]=i;r.value=d,l.value=p}else{let d;be(i)?d=i:d=BE[i||"small"]||BE.small,(c||u)&&f==="horizontal"?r.value=l.value=d:f==="horizontal"?(r.value=d,l.value=0):(l.value=d,r.value=0)}}),{classes:o,containerStyle:a,itemStyle:s}}const TE=le({direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},class:{type:W([String,Object,Array]),default:""},style:{type:W([String,Array,Object]),default:""},alignment:{type:W(String),default:"center"},prefixCls:{type:String},spacer:{type:W([Object,String,Number,Array]),default:null,validator:t=>e.isVNode(t)||be(t)||De(t)},wrap:Boolean,fill:Boolean,fillRatio:{type:Number,default:100},size:{type:[String,Array,Number],values:Wn,validator:t=>be(t)||Re(t)&&t.length===2&&t.every(be)}}),jq=e.defineComponent({name:"ElSpace",props:TE,setup(t,{slots:n}){const{classes:o,containerStyle:r,itemStyle:l}=$E(t);function a(s,i="",c=[]){const{prefixCls:f}=t;return s.forEach((u,d)=>{Xd(u)?Re(u.children)&&u.children.forEach((p,h)=>{Xd(p)&&Re(p.children)?a(p.children,`${i+h}-`,c):c.push(e.createVNode(_E,{style:l.value,prefixCls:f,key:`nested-${i+h}`},{default:()=>[p]},In.PROPS|In.STYLE,["style","prefixCls"]))}):iL(u)&&c.push(e.createVNode(_E,{style:l.value,prefixCls:f,key:`LoopKey${i+d}`},{default:()=>[u]},In.PROPS|In.STYLE,["style","prefixCls"]))}),c}return()=>{var s;const{spacer:i,direction:c}=t,f=e.renderSlot(n,"default",{key:0},()=>[]);if(((s=f.children)!=null?s:[]).length===0)return null;if(Re(f.children)){let u=a(f.children);if(i){const d=u.length-1;u=u.reduce((p,h,g)=>{const m=[...p,h];return g!==d&&m.push(e.createVNode("span",{style:[l.value,c==="vertical"?"width: 100%":null],key:g},[e.isVNode(i)?i:e.createTextVNode(i,In.TEXT)],In.STYLE)),m},[])}return e.createVNode("div",{class:o.value,style:r.value},u,In.STYLE|In.CLASS)}return f.children}}}),vE=Me(jq),VE=le({decimalSeparator:{type:String,default:"."},groupSeparator:{type:String,default:","},precision:{type:Number,default:0},formatter:Function,value:{type:W([Number,Object]),default:0},prefix:String,suffix:String,title:String,valueStyle:{type:W([String,Object,Array])}}),Uq=e.defineComponent({name:"ElStatistic"}),Gq=e.defineComponent({...Uq,props:VE,setup(t,{expose:n}){const o=t,r=Q("statistic"),l=e.computed(()=>{const{value:a,formatter:s,precision:i,decimalSeparator:c,groupSeparator:f}=o;if(qe(s))return s(a);if(!be(a))return a;let[u,d=""]=String(a).split(".");return d=d.padEnd(i,"0").slice(0,i>0?i:0),u=u.replace(/\B(?=(\d{3})+(?!\d))/g,f),[u,d].join(d?c:"")});return n({displayValue:l}),(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(r).b())},[a.$slots.title||a.title?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).e("head"))},[e.renderSlot(a.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(a.title),1)])],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).e("content"))},[a.$slots.prefix||a.prefix?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r).e("prefix"))},[e.renderSlot(a.$slots,"prefix",{},()=>[e.createElementVNode("span",null,e.toDisplayString(a.prefix),1)])],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("span",{class:e.normalizeClass(e.unref(r).e("number")),style:e.normalizeStyle(a.valueStyle)},e.toDisplayString(e.unref(l)),7),a.$slots.suffix||a.suffix?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(r).e("suffix"))},[e.renderSlot(a.$slots,"suffix",{},()=>[e.createElementVNode("span",null,e.toDisplayString(a.suffix),1)])],2)):e.createCommentVNode("v-if",!0)],2)],2))}});var qq=se(Gq,[["__file","statistic.vue"]]);const Tp=Me(qq),ME=le({format:{type:String,default:"HH:mm:ss"},prefix:String,suffix:String,title:String,value:{type:W([Number,Object]),default:0},valueStyle:{type:W([String,Object,Array])}}),IE={finish:()=>!0,[at]:t=>be(t)},Yq=[["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]],PE=t=>be(t)?new Date(t).getTime():t.valueOf(),RE=(t,n)=>{let o=t;const r=/\[([^\]]*)]/g;return Yq.reduce((a,[s,i])=>{const c=new RegExp(`${s}+(?![^\\[\\]]*\\])`,"g");if(c.test(a)){const f=Math.floor(o/i);return o-=f*i,a.replace(c,u=>String(f).padStart(u.length,"0"))}return a},n).replace(r,"$1")},Xq=e.defineComponent({name:"ElCountdown"}),Zq=e.defineComponent({...Xq,props:ME,emits:IE,setup(t,{expose:n,emit:o}){const r=t;let l;const a=e.ref(PE(r.value)-Date.now()),s=e.computed(()=>RE(a.value,r.format)),i=u=>RE(u,r.format),c=()=>{l&&(Rs(l),l=void 0)},f=()=>{const u=PE(r.value),d=()=>{let p=u-Date.now();o("change",p),p<=0?(p=0,c(),o("finish")):l=rl(d),a.value=p};l=rl(d)};return e.watch(()=>[r.value,r.format],()=>{c(),f()},{immediate:!0}),e.onBeforeUnmount(()=>{c()}),n({displayValue:s}),(u,d)=>(e.openBlock(),e.createBlock(e.unref(Tp),{value:a.value,title:u.title,prefix:u.prefix,suffix:u.suffix,"value-style":u.valueStyle,formatter:i},e.createSlots({_:2},[e.renderList(u.$slots,(p,h)=>({name:h,fn:e.withCtx(()=>[e.renderSlot(u.$slots,h)])}))]),1032,["value","title","prefix","suffix","value-style"]))}});var Jq=se(Zq,[["__file","countdown.vue"]]);const OE=Me(Jq),AE=le({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"}}),zE={[at]:(t,n)=>[t,n].every(be)},Qq=e.defineComponent({name:"ElSteps"}),eY=e.defineComponent({...Qq,props:AE,emits:zE,setup(t,{emit:n}){const o=t,r=Q("steps"),{children:l,addChild:a,removeChild:s}=qs(e.getCurrentInstance(),"ElStep");return e.watch(l,()=>{l.value.forEach((i,c)=>{i.setIndex(c)})}),e.provide("ElSteps",{props:o,steps:l,addStep:a,removeStep:s}),e.watch(()=>o.active,(i,c)=>{n(at,i,c)}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(r).b(),e.unref(r).m(i.simple?"simple":i.direction)])},[e.renderSlot(i.$slots,"default")],2))}});var tY=se(eY,[["__file","steps.vue"]]);const DE=le({title:{type:String,default:""},icon:{type:ot},description:{type:String,default:""},status:{type:String,values:["","wait","process","finish","error","success"],default:""}}),nY=e.defineComponent({name:"ElStep"}),oY=e.defineComponent({...nY,props:DE,setup(t){const n=t,o=Q("step"),r=e.ref(-1),l=e.ref({}),a=e.ref(""),s=e.inject("ElSteps"),i=e.getCurrentInstance();e.onMounted(()=>{e.watch([()=>s.props.active,()=>s.props.processStatus,()=>s.props.finishStatus],([S])=>{w(S)},{immediate:!0})}),e.onBeforeUnmount(()=>{s.removeStep(E.uid)});const c=e.computed(()=>n.status||a.value),f=e.computed(()=>{const S=s.steps.value[r.value-1];return S?S.currentStatus:"wait"}),u=e.computed(()=>s.props.alignCenter),d=e.computed(()=>s.props.direction==="vertical"),p=e.computed(()=>s.props.simple),h=e.computed(()=>s.steps.value.length),g=e.computed(()=>{var S;return((S=s.steps.value[h.value-1])==null?void 0:S.uid)===(i==null?void 0:i.uid)}),m=e.computed(()=>p.value?"":s.props.space),b=e.computed(()=>[o.b(),o.is(p.value?"simple":s.props.direction),o.is("flex",g.value&&!m.value&&!u.value),o.is("center",u.value&&!d.value&&!p.value)]),y=e.computed(()=>{const S={flexBasis:be(m.value)?`${m.value}px`:m.value?m.value:`${100/(h.value-(u.value?0:1))}%`};return d.value||g.value&&(S.maxWidth=`${100/h.value}%`),S}),C=S=>{r.value=S},k=S=>{const _=S==="wait",B={transitionDelay:`${_?"-":""}${150*r.value}ms`},M=S===s.props.processStatus||_?0:100;B.borderWidth=M&&!p.value?"1px":0,B[s.props.direction==="vertical"?"height":"width"]=`${M}%`,l.value=B},w=S=>{S>r.value?a.value=s.props.finishStatus:S===r.value&&f.value!=="error"?a.value=s.props.processStatus:a.value="wait";const _=s.steps.value[r.value-1];_&&_.calcProgress(a.value)},E=e.reactive({uid:i.uid,currentStatus:c,setIndex:C,calcProgress:k});return s.addStep(E),(S,_)=>(e.openBlock(),e.createElementBlock("div",{style:e.normalizeStyle(e.unref(y)),class:e.normalizeClass(e.unref(b))},[e.createCommentVNode(" icon & line "),e.createElementVNode("div",{class:e.normalizeClass([e.unref(o).e("head"),e.unref(o).is(e.unref(c))])},[e.unref(p)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).e("line"))},[e.createElementVNode("i",{class:e.normalizeClass(e.unref(o).e("line-inner")),style:e.normalizeStyle(l.value)},null,6)],2)),e.createElementVNode("div",{class:e.normalizeClass([e.unref(o).e("icon"),e.unref(o).is(S.icon||S.$slots.icon?"icon":"text")])},[e.renderSlot(S.$slots,"icon",{},()=>[S.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(o).e("icon-inner"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S.icon)))]),_:1},8,["class"])):e.unref(c)==="success"?(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass([e.unref(o).e("icon-inner"),e.unref(o).is("status")])},{default:e.withCtx(()=>[e.createVNode(e.unref(la))]),_:1},8,["class"])):e.unref(c)==="error"?(e.openBlock(),e.createBlock(e.unref(fe),{key:2,class:e.normalizeClass([e.unref(o).e("icon-inner"),e.unref(o).is("status")])},{default:e.withCtx(()=>[e.createVNode(e.unref(Hn))]),_:1},8,["class"])):e.unref(p)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(e.unref(o).e("icon-inner"))},e.toDisplayString(r.value+1),3))])],2)],2),e.createCommentVNode(" title & description "),e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("main"))},[e.createElementVNode("div",{class:e.normalizeClass([e.unref(o).e("title"),e.unref(o).is(e.unref(c))])},[e.renderSlot(S.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(S.title),1)])],2),e.unref(p)?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(o).e("arrow"))},null,2)):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass([e.unref(o).e("description"),e.unref(o).is(e.unref(c))])},[e.renderSlot(S.$slots,"description",{},()=>[e.createTextVNode(e.toDisplayString(S.description),1)])],2))],2)],6))}});var LE=se(oY,[["__file","item.vue"]]);const xE=Me(tY,{Step:LE}),FE=ht(LE),HE=le({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},size:{type:String,validator:Yd},width:{type:[String,Number],default:""},inlinePrompt:{type:Boolean,default:!1},inactiveActionIcon:{type:ot},activeActionIcon:{type:ot},activeIcon:{type:ot},inactiveIcon:{type:ot},activeText:{type:String,default:""},inactiveText:{type:String,default:""},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},activeColor:{type:String,default:""},inactiveColor:{type:String,default:""},borderColor:{type:String,default:""},name:{type:String,default:""},validateEvent:{type:Boolean,default:!0},beforeChange:{type:W(Function)},id:String,tabindex:{type:[String,Number]},value:{type:[Boolean,String,Number],default:!1},label:{type:String,default:void 0}}),KE={[Ie]:t=>Tt(t)||De(t)||be(t),[at]:t=>Tt(t)||De(t)||be(t),[qt]:t=>Tt(t)||De(t)||be(t)},rY=["onClick"],lY=["id","aria-checked","aria-disabled","aria-label","name","true-value","false-value","disabled","tabindex","onKeydown"],aY=["aria-hidden"],sY=["aria-hidden"],iY=["aria-hidden"],vp="ElSwitch",cY=e.defineComponent({name:vp}),dY=e.defineComponent({...cY,props:HE,emits:KE,setup(t,{expose:n,emit:o}){const r=t,l=e.getCurrentInstance(),{formItem:a}=Xt(),s=St(),i=Q("switch");(B=>{B.forEach(M=>{jn({from:M[0],replacement:M[1],scope:vp,version:"2.3.0",ref:"https://element-plus.org/en-US/component/switch.html#attributes",type:"Attribute"},e.computed(()=>{var P;return!!((P=l.vnode.props)!=null&&P[M[2]])}))})})([['"value"','"model-value" or "v-model"',"value"],['"active-color"',"CSS var `--el-switch-on-color`","activeColor"],['"inactive-color"',"CSS var `--el-switch-off-color`","inactiveColor"],['"border-color"',"CSS var `--el-switch-border-color`","borderColor"]]);const{inputId:f}=vo(r,{formItemContext:a}),u=Yt(e.computed(()=>r.loading)),d=e.ref(r.modelValue!==!1),p=e.ref(),h=e.ref(),g=e.computed(()=>[i.b(),i.m(s.value),i.is("disabled",u.value),i.is("checked",k.value)]),m=e.computed(()=>[i.e("label"),i.em("label","left"),i.is("active",!k.value)]),b=e.computed(()=>[i.e("label"),i.em("label","right"),i.is("active",k.value)]),y=e.computed(()=>({width:kt(r.width)}));e.watch(()=>r.modelValue,()=>{d.value=!0}),e.watch(()=>r.value,()=>{d.value=!1});const C=e.computed(()=>d.value?r.modelValue:r.value),k=e.computed(()=>C.value===r.activeValue);[r.activeValue,r.inactiveValue].includes(C.value)||(o(Ie,r.inactiveValue),o(at,r.inactiveValue),o(qt,r.inactiveValue)),e.watch(k,B=>{var M;p.value.checked=B,r.validateEvent&&((M=a==null?void 0:a.validate)==null||M.call(a,"change").catch(P=>void 0))});const w=()=>{const B=k.value?r.inactiveValue:r.activeValue;o(Ie,B),o(at,B),o(qt,B),e.nextTick(()=>{p.value.checked=k.value})},E=()=>{if(u.value)return;const{beforeChange:B}=r;if(!B){w();return}const M=B();[bc(M),Tt(M)].includes(!0)||vt(vp,"beforeChange must return type `Promise` or `boolean`"),bc(M)?M.then(T=>{T&&w()}).catch(T=>{}):M&&w()},S=e.computed(()=>i.cssVarBlock({...r.activeColor?{"on-color":r.activeColor}:null,...r.inactiveColor?{"off-color":r.inactiveColor}:null,...r.borderColor?{"border-color":r.borderColor}:null})),_=()=>{var B,M;(M=(B=p.value)==null?void 0:B.focus)==null||M.call(B)};return e.onMounted(()=>{p.value.checked=k.value}),n({focus:_,checked:k}),(B,M)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(g)),style:e.normalizeStyle(e.unref(S)),onClick:e.withModifiers(E,["prevent"])},[e.createElementVNode("input",{id:e.unref(f),ref_key:"input",ref:p,class:e.normalizeClass(e.unref(i).e("input")),type:"checkbox",role:"switch","aria-checked":e.unref(k),"aria-disabled":e.unref(u),"aria-label":B.label,name:B.name,"true-value":B.activeValue,"false-value":B.inactiveValue,disabled:e.unref(u),tabindex:B.tabindex,onChange:w,onKeydown:e.withKeys(E,["enter"])},null,42,lY),!B.inlinePrompt&&(B.inactiveIcon||B.inactiveText)?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(m))},[B.inactiveIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.inactiveIcon)))]),_:1})):e.createCommentVNode("v-if",!0),!B.inactiveIcon&&B.inactiveText?(e.openBlock(),e.createElementBlock("span",{key:1,"aria-hidden":e.unref(k)},e.toDisplayString(B.inactiveText),9,aY)):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("span",{ref_key:"core",ref:h,class:e.normalizeClass(e.unref(i).e("core")),style:e.normalizeStyle(e.unref(y))},[B.inlinePrompt?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(i).e("inner"))},[B.activeIcon||B.inactiveIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(i).is("icon"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(k)?B.activeIcon:B.inactiveIcon)))]),_:1},8,["class"])):B.activeText||B.inactiveText?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(i).is("text")),"aria-hidden":!e.unref(k)},e.toDisplayString(e.unref(k)?B.activeText:B.inactiveText),11,sY)):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(i).e("action"))},[B.loading?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(i).is("loading"))},{default:e.withCtx(()=>[e.createVNode(e.unref(Zo))]),_:1},8,["class"])):B.activeActionIcon&&e.unref(k)?(e.openBlock(),e.createBlock(e.unref(fe),{key:1},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.activeActionIcon)))]),_:1})):B.inactiveActionIcon&&!e.unref(k)?(e.openBlock(),e.createBlock(e.unref(fe),{key:2},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.inactiveActionIcon)))]),_:1})):e.createCommentVNode("v-if",!0)],2)],6),!B.inlinePrompt&&(B.activeIcon||B.activeText)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(b))},[B.activeIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(B.activeIcon)))]),_:1})):e.createCommentVNode("v-if",!0),!B.activeIcon&&B.activeText?(e.openBlock(),e.createElementBlock("span",{key:1,"aria-hidden":!e.unref(k)},e.toDisplayString(B.activeText),9,iY)):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0)],14,rY))}});var fY=se(dY,[["__file","switch.vue"]]);const WE=Me(fY);var uY=/["'&<>]/,pY=mY;function mY(t){var n=""+t,o=uY.exec(n);if(!o)return n;var r,l="",a=0,s=0;for(a=o.index;atypeof f=="string"?ct(i,f):f(i,c,t))):(n!=="$key"&&nt(i)&&"$value"in i&&(i=i.$value),[nt(i)?ct(i,n):i])},s=function(i,c){if(r)return r(i.value,c.value);for(let f=0,u=i.key.length;fc.key[f])return 1}return 0};return t.map((i,c)=>({value:i,index:c,key:a?a(i,c):null})).sort((i,c)=>{let f=s(i,c);return f||(f=i.index-c.index),f*+o}).map(i=>i.value)},jE=function(t,n){let o=null;return t.columns.forEach(r=>{r.id===n&&(o=r)}),o},gY=function(t,n){let o=null;for(let r=0;r{if(!t)throw new Error("Row is required when get row identity");if(typeof n=="string"){if(!n.includes("."))return`${t[n]}`;const o=n.split(".");let r=t;for(const l of o)r=r[l];return`${r}`}else if(typeof n=="function")return n.call(null,t)},Lr=function(t,n){const o={};return(t||[]).forEach((r,l)=>{o[Kt(r,n)]={row:r,index:l}}),o};function yY(t,n){const o={};let r;for(r in t)o[r]=t[r];for(r in n)if(Lt(n,r)){const l=n[r];typeof l!="undefined"&&(o[r]=l)}return o}function Mp(t){return t===""||t!==void 0&&(t=Number.parseInt(t,10),Number.isNaN(t)&&(t="")),t}function GE(t){return t===""||t!==void 0&&(t=Mp(t),Number.isNaN(t)&&(t=80)),t}function bY(t){return typeof t=="number"?t:typeof t=="string"?/^\d+(?:px)?$/.test(t)?Number.parseInt(t,10):t:null}function CY(...t){return t.length===0?n=>n:t.length===1?t[0]:t.reduce((n,o)=>(...r)=>n(o(...r)))}function Oa(t,n,o){let r=!1;const l=t.indexOf(n),a=l!==-1,s=i=>{i==="add"?t.push(n):t.splice(l,1),r=!0,Re(n.children)&&n.children.forEach(c=>{Oa(t,c,o!=null?o:!a)})};return Tt(o)?o&&!a?s("add"):!o&&a&&s("remove"):s(a?"remove":"add"),r}function wY(t,n,o="children",r="hasChildren"){const l=s=>!(Array.isArray(s)&&s.length);function a(s,i,c){n(s,i,c),i.forEach(f=>{if(f[r]){n(f,null,c+1);return}const u=f[o];l(u)||a(f,u,c+1)})}t.forEach(s=>{if(s[r]){n(s,null,0);return}const i=s[o];l(i)||a(s,i,0)})}let Oo;function kY(t,n,o,r,l){l=Ed({enterable:!0,showArrow:!0},l);const a=t==null?void 0:t.dataset.prefix,s=t==null?void 0:t.querySelector(`.${a}-scrollbar__wrap`);function i(){const b=l.effect==="light",y=document.createElement("div");return y.className=[`${a}-popper`,b?"is-light":"is-dark",l.popperClass||""].join(" "),o=pY(o),y.innerHTML=o,y.style.zIndex=String(r()),t==null||t.appendChild(y),y}function c(){const b=document.createElement("div");return b.className=`${a}-popper__arrow`,b}function f(){u&&u.update()}Oo==null||Oo(),Oo=()=>{try{u&&u.destroy(),h&&(t==null||t.removeChild(h)),n.removeEventListener("mouseenter",d),n.removeEventListener("mouseleave",p),s==null||s.removeEventListener("scroll",Oo),Oo=void 0}catch(b){}};let u=null,d=f,p=Oo;l.enterable&&({onOpen:d,onClose:p}=yf({showAfter:l.showAfter,hideAfter:l.hideAfter,open:f,close:Oo}));const h=i();h.onmouseenter=d,h.onmouseleave=p;const g=[];if(l.offset&&g.push({name:"offset",options:{offset:[0,l.offset]}}),l.showArrow){const b=h.appendChild(c());g.push({name:"arrow",options:{element:b,padding:10}})}const m=l.popperOptions||{};return u=ab(n,h,{placement:l.placement||"top",strategy:"fixed",...m,modifiers:m.modifiers?g.concat(m.modifiers):g}),n.addEventListener("mouseenter",d),n.addEventListener("mouseleave",p),s==null||s.addEventListener("scroll",Oo),u}function qE(t){return t.children?w0(t.children,qE):[t]}function YE(t,n){return t+n.colSpan}const XE=(t,n,o,r)=>{let l=0,a=t;const s=o.states.columns.value;if(r){const c=qE(r[t]);l=s.slice(0,s.indexOf(c[0])).reduce(YE,0),a=l+c.reduce(YE,0)-1}else l=t;let i;switch(n){case"left":a=s.length-o.states.rightFixedLeafColumnsLength.value&&(i="right");break;default:a=s.length-o.states.rightFixedLeafColumnsLength.value&&(i="right")}return i?{direction:i,start:l,after:a}:{}},Ip=(t,n,o,r,l,a=0)=>{const s=[],{direction:i,start:c,after:f}=XE(n,o,r,l);if(i){const u=i==="left";s.push(`${t}-fixed-column--${i}`),u&&f+a===r.states.fixedLeafColumnsLength.value-1?s.push("is-last-column"):!u&&c-a===r.states.columns.value.length-r.states.rightFixedLeafColumnsLength.value&&s.push("is-first-column")}return s};function ZE(t,n){return t+(n.realWidth===null||Number.isNaN(n.realWidth)?Number(n.width):n.realWidth)}const Pp=(t,n,o,r)=>{const{direction:l,start:a=0,after:s=0}=XE(t,n,o,r);if(!l)return;const i={},c=l==="left",f=o.states.columns.value;return c?i.left=f.slice(0,a).reduce(ZE,0):i.right=f.slice(s+1).reverse().reduce(ZE,0),i},Bl=(t,n)=>{!t||Number.isNaN(t[n])||(t[n]=`${t[n]}px`)};function SY(t){const n=e.getCurrentInstance(),o=e.ref(!1),r=e.ref([]);return{updateExpandRows:()=>{const c=t.data.value||[],f=t.rowKey.value;if(o.value)r.value=c.slice();else if(f){const u=Lr(r.value,f);r.value=c.reduce((d,p)=>{const h=Kt(p,f);return u[h]&&d.push(p),d},[])}else r.value=[]},toggleRowExpansion:(c,f)=>{Oa(r.value,c,f)&&n.emit("expand-change",c,r.value.slice())},setExpandRowKeys:c=>{n.store.assertRowKey();const f=t.data.value||[],u=t.rowKey.value,d=Lr(f,u);r.value=c.reduce((p,h)=>{const g=d[h];return g&&p.push(g.row),p},[])},isRowExpanded:c=>{const f=t.rowKey.value;return f?!!Lr(r.value,f)[Kt(c,f)]:r.value.includes(c)},states:{expandRows:r,defaultExpandAll:o}}}function EY(t){const n=e.getCurrentInstance(),o=e.ref(null),r=e.ref(null),l=f=>{n.store.assertRowKey(),o.value=f,s(f)},a=()=>{o.value=null},s=f=>{const{data:u,rowKey:d}=t;let p=null;d.value&&(p=(e.unref(u)||[]).find(h=>Kt(h,d.value)===f)),r.value=p,n.emit("current-change",r.value,null)};return{setCurrentRowKey:l,restoreCurrentRowKey:a,setCurrentRowByKey:s,updateCurrentRow:f=>{const u=r.value;if(f&&f!==u){r.value=f,n.emit("current-change",r.value,u);return}!f&&u&&(r.value=null,n.emit("current-change",null,u))},updateCurrentRowData:()=>{const f=t.rowKey.value,u=t.data.value||[],d=r.value;if(!u.includes(d)&&d){if(f){const p=Kt(d,f);s(p)}else r.value=null;r.value===null&&n.emit("current-change",null,d)}else o.value&&(s(o.value),a())},states:{_currentRowKey:o,currentRow:r}}}function NY(t){const n=e.ref([]),o=e.ref({}),r=e.ref(16),l=e.ref(!1),a=e.ref({}),s=e.ref("hasChildren"),i=e.ref("children"),c=e.getCurrentInstance(),f=e.computed(()=>{if(!t.rowKey.value)return{};const y=t.data.value||[];return d(y)}),u=e.computed(()=>{const y=t.rowKey.value,C=Object.keys(a.value),k={};return C.length&&C.forEach(w=>{if(a.value[w].length){const E={children:[]};a.value[w].forEach(S=>{const _=Kt(S,y);E.children.push(_),S[s.value]&&!k[_]&&(k[_]={children:[]})}),k[w]=E}}),k}),d=y=>{const C=t.rowKey.value,k={};return wY(y,(w,E,S)=>{const _=Kt(w,C);Array.isArray(E)?k[_]={children:E.map(B=>Kt(B,C)),level:S}:l.value&&(k[_]={children:[],lazy:!0,level:S})},i.value,s.value),k},p=(y=!1,C=(k=>(k=c.store)==null?void 0:k.states.defaultExpandAll.value)())=>{var k;const w=f.value,E=u.value,S=Object.keys(w),_={};if(S.length){const B=e.unref(o),M=[],P=(I,v)=>{if(y)return n.value?C||n.value.includes(v):!!(C||(I==null?void 0:I.expanded));{const O=C||n.value&&n.value.includes(v);return!!((I==null?void 0:I.expanded)||O)}};S.forEach(I=>{const v=B[I],O={...w[I]};if(O.expanded=P(v,I),O.lazy){const{loaded:D=!1,loading:z=!1}=v||{};O.loaded=!!D,O.loading=!!z,M.push(I)}_[I]=O});const T=Object.keys(E);l.value&&T.length&&M.length&&T.forEach(I=>{const v=B[I],O=E[I].children;if(M.includes(I)){if(_[I].children.length!==0)throw new Error("[ElTable]children must be an empty array.");_[I].children=O}else{const{loaded:D=!1,loading:z=!1}=v||{};_[I]={lazy:!0,loaded:!!D,loading:!!z,expanded:P(v,I),children:O,level:""}}})}o.value=_,(k=c.store)==null||k.updateTableScrollY()};e.watch(()=>n.value,()=>{p(!0)}),e.watch(()=>f.value,()=>{p()}),e.watch(()=>u.value,()=>{p()});const h=y=>{n.value=y,p()},g=(y,C)=>{c.store.assertRowKey();const k=t.rowKey.value,w=Kt(y,k),E=w&&o.value[w];if(w&&E&&"expanded"in E){const S=E.expanded;C=typeof C=="undefined"?!E.expanded:C,o.value[w].expanded=C,S!==C&&c.emit("expand-change",y,C),c.store.updateTableScrollY()}},m=y=>{c.store.assertRowKey();const C=t.rowKey.value,k=Kt(y,C),w=o.value[k];l.value&&w&&"loaded"in w&&!w.loaded?b(y,k,w):g(y,void 0)},b=(y,C,k)=>{const{load:w}=c.props;w&&!o.value[C].loaded&&(o.value[C].loading=!0,w(y,k,E=>{if(!Array.isArray(E))throw new TypeError("[ElTable] data must be an array");o.value[C].loading=!1,o.value[C].loaded=!0,o.value[C].expanded=!0,E.length&&(a.value[C]=E),c.emit("expand-change",y,!0)}))};return{loadData:b,loadOrToggle:m,toggleTreeExpansion:g,updateTreeExpandKeys:h,updateTreeData:p,normalize:d,states:{expandRowKeys:n,treeData:o,indent:r,lazy:l,lazyTreeNodeMap:a,lazyColumnIdentifier:s,childrenColumnName:i}}}const _Y=(t,n)=>{const o=n.sortingColumn;return!o||typeof o.sortable=="string"?t:hY(t,n.sortProp,n.sortOrder,o.sortMethod,o.sortBy)},Yi=t=>{const n=[];return t.forEach(o=>{o.children&&o.children.length>0?n.push.apply(n,Yi(o.children)):n.push(o)}),n};function BY(){var t;const n=e.getCurrentInstance(),{size:o}=e.toRefs((t=n.proxy)==null?void 0:t.$props),r=e.ref(null),l=e.ref([]),a=e.ref([]),s=e.ref(!1),i=e.ref([]),c=e.ref([]),f=e.ref([]),u=e.ref([]),d=e.ref([]),p=e.ref([]),h=e.ref([]),g=e.ref([]),m=[],b=e.ref(0),y=e.ref(0),C=e.ref(0),k=e.ref(!1),w=e.ref([]),E=e.ref(!1),S=e.ref(!1),_=e.ref(null),B=e.ref({}),M=e.ref(null),P=e.ref(null),T=e.ref(null),I=e.ref(null),v=e.ref(null);e.watch(l,()=>n.state&&$(!1),{deep:!0});const O=()=>{if(!r.value)throw new Error("[ElTable] prop row-key is required")},D=ke=>{var J;(J=ke.children)==null||J.forEach(G=>{G.fixed=ke.fixed,D(G)})},z=()=>{i.value.forEach(ee=>{D(ee)}),u.value=i.value.filter(ee=>ee.fixed===!0||ee.fixed==="left"),d.value=i.value.filter(ee=>ee.fixed==="right"),u.value.length>0&&i.value[0]&&i.value[0].type==="selection"&&!i.value[0].fixed&&(i.value[0].fixed=!0,u.value.unshift(i.value[0]));const ke=i.value.filter(ee=>!ee.fixed);c.value=[].concat(u.value).concat(ke).concat(d.value);const J=Yi(ke),G=Yi(u.value),j=Yi(d.value);b.value=J.length,y.value=G.length,C.value=j.length,f.value=[].concat(G).concat(J).concat(j),s.value=u.value.length>0||d.value.length>0},$=(ke,J=!1)=>{ke&&z(),J?n.state.doLayout():n.state.debouncedUpdateLayout()},R=ke=>w.value.includes(ke),N=()=>{k.value=!1,w.value.length&&(w.value=[],n.emit("selection-change",[]))},A=()=>{let ke;if(r.value){ke=[];const J=Lr(w.value,r.value),G=Lr(l.value,r.value);for(const j in J)Lt(J,j)&&!G[j]&&ke.push(J[j].row)}else ke=w.value.filter(J=>!l.value.includes(J));if(ke.length){const J=w.value.filter(G=>!ke.includes(G));w.value=J,n.emit("selection-change",J.slice())}},x=()=>(w.value||[]).slice(),H=(ke,J=void 0,G=!0)=>{if(Oa(w.value,ke,J)){const ee=(w.value||[]).slice();G&&n.emit("select",ee,ke),n.emit("selection-change",ee)}},K=()=>{var ke,J;const G=S.value?!k.value:!(k.value||w.value.length);k.value=G;let j=!1,ee=0;const F=(J=(ke=n==null?void 0:n.store)==null?void 0:ke.states)==null?void 0:J.rowKey.value;l.value.forEach((ue,Be)=>{const xe=Be+ee;_.value?_.value.call(null,ue,xe)&&Oa(w.value,ue,G)&&(j=!0):Oa(w.value,ue,G)&&(j=!0),ee+=Y(Kt(ue,F))}),j&&n.emit("selection-change",w.value?w.value.slice():[]),n.emit("select-all",w.value)},q=()=>{const ke=Lr(w.value,r.value);l.value.forEach(J=>{const G=Kt(J,r.value),j=ke[G];j&&(w.value[j.index]=J)})},ne=()=>{var ke,J,G;if(((ke=l.value)==null?void 0:ke.length)===0){k.value=!1;return}let j;r.value&&(j=Lr(w.value,r.value));const ee=function(xe){return j?!!j[Kt(xe,r.value)]:w.value.includes(xe)};let F=!0,ue=0,Be=0;for(let xe=0,_t=(l.value||[]).length;xe<_t;xe++){const gt=(G=(J=n==null?void 0:n.store)==null?void 0:J.states)==null?void 0:G.rowKey.value,zn=xe+Be,Wt=l.value[xe],X=_.value&&_.value.call(null,Wt,zn);if(ee(Wt))ue++;else if(!_.value||X){F=!1;break}Be+=Y(Kt(Wt,gt))}ue===0&&(F=!1),k.value=F},Y=ke=>{var J;if(!n||!n.store)return 0;const{treeData:G}=n.store.states;let j=0;const ee=(J=G.value[ke])==null?void 0:J.children;return ee&&(j+=ee.length,ee.forEach(F=>{j+=Y(F)})),j},Z=(ke,J)=>{Array.isArray(ke)||(ke=[ke]);const G={};return ke.forEach(j=>{B.value[j.id]=J,G[j.columnKey||j.id]=J}),G},U=(ke,J,G)=>{P.value&&P.value!==ke&&(P.value.order=null),P.value=ke,T.value=J,I.value=G},re=()=>{let ke=e.unref(a);Object.keys(B.value).forEach(J=>{const G=B.value[J];if(!G||G.length===0)return;const j=jE({columns:f.value},J);j&&j.filterMethod&&(ke=ke.filter(ee=>G.some(F=>j.filterMethod.call(null,F,ee,j))))}),M.value=ke},te=()=>{l.value=_Y(M.value,{sortingColumn:P.value,sortProp:T.value,sortOrder:I.value})},oe=(ke=void 0)=>{ke&&ke.filter||re(),te()},ie=ke=>{const{tableHeaderRef:J}=n.refs;if(!J)return;const G=Object.assign({},J.filterPanels),j=Object.keys(G);if(!!j.length)if(typeof ke=="string"&&(ke=[ke]),Array.isArray(ke)){const ee=ke.map(F=>gY({columns:f.value},F));j.forEach(F=>{const ue=ee.find(Be=>Be.id===F);ue&&(ue.filteredValue=[])}),n.store.commit("filterChange",{column:ee,values:[],silent:!0,multi:!0})}else j.forEach(ee=>{const F=f.value.find(ue=>ue.id===ee);F&&(F.filteredValue=[])}),B.value={},n.store.commit("filterChange",{column:{},values:[],silent:!0})},ye=()=>{!P.value||(U(null,null,null),n.store.commit("changeSortCondition",{silent:!0}))},{setExpandRowKeys:Ne,toggleRowExpansion:Te,updateExpandRows:Pe,states:he,isRowExpanded:Ce}=SY({data:l,rowKey:r}),{updateTreeExpandKeys:ge,toggleTreeExpansion:me,updateTreeData:_e,loadOrToggle:$e,states:Ae}=NY({data:l,rowKey:r}),{updateCurrentRowData:Oe,updateCurrentRow:ce,setCurrentRowKey:Ee,states:Le}=EY({data:l,rowKey:r});return{assertRowKey:O,updateColumns:z,scheduleLayout:$,isSelected:R,clearSelection:N,cleanSelection:A,getSelectionRows:x,toggleRowSelection:H,_toggleAllSelection:K,toggleAllSelection:null,updateSelectionByRowKey:q,updateAllSelected:ne,updateFilters:Z,updateCurrentRow:ce,updateSort:U,execFilter:re,execSort:te,execQuery:oe,clearFilter:ie,clearSort:ye,toggleRowExpansion:Te,setExpandRowKeysAdapter:ke=>{Ne(ke),ge(ke)},setCurrentRowKey:Ee,toggleRowExpansionAdapter:(ke,J)=>{f.value.some(({type:j})=>j==="expand")?Te(ke,J):me(ke,J)},isRowExpanded:Ce,updateExpandRows:Pe,updateCurrentRowData:Oe,loadOrToggle:$e,updateTreeData:_e,states:{tableSize:o,rowKey:r,data:l,_data:a,isComplex:s,_columns:i,originColumns:c,columns:f,fixedColumns:u,rightFixedColumns:d,leafColumns:p,fixedLeafColumns:h,rightFixedLeafColumns:g,updateOrderFns:m,leafColumnsLength:b,fixedLeafColumnsLength:y,rightFixedLeafColumnsLength:C,isAllSelected:k,selection:w,reserveSelection:E,selectOnIndeterminate:S,selectable:_,filters:B,filteredData:M,sortingColumn:P,sortProp:T,sortOrder:I,hoverRow:v,...he,...Ae,...Le}}}function Rp(t,n){return t.map(o=>{var r;return o.id===n.id?n:((r=o.children)!=null&&r.length&&(o.children=Rp(o.children,n)),o)})}function Op(t){t.forEach(n=>{var o,r;n.no=(o=n.getColumnIndex)==null?void 0:o.call(n),(r=n.children)!=null&&r.length&&Op(n.children)}),t.sort((n,o)=>n.no-o.no)}function $Y(){const t=e.getCurrentInstance(),n=BY();return{ns:Q("table"),...n,mutations:{setData(s,i){const c=e.unref(s._data)!==i;s.data.value=i,s._data.value=i,t.store.execQuery(),t.store.updateCurrentRowData(),t.store.updateExpandRows(),t.store.updateTreeData(t.store.states.defaultExpandAll.value),e.unref(s.reserveSelection)?(t.store.assertRowKey(),t.store.updateSelectionByRowKey()):c?t.store.clearSelection():t.store.cleanSelection(),t.store.updateAllSelected(),t.$ready&&t.store.scheduleLayout()},insertColumn(s,i,c,f){const u=e.unref(s._columns);let d=[];c?(c&&!c.children&&(c.children=[]),c.children.push(i),d=Rp(u,c)):(u.push(i),d=u),Op(d),s._columns.value=d,s.updateOrderFns.push(f),i.type==="selection"&&(s.selectable.value=i.selectable,s.reserveSelection.value=i.reserveSelection),t.$ready&&(t.store.updateColumns(),t.store.scheduleLayout())},updateColumnOrder(s,i){var c;((c=i.getColumnIndex)==null?void 0:c.call(i))!==i.no&&(Op(s._columns.value),t.$ready&&t.store.updateColumns())},removeColumn(s,i,c,f){const u=e.unref(s._columns)||[];if(c)c.children.splice(c.children.findIndex(p=>p.id===i.id),1),e.nextTick(()=>{var p;((p=c.children)==null?void 0:p.length)===0&&delete c.children}),s._columns.value=Rp(u,c);else{const p=u.indexOf(i);p>-1&&(u.splice(p,1),s._columns.value=u)}const d=s.updateOrderFns.indexOf(f);d>-1&&s.updateOrderFns.splice(d,1),t.$ready&&(t.store.updateColumns(),t.store.scheduleLayout())},sort(s,i){const{prop:c,order:f,init:u}=i;if(c){const d=e.unref(s.columns).find(p=>p.property===c);d&&(d.order=f,t.store.updateSort(d,c,f),t.store.commit("changeSortCondition",{init:u}))}},changeSortCondition(s,i){const{sortingColumn:c,sortProp:f,sortOrder:u}=s,d=e.unref(c),p=e.unref(f),h=e.unref(u);h===null&&(s.sortingColumn.value=null,s.sortProp.value=null);const g={filter:!0};t.store.execQuery(g),(!i||!(i.silent||i.init))&&t.emit("sort-change",{column:d,prop:p,order:h}),t.store.updateTableScrollY()},filterChange(s,i){const{column:c,values:f,silent:u}=i,d=t.store.updateFilters(c,f);t.store.execQuery(),u||t.emit("filter-change",d),t.store.updateTableScrollY()},toggleAllSelection(){t.store.toggleAllSelection()},rowSelectedChanged(s,i){t.store.toggleRowSelection(i),t.store.updateAllSelected()},setHoverRow(s,i){s.hoverRow.value=i},setCurrentRow(s,i){t.store.updateCurrentRow(i)}},commit:function(s,...i){const c=t.store.mutations;if(c[s])c[s].apply(t,[t.store.states].concat(i));else throw new Error(`Action not found: ${s}`)},updateTableScrollY:function(){e.nextTick(()=>t.layout.updateScrollY.apply(t.layout))}}}const Aa={rowKey:"rowKey",defaultExpandAll:"defaultExpandAll",selectOnIndeterminate:"selectOnIndeterminate",indent:"indent",lazy:"lazy",data:"data",["treeProps.hasChildren"]:{key:"lazyColumnIdentifier",default:"hasChildren"},["treeProps.children"]:{key:"childrenColumnName",default:"children"}};function TY(t,n){if(!t)throw new Error("Table is required.");const o=$Y();return o.toggleAllSelection=Gt(o._toggleAllSelection,10),Object.keys(Aa).forEach(r=>{JE(QE(n,r),r,o)}),vY(o,n),o}function vY(t,n){Object.keys(Aa).forEach(o=>{e.watch(()=>QE(n,o),r=>{JE(r,o,t)})})}function JE(t,n,o){let r=t,l=Aa[n];typeof Aa[n]=="object"&&(l=l.key,r=r||Aa[n].default),o.states[l].value=r}function QE(t,n){if(n.includes(".")){const o=n.split(".");let r=t;return o.forEach(l=>{r=r[l]}),r}else return t[n]}class VY{constructor(n){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.height=e.ref(null),this.scrollX=e.ref(!1),this.scrollY=e.ref(!1),this.bodyWidth=e.ref(null),this.fixedWidth=e.ref(null),this.rightFixedWidth=e.ref(null),this.gutterWidth=0;for(const o in n)Lt(n,o)&&(e.isRef(this[o])?this[o].value=n[o]:this[o]=n[o]);if(!this.table)throw new Error("Table is required for Table Layout");if(!this.store)throw new Error("Store is required for Table Layout")}updateScrollY(){if(this.height.value===null)return!1;const o=this.table.refs.scrollBarRef;if(this.table.vnode.el&&(o==null?void 0:o.wrapRef)){let r=!0;const l=this.scrollY.value;return r=o.wrapRef.scrollHeight>o.wrapRef.clientHeight,this.scrollY.value=r,l!==r}return!1}setHeight(n,o="height"){if(!He)return;const r=this.table.vnode.el;if(n=bY(n),this.height.value=Number(n),!r&&(n||n===0))return e.nextTick(()=>this.setHeight(n,o));typeof n=="number"?(r.style[o]=`${n}px`,this.updateElsHeight()):typeof n=="string"&&(r.style[o]=n,this.updateElsHeight())}setMaxHeight(n){this.setHeight(n,"max-height")}getFlattenColumns(){const n=[];return this.table.store.states.columns.value.forEach(r=>{r.isColumnGroup?n.push.apply(n,r.columns):n.push(r)}),n}updateElsHeight(){this.updateScrollY(),this.notifyObservers("scrollable")}headerDisplayNone(n){if(!n)return!0;let o=n;for(;o.tagName!=="DIV";){if(getComputedStyle(o).display==="none")return!0;o=o.parentElement}return!1}updateColumnsWidth(){if(!He)return;const n=this.fit,o=this.table.vnode.el.clientWidth;let r=0;const l=this.getFlattenColumns(),a=l.filter(c=>typeof c.width!="number");if(l.forEach(c=>{typeof c.width=="number"&&c.realWidth&&(c.realWidth=null)}),a.length>0&&n){if(l.forEach(c=>{r+=Number(c.width||c.minWidth||80)}),r<=o){this.scrollX.value=!1;const c=o-r;if(a.length===1)a[0].realWidth=Number(a[0].minWidth||80)+c;else{const f=a.reduce((p,h)=>p+Number(h.minWidth||80),0),u=c/f;let d=0;a.forEach((p,h)=>{if(h===0)return;const g=Math.floor(Number(p.minWidth||80)*u);d+=g,p.realWidth=Number(p.minWidth||80)+g}),a[0].realWidth=Number(a[0].minWidth||80)+c-d}}else this.scrollX.value=!0,a.forEach(c=>{c.realWidth=Number(c.minWidth)});this.bodyWidth.value=Math.max(r,o),this.table.state.resizeState.value.width=this.bodyWidth.value}else l.forEach(c=>{!c.width&&!c.minWidth?c.realWidth=80:c.realWidth=Number(c.width||c.minWidth),r+=c.realWidth}),this.scrollX.value=r>o,this.bodyWidth.value=r;const s=this.store.states.fixedColumns.value;if(s.length>0){let c=0;s.forEach(f=>{c+=Number(f.realWidth||f.width)}),this.fixedWidth.value=c}const i=this.store.states.rightFixedColumns.value;if(i.length>0){let c=0;i.forEach(f=>{c+=Number(f.realWidth||f.width)}),this.rightFixedWidth.value=c}this.notifyObservers("columns")}addObserver(n){this.observers.push(n)}removeObserver(n){const o=this.observers.indexOf(n);o!==-1&&this.observers.splice(o,1)}notifyObservers(n){this.observers.forEach(r=>{var l,a;switch(n){case"columns":(l=r.state)==null||l.onColumnsChange(this);break;case"scrollable":(a=r.state)==null||a.onScrollableChange(this);break;default:throw new Error(`Table Layout don't have event ${n}.`)}})}}var MY=VY;const{CheckboxGroup:IY}=En,PY=e.defineComponent({name:"ElTableFilterPanel",components:{ElCheckbox:En,ElCheckboxGroup:IY,ElScrollbar:mo,ElTooltip:Zt,ElIcon:fe,ArrowDown:qo,ArrowUp:Ts},directives:{ClickOutside:Po},props:{placement:{type:String,default:"bottom-start"},store:{type:Object},column:{type:Object},upDataColumn:{type:Function}},setup(t){const n=e.getCurrentInstance(),{t:o}=Ke(),r=Q("table-filter"),l=n==null?void 0:n.parent;l.filterPanels.value[t.column.id]||(l.filterPanels.value[t.column.id]=n);const a=e.ref(!1),s=e.ref(null),i=e.computed(()=>t.column&&t.column.filters),c=e.computed({get:()=>{var w;return(((w=t.column)==null?void 0:w.filteredValue)||[])[0]},set:w=>{f.value&&(typeof w!="undefined"&&w!==null?f.value.splice(0,1,w):f.value.splice(0,1))}}),f=e.computed({get(){return t.column?t.column.filteredValue||[]:[]},set(w){t.column&&t.upDataColumn("filteredValue",w)}}),u=e.computed(()=>t.column?t.column.filterMultiple:!0),d=w=>w.value===c.value,p=()=>{a.value=!1},h=w=>{w.stopPropagation(),a.value=!a.value},g=()=>{a.value=!1},m=()=>{C(f.value),p()},b=()=>{f.value=[],C(f.value),p()},y=w=>{c.value=w,C(typeof w!="undefined"&&w!==null?f.value:[]),p()},C=w=>{t.store.commit("filterChange",{column:t.column,values:w}),t.store.updateAllSelected()};e.watch(a,w=>{t.column&&t.upDataColumn("filterOpened",w)},{immediate:!0});const k=e.computed(()=>{var w,E;return(E=(w=s.value)==null?void 0:w.popperRef)==null?void 0:E.contentRef});return{tooltipVisible:a,multiple:u,filteredValue:f,filterValue:c,filters:i,handleConfirm:m,handleReset:b,handleSelect:y,isActive:d,t:o,ns:r,showFilterPanel:h,hideFilterPanel:g,popperPaneRef:k,tooltip:s}}}),RY={key:0},OY=["disabled"],AY=["label","onClick"];function zY(t,n,o,r,l,a){const s=e.resolveComponent("el-checkbox"),i=e.resolveComponent("el-checkbox-group"),c=e.resolveComponent("el-scrollbar"),f=e.resolveComponent("arrow-up"),u=e.resolveComponent("arrow-down"),d=e.resolveComponent("el-icon"),p=e.resolveComponent("el-tooltip"),h=e.resolveDirective("click-outside");return e.openBlock(),e.createBlock(p,{ref:"tooltip",visible:t.tooltipVisible,offset:0,placement:t.placement,"show-arrow":!1,"stop-popper-mouse-event":!1,teleported:"",effect:"light",pure:"","popper-class":t.ns.b(),persistent:""},{content:e.withCtx(()=>[t.multiple?(e.openBlock(),e.createElementBlock("div",RY,[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("content"))},[e.createVNode(c,{"wrap-class":t.ns.e("wrap")},{default:e.withCtx(()=>[e.createVNode(i,{modelValue:t.filteredValue,"onUpdate:modelValue":n[0]||(n[0]=g=>t.filteredValue=g),class:e.normalizeClass(t.ns.e("checkbox-group"))},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.filters,g=>(e.openBlock(),e.createBlock(s,{key:g.value,label:g.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(g.text),1)]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue","class"])]),_:1},8,["wrap-class"])],2),e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("bottom"))},[e.createElementVNode("button",{class:e.normalizeClass({[t.ns.is("disabled")]:t.filteredValue.length===0}),disabled:t.filteredValue.length===0,type:"button",onClick:n[1]||(n[1]=(...g)=>t.handleConfirm&&t.handleConfirm(...g))},e.toDisplayString(t.t("el.table.confirmFilter")),11,OY),e.createElementVNode("button",{type:"button",onClick:n[2]||(n[2]=(...g)=>t.handleReset&&t.handleReset(...g))},e.toDisplayString(t.t("el.table.resetFilter")),1)],2)])):(e.openBlock(),e.createElementBlock("ul",{key:1,class:e.normalizeClass(t.ns.e("list"))},[e.createElementVNode("li",{class:e.normalizeClass([t.ns.e("list-item"),{[t.ns.is("active")]:t.filterValue===void 0||t.filterValue===null}]),onClick:n[3]||(n[3]=g=>t.handleSelect(null))},e.toDisplayString(t.t("el.table.clearFilter")),3),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.filters,g=>(e.openBlock(),e.createElementBlock("li",{key:g.value,class:e.normalizeClass([t.ns.e("list-item"),t.ns.is("active",t.isActive(g))]),label:g.value,onClick:m=>t.handleSelect(g.value)},e.toDisplayString(g.text),11,AY))),128))],2))]),default:e.withCtx(()=>[e.withDirectives((e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass([`${t.ns.namespace.value}-table__column-filter-trigger`,`${t.ns.namespace.value}-none-outline`]),onClick:n[4]||(n[4]=(...g)=>t.showFilterPanel&&t.showFilterPanel(...g))},[e.createVNode(d,null,{default:e.withCtx(()=>[t.column.filterOpened?(e.openBlock(),e.createBlock(f,{key:0})):(e.openBlock(),e.createBlock(u,{key:1}))]),_:1})],2)),[[h,t.hideFilterPanel,t.popperPaneRef]])]),_:1},8,["visible","placement","popper-class"])}var DY=se(PY,[["render",zY],["__file","filter-panel.vue"]]);function e2(t){const n=e.getCurrentInstance();e.onBeforeMount(()=>{o.value.addObserver(n)}),e.onMounted(()=>{r(o.value),l(o.value)}),e.onUpdated(()=>{r(o.value),l(o.value)}),e.onUnmounted(()=>{o.value.removeObserver(n)});const o=e.computed(()=>{const a=t.layout;if(!a)throw new Error("Can not find table layout.");return a}),r=a=>{var s;const i=((s=t.vnode.el)==null?void 0:s.querySelectorAll("colgroup > col"))||[];if(!i.length)return;const c=a.getFlattenColumns(),f={};c.forEach(u=>{f[u.id]=u});for(let u=0,d=i.length;u{var s,i;const c=((s=t.vnode.el)==null?void 0:s.querySelectorAll("colgroup > col[name=gutter]"))||[];for(let u=0,d=c.length;u{m.stopPropagation()},a=(m,b)=>{!b.filters&&b.sortable?g(m,b,!1):b.filterable&&!b.sortable&&l(m),r==null||r.emit("header-click",b,m)},s=(m,b)=>{r==null||r.emit("header-contextmenu",b,m)},i=e.ref(null),c=e.ref(!1),f=e.ref({}),u=(m,b)=>{if(!!He&&!(b.children&&b.children.length>0)&&i.value&&t.border){c.value=!0;const y=r;n("set-drag-visible",!0);const k=(y==null?void 0:y.vnode.el).getBoundingClientRect().left,w=o.vnode.el.querySelector(`th.${b.id}`),E=w.getBoundingClientRect(),S=E.left-k+30;so(w,"noclick"),f.value={startMouseLeft:m.clientX,startLeft:E.right-k,startColumnLeft:E.left-k,tableLeft:k};const _=y==null?void 0:y.refs.resizeProxy;_.style.left=`${f.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};const B=P=>{const T=P.clientX-f.value.startMouseLeft,I=f.value.startLeft+T;_.style.left=`${Math.max(S,I)}px`},M=()=>{if(c.value){const{startColumnLeft:P,startLeft:T}=f.value,v=Number.parseInt(_.style.left,10)-P;b.width=b.realWidth=v,y==null||y.emit("header-dragend",b.width,T-P,b,m),requestAnimationFrame(()=>{t.store.scheduleLayout(!1,!0)}),document.body.style.cursor="",c.value=!1,i.value=null,f.value={},n("set-drag-visible",!1)}document.removeEventListener("mousemove",B),document.removeEventListener("mouseup",M),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{un(w,"noclick")},0)};document.addEventListener("mousemove",B),document.addEventListener("mouseup",M)}},d=(m,b)=>{if(b.children&&b.children.length>0)return;const y=m.target;if(!Mn(y))return;const C=y==null?void 0:y.closest("th");if(!(!b||!b.resizable)&&!c.value&&t.border){const k=C.getBoundingClientRect(),w=document.body.style;k.width>12&&k.right-m.pageX<8?(w.cursor="col-resize",Fn(C,"is-sortable")&&(C.style.cursor="col-resize"),i.value=b):c.value||(w.cursor="",Fn(C,"is-sortable")&&(C.style.cursor="pointer"),i.value=null)}},p=()=>{!He||(document.body.style.cursor="")},h=({order:m,sortOrders:b})=>{if(m==="")return b[0];const y=b.indexOf(m||null);return b[y>b.length-2?0:y+1]},g=(m,b,y)=>{var C;m.stopPropagation();const k=b.order===y?null:y||h(b),w=(C=m.target)==null?void 0:C.closest("th");if(w&&Fn(w,"noclick")){un(w,"noclick");return}if(!b.sortable)return;const E=t.store.states;let S=E.sortProp.value,_;const B=E.sortingColumn.value;(B!==b||B===b&&B.order===null)&&(B&&(B.order=null),E.sortingColumn.value=b,S=b.property),k?_=b.order=k:_=b.order=null,E.sortProp.value=S,E.sortOrder.value=_,r==null||r.store.commit("changeSortCondition")};return{handleHeaderClick:a,handleHeaderContextMenu:s,handleMouseDown:u,handleMouseMove:d,handleMouseOut:p,handleSortClick:g,handleFilterClick:l}}function xY(t){const n=e.inject(go),o=Q("table");return{getHeaderRowStyle:i=>{const c=n==null?void 0:n.props.headerRowStyle;return typeof c=="function"?c.call(null,{rowIndex:i}):c},getHeaderRowClass:i=>{const c=[],f=n==null?void 0:n.props.headerRowClassName;return typeof f=="string"?c.push(f):typeof f=="function"&&c.push(f.call(null,{rowIndex:i})),c.join(" ")},getHeaderCellStyle:(i,c,f,u)=>{var d;let p=(d=n==null?void 0:n.props.headerCellStyle)!=null?d:{};typeof p=="function"&&(p=p.call(null,{rowIndex:i,columnIndex:c,row:f,column:u}));const h=Pp(c,u.fixed,t.store,f);return Bl(h,"left"),Bl(h,"right"),Object.assign({},p,h)},getHeaderCellClass:(i,c,f,u)=>{const d=Ip(o.b(),c,u.fixed,t.store,f),p=[u.id,u.order,u.headerAlign,u.className,u.labelClassName,...d];u.children||p.push("is-leaf"),u.sortable&&p.push("is-sortable");const h=n==null?void 0:n.props.headerCellClassName;return typeof h=="string"?p.push(h):typeof h=="function"&&p.push(h.call(null,{rowIndex:i,columnIndex:c,row:f,column:u})),p.push(o.e("cell")),p.filter(g=>Boolean(g)).join(" ")}}}const t2=t=>{const n=[];return t.forEach(o=>{o.children?(n.push(o),n.push.apply(n,t2(o.children))):n.push(o)}),n},FY=t=>{let n=1;const o=(a,s)=>{if(s&&(a.level=s.level+1,n{o(c,a),i+=c.colSpan}),a.colSpan=i}else a.colSpan=1};t.forEach(a=>{a.level=1,o(a,void 0)});const r=[];for(let a=0;a{a.children?(a.rowSpan=1,a.children.forEach(s=>s.isSubColumn=!0)):a.rowSpan=n-a.level+1,r[a.level-1].push(a)}),r};function HY(t){const n=e.inject(go),o=e.computed(()=>FY(t.store.states.originColumns.value));return{isGroup:e.computed(()=>{const a=o.value.length>1;return a&&n&&(n.state.isGroup.value=!0),a}),toggleAllSelection:a=>{a.stopPropagation(),n==null||n.store.commit("toggleAllSelection")},columnRows:o}}var KY=e.defineComponent({name:"ElTableHeader",components:{ElCheckbox:En},props:{fixed:{type:String,default:""},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:"",order:""})}},setup(t,{emit:n}){const o=e.getCurrentInstance(),r=e.inject(go),l=Q("table"),a=e.ref({}),{onColumnsChange:s,onScrollableChange:i}=e2(r);e.onMounted(async()=>{await e.nextTick(),await e.nextTick();const{prop:S,order:_}=t.defaultSort;r==null||r.store.commit("sort",{prop:S,order:_,init:!0})});const{handleHeaderClick:c,handleHeaderContextMenu:f,handleMouseDown:u,handleMouseMove:d,handleMouseOut:p,handleSortClick:h,handleFilterClick:g}=LY(t,n),{getHeaderRowStyle:m,getHeaderRowClass:b,getHeaderCellStyle:y,getHeaderCellClass:C}=xY(t),{isGroup:k,toggleAllSelection:w,columnRows:E}=HY(t);return o.state={onColumnsChange:s,onScrollableChange:i},o.filterPanels=a,{ns:l,filterPanels:a,onColumnsChange:s,onScrollableChange:i,columnRows:E,getHeaderRowClass:b,getHeaderRowStyle:m,getHeaderCellClass:C,getHeaderCellStyle:y,handleHeaderClick:c,handleHeaderContextMenu:f,handleMouseDown:u,handleMouseMove:d,handleMouseOut:p,handleSortClick:h,handleFilterClick:g,isGroup:k,toggleAllSelection:w}},render(){const{ns:t,isGroup:n,columnRows:o,getHeaderCellStyle:r,getHeaderCellClass:l,getHeaderRowClass:a,getHeaderRowStyle:s,handleHeaderClick:i,handleHeaderContextMenu:c,handleMouseDown:f,handleMouseMove:u,handleSortClick:d,handleMouseOut:p,store:h,$parent:g}=this;let m=1;return e.h("thead",{class:{[t.is("group")]:n}},o.map((b,y)=>e.h("tr",{class:a(y),key:y,style:s(y)},b.map((C,k)=>(C.rowSpan>m&&(m=C.rowSpan),e.h("th",{class:l(y,k,b,C),colspan:C.colSpan,key:`${C.id}-thead`,rowspan:C.rowSpan,style:r(y,k,b,C),onClick:w=>i(w,C),onContextmenu:w=>c(w,C),onMousedown:w=>f(w,C),onMousemove:w=>u(w,C),onMouseout:p},[e.h("div",{class:["cell",C.filteredValue&&C.filteredValue.length>0?"highlight":""]},[C.renderHeader?C.renderHeader({column:C,$index:k,store:h,_self:g}):C.label,C.sortable&&e.h("span",{onClick:w=>d(w,C),class:"caret-wrapper"},[e.h("i",{onClick:w=>d(w,C,"ascending"),class:"sort-caret ascending"}),e.h("i",{onClick:w=>d(w,C,"descending"),class:"sort-caret descending"})]),C.filterable&&e.h(DY,{store:h,placement:C.filterPlacement||"bottom-start",column:C,upDataColumn:(w,E)=>{C[w]=E}})])]))))))}});function WY(t){const n=e.inject(go),o=e.ref(""),r=e.ref(e.h("div")),{nextZIndex:l}=$r(),a=(g,m,b)=>{var y;const C=n,k=Vp(g);let w;const E=(y=C==null?void 0:C.vnode.el)==null?void 0:y.dataset.prefix;k&&(w=UE({columns:t.store.states.columns.value},k,E),w&&(C==null||C.emit(`cell-${b}`,m,w,k,g))),C==null||C.emit(`row-${b}`,m,w,g)},s=(g,m)=>{a(g,m,"dblclick")},i=(g,m)=>{t.store.commit("setCurrentRow",m),a(g,m,"click")},c=(g,m)=>{a(g,m,"contextmenu")},f=Gt(g=>{t.store.commit("setHoverRow",g)},30),u=Gt(()=>{t.store.commit("setHoverRow",null)},30),d=g=>{const m=window.getComputedStyle(g,null),b=Number.parseInt(m.paddingLeft,10)||0,y=Number.parseInt(m.paddingRight,10)||0,C=Number.parseInt(m.paddingTop,10)||0,k=Number.parseInt(m.paddingBottom,10)||0;return{left:b,right:y,top:C,bottom:k}};return{handleDoubleClick:s,handleClick:i,handleContextMenu:c,handleMouseEnter:f,handleMouseLeave:u,handleCellMouseEnter:(g,m,b)=>{var y;const C=n,k=Vp(g),w=(y=C==null?void 0:C.vnode.el)==null?void 0:y.dataset.prefix;if(k){const $=UE({columns:t.store.states.columns.value},k,w),R=C.hoverState={cell:k,column:$,row:m};C==null||C.emit("cell-mouse-enter",R.row,R.column,R.cell,g)}if(!b)return;const E=g.target.querySelector(".cell");if(!(Fn(E,`${w}-tooltip`)&&E.childNodes.length))return;const S=document.createRange();S.setStart(E,0),S.setEnd(E,E.childNodes.length);let _=S.getBoundingClientRect().width,B=S.getBoundingClientRect().height;_-Math.floor(_)<.001&&(_=Math.floor(_)),B-Math.floor(B)<.001&&(B=Math.floor(B));const{top:T,left:I,right:v,bottom:O}=d(E),D=I+v,z=T+O;(_+D>E.offsetWidth||B+z>E.offsetHeight||E.scrollWidth>E.offsetWidth)&&kY(n==null?void 0:n.refs.tableWrapper,k,k.innerText||k.textContent,l,b)},handleCellMouseLeave:g=>{if(!Vp(g))return;const b=n==null?void 0:n.hoverState;n==null||n.emit("cell-mouse-leave",b==null?void 0:b.row,b==null?void 0:b.column,b==null?void 0:b.cell,g)},tooltipContent:o,tooltipTrigger:r}}function jY(t){const n=e.inject(go),o=Q("table");return{getRowStyle:(f,u)=>{const d=n==null?void 0:n.props.rowStyle;return typeof d=="function"?d.call(null,{row:f,rowIndex:u}):d||null},getRowClass:(f,u)=>{const d=[o.e("row")];(n==null?void 0:n.props.highlightCurrentRow)&&f===t.store.states.currentRow.value&&d.push("current-row"),t.stripe&&u%2===1&&d.push(o.em("row","striped"));const p=n==null?void 0:n.props.rowClassName;return typeof p=="string"?d.push(p):typeof p=="function"&&d.push(p.call(null,{row:f,rowIndex:u})),d},getCellStyle:(f,u,d,p)=>{const h=n==null?void 0:n.props.cellStyle;let g=h!=null?h:{};typeof h=="function"&&(g=h.call(null,{rowIndex:f,columnIndex:u,row:d,column:p}));const m=Pp(u,t==null?void 0:t.fixed,t.store);return Bl(m,"left"),Bl(m,"right"),Object.assign({},g,m)},getCellClass:(f,u,d,p,h)=>{const g=Ip(o.b(),u,t==null?void 0:t.fixed,t.store,void 0,h),m=[p.id,p.align,p.className,...g],b=n==null?void 0:n.props.cellClassName;return typeof b=="string"?m.push(b):typeof b=="function"&&m.push(b.call(null,{rowIndex:f,columnIndex:u,row:d,column:p})),m.push(o.e("cell")),m.filter(y=>Boolean(y)).join(" ")},getSpan:(f,u,d,p)=>{let h=1,g=1;const m=n==null?void 0:n.props.spanMethod;if(typeof m=="function"){const b=m({row:f,column:u,rowIndex:d,columnIndex:p});Array.isArray(b)?(h=b[0],g=b[1]):typeof b=="object"&&(h=b.rowspan,g=b.colspan)}return{rowspan:h,colspan:g}},getColspanRealWidth:(f,u,d)=>{if(u<1)return f[d].realWidth;const p=f.map(({realWidth:h,width:g})=>h||g).slice(d,d+u);return Number(p.reduce((h,g)=>Number(h)+Number(g),-1))}}}function UY(t){const n=e.inject(go),o=Q("table"),{handleDoubleClick:r,handleClick:l,handleContextMenu:a,handleMouseEnter:s,handleMouseLeave:i,handleCellMouseEnter:c,handleCellMouseLeave:f,tooltipContent:u,tooltipTrigger:d}=WY(t),{getRowStyle:p,getRowClass:h,getCellStyle:g,getCellClass:m,getSpan:b,getColspanRealWidth:y}=jY(t),C=e.computed(()=>t.store.states.columns.value.findIndex(({type:_})=>_==="default")),k=(_,B)=>{const M=n.props.rowKey;return M?Kt(_,M):B},w=(_,B,M,P=!1)=>{const{tooltipEffect:T,tooltipOptions:I,store:v}=t,{indent:O,columns:D}=v.states,z=h(_,B);let $=!0;M&&(z.push(o.em("row",`level-${M.level}`)),$=M.display);const R=$?null:{display:"none"};return e.h("tr",{style:[R,p(_,B)],class:z,key:k(_,B),onDblclick:N=>r(N,_),onClick:N=>l(N,_),onContextmenu:N=>a(N,_),onMouseenter:()=>s(B),onMouseleave:i},D.value.map((N,A)=>{const{rowspan:x,colspan:H}=b(_,N,B,A);if(!x||!H)return null;const K=Object.assign({},N);K.realWidth=y(D.value,H,A);const q={store:t.store,_self:t.context||n,column:K,row:_,$index:B,cellIndex:A,expanded:P};A===C.value&&M&&(q.treeNode={indent:M.level*O.value,level:M.level},typeof M.expanded=="boolean"&&(q.treeNode.expanded=M.expanded,"loading"in M&&(q.treeNode.loading=M.loading),"noLazyChildren"in M&&(q.treeNode.noLazyChildren=M.noLazyChildren)));const ne=`${B},${A}`,Y=K.columnKey||K.rawColumnKey||"",Z=E(A,N,q),U=N.showOverflowTooltip&&Ed({effect:T},I,N.showOverflowTooltip);return e.h("td",{style:g(B,A,_,N),class:m(B,A,_,N,H-1),key:`${Y}${ne}`,rowspan:x,colspan:H,onMouseenter:re=>c(re,_,U),onMouseleave:f},[Z])}))},E=(_,B,M)=>B.renderCell(M);return{wrappedRowRender:(_,B)=>{const M=t.store,{isRowExpanded:P,assertRowKey:T}=M,{treeData:I,lazyTreeNodeMap:v,childrenColumnName:O,rowKey:D}=M.states,z=M.states.columns.value;if(z.some(({type:R})=>R==="expand")){const R=P(_),N=w(_,B,void 0,R),A=n.renderExpanded;return R?A?[[N,e.h("tr",{key:`expanded-row__${N.key}`},[e.h("td",{colspan:z.length,class:`${o.e("cell")} ${o.e("expanded-cell")}`},[A({row:_,$index:B,store:M,expanded:R})])])]]:(console.error("[Element Error]renderExpanded is required."),N):[[N]]}else if(Object.keys(I.value).length){T();const R=Kt(_,D.value);let N=I.value[R],A=null;N&&(A={expanded:N.expanded,level:N.level,display:!0},typeof N.lazy=="boolean"&&(typeof N.loaded=="boolean"&&N.loaded&&(A.noLazyChildren=!(N.children&&N.children.length)),A.loading=N.loading));const x=[w(_,B,A)];if(N){let H=0;const K=(ne,Y)=>{!(ne&&ne.length&&Y)||ne.forEach(Z=>{const U={display:Y.display&&Y.expanded,level:Y.level+1,expanded:!1,noLazyChildren:!1,loading:!1},re=Kt(Z,D.value);if(re==null)throw new Error("For nested data item, row-key is required.");if(N={...I.value[re]},N&&(U.expanded=N.expanded,N.level=N.level||U.level,N.display=!!(N.expanded&&U.display),typeof N.lazy=="boolean"&&(typeof N.loaded=="boolean"&&N.loaded&&(U.noLazyChildren=!(N.children&&N.children.length)),U.loading=N.loading)),H++,x.push(w(Z,B+H,U)),N){const te=v.value[re]||Z[O.value];K(te,N)}})};N.display=!0;const q=v.value[R]||_[O.value];K(q,N)}return x}else return w(_,B,void 0)},tooltipContent:u,tooltipTrigger:d}}var GY={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},qY=e.defineComponent({name:"ElTableBody",props:GY,setup(t){const n=e.getCurrentInstance(),o=e.inject(go),r=Q("table"),{wrappedRowRender:l,tooltipContent:a,tooltipTrigger:s}=UY(t),{onColumnsChange:i,onScrollableChange:c}=e2(o);return e.watch(t.store.states.hoverRow,(f,u)=>{!t.store.states.isComplex.value||!He||rl(()=>{const d=n==null?void 0:n.vnode.el,p=Array.from((d==null?void 0:d.children)||[]).filter(m=>m==null?void 0:m.classList.contains(`${r.e("row")}`)),h=p[u],g=p[f];h&&un(h,"hover-row"),g&&so(g,"hover-row")})}),e.onUnmounted(()=>{var f;(f=Oo)==null||f()}),{ns:r,onColumnsChange:i,onScrollableChange:c,wrappedRowRender:l,tooltipContent:a,tooltipTrigger:s}},render(){const{wrappedRowRender:t,store:n}=this,o=n.states.data.value||[];return e.h("tbody",{tabIndex:-1},[o.reduce((r,l)=>r.concat(t(l,r.length)),[])])}});function YY(){const t=e.inject(go),n=t==null?void 0:t.store,o=e.computed(()=>n.states.fixedLeafColumnsLength.value),r=e.computed(()=>n.states.rightFixedColumns.value.length),l=e.computed(()=>n.states.columns.value.length),a=e.computed(()=>n.states.fixedColumns.value.length),s=e.computed(()=>n.states.rightFixedColumns.value.length);return{leftFixedLeafCount:o,rightFixedLeafCount:r,columnsCount:l,leftFixedCount:a,rightFixedCount:s,columns:n.states.columns}}function XY(t){const{columns:n}=YY(),o=Q("table");return{getCellClasses:(a,s)=>{const i=a[s],c=[o.e("cell"),i.id,i.align,i.labelClassName,...Ip(o.b(),s,i.fixed,t.store)];return i.className&&c.push(i.className),i.children||c.push(o.is("leaf")),c},getCellStyles:(a,s)=>{const i=Pp(s,a.fixed,t.store);return Bl(i,"left"),Bl(i,"right"),i},columns:n}}var ZY=e.defineComponent({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(t){const{getCellClasses:n,getCellStyles:o,columns:r}=XY(t);return{ns:Q("table"),getCellClasses:n,getCellStyles:o,columns:r}},render(){const{columns:t,getCellStyles:n,getCellClasses:o,summaryMethod:r,sumText:l}=this,a=this.store.states.data.value;let s=[];return r?s=r({columns:t,data:a}):t.forEach((i,c)=>{if(c===0){s[c]=l;return}const f=a.map(h=>Number(h[i.property])),u=[];let d=!0;f.forEach(h=>{if(!Number.isNaN(+h)){d=!1;const g=`${h}`.split(".")[1];u.push(g?g.length:0)}});const p=Math.max.apply(null,u);d?s[c]="":s[c]=f.reduce((h,g)=>{const m=Number(g);return Number.isNaN(+m)?h:Number.parseFloat((h+g).toFixed(Math.min(p,20)))},0)}),e.h(e.h("tfoot",[e.h("tr",{},[...t.map((i,c)=>e.h("td",{key:c,colspan:i.colSpan,rowspan:i.rowSpan,class:o(t,c),style:n(i,c)},[e.h("div",{class:["cell",i.labelClassName]},[s[c]])]))])]))}});function JY(t){return{setCurrentRow:u=>{t.commit("setCurrentRow",u)},getSelectionRows:()=>t.getSelectionRows(),toggleRowSelection:(u,d)=>{t.toggleRowSelection(u,d,!1),t.updateAllSelected()},clearSelection:()=>{t.clearSelection()},clearFilter:u=>{t.clearFilter(u)},toggleAllSelection:()=>{t.commit("toggleAllSelection")},toggleRowExpansion:(u,d)=>{t.toggleRowExpansionAdapter(u,d)},clearSort:()=>{t.clearSort()},sort:(u,d)=>{t.commit("sort",{prop:u,order:d})}}}function QY(t,n,o,r){const l=e.ref(!1),a=e.ref(null),s=e.ref(!1),i=N=>{s.value=N},c=e.ref({width:null,height:null,headerHeight:null}),f=e.ref(!1),u={display:"inline-block",verticalAlign:"middle"},d=e.ref(),p=e.ref(0),h=e.ref(0),g=e.ref(0),m=e.ref(0),b=e.ref(0);e.watchEffect(()=>{n.setHeight(t.height)}),e.watchEffect(()=>{n.setMaxHeight(t.maxHeight)}),e.watch(()=>[t.currentRowKey,o.states.rowKey],([N,A])=>{!e.unref(A)||!e.unref(N)||o.setCurrentRowKey(`${N}`)},{immediate:!0}),e.watch(()=>t.data,N=>{r.store.commit("setData",N)},{immediate:!0,deep:!0}),e.watchEffect(()=>{t.expandRowKeys&&o.setExpandRowKeysAdapter(t.expandRowKeys)});const y=()=>{r.store.commit("setHoverRow",null),r.hoverState&&(r.hoverState=null)},C=(N,A)=>{const{pixelX:x,pixelY:H}=A;Math.abs(x)>=Math.abs(H)&&(r.refs.bodyWrapper.scrollLeft+=A.pixelX/5)},k=e.computed(()=>t.height||t.maxHeight||o.states.fixedColumns.value.length>0||o.states.rightFixedColumns.value.length>0),w=e.computed(()=>({width:n.bodyWidth.value?`${n.bodyWidth.value}px`:""})),E=()=>{k.value&&n.updateElsHeight(),n.updateColumnsWidth(),requestAnimationFrame(M)};e.onMounted(async()=>{await e.nextTick(),o.updateColumns(),P(),requestAnimationFrame(E);const N=r.vnode.el,A=r.refs.headerWrapper;t.flexible&&N&&N.parentElement&&(N.parentElement.style.minWidth="0"),c.value={width:d.value=N.offsetWidth,height:N.offsetHeight,headerHeight:t.showHeader&&A?A.offsetHeight:null},o.states.columns.value.forEach(x=>{x.filteredValue&&x.filteredValue.length&&r.store.commit("filterChange",{column:x,values:x.filteredValue,silent:!0})}),r.$ready=!0});const S=(N,A)=>{if(!N)return;const x=Array.from(N.classList).filter(H=>!H.startsWith("is-scrolling-"));x.push(n.scrollX.value?A:"is-scrolling-none"),N.className=x.join(" ")},_=N=>{const{tableWrapper:A}=r.refs;S(A,N)},B=N=>{const{tableWrapper:A}=r.refs;return!!(A&&A.classList.contains(N))},M=function(){if(!r.refs.scrollBarRef)return;if(!n.scrollX.value){const Y="is-scrolling-none";B(Y)||_(Y);return}const N=r.refs.scrollBarRef.wrapRef;if(!N)return;const{scrollLeft:A,offsetWidth:x,scrollWidth:H}=N,{headerWrapper:K,footerWrapper:q}=r.refs;K&&(K.scrollLeft=A),q&&(q.scrollLeft=A);const ne=H-x-1;A>=ne?_("is-scrolling-right"):_(A===0?"is-scrolling-left":"is-scrolling-middle")},P=()=>{!r.refs.scrollBarRef||(r.refs.scrollBarRef.wrapRef&&rt(r.refs.scrollBarRef.wrapRef,"scroll",M,{passive:!0}),t.fit?jt(r.vnode.el,T):rt(window,"resize",T),jt(r.refs.bodyWrapper,()=>{var N,A;T(),(A=(N=r.refs)==null?void 0:N.scrollBarRef)==null||A.update()}))},T=()=>{var N,A,x,H;const K=r.vnode.el;if(!r.$ready||!K)return;let q=!1;const{width:ne,height:Y,headerHeight:Z}=c.value,U=d.value=K.offsetWidth;ne!==U&&(q=!0);const re=K.offsetHeight;(t.height||k.value)&&Y!==re&&(q=!0);const te=t.tableLayout==="fixed"?r.refs.headerWrapper:(N=r.refs.tableHeaderRef)==null?void 0:N.$el;t.showHeader&&(te==null?void 0:te.offsetHeight)!==Z&&(q=!0),p.value=((A=r.refs.tableWrapper)==null?void 0:A.scrollHeight)||0,g.value=(te==null?void 0:te.scrollHeight)||0,m.value=((x=r.refs.footerWrapper)==null?void 0:x.offsetHeight)||0,b.value=((H=r.refs.appendWrapper)==null?void 0:H.offsetHeight)||0,h.value=p.value-g.value-m.value-b.value,q&&(c.value={width:U,height:re,headerHeight:t.showHeader&&(te==null?void 0:te.offsetHeight)||0},E())},I=St(),v=e.computed(()=>{const{bodyWidth:N,scrollY:A,gutterWidth:x}=n;return N.value?`${N.value-(A.value?x:0)}px`:""}),O=e.computed(()=>t.maxHeight?"fixed":t.tableLayout),D=e.computed(()=>{if(t.data&&t.data.length)return null;let N="100%";t.height&&h.value&&(N=`${h.value}px`);const A=d.value;return{width:A?`${A}px`:"",height:N}}),z=e.computed(()=>t.height?{height:Number.isNaN(Number(t.height))?t.height:`${t.height}px`}:t.maxHeight?{maxHeight:Number.isNaN(Number(t.maxHeight))?t.maxHeight:`${t.maxHeight}px`}:{}),$=e.computed(()=>t.height?{height:"100%"}:t.maxHeight?Number.isNaN(Number(t.maxHeight))?{maxHeight:`calc(${t.maxHeight} - ${g.value+m.value}px)`}:{maxHeight:`${t.maxHeight-g.value-m.value}px`}:{});return{isHidden:l,renderExpanded:a,setDragVisible:i,isGroup:f,handleMouseLeave:y,handleHeaderFooterMousewheel:C,tableSize:I,emptyBlockStyle:D,handleFixedMousewheel:(N,A)=>{const x=r.refs.bodyWrapper;if(Math.abs(A.spinY)>0){const H=x.scrollTop;A.pixelY<0&&H!==0&&N.preventDefault(),A.pixelY>0&&x.scrollHeight-x.clientHeight>H&&N.preventDefault(),x.scrollTop+=Math.ceil(A.pixelY/5)}else x.scrollLeft+=Math.ceil(A.pixelX/5)},resizeProxyVisible:s,bodyWidth:v,resizeState:c,doLayout:E,tableBodyStyles:w,tableLayout:O,scrollbarViewStyle:u,tableInnerStyle:z,scrollbarStyle:$}}function eX(t){const n=e.ref(),o=()=>{const l=t.vnode.el.querySelector(".hidden-columns"),a={childList:!0,subtree:!0},s=t.store.states.updateOrderFns;n.value=new MutationObserver(()=>{s.forEach(i=>i())}),n.value.observe(l,a)};e.onMounted(()=>{o()}),e.onUnmounted(()=>{var r;(r=n.value)==null||r.disconnect()})}var tX={data:{type:Array,default:()=>[]},size:Vt,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,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"})},lazy:Boolean,load:Function,style:{type:Object,default:()=>({})},className:{type:String,default:""},tableLayout:{type:String,default:"fixed"},scrollbarAlwaysOn:{type:Boolean,default:!1},flexible:Boolean,showOverflowTooltip:[Boolean,Object]};function n2(t){const n=t.tableLayout==="auto";let o=t.columns||[];n&&o.every(l=>l.width===void 0)&&(o=[]);const r=l=>{const a={key:`${t.tableLayout}_${l.id}`,style:{},name:void 0};return n?a.style={width:`${l.width}px`}:a.name=l.id,a};return e.h("colgroup",{},o.map(l=>e.h("col",r(l))))}n2.props=["columns","tableLayout"];const nX=()=>{const t=e.ref(),n=(a,s)=>{const i=t.value;i&&i.scrollTo(a,s)},o=(a,s)=>{const i=t.value;i&&be(s)&&["Top","Left"].includes(a)&&i[`setScroll${a}`](s)};return{scrollBarRef:t,scrollTo:n,setScrollTop:a=>o("Top",a),setScrollLeft:a=>o("Left",a)}};let oX=1;const rX=e.defineComponent({name:"ElTable",directives:{Mousewheel:Ww},components:{TableHeader:KY,TableBody:qY,TableFooter:ZY,ElScrollbar:mo,hColgroup:n2},props:tX,emits:["select","select-all","selection-change","cell-mouse-enter","cell-mouse-leave","cell-contextmenu","cell-click","cell-dblclick","row-click","row-contextmenu","row-dblclick","header-click","header-contextmenu","sort-change","filter-change","current-change","header-dragend","expand-change"],setup(t){const{t:n}=Ke(),o=Q("table"),r=e.getCurrentInstance();e.provide(go,r);const l=TY(r,t);r.store=l;const a=new MY({store:r.store,table:r,fit:t.fit,showHeader:t.showHeader});r.layout=a;const s=e.computed(()=>(l.states.data.value||[]).length===0),{setCurrentRow:i,getSelectionRows:c,toggleRowSelection:f,clearSelection:u,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:h,clearSort:g,sort:m}=JY(l),{isHidden:b,renderExpanded:y,setDragVisible:C,isGroup:k,handleMouseLeave:w,handleHeaderFooterMousewheel:E,tableSize:S,emptyBlockStyle:_,handleFixedMousewheel:B,resizeProxyVisible:M,bodyWidth:P,resizeState:T,doLayout:I,tableBodyStyles:v,tableLayout:O,scrollbarViewStyle:D,tableInnerStyle:z,scrollbarStyle:$}=QY(t,a,l,r),{scrollBarRef:R,scrollTo:N,setScrollLeft:A,setScrollTop:x}=nX(),H=Gt(I,50),K=`${o.namespace.value}-table_${oX++}`;r.tableId=K,r.state={isGroup:k,resizeState:T,doLayout:I,debouncedUpdateLayout:H};const q=e.computed(()=>t.sumText||n("el.table.sumText")),ne=e.computed(()=>t.emptyText||n("el.table.emptyText"));return eX(r),{ns:o,layout:a,store:l,handleHeaderFooterMousewheel:E,handleMouseLeave:w,tableId:K,tableSize:S,isHidden:b,isEmpty:s,renderExpanded:y,resizeProxyVisible:M,resizeState:T,isGroup:k,bodyWidth:P,tableBodyStyles:v,emptyBlockStyle:_,debouncedUpdateLayout:H,handleFixedMousewheel:B,setCurrentRow:i,getSelectionRows:c,toggleRowSelection:f,clearSelection:u,clearFilter:d,toggleAllSelection:p,toggleRowExpansion:h,clearSort:g,doLayout:I,sort:m,t:n,setDragVisible:C,context:r,computedSumText:q,computedEmptyText:ne,tableLayout:O,scrollbarViewStyle:D,tableInnerStyle:z,scrollbarStyle:$,scrollBarRef:R,scrollTo:N,setScrollLeft:A,setScrollTop:x}}}),lX=["data-prefix"],aX={ref:"hiddenColumns",class:"hidden-columns"};function sX(t,n,o,r,l,a){const s=e.resolveComponent("hColgroup"),i=e.resolveComponent("table-header"),c=e.resolveComponent("table-body"),f=e.resolveComponent("table-footer"),u=e.resolveComponent("el-scrollbar"),d=e.resolveDirective("mousewheel");return e.openBlock(),e.createElementBlock("div",{ref:"tableWrapper",class:e.normalizeClass([{[t.ns.m("fit")]:t.fit,[t.ns.m("striped")]:t.stripe,[t.ns.m("border")]:t.border||t.isGroup,[t.ns.m("hidden")]:t.isHidden,[t.ns.m("group")]:t.isGroup,[t.ns.m("fluid-height")]:t.maxHeight,[t.ns.m("scrollable-x")]:t.layout.scrollX.value,[t.ns.m("scrollable-y")]:t.layout.scrollY.value,[t.ns.m("enable-row-hover")]:!t.store.states.isComplex.value,[t.ns.m("enable-row-transition")]:(t.store.states.data.value||[]).length!==0&&(t.store.states.data.value||[]).length<100,"has-footer":t.showSummary},t.ns.m(t.tableSize),t.className,t.ns.b(),t.ns.m(`layout-${t.tableLayout}`)]),style:e.normalizeStyle(t.style),"data-prefix":t.ns.namespace.value,onMouseleave:n[0]||(n[0]=(...p)=>t.handleMouseLeave&&t.handleMouseLeave(...p))},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("inner-wrapper")),style:e.normalizeStyle(t.tableInnerStyle)},[e.createElementVNode("div",aX,[e.renderSlot(t.$slots,"default")],512),t.showHeader&&t.tableLayout==="fixed"?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:0,ref:"headerWrapper",class:e.normalizeClass(t.ns.e("header-wrapper"))},[e.createElementVNode("table",{ref:"tableHeader",class:e.normalizeClass(t.ns.e("header")),style:e.normalizeStyle(t.tableBodyStyles),border:"0",cellpadding:"0",cellspacing:"0"},[e.createVNode(s,{columns:t.store.states.columns.value,"table-layout":t.tableLayout},null,8,["columns","table-layout"]),e.createVNode(i,{ref:"tableHeaderRef",border:t.border,"default-sort":t.defaultSort,store:t.store,onSetDragVisible:t.setDragVisible},null,8,["border","default-sort","store","onSetDragVisible"])],6)],2)),[[d,t.handleHeaderFooterMousewheel]]):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{ref:"bodyWrapper",class:e.normalizeClass(t.ns.e("body-wrapper"))},[e.createVNode(u,{ref:"scrollBarRef","view-style":t.scrollbarViewStyle,"wrap-style":t.scrollbarStyle,always:t.scrollbarAlwaysOn},{default:e.withCtx(()=>[e.createElementVNode("table",{ref:"tableBody",class:e.normalizeClass(t.ns.e("body")),cellspacing:"0",cellpadding:"0",border:"0",style:e.normalizeStyle({width:t.bodyWidth,tableLayout:t.tableLayout})},[e.createVNode(s,{columns:t.store.states.columns.value,"table-layout":t.tableLayout},null,8,["columns","table-layout"]),t.showHeader&&t.tableLayout==="auto"?(e.openBlock(),e.createBlock(i,{key:0,ref:"tableHeaderRef",class:e.normalizeClass(t.ns.e("body-header")),border:t.border,"default-sort":t.defaultSort,store:t.store,onSetDragVisible:t.setDragVisible},null,8,["class","border","default-sort","store","onSetDragVisible"])):e.createCommentVNode("v-if",!0),e.createVNode(c,{context:t.context,highlight:t.highlightCurrentRow,"row-class-name":t.rowClassName,"tooltip-effect":t.tooltipEffect,"tooltip-options":t.tooltipOptions,"row-style":t.rowStyle,store:t.store,stripe:t.stripe},null,8,["context","highlight","row-class-name","tooltip-effect","tooltip-options","row-style","store","stripe"]),t.showSummary&&t.tableLayout==="auto"?(e.openBlock(),e.createBlock(f,{key:1,class:e.normalizeClass(t.ns.e("body-footer")),border:t.border,"default-sort":t.defaultSort,store:t.store,"sum-text":t.computedSumText,"summary-method":t.summaryMethod},null,8,["class","border","default-sort","store","sum-text","summary-method"])):e.createCommentVNode("v-if",!0)],6),t.isEmpty?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"emptyBlock",style:e.normalizeStyle(t.emptyBlockStyle),class:e.normalizeClass(t.ns.e("empty-block"))},[e.createElementVNode("span",{class:e.normalizeClass(t.ns.e("empty-text"))},[e.renderSlot(t.$slots,"empty",{},()=>[e.createTextVNode(e.toDisplayString(t.computedEmptyText),1)])],2)],6)):e.createCommentVNode("v-if",!0),t.$slots.append?(e.openBlock(),e.createElementBlock("div",{key:1,ref:"appendWrapper",class:e.normalizeClass(t.ns.e("append-wrapper"))},[e.renderSlot(t.$slots,"append")],2)):e.createCommentVNode("v-if",!0)]),_:3},8,["view-style","wrap-style","always"])],2),t.showSummary&&t.tableLayout==="fixed"?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:1,ref:"footerWrapper",class:e.normalizeClass(t.ns.e("footer-wrapper"))},[e.createElementVNode("table",{class:e.normalizeClass(t.ns.e("footer")),cellspacing:"0",cellpadding:"0",border:"0",style:e.normalizeStyle(t.tableBodyStyles)},[e.createVNode(s,{columns:t.store.states.columns.value,"table-layout":t.tableLayout},null,8,["columns","table-layout"]),e.createVNode(f,{border:t.border,"default-sort":t.defaultSort,store:t.store,"sum-text":t.computedSumText,"summary-method":t.summaryMethod},null,8,["border","default-sort","store","sum-text","summary-method"])],6)],2)),[[e.vShow,!t.isEmpty],[d,t.handleHeaderFooterMousewheel]]):e.createCommentVNode("v-if",!0),t.border||t.isGroup?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(t.ns.e("border-left-patch"))},null,2)):e.createCommentVNode("v-if",!0)],6),e.withDirectives(e.createElementVNode("div",{ref:"resizeProxy",class:e.normalizeClass(t.ns.e("column-resize-proxy"))},null,2),[[e.vShow,t.resizeProxyVisible]])],46,lX)}var iX=se(rX,[["render",sX],["__file","table.vue"]]);const cX={selection:"table-column--selection",expand:"table__expand-column"},dX={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:""}},fX=t=>cX[t]||"",uX={selection:{renderHeader({store:t,column:n}){function o(){return t.states.data.value&&t.states.data.value.length===0}return e.h(En,{disabled:o(),size:t.states.tableSize.value,indeterminate:t.states.selection.value.length>0&&!t.states.isAllSelected.value,"onUpdate:modelValue":t.toggleAllSelection,modelValue:t.states.isAllSelected.value,ariaLabel:n.label})},renderCell({row:t,column:n,store:o,$index:r}){return e.h(En,{disabled:n.selectable?!n.selectable.call(null,t,r):!1,size:o.states.tableSize.value,onChange:()=>{o.commit("rowSelectedChanged",t)},onClick:l=>l.stopPropagation(),modelValue:o.isSelected(t),ariaLabel:n.label})},sortable:!1,resizable:!1},index:{renderHeader({column:t}){return t.label||"#"},renderCell({column:t,$index:n}){let o=n+1;const r=t.index;return typeof r=="number"?o=n+r:typeof r=="function"&&(o=r(n)),e.h("div",{},[o])},sortable:!1},expand:{renderHeader({column:t}){return t.label||""},renderCell({row:t,store:n,expanded:o}){const{ns:r}=n,l=[r.e("expand-icon")];o&&l.push(r.em("expand-icon","expanded"));const a=function(s){s.stopPropagation(),n.toggleRowExpansion(t)};return e.h("div",{class:l,onClick:a},{default:()=>[e.h(fe,null,{default:()=>[e.h(on)]})]})},sortable:!1,resizable:!1}};function pX({row:t,column:n,$index:o}){var r;const l=n.property,a=l&&Bs(t,l).value;return n&&n.formatter?n.formatter(t,n,a,o):((r=a==null?void 0:a.toString)==null?void 0:r.call(a))||""}function mX({row:t,treeNode:n,store:o},r=!1){const{ns:l}=o;if(!n)return r?[e.h("span",{class:l.e("placeholder")})]:null;const a=[],s=function(i){i.stopPropagation(),!n.loading&&o.loadOrToggle(t)};if(n.indent&&a.push(e.h("span",{class:l.e("indent"),style:{"padding-left":`${n.indent}px`}})),typeof n.expanded=="boolean"&&!n.noLazyChildren){const i=[l.e("expand-icon"),n.expanded?l.em("expand-icon","expanded"):""];let c=on;n.loading&&(c=Zo),a.push(e.h("div",{class:i,onClick:s},{default:()=>[e.h(fe,{class:{[l.is("loading")]:n.loading}},{default:()=>[e.h(c)]})]}))}else a.push(e.h("span",{class:l.e("placeholder")}));return a}function o2(t,n){return t.reduce((o,r)=>(o[r]=r,o),n)}function hX(t,n){const o=e.getCurrentInstance();return{registerComplexWatchers:()=>{const a=["fixed"],s={realWidth:"width",realMinWidth:"minWidth"},i=o2(a,s);Object.keys(i).forEach(c=>{const f=s[c];Lt(n,f)&&e.watch(()=>n[f],u=>{let d=u;f==="width"&&c==="realWidth"&&(d=Mp(u)),f==="minWidth"&&c==="realMinWidth"&&(d=GE(u)),o.columnConfig.value[f]=d,o.columnConfig.value[c]=d;const p=f==="fixed";t.value.store.scheduleLayout(p)})})},registerNormalWatchers:()=>{const a=["label","filters","filterMultiple","filteredValue","sortable","index","formatter","className","labelClassName","showOverflowTooltip"],s={property:"prop",align:"realAlign",headerAlign:"realHeaderAlign"},i=o2(a,s);Object.keys(i).forEach(c=>{const f=s[c];Lt(n,f)&&e.watch(()=>n[f],u=>{o.columnConfig.value[c]=u})})}}}function gX(t,n,o){const r=e.getCurrentInstance(),l=e.ref(""),a=e.ref(!1),s=e.ref(),i=e.ref(),c=Q("table");e.watchEffect(()=>{s.value=t.align?`is-${t.align}`:null,s.value}),e.watchEffect(()=>{i.value=t.headerAlign?`is-${t.headerAlign}`:s.value,i.value});const f=e.computed(()=>{let w=r.vnode.vParent||r.parent;for(;w&&!w.tableId&&!w.columnId;)w=w.vnode.vParent||w.parent;return w}),u=e.computed(()=>{const{store:w}=r.parent;if(!w)return!1;const{treeData:E}=w.states,S=E.value;return S&&Object.keys(S).length>0}),d=e.ref(Mp(t.width)),p=e.ref(GE(t.minWidth)),h=w=>(d.value&&(w.width=d.value),p.value&&(w.minWidth=p.value),!d.value&&p.value&&(w.width=void 0),w.minWidth||(w.minWidth=80),w.realWidth=Number(w.width===void 0?w.minWidth:w.width),w),g=w=>{const E=w.type,S=uX[E]||{};Object.keys(S).forEach(B=>{const M=S[B];B!=="className"&&M!==void 0&&(w[B]=M)});const _=fX(E);if(_){const B=`${e.unref(c.namespace)}-${_}`;w.className=w.className?`${w.className} ${B}`:B}return w},m=w=>{Array.isArray(w)?w.forEach(S=>E(S)):E(w);function E(S){var _;((_=S==null?void 0:S.type)==null?void 0:_.name)==="ElTableColumn"&&(S.vParent=r)}};return{columnId:l,realAlign:s,isSubColumn:a,realHeaderAlign:i,columnOrTableParent:f,setColumnWidth:h,setColumnForcedProps:g,setColumnRenders:w=>{t.renderHeader||w.type!=="selection"&&(w.renderHeader=S=>{r.columnConfig.value.label;const _=n.header;return _?_(S):w.label});let E=w.renderCell;return w.type==="expand"?(w.renderCell=S=>e.h("div",{class:"cell"},[E(S)]),o.value.renderExpanded=S=>n.default?n.default(S):n.default):(E=E||pX,w.renderCell=S=>{let _=null;if(n.default){const v=n.default(S);_=v.some(O=>O.type!==e.Comment)?v:E(S)}else _=E(S);const{columns:B}=o.value.store.states,M=B.value.findIndex(v=>v.type==="default"),P=u.value&&S.cellIndex===M,T=mX(S,P),I={class:"cell",style:{}};return w.showOverflowTooltip&&(I.class=`${I.class} ${e.unref(c.namespace)}-tooltip`,I.style={width:`${(S.column.realWidth||Number(S.column.width))-1}px`}),m(_),e.h("div",I,[T,_])}),w},getPropsData:(...w)=>w.reduce((E,S)=>(Array.isArray(S)&&S.forEach(_=>{E[_]=t[_]}),E),{}),getColumnElIndex:(w,E)=>Array.prototype.indexOf.call(w,E),updateColumnOrder:()=>{o.value.store.commit("updateColumnOrder",r.columnConfig.value)}}}var yX={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},fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},index:[Number,Function],sortOrders:{type:Array,default:()=>["ascending","descending",null],validator:t=>t.every(n=>["ascending","descending",null].includes(n))}};let bX=1;var r2=e.defineComponent({name:"ElTableColumn",components:{ElCheckbox:En},props:yX,setup(t,{slots:n}){const o=e.getCurrentInstance(),r=e.ref({}),l=e.computed(()=>{let k=o.parent;for(;k&&!k.tableId;)k=k.parent;return k}),{registerNormalWatchers:a,registerComplexWatchers:s}=hX(l,t),{columnId:i,isSubColumn:c,realHeaderAlign:f,columnOrTableParent:u,setColumnWidth:d,setColumnForcedProps:p,setColumnRenders:h,getPropsData:g,getColumnElIndex:m,realAlign:b,updateColumnOrder:y}=gX(t,n,l),C=u.value;i.value=`${C.tableId||C.columnId}_column_${bX++}`,e.onBeforeMount(()=>{c.value=l.value!==C;const k=t.type||"default",w=t.sortable===""?!0:t.sortable,E=$t(t.showOverflowTooltip)?C.props.showOverflowTooltip:t.showOverflowTooltip,S={...dX[k],id:i.value,type:k,property:t.prop||t.property,align:b,headerAlign:f,showOverflowTooltip:E,filterable:t.filters||t.filterMethod,filteredValue:[],filterPlacement:"",isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:w,index:t.index,rawColumnKey:o.vnode.key};let T=g(["columnKey","label","className","labelClassName","type","renderHeader","formatter","fixed","resizable"],["sortMethod","sortBy","sortOrders"],["selectable","reserveSelection"],["filterMethod","filters","filterMultiple","filterOpened","filteredValue","filterPlacement"]);T=yY(S,T),T=CY(h,d,p)(T),r.value=T,a(),s()}),e.onMounted(()=>{var k;const w=u.value,E=c.value?w.vnode.el.children:(k=w.refs.hiddenColumns)==null?void 0:k.children,S=()=>m(E||[],o.vnode.el);r.value.getColumnIndex=S,S()>-1&&l.value.store.commit("insertColumn",r.value,c.value?w.columnConfig.value:null,y)}),e.onBeforeUnmount(()=>{l.value.store.commit("removeColumn",r.value,c.value?C.columnConfig.value:null,y)}),o.columnId=i.value,o.columnConfig=r},render(){var t,n,o;try{const r=(n=(t=this.$slots).default)==null?void 0:n.call(t,{row:{},column:{},$index:-1}),l=[];if(Array.isArray(r))for(const s of r)((o=s.type)==null?void 0:o.name)==="ElTableColumn"||s.shapeFlag&2?l.push(s):s.type===e.Fragment&&Array.isArray(s.children)&&s.children.forEach(i=>{(i==null?void 0:i.patchFlag)!==1024&&!De(i==null?void 0:i.children)&&l.push(i)});return e.h("div",l)}catch(r){return e.h("div",[])}}});const l2=Me(iX,{TableColumn:r2}),a2=ht(r2);var $l=(t=>(t.ASC="asc",t.DESC="desc",t))($l||{}),Tl=(t=>(t.CENTER="center",t.RIGHT="right",t))(Tl||{}),Ap=(t=>(t.LEFT="left",t.RIGHT="right",t))(Ap||{});const zp={asc:"desc",desc:"asc"},vl=Symbol("placeholder"),CX=(t,n,o)=>{var r;const l={flexGrow:0,flexShrink:0,...o?{}:{flexGrow:t.flexGrow||0,flexShrink:t.flexShrink||1}};o||(l.flexShrink=1);const a={...(r=t.style)!=null?r:{},...l,flexBasis:"auto",width:t.width};return n||(t.maxWidth&&(a.maxWidth=t.maxWidth),t.minWidth&&(a.minWidth=t.minWidth)),a};function wX(t,n,o){const r=e.computed(()=>e.unref(n).filter(m=>!m.hidden)),l=e.computed(()=>e.unref(r).filter(m=>m.fixed==="left"||m.fixed===!0)),a=e.computed(()=>e.unref(r).filter(m=>m.fixed==="right")),s=e.computed(()=>e.unref(r).filter(m=>!m.fixed)),i=e.computed(()=>{const m=[];return e.unref(l).forEach(b=>{m.push({...b,placeholderSign:vl})}),e.unref(s).forEach(b=>{m.push(b)}),e.unref(a).forEach(b=>{m.push({...b,placeholderSign:vl})}),m}),c=e.computed(()=>e.unref(l).length||e.unref(a).length),f=e.computed(()=>e.unref(n).reduce((b,y)=>(b[y.key]=CX(y,e.unref(o),t.fixed),b),{})),u=e.computed(()=>e.unref(r).reduce((m,b)=>m+b.width,0)),d=m=>e.unref(n).find(b=>b.key===m),p=m=>e.unref(f)[m],h=(m,b)=>{m.width=b};function g(m){var b;const{key:y}=m.currentTarget.dataset;if(!y)return;const{sortState:C,sortBy:k}=t;let w=$l.ASC;nt(C)?w=zp[C[y]]:w=zp[k.order],(b=t.onColumnSort)==null||b.call(t,{column:d(y),key:y,order:w})}return{columns:n,columnsStyles:f,columnsTotalWidth:u,fixedColumnsOnLeft:l,fixedColumnsOnRight:a,hasFixedColumns:c,mainColumns:i,normalColumns:s,visibleColumns:r,getColumn:d,getColumnStyle:p,updateColumnWidth:h,onColumnSorted:g}}const kX=(t,{mainTableRef:n,leftTableRef:o,rightTableRef:r,onMaybeEndReached:l})=>{const a=e.ref({scrollLeft:0,scrollTop:0});function s(h){var g,m,b;const{scrollTop:y}=h;(g=n.value)==null||g.scrollTo(h),(m=o.value)==null||m.scrollToTop(y),(b=r.value)==null||b.scrollToTop(y)}function i(h){a.value=h,s(h)}function c(h){a.value.scrollTop=h,s(e.unref(a))}function f(h){var g,m;a.value.scrollLeft=h,(m=(g=n.value)==null?void 0:g.scrollTo)==null||m.call(g,e.unref(a))}function u(h){var g;i(h),(g=t.onScroll)==null||g.call(t,h)}function d({scrollTop:h}){const{scrollTop:g}=e.unref(a);h!==g&&c(h)}function p(h,g="auto"){var m;(m=n.value)==null||m.scrollToRow(h,g)}return e.watch(()=>e.unref(a).scrollTop,(h,g)=>{h>g&&l()}),{scrollPos:a,scrollTo:i,scrollToLeft:f,scrollToTop:c,scrollToRow:p,onScroll:u,onVerticalScroll:d}},SX=(t,{mainTableRef:n,leftTableRef:o,rightTableRef:r})=>{const l=e.getCurrentInstance(),{emit:a}=l,s=e.shallowRef(!1),i=e.shallowRef(null),c=e.ref(t.defaultExpandedRowKeys||[]),f=e.ref(-1),u=e.shallowRef(null),d=e.ref({}),p=e.ref({}),h=e.shallowRef({}),g=e.shallowRef({}),m=e.shallowRef({}),b=e.computed(()=>be(t.estimatedRowHeight));function y(B){var M;(M=t.onRowsRendered)==null||M.call(t,B),B.rowCacheEnd>e.unref(f)&&(f.value=B.rowCacheEnd)}function C({hovered:B,rowKey:M}){i.value=B?M:null}function k({expanded:B,rowData:M,rowIndex:P,rowKey:T}){var I,v;const O=[...e.unref(c)],D=O.indexOf(T);B?D===-1&&O.push(T):D>-1&&O.splice(D,1),c.value=O,a("update:expandedRowKeys",O),(I=t.onRowExpand)==null||I.call(t,{expanded:B,rowData:M,rowIndex:P,rowKey:T}),(v=t.onExpandedRowsChange)==null||v.call(t,O)}const w=Gt(()=>{var B,M,P,T;s.value=!0,d.value={...e.unref(d),...e.unref(p)},E(e.unref(u),!1),p.value={},u.value=null,(B=n.value)==null||B.forceUpdate(),(M=o.value)==null||M.forceUpdate(),(P=r.value)==null||P.forceUpdate(),(T=l.proxy)==null||T.$forceUpdate(),s.value=!1},0);function E(B,M=!1){!e.unref(b)||[n,o,r].forEach(P=>{const T=e.unref(P);T&&T.resetAfterRowIndex(B,M)})}function S(B,M,P){const T=e.unref(u);(T===null||T>P)&&(u.value=P),p.value[B]=M}function _({rowKey:B,height:M,rowIndex:P},T){T?T===Ap.RIGHT?m.value[B]=M:h.value[B]=M:g.value[B]=M;const I=Math.max(...[h,m,g].map(v=>v.value[B]||0));e.unref(d)[B]!==I&&(S(B,I,P),w())}return{hoveringRowKey:i,expandedRowKeys:c,lastRenderedRowIndex:f,isDynamic:b,isResetting:s,rowHeights:d,resetAfterIndex:E,onRowExpanded:k,onRowHovered:C,onRowsRendered:y,onRowHeightChange:_}},EX=(t,{expandedRowKeys:n,lastRenderedRowIndex:o,resetAfterIndex:r})=>{const l=e.ref({}),a=e.computed(()=>{const i={},{data:c,rowKey:f}=t,u=e.unref(n);if(!u||!u.length)return c;const d=[],p=new Set;u.forEach(g=>p.add(g));let h=c.slice();for(h.forEach(g=>i[g[f]]=0);h.length>0;){const g=h.shift();d.push(g),p.has(g[f])&&Array.isArray(g.children)&&g.children.length>0&&(h=[...g.children,...h],g.children.forEach(m=>i[m[f]]=i[g[f]]+1))}return l.value=i,d}),s=e.computed(()=>{const{data:i,expandColumnKey:c}=t;return c?e.unref(a):i});return e.watch(s,(i,c)=>{i!==c&&(o.value=-1,r(0,!0))}),{data:s,depthMap:l}},NX=(t,n)=>t+n,Xi=t=>Re(t)?t.reduce(NX,0):t,xr=(t,n,o={})=>qe(t)?t(n):t!=null?t:o,cr=t=>(["width","maxWidth","minWidth","height"].forEach(n=>{t[n]=kt(t[n])}),t),s2=t=>e.isVNode(t)?n=>e.h(t,n):t,_X=(t,{columnsTotalWidth:n,data:o,fixedColumnsOnLeft:r,fixedColumnsOnRight:l})=>{const a=e.computed(()=>{const{fixed:k,width:w,vScrollbarSize:E}=t,S=w-E;return k?Math.max(Math.round(e.unref(n)),S):S}),s=e.computed(()=>e.unref(a)+(t.fixed?t.vScrollbarSize:0)),i=e.computed(()=>{const{height:k=0,maxHeight:w=0,footerHeight:E,hScrollbarSize:S}=t;if(w>0){const _=e.unref(g),B=e.unref(c),P=e.unref(h)+_+B+S;return Math.min(P,w-E)}return k-E}),c=e.computed(()=>{const{rowHeight:k,estimatedRowHeight:w}=t,E=e.unref(o);return be(w)?E.length*w:E.length*k}),f=e.computed(()=>{const{maxHeight:k}=t,w=e.unref(i);if(be(k)&&k>0)return w;const E=e.unref(c)+e.unref(h)+e.unref(g);return Math.min(w,E)}),u=k=>k.width,d=e.computed(()=>Xi(e.unref(r).map(u))),p=e.computed(()=>Xi(e.unref(l).map(u))),h=e.computed(()=>Xi(t.headerHeight)),g=e.computed(()=>{var k;return(((k=t.fixedData)==null?void 0:k.length)||0)*t.rowHeight}),m=e.computed(()=>e.unref(i)-e.unref(h)-e.unref(g)),b=e.computed(()=>{const{style:k={},height:w,width:E}=t;return cr({...k,height:w,width:E})}),y=e.computed(()=>cr({height:t.footerHeight})),C=e.computed(()=>({top:kt(e.unref(h)),bottom:kt(t.footerHeight),width:kt(t.width)}));return{bodyWidth:a,fixedTableHeight:f,mainTableHeight:i,leftTableWidth:d,rightTableWidth:p,headerWidth:s,rowsHeight:c,windowHeight:m,footerHeight:y,emptyStyle:C,rootStyle:b,headerHeight:h}},BX=t=>{const n=e.ref(),o=e.ref(0),r=e.ref(0);let l;return e.onMounted(()=>{l=jt(n,([a])=>{const{width:s,height:i}=a.contentRect,{paddingLeft:c,paddingRight:f,paddingTop:u,paddingBottom:d}=getComputedStyle(a.target),p=Number.parseInt(c)||0,h=Number.parseInt(f)||0,g=Number.parseInt(u)||0,m=Number.parseInt(d)||0;o.value=s-p-h,r.value=i-g-m}).stop}),e.onBeforeUnmount(()=>{l==null||l()}),e.watch([o,r],([a,s])=>{var i;(i=t.onResize)==null||i.call(t,{width:a,height:s})}),{sizer:n,width:o,height:r}};function $X(t){const n=e.ref(),o=e.ref(),r=e.ref(),{columns:l,columnsStyles:a,columnsTotalWidth:s,fixedColumnsOnLeft:i,fixedColumnsOnRight:c,hasFixedColumns:f,mainColumns:u,onColumnSorted:d}=wX(t,e.toRef(t,"columns"),e.toRef(t,"fixed")),{scrollTo:p,scrollToLeft:h,scrollToTop:g,scrollToRow:m,onScroll:b,onVerticalScroll:y,scrollPos:C}=kX(t,{mainTableRef:n,leftTableRef:o,rightTableRef:r,onMaybeEndReached:ie}),{expandedRowKeys:k,hoveringRowKey:w,lastRenderedRowIndex:E,isDynamic:S,isResetting:_,rowHeights:B,resetAfterIndex:M,onRowExpanded:P,onRowHeightChange:T,onRowHovered:I,onRowsRendered:v}=SX(t,{mainTableRef:n,leftTableRef:o,rightTableRef:r}),{data:O,depthMap:D}=EX(t,{expandedRowKeys:k,lastRenderedRowIndex:E,resetAfterIndex:M}),{bodyWidth:z,fixedTableHeight:$,mainTableHeight:R,leftTableWidth:N,rightTableWidth:A,headerWidth:x,rowsHeight:H,windowHeight:K,footerHeight:q,emptyStyle:ne,rootStyle:Y,headerHeight:Z}=_X(t,{columnsTotalWidth:s,data:O,fixedColumnsOnLeft:i,fixedColumnsOnRight:c}),U=e.shallowRef(!1),re=e.ref(),te=e.computed(()=>{const ye=e.unref(O).length===0;return Re(t.fixedData)?t.fixedData.length===0&&ye:ye});function oe(ye){const{estimatedRowHeight:Ne,rowHeight:Te,rowKey:Pe}=t;return Ne?e.unref(B)[e.unref(O)[ye][Pe]]||Ne:Te}function ie(){const{onEndReached:ye}=t;if(!ye)return;const{scrollTop:Ne}=e.unref(C),Te=e.unref(H),Pe=e.unref(K),he=Te-(Ne+Pe)+t.hScrollbarSize;e.unref(E)>=0&&Te===Ne+e.unref(R)-e.unref(Z)&&ye(he)}return e.watch(()=>t.expandedRowKeys,ye=>k.value=ye,{deep:!0}),{columns:l,containerRef:re,mainTableRef:n,leftTableRef:o,rightTableRef:r,isDynamic:S,isResetting:_,isScrolling:U,hoveringRowKey:w,hasFixedColumns:f,columnsStyles:a,columnsTotalWidth:s,data:O,expandedRowKeys:k,depthMap:D,fixedColumnsOnLeft:i,fixedColumnsOnRight:c,mainColumns:u,bodyWidth:z,emptyStyle:ne,rootStyle:Y,headerWidth:x,footerHeight:q,mainTableHeight:R,fixedTableHeight:$,leftTableWidth:N,rightTableWidth:A,showEmpty:te,getRowHeight:oe,onColumnSorted:d,onRowHovered:I,onRowExpanded:P,onRowsRendered:v,onRowHeightChange:T,scrollTo:p,scrollToLeft:h,scrollToTop:g,scrollToRow:m,onScroll:b,onVerticalScroll:y}}const Dp=Symbol("tableV2"),i2=String,za={type:W(Array),required:!0},Lp={type:W(Array)},c2={...Lp,required:!0},TX=String,d2={type:W(Array),default:()=>ut([])},Fr={type:Number,required:!0},f2={type:W([String,Number,Symbol]),default:"id"},u2={type:W(Object)},dr=le({class:String,columns:za,columnsStyles:{type:W(Object),required:!0},depth:Number,expandColumnKey:TX,estimatedRowHeight:{...ir.estimatedRowHeight,default:void 0},isScrolling:Boolean,onRowExpand:{type:W(Function)},onRowHover:{type:W(Function)},onRowHeightChange:{type:W(Function)},rowData:{type:W(Object),required:!0},rowEventHandlers:{type:W(Object)},rowIndex:{type:Number,required:!0},rowKey:f2,style:{type:W(Object)}}),xp={type:Number,required:!0},Fp=le({class:String,columns:za,fixedHeaderData:{type:W(Array)},headerData:{type:W(Array),required:!0},headerHeight:{type:W([Number,Array]),default:50},rowWidth:xp,rowHeight:{type:Number,default:50},height:xp,width:xp}),Zi=le({columns:za,data:c2,fixedData:Lp,estimatedRowHeight:dr.estimatedRowHeight,width:Fr,height:Fr,headerWidth:Fr,headerHeight:Fp.headerHeight,bodyWidth:Fr,rowHeight:Fr,cache:wp.cache,useIsScrolling:Boolean,scrollbarAlwaysOn:ir.scrollbarAlwaysOn,scrollbarStartGap:ir.scrollbarStartGap,scrollbarEndGap:ir.scrollbarEndGap,class:i2,style:u2,containerStyle:u2,getRowHeight:{type:W(Function),required:!0},rowKey:dr.rowKey,onRowsRendered:{type:W(Function)},onScroll:{type:W(Function)}}),p2=le({cache:Zi.cache,estimatedRowHeight:dr.estimatedRowHeight,rowKey:f2,headerClass:{type:W([String,Function])},headerProps:{type:W([Object,Function])},headerCellProps:{type:W([Object,Function])},headerHeight:Fp.headerHeight,footerHeight:{type:Number,default:0},rowClass:{type:W([String,Function])},rowProps:{type:W([Object,Function])},rowHeight:{type:Number,default:50},cellProps:{type:W([Object,Function])},columns:za,data:c2,dataGetter:{type:W(Function)},fixedData:Lp,expandColumnKey:dr.expandColumnKey,expandedRowKeys:d2,defaultExpandedRowKeys:d2,class:i2,fixed:Boolean,style:{type:W(Object)},width:Fr,height:Fr,maxHeight:Number,useIsScrolling:Boolean,indentSize:{type:Number,default:12},iconSize:{type:Number,default:12},hScrollbarSize:ir.hScrollbarSize,vScrollbarSize:ir.vScrollbarSize,scrollbarAlwaysOn:Sp.alwaysOn,sortBy:{type:W(Object),default:()=>({})},sortState:{type:W(Object),default:void 0},onColumnSort:{type:W(Function)},onExpandedRowsChange:{type:W(Function)},onEndReached:{type:W(Function)},onRowExpand:dr.onRowExpand,onScroll:Zi.onScroll,onRowsRendered:Zi.onRowsRendered,rowEventHandlers:dr.rowEventHandlers}),Hp=(t,{slots:n})=>{var o;const{cellData:r,style:l}=t,a=((o=r==null?void 0:r.toString)==null?void 0:o.call(r))||"";return e.createVNode("div",{class:t.class,title:a,style:l},[n.default?n.default(t):a])};Hp.displayName="ElTableV2Cell",Hp.inheritAttrs=!1;var vX=Hp;const Kp=(t,{slots:n})=>{var o,r;return n.default?n.default(t):e.createVNode("div",{class:t.class,title:(o=t.column)==null?void 0:o.title},[(r=t.column)==null?void 0:r.title])};Kp.displayName="ElTableV2HeaderCell",Kp.inheritAttrs=!1;var VX=Kp;const MX=le({class:String,columns:za,columnsStyles:{type:W(Object),required:!0},headerIndex:Number,style:{type:W(Object)}});var IX=e.defineComponent({name:"ElTableV2HeaderRow",props:MX,setup(t,{slots:n}){return()=>{const{columns:o,columnsStyles:r,headerIndex:l,style:a}=t;let s=o.map((i,c)=>n.cell({columns:o,column:i,columnIndex:c,headerIndex:l,style:r[i.key]}));return n.header&&(s=n.header({cells:s.map(i=>Re(i)&&i.length===1?i[0]:i),columns:o,headerIndex:l})),e.createVNode("div",{class:t.class,style:a,role:"row"},[s])}}});const PX="ElTableV2Header";var RX=e.defineComponent({name:PX,props:Fp,setup(t,{slots:n,expose:o}){const r=Q("table-v2"),l=e.ref(),a=e.computed(()=>cr({width:t.width,height:t.height})),s=e.computed(()=>cr({width:t.rowWidth,height:t.height})),i=e.computed(()=>Ho(e.unref(t.headerHeight))),c=d=>{const p=e.unref(l);e.nextTick(()=>{p!=null&&p.scroll&&p.scroll({left:d})})},f=()=>{const d=r.e("fixed-header-row"),{columns:p,fixedHeaderData:h,rowHeight:g}=t;return h==null?void 0:h.map((m,b)=>{var y;const C=cr({height:g,width:"100%"});return(y=n.fixed)==null?void 0:y.call(n,{class:d,columns:p,rowData:m,rowIndex:-(b+1),style:C})})},u=()=>{const d=r.e("dynamic-header-row"),{columns:p}=t;return e.unref(i).map((h,g)=>{var m;const b=cr({width:"100%",height:h});return(m=n.dynamic)==null?void 0:m.call(n,{class:d,columns:p,headerIndex:g,style:b})})};return o({scrollToLeft:c}),()=>{if(!(t.height<=0))return e.createVNode("div",{ref:l,class:t.class,style:e.unref(a),role:"rowgroup"},[e.createVNode("div",{style:e.unref(s),class:r.e("header")},[u(),f()])])}}});const OX=t=>{const{isScrolling:n}=e.inject(Dp),o=e.ref(!1),r=e.ref(),l=e.computed(()=>be(t.estimatedRowHeight)&&t.rowIndex>=0),a=(c=!1)=>{const f=e.unref(r);if(!f)return;const{columns:u,onRowHeightChange:d,rowKey:p,rowIndex:h,style:g}=t,{height:m}=f.getBoundingClientRect();o.value=!0,e.nextTick(()=>{if(c||m!==Number.parseInt(g.height)){const b=u[0],y=(b==null?void 0:b.placeholderSign)===vl;d==null||d({rowKey:p,height:m,rowIndex:h},b&&!y&&b.fixed)}})},s=e.computed(()=>{const{rowData:c,rowIndex:f,rowKey:u,onRowHover:d}=t,p=t.rowEventHandlers||{},h={};return Object.entries(p).forEach(([g,m])=>{qe(m)&&(h[g]=b=>{m({event:b,rowData:c,rowIndex:f,rowKey:u})})}),d&&[{name:"onMouseleave",hovered:!1},{name:"onMouseenter",hovered:!0}].forEach(({name:g,hovered:m})=>{const b=h[g];h[g]=y=>{d({event:y,hovered:m,rowData:c,rowIndex:f,rowKey:u}),b==null||b(y)}}),h}),i=c=>{const{onRowExpand:f,rowData:u,rowIndex:d,rowKey:p}=t;f==null||f({expanded:c,rowData:u,rowIndex:d,rowKey:p})};return e.onMounted(()=>{e.unref(l)&&a(!0)}),{isScrolling:n,measurable:l,measured:o,rowRef:r,eventHandlers:s,onExpand:i}},AX="ElTableV2TableRow";var zX=e.defineComponent({name:AX,props:dr,setup(t,{expose:n,slots:o,attrs:r}){const{eventHandlers:l,isScrolling:a,measurable:s,measured:i,rowRef:c,onExpand:f}=OX(t);return n({onExpand:f}),()=>{const{columns:u,columnsStyles:d,expandColumnKey:p,depth:h,rowData:g,rowIndex:m,style:b}=t;let y=u.map((C,k)=>{const w=Re(g.children)&&g.children.length>0&&C.key===p;return o.cell({column:C,columns:u,columnIndex:k,depth:h,style:d[C.key],rowData:g,rowIndex:m,isScrolling:e.unref(a),expandIconProps:w?{rowData:g,rowIndex:m,onExpand:f}:void 0})});if(o.row&&(y=o.row({cells:y.map(C=>Re(C)&&C.length===1?C[0]:C),style:b,columns:u,depth:h,rowData:g,rowIndex:m,isScrolling:e.unref(a)})),e.unref(s)){const{height:C,...k}=b||{},w=e.unref(i);return e.createVNode("div",e.mergeProps({ref:c,class:t.class,style:w?b:k,role:"row"},r,e.unref(l)),[y])}return e.createVNode("div",e.mergeProps(r,{ref:c,class:t.class,style:b,role:"row"},e.unref(l)),[y])}}}),DX=t=>{const{sortOrder:n}=t;return e.createVNode(fe,{size:14,class:t.class},{default:()=>[n===$l.ASC?e.createVNode(GD,null,null):e.createVNode(jD,null,null)]})},LX=t=>{const{expanded:n,expandable:o,onExpand:r,style:l,size:a}=t,s={onClick:o?()=>r(!n):void 0,class:t.class};return e.createVNode(fe,e.mergeProps(s,{size:a,style:l}),{default:()=>[e.createVNode(on,null,null)]})};const xX="ElTableV2Grid",FX=t=>{const n=e.ref(),o=e.ref(),r=e.computed(()=>{const{data:m,rowHeight:b,estimatedRowHeight:y}=t;if(!y)return m.length*b}),l=e.computed(()=>{const{fixedData:m,rowHeight:b}=t;return((m==null?void 0:m.length)||0)*b}),a=e.computed(()=>Xi(t.headerHeight)),s=e.computed(()=>{const{height:m}=t;return Math.max(0,m-e.unref(a)-e.unref(l))}),i=e.computed(()=>e.unref(a)+e.unref(l)>0),c=({data:m,rowIndex:b})=>m[b][t.rowKey];function f({rowCacheStart:m,rowCacheEnd:b,rowVisibleStart:y,rowVisibleEnd:C}){var k;(k=t.onRowsRendered)==null||k.call(t,{rowCacheStart:m,rowCacheEnd:b,rowVisibleStart:y,rowVisibleEnd:C})}function u(m,b){var y;(y=o.value)==null||y.resetAfterRowIndex(m,b)}function d(m,b){const y=e.unref(n),C=e.unref(o);!y||!C||(nt(m)?(y.scrollToLeft(m.scrollLeft),C.scrollTo(m)):(y.scrollToLeft(m),C.scrollTo({scrollLeft:m,scrollTop:b})))}function p(m){var b;(b=e.unref(o))==null||b.scrollTo({scrollTop:m})}function h(m,b){var y;(y=e.unref(o))==null||y.scrollToItem(m,1,b)}function g(){var m,b;(m=e.unref(o))==null||m.$forceUpdate(),(b=e.unref(n))==null||b.$forceUpdate()}return{bodyRef:o,forceUpdate:g,fixedRowHeight:l,gridHeight:s,hasHeader:i,headerHeight:a,headerRef:n,totalHeight:r,itemKey:c,onItemRendered:f,resetAfterRowIndex:u,scrollTo:d,scrollToTop:p,scrollToRow:h}},Wp=e.defineComponent({name:xX,props:Zi,setup(t,{slots:n,expose:o}){const{ns:r}=e.inject(Dp),{bodyRef:l,fixedRowHeight:a,gridHeight:s,hasHeader:i,headerRef:c,headerHeight:f,totalHeight:u,forceUpdate:d,itemKey:p,onItemRendered:h,resetAfterRowIndex:g,scrollTo:m,scrollToTop:b,scrollToRow:y}=FX(t);o({forceUpdate:d,totalHeight:u,scrollTo:m,scrollToTop:b,scrollToRow:y,resetAfterRowIndex:g});const C=()=>t.bodyWidth;return()=>{const{cache:k,columns:w,data:E,fixedData:S,useIsScrolling:_,scrollbarAlwaysOn:B,scrollbarEndGap:M,scrollbarStartGap:P,style:T,rowHeight:I,bodyWidth:v,estimatedRowHeight:O,headerWidth:D,height:z,width:$,getRowHeight:R,onScroll:N}=t,A=be(O),x=A?uE:rE,H=e.unref(f);return e.createVNode("div",{role:"table",class:[r.e("table"),t.class],style:T},[e.createVNode(x,{ref:l,data:E,useIsScrolling:_,itemKey:p,columnCache:0,columnWidth:A?C:v,totalColumn:1,totalRow:E.length,rowCache:k,rowHeight:A?R:I,width:$,height:e.unref(s),class:r.e("body"),role:"rowgroup",scrollbarStartGap:P,scrollbarEndGap:M,scrollbarAlwaysOn:B,onScroll:N,onItemRendered:h,perfMode:!1},{default:K=>{var q;const ne=E[K.rowIndex];return(q=n.row)==null?void 0:q.call(n,{...K,columns:w,rowData:ne})}}),e.unref(i)&&e.createVNode(RX,{ref:c,class:r.e("header-wrapper"),columns:w,headerData:E,headerHeight:t.headerHeight,fixedHeaderData:S,rowWidth:D,rowHeight:I,width:$,height:Math.min(H+e.unref(a),z)},{dynamic:n.header,fixed:n.row})])}}});function HX(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const KX=(t,{slots:n})=>{const{mainTableRef:o,...r}=t;return e.createVNode(Wp,e.mergeProps({ref:o},r),HX(n)?n:{default:()=>[n]})};function WX(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const jX=(t,{slots:n})=>{if(!t.columns.length)return;const{leftTableRef:o,...r}=t;return e.createVNode(Wp,e.mergeProps({ref:o},r),WX(n)?n:{default:()=>[n]})};function UX(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const GX=(t,{slots:n})=>{if(!t.columns.length)return;const{rightTableRef:o,...r}=t;return e.createVNode(Wp,e.mergeProps({ref:o},r),UX(n)?n:{default:()=>[n]})};function qX(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const YX=(t,{slots:n})=>{const{columns:o,columnsStyles:r,depthMap:l,expandColumnKey:a,expandedRowKeys:s,estimatedRowHeight:i,hasFixedColumns:c,hoveringRowKey:f,rowData:u,rowIndex:d,style:p,isScrolling:h,rowProps:g,rowClass:m,rowKey:b,rowEventHandlers:y,ns:C,onRowHovered:k,onRowExpanded:w}=t,E=xr(m,{columns:o,rowData:u,rowIndex:d},""),S=xr(g,{columns:o,rowData:u,rowIndex:d}),_=u[b],B=l[_]||0,M=Boolean(a),P=d<0,T=[C.e("row"),E,{[C.e(`row-depth-${B}`)]:M&&d>=0,[C.is("expanded")]:M&&s.includes(_),[C.is("hovered")]:!h&&_===f,[C.is("fixed")]:!B&&P,[C.is("customized")]:Boolean(n.row)}],I=c?k:void 0,v={...S,columns:o,columnsStyles:r,class:T,depth:B,expandColumnKey:a,estimatedRowHeight:P?void 0:i,isScrolling:h,rowIndex:d,rowData:u,rowKey:_,rowEventHandlers:y,style:p};return e.createVNode(zX,e.mergeProps(v,{onRowHover:I,onRowExpand:w}),qX(n)?n:{default:()=>[n]})},jp=({columns:t,column:n,columnIndex:o,depth:r,expandIconProps:l,isScrolling:a,rowData:s,rowIndex:i,style:c,expandedRowKeys:f,ns:u,cellProps:d,expandColumnKey:p,indentSize:h,iconSize:g,rowKey:m},{slots:b})=>{const y=cr(c);if(n.placeholderSign===vl)return e.createVNode("div",{class:u.em("row-cell","placeholder"),style:y},null);const{cellRenderer:C,dataKey:k,dataGetter:w}=n,S=s2(C)||b.default||(z=>e.createVNode(vX,z,null)),_=qe(w)?w({columns:t,column:n,columnIndex:o,rowData:s,rowIndex:i}):ct(s,k!=null?k:""),B=xr(d,{cellData:_,columns:t,column:n,columnIndex:o,rowIndex:i,rowData:s}),M={class:u.e("cell-text"),columns:t,column:n,columnIndex:o,cellData:_,isScrolling:a,rowData:s,rowIndex:i},P=S(M),T=[u.e("row-cell"),n.class,n.align===Tl.CENTER&&u.is("align-center"),n.align===Tl.RIGHT&&u.is("align-right")],I=i>=0&&p&&n.key===p,v=i>=0&&f.includes(s[m]);let O;const D=`margin-inline-start: ${r*h}px;`;return I&&(nt(l)?O=e.createVNode(LX,e.mergeProps(l,{class:[u.e("expand-icon"),u.is("expanded",v)],size:g,expanded:v,style:D,expandable:!0}),null):O=e.createVNode("div",{style:[D,`width: ${g}px; height: ${g}px;`].join(" ")},null)),e.createVNode("div",e.mergeProps({class:T,style:y},B,{role:"cell"}),[O,P])};jp.inheritAttrs=!1;function XX(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const ZX=({columns:t,columnsStyles:n,headerIndex:o,style:r,headerClass:l,headerProps:a,ns:s},{slots:i})=>{const c={columns:t,headerIndex:o},f=[s.e("header-row"),xr(l,c,""),{[s.is("customized")]:Boolean(i.header)}],u={...xr(a,c),columnsStyles:n,class:f,columns:t,headerIndex:o,style:r};return e.createVNode(IX,u,XX(i)?i:{default:()=>[i]})},m2=(t,{slots:n})=>{const{column:o,ns:r,style:l,onColumnSorted:a}=t,s=cr(l);if(o.placeholderSign===vl)return e.createVNode("div",{class:r.em("header-row-cell","placeholder"),style:s},null);const{headerCellRenderer:i,headerClass:c,sortable:f}=o,u={...t,class:r.e("header-cell-text")},p=(s2(i)||n.default||(w=>e.createVNode(VX,w,null)))(u),{sortBy:h,sortState:g,headerCellProps:m}=t;let b,y;if(g){const w=g[o.key];b=Boolean(zp[w]),y=b?w:$l.ASC}else b=o.key===h.key,y=b?h.order:$l.ASC;const C=[r.e("header-cell"),xr(c,t,""),o.align===Tl.CENTER&&r.is("align-center"),o.align===Tl.RIGHT&&r.is("align-right"),f&&r.is("sortable")],k={...xr(m,t),onClick:o.sortable?a:void 0,class:C,style:s,["data-key"]:o.key};return e.createVNode("div",e.mergeProps(k,{role:"columnheader"}),[p,f&&e.createVNode(DX,{class:[r.e("sort-icon"),b&&r.is("sorting")],sortOrder:y},null)])},h2=(t,{slots:n})=>{var o;return e.createVNode("div",{class:t.class,style:t.style},[(o=n.default)==null?void 0:o.call(n)])};h2.displayName="ElTableV2Footer";const g2=(t,{slots:n})=>e.createVNode("div",{class:t.class,style:t.style},[n.default?n.default():e.createVNode(Ju,null,null)]);g2.displayName="ElTableV2Empty";const y2=(t,{slots:n})=>{var o;return e.createVNode("div",{class:t.class,style:t.style},[(o=n.default)==null?void 0:o.call(n)])};y2.displayName="ElTableV2Overlay";function Da(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!e.isVNode(t)}const JX="ElTableV2";var b2=e.defineComponent({name:JX,props:p2,setup(t,{slots:n,expose:o}){const r=Q("table-v2"),{columnsStyles:l,fixedColumnsOnLeft:a,fixedColumnsOnRight:s,mainColumns:i,mainTableHeight:c,fixedTableHeight:f,leftTableWidth:u,rightTableWidth:d,data:p,depthMap:h,expandedRowKeys:g,hasFixedColumns:m,hoveringRowKey:b,mainTableRef:y,leftTableRef:C,rightTableRef:k,isDynamic:w,isResetting:E,isScrolling:S,bodyWidth:_,emptyStyle:B,rootStyle:M,headerWidth:P,footerHeight:T,showEmpty:I,scrollTo:v,scrollToLeft:O,scrollToTop:D,scrollToRow:z,getRowHeight:$,onColumnSorted:R,onRowHeightChange:N,onRowHovered:A,onRowExpanded:x,onRowsRendered:H,onScroll:K,onVerticalScroll:q}=$X(t);return o({scrollTo:v,scrollToLeft:O,scrollToTop:D,scrollToRow:z}),e.provide(Dp,{ns:r,isResetting:E,hoveringRowKey:b,isScrolling:S}),()=>{const{cache:ne,cellProps:Y,estimatedRowHeight:Z,expandColumnKey:U,fixedData:re,headerHeight:te,headerClass:oe,headerProps:ie,headerCellProps:ye,sortBy:Ne,sortState:Te,rowHeight:Pe,rowClass:he,rowEventHandlers:Ce,rowKey:ge,rowProps:me,scrollbarAlwaysOn:_e,indentSize:$e,iconSize:Ae,useIsScrolling:Oe,vScrollbarSize:ce,width:Ee}=t,Le=e.unref(p),Xe={cache:ne,class:r.e("main"),columns:e.unref(i),data:Le,fixedData:re,estimatedRowHeight:Z,bodyWidth:e.unref(_)+ce,headerHeight:te,headerWidth:e.unref(P),height:e.unref(c),mainTableRef:y,rowKey:ge,rowHeight:Pe,scrollbarAlwaysOn:_e,scrollbarStartGap:2,scrollbarEndGap:ce,useIsScrolling:Oe,width:Ee,getRowHeight:$,onRowsRendered:H,onScroll:K},Qe=e.unref(u),ke=e.unref(f),J={cache:ne,class:r.e("left"),columns:e.unref(a),data:Le,estimatedRowHeight:Z,leftTableRef:C,rowHeight:Pe,bodyWidth:Qe,headerWidth:Qe,headerHeight:te,height:ke,rowKey:ge,scrollbarAlwaysOn:_e,scrollbarStartGap:2,scrollbarEndGap:ce,useIsScrolling:Oe,width:Qe,getRowHeight:$,onScroll:q},j=e.unref(d)+ce,ee={cache:ne,class:r.e("right"),columns:e.unref(s),data:Le,estimatedRowHeight:Z,rightTableRef:k,rowHeight:Pe,bodyWidth:j,headerWidth:j,headerHeight:te,height:ke,rowKey:ge,scrollbarAlwaysOn:_e,scrollbarStartGap:2,scrollbarEndGap:ce,width:j,style:`--${e.unref(r.namespace)}-table-scrollbar-size: ${ce}px`,useIsScrolling:Oe,getRowHeight:$,onScroll:q},F=e.unref(l),ue={ns:r,depthMap:e.unref(h),columnsStyles:F,expandColumnKey:U,expandedRowKeys:e.unref(g),estimatedRowHeight:Z,hasFixedColumns:e.unref(m),hoveringRowKey:e.unref(b),rowProps:me,rowClass:he,rowKey:ge,rowEventHandlers:Ce,onRowHovered:A,onRowExpanded:x,onRowHeightChange:N},Be={cellProps:Y,expandColumnKey:U,indentSize:$e,iconSize:Ae,rowKey:ge,expandedRowKeys:e.unref(g),ns:r},xe={ns:r,headerClass:oe,headerProps:ie,columnsStyles:F},_t={ns:r,sortBy:Ne,sortState:Te,headerCellProps:ye,onColumnSorted:R},gt={row:X=>e.createVNode(YX,e.mergeProps(X,ue),{row:n.row,cell:de=>{let Se;return n.cell?e.createVNode(jp,e.mergeProps(de,Be,{style:F[de.column.key]}),Da(Se=n.cell(de))?Se:{default:()=>[Se]}):e.createVNode(jp,e.mergeProps(de,Be,{style:F[de.column.key]}),null)}}),header:X=>e.createVNode(ZX,e.mergeProps(X,xe),{header:n.header,cell:de=>{let Se;return n["header-cell"]?e.createVNode(m2,e.mergeProps(de,_t,{style:F[de.column.key]}),Da(Se=n["header-cell"](de))?Se:{default:()=>[Se]}):e.createVNode(m2,e.mergeProps(de,_t,{style:F[de.column.key]}),null)}})},zn=[t.class,r.b(),r.e("root"),{[r.is("dynamic")]:e.unref(w)}],Wt={class:r.e("footer"),style:e.unref(T)};return e.createVNode("div",{class:zn,style:e.unref(M)},[e.createVNode(KX,Xe,Da(gt)?gt:{default:()=>[gt]}),e.createVNode(jX,J,Da(gt)?gt:{default:()=>[gt]}),e.createVNode(GX,ee,Da(gt)?gt:{default:()=>[gt]}),n.footer&&e.createVNode(h2,Wt,{default:n.footer}),e.unref(I)&&e.createVNode(g2,{class:r.e("empty"),style:e.unref(B)},{default:n.empty}),n.overlay&&e.createVNode(y2,{class:r.e("overlay")},{default:n.overlay})])}}});const C2=le({disableWidth:Boolean,disableHeight:Boolean,onResize:{type:W(Function)}}),QX=e.defineComponent({name:"ElAutoResizer",props:C2,setup(t,{slots:n}){const o=Q("auto-resizer"),{height:r,width:l,sizer:a}=BX(t),s={width:"100%",height:"100%"};return()=>{var i;return e.createVNode("div",{ref:a,class:o.b(),style:s},[(i=n.default)==null?void 0:i.call(n,{height:r.value,width:l.value})])}}}),w2=Me(b2),k2=Me(QX),La=Symbol("tabsRootContextKey"),S2=le({tabs:{type:W(Array),default:()=>ut([])}}),E2="ElTabBar",eZ=e.defineComponent({name:E2}),tZ=e.defineComponent({...eZ,props:S2,setup(t,{expose:n}){const o=t,r=e.getCurrentInstance(),l=e.inject(La);l||vt(E2,"");const a=Q("tabs"),s=e.ref(),i=e.ref(),c=()=>{let u=0,d=0;const p=["top","bottom"].includes(l.props.tabPosition)?"width":"height",h=p==="width"?"x":"y",g=h==="x"?"left":"top";return o.tabs.every(m=>{var b,y;const C=(y=(b=r.parent)==null?void 0:b.refs)==null?void 0:y[`tab-${m.uid}`];if(!C)return!1;if(!m.active)return!0;u=C[`offset${ao(g)}`],d=C[`client${ao(p)}`];const k=window.getComputedStyle(C);return p==="width"&&(o.tabs.length>1&&(d-=Number.parseFloat(k.paddingLeft)+Number.parseFloat(k.paddingRight)),u+=Number.parseFloat(k.paddingLeft)),!1}),{[p]:`${d}px`,transform:`translate${ao(h)}(${u}px)`}},f=()=>i.value=c();return e.watch(()=>o.tabs,async()=>{await e.nextTick(),f()},{immediate:!0}),jt(s,()=>f()),n({ref:s,update:f}),(u,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"barRef",ref:s,class:e.normalizeClass([e.unref(a).e("active-bar"),e.unref(a).is(e.unref(l).props.tabPosition)]),style:e.normalizeStyle(i.value)},null,6))}});var nZ=se(tZ,[["__file","tab-bar.vue"]]);const N2=le({panes:{type:W(Array),default:()=>ut([])},currentName:{type:[String,Number],default:""},editable:Boolean,type:{type:String,values:["card","border-card",""],default:""},stretch:Boolean}),_2={tabClick:(t,n,o)=>o instanceof Event,tabRemove:(t,n)=>n instanceof Event},B2="ElTabNav",oZ=e.defineComponent({name:B2,props:N2,emits:_2,setup(t,{expose:n,emit:o}){const r=e.getCurrentInstance(),l=e.inject(La);l||vt(B2,"");const a=Q("tabs"),s=a_(),i=C_(),c=e.ref(),f=e.ref(),u=e.ref(),d=e.ref(),p=e.ref(!1),h=e.ref(0),g=e.ref(!1),m=e.ref(!0),b=e.computed(()=>["top","bottom"].includes(l.props.tabPosition)?"width":"height"),y=e.computed(()=>({transform:`translate${b.value==="width"?"X":"Y"}(-${h.value}px)`})),C=()=>{if(!c.value)return;const M=c.value[`offset${ao(b.value)}`],P=h.value;if(!P)return;const T=P>M?P-M:0;h.value=T},k=()=>{if(!c.value||!f.value)return;const M=f.value[`offset${ao(b.value)}`],P=c.value[`offset${ao(b.value)}`],T=h.value;if(M-T<=P)return;const I=M-T>P*2?T+P:M-P;h.value=I},w=async()=>{const M=f.value;if(!p.value||!u.value||!c.value||!M)return;await e.nextTick();const P=u.value.querySelector(".is-active");if(!P)return;const T=c.value,I=["top","bottom"].includes(l.props.tabPosition),v=P.getBoundingClientRect(),O=T.getBoundingClientRect(),D=I?M.offsetWidth-O.width:M.offsetHeight-O.height,z=h.value;let $=z;I?(v.leftO.right&&($=z+v.right-O.right)):(v.topO.bottom&&($=z+(v.bottom-O.bottom))),$=Math.max($,0),h.value=Math.min($,D)},E=()=>{var M;if(!f.value||!c.value)return;t.stretch&&((M=d.value)==null||M.update());const P=f.value[`offset${ao(b.value)}`],T=c.value[`offset${ao(b.value)}`],I=h.value;T0&&(h.value=0))},S=M=>{const P=M.code,{up:T,down:I,left:v,right:O}=pe;if(![T,I,v,O].includes(P))return;const D=Array.from(M.currentTarget.querySelectorAll("[role=tab]:not(.is-disabled)")),z=D.indexOf(M.target);let $;P===v||P===T?z===0?$=D.length-1:$=z-1:z{m.value&&(g.value=!0)},B=()=>g.value=!1;return e.watch(s,M=>{M==="hidden"?m.value=!1:M==="visible"&&setTimeout(()=>m.value=!0,50)}),e.watch(i,M=>{M?setTimeout(()=>m.value=!0,50):m.value=!1}),jt(u,E),e.onMounted(()=>setTimeout(()=>w(),0)),e.onUpdated(()=>E()),n({scrollToActiveTab:w,removeFocus:B}),e.watch(()=>t.panes,()=>r.update(),{flush:"post",deep:!0}),()=>{const M=p.value?[e.createVNode("span",{class:[a.e("nav-prev"),a.is("disabled",!p.value.prev)],onClick:C},[e.createVNode(fe,null,{default:()=>[e.createVNode(Yo,null,null)]})]),e.createVNode("span",{class:[a.e("nav-next"),a.is("disabled",!p.value.next)],onClick:k},[e.createVNode(fe,null,{default:()=>[e.createVNode(on,null,null)]})])]:null,P=t.panes.map((T,I)=>{var v,O,D,z;const $=T.uid,R=T.props.disabled,N=(O=(v=T.props.name)!=null?v:T.index)!=null?O:`${I}`,A=!R&&(T.isClosable||t.editable);T.index=`${I}`;const x=A?e.createVNode(fe,{class:"is-icon-close",onClick:q=>o("tabRemove",T,q)},{default:()=>[e.createVNode(Hn,null,null)]}):null,H=((z=(D=T.slots).label)==null?void 0:z.call(D))||T.props.label,K=!R&&T.active?0:-1;return e.createVNode("div",{ref:`tab-${$}`,class:[a.e("item"),a.is(l.props.tabPosition),a.is("active",T.active),a.is("disabled",R),a.is("closable",A),a.is("focus",g.value)],id:`tab-${N}`,key:`tab-${$}`,"aria-controls":`pane-${N}`,role:"tab","aria-selected":T.active,tabindex:K,onFocus:()=>_(),onBlur:()=>B(),onClick:q=>{B(),o("tabClick",T,N,q)},onKeydown:q=>{A&&(q.code===pe.delete||q.code===pe.backspace)&&o("tabRemove",T,q)}},[H,x])});return e.createVNode("div",{ref:u,class:[a.e("nav-wrap"),a.is("scrollable",!!p.value),a.is(l.props.tabPosition)]},[M,e.createVNode("div",{class:a.e("nav-scroll"),ref:c},[e.createVNode("div",{class:[a.e("nav"),a.is(l.props.tabPosition),a.is("stretch",t.stretch&&["top","bottom"].includes(l.props.tabPosition))],ref:f,style:y.value,role:"tablist",onKeydown:S},[t.type?null:e.createVNode(nZ,{ref:d,tabs:[...t.panes]},null),P])])])}}}),$2=le({type:{type:String,values:["card","border-card",""],default:""},activeName:{type:[String,Number]},closable:Boolean,addable:Boolean,modelValue:{type:[String,Number]},editable:Boolean,tabPosition:{type:String,values:["top","right","bottom","left"],default:"top"},beforeLeave:{type:W(Function),default:()=>!0},stretch:Boolean}),Up=t=>De(t)||be(t),T2={[Ie]:t=>Up(t),tabClick:(t,n)=>n instanceof Event,tabChange:t=>Up(t),edit:(t,n)=>["remove","add"].includes(n),tabRemove:t=>Up(t),tabAdd:()=>!0},rZ=e.defineComponent({name:"ElTabs",props:$2,emits:T2,setup(t,{emit:n,slots:o,expose:r}){var l,a;const s=Q("tabs"),{children:i,addChild:c,removeChild:f}=qs(e.getCurrentInstance(),"ElTabPane"),u=e.ref(),d=e.ref((a=(l=t.modelValue)!=null?l:t.activeName)!=null?a:"0"),p=async(b,y=!1)=>{var C,k,w;if(!(d.value===b||$t(b)))try{await((C=t.beforeLeave)==null?void 0:C.call(t,b,d.value))!==!1&&(d.value=b,y&&(n(Ie,b),n("tabChange",b)),(w=(k=u.value)==null?void 0:k.removeFocus)==null||w.call(k))}catch(E){}},h=(b,y,C)=>{b.props.disabled||(p(y,!0),n("tabClick",b,C))},g=(b,y)=>{b.props.disabled||$t(b.props.name)||(y.stopPropagation(),n("edit",b.props.name,"remove"),n("tabRemove",b.props.name))},m=()=>{n("edit",void 0,"add"),n("tabAdd")};return jn({from:'"activeName"',replacement:'"model-value" or "v-model"',scope:"ElTabs",version:"2.3.0",ref:"https://element-plus.org/en-US/component/tabs.html#attributes",type:"Attribute"},e.computed(()=>!!t.activeName)),e.watch(()=>t.activeName,b=>p(b)),e.watch(()=>t.modelValue,b=>p(b)),e.watch(d,async()=>{var b;await e.nextTick(),(b=u.value)==null||b.scrollToActiveTab()}),e.provide(La,{props:t,currentName:d,registerPane:c,unregisterPane:f}),r({currentName:d}),()=>{const b=o.addIcon,y=t.editable||t.addable?e.createVNode("span",{class:s.e("new-tab"),tabindex:"0",onClick:m,onKeydown:w=>{w.code===pe.enter&&m()}},[b?e.renderSlot(o,"addIcon"):e.createVNode(fe,{class:s.is("icon-plus")},{default:()=>[e.createVNode(Ny,null,null)]})]):null,C=e.createVNode("div",{class:[s.e("header"),s.is(t.tabPosition)]},[y,e.createVNode(oZ,{ref:u,currentName:d.value,editable:t.editable,type:t.type,panes:i.value,stretch:t.stretch,onTabClick:h,onTabRemove:g},null)]),k=e.createVNode("div",{class:s.e("content")},[e.renderSlot(o,"default")]);return e.createVNode("div",{class:[s.b(),s.m(t.tabPosition),{[s.m("card")]:t.type==="card",[s.m("border-card")]:t.type==="border-card"}]},[...t.tabPosition!=="bottom"?[C,k]:[k,C]])}}}),v2=le({label:{type:String,default:""},name:{type:[String,Number]},closable:Boolean,disabled:Boolean,lazy:Boolean}),lZ=["id","aria-hidden","aria-labelledby"],V2="ElTabPane",aZ=e.defineComponent({name:V2}),sZ=e.defineComponent({...aZ,props:v2,setup(t){const n=t,o=e.getCurrentInstance(),r=e.useSlots(),l=e.inject(La);l||vt(V2,"usage: ");const a=Q("tab-pane"),s=e.ref(),i=e.computed(()=>n.closable||l.props.closable),c=Tm(()=>{var h;return l.currentName.value===((h=n.name)!=null?h:s.value)}),f=e.ref(c.value),u=e.computed(()=>{var h;return(h=n.name)!=null?h:s.value}),d=Tm(()=>!n.lazy||f.value||c.value);e.watch(c,h=>{h&&(f.value=!0)});const p=e.reactive({uid:o.uid,slots:r,props:n,paneName:u,active:c,index:s,isClosable:i});return e.onMounted(()=>{l.registerPane(p)}),e.onUnmounted(()=>{l.unregisterPane(p.uid)}),(h,g)=>e.unref(d)?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:0,id:`pane-${e.unref(u)}`,class:e.normalizeClass(e.unref(a).b()),role:"tabpanel","aria-hidden":!e.unref(c),"aria-labelledby":`tab-${e.unref(u)}`},[e.renderSlot(h.$slots,"default")],10,lZ)),[[e.vShow,e.unref(c)]]):e.createCommentVNode("v-if",!0)}});var M2=se(sZ,[["__file","tab-pane.vue"]]);const I2=Me(rZ,{TabPane:M2}),P2=ht(M2),R2=le({type:{type:String,values:["primary","success","info","warning","danger",""],default:""},size:{type:String,values:Wn,default:""},truncated:{type:Boolean},lineClamp:{type:[String,Number]},tag:{type:String,default:"span"}}),iZ=e.defineComponent({name:"ElText"}),cZ=e.defineComponent({...iZ,props:R2,setup(t){const n=t,o=St(),r=Q("text"),l=e.computed(()=>[r.b(),r.m(n.type),r.m(o.value),r.is("truncated",n.truncated),r.is("line-clamp",!$t(n.lineClamp))]);return(a,s)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.tag),{class:e.normalizeClass(e.unref(l)),style:e.normalizeStyle({"-webkit-line-clamp":a.lineClamp})},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3},8,["class","style"]))}});var dZ=se(cZ,[["__file","text.vue"]]);const O2=Me(dZ),fZ=le({format:{type:String,default:"HH:mm"},modelValue:String,disabled:Boolean,editable:{type:Boolean,default:!0},effect:{type:String,default:"light"},clearable:{type:Boolean,default:!0},size:Vt,placeholder:String,start:{type:String,default:"09:00"},end:{type:String,default:"18:00"},step:{type:String,default:"00:30"},minTime:String,maxTime:String,name:String,prefixIcon:{type:W([String,Object]),default:()=>Sy},clearIcon:{type:W([String,Object]),default:()=>Xo}}),Ao=t=>{const n=(t||"").split(":");if(n.length>=2){let o=Number.parseInt(n[0],10);const r=Number.parseInt(n[1],10),l=t.toUpperCase();return l.includes("AM")&&o===12?o=0:l.includes("PM")&&o!==12&&(o+=12),{hours:o,minutes:r}}return null},Gp=(t,n)=>{const o=Ao(t);if(!o)return-1;const r=Ao(n);if(!r)return-1;const l=o.minutes+o.hours*60,a=r.minutes+r.hours*60;return l===a?0:l>a?1:-1},A2=t=>`${t}`.padStart(2,"0"),Vl=t=>`${A2(t.hours)}:${A2(t.minutes)}`,uZ=(t,n)=>{const o=Ao(t);if(!o)return"";const r=Ao(n);if(!r)return"";const l={hours:o.hours,minutes:o.minutes};return l.minutes+=r.minutes,l.hours+=r.hours,l.hours+=Math.floor(l.minutes/60),l.minutes=l.minutes%60,Vl(l)},pZ=e.defineComponent({name:"ElTimeSelect"}),mZ=e.defineComponent({...pZ,props:fZ,emits:["change","blur","focus","update:modelValue"],setup(t,{expose:n}){const o=t;ve.extend(Qf);const{Option:r}=sr,l=Q("input"),a=e.ref(),s=Yt(),{lang:i}=Ke(),c=e.computed(()=>o.modelValue),f=e.computed(()=>{const y=Ao(o.start);return y?Vl(y):null}),u=e.computed(()=>{const y=Ao(o.end);return y?Vl(y):null}),d=e.computed(()=>{const y=Ao(o.step);return y?Vl(y):null}),p=e.computed(()=>{const y=Ao(o.minTime||"");return y?Vl(y):null}),h=e.computed(()=>{const y=Ao(o.maxTime||"");return y?Vl(y):null}),g=e.computed(()=>{const y=[];if(o.start&&o.end&&o.step){let C=f.value,k;for(;C&&u.value&&Gp(C,u.value)<=0;)k=ve(C,"HH:mm").locale(i.value).format(o.format),y.push({value:k,disabled:Gp(C,p.value||"-1:-1")<=0||Gp(C,h.value||"100:100")>=0}),C=uZ(C,d.value)}return y});return n({blur:()=>{var y,C;(C=(y=a.value)==null?void 0:y.blur)==null||C.call(y)},focus:()=>{var y,C;(C=(y=a.value)==null?void 0:y.focus)==null||C.call(y)}}),(y,C)=>(e.openBlock(),e.createBlock(e.unref(sr),{ref_key:"select",ref:a,"model-value":e.unref(c),disabled:e.unref(s),clearable:y.clearable,"clear-icon":y.clearIcon,size:y.size,effect:y.effect,placeholder:y.placeholder,"default-first-option":"",filterable:y.editable,"onUpdate:modelValue":C[0]||(C[0]=k=>y.$emit("update:modelValue",k)),onChange:C[1]||(C[1]=k=>y.$emit("change",k)),onBlur:C[2]||(C[2]=k=>y.$emit("blur",k)),onFocus:C[3]||(C[3]=k=>y.$emit("focus",k))},{prefix:e.withCtx(()=>[y.prefixIcon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(l).e("prefix-icon"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(y.prefixIcon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),k=>(e.openBlock(),e.createBlock(e.unref(r),{key:k.value,label:k.value,value:k.value,disabled:k.disabled},null,8,["label","value","disabled"]))),128))]),_:1},8,["model-value","disabled","clearable","clear-icon","size","effect","placeholder","filterable"]))}});var Ji=se(mZ,[["__file","time-select.vue"]]);Ji.install=t=>{t.component(Ji.name,Ji)};const z2=Ji;var hZ=e.defineComponent({name:"ElTimeline",setup(t,{slots:n}){const o=Q("timeline");return e.provide("timeline",n),()=>e.h("ul",{class:[o.b()]},[e.renderSlot(n,"default")])}});const D2=le({timestamp:{type:String,default:""},hideTimestamp:{type:Boolean,default:!1},center:{type:Boolean,default:!1},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:ot},hollow:{type:Boolean,default:!1}}),gZ=e.defineComponent({name:"ElTimelineItem"}),yZ=e.defineComponent({...gZ,props:D2,setup(t){const n=t,o=Q("timeline-item"),r=e.computed(()=>[o.e("node"),o.em("node",n.size||""),o.em("node",n.type||""),o.is("hollow",n.hollow)]);return(l,a)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass([e.unref(o).b(),{[e.unref(o).e("center")]:l.center}])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("tail"))},null,2),l.$slots.dot?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(r)),style:e.normalizeStyle({backgroundColor:l.color})},[l.icon?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(o).e("icon"))},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.icon)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],6)),l.$slots.dot?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(o).e("dot"))},[e.renderSlot(l.$slots,"dot")],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("wrapper"))},[!l.hideTimestamp&&l.placement==="top"?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(o).e("timestamp"),e.unref(o).is("top")])},e.toDisplayString(l.timestamp),3)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("content"))},[e.renderSlot(l.$slots,"default")],2),!l.hideTimestamp&&l.placement==="bottom"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass([e.unref(o).e("timestamp"),e.unref(o).is("bottom")])},e.toDisplayString(l.timestamp),3)):e.createCommentVNode("v-if",!0)],2)],2))}});var L2=se(yZ,[["__file","timeline-item.vue"]]);const x2=Me(hZ,{TimelineItem:L2}),F2=ht(L2),H2=le({nowrap:Boolean});var K2=(t=>(t.top="top",t.bottom="bottom",t.left="left",t.right="right",t))(K2||{});const bZ=Object.values(K2),qp=le({width:{type:Number,default:10},height:{type:Number,default:10},style:{type:W(Object),default:null}}),CZ=le({side:{type:W(String),values:bZ,required:!0}}),wZ=["absolute","fixed"],kZ=["top-start","top-end","top","bottom-start","bottom-end","bottom","left-start","left-end","left","right-start","right-end","right"],Yp=le({ariaLabel:String,arrowPadding:{type:W(Number),default:5},effect:{type:String,default:""},contentClass:String,placement:{type:W(String),values:kZ,default:"bottom"},reference:{type:W(Object),default:null},offset:{type:Number,default:8},strategy:{type:W(String),values:wZ,default:"absolute"},showArrow:{type:Boolean,default:!1}}),Xp=le({delayDuration:{type:Number,default:300},defaultOpen:Boolean,open:{type:Boolean,default:void 0},onOpenChange:{type:W(Function)},"onUpdate:open":{type:W(Function)}}),Ml={type:W(Function)},Zp=le({onBlur:Ml,onClick:Ml,onFocus:Ml,onMouseDown:Ml,onMouseEnter:Ml,onMouseLeave:Ml}),SZ=le({...Xp,...qp,...Zp,...Yp,alwaysOn:Boolean,fullTransition:Boolean,transitionProps:{type:W(Object),default:null},teleported:Boolean,to:{type:W(String),default:"body"}}),Qi=Symbol("tooltipV2"),W2=Symbol("tooltipV2Content"),Jp="tooltip_v2.open",EZ=e.defineComponent({name:"ElTooltipV2Root"}),NZ=e.defineComponent({...EZ,props:Xp,setup(t,{expose:n}){const o=t,r=e.ref(o.defaultOpen),l=e.ref(null),a=e.computed({get:()=>Fz(o.open)?r.value:o.open,set:b=>{var y;r.value=b,(y=o["onUpdate:open"])==null||y.call(o,b)}}),s=e.computed(()=>be(o.delayDuration)&&o.delayDuration>0),{start:i,stop:c}=pr(()=>{a.value=!0},e.computed(()=>o.delayDuration),{immediate:!1}),f=Q("tooltip-v2"),u=rn(),d=()=>{c(),a.value=!0},p=()=>{e.unref(s)?i():d()},h=d,g=()=>{c(),a.value=!1},m=b=>{var y;b&&(document.dispatchEvent(new CustomEvent(Jp)),h()),(y=o.onOpenChange)==null||y.call(o,b)};return e.watch(a,m),e.onMounted(()=>{document.addEventListener(Jp,g)}),e.onBeforeUnmount(()=>{c(),document.removeEventListener(Jp,g)}),e.provide(Qi,{contentId:u,triggerRef:l,ns:f,onClose:g,onDelayOpen:p,onOpen:h}),n({onOpen:h,onClose:g}),(b,y)=>e.renderSlot(b.$slots,"default",{open:e.unref(a)})}});var _Z=se(NZ,[["__file","root.vue"]]);const BZ=e.defineComponent({name:"ElTooltipV2Arrow"}),$Z=e.defineComponent({...BZ,props:{...qp,...CZ},setup(t){const n=t,{ns:o}=e.inject(Qi),{arrowRef:r}=e.inject(W2),l=e.computed(()=>{const{style:a,width:s,height:i}=n,c=o.namespace.value;return{[`--${c}-tooltip-v2-arrow-width`]:`${s}px`,[`--${c}-tooltip-v2-arrow-height`]:`${i}px`,[`--${c}-tooltip-v2-arrow-border-width`]:`${s/2}px`,[`--${c}-tooltip-v2-arrow-cover-width`]:s/2-1,...a||{}}});return(a,s)=>(e.openBlock(),e.createElementBlock("span",{ref_key:"arrowRef",ref:r,style:e.normalizeStyle(e.unref(l)),class:e.normalizeClass(e.unref(o).e("arrow"))},null,6))}});var j2=se($Z,[["__file","arrow.vue"]]);const TZ=le({style:{type:W([String,Object,Array]),default:()=>({})}}),vZ=e.defineComponent({name:"ElVisuallyHidden"}),VZ=e.defineComponent({...vZ,props:TZ,setup(t){const n=t,o=e.computed(()=>[n.style,{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}]);return(r,l)=>(e.openBlock(),e.createElementBlock("span",e.mergeProps(r.$attrs,{style:e.unref(o)}),[e.renderSlot(r.$slots,"default")],16))}});var MZ=se(VZ,[["__file","visual-hidden.vue"]]);const IZ=["data-side"],PZ=e.defineComponent({name:"ElTooltipV2Content"}),RZ=e.defineComponent({...PZ,props:{...Yp,...H2},setup(t){const n=t,{triggerRef:o,contentId:r}=e.inject(Qi),l=e.ref(n.placement),a=e.ref(n.strategy),s=e.ref(null),{referenceRef:i,contentRef:c,middlewareData:f,x:u,y:d,update:p}=Wb({placement:l,strategy:a,middleware:e.computed(()=>{const k=[Jx(n.offset)];return n.showArrow&&k.push(jb({arrowRef:s})),k})}),h=$r().nextZIndex(),g=Q("tooltip-v2"),m=e.computed(()=>l.value.split("-")[0]),b=e.computed(()=>({position:e.unref(a),top:`${e.unref(d)||0}px`,left:`${e.unref(u)||0}px`,zIndex:h})),y=e.computed(()=>{if(!n.showArrow)return{};const{arrow:k}=e.unref(f);return{[`--${g.namespace.value}-tooltip-v2-arrow-x`]:`${k==null?void 0:k.x}px`||"",[`--${g.namespace.value}-tooltip-v2-arrow-y`]:`${k==null?void 0:k.y}px`||""}}),C=e.computed(()=>[g.e("content"),g.is("dark",n.effect==="dark"),g.is(e.unref(a)),n.contentClass]);return e.watch(s,()=>p()),e.watch(()=>n.placement,k=>l.value=k),e.onMounted(()=>{e.watch(()=>n.reference||o.value,k=>{i.value=k||void 0},{immediate:!0})}),e.provide(W2,{arrowRef:s}),(k,w)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"contentRef",ref:c,style:e.normalizeStyle(e.unref(b)),"data-tooltip-v2-root":""},[k.nowrap?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("div",{key:0,"data-side":e.unref(m),class:e.normalizeClass(e.unref(C))},[e.renderSlot(k.$slots,"default",{contentStyle:e.unref(b),contentClass:e.unref(C)}),e.createVNode(e.unref(MZ),{id:e.unref(r),role:"tooltip"},{default:e.withCtx(()=>[k.ariaLabel?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(k.ariaLabel),1)],64)):e.renderSlot(k.$slots,"default",{key:1})]),_:3},8,["id"]),e.renderSlot(k.$slots,"arrow",{style:e.normalizeStyle(e.unref(y)),side:e.unref(m)})],10,IZ))],4))}});var U2=se(RZ,[["__file","content.vue"]]);const OZ=le({setRef:{type:W(Function),required:!0},onlyChild:Boolean});var AZ=e.defineComponent({props:OZ,setup(t,{slots:n}){const o=e.ref(),r=Ms(o,l=>{l?t.setRef(l.nextElementSibling):t.setRef(null)});return()=>{var l;const[a]=((l=n.default)==null?void 0:l.call(n))||[],s=t.onlyChild?dL(a.children):a.children;return e.createVNode(e.Fragment,{ref:r},[s])}}});const zZ=e.defineComponent({name:"ElTooltipV2Trigger"}),DZ=e.defineComponent({...zZ,props:{...H2,...Zp},setup(t){const n=t,{onClose:o,onOpen:r,onDelayOpen:l,triggerRef:a,contentId:s}=e.inject(Qi);let i=!1;const c=C=>{a.value=C},f=()=>{i=!1},u=pt(n.onMouseEnter,l),d=pt(n.onMouseLeave,o),p=pt(n.onMouseDown,()=>{o(),i=!0,document.addEventListener("mouseup",f,{once:!0})}),h=pt(n.onFocus,()=>{i||r()}),g=pt(n.onBlur,o),m=pt(n.onClick,C=>{C.detail===0&&o()}),b={blur:g,click:m,focus:h,mousedown:p,mouseenter:u,mouseleave:d},y=(C,k,w)=>{C&&Object.entries(k).forEach(([E,S])=>{C[w](E,S)})};return e.watch(a,(C,k)=>{y(C,b,"addEventListener"),y(k,b,"removeEventListener"),C&&C.setAttribute("aria-describedby",s.value)}),e.onBeforeUnmount(()=>{y(a.value,b,"removeEventListener"),document.removeEventListener("mouseup",f)}),(C,k)=>C.nowrap?(e.openBlock(),e.createBlock(e.unref(AZ),{key:0,"set-ref":c,"only-child":""},{default:e.withCtx(()=>[e.renderSlot(C.$slots,"default")]),_:3})):(e.openBlock(),e.createElementBlock("button",e.mergeProps({key:1,ref_key:"triggerRef",ref:a},C.$attrs),[e.renderSlot(C.$slots,"default")],16))}});var LZ=se(DZ,[["__file","trigger.vue"]]);const xZ=e.defineComponent({name:"ElTooltipV2"}),FZ=e.defineComponent({...xZ,props:SZ,setup(t){const n=t,o=e.toRefs(n),r=e.reactive(ro(o,Object.keys(qp))),l=e.reactive(ro(o,Object.keys(Yp))),a=e.reactive(ro(o,Object.keys(Xp))),s=e.reactive(ro(o,Object.keys(Zp)));return(i,c)=>(e.openBlock(),e.createBlock(_Z,e.normalizeProps(e.guardReactiveProps(a)),{default:e.withCtx(({open:f})=>[e.createVNode(LZ,e.mergeProps(s,{nowrap:""}),{default:e.withCtx(()=>[e.renderSlot(i.$slots,"trigger")]),_:3},16),(e.openBlock(),e.createBlock(e.Teleport,{to:i.to,disabled:!i.teleported},[i.fullTransition?(e.openBlock(),e.createBlock(e.Transition,e.normalizeProps(e.mergeProps({key:0},i.transitionProps)),{default:e.withCtx(()=>[i.alwaysOn||f?(e.openBlock(),e.createBlock(U2,e.normalizeProps(e.mergeProps({key:0},l)),{arrow:e.withCtx(({style:u,side:d})=>[i.showArrow?(e.openBlock(),e.createBlock(j2,e.mergeProps({key:0},r,{style:u,side:d}),null,16,["style","side"])):e.createCommentVNode("v-if",!0)]),default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},16)):e.createCommentVNode("v-if",!0)]),_:2},1040)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[i.alwaysOn||f?(e.openBlock(),e.createBlock(U2,e.normalizeProps(e.mergeProps({key:0},l)),{arrow:e.withCtx(({style:u,side:d})=>[i.showArrow?(e.openBlock(),e.createBlock(j2,e.mergeProps({key:0},r,{style:u,side:d}),null,16,["style","side"])):e.createCommentVNode("v-if",!0)]),default:e.withCtx(()=>[e.renderSlot(i.$slots,"default")]),_:3},16)):e.createCommentVNode("v-if",!0)],64))],8,["to","disabled"]))]),_:3},16))}});var HZ=se(FZ,[["__file","tooltip.vue"]]);const KZ=Me(HZ),Qp="left-check-change",em="right-check-change",Hr=le({data:{type:W(Array),default:()=>[]},titles:{type:W(Array),default:()=>[]},buttonTexts:{type:W(Array),default:()=>[]},filterPlaceholder:String,filterMethod:{type:W(Function)},leftDefaultChecked:{type:W(Array),default:()=>[]},rightDefaultChecked:{type:W(Array),default:()=>[]},renderContent:{type:W(Function)},modelValue:{type:W(Array),default:()=>[]},format:{type:W(Object),default:()=>({})},filterable:Boolean,props:{type:W(Object),default:()=>ut({label:"label",key:"key",disabled:"disabled"})},targetOrder:{type:String,values:["original","push","unshift"],default:"original"},validateEvent:{type:Boolean,default:!0}}),ec=(t,n)=>[t,n].every(Re)||Re(t)&&wt(n),G2={[at]:(t,n,o)=>[t,o].every(Re)&&["left","right"].includes(n),[Ie]:t=>Re(t),[Qp]:ec,[em]:ec},tm="checked-change",WZ=le({data:Hr.data,optionRender:{type:W(Function)},placeholder:String,title:String,filterable:Boolean,format:Hr.format,filterMethod:Hr.filterMethod,defaultChecked:Hr.leftDefaultChecked,props:Hr.props}),jZ={[tm]:ec},xa=t=>{const n={label:"label",key:"key",disabled:"disabled"};return e.computed(()=>({...n,...t.props}))},UZ=(t,n,o)=>{const r=xa(t),l=e.computed(()=>t.data.filter(u=>qe(t.filterMethod)?t.filterMethod(n.query,u):String(u[r.value.label]||u[r.value.key]).toLowerCase().includes(n.query.toLowerCase()))),a=e.computed(()=>l.value.filter(u=>!u[r.value.disabled])),s=e.computed(()=>{const u=n.checked.length,d=t.data.length,{noChecked:p,hasChecked:h}=t.format;return p&&h?u>0?h.replace(/\${checked}/g,u.toString()).replace(/\${total}/g,d.toString()):p.replace(/\${total}/g,d.toString()):`${u}/${d}`}),i=e.computed(()=>{const u=n.checked.length;return u>0&&u{const u=a.value.map(d=>d[r.value.key]);n.allChecked=u.length>0&&u.every(d=>n.checked.includes(d))},f=u=>{n.checked=u?a.value.map(d=>d[r.value.key]):[]};return e.watch(()=>n.checked,(u,d)=>{if(c(),n.checkChangeByUser){const p=u.concat(d).filter(h=>!u.includes(h)||!d.includes(h));o(tm,u,p)}else o(tm,u),n.checkChangeByUser=!0}),e.watch(a,()=>{c()}),e.watch(()=>t.data,()=>{const u=[],d=l.value.map(p=>p[r.value.key]);n.checked.forEach(p=>{d.includes(p)&&u.push(p)}),n.checkChangeByUser=!1,n.checked=u}),e.watch(()=>t.defaultChecked,(u,d)=>{if(d&&u.length===d.length&&u.every(g=>d.includes(g)))return;const p=[],h=a.value.map(g=>g[r.value.key]);u.forEach(g=>{h.includes(g)&&p.push(g)}),n.checkChangeByUser=!1,n.checked=p},{immediate:!0}),{filteredData:l,checkableData:a,checkedSummary:s,isIndeterminate:i,updateAllChecked:c,handleAllCheckedChange:f}},GZ=(t,n)=>({onSourceCheckedChange:(l,a)=>{t.leftChecked=l,a&&n(Qp,l,a)},onTargetCheckedChange:(l,a)=>{t.rightChecked=l,a&&n(em,l,a)}}),qZ=t=>{const n=xa(t),o=e.computed(()=>t.data.reduce((a,s)=>(a[s[n.value.key]]=s)&&a,{})),r=e.computed(()=>t.data.filter(a=>!t.modelValue.includes(a[n.value.key]))),l=e.computed(()=>t.targetOrder==="original"?t.data.filter(a=>t.modelValue.includes(a[n.value.key])):t.modelValue.reduce((a,s)=>{const i=o.value[s];return i&&a.push(i),a},[]));return{sourceData:r,targetData:l}},YZ=(t,n,o)=>{const r=xa(t),l=(i,c,f)=>{o(Ie,i),o(at,i,c,f)};return{addToLeft:()=>{const i=t.modelValue.slice();n.rightChecked.forEach(c=>{const f=i.indexOf(c);f>-1&&i.splice(f,1)}),l(i,"left",n.rightChecked)},addToRight:()=>{let i=t.modelValue.slice();const c=t.data.filter(f=>{const u=f[r.value.key];return n.leftChecked.includes(u)&&!t.modelValue.includes(u)}).map(f=>f[r.value.key]);i=t.targetOrder==="unshift"?c.concat(i):i.concat(c),t.targetOrder==="original"&&(i=t.data.filter(f=>i.includes(f[r.value.key])).map(f=>f[r.value.key])),l(i,"right",n.leftChecked)}}},XZ=e.defineComponent({name:"ElTransferPanel"}),ZZ=e.defineComponent({...XZ,props:WZ,emits:jZ,setup(t,{expose:n,emit:o}){const r=t,l=e.useSlots(),a=({option:k})=>k,{t:s}=Ke(),i=Q("transfer"),c=e.reactive({checked:[],allChecked:!1,query:"",checkChangeByUser:!0}),f=xa(r),{filteredData:u,checkedSummary:d,isIndeterminate:p,handleAllCheckedChange:h}=UZ(r,c,o),g=e.computed(()=>!Vn(c.query)&&Vn(u.value)),m=e.computed(()=>!Vn(l.default()[0].children)),{checked:b,allChecked:y,query:C}=e.toRefs(c);return n({query:C}),(k,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(i).b("panel"))},[e.createElementVNode("p",{class:e.normalizeClass(e.unref(i).be("panel","header"))},[e.createVNode(e.unref(En),{modelValue:e.unref(y),"onUpdate:modelValue":w[0]||(w[0]=E=>e.isRef(y)?y.value=E:null),indeterminate:e.unref(p),"validate-event":!1,onChange:e.unref(h)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.title)+" ",1),e.createElementVNode("span",null,e.toDisplayString(e.unref(d)),1)]),_:1},8,["modelValue","indeterminate","onChange"])],2),e.createElementVNode("div",{class:e.normalizeClass([e.unref(i).be("panel","body"),e.unref(i).is("with-footer",e.unref(m))])},[k.filterable?(e.openBlock(),e.createBlock(e.unref(Ft),{key:0,modelValue:e.unref(C),"onUpdate:modelValue":w[1]||(w[1]=E=>e.isRef(C)?C.value=E:null),class:e.normalizeClass(e.unref(i).be("panel","filter")),size:"default",placeholder:k.placeholder,"prefix-icon":e.unref(KD),clearable:"","validate-event":!1},null,8,["modelValue","class","placeholder","prefix-icon"])):e.createCommentVNode("v-if",!0),e.withDirectives(e.createVNode(e.unref(Su),{modelValue:e.unref(b),"onUpdate:modelValue":w[2]||(w[2]=E=>e.isRef(b)?b.value=E:null),"validate-event":!1,class:e.normalizeClass([e.unref(i).is("filterable",k.filterable),e.unref(i).be("panel","list")])},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(u),E=>(e.openBlock(),e.createBlock(e.unref(En),{key:E[e.unref(f).key],class:e.normalizeClass(e.unref(i).be("panel","item")),label:E[e.unref(f).key],disabled:E[e.unref(f).disabled],"validate-event":!1},{default:e.withCtx(()=>{var S;return[e.createVNode(a,{option:(S=k.optionRender)==null?void 0:S.call(k,E)},null,8,["option"])]}),_:2},1032,["class","label","disabled"]))),128))]),_:1},8,["modelValue","class"]),[[e.vShow,!e.unref(g)&&!e.unref(Vn)(k.data)]]),e.withDirectives(e.createElementVNode("p",{class:e.normalizeClass(e.unref(i).be("panel","empty"))},e.toDisplayString(e.unref(g)?e.unref(s)("el.transfer.noMatch"):e.unref(s)("el.transfer.noData")),3),[[e.vShow,e.unref(g)||e.unref(Vn)(k.data)]])],2),e.unref(m)?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(e.unref(i).be("panel","footer"))},[e.renderSlot(k.$slots,"default")],2)):e.createCommentVNode("v-if",!0)],2))}});var q2=se(ZZ,[["__file","transfer-panel.vue"]]);const JZ={key:0},QZ={key:0},eJ=e.defineComponent({name:"ElTransfer"}),tJ=e.defineComponent({...eJ,props:Hr,emits:G2,setup(t,{expose:n,emit:o}){const r=t,l=e.useSlots(),{t:a}=Ke(),s=Q("transfer"),{formItem:i}=Xt(),c=e.reactive({leftChecked:[],rightChecked:[]}),f=xa(r),{sourceData:u,targetData:d}=qZ(r),{onSourceCheckedChange:p,onTargetCheckedChange:h}=GZ(c,o),{addToLeft:g,addToRight:m}=YZ(r,c,o),b=e.ref(),y=e.ref(),C=B=>{switch(B){case"left":b.value.query="";break;case"right":y.value.query="";break}},k=e.computed(()=>r.buttonTexts.length===2),w=e.computed(()=>r.titles[0]||a("el.transfer.titles.0")),E=e.computed(()=>r.titles[1]||a("el.transfer.titles.1")),S=e.computed(()=>r.filterPlaceholder||a("el.transfer.filterPlaceholder"));e.watch(()=>r.modelValue,()=>{var B;r.validateEvent&&((B=i==null?void 0:i.validate)==null||B.call(i,"change").catch(M=>void 0))});const _=e.computed(()=>B=>r.renderContent?r.renderContent(e.h,B):l.default?l.default({option:B}):e.h("span",B[f.value.label]||B[f.value.key]));return n({clearQuery:C,leftPanel:b,rightPanel:y}),(B,M)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(s).b())},[e.createVNode(q2,{ref_key:"leftPanel",ref:b,data:e.unref(u),"option-render":e.unref(_),placeholder:e.unref(S),title:e.unref(w),filterable:B.filterable,format:B.format,"filter-method":B.filterMethod,"default-checked":B.leftDefaultChecked,props:r.props,onCheckedChange:e.unref(p)},{default:e.withCtx(()=>[e.renderSlot(B.$slots,"left-footer")]),_:3},8,["data","option-render","placeholder","title","filterable","format","filter-method","default-checked","props","onCheckedChange"]),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s).e("buttons"))},[e.createVNode(e.unref(At),{type:"primary",class:e.normalizeClass([e.unref(s).e("button"),e.unref(s).is("with-texts",e.unref(k))]),disabled:e.unref(Vn)(c.rightChecked),onClick:e.unref(g)},{default:e.withCtx(()=>[e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(Yo))]),_:1}),e.unref($t)(B.buttonTexts[0])?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("span",JZ,e.toDisplayString(B.buttonTexts[0]),1))]),_:1},8,["class","disabled","onClick"]),e.createVNode(e.unref(At),{type:"primary",class:e.normalizeClass([e.unref(s).e("button"),e.unref(s).is("with-texts",e.unref(k))]),disabled:e.unref(Vn)(c.leftChecked),onClick:e.unref(m)},{default:e.withCtx(()=>[e.unref($t)(B.buttonTexts[1])?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("span",QZ,e.toDisplayString(B.buttonTexts[1]),1)),e.createVNode(e.unref(fe),null,{default:e.withCtx(()=>[e.createVNode(e.unref(on))]),_:1})]),_:1},8,["class","disabled","onClick"])],2),e.createVNode(q2,{ref_key:"rightPanel",ref:y,data:e.unref(d),"option-render":e.unref(_),placeholder:e.unref(S),filterable:B.filterable,format:B.format,"filter-method":B.filterMethod,title:e.unref(E),"default-checked":B.rightDefaultChecked,props:r.props,onCheckedChange:e.unref(h)},{default:e.withCtx(()=>[e.renderSlot(B.$slots,"right-footer")]),_:3},8,["data","option-render","placeholder","filterable","format","filter-method","title","default-checked","props","onCheckedChange"])],2))}});var nJ=se(tJ,[["__file","transfer.vue"]]);const Y2=Me(nJ),Il="$treeNodeId",X2=function(t,n){!n||n[Il]||Object.defineProperty(n,Il,{value:t.id,enumerable:!1,configurable:!1,writable:!1})},nm=function(t,n){return t?n[t]:n[Il]},om=(t,n,o)=>{const r=t.value.currentNode;o();const l=t.value.currentNode;r!==l&&n("current-change",l?l.data:null,l)},rm=t=>{let n=!0,o=!0,r=!0;for(let l=0,a=t.length;l0&&n.lazy&&n.defaultExpandAll&&this.expand(),Array.isArray(this.data)||X2(this,this.data),!this.data)return;const r=n.defaultExpandedKeys,l=n.key;l&&r&&r.includes(this.key)&&this.expand(null,n.autoExpandParent),l&&n.currentNodeKey!==void 0&&this.key===n.currentNodeKey&&(n.currentNode=this,n.currentNode.isCurrent=!0),n.lazy&&n._initDefaultCheckedNode(this),this.updateLeafState(),this.parent&&(this.level===1||this.parent.expanded===!0)&&(this.canFocus=!0)}setData(n){Array.isArray(n)||X2(this,n),this.data=n,this.childNodes=[];let o;this.level===0&&Array.isArray(this.data)?o=this.data:o=nc(this,"children")||[];for(let r=0,l=o.length;r-1)return n.childNodes[o+1]}return null}get previousSibling(){const n=this.parent;if(n){const o=n.childNodes.indexOf(this);if(o>-1)return o>0?n.childNodes[o-1]:null}return null}contains(n,o=!0){return(this.childNodes||[]).some(r=>r===n||o&&r.contains(n))}remove(){const n=this.parent;n&&n.removeChild(this)}insertChild(n,o,r){if(!n)throw new Error("InsertChild error: child is required.");if(!(n instanceof Fa)){if(!r){const l=this.getChildren(!0);l.includes(n.data)||(typeof o=="undefined"||o<0?l.push(n.data):l.splice(o,0,n.data))}Object.assign(n,{parent:this,store:this.store}),n=e.reactive(new Fa(n)),n instanceof Fa&&n.initialize()}n.level=this.level+1,typeof o=="undefined"||o<0?this.childNodes.push(n):this.childNodes.splice(o,0,n),this.updateLeafState()}insertBefore(n,o){let r;o&&(r=this.childNodes.indexOf(o)),this.insertChild(n,r)}insertAfter(n,o){let r;o&&(r=this.childNodes.indexOf(o),r!==-1&&(r+=1)),this.insertChild(n,r)}removeChild(n){const o=this.getChildren()||[],r=o.indexOf(n.data);r>-1&&o.splice(r,1);const l=this.childNodes.indexOf(n);l>-1&&(this.store&&this.store.deregisterNode(n),n.parent=null,this.childNodes.splice(l,1)),this.updateLeafState()}removeChildByData(n){let o=null;for(let r=0;r{if(o){let l=this.parent;for(;l.level>0;)l.expanded=!0,l=l.parent}this.expanded=!0,n&&n(),this.childNodes.forEach(l=>{l.canFocus=!0})};this.shouldLoadData()?this.loadData(l=>{Array.isArray(l)&&(this.checked?this.setChecked(!0,!0):this.store.checkStrictly||tc(this),r())}):r()}doCreateChildren(n,o={}){n.forEach(r=>{this.insertChild(Object.assign({data:r},o),void 0,!0)})}collapse(){this.expanded=!1,this.childNodes.forEach(n=>{n.canFocus=!1})}shouldLoadData(){return this.store.lazy===!0&&this.store.load&&!this.loaded}updateLeafState(){if(this.store.lazy===!0&&this.loaded!==!0&&typeof this.isLeafByUser!="undefined"){this.isLeaf=this.isLeafByUser;return}const n=this.childNodes;if(!this.store.lazy||this.store.lazy===!0&&this.loaded===!0){this.isLeaf=!n||n.length===0;return}this.isLeaf=!1}setChecked(n,o,r,l){if(this.indeterminate=n==="half",this.checked=n===!0,this.store.checkStrictly)return;if(!(this.shouldLoadData()&&!this.store.checkDescendants)){const{all:s,allWithoutDisable:i}=rm(this.childNodes);!this.isLeaf&&!s&&i&&(this.checked=!1,n=!1);const c=()=>{if(o){const f=this.childNodes;for(let p=0,h=f.length;p{c(),tc(this)},{checked:n!==!1});return}else c()}const a=this.parent;!a||a.level===0||r||tc(a)}getChildren(n=!1){if(this.level===0)return this.data;const o=this.data;if(!o)return null;const r=this.store.props;let l="children";return r&&(l=r.children||"children"),o[l]===void 0&&(o[l]=null),n&&!o[l]&&(o[l]=[]),o[l]}updateChildren(){const n=this.getChildren()||[],o=this.childNodes.map(a=>a.data),r={},l=[];n.forEach((a,s)=>{const i=a[Il];!!i&&o.findIndex(f=>f[Il]===i)>=0?r[i]={index:s,data:a}:l.push({index:s,data:a})}),this.store.lazy||o.forEach(a=>{r[a[Il]]||this.removeChildByData(a)}),l.forEach(({index:a,data:s})=>{this.insertChild({data:s},a)}),this.updateLeafState()}loadData(n,o={}){if(this.store.lazy===!0&&this.store.load&&!this.loaded&&(!this.loading||Object.keys(o).length)){this.loading=!0;const r=l=>{this.childNodes=[],this.doCreateChildren(l,o),this.loaded=!0,this.loading=!1,this.updateLeafState(),n&&n.call(this,l)};this.store.load(this,r)}else n&&n.call(this)}}var lm=Fa;class rJ{constructor(n){this.currentNode=null,this.currentNodeKey=null;for(const o in n)Lt(n,o)&&(this[o]=n[o]);this.nodesMap={}}initialize(){if(this.root=new lm({data:this.data,store:this}),this.root.initialize(),this.lazy&&this.load){const n=this.load;n(this.root,o=>{this.root.doCreateChildren(o),this._initDefaultCheckedNodes()})}else this._initDefaultCheckedNodes()}filter(n){const o=this.filterNodeMethod,r=this.lazy,l=function(a){const s=a.root?a.root.childNodes:a.childNodes;if(s.forEach(i=>{i.visible=o.call(i,n,i.data,i),l(i)}),!a.visible&&s.length){let i=!0;i=!s.some(c=>c.visible),a.root?a.root.visible=i===!1:a.visible=i===!1}!n||a.visible&&!a.isLeaf&&!r&&a.expand()};l(this)}setData(n){n!==this.root.data?(this.root.setData(n),this._initDefaultCheckedNodes()):this.root.updateChildren()}getNode(n){if(n instanceof lm)return n;const o=nt(n)?nm(this.key,n):n;return this.nodesMap[o]||null}insertBefore(n,o){const r=this.getNode(o);r.parent.insertBefore({data:n},r)}insertAfter(n,o){const r=this.getNode(o);r.parent.insertAfter({data:n},r)}remove(n){const o=this.getNode(n);o&&o.parent&&(o===this.currentNode&&(this.currentNode=null),o.parent.removeChild(o))}append(n,o){const r=o?this.getNode(o):this.root;r&&r.insertChild({data:n})}_initDefaultCheckedNodes(){const n=this.defaultCheckedKeys||[],o=this.nodesMap;n.forEach(r=>{const l=o[r];l&&l.setChecked(!0,!this.checkStrictly)})}_initDefaultCheckedNode(n){(this.defaultCheckedKeys||[]).includes(n.key)&&n.setChecked(!0,!this.checkStrictly)}setDefaultCheckedKey(n){n!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=n,this._initDefaultCheckedNodes())}registerNode(n){const o=this.key;!n||!n.data||(o?n.key!==void 0&&(this.nodesMap[n.key]=n):this.nodesMap[n.id]=n)}deregisterNode(n){!this.key||!n||!n.data||(n.childNodes.forEach(r=>{this.deregisterNode(r)}),delete this.nodesMap[n.key])}getCheckedNodes(n=!1,o=!1){const r=[],l=function(a){(a.root?a.root.childNodes:a.childNodes).forEach(i=>{(i.checked||o&&i.indeterminate)&&(!n||n&&i.isLeaf)&&r.push(i.data),l(i)})};return l(this),r}getCheckedKeys(n=!1){return this.getCheckedNodes(n).map(o=>(o||{})[this.key])}getHalfCheckedNodes(){const n=[],o=function(r){(r.root?r.root.childNodes:r.childNodes).forEach(a=>{a.indeterminate&&n.push(a.data),o(a)})};return o(this),n}getHalfCheckedKeys(){return this.getHalfCheckedNodes().map(n=>(n||{})[this.key])}_getAllNodes(){const n=[],o=this.nodesMap;for(const r in o)Lt(o,r)&&n.push(o[r]);return n}updateChildren(n,o){const r=this.nodesMap[n];if(!r)return;const l=r.childNodes;for(let a=l.length-1;a>=0;a--){const s=l[a];this.remove(s.data)}for(let a=0,s=o.length;ac.level-i.level),a=Object.create(null),s=Object.keys(r);l.forEach(i=>i.setChecked(!1,!1));for(let i=0,c=l.length;i0;)a[p.data[n]]=!0,p=p.parent;if(f.isLeaf||this.checkStrictly){f.setChecked(!0,!1);continue}if(f.setChecked(!0,!0),o){f.setChecked(!1,!1);const h=function(g){g.childNodes.forEach(b=>{b.isLeaf||b.setChecked(!1,!1),h(b)})};h(f)}}}setCheckedNodes(n,o=!1){const r=this.key,l={};n.forEach(a=>{l[(a||{})[r]]=!0}),this._setCheckedKeys(r,o,l)}setCheckedKeys(n,o=!1){this.defaultCheckedKeys=n;const r=this.key,l={};n.forEach(a=>{l[a]=!0}),this._setCheckedKeys(r,o,l)}setDefaultExpandedKeys(n){n=n||[],this.defaultExpandedKeys=n,n.forEach(o=>{const r=this.getNode(o);r&&r.expand(null,this.autoExpandParent)})}setChecked(n,o,r){const l=this.getNode(n);l&&l.setChecked(!!o,r)}getCurrentNode(){return this.currentNode}setCurrentNode(n){const o=this.currentNode;o&&(o.isCurrent=!1),this.currentNode=n,this.currentNode.isCurrent=!0}setUserCurrentNode(n,o=!0){const r=n[this.key],l=this.nodesMap[r];this.setCurrentNode(l),o&&this.currentNode.level>1&&this.currentNode.parent.expand(null,!0)}setCurrentNodeKey(n,o=!0){if(n==null){this.currentNode&&(this.currentNode.isCurrent=!1),this.currentNode=null;return}const r=this.getNode(n);r&&(this.setCurrentNode(r),o&&this.currentNode.level>1&&this.currentNode.parent.expand(null,!0))}}const lJ=e.defineComponent({name:"ElTreeNodeContent",props:{node:{type:Object,required:!0},renderContent:Function},setup(t){const n=Q("tree"),o=e.inject("NodeInstance"),r=e.inject("RootTree");return()=>{const l=t.node,{data:a,store:s}=l;return t.renderContent?t.renderContent(e.h,{_self:o,node:l,data:a,store:s}):e.renderSlot(r.ctx.slots,"default",{node:l,data:a},()=>[e.h("span",{class:n.be("node","label")},[l.label])])}}});var aJ=se(lJ,[["__file","tree-node-content.vue"]]);function Z2(t){const n=e.inject("TreeNodeMap",null),o={treeNodeExpand:r=>{t.node!==r&&t.node.collapse()},children:[]};return n&&n.children.push(o),e.provide("TreeNodeMap",o),{broadcastExpanded:r=>{if(!!t.accordion)for(const l of o.children)l.treeNodeExpand(r)}}}const J2=Symbol("dragEvents");function sJ({props:t,ctx:n,el$:o,dropIndicator$:r,store:l}){const a=Q("tree"),s=e.ref({showDropIndicator:!1,draggingNode:null,dropNode:null,allowDrop:!0,dropType:null}),i=({event:u,treeNode:d})=>{if(typeof t.allowDrag=="function"&&!t.allowDrag(d.node))return u.preventDefault(),!1;u.dataTransfer.effectAllowed="move";try{u.dataTransfer.setData("text/plain","")}catch(p){}s.value.draggingNode=d,n.emit("node-drag-start",d.node,u)},c=({event:u,treeNode:d})=>{const p=d,h=s.value.dropNode;h&&h.node.id!==p.node.id&&un(h.$el,a.is("drop-inner"));const g=s.value.draggingNode;if(!g||!p)return;let m=!0,b=!0,y=!0,C=!0;typeof t.allowDrop=="function"&&(m=t.allowDrop(g.node,p.node,"prev"),C=b=t.allowDrop(g.node,p.node,"inner"),y=t.allowDrop(g.node,p.node,"next")),u.dataTransfer.dropEffect=b||m||y?"move":"none",(m||b||y)&&(h==null?void 0:h.node.id)!==p.node.id&&(h&&n.emit("node-drag-leave",g.node,h.node,u),n.emit("node-drag-enter",g.node,p.node,u)),(m||b||y)&&(s.value.dropNode=p),p.node.nextSibling===g.node&&(y=!1),p.node.previousSibling===g.node&&(m=!1),p.node.contains(g.node,!1)&&(b=!1),(g.node===p.node||g.node.contains(p.node))&&(m=!1,b=!1,y=!1);const k=p.$el.querySelector(`.${a.be("node","content")}`).getBoundingClientRect(),w=o.value.getBoundingClientRect();let E;const S=m?b?.25:y?.45:1:-1,_=y?b?.75:m?.55:0:1;let B=-9999;const M=u.clientY-k.top;Mk.height*_?E="after":b?E="inner":E="none";const P=p.$el.querySelector(`.${a.be("node","expand-icon")}`).getBoundingClientRect(),T=r.value;E==="before"?B=P.top-w.top:E==="after"&&(B=P.bottom-w.top),T.style.top=`${B}px`,T.style.left=`${P.right-w.left}px`,E==="inner"?so(p.$el,a.is("drop-inner")):un(p.$el,a.is("drop-inner")),s.value.showDropIndicator=E==="before"||E==="after",s.value.allowDrop=s.value.showDropIndicator||C,s.value.dropType=E,n.emit("node-drag-over",g.node,p.node,u)},f=u=>{const{draggingNode:d,dropType:p,dropNode:h}=s.value;if(u.preventDefault(),u.dataTransfer.dropEffect="move",d&&h){const g={data:d.node.data};p!=="none"&&d.node.remove(),p==="before"?h.node.parent.insertBefore(g,h.node):p==="after"?h.node.parent.insertAfter(g,h.node):p==="inner"&&h.node.insertChild(g),p!=="none"&&l.value.registerNode(g),un(h.$el,a.is("drop-inner")),n.emit("node-drag-end",d.node,h.node,p,u),p!=="none"&&n.emit("node-drop",d.node,h.node,p,u)}d&&!h&&n.emit("node-drag-end",d.node,null,p,u),s.value.showDropIndicator=!1,s.value.draggingNode=null,s.value.dropNode=null,s.value.allowDrop=!0};return e.provide(J2,{treeNodeDragStart:i,treeNodeDragOver:c,treeNodeDragEnd:f}),{dragState:s}}const iJ=e.defineComponent({name:"ElTreeNode",components:{ElCollapseTransition:Vi,ElCheckbox:En,NodeContent:aJ,ElIcon:fe,Loading:Zo},props:{node:{type:lm,default:()=>({})},props:{type:Object,default:()=>({})},accordion:Boolean,renderContent:Function,renderAfterExpand:Boolean,showCheckbox:{type:Boolean,default:!1}},emits:["node-expand"],setup(t,n){const o=Q("tree"),{broadcastExpanded:r}=Z2(t),l=e.inject("RootTree"),a=e.ref(!1),s=e.ref(!1),i=e.ref(null),c=e.ref(null),f=e.ref(null),u=e.inject(J2),d=e.getCurrentInstance();e.provide("NodeInstance",d),t.node.expanded&&(a.value=!0,s.value=!0);const p=l.props.props.children||"children";e.watch(()=>{const M=t.node.data[p];return M&&[...M]},()=>{t.node.updateChildren()}),e.watch(()=>t.node.indeterminate,M=>{m(t.node.checked,M)}),e.watch(()=>t.node.checked,M=>{m(M,t.node.indeterminate)}),e.watch(()=>t.node.expanded,M=>{e.nextTick(()=>a.value=M),M&&(s.value=!0)});const h=M=>nm(l.props.nodeKey,M.data),g=M=>{const P=t.props.class;if(!P)return{};let T;if(qe(P)){const{data:I}=M;T=P(I,M)}else T=P;return De(T)?{[T]:!0}:T},m=(M,P)=>{(i.value!==M||c.value!==P)&&l.ctx.emit("check-change",t.node.data,M,P),i.value=M,c.value=P},b=M=>{om(l.store,l.ctx.emit,()=>l.store.value.setCurrentNode(t.node)),l.currentNode.value=t.node,l.props.expandOnClickNode&&C(),l.props.checkOnClickNode&&!t.node.disabled&&k(null,{target:{checked:!t.node.checked}}),l.ctx.emit("node-click",t.node.data,t.node,d,M)},y=M=>{l.instance.vnode.props.onNodeContextmenu&&(M.stopPropagation(),M.preventDefault()),l.ctx.emit("node-contextmenu",M,t.node.data,t.node,d)},C=()=>{t.node.isLeaf||(a.value?(l.ctx.emit("node-collapse",t.node.data,t.node,d),t.node.collapse()):(t.node.expand(),n.emit("node-expand",t.node.data,t.node,d)))},k=(M,P)=>{t.node.setChecked(P.target.checked,!l.props.checkStrictly),e.nextTick(()=>{const T=l.store.value;l.ctx.emit("check",t.node.data,{checkedNodes:T.getCheckedNodes(),checkedKeys:T.getCheckedKeys(),halfCheckedNodes:T.getHalfCheckedNodes(),halfCheckedKeys:T.getHalfCheckedKeys()})})};return{ns:o,node$:f,tree:l,expanded:a,childNodeRendered:s,oldChecked:i,oldIndeterminate:c,getNodeKey:h,getNodeClass:g,handleSelectChange:m,handleClick:b,handleContextMenu:y,handleExpandIconClick:C,handleCheckChange:k,handleChildNodeExpand:(M,P,T)=>{r(P),l.ctx.emit("node-expand",M,P,T)},handleDragStart:M=>{!l.props.draggable||u.treeNodeDragStart({event:M,treeNode:t})},handleDragOver:M=>{M.preventDefault(),l.props.draggable&&u.treeNodeDragOver({event:M,treeNode:{$el:f.value,node:t.node}})},handleDrop:M=>{M.preventDefault()},handleDragEnd:M=>{!l.props.draggable||u.treeNodeDragEnd(M)},CaretRight:ky}}}),cJ=["aria-expanded","aria-disabled","aria-checked","draggable","data-key"],dJ=["aria-expanded"];function fJ(t,n,o,r,l,a){const s=e.resolveComponent("el-icon"),i=e.resolveComponent("el-checkbox"),c=e.resolveComponent("loading"),f=e.resolveComponent("node-content"),u=e.resolveComponent("el-tree-node"),d=e.resolveComponent("el-collapse-transition");return e.withDirectives((e.openBlock(),e.createElementBlock("div",{ref:"node$",class:e.normalizeClass([t.ns.b("node"),t.ns.is("expanded",t.expanded),t.ns.is("current",t.node.isCurrent),t.ns.is("hidden",!t.node.visible),t.ns.is("focusable",!t.node.disabled),t.ns.is("checked",!t.node.disabled&&t.node.checked),t.getNodeClass(t.node)]),role:"treeitem",tabindex:"-1","aria-expanded":t.expanded,"aria-disabled":t.node.disabled,"aria-checked":t.node.checked,draggable:t.tree.props.draggable,"data-key":t.getNodeKey(t.node),onClick:n[1]||(n[1]=e.withModifiers((...p)=>t.handleClick&&t.handleClick(...p),["stop"])),onContextmenu:n[2]||(n[2]=(...p)=>t.handleContextMenu&&t.handleContextMenu(...p)),onDragstart:n[3]||(n[3]=e.withModifiers((...p)=>t.handleDragStart&&t.handleDragStart(...p),["stop"])),onDragover:n[4]||(n[4]=e.withModifiers((...p)=>t.handleDragOver&&t.handleDragOver(...p),["stop"])),onDragend:n[5]||(n[5]=e.withModifiers((...p)=>t.handleDragEnd&&t.handleDragEnd(...p),["stop"])),onDrop:n[6]||(n[6]=e.withModifiers((...p)=>t.handleDrop&&t.handleDrop(...p),["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.be("node","content")),style:e.normalizeStyle({paddingLeft:(t.node.level-1)*t.tree.props.indent+"px"})},[t.tree.props.icon||t.CaretRight?(e.openBlock(),e.createBlock(s,{key:0,class:e.normalizeClass([t.ns.be("node","expand-icon"),t.ns.is("leaf",t.node.isLeaf),{expanded:!t.node.isLeaf&&t.expanded}]),onClick:e.withModifiers(t.handleExpandIconClick,["stop"])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tree.props.icon||t.CaretRight)))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0),t.showCheckbox?(e.openBlock(),e.createBlock(i,{key:1,"model-value":t.node.checked,indeterminate:t.node.indeterminate,disabled:!!t.node.disabled,onClick:n[0]||(n[0]=e.withModifiers(()=>{},["stop"])),onChange:t.handleCheckChange},null,8,["model-value","indeterminate","disabled","onChange"])):e.createCommentVNode("v-if",!0),t.node.loading?(e.openBlock(),e.createBlock(s,{key:2,class:e.normalizeClass([t.ns.be("node","loading-icon"),t.ns.is("loading")])},{default:e.withCtx(()=>[e.createVNode(c)]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.createVNode(f,{node:t.node,"render-content":t.renderContent},null,8,["node","render-content"])],6),e.createVNode(d,null,{default:e.withCtx(()=>[!t.renderAfterExpand||t.childNodeRendered?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(t.ns.be("node","children")),role:"group","aria-expanded":t.expanded},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.childNodes,p=>(e.openBlock(),e.createBlock(u,{key:t.getNodeKey(p),"render-content":t.renderContent,"render-after-expand":t.renderAfterExpand,"show-checkbox":t.showCheckbox,node:p,accordion:t.accordion,props:t.props,onNodeExpand:t.handleChildNodeExpand},null,8,["render-content","render-after-expand","show-checkbox","node","accordion","props","onNodeExpand"]))),128))],10,dJ)),[[e.vShow,t.expanded]]):e.createCommentVNode("v-if",!0)]),_:1})],42,cJ)),[[e.vShow,t.node.visible]])}var uJ=se(iJ,[["render",fJ],["__file","tree-node.vue"]]);function pJ({el$:t},n){const o=Q("tree"),r=e.shallowRef([]),l=e.shallowRef([]);e.onMounted(()=>{s()}),e.onUpdated(()=>{r.value=Array.from(t.value.querySelectorAll("[role=treeitem]")),l.value=Array.from(t.value.querySelectorAll("input[type=checkbox]"))}),e.watch(l,i=>{i.forEach(c=>{c.setAttribute("tabindex","-1")})}),rt(t,"keydown",i=>{const c=i.target;if(!c.className.includes(o.b("node")))return;const f=i.code;r.value=Array.from(t.value.querySelectorAll(`.${o.is("focusable")}[role=treeitem]`));const u=r.value.indexOf(c);let d;if([pe.up,pe.down].includes(f)){if(i.preventDefault(),f===pe.up){d=u===-1?0:u!==0?u-1:r.value.length-1;const h=d;for(;!n.value.getNode(r.value[d].dataset.key).canFocus;){if(d--,d===h){d=-1;break}d<0&&(d=r.value.length-1)}}else{d=u===-1?0:u=r.value.length&&(d=0)}}d!==-1&&r.value[d].focus()}[pe.left,pe.right].includes(f)&&(i.preventDefault(),c.click());const p=c.querySelector('[type="checkbox"]');[pe.enter,pe.space].includes(f)&&p&&(i.preventDefault(),p.click())});const s=()=>{var i;r.value=Array.from(t.value.querySelectorAll(`.${o.is("focusable")}[role=treeitem]`)),l.value=Array.from(t.value.querySelectorAll("input[type=checkbox]"));const c=t.value.querySelectorAll(`.${o.is("checked")}[role=treeitem]`);if(c.length){c[0].setAttribute("tabindex","0");return}(i=r.value[0])==null||i.setAttribute("tabindex","0")}}const mJ=e.defineComponent({name:"ElTree",components:{ElTreeNode:uJ},props:{data:{type:Array,default:()=>[]},emptyText:{type:String},renderAfterExpand:{type:Boolean,default:!0},nodeKey:String,checkStrictly:Boolean,defaultExpandAll:Boolean,expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkDescendants:{type:Boolean,default:!1},autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:Array,defaultExpandedKeys:Array,currentNodeKey:[String,Number],renderContent:Function,showCheckbox:{type:Boolean,default:!1},draggable:{type:Boolean,default:!1},allowDrag:Function,allowDrop:Function,props:{type:Object,default:()=>({children:"children",label:"label",disabled:"disabled"})},lazy:{type:Boolean,default:!1},highlightCurrent:Boolean,load:Function,filterNodeMethod:Function,accordion:Boolean,indent:{type:Number,default:18},icon:{type:ot}},emits:["check-change","current-change","node-click","node-contextmenu","node-collapse","node-expand","check","node-drag-start","node-drag-end","node-drop","node-drag-leave","node-drag-enter","node-drag-over"],setup(t,n){const{t:o}=Ke(),r=Q("tree"),l=e.ref(new rJ({key:t.nodeKey,data:t.data,lazy:t.lazy,props:t.props,load:t.load,currentNodeKey:t.currentNodeKey,checkStrictly:t.checkStrictly,checkDescendants:t.checkDescendants,defaultCheckedKeys:t.defaultCheckedKeys,defaultExpandedKeys:t.defaultExpandedKeys,autoExpandParent:t.autoExpandParent,defaultExpandAll:t.defaultExpandAll,filterNodeMethod:t.filterNodeMethod}));l.value.initialize();const a=e.ref(l.value.root),s=e.ref(null),i=e.ref(null),c=e.ref(null),{broadcastExpanded:f}=Z2(t),{dragState:u}=sJ({props:t,ctx:n,el$:i,dropIndicator$:c,store:l});pJ({el$:i},l);const d=e.computed(()=>{const{childNodes:$}=a.value;return!$||$.length===0||$.every(({visible:R})=>!R)});e.watch(()=>t.currentNodeKey,$=>{l.value.setCurrentNodeKey($)}),e.watch(()=>t.defaultCheckedKeys,$=>{l.value.setDefaultCheckedKey($)}),e.watch(()=>t.defaultExpandedKeys,$=>{l.value.setDefaultExpandedKeys($)}),e.watch(()=>t.data,$=>{l.value.setData($)},{deep:!0}),e.watch(()=>t.checkStrictly,$=>{l.value.checkStrictly=$});const p=$=>{if(!t.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");l.value.filter($)},h=$=>nm(t.nodeKey,$.data),g=$=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in getNodePath");const R=l.value.getNode($);if(!R)return[];const N=[R.data];let A=R.parent;for(;A&&A!==a.value;)N.push(A.data),A=A.parent;return N.reverse()},m=($,R)=>l.value.getCheckedNodes($,R),b=$=>l.value.getCheckedKeys($),y=()=>{const $=l.value.getCurrentNode();return $?$.data:null},C=()=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in getCurrentKey");const $=y();return $?$[t.nodeKey]:null},k=($,R)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedNodes");l.value.setCheckedNodes($,R)},w=($,R)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedKeys");l.value.setCheckedKeys($,R)},E=($,R,N)=>{l.value.setChecked($,R,N)},S=()=>l.value.getHalfCheckedNodes(),_=()=>l.value.getHalfCheckedKeys(),B=($,R=!0)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentNode");om(l,n.emit,()=>l.value.setUserCurrentNode($,R))},M=($,R=!0)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentKey");om(l,n.emit,()=>l.value.setCurrentNodeKey($,R))},P=$=>l.value.getNode($),T=$=>{l.value.remove($)},I=($,R)=>{l.value.append($,R)},v=($,R)=>{l.value.insertBefore($,R)},O=($,R)=>{l.value.insertAfter($,R)},D=($,R,N)=>{f(R),n.emit("node-expand",$,R,N)},z=($,R)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");l.value.updateChildren($,R)};return e.provide("RootTree",{ctx:n,props:t,store:l,root:a,currentNode:s,instance:e.getCurrentInstance()}),e.provide(Gn,void 0),{ns:r,store:l,root:a,currentNode:s,dragState:u,el$:i,dropIndicator$:c,isEmpty:d,filter:p,getNodeKey:h,getNodePath:g,getCheckedNodes:m,getCheckedKeys:b,getCurrentNode:y,getCurrentKey:C,setCheckedNodes:k,setCheckedKeys:w,setChecked:E,getHalfCheckedNodes:S,getHalfCheckedKeys:_,setCurrentNode:B,setCurrentKey:M,t:o,getNode:P,remove:T,append:I,insertBefore:v,insertAfter:O,handleNodeExpand:D,updateKeyChildren:z}}});function hJ(t,n,o,r,l,a){const s=e.resolveComponent("el-tree-node");return e.openBlock(),e.createElementBlock("div",{ref:"el$",class:e.normalizeClass([t.ns.b(),t.ns.is("dragging",!!t.dragState.draggingNode),t.ns.is("drop-not-allow",!t.dragState.allowDrop),t.ns.is("drop-inner",t.dragState.dropType==="inner"),{[t.ns.m("highlight-current")]:t.highlightCurrent}]),role:"tree"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.root.childNodes,i=>(e.openBlock(),e.createBlock(s,{key:t.getNodeKey(i),node:i,props:t.props,accordion:t.accordion,"render-after-expand":t.renderAfterExpand,"show-checkbox":t.showCheckbox,"render-content":t.renderContent,onNodeExpand:t.handleNodeExpand},null,8,["node","props","accordion","render-after-expand","show-checkbox","render-content","onNodeExpand"]))),128)),t.isEmpty?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(t.ns.e("empty-block"))},[e.renderSlot(t.$slots,"empty",{},()=>{var i;return[e.createElementVNode("span",{class:e.normalizeClass(t.ns.e("empty-text"))},e.toDisplayString((i=t.emptyText)!=null?i:t.t("el.tree.emptyText")),3)]})],2)):e.createCommentVNode("v-if",!0),e.withDirectives(e.createElementVNode("div",{ref:"dropIndicator$",class:e.normalizeClass(t.ns.e("drop-indicator"))},null,2),[[e.vShow,t.dragState.showDropIndicator]])],2)}var oc=se(mJ,[["render",hJ],["__file","tree.vue"]]);oc.install=t=>{t.component(oc.name,oc)};const rc=oc,Q2=rc,gJ=(t,{attrs:n,emit:o},{tree:r,key:l})=>{const a=Q("tree-select"),s={...ro(e.toRefs(t),Object.keys(sr.props)),...n,"onUpdate:modelValue":i=>o(Ie,i),valueKey:l,popperClass:e.computed(()=>{const i=[a.e("popper")];return t.popperClass&&i.push(t.popperClass),i.join(" ")}),filterMethod:(i="")=>{t.filterMethod&&t.filterMethod(i),e.nextTick(()=>{var c;(c=r.value)==null||c.filter(i)})},onVisibleChange:i=>{var c;(c=n.onVisibleChange)==null||c.call(n,i),t.filterable&&i&&s.filterMethod()}};return s};var yJ=e.defineComponent({extends:Va,setup(t,n){const o=Va.setup(t,n);delete o.selectOptionClick;const r=e.getCurrentInstance().proxy;return e.nextTick(()=>{o.select.cachedOptions.get(r.value)||o.select.onOptionCreate(r)}),o},methods:{selectOptionClick(){this.$el.parentElement.click()}}});function am(t){return t||t===0}function sm(t){return Array.isArray(t)&&t.length}function Ha(t){return Array.isArray(t)?t:am(t)?[t]:[]}function lc(t,n,o,r,l){for(let a=0;a{e.watch(()=>t.modelValue,()=>{t.showCheckbox&&e.nextTick(()=>{const p=a.value;p&&!tn(p.getCheckedKeys(),Ha(t.modelValue))&&p.setCheckedKeys(Ha(t.modelValue))})},{immediate:!0,deep:!0});const i=e.computed(()=>({value:s.value,label:"label",children:"children",disabled:"disabled",isLeaf:"isLeaf",...t.props})),c=(p,h)=>{var g;const m=i.value[p];return qe(m)?m(h,(g=a.value)==null?void 0:g.getNode(c("value",h))):h[m]},f=Ha(t.modelValue).map(p=>lc(t.data||[],h=>c("value",h)===p,h=>c("children",h),(h,g,m,b)=>b&&c("value",b))).filter(p=>am(p)),u=e.computed(()=>{if(!t.renderAfterExpand&&!t.lazy)return[];const p=[];return eN(t.data.concat(t.cacheData),h=>{const g=c("value",h);p.push({value:g,currentLabel:c("label",h),isDisabled:c("disabled",h)})},h=>c("children",h)),p}),d=e.computed(()=>u.value.reduce((p,h)=>({...p,[h.value]:h}),{}));return{...ro(e.toRefs(t),Object.keys(rc.props)),...n,nodeKey:s,expandOnClickNode:e.computed(()=>!t.checkStrictly&&t.expandOnClickNode),defaultExpandedKeys:e.computed(()=>t.defaultExpandedKeys?t.defaultExpandedKeys.concat(f):f),renderContent:(p,{node:h,data:g,store:m})=>p(yJ,{value:c("value",g),label:c("label",g),disabled:c("disabled",g)},t.renderContent?()=>t.renderContent(p,{node:h,data:g,store:m}):o.default?()=>o.default({node:h,data:g,store:m}):void 0),filterNodeMethod:(p,h,g)=>{var m;return t.filterNodeMethod?t.filterNodeMethod(p,h,g):p?(m=c("label",h))==null?void 0:m.includes(p):!0},onNodeClick:(p,h,g)=>{var m,b,y;if((m=n.onNodeClick)==null||m.call(n,p,h,g),!(t.showCheckbox&&t.checkOnClickNode))if(!t.showCheckbox&&(t.checkStrictly||h.isLeaf)){if(!c("disabled",p)){const C=(b=l.value)==null?void 0:b.options.get(c("value",p));(y=l.value)==null||y.handleOptionSelect(C)}}else t.expandOnClickNode&&g.proxy.handleExpandIconClick()},onCheck:(p,h)=>{if(!t.showCheckbox)return;const g=c("value",p),m=h.checkedKeys,b=t.multiple?Ha(t.modelValue).filter(C=>C in d.value&&!a.value.getNode(C)&&!m.includes(C)):[],y=m.concat(b);if(t.checkStrictly)r(Ie,t.multiple?y:y.includes(g)?g:void 0);else if(t.multiple)r(Ie,a.value.getCheckedKeys(!0));else{const C=lc([p],E=>!sm(c("children",E))&&!c("disabled",E),E=>c("children",E)),k=C?c("value",C):void 0,w=am(t.modelValue)&&!!lc([p],E=>c("value",E)===t.modelValue,E=>c("children",E));r(Ie,k===t.modelValue||w?void 0:k)}e.nextTick(()=>{var C;const k=Ha(t.modelValue);a.value.setCheckedKeys(k),(C=n.onCheck)==null||C.call(n,p,{checkedKeys:a.value.getCheckedKeys(),checkedNodes:a.value.getCheckedNodes(),halfCheckedKeys:a.value.getHalfCheckedKeys(),halfCheckedNodes:a.value.getHalfCheckedNodes()})})},cacheOptions:u}};var CJ=e.defineComponent({props:{data:{type:Array,default:()=>[]}},setup(t){const n=e.inject(wl);return e.watch(()=>t.data,()=>{var o;t.data.forEach(l=>{n.cachedOptions.has(l.value)||n.cachedOptions.set(l.value,l)});const r=((o=n.selectWrapper)==null?void 0:o.querySelectorAll("input"))||[];Array.from(r).includes(document.activeElement)||n.setSelected()},{flush:"post",immediate:!0}),()=>{}}});const wJ=e.defineComponent({name:"ElTreeSelect",inheritAttrs:!1,props:{...sr.props,...rc.props,cacheData:{type:Array,default:()=>[]}},setup(t,n){const{slots:o,expose:r}=n,l=e.ref(),a=e.ref(),s=e.computed(()=>t.nodeKey||t.valueKey||"value"),i=gJ(t,n,{select:l,tree:a,key:s}),{cacheOptions:c,...f}=bJ(t,n,{select:l,tree:a,key:s}),u=e.reactive({});return r(u),e.onMounted(()=>{Object.assign(u,{...ro(a.value,["filter","updateKeyChildren","getCheckedNodes","setCheckedNodes","getCheckedKeys","setCheckedKeys","setChecked","getHalfCheckedNodes","getHalfCheckedKeys","getCurrentKey","getCurrentNode","setCurrentKey","setCurrentNode","getNode","remove","append","insertBefore","insertAfter"]),...ro(l.value,["focus","blur"])})}),()=>e.h(sr,e.reactive({...i,ref:d=>l.value=d}),{...o,default:()=>[e.h(CJ,{data:c.value}),e.h(rc,e.reactive({...f,ref:d=>a.value=d}))]})}});var ac=se(wJ,[["__file","tree-select.vue"]]);ac.install=t=>{t.component(ac.name,ac)};const tN=ac,im=Symbol(),kJ={key:-1,level:-1,data:{}};var Ka=(t=>(t.KEY="id",t.LABEL="label",t.CHILDREN="children",t.DISABLED="disabled",t))(Ka||{}),cm=(t=>(t.ADD="add",t.DELETE="delete",t))(cm||{});const nN={type:Number,default:26},SJ=le({data:{type:W(Array),default:()=>ut([])},emptyText:{type:String},height:{type:Number,default:200},props:{type:W(Object),default:()=>ut({children:"children",label:"label",disabled:"disabled",value:"id"})},highlightCurrent:{type:Boolean,default:!1},showCheckbox:{type:Boolean,default:!1},defaultCheckedKeys:{type:W(Array),default:()=>ut([])},checkStrictly:{type:Boolean,default:!1},defaultExpandedKeys:{type:W(Array),default:()=>ut([])},indent:{type:Number,default:16},itemSize:nN,icon:{type:ot},expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:{type:Boolean,default:!1},currentNodeKey:{type:W([String,Number])},accordion:{type:Boolean,default:!1},filterMethod:{type:W(Function)},perfMode:{type:Boolean,default:!0}}),EJ=le({node:{type:W(Object),default:()=>ut(kJ)},expanded:{type:Boolean,default:!1},checked:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},showCheckbox:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},current:{type:Boolean,default:!1},hiddenExpandIcon:{type:Boolean,default:!1},itemSize:nN}),NJ=le({node:{type:W(Object),required:!0}}),oN="node-click",rN="node-expand",lN="node-collapse",aN="current-change",sN="check",iN="check-change",cN="node-contextmenu",_J={[oN]:(t,n,o)=>t&&n&&o,[rN]:(t,n)=>t&&n,[lN]:(t,n)=>t&&n,[aN]:(t,n)=>t&&n,[sN]:(t,n)=>t&&n,[iN]:(t,n)=>t&&typeof n=="boolean",[cN]:(t,n,o)=>t&&n&&o},BJ={click:(t,n)=>!!(t&&n),toggle:t=>!!t,check:(t,n)=>t&&typeof n=="boolean"};function $J(t,n){const o=e.ref(new Set),r=e.ref(new Set),{emit:l}=e.getCurrentInstance();e.watch([()=>n.value,()=>t.defaultCheckedKeys],()=>e.nextTick(()=>{C(t.defaultCheckedKeys)}),{immediate:!0});const a=()=>{if(!n.value||!t.showCheckbox||t.checkStrictly)return;const{levelTreeNodeMap:k,maxLevel:w}=n.value,E=o.value,S=new Set;for(let _=w-1;_>=1;--_){const B=k.get(_);!B||B.forEach(M=>{const P=M.children;if(P){let T=!0,I=!1;for(const v of P){const O=v.key;if(E.has(O))I=!0;else if(S.has(O)){T=!1,I=!0;break}else T=!1}T?E.add(M.key):I?(S.add(M.key),E.delete(M.key)):(E.delete(M.key),S.delete(M.key))}})}r.value=S},s=k=>o.value.has(k.key),i=k=>r.value.has(k.key),c=(k,w,E=!0)=>{const S=o.value,_=(B,M)=>{S[M?cm.ADD:cm.DELETE](B.key);const P=B.children;!t.checkStrictly&&P&&P.forEach(T=>{T.disabled||_(T,M)})};_(k,w),a(),E&&f(k,w)},f=(k,w)=>{const{checkedNodes:E,checkedKeys:S}=g(),{halfCheckedNodes:_,halfCheckedKeys:B}=m();l(sN,k.data,{checkedKeys:S,checkedNodes:E,halfCheckedKeys:B,halfCheckedNodes:_}),l(iN,k.data,w)};function u(k=!1){return g(k).checkedKeys}function d(k=!1){return g(k).checkedNodes}function p(){return m().halfCheckedKeys}function h(){return m().halfCheckedNodes}function g(k=!1){const w=[],E=[];if((n==null?void 0:n.value)&&t.showCheckbox){const{treeNodeMap:S}=n.value;o.value.forEach(_=>{const B=S.get(_);B&&(!k||k&&B.isLeaf)&&(E.push(_),w.push(B.data))})}return{checkedKeys:E,checkedNodes:w}}function m(){const k=[],w=[];if((n==null?void 0:n.value)&&t.showCheckbox){const{treeNodeMap:E}=n.value;r.value.forEach(S=>{const _=E.get(S);_&&(w.push(S),k.push(_.data))})}return{halfCheckedNodes:k,halfCheckedKeys:w}}function b(k){o.value.clear(),r.value.clear(),C(k)}function y(k,w){if((n==null?void 0:n.value)&&t.showCheckbox){const E=n.value.treeNodeMap.get(k);E&&c(E,w,!1)}}function C(k){if(n!=null&&n.value){const{treeNodeMap:w}=n.value;if(t.showCheckbox&&w&&k)for(const E of k){const S=w.get(E);S&&!s(S)&&c(S,!0,!1)}}}return{updateCheckedKeys:a,toggleCheckbox:c,isChecked:s,isIndeterminate:i,getCheckedKeys:u,getCheckedNodes:d,getHalfCheckedKeys:p,getHalfCheckedNodes:h,setChecked:y,setCheckedKeys:b}}function TJ(t,n){const o=e.ref(new Set([])),r=e.ref(new Set([])),l=e.computed(()=>qe(t.filterMethod));function a(i){var c;if(!l.value)return;const f=new Set,u=r.value,d=o.value,p=[],h=((c=n.value)==null?void 0:c.treeNodes)||[],g=t.filterMethod;d.clear();function m(b){b.forEach(y=>{p.push(y),g!=null&&g(i,y.data)?p.forEach(k=>{f.add(k.key)}):y.isLeaf&&d.add(y.key);const C=y.children;if(C&&m(C),!y.isLeaf){if(!f.has(y.key))d.add(y.key);else if(C){let k=!0;for(const w of C)if(!d.has(w.key)){k=!1;break}k?u.add(y.key):u.delete(y.key)}}p.pop()})}return m(h),f}function s(i){return r.value.has(i.key)}return{hiddenExpandIconKeySet:r,hiddenNodeKeySet:o,doFilter:a,isForceHiddenExpandIcon:s}}function vJ(t,n){const o=e.ref(new Set(t.defaultExpandedKeys)),r=e.ref(),l=e.shallowRef();e.watch(()=>t.currentNodeKey,U=>{r.value=U},{immediate:!0}),e.watch(()=>t.data,U=>{Y(U)},{immediate:!0});const{isIndeterminate:a,isChecked:s,toggleCheckbox:i,getCheckedKeys:c,getCheckedNodes:f,getHalfCheckedKeys:u,getHalfCheckedNodes:d,setChecked:p,setCheckedKeys:h}=$J(t,l),{doFilter:g,hiddenNodeKeySet:m,isForceHiddenExpandIcon:b}=TJ(t,l),y=e.computed(()=>{var U;return((U=t.props)==null?void 0:U.value)||Ka.KEY}),C=e.computed(()=>{var U;return((U=t.props)==null?void 0:U.children)||Ka.CHILDREN}),k=e.computed(()=>{var U;return((U=t.props)==null?void 0:U.disabled)||Ka.DISABLED}),w=e.computed(()=>{var U;return((U=t.props)==null?void 0:U.label)||Ka.LABEL}),E=e.computed(()=>{const U=o.value,re=m.value,te=[],oe=l.value&&l.value.treeNodes||[];function ie(){const ye=[];for(let Ne=oe.length-1;Ne>=0;--Ne)ye.push(oe[Ne]);for(;ye.length;){const Ne=ye.pop();if(!!Ne&&(re.has(Ne.key)||te.push(Ne),U.has(Ne.key))){const Te=Ne.children;if(Te){const Pe=Te.length;for(let he=Pe-1;he>=0;--he)ye.push(Te[he])}}}}return ie(),te}),S=e.computed(()=>E.value.length>0);function _(U){const re=new Map,te=new Map;let oe=1;function ie(Ne,Te=1,Pe=void 0){var he;const Ce=[];for(const ge of Ne){const me=P(ge),_e={level:Te,key:me,data:ge};_e.label=I(ge),_e.parent=Pe;const $e=M(ge);_e.disabled=T(ge),_e.isLeaf=!$e||$e.length===0,$e&&$e.length&&(_e.children=ie($e,Te+1,_e)),Ce.push(_e),re.set(me,_e),te.has(Te)||te.set(Te,[]),(he=te.get(Te))==null||he.push(_e)}return Te>oe&&(oe=Te),Ce}const ye=ie(U);return{treeNodeMap:re,levelTreeNodeMap:te,maxLevel:oe,treeNodes:ye}}function B(U){const re=g(U);re&&(o.value=re)}function M(U){return U[C.value]}function P(U){return U?U[y.value]:""}function T(U){return U[k.value]}function I(U){return U[w.value]}function v(U){o.value.has(U.key)?N(U):R(U)}function O(U){o.value=new Set(U)}function D(U,re){n(oN,U.data,U,re),z(U),t.expandOnClickNode&&v(U),t.showCheckbox&&t.checkOnClickNode&&!U.disabled&&i(U,!s(U),!0)}function z(U){H(U)||(r.value=U.key,n(aN,U.data,U))}function $(U,re){i(U,re)}function R(U){const re=o.value;if(l.value&&t.accordion){const{treeNodeMap:te}=l.value;re.forEach(oe=>{const ie=te.get(oe);U&&U.level===(ie==null?void 0:ie.level)&&re.delete(oe)})}re.add(U.key),n(rN,U.data,U)}function N(U){o.value.delete(U.key),n(lN,U.data,U)}function A(U){return o.value.has(U.key)}function x(U){return!!U.disabled}function H(U){const re=r.value;return re!==void 0&&re===U.key}function K(){var U,re;if(!!r.value)return(re=(U=l.value)==null?void 0:U.treeNodeMap.get(r.value))==null?void 0:re.data}function q(){return r.value}function ne(U){r.value=U}function Y(U){e.nextTick(()=>l.value=_(U))}function Z(U){var re;const te=nt(U)?P(U):U;return(re=l.value)==null?void 0:re.treeNodeMap.get(te)}return{tree:l,flattenTree:E,isNotEmpty:S,getKey:P,getChildren:M,toggleExpand:v,toggleCheckbox:i,isExpanded:A,isChecked:s,isIndeterminate:a,isDisabled:x,isCurrent:H,isForceHiddenExpandIcon:b,handleNodeClick:D,handleNodeCheck:$,getCurrentNode:K,getCurrentKey:q,setCurrentKey:ne,getCheckedKeys:c,getCheckedNodes:f,getHalfCheckedKeys:u,getHalfCheckedNodes:d,setChecked:p,setCheckedKeys:h,filter:B,setData:Y,getNode:Z,expandNode:R,collapseNode:N,setExpandedKeys:O}}var VJ=e.defineComponent({name:"ElTreeNodeContent",props:NJ,setup(t){const n=e.inject(im),o=Q("tree");return()=>{const r=t.node,{data:l}=r;return n!=null&&n.ctx.slots.default?n.ctx.slots.default({node:r,data:l}):e.h("span",{class:o.be("node","label")},[r==null?void 0:r.label])}}});const MJ=["aria-expanded","aria-disabled","aria-checked","data-key","onClick"],IJ=e.defineComponent({name:"ElTreeNode"}),PJ=e.defineComponent({...IJ,props:EJ,emits:BJ,setup(t,{emit:n}){const o=t,r=e.inject(im),l=Q("tree"),a=e.computed(()=>{var d;return(d=r==null?void 0:r.props.indent)!=null?d:16}),s=e.computed(()=>{var d;return(d=r==null?void 0:r.props.icon)!=null?d:ky}),i=d=>{n("click",o.node,d)},c=()=>{n("toggle",o.node)},f=d=>{n("check",o.node,d)},u=d=>{var p,h,g,m;(g=(h=(p=r==null?void 0:r.instance)==null?void 0:p.vnode)==null?void 0:h.props)!=null&&g.onNodeContextmenu&&(d.stopPropagation(),d.preventDefault()),r==null||r.ctx.emit(cN,d,(m=o.node)==null?void 0:m.data,o.node)};return(d,p)=>{var h,g,m;return e.openBlock(),e.createElementBlock("div",{ref:"node$",class:e.normalizeClass([e.unref(l).b("node"),e.unref(l).is("expanded",d.expanded),e.unref(l).is("current",d.current),e.unref(l).is("focusable",!d.disabled),e.unref(l).is("checked",!d.disabled&&d.checked)]),role:"treeitem",tabindex:"-1","aria-expanded":d.expanded,"aria-disabled":d.disabled,"aria-checked":d.checked,"data-key":(h=d.node)==null?void 0:h.key,onClick:e.withModifiers(i,["stop"]),onContextmenu:u},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(l).be("node","content")),style:e.normalizeStyle({paddingLeft:`${(d.node.level-1)*e.unref(a)}px`,height:d.itemSize+"px"})},[e.unref(s)?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass([e.unref(l).is("leaf",!!((g=d.node)!=null&&g.isLeaf)),e.unref(l).is("hidden",d.hiddenExpandIcon),{expanded:!((m=d.node)!=null&&m.isLeaf)&&d.expanded},e.unref(l).be("node","expand-icon")]),onClick:e.withModifiers(c,["stop"])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(s))))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0),d.showCheckbox?(e.openBlock(),e.createBlock(e.unref(En),{key:1,"model-value":d.checked,indeterminate:d.indeterminate,disabled:d.disabled,onChange:f,onClick:p[0]||(p[0]=e.withModifiers(()=>{},["stop"]))},null,8,["model-value","indeterminate","disabled"])):e.createCommentVNode("v-if",!0),e.createVNode(e.unref(VJ),{node:d.node},null,8,["node"])],6)],42,MJ)}}});var RJ=se(PJ,[["__file","tree-node.vue"]]);const OJ=e.defineComponent({name:"ElTreeV2"}),AJ=e.defineComponent({...OJ,props:SJ,emits:_J,setup(t,{expose:n,emit:o}){const r=t,l=e.useSlots(),a=e.computed(()=>r.itemSize);e.provide(im,{ctx:{emit:o,slots:l},props:r,instance:e.getCurrentInstance()}),e.provide(Gn,void 0);const{t:s}=Ke(),i=Q("tree"),{flattenTree:c,isNotEmpty:f,toggleExpand:u,isExpanded:d,isIndeterminate:p,isChecked:h,isDisabled:g,isCurrent:m,isForceHiddenExpandIcon:b,handleNodeClick:y,handleNodeCheck:C,toggleCheckbox:k,getCurrentNode:w,getCurrentKey:E,setCurrentKey:S,getCheckedKeys:_,getCheckedNodes:B,getHalfCheckedKeys:M,getHalfCheckedNodes:P,setChecked:T,setCheckedKeys:I,filter:v,setData:O,getNode:D,expandNode:z,collapseNode:$,setExpandedKeys:R}=vJ(r,o);return n({toggleCheckbox:k,getCurrentNode:w,getCurrentKey:E,setCurrentKey:S,getCheckedKeys:_,getCheckedNodes:B,getHalfCheckedKeys:M,getHalfCheckedNodes:P,setChecked:T,setCheckedKeys:I,filter:v,setData:O,getNode:D,expandNode:z,collapseNode:$,setExpandedKeys:R}),(N,A)=>{var x;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(i).b(),{[e.unref(i).m("highlight-current")]:N.highlightCurrent}]),role:"tree"},[e.unref(f)?(e.openBlock(),e.createBlock(e.unref(Np),{key:0,"class-name":e.unref(i).b("virtual-list"),data:e.unref(c),total:e.unref(c).length,height:N.height,"item-size":e.unref(a),"perf-mode":N.perfMode},{default:e.withCtx(({data:H,index:K,style:q})=>[(e.openBlock(),e.createBlock(RJ,{key:H[K].key,style:e.normalizeStyle(q),node:H[K],expanded:e.unref(d)(H[K]),"show-checkbox":N.showCheckbox,checked:e.unref(h)(H[K]),indeterminate:e.unref(p)(H[K]),"item-size":e.unref(a),disabled:e.unref(g)(H[K]),current:e.unref(m)(H[K]),"hidden-expand-icon":e.unref(b)(H[K]),onClick:e.unref(y),onToggle:e.unref(u),onCheck:e.unref(C)},null,8,["style","node","expanded","show-checkbox","checked","indeterminate","item-size","disabled","current","hidden-expand-icon","onClick","onToggle","onCheck"]))]),_:1},8,["class-name","data","total","height","item-size","perf-mode"])):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(i).e("empty-block"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(i).e("empty-text"))},e.toDisplayString((x=N.emptyText)!=null?x:e.unref(s)("el.tree.emptyText")),3)],2))],2)}}});var zJ=se(AJ,[["__file","tree.vue"]]);const dN=Me(zJ),dm=Symbol("uploadContextKey"),DJ="ElUpload";class LJ extends Error{constructor(n,o,r,l){super(n),this.name="UploadAjaxError",this.status=o,this.method=r,this.url=l}}function fN(t,n,o){let r;return o.response?r=`${o.response.error||o.response}`:o.responseText?r=`${o.responseText}`:r=`fail to ${n.method} ${t} ${o.status}`,new LJ(r,o.status,n.method,t)}function xJ(t){const n=t.responseText||t.response;if(!n)return n;try{return JSON.parse(n)}catch(o){return n}}const FJ=t=>{typeof XMLHttpRequest=="undefined"&&vt(DJ,"XMLHttpRequest is undefined");const n=new XMLHttpRequest,o=t.action;n.upload&&n.upload.addEventListener("progress",a=>{const s=a;s.percent=a.total>0?a.loaded/a.total*100:0,t.onProgress(s)});const r=new FormData;if(t.data)for(const[a,s]of Object.entries(t.data))Re(s)&&s.length?r.append(a,...s):r.append(a,s);r.append(t.filename,t.file,t.file.name),n.addEventListener("error",()=>{t.onError(fN(o,t,n))}),n.addEventListener("load",()=>{if(n.status<200||n.status>=300)return t.onError(fN(o,t,n));t.onSuccess(xJ(n))}),n.open(t.method,o,!0),t.withCredentials&&"withCredentials"in n&&(n.withCredentials=!0);const l=t.headers||{};if(l instanceof Headers)l.forEach((a,s)=>n.setRequestHeader(s,a));else for(const[a,s]of Object.entries(l))wt(s)||n.setRequestHeader(a,String(s));return n.send(r),n},fm=["text","picture","picture-card"];let HJ=1;const sc=()=>Date.now()+HJ++,um=le({action:{type:String,default:"#"},headers:{type:W(Object)},method:{type:String,default:"post"},data:{type:W([Object,Function,Promise]),default:()=>ut({})},multiple:{type:Boolean,default:!1},name:{type:String,default:"file"},drag:{type:Boolean,default:!1},withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:""},fileList:{type:W(Array),default:()=>ut([])},autoUpload:{type:Boolean,default:!0},listType:{type:String,values:fm,default:"text"},httpRequest:{type:W(Function),default:FJ},disabled:Boolean,limit:Number}),uN=le({...um,beforeUpload:{type:W(Function),default:st},beforeRemove:{type:W(Function)},onRemove:{type:W(Function),default:st},onChange:{type:W(Function),default:st},onPreview:{type:W(Function),default:st},onSuccess:{type:W(Function),default:st},onProgress:{type:W(Function),default:st},onError:{type:W(Function),default:st},onExceed:{type:W(Function),default:st}}),pN=le({files:{type:W(Array),default:()=>ut([])},disabled:{type:Boolean,default:!1},handlePreview:{type:W(Function),default:st},listType:{type:String,values:fm,default:"text"}}),mN={remove:t=>!!t},KJ=["onKeydown"],WJ=["src"],jJ=["onClick"],UJ=["title"],GJ=["onClick"],qJ=["onClick"],YJ=e.defineComponent({name:"ElUploadList"}),XJ=e.defineComponent({...YJ,props:pN,emits:mN,setup(t,{emit:n}){const o=t,{t:r}=Ke(),l=Q("upload"),a=Q("icon"),s=Q("list"),i=Yt(),c=e.ref(!1),f=e.computed(()=>[l.b("list"),l.bm("list",o.listType),l.is("disabled",o.disabled)]),u=d=>{n("remove",d)};return(d,p)=>(e.openBlock(),e.createBlock(e.TransitionGroup,{tag:"ul",class:e.normalizeClass(e.unref(f)),name:e.unref(s).b()},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.files,h=>(e.openBlock(),e.createElementBlock("li",{key:h.uid||h.name,class:e.normalizeClass([e.unref(l).be("list","item"),e.unref(l).is(h.status),{focusing:c.value}]),tabindex:"0",onKeydown:e.withKeys(g=>!e.unref(i)&&u(h),["delete"]),onFocus:p[0]||(p[0]=g=>c.value=!0),onBlur:p[1]||(p[1]=g=>c.value=!1),onClick:p[2]||(p[2]=g=>c.value=!1)},[e.renderSlot(d.$slots,"default",{file:h},()=>[d.listType==="picture"||h.status!=="uploading"&&d.listType==="picture-card"?(e.openBlock(),e.createElementBlock("img",{key:0,class:e.normalizeClass(e.unref(l).be("list","item-thumbnail")),src:h.url,alt:""},null,10,WJ)):e.createCommentVNode("v-if",!0),h.status==="uploading"||d.listType!=="picture-card"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).be("list","item-info"))},[e.createElementVNode("a",{class:e.normalizeClass(e.unref(l).be("list","item-name")),onClick:e.withModifiers(g=>d.handlePreview(h),["prevent"])},[e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(a).m("document"))},{default:e.withCtx(()=>[e.createVNode(e.unref(CD))]),_:1},8,["class"]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).be("list","item-file-name")),title:h.name},e.toDisplayString(h.name),11,UJ)],10,jJ),h.status==="uploading"?(e.openBlock(),e.createBlock(e.unref(cp),{key:0,type:d.listType==="picture-card"?"circle":"line","stroke-width":d.listType==="picture-card"?6:2,percentage:Number(h.percentage),style:e.normalizeStyle(d.listType==="picture-card"?"":"margin-top: 0.5rem")},null,8,["type","stroke-width","percentage","style"])):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("label",{class:e.normalizeClass(e.unref(l).be("list","item-status-label"))},[d.listType==="text"?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass([e.unref(a).m("upload-success"),e.unref(a).m("circle-check")])},{default:e.withCtx(()=>[e.createVNode(e.unref(Kd))]),_:1},8,["class"])):["picture-card","picture"].includes(d.listType)?(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass([e.unref(a).m("upload-success"),e.unref(a).m("check")])},{default:e.withCtx(()=>[e.createVNode(e.unref(la))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0)],2),e.unref(i)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createBlock(e.unref(fe),{key:2,class:e.normalizeClass(e.unref(a).m("close")),onClick:g=>u(h)},{default:e.withCtx(()=>[e.createVNode(e.unref(Hn))]),_:2},1032,["class","onClick"])),e.createCommentVNode(" Due to close btn only appears when li gets focused disappears after li gets blurred, thus keyboard navigation can never reach close btn"),e.createCommentVNode(" This is a bug which needs to be fixed "),e.createCommentVNode(" TODO: Fix the incorrect navigation interaction "),e.unref(i)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(e.unref(a).m("close-tip"))},e.toDisplayString(e.unref(r)("el.upload.deleteTip")),3)),d.listType==="picture-card"?(e.openBlock(),e.createElementBlock("span",{key:4,class:e.normalizeClass(e.unref(l).be("list","item-actions"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).be("list","item-preview")),onClick:g=>d.handlePreview(h)},[e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(a).m("zoom-in"))},{default:e.withCtx(()=>[e.createVNode(e.unref(By))]),_:1},8,["class"])],10,GJ),e.unref(i)?e.createCommentVNode("v-if",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(l).be("list","item-delete")),onClick:g=>u(h)},[e.createVNode(e.unref(fe),{class:e.normalizeClass(e.unref(a).m("delete"))},{default:e.withCtx(()=>[e.createVNode(e.unref(yD))]),_:1},8,["class"])],10,qJ))],2)):e.createCommentVNode("v-if",!0)])],42,KJ))),128)),e.renderSlot(d.$slots,"append")]),_:3},8,["class","name"]))}});var hN=se(XJ,[["__file","upload-list.vue"]]);const gN=le({disabled:{type:Boolean,default:!1}}),yN={file:t=>Re(t)},ZJ=["onDrop","onDragover"],bN="ElUploadDrag",JJ=e.defineComponent({name:bN}),QJ=e.defineComponent({...JJ,props:gN,emits:yN,setup(t,{emit:n}){const o=e.inject(dm);o||vt(bN,"usage: ");const r=Q("upload"),l=e.ref(!1),a=Yt(),s=c=>{if(a.value)return;l.value=!1,c.stopPropagation();const f=Array.from(c.dataTransfer.files),u=o.accept.value;if(!u){n("file",f);return}const d=f.filter(p=>{const{type:h,name:g}=p,m=g.includes(".")?`.${g.split(".").pop()}`:"",b=h.replace(/\/.*$/,"");return u.split(",").map(y=>y.trim()).filter(y=>y).some(y=>y.startsWith(".")?m===y:/\/\*$/.test(y)?b===y.replace(/\/\*$/,""):/^[^/]+\/[^/]+$/.test(y)?h===y:!1)});n("file",d)},i=()=>{a.value||(l.value=!0)};return(c,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(r).b("dragger"),e.unref(r).is("dragover",l.value)]),onDrop:e.withModifiers(s,["prevent"]),onDragover:e.withModifiers(i,["prevent"]),onDragleave:f[0]||(f[0]=e.withModifiers(u=>l.value=!1,["prevent"]))},[e.renderSlot(c.$slots,"default")],42,ZJ))}});var eQ=se(QJ,[["__file","upload-dragger.vue"]]);const CN=le({...um,beforeUpload:{type:W(Function),default:st},onRemove:{type:W(Function),default:st},onStart:{type:W(Function),default:st},onSuccess:{type:W(Function),default:st},onProgress:{type:W(Function),default:st},onError:{type:W(Function),default:st},onExceed:{type:W(Function),default:st}}),tQ=["onKeydown"],nQ=["name","multiple","accept"],oQ=e.defineComponent({name:"ElUploadContent",inheritAttrs:!1}),rQ=e.defineComponent({...oQ,props:CN,setup(t,{expose:n}){const o=t,r=Q("upload"),l=Yt(),a=e.shallowRef({}),s=e.shallowRef(),i=m=>{if(m.length===0)return;const{autoUpload:b,limit:y,fileList:C,multiple:k,onStart:w,onExceed:E}=o;if(y&&C.length+m.length>y){E(m,C);return}k||(m=m.slice(0,1));for(const S of m){const _=S;_.uid=sc(),w(_),b&&c(_)}},c=async m=>{if(s.value.value="",!o.beforeUpload)return u(m);let b,y={};try{const k=o.data,w=o.beforeUpload(m);y=Fm(o.data)?Yl(o.data):o.data,b=await w,Fm(o.data)&&tn(k,y)&&(y=Yl(o.data))}catch(k){b=!1}if(b===!1){o.onRemove(m);return}let C=m;b instanceof Blob&&(b instanceof File?C=b:C=new File([b],m.name,{type:m.type})),u(Object.assign(C,{uid:m.uid}),y)},f=async(m,b)=>qe(m)?m(b):m,u=async(m,b)=>{const{headers:y,data:C,method:k,withCredentials:w,name:E,action:S,onProgress:_,onSuccess:B,onError:M,httpRequest:P}=o;try{b=await f(b!=null?b:C,m)}catch(O){o.onRemove(m);return}const{uid:T}=m,I={headers:y||{},withCredentials:w,file:m,data:b,method:k,filename:E,action:S,onProgress:O=>{_(O,m)},onSuccess:O=>{B(O,m),delete a.value[T]},onError:O=>{M(O,m),delete a.value[T]}},v=P(I);a.value[T]=v,v instanceof Promise&&v.then(I.onSuccess,I.onError)},d=m=>{const b=m.target.files;!b||i(Array.from(b))},p=()=>{l.value||(s.value.value="",s.value.click())},h=()=>{p()};return n({abort:m=>{Kz(a.value).filter(m?([y])=>String(m.uid)===y:()=>!0).forEach(([y,C])=>{C instanceof XMLHttpRequest&&C.abort(),delete a.value[y]})},upload:c}),(m,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(r).b(),e.unref(r).m(m.listType),e.unref(r).is("drag",m.drag)]),tabindex:"0",onClick:p,onKeydown:e.withKeys(e.withModifiers(h,["self"]),["enter","space"])},[m.drag?(e.openBlock(),e.createBlock(eQ,{key:0,disabled:e.unref(l),onFile:i},{default:e.withCtx(()=>[e.renderSlot(m.$slots,"default")]),_:3},8,["disabled"])):e.renderSlot(m.$slots,"default",{key:1}),e.createElementVNode("input",{ref_key:"inputRef",ref:s,class:e.normalizeClass(e.unref(r).e("input")),name:m.name,multiple:m.multiple,accept:m.accept,type:"file",onChange:d,onClick:b[0]||(b[0]=e.withModifiers(()=>{},["stop"]))},null,42,nQ)],42,tQ))}});var wN=se(rQ,[["__file","upload-content.vue"]]);const kN="ElUpload",SN=t=>{var n;(n=t.url)!=null&&n.startsWith("blob:")&&URL.revokeObjectURL(t.url)},lQ=(t,n)=>{const o=b_(t,"fileList",void 0,{passive:!0}),r=p=>o.value.find(h=>h.uid===p.uid);function l(p){var h;(h=n.value)==null||h.abort(p)}function a(p=["ready","uploading","success","fail"]){o.value=o.value.filter(h=>!p.includes(h.status))}const s=(p,h)=>{const g=r(h);!g||(console.error(p),g.status="fail",o.value.splice(o.value.indexOf(g),1),t.onError(p,g,o.value),t.onChange(g,o.value))},i=(p,h)=>{const g=r(h);!g||(t.onProgress(p,g,o.value),g.status="uploading",g.percentage=Math.round(p.percent))},c=(p,h)=>{const g=r(h);!g||(g.status="success",g.response=p,t.onSuccess(p,g,o.value),t.onChange(g,o.value))},f=p=>{wt(p.uid)&&(p.uid=sc());const h={name:p.name,percentage:0,status:"ready",size:p.size,raw:p,uid:p.uid};if(t.listType==="picture-card"||t.listType==="picture")try{h.url=URL.createObjectURL(p)}catch(g){g.message,t.onError(g,h,o.value)}o.value=[...o.value,h],t.onChange(h,o.value)},u=async p=>{const h=p instanceof File?r(p):p;h||vt(kN,"file to be removed not found");const g=m=>{l(m);const b=o.value;b.splice(b.indexOf(m),1),t.onRemove(m,b),SN(m)};t.beforeRemove?await t.beforeRemove(h,o.value)!==!1&&g(h):g(h)};function d(){o.value.filter(({status:p})=>p==="ready").forEach(({raw:p})=>{var h;return p&&((h=n.value)==null?void 0:h.upload(p))})}return e.watch(()=>t.listType,p=>{p!=="picture-card"&&p!=="picture"||(o.value=o.value.map(h=>{const{raw:g,url:m}=h;if(!m&&g)try{h.url=URL.createObjectURL(g)}catch(b){t.onError(b,h,o.value)}return h}))}),e.watch(o,p=>{for(const h of p)h.uid||(h.uid=sc()),h.status||(h.status="success")},{immediate:!0,deep:!0}),{uploadFiles:o,abort:l,clearFiles:a,handleError:s,handleProgress:i,handleStart:f,handleSuccess:c,handleRemove:u,submit:d,revokeFileObjectURL:SN}},aQ=e.defineComponent({name:"ElUpload"}),sQ=e.defineComponent({...aQ,props:uN,setup(t,{expose:n}){const o=t,r=Yt(),l=e.shallowRef(),{abort:a,submit:s,clearFiles:i,uploadFiles:c,handleStart:f,handleError:u,handleRemove:d,handleSuccess:p,handleProgress:h,revokeFileObjectURL:g}=lQ(o,l),m=e.computed(()=>o.listType==="picture-card"),b=e.computed(()=>({...o,fileList:c.value,onStart:f,onProgress:h,onSuccess:p,onError:u,onRemove:d}));return e.onBeforeUnmount(()=>{c.value.forEach(g)}),e.provide(dm,{accept:e.toRef(o,"accept")}),n({abort:a,submit:s,clearFiles:i,handleStart:f,handleRemove:d}),(y,C)=>(e.openBlock(),e.createElementBlock("div",null,[e.unref(m)&&y.showFileList?(e.openBlock(),e.createBlock(hN,{key:0,disabled:e.unref(r),"list-type":y.listType,files:e.unref(c),"handle-preview":y.onPreview,onRemove:e.unref(d)},e.createSlots({append:e.withCtx(()=>[e.createVNode(wN,e.mergeProps({ref_key:"uploadRef",ref:l},e.unref(b)),{default:e.withCtx(()=>[y.$slots.trigger?e.renderSlot(y.$slots,"trigger",{key:0}):e.createCommentVNode("v-if",!0),!y.$slots.trigger&&y.$slots.default?e.renderSlot(y.$slots,"default",{key:1}):e.createCommentVNode("v-if",!0)]),_:3},16)]),_:2},[y.$slots.file?{name:"default",fn:e.withCtx(({file:k})=>[e.renderSlot(y.$slots,"file",{file:k})])}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("v-if",!0),!e.unref(m)||e.unref(m)&&!y.showFileList?(e.openBlock(),e.createBlock(wN,e.mergeProps({key:1,ref_key:"uploadRef",ref:l},e.unref(b)),{default:e.withCtx(()=>[y.$slots.trigger?e.renderSlot(y.$slots,"trigger",{key:0}):e.createCommentVNode("v-if",!0),!y.$slots.trigger&&y.$slots.default?e.renderSlot(y.$slots,"default",{key:1}):e.createCommentVNode("v-if",!0)]),_:3},16)):e.createCommentVNode("v-if",!0),y.$slots.trigger?e.renderSlot(y.$slots,"default",{key:2}):e.createCommentVNode("v-if",!0),e.renderSlot(y.$slots,"tip"),!e.unref(m)&&y.showFileList?(e.openBlock(),e.createBlock(hN,{key:3,disabled:e.unref(r),"list-type":y.listType,files:e.unref(c),"handle-preview":y.onPreview,onRemove:e.unref(d)},e.createSlots({_:2},[y.$slots.file?{name:"default",fn:e.withCtx(({file:k})=>[e.renderSlot(y.$slots,"file",{file:k})])}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("v-if",!0)]))}});var iQ=se(sQ,[["__file","upload.vue"]]);const EN=Me(iQ),NN=le({zIndex:{type:Number,default:9},rotate:{type:Number,default:-22},width:Number,height:Number,image:String,content:{type:W([String,Array]),default:"Element Plus"},font:{type:W(Object)},gap:{type:W(Array),default:()=>[100,100]},offset:{type:W(Array)}});function cQ(t){return t.replace(/([A-Z])/g,"-$1").toLowerCase()}function dQ(t){return Object.keys(t).map(n=>`${cQ(n)}: ${t[n]};`).join(" ")}function fQ(){return window.devicePixelRatio||1}const uQ=(t,n)=>{let o=!1;return t.removedNodes.length&&n&&(o=Array.from(t.removedNodes).includes(n)),t.type==="attributes"&&t.target===n&&(o=!0),o},_N=3;function pm(t,n,o=1){const r=document.createElement("canvas"),l=r.getContext("2d"),a=t*o,s=n*o;return r.setAttribute("width",`${a}px`),r.setAttribute("height",`${s}px`),l.save(),[l,r,a,s]}function pQ(){function t(n,o,r,l,a,s,i,c){const[f,u,d,p]=pm(l,a,r);if(n instanceof HTMLImageElement)f.drawImage(n,0,0,d,p);else{const{color:x,fontSize:H,fontStyle:K,fontWeight:q,fontFamily:ne,textAlign:Y,textBaseline:Z}=s,U=Number(H)*r;f.font=`${K} normal ${q} ${U}px/${a}px ${ne}`,f.fillStyle=x,f.textAlign=Y,f.textBaseline=Z;const re=Array.isArray(n)?n:[n];re==null||re.forEach((te,oe)=>{f.fillText(te!=null?te:"",d/2,oe*(U+_N*r))})}const h=Math.PI/180*Number(o),g=Math.max(l,a),[m,b,y]=pm(g,g,r);m.translate(y/2,y/2),m.rotate(h),d>0&&p>0&&m.drawImage(u,-d/2,-p/2);function C(x,H){const K=x*Math.cos(h)-H*Math.sin(h),q=x*Math.sin(h)+H*Math.cos(h);return[K,q]}let k=0,w=0,E=0,S=0;const _=d/2,B=p/2;[[0-_,0-B],[0+_,0-B],[0+_,0+B],[0-_,0+B]].forEach(([x,H])=>{const[K,q]=C(x,H);k=Math.min(k,K),w=Math.max(w,K),E=Math.min(E,q),S=Math.max(S,q)});const P=k+y/2,T=E+y/2,I=w-k,v=S-E,O=i*r,D=c*r,z=(I+O)*2,$=v+D,[R,N]=pm(z,$);function A(x=0,H=0){R.drawImage(b,P,T,I,v,x,H,I,v)}return A(),A(I+O,-v/2-D/2),A(I+O,+v/2+D/2),[N.toDataURL(),z/r,$/r]}return t}const mQ=e.defineComponent({name:"ElWatermark"}),hQ=e.defineComponent({...mQ,props:NN,setup(t){const n=t,o={position:"relative"},r=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.color)!=null?T:"rgba(0,0,0,.15)"}),l=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.fontSize)!=null?T:16}),a=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.fontWeight)!=null?T:"normal"}),s=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.fontStyle)!=null?T:"normal"}),i=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.fontFamily)!=null?T:"sans-serif"}),c=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.textAlign)!=null?T:"center"}),f=e.computed(()=>{var P,T;return(T=(P=n.font)==null?void 0:P.textBaseline)!=null?T:"top"}),u=e.computed(()=>n.gap[0]),d=e.computed(()=>n.gap[1]),p=e.computed(()=>u.value/2),h=e.computed(()=>d.value/2),g=e.computed(()=>{var P,T;return(T=(P=n.offset)==null?void 0:P[0])!=null?T:p.value}),m=e.computed(()=>{var P,T;return(T=(P=n.offset)==null?void 0:P[1])!=null?T:h.value}),b=()=>{const P={zIndex:n.zIndex,position:"absolute",left:0,top:0,width:"100%",height:"100%",pointerEvents:"none",backgroundRepeat:"repeat"};let T=g.value-p.value,I=m.value-h.value;return T>0&&(P.left=`${T}px`,P.width=`calc(100% - ${T}px)`,T=0),I>0&&(P.top=`${I}px`,P.height=`calc(100% - ${I}px)`,I=0),P.backgroundPosition=`${T}px ${I}px`,P},y=e.shallowRef(null),C=e.shallowRef(),k=e.ref(!1),w=()=>{C.value&&(C.value.remove(),C.value=void 0)},E=(P,T)=>{var I;y.value&&C.value&&(k.value=!0,C.value.setAttribute("style",dQ({...b(),backgroundImage:`url('${P}')`,backgroundSize:`${Math.floor(T)}px`})),(I=y.value)==null||I.append(C.value),setTimeout(()=>{k.value=!1}))},S=P=>{let T=120,I=64;const v=n.image,O=n.content,D=n.width,z=n.height;if(!v&&P.measureText){P.font=`${Number(l.value)}px ${i.value}`;const $=Array.isArray(O)?O:[O],R=$.map(N=>{const A=P.measureText(N);return[A.width,A.fontBoundingBoxAscent+A.fontBoundingBoxDescent]});T=Math.ceil(Math.max(...R.map(N=>N[0]))),I=Math.ceil(Math.max(...R.map(N=>N[1])))*$.length+($.length-1)*_N}return[D!=null?D:T,z!=null?z:I]},_=pQ(),B=()=>{const T=document.createElement("canvas").getContext("2d"),I=n.image,v=n.content,O=n.rotate;if(T){C.value||(C.value=document.createElement("div"));const D=fQ(),[z,$]=S(T),R=N=>{const[A,x]=_(N||"",O,D,z,$,{color:r.value,fontSize:l.value,fontStyle:s.value,fontWeight:a.value,fontFamily:i.value,textAlign:c.value,textBaseline:f.value},u.value,d.value);E(A,x)};if(I){const N=new Image;N.onload=()=>{R(N)},N.onerror=()=>{R(v)},N.crossOrigin="anonymous",N.referrerPolicy="no-referrer",N.src=I}else R(v)}};return e.onMounted(()=>{B()}),e.watch(()=>n,()=>{B()},{deep:!0,flush:"post"}),e.onBeforeUnmount(()=>{w()}),p_(y,P=>{k.value||P.forEach(T=>{uQ(T,C.value)&&(w(),B())})},{attributes:!0}),(P,T)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:y,style:e.normalizeStyle([o])},[e.renderSlot(P.$slots,"default")],4))}});var gQ=se(hQ,[["__file","watermark.vue"]]);const BN=Me(gQ);var yQ=[eC,lC,ZC,k2,ew,rw,jf,cw,dw,At,Jf,Zw,Qw,l1,a1,M1,$1,R1,En,u1,Su,x1,U1,G1,K1,ek,Yb,lk,ak,sk,ik,ck,Sk,_k,Bk,Vk,Uu,Rk,Xk,Zk,Jk,Ju,bC,CC,fe,rS,Qu,Ft,ep,cS,wS,kS,SS,ES,BS,PS,AS,xS,Wf,cp,Bu,k1,w1,WS,US,D1,mo,sr,Va,vS,gE,CE,wE,NE,vE,Tp,OE,xE,FE,WE,l2,a2,w2,I2,P2,bl,O2,jw,z2,x2,F2,Zt,KZ,Y2,Q2,tN,dN,EN,BN];const Xn="ElInfiniteScroll",bQ=50,CQ={delay:{type:Number,default:200},distance:{type:Number,default:0},disabled:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0}},mm=(t,n)=>Object.entries(CQ).reduce((o,[r,l])=>{var a,s;const{type:i,default:c}=l,f=t.getAttribute(`infinite-scroll-${r}`);let u=(s=(a=n[f])!=null?a:f)!=null?s:c;return u=u==="false"?!1:u,u=i(u),o[r]=Number.isNaN(u)?c:u,o},{}),$N=t=>{const{observer:n}=t[Xn];n&&(n.disconnect(),delete t[Xn].observer)},wQ=(t,n)=>{const{container:o,containerEl:r,instance:l,observer:a,lastScrollTop:s}=t[Xn],{disabled:i,distance:c}=mm(t,l),{clientHeight:f,scrollHeight:u,scrollTop:d}=r,p=d-s;if(t[Xn].lastScrollTop=d,a||i||p<0)return;let h=!1;if(o===t)h=u-(f+d)<=c;else{const{clientTop:g,scrollHeight:m}=t,b=S_(t,r);h=d+f>=b+g+m-c}h&&n.call(l)};function hm(t,n){const{containerEl:o,instance:r}=t[Xn],{disabled:l}=mm(t,r);l||o.clientHeight===0||(o.scrollHeight<=o.clientHeight?n.call(r):$N(t))}var kQ={async mounted(t,n){const{instance:o,value:r}=n;qe(r)||vt(Xn,"'v-infinite-scroll' binding value must be a function"),await e.nextTick();const{delay:l,immediate:a}=mm(t,o),s=Hd(t,!0),i=s===window?document.documentElement:s,c=jo(wQ.bind(null,t,r),l);if(!!s){if(t[Xn]={instance:o,container:s,containerEl:i,delay:l,cb:r,onScroll:c,lastScrollTop:i.scrollTop},a){const f=new MutationObserver(jo(hm.bind(null,t,r),bQ));t[Xn].observer=f,f.observe(t,{childList:!0,subtree:!0}),hm(t,r)}s.addEventListener("scroll",c)}},unmounted(t){const{container:n,onScroll:o}=t[Xn];n==null||n.removeEventListener("scroll",o),$N(t)},async updated(t){if(!t[Xn])await e.nextTick();else{const{containerEl:n,cb:o,observer:r}=t[Xn];n.clientHeight&&r&&hm(t,o)}}};const gm=kQ;gm.install=t=>{t.directive("InfiniteScroll",gm)};const TN=gm;function SQ(t){let n;const o=e.ref(!1),r=e.reactive({...t,originalPosition:"",originalOverflow:"",visible:!1});function l(p){r.text=p}function a(){const p=r.parent,h=d.ns;if(!p.vLoadingAddClassList){let g=p.getAttribute("loading-number");g=Number.parseInt(g)-1,g?p.setAttribute("loading-number",g.toString()):(un(p,h.bm("parent","relative")),p.removeAttribute("loading-number")),un(p,h.bm("parent","hidden"))}s(),u.unmount()}function s(){var p,h;(h=(p=d.$el)==null?void 0:p.parentNode)==null||h.removeChild(d.$el)}function i(){var p;t.beforeClose&&!t.beforeClose()||(o.value=!0,clearTimeout(n),n=window.setTimeout(c,400),r.visible=!1,(p=t.closed)==null||p.call(t))}function c(){if(!o.value)return;const p=r.parent;o.value=!1,p.vLoadingAddClassList=void 0,a()}const f=e.defineComponent({name:"ElLoading",setup(p,{expose:h}){const{ns:g,zIndex:m}=ga("loading");return h({ns:g,zIndex:m}),()=>{const b=r.spinner||r.svg,y=e.h("svg",{class:"circular",viewBox:r.svgViewBox?r.svgViewBox:"0 0 50 50",...b?{innerHTML:b}:{}},[e.h("circle",{class:"path",cx:"25",cy:"25",r:"20",fill:"none"})]),C=r.text?e.h("p",{class:g.b("text")},[r.text]):void 0;return e.h(e.Transition,{name:g.b("fade"),onAfterLeave:c},{default:e.withCtx(()=>[e.withDirectives(e.createVNode("div",{style:{backgroundColor:r.background||""},class:[g.b("mask"),r.customClass,r.fullscreen?"is-fullscreen":""]},[e.h("div",{class:g.b("spinner")},[y,C])]),[[e.vShow,r.visible]])])})}}}),u=e.createApp(f),d=u.mount(document.createElement("div"));return{...e.toRefs(r),setText:l,removeElLoadingChild:s,close:i,handleAfterLeave:c,vm:d,get $el(){return d.$el}}}let ic;const cc=function(t={}){if(!He)return;const n=EQ(t);if(n.fullscreen&&ic)return ic;const o=SQ({...n,closed:()=>{var l;(l=n.closed)==null||l.call(n),n.fullscreen&&(ic=void 0)}});NQ(n,n.parent,o),vN(n,n.parent,o),n.parent.vLoadingAddClassList=()=>vN(n,n.parent,o);let r=n.parent.getAttribute("loading-number");return r?r=`${Number.parseInt(r)+1}`:r="1",n.parent.setAttribute("loading-number",r),n.parent.appendChild(o.$el),e.nextTick(()=>o.visible.value=n.visible),n.fullscreen&&(ic=o),o},EQ=t=>{var n,o,r,l;let a;return De(t.target)?a=(n=document.querySelector(t.target))!=null?n:document.body:a=t.target||document.body,{parent:a===document.body||t.body?document.body:a,background:t.background||"",svg:t.svg||"",svgViewBox:t.svgViewBox||"",spinner:t.spinner||!1,text:t.text||"",fullscreen:a===document.body&&((o=t.fullscreen)!=null?o:!0),lock:(r=t.lock)!=null?r:!1,customClass:t.customClass||"",visible:(l=t.visible)!=null?l:!0,target:a}},NQ=async(t,n,o)=>{const{nextZIndex:r}=o.vm.zIndex||o.vm._.exposed.zIndex,l={};if(t.fullscreen)o.originalPosition.value=Go(document.body,"position"),o.originalOverflow.value=Go(document.body,"overflow"),l.zIndex=r();else if(t.parent===document.body){o.originalPosition.value=Go(document.body,"position"),await e.nextTick();for(const a of["top","left"]){const s=a==="top"?"scrollTop":"scrollLeft";l[a]=`${t.target.getBoundingClientRect()[a]+document.body[s]+document.documentElement[s]-Number.parseInt(Go(document.body,`margin-${a}`),10)}px`}for(const a of["height","width"])l[a]=`${t.target.getBoundingClientRect()[a]}px`}else o.originalPosition.value=Go(n,"position");for(const[a,s]of Object.entries(l))o.$el.style[a]=s},vN=(t,n,o)=>{const r=o.vm.ns||o.vm._.exposed.ns;["absolute","fixed","sticky"].includes(o.originalPosition.value)?un(n,r.bm("parent","relative")):so(n,r.bm("parent","relative")),t.fullscreen&&t.lock?so(n,r.bm("parent","hidden")):un(n,r.bm("parent","hidden"))},ym=Symbol("ElLoading"),VN=(t,n)=>{var o,r,l,a;const s=n.instance,i=p=>nt(n.value)?n.value[p]:void 0,c=p=>{const h=De(p)&&(s==null?void 0:s[p])||p;return h&&e.ref(h)},f=p=>c(i(p)||t.getAttribute(`element-loading-${$_(p)}`)),u=(o=i("fullscreen"))!=null?o:n.modifiers.fullscreen,d={text:f("text"),svg:f("svg"),svgViewBox:f("svgViewBox"),spinner:f("spinner"),background:f("background"),customClass:f("customClass"),fullscreen:u,target:(r=i("target"))!=null?r:u?void 0:t,body:(l=i("body"))!=null?l:n.modifiers.body,lock:(a=i("lock"))!=null?a:n.modifiers.lock};t[ym]={options:d,instance:cc(d)}},_Q=(t,n)=>{for(const o of Object.keys(n))e.isRef(n[o])&&(n[o].value=t[o])},dc={mounted(t,n){n.value&&VN(t,n)},updated(t,n){const o=t[ym];n.oldValue!==n.value&&(n.value&&!n.oldValue?VN(t,n):n.value&&n.oldValue?nt(n.value)&&_Q(n.value,o.options):o==null||o.instance.close())},unmounted(t){var n;(n=t[ym])==null||n.instance.close()}},MN={install(t){t.directive("loading",dc),t.config.globalProperties.$loading=cc},directive:dc,service:cc},bm=["success","info","warning","error"],an=ut({customClass:"",center:!1,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:!1,type:"info",offset:16,zIndex:0,grouping:!1,repeatNum:1,appendTo:He?document.body:void 0}),IN=le({customClass:{type:String,default:an.customClass},center:{type:Boolean,default:an.center},dangerouslyUseHTMLString:{type:Boolean,default:an.dangerouslyUseHTMLString},duration:{type:Number,default:an.duration},icon:{type:ot,default:an.icon},id:{type:String,default:an.id},message:{type:W([String,Object,Function]),default:an.message},onClose:{type:W(Function),required:!1},showClose:{type:Boolean,default:an.showClose},type:{type:String,values:bm,default:an.type},offset:{type:Number,default:an.offset},zIndex:{type:Number,default:an.zIndex},grouping:{type:Boolean,default:an.grouping},repeatNum:{type:Number,default:an.repeatNum}}),PN={destroy:()=>!0},Zn=e.shallowReactive([]),BQ=t=>{const n=Zn.findIndex(l=>l.id===t),o=Zn[n];let r;return n>0&&(r=Zn[n-1]),{current:o,prev:r}},$Q=t=>{const{prev:n}=BQ(t);return n?n.vm.exposed.bottom.value:0},TQ=(t,n)=>Zn.findIndex(r=>r.id===t)>0?20:n,vQ=["id"],VQ=["innerHTML"],MQ=e.defineComponent({name:"ElMessage"}),IQ=e.defineComponent({...MQ,props:IN,emits:PN,setup(t,{expose:n}){const o=t,{Close:r}=Ud,{ns:l,zIndex:a}=ga("message"),{currentZIndex:s,nextZIndex:i}=a,c=e.ref(),f=e.ref(!1),u=e.ref(0);let d;const p=e.computed(()=>o.type?o.type==="error"?"danger":o.type:"info"),h=e.computed(()=>{const _=o.type;return{[l.bm("icon",_)]:_&&Jo[_]}}),g=e.computed(()=>o.icon||Jo[o.type]||""),m=e.computed(()=>$Q(o.id)),b=e.computed(()=>TQ(o.id,o.offset)+m.value),y=e.computed(()=>u.value+b.value),C=e.computed(()=>({top:`${b.value}px`,zIndex:s.value}));function k(){o.duration!==0&&({stop:d}=pr(()=>{E()},o.duration))}function w(){d==null||d()}function E(){f.value=!1}function S({code:_}){_===pe.esc&&E()}return e.onMounted(()=>{k(),i(),f.value=!0}),e.watch(()=>o.repeatNum,()=>{w(),k()}),rt(document,"keydown",S),jt(c,()=>{u.value=c.value.getBoundingClientRect().height}),n({visible:f,bottom:y,close:E}),(_,B)=>(e.openBlock(),e.createBlock(e.Transition,{name:e.unref(l).b("fade"),onBeforeLeave:_.onClose,onAfterLeave:B[0]||(B[0]=M=>_.$emit("destroy")),persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{id:_.id,ref_key:"messageRef",ref:c,class:e.normalizeClass([e.unref(l).b(),{[e.unref(l).m(_.type)]:_.type&&!_.icon},e.unref(l).is("center",_.center),e.unref(l).is("closable",_.showClose),_.customClass]),style:e.normalizeStyle(e.unref(C)),role:"alert",onMouseenter:w,onMouseleave:k},[_.repeatNum>1?(e.openBlock(),e.createBlock(e.unref(jf),{key:0,value:_.repeatNum,type:e.unref(p),class:e.normalizeClass(e.unref(l).e("badge"))},null,8,["value","type","class"])):e.createCommentVNode("v-if",!0),e.unref(g)?(e.openBlock(),e.createBlock(e.unref(fe),{key:1,class:e.normalizeClass([e.unref(l).e("icon"),e.unref(h)])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(g))))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.renderSlot(_.$slots,"default",{},()=>[_.dangerouslyUseHTMLString?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),e.createElementVNode("p",{class:e.normalizeClass(e.unref(l).e("content")),innerHTML:_.message},null,10,VQ)],2112)):(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(e.unref(l).e("content"))},e.toDisplayString(_.message),3))]),_.showClose?(e.openBlock(),e.createBlock(e.unref(fe),{key:2,class:e.normalizeClass(e.unref(l).e("closeBtn")),onClick:e.withModifiers(E,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(r))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0)],46,vQ),[[e.vShow,f.value]])]),_:3},8,["name","onBeforeLeave"]))}});var PQ=se(IQ,[["__file","message.vue"]]);let RQ=1;const RN=t=>{const n=!t||De(t)||e.isVNode(t)||qe(t)?{message:t}:t,o={...an,...n};if(!o.appendTo)o.appendTo=document.body;else if(De(o.appendTo)){let r=document.querySelector(o.appendTo);Mn(r)||(r=document.body),o.appendTo=r}return o},OQ=t=>{const n=Zn.indexOf(t);if(n===-1)return;Zn.splice(n,1);const{handler:o}=t;o.close()},AQ=({appendTo:t,...n},o)=>{const r=`message_${RQ++}`,l=n.onClose,a=document.createElement("div"),s={...n,id:r,onClose:()=>{l==null||l(),OQ(u)},onDestroy:()=>{e.render(null,a)}},i=e.createVNode(PQ,s,qe(s.message)||e.isVNode(s.message)?{default:qe(s.message)?s.message:()=>s.message}:null);i.appContext=o||Pl._context,e.render(i,a),t.appendChild(a.firstElementChild);const c=i.component,u={id:r,vnode:i,vm:c,handler:{close:()=>{c.exposed.visible.value=!1}},props:i.component.props};return u},Pl=(t={},n)=>{if(!He)return{close:()=>{}};if(be(Zs.max)&&Zn.length>=Zs.max)return{close:()=>{}};const o=RN(t);if(o.grouping&&Zn.length){const l=Zn.find(({vnode:a})=>{var s;return((s=a.props)==null?void 0:s.message)===o.message});if(l)return l.props.repeatNum+=1,l.props.type=o.type,l.handler}const r=AQ(o,n);return Zn.push(r),r.handler};bm.forEach(t=>{Pl[t]=(n={},o)=>{const r=RN(n);return Pl({...r,type:t},o)}});function zQ(t){for(const n of Zn)(!t||t===n.props.type)&&n.handler.close()}Pl.closeAll=zQ,Pl._context=null;var DQ=Pl;const ON=vy(DQ,"$message"),LQ=e.defineComponent({name:"ElMessageBox",directives:{TrapFocus:Iw},components:{ElButton:At,ElFocusTrap:ci,ElInput:Ft,ElOverlay:Ai,ElIcon:fe,...Ud},inheritAttrs:!1,props:{buttonSize:{type:String,validator:Yd},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,roundButton:{default:!1,type:Boolean},container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(t,{emit:n}){const{locale:o,zIndex:r,ns:l,size:a}=ga("message-box",e.computed(()=>t.buttonSize)),{t:s}=o,{nextZIndex:i}=r,c=e.ref(!1),f=e.reactive({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:null,inputValidator:null,inputErrorMessage:"",message:null,modalFade:!0,modalClass:"",showCancelButton:!1,showConfirmButton:!0,type:"",title:void 0,showInput:!1,action:"",confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonDisabled:!1,editorErrorMessage:"",validateError:!1,zIndex:i()}),u=e.computed(()=>{const D=f.type;return{[l.bm("icon",D)]:D&&Jo[D]}}),d=rn(),p=rn(),h=e.computed(()=>f.icon||Jo[f.type]||""),g=e.computed(()=>!!f.message),m=e.ref(),b=e.ref(),y=e.ref(),C=e.ref(),k=e.ref(),w=e.computed(()=>f.confirmButtonClass);e.watch(()=>f.inputValue,async D=>{await e.nextTick(),t.boxType==="prompt"&&D!==null&&T()},{immediate:!0}),e.watch(()=>c.value,D=>{var z,$;D&&(t.boxType!=="prompt"&&(f.autofocus?y.value=($=(z=k.value)==null?void 0:z.$el)!=null?$:m.value:y.value=m.value),f.zIndex=i()),t.boxType==="prompt"&&(D?e.nextTick().then(()=>{var R;C.value&&C.value.$el&&(f.autofocus?y.value=(R=I())!=null?R:m.value:y.value=m.value)}):(f.editorErrorMessage="",f.validateError=!1))});const E=e.computed(()=>t.draggable);Zd(m,b,E),e.onMounted(async()=>{await e.nextTick(),t.closeOnHashChange&&window.addEventListener("hashchange",S)}),e.onBeforeUnmount(()=>{t.closeOnHashChange&&window.removeEventListener("hashchange",S)});function S(){!c.value||(c.value=!1,e.nextTick(()=>{f.action&&n("action",f.action)}))}const _=()=>{t.closeOnClickModal&&P(f.distinguishCancelAndClose?"close":"cancel")},B=Ws(_),M=D=>{if(f.inputType!=="textarea")return D.preventDefault(),P("confirm")},P=D=>{var z;t.boxType==="prompt"&&D==="confirm"&&!T()||(f.action=D,f.beforeClose?(z=f.beforeClose)==null||z.call(f,D,f,S):S())},T=()=>{if(t.boxType==="prompt"){const D=f.inputPattern;if(D&&!D.test(f.inputValue||""))return f.editorErrorMessage=f.inputErrorMessage||s("el.messagebox.error"),f.validateError=!0,!1;const z=f.inputValidator;if(typeof z=="function"){const $=z(f.inputValue);if($===!1)return f.editorErrorMessage=f.inputErrorMessage||s("el.messagebox.error"),f.validateError=!0,!1;if(typeof $=="string")return f.editorErrorMessage=$,f.validateError=!0,!1}}return f.editorErrorMessage="",f.validateError=!1,!0},I=()=>{const D=C.value.$refs;return D.input||D.textarea},v=()=>{P("close")},O=()=>{t.closeOnPressEscape&&v()};return t.lockScroll&&tf(c),{...e.toRefs(f),ns:l,overlayEvent:B,visible:c,hasMessage:g,typeClass:u,contentId:d,inputId:p,btnSize:a,iconComponent:h,confirmButtonClasses:w,rootRef:m,focusStartRef:y,headerRef:b,inputRef:C,confirmRef:k,doClose:S,handleClose:v,onCloseRequested:O,handleWrapperClick:_,handleInputEnter:M,handleAction:P,t:s}}}),xQ=["aria-label","aria-describedby"],FQ=["aria-label"],HQ=["id"];function KQ(t,n,o,r,l,a){const s=e.resolveComponent("el-icon"),i=e.resolveComponent("close"),c=e.resolveComponent("el-input"),f=e.resolveComponent("el-button"),u=e.resolveComponent("el-focus-trap"),d=e.resolveComponent("el-overlay");return e.openBlock(),e.createBlock(e.Transition,{name:"fade-in-linear",onAfterLeave:n[11]||(n[11]=p=>t.$emit("vanish")),persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createVNode(d,{"z-index":t.zIndex,"overlay-class":[t.ns.is("message-box"),t.modalClass],mask:t.modal},{default:e.withCtx(()=>[e.createElementVNode("div",{role:"dialog","aria-label":t.title,"aria-modal":"true","aria-describedby":t.showInput?void 0:t.contentId,class:e.normalizeClass(`${t.ns.namespace.value}-overlay-message-box`),onClick:n[8]||(n[8]=(...p)=>t.overlayEvent.onClick&&t.overlayEvent.onClick(...p)),onMousedown:n[9]||(n[9]=(...p)=>t.overlayEvent.onMousedown&&t.overlayEvent.onMousedown(...p)),onMouseup:n[10]||(n[10]=(...p)=>t.overlayEvent.onMouseup&&t.overlayEvent.onMouseup(...p))},[e.createVNode(u,{loop:"",trapped:t.visible,"focus-trap-el":t.rootRef,"focus-start-el":t.focusStartRef,onReleaseRequested:t.onCloseRequested},{default:e.withCtx(()=>[e.createElementVNode("div",{ref:"rootRef",class:e.normalizeClass([t.ns.b(),t.customClass,t.ns.is("draggable",t.draggable),{[t.ns.m("center")]:t.center}]),style:e.normalizeStyle(t.customStyle),tabindex:"-1",onClick:n[7]||(n[7]=e.withModifiers(()=>{},["stop"]))},[t.title!==null&&t.title!==void 0?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"headerRef",class:e.normalizeClass(t.ns.e("header"))},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("title"))},[t.iconComponent&&t.center?(e.openBlock(),e.createBlock(s,{key:0,class:e.normalizeClass([t.ns.e("status"),t.typeClass])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconComponent)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.createElementVNode("span",null,e.toDisplayString(t.title),1)],2),t.showClose?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass(t.ns.e("headerbtn")),"aria-label":t.t("el.messagebox.close"),onClick:n[0]||(n[0]=p=>t.handleAction(t.distinguishCancelAndClose?"close":"cancel")),onKeydown:n[1]||(n[1]=e.withKeys(e.withModifiers(p=>t.handleAction(t.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[e.createVNode(s,{class:e.normalizeClass(t.ns.e("close"))},{default:e.withCtx(()=>[e.createVNode(i)]),_:1},8,["class"])],42,FQ)):e.createCommentVNode("v-if",!0)],2)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{id:t.contentId,class:e.normalizeClass(t.ns.e("content"))},[e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("container"))},[t.iconComponent&&!t.center&&t.hasMessage?(e.openBlock(),e.createBlock(s,{key:0,class:e.normalizeClass([t.ns.e("status"),t.typeClass])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.iconComponent)))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),t.hasMessage?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(t.ns.e("message"))},[e.renderSlot(t.$slots,"default",{},()=>[t.dangerouslyUseHTMLString?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.showInput?"label":"p"),{key:1,for:t.showInput?t.inputId:void 0,innerHTML:t.message},null,8,["for","innerHTML"])):(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.showInput?"label":"p"),{key:0,for:t.showInput?t.inputId:void 0},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.dangerouslyUseHTMLString?"":t.message),1)]),_:1},8,["for"]))])],2)):e.createCommentVNode("v-if",!0)],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("input"))},[e.createVNode(c,{id:t.inputId,ref:"inputRef",modelValue:t.inputValue,"onUpdate:modelValue":n[2]||(n[2]=p=>t.inputValue=p),type:t.inputType,placeholder:t.inputPlaceholder,"aria-invalid":t.validateError,class:e.normalizeClass({invalid:t.validateError}),onKeydown:e.withKeys(t.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("errormsg")),style:e.normalizeStyle({visibility:t.editorErrorMessage?"visible":"hidden"})},e.toDisplayString(t.editorErrorMessage),7)],2),[[e.vShow,t.showInput]])],10,HQ),e.createElementVNode("div",{class:e.normalizeClass(t.ns.e("btns"))},[t.showCancelButton?(e.openBlock(),e.createBlock(f,{key:0,loading:t.cancelButtonLoading,class:e.normalizeClass([t.cancelButtonClass]),round:t.roundButton,size:t.btnSize,onClick:n[3]||(n[3]=p=>t.handleAction("cancel")),onKeydown:n[4]||(n[4]=e.withKeys(e.withModifiers(p=>t.handleAction("cancel"),["prevent"]),["enter"]))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.cancelButtonText||t.t("el.messagebox.cancel")),1)]),_:1},8,["loading","class","round","size"])):e.createCommentVNode("v-if",!0),e.withDirectives(e.createVNode(f,{ref:"confirmRef",type:"primary",loading:t.confirmButtonLoading,class:e.normalizeClass([t.confirmButtonClasses]),round:t.roundButton,disabled:t.confirmButtonDisabled,size:t.btnSize,onClick:n[5]||(n[5]=p=>t.handleAction("confirm")),onKeydown:n[6]||(n[6]=e.withKeys(e.withModifiers(p=>t.handleAction("confirm"),["prevent"]),["enter"]))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(t.confirmButtonText||t.t("el.messagebox.confirm")),1)]),_:1},8,["loading","class","round","disabled","size"]),[[e.vShow,t.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,xQ)]),_:3},8,["z-index","overlay-class","mask"]),[[e.vShow,t.visible]])]),_:3})}var WQ=se(LQ,[["render",KQ],["__file","index.vue"]]);const Wa=new Map,jQ=t=>{let n=document.body;return t.appendTo&&(De(t.appendTo)&&(n=document.querySelector(t.appendTo)),Mn(t.appendTo)&&(n=t.appendTo),Mn(n)||(n=document.body)),n},UQ=(t,n,o=null)=>{const r=e.createVNode(WQ,t,qe(t.message)||e.isVNode(t.message)?{default:qe(t.message)?t.message:()=>t.message}:null);return r.appContext=o,e.render(r,n),jQ(t).appendChild(n.firstElementChild),r.component},GQ=()=>document.createElement("div"),qQ=(t,n)=>{const o=GQ();t.onVanish=()=>{e.render(null,o),Wa.delete(l)},t.onAction=a=>{const s=Wa.get(l);let i;t.showInput?i={value:l.inputValue,action:a}:i=a,t.callback?t.callback(i,r.proxy):a==="cancel"||a==="close"?t.distinguishCancelAndClose&&a!=="cancel"?s.reject("close"):s.reject("cancel"):s.resolve(i)};const r=UQ(t,o,n),l=r.proxy;for(const a in t)Lt(t,a)&&!Lt(l.$props,a)&&(l[a]=t[a]);return l.visible=!0,l};function Rl(t,n=null){if(!He)return Promise.reject();let o;return De(t)||e.isVNode(t)?t={message:t}:o=t.callback,new Promise((r,l)=>{const a=qQ(t,n!=null?n:Rl._context);Wa.set(a,{options:t,callback:o,resolve:r,reject:l})})}const YQ=["alert","confirm","prompt"],XQ={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};YQ.forEach(t=>{Rl[t]=ZQ(t)});function ZQ(t){return(n,o,r,l)=>{let a="";return nt(o)?(r=o,a=""):$t(o)?a="":a=o,Rl(Object.assign({title:a,message:n,type:"",...XQ[t]},r,{boxType:t}),l)}}Rl.close=()=>{Wa.forEach((t,n)=>{n.doClose()}),Wa.clear()},Rl._context=null;const fr=Rl;fr.install=t=>{fr._context=t._context,t.config.globalProperties.$msgbox=fr,t.config.globalProperties.$messageBox=fr,t.config.globalProperties.$alert=fr.alert,t.config.globalProperties.$confirm=fr.confirm,t.config.globalProperties.$prompt=fr.prompt};const AN=fr,Cm=["success","info","warning","error"],zN=le({customClass:{type:String,default:""},dangerouslyUseHTMLString:{type:Boolean,default:!1},duration:{type:Number,default:4500},icon:{type:ot},id:{type:String,default:""},message:{type:W([String,Object]),default:""},offset:{type:Number,default:0},onClick:{type:W(Function),default:()=>{}},onClose:{type:W(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:[...Cm,""],default:""},zIndex:Number}),DN={destroy:()=>!0},JQ=["id"],QQ=["textContent"],eee={key:0},tee=["innerHTML"],nee=e.defineComponent({name:"ElNotification"}),oee=e.defineComponent({...nee,props:zN,emits:DN,setup(t,{expose:n}){const o=t,{ns:r,zIndex:l}=ga("notification"),{nextZIndex:a,currentZIndex:s}=l,{Close:i}=Ty,c=e.ref(!1);let f;const u=e.computed(()=>{const k=o.type;return k&&Jo[o.type]?r.m(k):""}),d=e.computed(()=>o.type&&Jo[o.type]||o.icon),p=e.computed(()=>o.position.endsWith("right")?"right":"left"),h=e.computed(()=>o.position.startsWith("top")?"top":"bottom"),g=e.computed(()=>{var k;return{[h.value]:`${o.offset}px`,zIndex:(k=o.zIndex)!=null?k:s.value}});function m(){o.duration>0&&({stop:f}=pr(()=>{c.value&&y()},o.duration))}function b(){f==null||f()}function y(){c.value=!1}function C({code:k}){k===pe.delete||k===pe.backspace?b():k===pe.esc?c.value&&y():m()}return e.onMounted(()=>{m(),a(),c.value=!0}),rt(document,"keydown",C),n({visible:c,close:y}),(k,w)=>(e.openBlock(),e.createBlock(e.Transition,{name:e.unref(r).b("fade"),onBeforeLeave:k.onClose,onAfterLeave:w[1]||(w[1]=E=>k.$emit("destroy")),persisted:""},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{id:k.id,class:e.normalizeClass([e.unref(r).b(),k.customClass,e.unref(p)]),style:e.normalizeStyle(e.unref(g)),role:"alert",onMouseenter:b,onMouseleave:m,onClick:w[0]||(w[0]=(...E)=>k.onClick&&k.onClick(...E))},[e.unref(d)?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass([e.unref(r).e("icon"),e.unref(u)])},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(d))))]),_:1},8,["class"])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).e("group"))},[e.createElementVNode("h2",{class:e.normalizeClass(e.unref(r).e("title")),textContent:e.toDisplayString(k.title)},null,10,QQ),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(r).e("content")),style:e.normalizeStyle(k.title?void 0:{margin:0})},[e.renderSlot(k.$slots,"default",{},()=>[k.dangerouslyUseHTMLString?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createCommentVNode(" Caution here, message could've been compromised, never use user's input as message "),e.createElementVNode("p",{innerHTML:k.message},null,8,tee)],2112)):(e.openBlock(),e.createElementBlock("p",eee,e.toDisplayString(k.message),1))])],6),[[e.vShow,k.message]]),k.showClose?(e.openBlock(),e.createBlock(e.unref(fe),{key:0,class:e.normalizeClass(e.unref(r).e("closeBtn")),onClick:e.withModifiers(y,["stop"])},{default:e.withCtx(()=>[e.createVNode(e.unref(i))]),_:1},8,["class","onClick"])):e.createCommentVNode("v-if",!0)],2)],46,JQ),[[e.vShow,c.value]])]),_:3},8,["name","onBeforeLeave"]))}});var ree=se(oee,[["__file","notification.vue"]]);const fc={"top-left":[],"top-right":[],"bottom-left":[],"bottom-right":[]},wm=16;let lee=1;const Ol=function(t={},n=null){if(!He)return{close:()=>{}};(typeof t=="string"||e.isVNode(t))&&(t={message:t});const o=t.position||"top-right";let r=t.offset||0;fc[o].forEach(({vm:u})=>{var d;r+=(((d=u.el)==null?void 0:d.offsetHeight)||0)+wm}),r+=wm;const l=`notification_${lee++}`,a=t.onClose,s={...t,offset:r,id:l,onClose:()=>{aee(l,o,a)}};let i=document.body;Mn(t.appendTo)?i=t.appendTo:De(t.appendTo)&&(i=document.querySelector(t.appendTo)),Mn(i)||(i=document.body);const c=document.createElement("div"),f=e.createVNode(ree,s,e.isVNode(s.message)?{default:()=>s.message}:null);return f.appContext=n!=null?n:Ol._context,f.props.onDestroy=()=>{e.render(null,c)},e.render(f,c),fc[o].push({vm:f}),i.appendChild(c.firstElementChild),{close:()=>{f.component.exposed.visible.value=!1}}};Cm.forEach(t=>{Ol[t]=(n={})=>((typeof n=="string"||e.isVNode(n))&&(n={message:n}),Ol({...n,type:t}))});function aee(t,n,o){const r=fc[n],l=r.findIndex(({vm:f})=>{var u;return((u=f.component)==null?void 0:u.props.id)===t});if(l===-1)return;const{vm:a}=r[l];if(!a)return;o==null||o(a);const s=a.el.offsetHeight,i=n.split("-")[0];r.splice(l,1);const c=r.length;if(!(c<1))for(let f=l;f{n.component.exposed.visible.value=!1})}Ol.closeAll=see,Ol._context=null;var iee=Ol;const LN=vy(iee,"$notify");var cee=[TN,MN,ON,AN,LN,ip],km=Xb([...yQ,...cee]);const dee=km.install,fee=km.version;V.BAR_MAP=Rf,V.CASCADER_PANEL_INJECTION_KEY=Ni,V.CHANGE_EVENT=at,V.ClickOutside=Po,V.CommonPicker=su,V.CommonProps=vu,V.DEFAULT_FORMATS_DATE=Ir,V.DEFAULT_FORMATS_DATEPICKER=Sw,V.DEFAULT_FORMATS_TIME=hi,V.DROPDOWN_COLLECTION_INJECTION_KEY=jk,V.DROPDOWN_COLLECTION_ITEM_INJECTION_KEY=Uk,V.DROPDOWN_INJECTION_KEY=va,V.DefaultProps=E1,V.DynamicSizeGrid=uE,V.DynamicSizeList=nE,V.EVENT_CODE=pe,V.Effect=z6,V.ElAffix=eC,V.ElAlert=lC,V.ElAside=ak,V.ElAutoResizer=k2,V.ElAutocomplete=ZC,V.ElAvatar=ew,V.ElBacktop=rw,V.ElBadge=jf,V.ElBreadcrumb=cw,V.ElBreadcrumbItem=dw,V.ElButton=At,V.ElButtonGroup=Jf,V.ElCalendar=Zw,V.ElCard=Qw,V.ElCarousel=l1,V.ElCarouselItem=a1,V.ElCascader=M1,V.ElCascaderPanel=$1,V.ElCheckTag=R1,V.ElCheckbox=En,V.ElCheckboxButton=u1,V.ElCheckboxGroup=Su,V.ElCol=x1,V.ElCollapse=U1,V.ElCollapseItem=G1,V.ElCollapseTransition=K1,V.ElCollection=Kk,V.ElCollectionItem=Wk,V.ElColorPicker=ek,V.ElConfigProvider=Yb,V.ElContainer=lk,V.ElCountdown=OE,V.ElDatePicker=Sk,V.ElDescriptions=_k,V.ElDescriptionsItem=Bk,V.ElDialog=Vk,V.ElDivider=Uu,V.ElDrawer=Rk,V.ElDropdown=Xk,V.ElDropdownItem=Zk,V.ElDropdownMenu=Jk,V.ElEmpty=Ju,V.ElFooter=sk,V.ElForm=bC,V.ElFormItem=CC,V.ElHeader=ik,V.ElIcon=fe,V.ElImage=rS,V.ElImageViewer=Qu,V.ElInfiniteScroll=TN,V.ElInput=Ft,V.ElInputNumber=ep,V.ElLink=cS,V.ElLoading=MN,V.ElLoadingDirective=dc,V.ElLoadingService=cc,V.ElMain=ck,V.ElMenu=wS,V.ElMenuItem=kS,V.ElMenuItemGroup=SS,V.ElMessage=ON,V.ElMessageBox=AN,V.ElNotification=LN,V.ElOption=Va,V.ElOptionGroup=vS,V.ElOverlay=Ai,V.ElPageHeader=BS,V.ElPagination=PS,V.ElPopconfirm=AS,V.ElPopover=xS,V.ElPopoverDirective=ip,V.ElPopper=Wf,V.ElPopperArrow=vC,V.ElPopperContent=HC,V.ElPopperTrigger=PC,V.ElProgress=cp,V.ElRadio=Bu,V.ElRadioButton=k1,V.ElRadioGroup=w1,V.ElRate=WS,V.ElResult=US,V.ElRow=D1,V.ElScrollbar=mo,V.ElSelect=sr,V.ElSelectV2=gE,V.ElSkeleton=CE,V.ElSkeletonItem=wE,V.ElSlider=NE,V.ElSpace=vE,V.ElStatistic=Tp,V.ElStep=FE,V.ElSteps=xE,V.ElSubMenu=ES,V.ElSwitch=WE,V.ElTabPane=P2,V.ElTable=l2,V.ElTableColumn=a2,V.ElTableV2=w2,V.ElTabs=I2,V.ElTag=bl,V.ElText=O2,V.ElTimePicker=jw,V.ElTimeSelect=z2,V.ElTimeline=x2,V.ElTimelineItem=F2,V.ElTooltip=Zt,V.ElTransfer=Y2,V.ElTree=Q2,V.ElTreeSelect=tN,V.ElTreeV2=dN,V.ElUpload=EN,V.ElWatermark=BN,V.FIRST_KEYS=Fk,V.FIRST_LAST_KEYS=Hk,V.FORWARD_REF_INJECTION_KEY=bf,V.FixedSizeGrid=rE,V.FixedSizeList=Np,V.GAP=Vr,V.ID_INJECTION_KEY=wb,V.INPUT_EVENT=qt,V.INSTALLED_KEY=qd,V.IconComponentMap=dp,V.IconMap=zr,V.LAST_KEYS=Zu,V.LEFT_CHECK_CHANGE_EVENT=Qp,V.Mousewheel=Ww,V.POPPER_CONTENT_INJECTION_KEY=Af,V.POPPER_INJECTION_KEY=ti,V.RIGHT_CHECK_CHANGE_EVENT=em,V.ROOT_PICKER_INJECTION_KEY=Ii,V.RowAlign=A1,V.RowJustify=O1,V.SIZE_INJECTION_KEY=_f,V.TOOLTIP_INJECTION_KEY=ka,V.TableV2=b2,V.TableV2Alignment=Tl,V.TableV2FixedDir=Ap,V.TableV2Placeholder=vl,V.TableV2SortOrder=$l,V.TimePickPanel=Ea,V.TrapFocus=Iw,V.UPDATE_MODEL_EVENT=Ie,V.WEEK_DAYS=Is,V.affixEmits=Jb,V.affixProps=Zb,V.alertEffects=nC,V.alertEmits=rC,V.alertProps=oC,V.arrowMiddleware=jb,V.autoResizerProps=C2,V.autocompleteEmits=YC,V.autocompleteProps=qC,V.avatarEmits=QC,V.avatarProps=JC,V.backtopEmits=nw,V.backtopProps=tw,V.badgeProps=lw,V.breadcrumbItemProps=sw,V.breadcrumbKey=Uf,V.breadcrumbProps=aw,V.buildLocaleContext=Oy,V.buildTimeList=gi,V.buildTranslator=Py,V.buttonEmits=uw,V.buttonGroupContextKey=Gf,V.buttonNativeTypes=fw,V.buttonProps=ui,V.buttonTypes=fi,V.calendarEmits=Xw,V.calendarProps=Yw,V.cardProps=Jw,V.carouselContextKey=Cu,V.carouselEmits=t1,V.carouselItemProps=o1,V.carouselProps=e1,V.cascaderEmits=V1,V.cascaderProps=v1,V.checkTagEmits=P1,V.checkTagProps=I1,V.checkboxEmits=ku,V.checkboxGroupContextKey=Or,V.checkboxGroupEmits=d1,V.checkboxGroupProps=c1,V.checkboxProps=wu,V.colProps=L1,V.collapseContextKey=Iu,V.collapseEmits=H1,V.collapseItemProps=W1,V.collapseProps=F1,V.colorPickerContextKey=Ru,V.colorPickerEmits=Y1,V.colorPickerProps=q1,V.componentSizeMap=My,V.componentSizes=Wn,V.configProviderContextKey=$f,V.configProviderProps=qb,V.countdownEmits=IE,V.countdownProps=ME,V.createModelToggleComposable=nf,V.dateEquals=ou,V.datePickTypes=Vy,V.datePickerProps=gk,V.dayjs=ve,V.default=km,V.defaultInitialZIndex=Cf,V.defaultNamespace=ll,V.descriptionProps=Ek,V.dialogEmits=Wu,V.dialogInjectionKey=Hu,V.dialogProps=Ku,V.dividerProps=Mk,V.drawerEmits=Pk,V.drawerProps=Ik,V.dropdownItemProps=Xu,V.dropdownMenuProps=xk,V.dropdownProps=Ta,V.elPaginationKey=rp,V.emitChangeFn=Mu,V.emptyProps=Qk,V.extractDateFormat=tu,V.extractTimeFormat=nu,V.formContextKey=nr,V.formEmits=sC,V.formItemContextKey=Gn,V.formItemProps=hC,V.formItemValidateStates=mC,V.formProps=aC,V.formatter=au,V.genFileId=sc,V.getPositionDataWithUnit=g8,V.iconProps=tC,V.imageEmits=oS,V.imageProps=nS,V.imageViewerEmits=tS,V.imageViewerProps=eS,V.inputEmits=SC,V.inputNumberEmits=aS,V.inputNumberProps=lS,V.inputProps=kC,V.install=dee,V.linkEmits=iS,V.linkProps=sS,V.localeContextKey=Jd,V.makeInstaller=Xb,V.makeList=yi,V.menuEmits=mS,V.menuItemEmits=gS,V.menuItemGroupProps=bS,V.menuItemProps=hS,V.menuProps=pS,V.messageConfig=Zs,V.messageDefaults=an,V.messageEmits=PN,V.messageProps=IN,V.messageTypes=bm,V.namespaceContextKey=ef,V.notificationEmits=DN,V.notificationProps=zN,V.notificationTypes=Cm,V.overlayEmits=Tk,V.overlayProps=$k,V.pageHeaderEmits=_S,V.pageHeaderProps=NS,V.paginationEmits=MS,V.paginationProps=VS,V.parseDate=lu,V.popconfirmEmits=OS,V.popconfirmProps=RS,V.popoverEmits=DS,V.popoverProps=zS,V.popperArrowProps=oi,V.popperContentEmits=Kf,V.popperContentProps=di,V.popperCoreConfigProps=Hf,V.popperProps=ni,V.popperTriggerProps=ri,V.progressProps=FS,V.provideGlobalConfig=Xs,V.radioButtonProps=h1,V.radioEmits=Nu,V.radioGroupEmits=b1,V.radioGroupKey=_u,V.radioGroupProps=y1,V.radioProps=p1,V.radioPropsBase=Eu,V.rangeArr=Io,V.rateEmits=KS,V.rateProps=HS,V.renderThumbStyle=EC,V.resultProps=jS,V.roleTypes=TC,V.rowContextKey=Vu,V.rowProps=z1,V.scrollbarContextKey=Of,V.scrollbarEmits=$C,V.scrollbarProps=BC,V.selectGroupKey=lp,V.selectKey=wl,V.selectV2InjectionKey=Ui,V.skeletonItemProps=bE,V.skeletonProps=yE,V.sliderContextKey=Bp,V.sliderEmits=SE,V.sliderProps=kE,V.spaceProps=TE,V.statisticProps=VE,V.stepProps=DE,V.stepsEmits=zE,V.stepsProps=AE,V.subMenuProps=uS,V.switchEmits=KE,V.switchProps=HE,V.tabBarProps=S2,V.tabNavEmits=_2,V.tabNavProps=N2,V.tabPaneProps=v2,V.tableV2Props=p2,V.tableV2RowProps=dr,V.tabsEmits=T2,V.tabsProps=$2,V.tabsRootContextKey=La,V.tagEmits=T1,V.tagProps=$i,V.textProps=R2,V.thumbProps=NC,V.timePickerDefaultProps=bi,V.timeUnits=eu,V.timelineItemProps=D2,V.tooltipEmits=GC,V.transferCheckedChangeFn=ec,V.transferEmits=G2,V.transferProps=Hr,V.translate=Ry,V.uploadBaseProps=um,V.uploadContentProps=CN,V.uploadContextKey=dm,V.uploadDraggerEmits=yN,V.uploadDraggerProps=gN,V.uploadListEmits=mN,V.uploadListProps=pN,V.uploadListTypes=fm,V.uploadProps=uN,V.useAttrs=As,V.useCascaderConfig=N1,V.useCursor=Ub,V.useDelayedRender=Kx,V.useDelayedToggle=yf,V.useDelayedToggleProps=_b,V.useDeprecated=jn,V.useDialog=ju,V.useDisabled=I8,V.useDraggable=Zd,V.useEscapeKeydown=Sb,V.useFloating=Wb,V.useFloatingProps=m8,V.useFocus=pL,V.useFocusController=Bf,V.useFormDisabled=Yt,V.useFormItem=Xt,V.useFormItemInputId=vo,V.useFormSize=St,V.useForwardRef=Bb,V.useForwardRefDirective=$b,V.useGetDerivedNamespace=Ls,V.useGlobalComponentSettings=ga,V.useGlobalConfig=ha,V.useGlobalSize=Gb,V.useId=rn,V.useIdInjection=hf,V.useLocale=Ke,V.useLockscreen=tf,V.useModal=vL,V.useModelToggle=IL,V.useModelToggleEmits=RL,V.useModelToggleProps=PL,V.useNamespace=Q,V.useOrderedChildren=qs,V.usePopper=sb,V.usePopperArrowProps=H6,V.usePopperContainer=Nb,V.usePopperContainerId=gf,V.usePopperContentEmits=cF,V.usePopperContentProps=iF,V.usePopperCoreConfigProps=sF,V.usePopperProps=D6,V.usePopperTriggerProps=U6,V.usePreventGlobal=OL,V.useProp=of,V.useSameTarget=Ws,V.useSize=M8,V.useSizeProp=Vt,V.useSizeProps=b8,V.useSpace=$E,V.useTeleport=Dx,V.useThrottleRender=ib,V.useTimeout=mf,V.useTooltipContentProps=Pt,V.useTooltipModelToggle=jC,V.useTooltipModelToggleEmits=WC,V.useTooltipModelToggleProps=KC,V.useTooltipProps=UC,V.useTooltipTriggerProps=gl,V.useTransitionFallthrough=Fx,V.useTransitionFallthroughEmits=xx,V.useZIndex=$r,V.vLoading=dc,V.vRepeatClick=Sa,V.valueEquals=ru,V.version=fee,V.virtualizedGridProps=ir,V.virtualizedListProps=wp,V.virtualizedProps=Cp,V.virtualizedScrollbarProps=Sp,V.watermarkProps=NN,V.zIndexContextKey=wf,Object.defineProperty(V,"__esModule",{value:!0})}); +//# sourceMappingURL=index.full.min.js.map diff --git a/platform/backend/static/static/icon-192.png b/platform/backend/static/static/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..91a99b94e23a00cc8133f22e3fe2a0b48a015808 GIT binary patch literal 67 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blE>9Q7kcv6UAQ@H$MqV!6EkIEQ MPgg&ebxsLQ07X&@0{{R3 literal 0 HcmV?d00001 diff --git a/platform/backend/static/static/icon-192.svg b/platform/backend/static/static/icon-192.svg new file mode 100644 index 0000000..1ff0a97 --- /dev/null +++ b/platform/backend/static/static/icon-192.svg @@ -0,0 +1,4 @@ + + + + diff --git a/platform/backend/static/static/icon-512.png b/platform/backend/static/static/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..91a99b94e23a00cc8133f22e3fe2a0b48a015808 GIT binary patch literal 67 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1|;Q0k8}blE>9Q7kcv6UAQ@H$MqV!6EkIEQ MPgg&ebxsLQ07X&@0{{R3 literal 0 HcmV?d00001 diff --git a/platform/backend/static/static/icon-512.svg b/platform/backend/static/static/icon-512.svg new file mode 100644 index 0000000..976946b --- /dev/null +++ b/platform/backend/static/static/icon-512.svg @@ -0,0 +1,4 @@ + + + + diff --git a/platform/backend/static/static/vue.global.prod.js b/platform/backend/static/static/vue.global.prod.js new file mode 100644 index 0000000..976472b --- /dev/null +++ b/platform/backend/static/static/vue.global.prod.js @@ -0,0 +1,13 @@ +/** +* vue v3.5.32 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/var Vue=function(e){"use strict";var t,n,r;let i,l,s,o,a,c,u,h,d,p,f,g,m;function y(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let b={},_=[],S=()=>{},x=()=>!1,C=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),k=e=>e.startsWith("onUpdate:"),T=Object.assign,w=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},N=Object.prototype.hasOwnProperty,A=(e,t)=>N.call(e,t),E=Array.isArray,I=e=>"function"==typeof e,R=e=>"string"==typeof e,O=e=>"symbol"==typeof e,M=e=>null!==e&&"object"==typeof e,P=e=>(M(e)||I(e))&&I(e.then)&&I(e.catch),F=Object.prototype.toString,L=e=>R(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,$=y(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),D=y("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),V=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},B=/-\w/g,j=V(e=>e.replace(B,e=>e.slice(1).toUpperCase())),U=/\B([A-Z])/g,H=V(e=>e.replace(U,"-$1").toLowerCase()),q=V(e=>e.charAt(0).toUpperCase()+e.slice(1)),W=V(e=>e?`on${q(e)}`:""),K=(e,t)=>!Object.is(e,t),z=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},G=e=>{let t=parseFloat(e);return isNaN(t)?e:t},X=e=>{let t=R(e)?Number(e):NaN;return isNaN(t)?e:t},Q=()=>i||(i="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{}),Z=y("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function Y(e){if(E(e)){let t={};for(let n=0;n{if(e){let n=e.split(et);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ei(e){let t="";if(R(e))t=e;else if(E(e))for(let n=0;neu(e,t))}let ed=e=>!!(e&&!0===e.__v_isRef),ep=e=>R(e)?e:null==e?"":E(e)||M(e)&&(e.toString===F||!I(e.toString))?ed(e)?ep(e.value):JSON.stringify(e,ef,2):String(e),ef=(e,t)=>{let n;if(ed(t))return ef(e,t.value);if("[object Map]"===(n=t,F.call(n)))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[eg(t,r)+" =>"]=n,e),{})};{let e;if("[object Set]"===(e=t,F.call(e)))return{[`Set(${t.size})`]:[...t.values()].map(e=>eg(e))};else{if(O(t))return eg(t);let e;if(M(t)&&!E(t)&&"[object Object]"!==(e=t,F.call(e)))return String(t)}}return t},eg=(e,t="")=>{var n;return O(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class em{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=l,!e&&l&&(this.index=(l.scopes||(l.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0==--this._on&&(l=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t0)){if(a){let e=a;for(a=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;o;){let t=o;for(o=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function ex(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eC(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),ew(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function ek(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eT(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function eT(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eO)||(e.globalVersion=eO,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!ek(e))))return;e.flags|=2;let t=e.dep,n=s,r=eN;s=e,eN=!0;try{ex(e);let n=e.fn(e._value);(0===t.version||K(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{s=n,eN=r,eC(e),e.flags&=-3}}function ew(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)ew(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let eN=!0,eA=[];function eE(){eA.push(eN),eN=!1}function eI(){let e=eA.pop();eN=void 0===e||e}function eR(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=s;s=void 0;try{t()}finally{s=e}}}let eO=0;class eM{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}}class eP{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(!s||!eN||s===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==s)t=this.activeLink=new eM(s,this),s.deps?(t.prevDep=s.depsTail,s.depsTail.nextDep=t,s.depsTail=t):s.deps=s.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=s.depsTail,t.nextDep=void 0,s.depsTail.nextDep=t,s.depsTail=t,s.deps===t&&(s.deps=e)}return t}trigger(e){this.version++,eO++,this.notify(e)}notify(e){eb++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{eS()}}}let eF=new WeakMap,eL=Symbol(""),e$=Symbol(""),eD=Symbol("");function eV(e,t,n){if(eN&&s){let t=eF.get(e);t||eF.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new eP),r.map=t,r.key=n),r.track()}}function eB(e,t,n,r,i,l){let s=eF.get(e);if(!s)return void eO++;let o=e=>{e&&e.trigger()};if(eb++,"clear"===t)s.forEach(o);else{let i=E(e),l=i&&L(n);if(i&&"length"===n){let e=Number(r);s.forEach((t,n)=>{("length"===n||n===eD||!O(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),l&&o(s.get(eD)),t){case"add":if(i)l&&o(s.get("length"));else{let t;o(s.get(eL));"[object Map]"===(t=e,F.call(t))&&o(s.get(e$))}break;case"delete":if(!i){let t;o(s.get(eL));"[object Map]"===(t=e,F.call(t))&&o(s.get(e$))}break;case"set":let a;"[object Map]"===(a=e,F.call(a))&&o(s.get(eL))}}eS()}function ej(e){let t=tm(e);return t===e?t:(eV(t,"iterate",eD),tf(e)?t:t.map(ty))}function eU(e){return eV(e=tm(e),"iterate",eD),e}function eH(e,t){return tp(e)?td(e)?tb(ty(t)):tb(t):ty(t)}let eq={__proto__:null,[Symbol.iterator](){return eW(this,Symbol.iterator,e=>eH(this,e))},concat(...e){return ej(this).concat(...e.map(e=>E(e)?ej(e):e))},entries(){return eW(this,"entries",e=>(e[1]=eH(this,e[1]),e))},every(e,t){return ez(this,"every",e,t,void 0,arguments)},filter(e,t){return ez(this,"filter",e,t,e=>e.map(e=>eH(this,e)),arguments)},find(e,t){return ez(this,"find",e,t,e=>eH(this,e),arguments)},findIndex(e,t){return ez(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ez(this,"findLast",e,t,e=>eH(this,e),arguments)},findLastIndex(e,t){return ez(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ez(this,"forEach",e,t,void 0,arguments)},includes(...e){return eG(this,"includes",e)},indexOf(...e){return eG(this,"indexOf",e)},join(e){return ej(this).join(e)},lastIndexOf(...e){return eG(this,"lastIndexOf",e)},map(e,t){return ez(this,"map",e,t,void 0,arguments)},pop(){return eX(this,"pop")},push(...e){return eX(this,"push",e)},reduce(e,...t){return eJ(this,"reduce",e,t)},reduceRight(e,...t){return eJ(this,"reduceRight",e,t)},shift(){return eX(this,"shift")},some(e,t){return ez(this,"some",e,t,void 0,arguments)},splice(...e){return eX(this,"splice",e)},toReversed(){return ej(this).toReversed()},toSorted(e){return ej(this).toSorted(e)},toSpliced(...e){return ej(this).toSpliced(...e)},unshift(...e){return eX(this,"unshift",e)},values(){return eW(this,"values",e=>eH(this,e))}};function eW(e,t,n){let r=eU(e),i=r[t]();return r===e||tf(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}let eK=Array.prototype;function ez(e,t,n,r,i,l){let s=eU(e),o=s!==e&&!tf(e),a=s[t];if(a!==eK[t]){let t=a.apply(e,l);return o?ty(t):t}let c=n;s!==e&&(o?c=function(t,r){return n.call(this,eH(e,t),r,e)}:n.length>2&&(c=function(t,r){return n.call(this,t,r,e)}));let u=a.call(s,c,r);return o&&i?i(u):u}function eJ(e,t,n,r){let i=eU(e),l=i!==e&&!tf(e),s=n,o=!1;i!==e&&(l?(o=0===r.length,s=function(t,r,i){return o&&(o=!1,t=eH(e,t)),n.call(this,t,eH(e,r),i,e)}):n.length>3&&(s=function(t,r,i){return n.call(this,t,r,i,e)}));let a=i[t](s,...r);return o?eH(e,a):a}function eG(e,t,n){let r=tm(e);eV(r,"iterate",eD);let i=r[t](...n);return(-1===i||!1===i)&&tg(n[0])?(n[0]=tm(n[0]),r[t](...n)):i}function eX(e,t,n=[]){eE(),eb++;let r=tm(e)[t].apply(e,n);return eS(),eI(),r}let eQ=y("__proto__,__v_isRef,__isVue"),eZ=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(O));function eY(e){O(e)||(e=String(e));let t=tm(this);return eV(t,"has",e),t.hasOwnProperty(e)}class e0{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;if("__v_raw"===t)return n===(r?i?to:ts:i?tl:ti).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let l=E(e);if(!r){let e;if(l&&(e=eq[t]))return e;if("hasOwnProperty"===t)return eY}let s=Reflect.get(e,t,t_(e)?e:n);if((O(t)?eZ.has(t):eQ(t))||(r||eV(e,"get",t),i))return s;if(t_(s)){let e=l&&L(t)?s:s.value;return r&&M(e)?tu(e):e}return M(s)?r?tu(s):ta(s):s}}class e1 extends e0{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],l=E(e)&&L(t);if(!this._isShallow){let e=tp(i);if(tf(n)||tp(n)||(i=tm(i),n=tm(n)),!l&&t_(i)&&!t_(n))if(e)return!0;else return i.value=n,!0}let s=l?Number(t)e;function e9(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function e7(e,t){let n,r=(T(n={get(n){let r=this.__v_raw,i=tm(r),l=tm(n);e||(K(n,l)&&eV(i,"get",n),eV(i,"get",l));let{has:s}=Reflect.getPrototypeOf(i),o=t?e5:e?tb:ty;return s.call(i,n)?o(r.get(n)):s.call(i,l)?o(r.get(l)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||eV(tm(t),"iterate",eL),t.size},has(t){let n=this.__v_raw,r=tm(n),i=tm(t);return e||(K(t,i)&&eV(r,"has",t),eV(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,l=i.__v_raw,s=tm(l),o=t?e5:e?tb:ty;return e||eV(s,"iterate",eL),l.forEach((e,t)=>n.call(r,o(e),o(t),i))}},e?{add:e9("add"),set:e9("set"),delete:e9("delete"),clear:e9("clear")}:{add(e){let n=tm(this),r=Reflect.getPrototypeOf(n),i=tm(e),l=t||tf(e)||tp(e)?e:i;return r.has.call(n,l)||K(e,l)&&r.has.call(n,e)||K(i,l)&&r.has.call(n,i)||(n.add(l),eB(n,"add",l,l)),this},set(e,n){t||tf(n)||tp(n)||(n=tm(n));let r=tm(this),{has:i,get:l}=Reflect.getPrototypeOf(r),s=i.call(r,e);s||(e=tm(e),s=i.call(r,e));let o=l.call(r,e);return r.set(e,n),s?K(n,o)&&eB(r,"set",e,n):eB(r,"add",e,n),this},delete(e){let t=tm(this),{has:n,get:r}=Reflect.getPrototypeOf(t),i=n.call(t,e);i||(e=tm(e),i=n.call(t,e)),r&&r.call(t,e);let l=t.delete(e);return i&&eB(t,"delete",e,void 0),l},clear(){let e=tm(this),t=0!==e.size,n=e.clear();return t&&eB(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i,l=this.__v_raw,s=tm(l),o="[object Map]"===(i=s,F.call(i)),a="entries"===r||r===Symbol.iterator&&o,c=l[r](...n),u=t?e5:e?tb:ty;return e||eV(s,"iterate","keys"===r&&o?e$:eL),T(Object.create(c),{next(){let{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:a?[u(e[0]),u(e[1])]:u(e),done:t}}})}}),n);return(t,n,i)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(A(r,n)&&n in t?r:t,n,i)}let te={get:e7(!1,!1)},tt={get:e7(!1,!0)},tn={get:e7(!0,!1)},tr={get:e7(!0,!0)},ti=new WeakMap,tl=new WeakMap,ts=new WeakMap,to=new WeakMap;function ta(e){return tp(e)?e:th(e,!1,e6,te,ti)}function tc(e){return th(e,!1,e4,tt,tl)}function tu(e){return th(e,!0,e3,tn,ts)}function th(e,t,n,r,i){var l;let s;if(!M(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=(l=e).__v_skip||!Object.isExtensible(l)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((s=l,F.call(s)).slice(8,-1));if(0===o)return e;let a=i.get(e);if(a)return a;let c=new Proxy(e,2===o?r:n);return i.set(e,c),c}function td(e){return tp(e)?td(e.__v_raw):!!(e&&e.__v_isReactive)}function tp(e){return!!(e&&e.__v_isReadonly)}function tf(e){return!!(e&&e.__v_isShallow)}function tg(e){return!!e&&!!e.__v_raw}function tm(e){let t=e&&e.__v_raw;return t?tm(t):e}function tv(e){return!A(e,"__v_skip")&&Object.isExtensible(e)&&J(e,"__v_skip",!0),e}let ty=e=>M(e)?ta(e):e,tb=e=>M(e)?tu(e):e;function t_(e){return!!e&&!0===e.__v_isRef}function tS(e){return tC(e,!1)}function tx(e){return tC(e,!0)}function tC(e,t){return t_(e)?e:new tk(e,t)}class tk{constructor(e,t){this.dep=new eP,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:tm(e),this._value=t?e:ty(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tf(e)||tp(e);K(e=n?e:tm(e),t)&&(this._rawValue=e,this._value=n?e:ty(e),this.dep.trigger())}}function tT(e){return t_(e)?e.value:e}let tw={get:(e,t,n)=>"__v_raw"===t?e:tT(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return t_(i)&&!t_(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tN(e){return td(e)?e:new Proxy(e,tw)}class tA{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new eP,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tE(e){return new tA(e)}class tI{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=O(t)?t:String(t),this._raw=tm(e);let r=!0,i=e;if(!E(e)||O(this._key)||!L(this._key))do r=!tg(i)||tf(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=tT(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&t_(this._raw[this._key])){let t=this._object[this._key];if(t_(t)){t.value=e;return}}this._object[this._key]=e}get dep(){var e,t;let n;return e=this._raw,t=this._key,(n=eF.get(e))&&n.get(t)}}class tR{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}class tO{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eP(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eO-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&s!==this)return e_(this,!0),!0}get value(){let e=this.dep.track();return eT(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tM={},tP=new WeakMap;function tF(e,t=!1,n=g){if(n){let t=tP.get(n);t||tP.set(n,t=[]),t.push(e)}}function tL(e,t=1/0,n){if(t<=0||!M(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,t_(e))tL(e.value,t,n);else if(E(e))for(let r=0;r{tL(e,t,n)});else{let r;if("[object Object]"===(r=e,F.call(r))){for(let r in e)tL(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&tL(e[r],t,n)}}}return e}function t$(e,t,n,r){try{return r?e(...r):e()}catch(e){tV(e,t,n)}}function tD(e,t,n,r){if(I(e)){let i=t$(e,t,n,r);return i&&P(i)&&i.catch(e=>{tV(e,t,n)}),i}if(E(e)){let i=[];for(let l=0;l=tY(n)?tB.push(e):tB.splice(function(e){let t=tj+1,n=tB.length;for(;t>>1,i=tB[r],l=tY(i);ltY(e)-tY(t));if(tU.length=0,tH)return void tH.push(...e);for(tq=0,tH=e;tqnull==e.id?2&e.flags?-1:1/0:e.id,t0=null,t1=null;function t2(e){let t=t0;return t0=e,t1=e&&e.type.__scopeId||null,t}function t6(e,t=t0,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&il(-1);let l=t2(t);try{i=e(...n)}finally{t2(l),r._d&&il(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function t3(e,t,n,r){let i=e.dirs,l=t&&t.dirs;for(let s=0;s1)return n&&I(t)?t.call(r&&r.proxy):t}}let t5=Symbol.for("v-scx");function t9(e,t){return t7(e,null,{flush:"sync"})}function t7(e,t,n=b){let{flush:r}=n,i=T({},n),s=iT;i.call=(e,t,n)=>tD(e,s,t,n);let o=!1;return"post"===r?i.scheduler=e=>{rq(e,s&&s.suspense)}:"sync"!==r&&(o=!0,i.scheduler=(e,t)=>{t?e():tJ(e)}),i.augmentJob=e=>{t&&(e.flags|=4),o&&(e.flags|=2,s&&(e.id=s.uid,e.i=s))},function(e,t,n=b){let r,i,s,o,{immediate:a,deep:c,once:u,scheduler:h,augmentJob:d,call:p}=n,f=e=>c?e:tf(e)||!1===c||0===c?tL(e,1):tL(e),m=!1,y=!1;if(t_(e)?(i=()=>e.value,m=tf(e)):td(e)?(i=()=>f(e),m=!0):E(e)?(y=!0,m=e.some(e=>td(e)||tf(e)),i=()=>e.map(e=>t_(e)?e.value:td(e)?f(e):I(e)?p?p(e,2):e():void 0)):i=I(e)?t?p?()=>p(e,2):e:()=>{if(s){eE();try{s()}finally{eI()}}let t=g;g=r;try{return p?p(e,3,[o]):e(o)}finally{g=t}}:S,t&&c){let e=i,t=!0===c?1/0:c;i=()=>tL(e(),t)}let _=l,x=()=>{r.stop(),_&&_.active&&w(_.effects,r)};if(u&&t){let e=t;t=(...t)=>{e(...t),x()}}let C=y?Array(e.length).fill(tM):tM,k=e=>{if(1&r.flags&&(r.dirty||e))if(t){let e=r.run();if(c||m||(y?e.some((e,t)=>K(e,C[t])):K(e,C))){s&&s();let n=g;g=r;try{let n=[e,C===tM?void 0:y&&C[0]===tM?[]:C,o];C=e,p?p(t,3,n):t(...n)}finally{g=n}}}else r.run()};return d&&d(k),(r=new ey(i)).scheduler=h?()=>h(k,!1):k,o=e=>tF(e,!1,r),s=r.onStop=()=>{let e=tP.get(r);if(e){if(p)p(e,4);else for(let t of e)t();tP.delete(r)}},t?a?k(!0):C=r.run():h?h(k.bind(null,!0),!0):r.run(),x.pause=r.pause.bind(r),x.resume=r.resume.bind(r),x.stop=x,x}(e,t,i)}function ne(e,t,n){let r,i=this.proxy,l=R(e)?e.includes(".")?nt(i,e):()=>i[e]:e.bind(i,i);I(t)?r=t:(r=t.handler,n=t);let s=iN(this),o=t7(l,r.bind(i),n);return s(),o}function nt(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;ee&&(e.disabled||""===e.disabled),nl=e=>"u">typeof SVGElement&&e instanceof SVGElement,ns=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,no=(e,t)=>{let n=e&&e.to;return R(n)?t?t(n):null:n};function na(e,t,n,{o:{insert:r},m:i},l=2){0===l&&r(e.targetAnchor,t,n);let{el:s,anchor:o,shapeFlag:a,children:c,props:u}=e,h=2===l;if(h&&r(s,t,n),(!h||ni(u))&&16&a)for(let e=0;e{e.isMounted=!0}),n2(()=>{e.isUnmounting=!0}),e}let nf=[Function,Array],ng={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:nf,onEnter:nf,onAfterEnter:nf,onEnterCancelled:nf,onBeforeLeave:nf,onLeave:nf,onAfterLeave:nf,onLeaveCancelled:nf,onBeforeAppear:nf,onAppear:nf,onAfterAppear:nf,onAppearCancelled:nf},nm=e=>{let t=e.subTree;return t.component?nm(t.component):t};function nv(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==r5){t=n;break}}return t}let ny={name:"BaseTransition",props:ng,setup(e,{slots:t}){let n=iw(),r=np();return()=>{let i=t.default&&nk(t.default(),!0);if(!i||!i.length)return;let l=nv(i),s=tm(e),{mode:o}=s;if(r.isLeaving)return nS(l);let a=nx(l);if(!a)return nS(l);let c=n_(a,s,r,n,e=>c=e);a.type!==r5&&nC(a,c);let u=n.subTree&&nx(n.subTree);if(u&&u.type!==r5&&!ic(u,a)&&nm(n).type!==r5){let e=n_(u,s,r,n);if(nC(u,e),"out-in"===o&&a.type!==r5)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,u=void 0},nS(l);"in-out"===o&&a.type!==r5?e.delayLeave=(e,t,n)=>{nb(r,u)[String(u.key)]=u,e[nh]=()=>{t(),e[nh]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{n(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return l}}};function nb(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function n_(e,t,n,r,i){let{appear:l,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:h,onBeforeLeave:d,onLeave:p,onAfterLeave:f,onLeaveCancelled:g,onBeforeAppear:m,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,S=String(e.key),x=nb(n,e),C=(e,t)=>{e&&tD(e,r,9,t)},k=(e,t)=>{let n=t[1];C(e,t),E(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:s,persisted:o,beforeEnter(t){let r=a;if(!n.isMounted)if(!l)return;else r=m||a;t[nh]&&t[nh](!0);let i=x[S];i&&ic(e,i)&&i.el[nh]&&i.el[nh](),C(r,[t])},enter(t){if(x[S]===e)return;let r=c,i=u,s=h;if(!n.isMounted)if(!l)return;else r=y||c,i=b||u,s=_||h;let o=!1;t[nd]=e=>{o||(o=!0,e?C(s,[t]):C(i,[t]),T.delayedLeave&&T.delayedLeave(),t[nd]=void 0)};let a=t[nd].bind(null,!1);r?k(r,[t,a]):a()},leave(t,r){let i=String(e.key);if(t[nd]&&t[nd](!0),n.isUnmounting)return r();C(d,[t]);let l=!1;t[nh]=n=>{l||(l=!0,r(),n?C(g,[t]):C(f,[t]),t[nh]=void 0,x[i]===e&&delete x[i])};let s=t[nh].bind(null,!1);x[i]=e,p?k(p,[t,s]):s()},clone(e){let l=n_(e,t,n,r,i);return i&&i(l),l}};return T}function nS(e){if(nH(e))return(e=im(e)).children=null,e}function nx(e){if(!nH(e))return e.type.__isTeleport&&e.children?nv(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&I(n.default))return n.default()}}function nC(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nC(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nk(e,t=!1,n){let r=[],i=0;for(let l=0;l1)for(let e=0;enE(e,t&&(E(t)?t[l]:t),n,r,i));if(nj(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&nE(e,t,n,r.component.subTree);return}let l=4&r.shapeFlag?iL(r.component):r.el,s=i?null:l,{i:o,r:a}=e,c=t&&t.r,u=o.refs===b?o.refs={}:o.refs,h=o.setupState,d=tm(h),p=h===b?x:e=>!nN(u,e)&&A(d,e),f=(e,t)=>!(t&&nN(u,t));if(null!=c&&c!==a&&(nI(t),R(c)?(u[c]=null,p(c)&&(h[c]=null)):t_(c)&&(f(c,t.k)&&(c.value=null),t.k&&(u[t.k]=null))),I(a))t$(a,o,12,[s,u]);else{let t=R(a),r=t_(a);if(t||r){let o=()=>{if(e.f){let n=t?p(a)?h[a]:u[a]:f()||!e.k?a.value:u[e.k];if(i)E(n)&&w(n,l);else if(E(n))n.includes(l)||n.push(l);else if(t)u[a]=[l],p(a)&&(h[a]=u[a]);else{let t=[l];f(a,e.k)&&(a.value=t),e.k&&(u[e.k]=t)}}else t?(u[a]=s,p(a)&&(h[a]=s)):r&&(f(a,e.k)&&(a.value=s),e.k&&(u[e.k]=s))};if(s){let t=()=>{o(),nA.delete(e)};t.id=-1,nA.set(e,t),rq(t,n)}else nI(e),o()}}}function nI(e){let t=nA.get(e);t&&(t.flags|=8,nA.delete(e))}let nR=!1,nO=()=>{nR||(console.error("Hydration completed but contains mismatches."),nR=!0)},nM=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},nP=e=>8===e.nodeType;function nF(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:l,parentNode:s,remove:o,insert:a,createComment:c}}=e,u=(n,r,o,c,b,_=!1)=>{_=_||!!r.dynamicChildren;let S=nP(n)&&"["===n.data,x=()=>f(n,r,o,c,b,S),{type:C,ref:k,shapeFlag:T,patchFlag:w}=r,N=n.nodeType;r.el=n,-2===w&&(_=!1,r.dynamicChildren=null);let A=null;switch(C){case r8:3!==N?""===r.children?(a(r.el=i(""),s(n),n),A=n):A=x():(n.data!==r.children&&(nO(),n.data=r.children),A=l(n));break;case r5:y(n)?(A=l(n),m(r.el=n.content.firstChild,n,o)):A=8!==N||S?x():l(n);break;case r9:if(S&&(N=(n=l(n)).nodeType),1===N||3===N){A=n;let e=!r.children.length;for(let t=0;t{s=s||!!t.dynamicChildren;let{type:a,props:c,patchFlag:u,shapeFlag:h,dirs:p,transition:f}=t,g="input"===a||"option"===a;if(g||-1!==u){let a;p&&t3(t,null,n,"created");let b=!1;if(y(e)){b=rG(null,f)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(b){let e=r.getAttribute("class");e&&(r.$cls=e),f.beforeEnter(r)}m(r,e,n),t.el=e=r}if(16&h&&!(c&&(c.innerHTML||c.textContent))){let r=d(e.firstChild,t,e,n,i,l,s);for(;r;){nD(e,1)||nO();let t=r;r=r.nextSibling,o(t)}}else if(8&h){let n=t.children;` +`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1));let{textContent:r}=e;r!==n&&r!==n.replace(/\r\n|\r/g,` +`)&&(nD(e,0)||nO(),e.textContent=t.children)}if(c){if(g||!s||48&u){let t=e.tagName.includes("-");for(let i in c)(g&&(i.endsWith("value")||"indeterminate"===i)||C(i)&&!$(i)||"."===i[0]||t&&!$(i))&&r(e,i,null,c[i],void 0,n)}else if(c.onClick)r(e,"onClick",null,c.onClick,void 0,n);else if(4&u&&td(c.style))for(let e in c.style)c.style[e]}(a=c&&c.onVnodeBeforeMount)&&ix(a,n,t),p&&t3(t,null,n,"beforeMount"),((a=c&&c.onVnodeMounted)||p||b)&&r6(()=>{a&&ix(a,n,t),b&&f.enter(e),p&&t3(t,null,n,"mounted")},i)}return e.nextSibling},d=(e,t,r,s,o,c,h)=>{h=h||!!t.dynamicChildren;let d=t.children,p=d.length;for(let t=0;t{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let h=s(e),p=d(l(e),t,h,n,r,i,o);return p&&nP(p)&&"]"===p.data?l(t.anchor=p):(nO(),a(t.anchor=c("]"),h,p),p)},f=(e,t,r,i,a,c)=>{if(nD(e.parentElement,1)||nO(),t.el=null,c){let t=g(e);for(;;){let n=l(e);if(n&&n!==t)o(n);else break}}let u=l(e),h=s(e);return o(e),n(null,t,h,u,r,i,nM(h),a),r&&(r.vnode.el=t.el,rR(r,t.el)),u},g=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=l(e))&&nP(e)&&(e.data===t&&r++,e.data===n))if(0===r)return l(e);else r--;return e},m=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),tZ(),t._vnode=e;return}u(t.firstChild,e,null,null,null),tZ(),t._vnode=e},u]}let nL="data-allow-mismatch",n$={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function nD(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nL);)e=e.parentElement;let n=e&&e.getAttribute(nL);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(n$[t])}}let nV=Q().requestIdleCallback||(e=>setTimeout(e,1)),nB=Q().cancelIdleCallback||(e=>clearTimeout(e)),nj=e=>!!e.type.__asyncLoader;function nU(e,t){let{ref:n,props:r,children:i,ce:l}=t.vnode,s=ip(e,r,i);return s.ref=n,s.ce=l,delete t.vnode.ce,s}let nH=e=>e.type.__isKeepAlive;function nq(e,t){let n;if(E(e))return e.some(e=>nq(e,t));if(R(e))return e.split(",").includes(t);return"[object RegExp]"===(n=e,F.call(n))&&(e.lastIndex=0,e.test(t))}function nW(e,t){nz(e,"a",t)}function nK(e,t){nz(e,"da",t)}function nz(e,t,n=iT){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(nX(t,r,n),n){let e=n.parent;for(;e&&e.parent;)nH(e.parent.vnode)&&function(e,t,n,r){let i=nX(t,e,r,!0);n6(()=>{w(r[t],i)},n)}(r,t,n,e),e=e.parent}}function nJ(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function nG(e){return 128&e.shapeFlag?e.ssContent:e}function nX(e,t,n=iT,r=!1){if(n){let i=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...r)=>{eE();let i=iN(n),l=tD(t,n,e,r);return i(),eI(),l});return r?i.unshift(l):i.push(l),l}}let nQ=e=>(t,n=iT)=>{iI&&"sp"!==e||nX(e,(...e)=>t(...e),n)},nZ=nQ("bm"),nY=nQ("m"),n0=nQ("bu"),n1=nQ("u"),n2=nQ("bum"),n6=nQ("um"),n3=nQ("sp"),n4=nQ("rtg"),n8=nQ("rtc");function n5(e,t=iT){nX("ec",e,t)}let n9="components",n7=Symbol.for("v-ndc");function re(e,t,n=!0,r=!1){let i=t0||iT;if(i){let n=i.type;if(e===n9){let e=i$(n,!1);if(e&&(e===t||e===j(t)||e===q(j(t))))return n}let l=rt(i[e]||n[e],t)||rt(i.appContext[e],t);return!l&&r?n:l}}function rt(e,t){return e&&(e[t]||e[j(t)]||e[q(j(t))])}let rn=e=>e?iE(e)?iL(e):rn(e.parent):null,rr=T(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=>rn(e.parent),$root:e=>rn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>rh(e),$forceUpdate:e=>e.f||(e.f=()=>{tJ(e.update)}),$nextTick:e=>e.n||(e.n=tz.bind(e.proxy)),$watch:e=>ne.bind(e)}),ri=(e,t)=>e!==b&&!e.__isScriptSetup&&A(e,t),rl={get({_:e},t){let n,r;if("__v_skip"===t)return!0;let{ctx:i,setupState:l,data:s,props:o,accessCache:a,type:c,appContext:u}=e;if("$"!==t[0]){let e=a[t];if(void 0!==e)switch(e){case 1:return l[t];case 2:return s[t];case 4:return i[t];case 3:return o[t]}else{if(ri(l,t))return a[t]=1,l[t];if(s!==b&&A(s,t))return a[t]=2,s[t];if(A(o,t))return a[t]=3,o[t];if(i!==b&&A(i,t))return a[t]=4,i[t];rc&&(a[t]=0)}}let h=rr[t];return h?("$attrs"===t&&eV(e.attrs,"get",""),h(e)):(n=c.__cssModules)&&(n=n[t])?n:i!==b&&A(i,t)?(a[t]=4,i[t]):A(r=u.config.globalProperties,t)?r[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:l}=e;return ri(i,t)?(i[t]=n,!0):r!==b&&A(r,t)?(r[t]=n,!0):!A(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:l,type:s}},o){let a;return!!(n[o]||e!==b&&"$"!==o[0]&&A(e,o)||ri(t,o)||A(l,o)||A(r,o)||A(rr,o)||A(i.config.globalProperties,o)||(a=s.__cssModules)&&a[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:A(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},rs=T({},rl,{get(e,t){if(t!==Symbol.unscopables)return rl.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!Z(t)});function ro(e){let t=iw();return t.setupContext||(t.setupContext=iF(t))}function ra(e){return E(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let rc=!0;function ru(e,t,n){tD(E(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function rh(e){let t,n=e.type,{mixins:r,extends:i}=n,{mixins:l,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:l.length||r||i?(t={},l.length&&l.forEach(e=>rd(t,e,o,!0)),rd(t,n,o)):t=n,M(n)&&s.set(n,t),t}function rd(e,t,n,r=!1){let{mixins:i,extends:l}=t;for(let s in l&&rd(e,l,n,!0),i&&i.forEach(t=>rd(e,t,n,!0)),t)if(r&&"expose"===s);else{let r=rp[s]||n&&n[s];e[s]=r?r(e[s],t[s]):t[s]}return e}let rp={data:rf,props:ry,emits:ry,methods:rv,computed:rv,beforeCreate:rm,created:rm,beforeMount:rm,mounted:rm,beforeUpdate:rm,updated:rm,beforeDestroy:rm,beforeUnmount:rm,destroyed:rm,unmounted:rm,activated:rm,deactivated:rm,errorCaptured:rm,serverPrefetch:rm,components:rv,directives:rv,watch:function(e,t){if(!e)return t;if(!t)return e;let n=T(Object.create(null),e);for(let r in t)n[r]=rm(e[r],t[r]);return n},provide:rf,inject:function(e,t){return rv(rg(e),rg(t))}};function rf(e,t){return t?e?function(){return T(I(e)?e.call(this,this):e,I(t)?t.call(this,this):t)}:t:e}function rg(e){if(E(e)){let t={};for(let n=0;n"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${j(t)}Modifiers`]||e[`${H(t)}Modifiers`];function rC(e,t,...n){let r;if(e.isUnmounted)return;let i=e.vnode.props||b,l=n,s=t.startsWith("update:"),o=s&&rx(i,t.slice(7));o&&(o.trim&&(l=n.map(e=>R(e)?e.trim():e)),o.number&&(l=n.map(G)));let a=i[r=W(t)]||i[r=W(j(t))];!a&&s&&(a=i[r=W(H(t))]),a&&tD(a,e,6,l);let c=i[r+"Once"];if(c){if(e.emitted){if(e.emitted[r])return}else e.emitted={};e.emitted[r]=!0,tD(c,e,6,l)}}let rk=new WeakMap;function rT(e,t){return!!e&&!!C(t)&&(A(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||A(e,H(t))||A(e,t))}function rw(e){let t,n,{type:r,vnode:i,proxy:l,withProxy:s,propsOptions:[o],slots:a,attrs:c,emit:u,render:h,renderCache:d,props:p,data:f,setupState:g,ctx:m,inheritAttrs:y}=e,b=t2(e);try{if(4&i.shapeFlag){let e=s||l;t=iy(h.call(e,e,d,p,g,f,m)),n=c}else t=iy(r.length>1?r(p,{attrs:c,slots:a,emit:u}):r(p,null)),n=r.props?c:rN(c)}catch(n){r7.length=0,tV(n,e,1),t=ip(r5)}let _=t;if(n&&!1!==y){let e=Object.keys(n),{shapeFlag:t}=_;e.length&&7&t&&(o&&e.some(k)&&(n=rA(n,o)),_=im(_,n,!1,!0))}return i.dirs&&((_=im(_,null,!1,!0)).dirs=_.dirs?_.dirs.concat(i.dirs):i.dirs),i.transition&&nC(_,i.transition),t=_,t2(b),t}let rN=e=>{let t;for(let n in e)("class"===n||"style"===n||C(n))&&((t||(t={}))[n]=e[n]);return t},rA=(e,t)=>{let n={};for(let r in e)k(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function rE(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;iObject.getPrototypeOf(e)===rO;function rP(e,t,n,r){let i,[l,s]=e.propsOptions,o=!1;if(t)for(let a in t){let c;if($(a))continue;let u=t[a];l&&A(l,c=j(a))?s&&s.includes(c)?(i||(i={}))[c]=u:n[c]=u:rT(e.emitsOptions,a)||a in r&&u===r[a]||(r[a]=u,o=!0)}if(s){let t=tm(n),r=i||b;for(let i=0;i"_"===e||"_ctx"===e||"$stable"===e,rV=e=>E(e)?e.map(iy):[iy(e)],rB=(e,t,n)=>{if(t._n)return t;let r=t6((...e)=>rV(t(...e)),n);return r._c=!1,r},rj=(e,t,n)=>{let r=e._ctx;for(let n in e){if(rD(n))continue;let i=e[n];if(I(i))t[n]=rB(n,i,r);else if(null!=i){let e=rV(i);t[n]=()=>e}}},rU=(e,t)=>{let n=rV(t);e.slots.default=()=>n},rH=(e,t,n)=>{for(let r in t)(n||!rD(r))&&(e[r]=t[r])},rq=r6;function rW(e){return rK(e,nF)}function rK(e,t){var n;let r,i;Q().__VUE__=!0;let{insert:l,remove:s,patchProp:o,createElement:a,createText:c,createComment:h,setText:d,setElementText:p,parentNode:f,nextSibling:g,setScopeId:m=S,insertStaticContent:y}=e,x=(e,t,n,r=null,i=null,l=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!ic(e,t)&&(r=es(e),et(e,i,l,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:c,ref:u,shapeFlag:h}=t;switch(c){case r8:C(e,t,n,r);break;case r5:k(e,t,n,r);break;case r9:null==e&&w(t,n,r,s);break;case r4:B(e,t,n,r,i,l,s,o,a);break;default:1&h?N(e,t,n,r,i,l,s,o,a):6&h?U(e,t,n,r,i,l,s,o,a):64&h?c.process(e,t,n,r,i,l,s,o,a,ec):128&h&&c.process(e,t,n,r,i,l,s,o,a,ec)}null!=u&&i?nE(u,e&&e.ref,l,t||e,!t):null==u&&e&&null!=e.ref&&nE(e.ref,null,l,e,!0)},C=(e,t,n,r)=>{if(null==e)l(t.el=c(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&d(n,t.children)}},k=(e,t,n,r)=>{null==e?l(t.el=h(t.children||""),n,r):t.el=e.el},w=(e,t,n,r)=>{[e.el,e.anchor]=y(e.children,t,n,r,e.el,e.anchor)},N=(e,t,n,r,i,l,s,o,a)=>{if("svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e)R(t,n,r,i,l,s,o,a);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),L(e,t,i,l,s,o,a)}finally{n&&n._endPatch()}}},R=(e,t,n,r,i,s,c,u)=>{let h,d,{props:f,shapeFlag:g,transition:m,dirs:y}=e;if(h=e.el=a(e.type,s,f&&f.is,f),8&g?p(h,e.children):16&g&&F(e.children,h,null,r,i,rz(e,s),c,u),y&&t3(e,null,r,"created"),O(h,e,e.scopeId,c,r),f){for(let e in f)"value"===e||$(e)||o(h,e,null,f[e],s,r);"value"in f&&o(h,"value",null,f.value,s),(d=f.onVnodeBeforeMount)&&ix(d,r,e)}y&&t3(e,null,r,"beforeMount");let b=rG(i,m);b&&m.beforeEnter(h),l(h,t,n),((d=f&&f.onVnodeMounted)||b||y)&&rq(()=>{d&&ix(d,r,e),b&&m.enter(h),y&&t3(e,null,r,"mounted")},i)},O=(e,t,n,r,i)=>{if(n&&m(e,n),r)for(let t=0;t{for(let c=a;c{let a,c=t.el=e.el,{patchFlag:u,dynamicChildren:h,dirs:d}=t;u|=16&e.patchFlag;let f=e.props||b,g=t.props||b;if(n&&rJ(n,!1),(a=g.onVnodeBeforeUpdate)&&ix(a,n,t,e),d&&t3(t,e,n,"beforeUpdate"),n&&rJ(n,!0),(f.innerHTML&&null==g.innerHTML||f.textContent&&null==g.textContent)&&p(c,""),h?D(e.dynamicChildren,h,c,n,r,rz(t,i),l):s||X(e,t,c,null,n,r,rz(t,i),l,!1),u>0){if(16&u)V(c,f,g,n,i);else if(2&u&&f.class!==g.class&&o(c,"class",null,g.class,i),4&u&&o(c,"style",f.style,g.style,i),8&u){let e=t.dynamicProps;for(let t=0;t{a&&ix(a,n,t,e),d&&t3(t,e,n,"updated")},r)},D=(e,t,n,r,i,l,s)=>{for(let o=0;o{if(t!==n){if(t!==b)for(let l in t)$(l)||l in n||o(e,l,t[l],null,i,r);for(let l in n){if($(l))continue;let s=n[l],a=t[l];s!==a&&"value"!==l&&o(e,l,a,s,i,r)}"value"in n&&o(e,"value",t.value,n.value,i)}},B=(e,t,n,r,i,s,o,a,u)=>{let h=t.el=e?e.el:c(""),d=t.anchor=e?e.anchor:c(""),{patchFlag:p,dynamicChildren:f,slotScopeIds:g}=t;g&&(a=a?a.concat(g):g),null==e?(l(h,n,r),l(d,n,r),F(t.children||[],n,d,i,s,o,a,u)):p>0&&64&p&&f&&e.dynamicChildren&&e.dynamicChildren.length===f.length?(D(e.dynamicChildren,f,n,i,s,o,a),(null!=t.key||i&&t===i.subTree)&&rX(e,t,!0)):X(e,t,n,d,i,s,o,a,u)},U=(e,t,n,r,i,l,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?i.ctx.activate(t,n,r,s,a):q(t,n,r,i,l,s,a):W(e,t,a)},q=(e,t,n,r,i,l,s)=>{var o,a,c;let h,d,p,f=(o=e,a=r,c=i,h=o.type,d=(a?a.appContext:o.appContext)||iC,(p={uid:ik++,vnode:o,type:h,parent:a,appContext:d,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new em(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:a?a.provides:Object.create(d.provides),ids:a?a.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,r=!1){let i=r?rL:n.propsCache,l=i.get(t);if(l)return l;let s=t.props,o={},a=[],c=!1;if(!I(t)){let i=t=>{c=!0;let[r,i]=e(t,n,!0);T(o,r),i&&a.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}if(!s&&!c)return M(t)&&i.set(t,_),_;if(E(s))for(let e=0;e{let r=e(t,n,!0);r&&(a=!0,T(o,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return s||a?(E(s)?s.forEach(e=>o[e]=null):T(o,s),M(t)&&i.set(t,o),o):(M(t)&&i.set(t,null),null)}(h,d),emit:null,emitted:null,propsDefaults:b,inheritAttrs:h.inheritAttrs,ctx:b,data:b,props:b,attrs:b,slots:b,refs:b,setupState:b,setupContext:null,suspense:c,suspenseId:c?c.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null}).ctx={_:p},p.root=a?a.root:p,p.emit=rC.bind(null,p),o.ce&&o.ce(p),e.component=p);if(nH(e)&&(f.ctx.renderer=ec),function(e,t=!1,n=!1){t&&u(t);let{props:r,children:i}=e.vnode,l=iE(e);!function(e,t,n,r=!1){let i={},l=Object.create(rO);for(let n in e.propsDefaults=Object.create(null),rP(e,t,i,l),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:tc(i):e.type.props?e.props=i:e.props=l,e.attrs=l}(e,r,l,t);var s=n||t;let o=e.slots=Object.create(rO);if(32&e.vnode.shapeFlag){let e=i._;e?(rH(o,i,s),s&&J(o,"_",e,!0)):rj(i,o)}else i&&rU(e,i);l&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,rl);let{setup:r}=n;if(r){eE();let n=e.setupContext=r.length>1?iF(e):null,i=iN(e),l=t$(r,e,0,[e.props,n]),s=P(l);if(eI(),i(),(s||e.sp)&&!nj(e)&&nw(e),s){if(l.then(iA,iA),t)return l.then(n=>{iR(e,n,t)}).catch(t=>{tV(t,e,0)});e.asyncDep=l}else iR(e,l,t)}else iM(e,t)}(e,t),t&&u(!1)}(f,!1,s),f.asyncDep){if(i&&i.registerDep(f,K,s),!e.el){let r=f.subTree=ip(r5);k(null,r,t,n),e.placeholder=r.el}}else K(f,e,t,n,i,l,s)},W=(e,t,n)=>{let r=t.component=e.component;if(function(e,t,n){let{props:r,children:i,component:l}=e,{props:s,children:o,patchFlag:a}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!i||!!o)&&(!o||!o.$stable)||r!==s&&(r?!s||rE(r,s,c):!!s);if(1024&a)return!0;if(16&a)return r?rE(r,s,c):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t{e.scope.on();let a=e.effect=new ey(()=>{if(e.isMounted){let t,{next:n,bu:r,u:i,parent:a,vnode:u}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=u.el,G(e,n,o)),t.asyncDep.then(()=>{rq(()=>{e.isUnmounted||c()},l)});return}}let h=n;rJ(e,!1),n?(n.el=u.el,G(e,n,o)):n=u,r&&z(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&ix(t,a,n,u),rJ(e,!0);let d=rw(e),p=e.subTree;e.subTree=d,x(p,d,f(p.el),es(p),e,l,s),n.el=d.el,null===h&&rR(e,d.el),i&&rq(i,l),(t=n.props&&n.props.onVnodeUpdated)&&rq(()=>ix(t,a,n,u),l)}else{let o,{el:a,props:c}=t,{bm:u,m:h,parent:d,root:p,type:f}=e,g=nj(t);if(rJ(e,!1),u&&z(u),!g&&(o=c&&c.onVnodeBeforeMount)&&ix(o,d,t),rJ(e,!0),a&&i){let t=()=>{e.subTree=rw(e),i(a,e.subTree,e,l,null)};g&&f.__asyncHydrate?f.__asyncHydrate(a,e,t):t()}else{p.ce&&p.ce._hasShadowRoot()&&p.ce._injectChildStyle(f,e.parent?e.parent.type:void 0);let i=e.subTree=rw(e);x(null,i,n,r,e,l,s),t.el=i.el}if(h&&rq(h,l),!g&&(o=c&&c.onVnodeMounted)){let e=t;rq(()=>ix(o,d,e),l)}(256&t.shapeFlag||d&&nj(d.vnode)&&256&d.vnode.shapeFlag)&&e.a&&rq(e.a,l),e.isMounted=!0,t=n=r=null}});e.scope.off();let c=e.update=a.run.bind(a),u=e.job=a.runIfDirty.bind(a);u.i=e,u.id=e.uid,a.scheduler=()=>tJ(u),rJ(e,!0),c()},G=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){let{props:i,attrs:l,vnode:{patchFlag:s}}=e,o=tm(i),[a]=e.propsOptions,c=!1;if((r||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let r=0;r{let{vnode:r,slots:i}=e,l=!0,s=b;if(32&r.shapeFlag){let e=t._;e?n&&1===e?l=!1:rH(i,t,n):(l=!t.$stable,rj(t,i)),s=t}else t&&(rU(e,t),s={default:1});if(l)for(let e in i)rD(e)||null!=s[e]||delete i[e]})(e,t.children,n),eE(),tQ(e),eI()},X=(e,t,n,r,i,l,s,o,a=!1)=>{let c=e&&e.children,u=e?e.shapeFlag:0,h=t.children,{patchFlag:d,shapeFlag:f}=t;if(d>0){if(128&d)return void Y(c,h,n,r,i,l,s,o,a);else if(256&d)return void Z(c,h,n,r,i,l,s,o,a)}8&f?(16&u&&el(c,i,l),h!==c&&p(n,h)):16&u?16&f?Y(c,h,n,r,i,l,s,o,a):el(c,i,l,!0):(8&u&&p(n,""),16&f&&F(h,n,r,i,l,s,o,a))},Z=(e,t,n,r,i,l,s,o,a)=>{let c;e=e||_,t=t||_;let u=e.length,h=t.length,d=Math.min(u,h);for(c=0;ch?el(e,i,l,!0,!1,d):F(t,n,r,i,l,s,o,a,d)},Y=(e,t,n,r,i,l,s,o,a)=>{let c=0,u=t.length,h=e.length-1,d=u-1;for(;c<=h&&c<=d;){let r=e[c],u=t[c]=a?ib(t[c]):iy(t[c]);if(ic(r,u))x(r,u,n,null,i,l,s,o,a);else break;c++}for(;c<=h&&c<=d;){let r=e[h],c=t[d]=a?ib(t[d]):iy(t[d]);if(ic(r,c))x(r,c,n,null,i,l,s,o,a);else break;h--,d--}if(c>h){if(c<=d){let e=d+1,h=ed)for(;c<=h;)et(e[c],i,l,!0),c++;else{let p,f=c,g=c,m=new Map;for(c=g;c<=d;c++){let e=t[c]=a?ib(t[c]):iy(t[c]);null!=e.key&&m.set(e.key,c)}let y=0,b=d-g+1,S=!1,C=0,k=Array(b);for(c=0;c=b){et(u,i,l,!0);continue}if(null!=u.key)r=m.get(u.key);else for(p=g;p<=d;p++)if(0===k[p-g]&&ic(u,t[p])){r=p;break}void 0===r?et(u,i,l,!0):(k[r-g]=c+1,r>=C?C=r:S=!0,x(u,t[r],n,null,i,l,s,o,a),y++)}let T=S?function(e){let t,n,r,i,l,s=e.slice(),o=[0],a=e.length;for(t=0;t>1]]0&&(s[t]=o[r-1]),o[r]=t)}}for(r=o.length,i=o[r-1];r-- >0;)o[r]=i,i=s[i];return o}(k):_;for(p=T.length-1,c=b-1;c>=0;c--){let e=g+c,h=t[e],d=t[e+1],f=e+1{let{el:o,type:a,transition:c,children:u,shapeFlag:h}=e;if(6&h)return void ee(e.component.subTree,t,n,r);if(128&h)return void e.suspense.move(t,n,r);if(64&h)return void a.move(e,t,n,ec);if(a===r4){l(o,t,n);for(let e=0;e{let i;for(;e&&e!==t;)i=g(e),l(e,n,r),e=i;l(t,n,r)})(e,t,n);if(2!==r&&1&h&&c)if(0===r)c.beforeEnter(o),l(o,t,n),rq(()=>c.enter(o),i);else{let{leave:r,delayLeave:i,afterLeave:a}=c,u=()=>{e.ctx.isUnmounted?s(o):l(o,t,n)},h=()=>{o._isLeaving&&o[nh](!0),r(o,()=>{u(),a&&a()})};i?i(o,u,h):h()}else l(o,t,n)},et=(e,t,n,r=!1,i=!1)=>{let l,{type:s,props:o,ref:a,children:c,dynamicChildren:u,shapeFlag:h,patchFlag:d,dirs:p,cacheIndex:f,memo:g}=e;if(-2===d&&(i=!1),null!=a&&(eE(),nE(a,null,n,e,!0),eI()),null!=f&&(t.renderCache[f]=void 0),256&h)return void t.ctx.deactivate(e);let m=1&h&&p,y=!nj(e);if(y&&(l=o&&o.onVnodeBeforeUnmount)&&ix(l,t,e),6&h)ei(e.component,n,r);else{if(128&h)return void e.suspense.unmount(n,r);m&&t3(e,null,t,"beforeUnmount"),64&h?e.type.remove(e,t,n,ec,r):u&&!u.hasOnce&&(s!==r4||d>0&&64&d)?el(u,t,n,!1,!0):(s===r4&&384&d||!i&&16&h)&&el(c,t,n),r&&en(e)}let b=null!=g&&null==f;(y&&(l=o&&o.onVnodeUnmounted)||m||b)&&rq(()=>{l&&ix(l,t,e),m&&t3(e,null,t,"unmounted"),b&&(e.el=null)},n)},en=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===r4)return void er(n,r);if(t===r9)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=g(e),s(e),e=n;s(t)})(e);let l=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,s=()=>t(n,l);r?r(e.el,l,s):s()}else l()},er=(e,t)=>{let n;for(;e!==t;)n=g(e),s(e),e=n;s(t)},ei=(e,t,n)=>{let{bum:r,scope:i,job:l,subTree:s,um:o,m:a,a:c}=e;rQ(a),rQ(c),r&&z(r),i.stop(),l&&(l.flags|=8,et(s,e,t,n)),o&&rq(o,t),rq(()=>{e.isUnmounted=!0},t)},el=(e,t,n,r=!1,i=!1,l=0)=>{for(let s=l;s{if(6&e.shapeFlag)return es(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=g(e.anchor||e.el),n=t&&t[nr];return n?g(n):t},eo=!1,ea=(e,t,n)=>{let r;null==e?t._vnode&&(et(t._vnode,null,null,!0),r=t._vnode.component):x(t._vnode||null,e,t,null,null,null,n),t._vnode=e,eo||(eo=!0,tQ(r),tZ(),eo=!1)},ec={p:x,um:et,m:ee,r:en,mt:q,mc:F,pc:X,pbc:D,n:es,o:e};return t&&([r,i]=t(ec)),{render:ea,hydrate:r,createApp:(n=r,function(e,t=null){I(e)||(e=T({},e)),null==t||M(t)||(t=null);let r=rb(),i=new WeakSet,l=[],s=!1,o=r.app={_uid:r_++,_component:e,_props:t,_container:null,_context:r,_instance:null,version:ij,get config(){return r.config},set config(v){},use:(e,...t)=>(i.has(e)||(e&&I(e.install)?(i.add(e),e.install(o,...t)):I(e)&&(i.add(e),e(o,...t))),o),mixin:e=>(r.mixins.includes(e)||r.mixins.push(e),o),component:(e,t)=>t?(r.components[e]=t,o):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,o):r.directives[e],mount(i,l,a){if(!s){let c=o._ceVNode||ip(e,t);return c.appContext=r,!0===a?a="svg":!1===a&&(a=void 0),l&&n?n(c,i):ea(c,i,a),s=!0,o._container=i,i.__vue_app__=o,iL(c.component)}},onUnmount(e){l.push(e)},unmount(){s&&(tD(l,o._instance,16),ea(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,o),runWithContext(e){let t=rS;rS=o;try{return e()}finally{rS=t}}};return o})}}function rz({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rJ({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rG(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rX(e,t,n=!1){let r=e.children,i=t.children;if(E(r)&&E(i))for(let e=0;ee.__isSuspense,rY=0;function r0(e,t){let n=e.props&&e.props[t];I(n)&&n()}function r1(e,t,n,r,i,l,s,o,a,c,u=!1){var h;let d,p,{p:f,m:g,um:m,n:y,o:{parentNode:b,remove:_}}=c,S=null!=(d=(h=e).props&&h.props.suspensible)&&!1!==d;S&&t&&t.pendingBranch&&(p=t.pendingId,t.deps++);let x=e.props?X(e.props.timeout):void 0,C=l,k={vnode:e,parent:t,parentComponent:n,namespace:s,container:r,hiddenContainer:i,deps:0,pendingId:rY++,timeout:"number"==typeof x?x:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:r,activeBranch:i,pendingBranch:s,pendingId:o,effects:a,parentComponent:c,container:u,isInFallback:h}=k,d=!1;k.isHydrating?k.isHydrating=!1:!e&&((d=i&&s.transition&&"out-in"===s.transition.mode)&&(i.transition.afterLeave=()=>{o===k.pendingId&&(g(s,u,l===C?y(i):l,0),tX(a),h&&r.ssFallback&&(r.ssFallback.el=null))}),i&&!k.isFallbackMountPending&&(b(i.el)===u&&(l=y(i)),m(i,c,k,!0),!d&&h&&r.ssFallback&&rq(()=>r.ssFallback.el=null,k)),d||g(s,u,l,0)),k.isFallbackMountPending=!1,r3(k,s),k.pendingBranch=null,k.isInFallback=!1;let f=k.parent,_=!1;for(;f;){if(f.pendingBranch){f.effects.push(...a),_=!0;break}f=f.parent}_||d||tX(a),k.effects=[],S&&t&&t.pendingBranch&&p===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),r0(r,"onResolve")},fallback(e){if(!k.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:r,container:i,namespace:l}=k;r0(t,"onFallback");let s=y(n),c=()=>{k.isFallbackMountPending=!1,k.isInFallback&&(f(null,e,i,s,r,null,l,o,a),r3(k,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(k.isFallbackMountPending=!0,n.transition.afterLeave=c),k.isInFallback=!0,m(n,r,null,!0),u||c()},move(e,t,n){k.activeBranch&&g(k.activeBranch,e,t,n),k.container=e},next:()=>k.activeBranch&&y(k.activeBranch),registerDep(e,t,n){let r=!!k.pendingBranch;r&&k.deps++;let i=e.vnode.el;e.asyncDep.catch(t=>{tV(t,e,0)}).then(l=>{if(e.isUnmounted||k.isUnmounted||k.pendingId!==e.suspenseId)return;iA(),e.asyncResolved=!0;let{vnode:o}=e;iR(e,l,!1),i&&(o.el=i);let a=!i&&e.subTree.el;t(e,o,b(i||e.subTree.el),i?null:y(e.subTree),k,s,n),a&&(o.placeholder=null,_(a)),rR(e,o.el),r&&0==--k.deps&&k.resolve()})},unmount(e,t){k.isUnmounted=!0,k.activeBranch&&m(k.activeBranch,n,e,t),k.pendingBranch&&m(k.pendingBranch,n,e,t)}};return k}function r2(e){let t;if(I(e)){let n=ii&&e._c;n&&(e._d=!1,it()),e=e(),n&&(e._d=!0,t=ie,ir())}return E(e)&&(e=function(e){let t;for(let n=0;nt!==e)),e}function r6(e,t){t&&t.pendingBranch?E(e)?t.effects.push(...e):t.effects.push(e):tX(e)}function r3(e,t){e.activeBranch=t;let{vnode:n,parentComponent:r}=e,i=t.el;for(;!i&&t.component;)i=(t=t.component.subTree).el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,rR(r,i))}let r4=Symbol.for("v-fgt"),r8=Symbol.for("v-txt"),r5=Symbol.for("v-cmt"),r9=Symbol.for("v-stc"),r7=[],ie=null;function it(e=!1){r7.push(ie=e?null:[])}function ir(){r7.pop(),ie=r7[r7.length-1]||null}let ii=1;function il(e,t=!1){ii+=e,e<0&&ie&&t&&(ie.hasOnce=!0)}function is(e){return e.dynamicChildren=ii>0?ie||_:null,ir(),ii>0&&ie&&ie.push(e),e}function io(e,t,n,r,i){return is(ip(e,t,n,r,i,!0))}function ia(e){return!!e&&!0===e.__v_isVNode}function ic(e,t){return e.type===t.type&&e.key===t.key}let iu=({key:e})=>null!=e?e:null,ih=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?R(e)||t_(e)||I(e)?{i:t0,r:e,k:t,f:!!n}:e:null);function id(e,t=null,n=null,r=0,i=null,l=+(e!==r4),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&iu(t),ref:t&&ih(t),scopeId:t1,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:l,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:t0};return o?(i_(a,n),128&l&&e.normalize(a)):n&&(a.shapeFlag|=R(n)?8:16),ii>0&&!s&&ie&&(a.patchFlag>0||6&l)&&32!==a.patchFlag&&ie.push(a),a}let ip=function(e,t=null,n=null,r=0,i=null,l=!1){var s;if(e&&e!==n7||(e=r5),ia(e)){let r=im(e,t,!0);return n&&i_(r,n),ii>0&&!l&&ie&&(6&r.shapeFlag?ie[ie.indexOf(e)]=r:ie.push(r)),r.patchFlag=-2,r}if(I(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=ig(t);e&&!R(e)&&(t.class=ei(e)),M(n)&&(tg(n)&&!E(n)&&(n=T({},n)),t.style=Y(n))}let o=R(e)?1:rZ(e)?128:e.__isTeleport?64:M(e)?4:2*!!I(e);return id(e,t,n,r,i,o,l,!0)};function ig(e){return e?tg(e)||rM(e)?T({},e):e:null}function im(e,t,n=!1,r=!1){let{props:i,ref:l,patchFlag:s,children:o,transition:a}=e,c=t?iS(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&iu(c),ref:t&&t.ref?n&&l?E(l)?l.concat(ih(t)):[l,ih(t)]:ih(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==r4?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&im(e.ssContent),ssFallback:e.ssFallback&&im(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&nC(u,a.clone(u)),u}function iv(e=" ",t=0){return ip(r8,null,e,t)}function iy(e){return null==e||"boolean"==typeof e?ip(r5):E(e)?ip(r4,null,e.slice()):ia(e)?ib(e):ip(r8,null,String(e))}function ib(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:im(e)}function i_(e,t){let n=0,{shapeFlag:r}=e;if(null==t)t=null;else if(E(t))n=16;else if("object"==typeof t)if(65&r){let n=t.default;n&&(n._c&&(n._d=!1),i_(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;r||rM(t)?3===r&&t0&&(1===t0.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t0}else I(t)?(t={default:t,_ctx:t0},n=32):(t=String(t),64&r?(n=16,t=[iv(t)]):n=8);e.children=t,e.shapeFlag|=n}function iS(...e){let t={};for(let n=0;niT||t0;c=e=>{iT=e},u=e=>{iI=e};let iN=e=>{let t=iT;return c(e),e.scope.on(),()=>{e.scope.off(),c(t)}},iA=()=>{iT&&iT.scope.off(),c(null)};function iE(e){return 4&e.vnode.shapeFlag}let iI=!1;function iR(e,t,n){I(t)?e.render=t:M(t)&&(e.setupState=tN(t)),iM(e,n)}function iO(e){h=e,d=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,rs))}}function iM(e,t,n){let r=e.type;if(!e.render){if(!t&&h&&!r.render){let t=r.template||rh(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:s}=r,o=T(T({isCustomElement:n,delimiters:l},i),s);r.render=h(t,o)}}e.render=r.render||S,d&&d(e)}{let t=iN(e);eE();try{!function(e){let t=rh(e),n=e.proxy,r=e.ctx;rc=!1,t.beforeCreate&&ru(t.beforeCreate,e,"bc");let{data:i,computed:l,methods:s,watch:o,provide:a,inject:c,created:u,beforeMount:h,mounted:d,beforeUpdate:p,updated:f,activated:g,deactivated:m,beforeUnmount:y,unmounted:b,render:_,renderTracked:x,renderTriggered:C,errorCaptured:k,serverPrefetch:T,expose:w,inheritAttrs:N,components:A,directives:O}=t;if(c&&function(e,t){for(let n in E(e)&&(e=rg(e)),e){let r,i=e[n];t_(r=M(i)?"default"in i?t8(i.from||n,i.default,!0):t8(i.from||n):t8(i))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(c,r),s)for(let e in s){let t=s[e];I(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);M(t)&&(e.data=ta(t))}if(rc=!0,l)for(let e in l){let t=l[e],i=I(t)?t.bind(n,n):I(t.get)?t.get.bind(n,n):S,s=iD({get:i,set:!I(t)&&I(t.set)?t.set.bind(n):S});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,r,i){let l=i.includes(".")?nt(r,i):()=>r[i];if(R(t)){let e=n[t];I(e)&&t7(l,e,void 0)}else if(I(t))t7(l,t.bind(r),void 0);else if(M(t))if(E(t))t.forEach(t=>e(t,n,r,i));else{let e=I(t.handler)?t.handler.bind(r):n[t.handler];I(e)&&t7(l,e,t)}}(o[e],r,n,e);if(a){let e=I(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{t4(t,e[t])})}function P(e,t){E(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(u&&ru(u,e,"c"),P(nZ,h),P(nY,d),P(n0,p),P(n1,f),P(nW,g),P(nK,m),P(n5,k),P(n8,x),P(n4,C),P(n2,y),P(n6,b),P(n3,T),E(w))if(w.length){let t=e.exposed||(e.exposed={});w.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});_&&e.render===S&&(e.render=_),null!=N&&(e.inheritAttrs=N),A&&(e.components=A),O&&(e.directives=O)}(e)}finally{eI(),t()}}}let iP={get:(e,t)=>(eV(e,"get",""),e[t])};function iF(e){return{attrs:new Proxy(e.attrs,iP),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function iL(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tN(tv(e.exposed)),{get:(t,n)=>n in t?t[n]:n in rr?rr[n](e):void 0,has:(e,t)=>t in e||t in rr})):e.proxy}function i$(e,t=!0){return I(e)?e.displayName||e.name:e.name||t&&e.__name}let iD=(e,t)=>(function(e,t=!1){let n,r;return I(e)?n=e:(n=e.get,r=e.set),new tO(n,r,t)})(e,iI);function iV(e,t,n){try{il(-1);let r=arguments.length;if(2!==r)return r>3?n=Array.prototype.slice.call(arguments,2):3===r&&ia(n)&&(n=[n]),ip(e,t,n);if(!M(t)||E(t))return ip(e,null,t);if(ia(t))return ip(e,null,[t]);return ip(e,t)}finally{il(1)}}function iB(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e0&&ie&&ie.push(e),!0}let ij="3.5.32",iU="u">typeof window&&window.trustedTypes;if(iU)try{m=iU.createPolicy("vue",{createHTML:e=>e})}catch(e){}let iH=m?e=>m.createHTML(e):e=>e,iq="u">typeof document?document:null,iW=iq&&iq.createElement("template"),iK={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="svg"===t?iq.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?iq.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?iq.createElement(e,{is:n}):iq.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>iq.createTextNode(e),createComment:e=>iq.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iq.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,l){let s=n?n.previousSibling:t.lastChild;if(i&&(i===l||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==l&&(i=i.nextSibling););else{iW.innerHTML=iH("svg"===r?`${e}`:"mathml"===r?`${e}`:e);let i=iW.content;if("svg"===r||"mathml"===r){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},iz="transition",iJ="animation",iG=Symbol("_vtc"),iX={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},iQ=T({},ng,iX),iZ=((t=(e,{slots:t})=>iV(ny,i1(e),t)).displayName="Transition",t.props=iQ,t),iY=(e,t=[])=>{E(e)?e.forEach(e=>e(...t)):e&&e(...t)},i0=e=>!!e&&(E(e)?e.some(e=>e.length>1):e.length>1);function i1(e){let t={};for(let n in e)n in iX||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:r,duration:i,enterFromClass:l=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=l,appearActiveClass:c=s,appearToClass:u=o,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,f=function(e){if(null==e)return null;{if(M(e))return[function(e){return X(e)}(e.enter),function(e){return X(e)}(e.leave)];let t=function(e){return X(e)}(e);return[t,t]}}(i),g=f&&f[0],m=f&&f[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:S,onLeaveCancelled:x,onBeforeAppear:C=y,onAppear:k=b,onAppearCancelled:w=_}=t,N=(e,t,n,r)=>{e._enterCancelled=r,i6(e,t?u:o),i6(e,t?c:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,i6(e,h),i6(e,p),i6(e,d),t&&t()},E=e=>(t,n)=>{let i=e?k:b,s=()=>N(t,e,n);iY(i,[t,s]),i3(()=>{i6(t,e?a:l),i2(t,e?u:o),i0(i)||i8(t,r,g,s)})};return T(t,{onBeforeEnter(e){iY(y,[e]),i2(e,l),i2(e,s)},onBeforeAppear(e){iY(C,[e]),i2(e,a),i2(e,c)},onEnter:E(!1),onAppear:E(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);i2(e,h),e._enterCancelled?(i2(e,d),le(e)):(le(e),i2(e,d)),i3(()=>{e._isLeaving&&(i6(e,h),i2(e,p),i0(S)||i8(e,r,m,n))}),iY(S,[e,n])},onEnterCancelled(e){N(e,!1,void 0,!0),iY(_,[e])},onAppearCancelled(e){N(e,!0,void 0,!0),iY(w,[e])},onLeaveCancelled(e){A(e),iY(x,[e])}})}function i2(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[iG]||(e[iG]=new Set)).add(t)}function i6(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[iG];n&&(n.delete(t),n.size||(e[iG]=void 0))}function i3(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let i4=0;function i8(e,t,n,r){let i=e._endId=++i4,l=()=>{i===e._endId&&r()};if(null!=n)return setTimeout(l,n);let{type:s,timeout:o,propCount:a}=i5(e,t);if(!s)return r();let c=s+"end",u=0,h=()=>{e.removeEventListener(c,d),l()},d=t=>{t.target===e&&++u>=a&&h()};setTimeout(()=>{u(n[e]||"").split(", "),i=r(`${iz}Delay`),l=r(`${iz}Duration`),s=i9(i,l),o=r(`${iJ}Delay`),a=r(`${iJ}Duration`),c=i9(o,a),u=null,h=0,d=0;t===iz?s>0&&(u=iz,h=s,d=l.length):t===iJ?c>0&&(u=iJ,h=c,d=a.length):d=(u=(h=Math.max(s,c))>0?s>c?iz:iJ:null)?u===iz?l.length:a.length:0;let p=u===iz&&/\b(?:transform|all)(?:,|$)/.test(r(`${iz}Property`).toString());return{type:u,timeout:h,propCount:d,hasTransform:p}}function i9(e,t){for(;e.lengthi7(t)+i7(e[n])))}function i7(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function le(e){return(e?e.ownerDocument:document).body.offsetHeight}let lt=Symbol("_vod"),ln=Symbol("_vsh");function lr(e,t){e.style.display=t?e[lt]:"none",e[ln]=!t}let li=Symbol("");function ll(e,t){if(1===e.nodeType){let r=e.style,i="";for(let e in t){var n;let l=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);r.setProperty(`--${e}`,l),i+=`--${e}: ${l};`}r[li]=i}}let ls=/(?:^|;)\s*display\s*:/,lo=/\s*!important$/;function la(e,t,n){if(E(n))n.forEach(n=>la(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let r=function(e,t){let n=lu[t];if(n)return n;let r=j(t);if("filter"!==r&&r in e)return lu[t]=r;r=q(r);for(let n=0;n111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),l_=(e,t,n,r,i,l)=>{let s="svg"===i;if("class"===t){var o;let t;o=r,(t=e[iG])&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let r=e.style,i=R(n),l=!1;if(n&&!i){if(t)if(R(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&la(r,t,"")}else for(let e in t)null==n[e]&&la(r,e,"");for(let e in n)"display"===e&&(l=!0),la(r,e,n[e])}else if(i){if(t!==n){let e=r[li];e&&(n+=";"+e),r.cssText=n,l=ls.test(n)}}else t&&e.removeAttribute("style");lt in e&&(e[lt]=l?r.display:"",e[ln]&&(r.display="none"))}(e,n,r):C(t)?k(t)||function(e,t,n,r=null){let i=e[lg]||(e[lg]={}),l=i[t];if(n&&l)l.value=n;else{let[a,c]=function(e){let t;if(lm.test(e)){let n;for(t={};n=e.match(lm);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):H(e.slice(2)),t]}(t);if(n){var s,o;let l;lf(e,a,i[t]=(s=n,o=r,(l=e=>{if(e._vts){if(e._vts<=l.attached)return}else e._vts=Date.now();tD(function(e,t){if(!E(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,l.value),o,5,[e])}).value=s,l.attached=lv||(ly.then(()=>lv=0),lv=Date.now()),l),c)}else l&&(e.removeEventListener(a,l,c),i[t]=void 0)}}(e,t,r,l):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,r){if(r)return!!("innerHTML"===t||"textContent"===t||t in e&&lb(t)&&I(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"sandbox"===t&&"IFRAME"===e.tagName||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(lb(t)&&R(n))&&t in e}(e,t,r,s))?e._isVueCE&&(function(e,t){let n=e._def.props;if(!n)return!1;let r=j(t);return Array.isArray(n)?n.some(e=>j(e)===r):Object.keys(n).some(e=>j(e)===r)}(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!R(r)))?lp(e,j(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),ld(e,t,r,s)):(lp(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||ld(e,t,r,s,l,"value"!==t))},lS={};function lx(e,t,n){let r,i=nT(e,t);"[object Object]"===(r=i,F.call(r))&&(i=T({},i,t));class l extends lk{constructor(e){super(i,e,n)}}return l.def=i,l}let lC="u">typeof HTMLElement?HTMLElement:class{};class lk extends lC{constructor(e,t={},n=l2){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==l2?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow(T({},e.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.assignedSlot||e.parentNode||e.host);)if(e instanceof lk){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,tz(()=>{!this._connected&&(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(e){for(let t of e)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:r,styles:i}=e;if(r&&!E(r))for(let e in r){let t=r[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=X(this._props[e])),(n||(n=Object.create(null)))[j(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(i),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)A(this,e)||Object.defineProperty(this,e,{get:()=>tT(t[e])})}_resolveProps(e){let{props:t}=e,n=E(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(j))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!this._patching)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):lS,r=j(e);t&&this._numberProps&&this._numberProps[r]&&(n=X(n)),this._setProp(r,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!1){if(t!==this._props[e]&&(this._dirty=!0,t===lS?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),r&&this._instance&&this._update(),n)){let n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),!0===t?this.setAttribute(H(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(H(e),t+""):t||this.removeAttribute(H(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),l1(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=ip(this._def,T(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{let n;this.dispatchEvent(new CustomEvent(e,"[object Object]"===(n=t[0],F.call(n))?T({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),H(e)!==e&&t(H(e),n)},this._setParent()}),t}_applyStyles(e,t,n){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let r=this._nonce,i=this.shadowRoot,l=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i),s=null;for(let o=e.length-1;o>=0;o--){let a=document.createElement("style");r&&a.setAttribute("nonce",r),a.textContent=e[o],i.insertBefore(a,s||l),s=a,0===o&&(n||this._styleAnchors.set(this._def,a),t&&this._styleAnchors.set(t,a))}}_getStyleAnchor(e){if(!e)return null;let t=this._styleAnchors.get(e);return t&&t.parentNode===this.shadowRoot?t:(t&&this._styleAnchors.delete(e),null)}_getRootStyleInsertionAnchor(e){for(let t=0;t{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let r=e.cloneNode(),i=e[iG];i&&i.forEach(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 l=1===t.nodeType?t:t.parentNode;l.appendChild(r);let{hasTransform:s}=i5(r);return l.removeChild(r),s}(n[0].el,i.vnode.el,t)){n=[];return}n.forEach(lR),n.forEach(lO);let r=n.filter(lM);le(i.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;i2(n,t),r.transform=r.webkitTransform=r.transitionDuration="";let i=n[lA]=e=>{(!e||e.target===n)&&(!e||e.propertyName.endsWith("transform"))&&(n.removeEventListener("transitionend",i),n[lA]=null,i6(n,t))};n.addEventListener("transitionend",i)}),n=[]}),()=>{let s=tm(e),o=i1(s),a=s.tag||r4;if(n=[],r)for(let e=0;eMath.abs(s-1)&&(s=1),.01>Math.abs(o-1)&&(o=1),n.transform=n.webkitTransform=`translate(${r/s}px,${i/o}px)`,n.transitionDuration="0s",e}}function lP(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top}}let lF=e=>{let t=e.props["onUpdate:modelValue"]||!1;return E(t)?e=>z(t,e):t};function lL(e){e.target.composing=!0}function l$(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let lD=Symbol("_assign");function lV(e,t,n){return t&&(e=e.trim()),n&&(e=G(e)),e}let lB={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[lD]=lF(i);let l=r||i.props&&"number"===i.props.type;lf(e,t?"change":"input",t=>{t.target.composing||e[lD](lV(e.value,n,l))}),(n||l)&&lf(e,"change",()=>{e.value=lV(e.value,n,l)}),t||(lf(e,"compositionstart",lL),lf(e,"compositionend",l$),lf(e,"change",l$))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:l}},s){if(e[lD]=lF(s),e.composing)return;let o=(l||"number"===e.type)&&!/^0\d/.test(e.value)?G(e.value):e.value,a=null==t?"":t;if(o===a)return;let c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===a)||(e.value=a)}},lj={deep:!0,created(e,t,n){e[lD]=lF(n),lf(e,"change",()=>{let t=e._modelValue,n=lK(e),r=e.checked,i=e[lD];if(E(t)){let e=eh(t,n),l=-1!==e;if(r&&!l)i(t.concat(n));else if(!r&&l){let n=[...t];n.splice(e,1),i(n)}}else{let l;if("[object Set]"===(l=t,F.call(l))){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(lz(e,r))}})},mounted:lU,beforeUpdate(e,t,n){e[lD]=lF(n),lU(e,t,n)}};function lU(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,E(t))i=eh(t,r.props.value)>-1;else{let l;if("[object Set]"===(l=t,F.call(l)))i=t.has(r.props.value);else{if(t===n)return;i=eu(t,lz(e,!0))}}e.checked!==i&&(e.checked=i)}let lH={created(e,{value:t},n){e.checked=eu(t,n.props.value),e[lD]=lF(n),lf(e,"change",()=>{e[lD](lK(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[lD]=lF(r),t!==n&&(e.checked=eu(t,r.props.value))}},lq={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i,l="[object Set]"===(i=t,F.call(i));lf(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?G(lK(e)):lK(e));e[lD](e.multiple?l?new Set(t):t:t[0]),e._assigning=!0,tz(()=>{e._assigning=!1})}),e[lD]=lF(r)},mounted(e,{value:t}){lW(e,t)},beforeUpdate(e,t,n){e[lD]=lF(n)},updated(e,{value:t}){e._assigning||lW(e,t)}};function lW(e,t){let n,r=e.multiple,i=E(t);if(!r||i||"[object Set]"===(n=t,F.call(n))){for(let n=0,l=e.options.length;nString(e)===String(s)):l.selected=eh(t,s)>-1}else l.selected=t.has(s);else if(eu(lK(l),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}r||-1===e.selectedIndex||(e.selectedIndex=-1)}}function lK(e){return"_value"in e?e._value:e.value}function lz(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}function lJ(e,t,n,r,i){let l=function(e,t){switch(e){case"SELECT":return lq;case"TEXTAREA":return lB;default:switch(t){case"checkbox":return lj;case"radio":return lH;default:return lB}}}(e.tagName,n.props&&n.props.type)[i];l&&l(e,t,n,r)}let lG=["ctrl","shift","alt","meta"],lX={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&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>lG.some(n=>e[`${n}Key`]&&!t.includes(n))},lQ={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},lZ=T({patchProp:l_},iK),lY=!1;function l0(){return p=lY?p:rW(lZ),lY=!0,p}let l1=(...e)=>{(p||(p=rK(lZ))).render(...e)},l2=(...e)=>{let t=(p||(p=rK(lZ))).createApp(...e),{mount:n}=t;return t.mount=e=>{let r=l4(e);if(!r)return;let i=t._component;I(i)||i.render||i.template||(i.template=r.innerHTML),1===r.nodeType&&(r.textContent="");let l=n(r,!1,l3(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t},l6=(...e)=>{let t=l0().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=l4(e);if(t)return n(t,!0,l3(t))},t};function l3(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function l4(e){return R(e)?document.querySelector(e):e}let l8=Symbol(""),l5=Symbol(""),l9=Symbol(""),l7=Symbol(""),se=Symbol(""),st=Symbol(""),sn=Symbol(""),sr=Symbol(""),si=Symbol(""),sl=Symbol(""),ss=Symbol(""),so=Symbol(""),sa=Symbol(""),sc=Symbol(""),su=Symbol(""),sh=Symbol(""),sd=Symbol(""),sp=Symbol(""),sf=Symbol(""),sg=Symbol(""),sm=Symbol(""),sv=Symbol(""),sy=Symbol(""),sb=Symbol(""),s_=Symbol(""),sS=Symbol(""),sx=Symbol(""),sC=Symbol(""),sk=Symbol(""),sT=Symbol(""),sw=Symbol(""),sN=Symbol(""),sA=Symbol(""),sE=Symbol(""),sI=Symbol(""),sR=Symbol(""),sO=Symbol(""),sM=Symbol(""),sP=Symbol(""),sF={[l8]:"Fragment",[l5]:"Teleport",[l9]:"Suspense",[l7]:"KeepAlive",[se]:"BaseTransition",[st]:"openBlock",[sn]:"createBlock",[sr]:"createElementBlock",[si]:"createVNode",[sl]:"createElementVNode",[ss]:"createCommentVNode",[so]:"createTextVNode",[sa]:"createStaticVNode",[sc]:"resolveComponent",[su]:"resolveDynamicComponent",[sh]:"resolveDirective",[sd]:"resolveFilter",[sp]:"withDirectives",[sf]:"renderList",[sg]:"renderSlot",[sm]:"createSlots",[sv]:"toDisplayString",[sy]:"mergeProps",[sb]:"normalizeClass",[s_]:"normalizeStyle",[sS]:"normalizeProps",[sx]:"guardReactiveProps",[sC]:"toHandlers",[sk]:"camelize",[sT]:"capitalize",[sw]:"toHandlerKey",[sN]:"setBlockTracking",[sA]:"pushScopeId",[sE]:"popScopeId",[sI]:"withCtx",[sR]:"unref",[sO]:"isRef",[sM]:"withMemo",[sP]:"isMemoSame"},sL={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function s$(e,t,n,r,i,l,s,o=!1,a=!1,c=!1,u=sL){var h,d,p,f;return e&&(o?(e.helper(st),e.helper((h=e.inSSR,d=c,h||d?sn:sr))):e.helper((p=e.inSSR,f=c,p||f?si:sl)),s&&e.helper(sp)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:l,directives:s,isBlock:o,disableTracking:a,isComponent:c,loc:u}}function sD(e,t=sL){return{type:17,loc:t,elements:e}}function sV(e,t=sL){return{type:15,loc:t,properties:e}}function sB(e,t){return{type:16,loc:sL,key:R(e)?sj(e,!0):e,value:t}}function sj(e,t=!1,n=sL,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function sU(e,t=sL){return{type:8,loc:t,children:e}}function sH(e,t=[],n=sL){return{type:14,loc:n,callee:e,arguments:t}}function sq(e,t,n=!1,r=!1,i=sL){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function sW(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:sL}}function sK(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,l;e.isBlock=!0,n((i=e.isComponent,r||i?si:sl)),t(st),t((l=e.isComponent,r||l?sn:sr))}}let sz=new Uint8Array([123,123]),sJ=new Uint8Array([125,125]);function sG(e){return e>=97&&e<=122||e>=65&&e<=90}function sX(e){return 32===e||10===e||9===e||12===e||13===e}function sQ(e){return 47===e||62===e||sX(e)}function sZ(e){let t=new Uint8Array(e.length);for(let n=0;n4===e.type&&e.isStatic;function s3(e){switch(e){case"Teleport":case"teleport":return l5;case"Suspense":case"suspense":return l9;case"KeepAlive":case"keep-alive":return l7;case"BaseTransition":case"base-transition":return se}}let s4=/^$|^\d|[^\$\w\xA0-\uFFFF]/,s8=/[A-Za-z_$\xA0-\uFFFF]/,s5=/[\.\?\w$\xA0-\uFFFF]/,s9=/\s+[.[]\s*|\s*[.[]\s+/g,s7=e=>4===e.type?e.content:e.loc.source,oe=e=>{let t=s7(e).trim().replace(s9,e=>e.trim()),n=0,r=[],i=0,l=0,s=null;for(let e=0;e|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/;function on(e,t,n=!1){for(let r=0;r4===e.key.type&&e.key.content===r)}return n}function op(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let of=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/;function og(e){for(let t=0;t0,isVoidTag:x,isPreTag:x,isIgnoreNewlineTag:x,isCustomElement:x,onError:s0,onWarn:s1,comments:!1,prefixIdentifiers:!1},ob=oy,o_=null,oS="",ox=null,oC=null,ok="",oT=-1,ow=-1,oN=0,oA=!1,oE=null,oI=[],oR=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=sz,this.delimiterClose=sJ,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=sz,this.delimiterClose=sJ}getPos(e){let t=1,n=e+1,r=this.newlines.length,i=-1;if(r>100){let t=-1,n=r;for(;t+1>>1;this.newlines[r]=0;t--)if(e>this.newlines[t]){i=t;break}return i>=0&&(t=i+2,n=e-this.newlines[i]),{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?sQ(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||sX(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=e||(28===this.state?this.currentSequence===sY.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(oI,{onerr:oz,ontext(e,t){oL(oP(e,t),e,t)},ontextentity(e,t,n){oL(e,t,n)},oninterpolation(e,t){if(oA)return oL(oP(e,t),e,t);let n=e+oR.delimiterOpen.length,r=t-oR.delimiterClose.length;for(;sX(oS.charCodeAt(n));)n++;for(;sX(oS.charCodeAt(r-1));)r--;let i=oP(n,r);i.includes("&")&&(i=ob.decodeEntities(i,!1)),oH({type:5,content:oK(i,!1,oq(n,r)),loc:oq(e,t)})},onopentagname(e,t){let n=oP(e,t);ox={type:1,tag:n,ns:ob.getNamespace(n,oI[0],ob.ns),tagType:0,props:[],children:[],loc:oq(e-1,t),codegenNode:void 0}},onopentagend(e){oF(e)},onclosetag(e,t){let n=oP(e,t);if(!ob.isVoidTag(n)){let r=!1;for(let e=0;e0&&oI[0].loc.start.offset;for(let n=0;n<=e;n++)o$(oI.shift(),t,n(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){ox&&oC&&(oW(oC.loc,t),0!==e&&(ok.includes("&")&&(ok=ob.decodeEntities(ok,!0)),6===oC.type?("class"===oC.name&&(ok=oU(ok).trim()),oC.value={type:2,content:ok,loc:1===e?oq(oT,ow):oq(oT-1,ow+1)},oR.inSFCRoot&&"template"===ox.tag&&"lang"===oC.name&&ok&&"html"!==ok&&oR.enterRCDATA(sZ("{let i=t.start.offset+n,l=i+e.length;return oK(e,!1,oq(i,l),0,+!!r)},o={source:s(l.trim(),n.indexOf(l,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},a=i.trim().replace(oM,"").trim(),c=i.indexOf(a),u=a.match(oO);if(u){let e;a=a.replace(oO,"").trim();let t=u[1].trim();if(t&&(e=n.indexOf(t,c+a.length),o.key=s(t,e,!0)),u[2]){let r=u[2].trim();r&&(o.index=s(r,n.indexOf(r,o.key?e+t.length:c+a.length),!0))}}return a&&(o.value=s(a,c,!0)),o}(oC.exp)))),(7!==oC.type||"pre"!==oC.name)&&ox.props.push(oC)),ok="",oT=ow=-1},oncomment(e,t){ob.comments&&oH({type:3,content:oP(e,t),loc:oq(e-4,t+3)})},onend(){let e=oS.length;for(let t=0;t64&&n<91||s3(e)||ob.isBuiltInComponent&&ob.isBuiltInComponent(e)||ob.isNativeTag&&!ob.isNativeTag(e))return!0;for(let e=0;e=0;)n--;return n}let oV=new Set(["if","else","else-if","for","slot"]),oB=/\r\n/g;function oj(e){let t="preserve"!==ob.whitespace,n=!1;for(let r=0;r3!==e.type);return 1!==t.length||1!==t[0].type||oc(t[0])?null:t[0]}function oG(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let r=n.get(e);if(void 0!==r)return r;let i=e.codegenNode;if(13!==i.type||i.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==i.patchFlag)return n.set(e,0),0;{let r=3,c=oQ(e,t);if(0===c)return n.set(e,0),0;c1)for(let i=0;i{l--};for(;lt===e:t=>e.test(t);return(e,r)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(oo))return;let l=[];for(let s=0;s`${sF[e]}: _${sF[e]}`;function o6(e,t,{helper:n,push:r,newline:i,isTS:l}){let s=n("component"===t?sc:sh);for(let n=0;n3;t.push("["),n&&t.indent(),o4(e,t,n),n&&t.deindent(),t.push("]")}function o4(e,t,n=!1,r=!0){let{push:i,newline:l}=t;for(let s=0;se||"null")}([a,c,u,i,d]),t),l(")"),f&&l(")"),p&&(l(", "),o8(p,t),l(")"))}(e,t);break;case 14:!function(e,t){let{push:n,helper:r,pure:i}=t,l=R(e.callee)?e.callee:r(e.callee);i&&n(o1),n(l+"(",-2,e),o4(e.arguments,t),n(")")}(e,t);break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:l}=t,{properties:s}=e;if(!s.length)return n("{}",-2,e);let o=s.length>1;n(o?"{":"{ "),o&&r();for(let e=0;e "),(a||o)&&(n("{"),r()),s?(a&&n("return "),E(s)?o3(s,t):o8(s,t)):o&&o8(o,t),(a||o)&&(i(),n("}")),c&&n(")")}(e,t);break;case 19:!function(e,t){let{test:n,consequent:r,alternate:i,newline:l}=e,{push:s,indent:o,deindent:a,newline:c}=t;if(4===n.type){let e,r=(e=n.content,!!s4.test(e));r&&s("("),o5(n,t),r&&s(")")}else s("("),o8(n,t),s(")");l&&o(),t.indentLevel++,l||s(" "),s("? "),o8(r,t),t.indentLevel--,l&&c(),l||s(" "),s(": ");let u=19===i.type;!u&&t.indentLevel++,o8(i,t),!u&&t.indentLevel--,l&&a(!0)}(e,t);break;case 20:!function(e,t){let{push:n,helper:r,indent:i,deindent:l,newline:s}=t,{needPauseTracking:o,needArraySpread:a}=e;a&&n("[...("),n(`_cache[${e.index}] || (`),o&&(i(),n(`${r(sN)}(-1`),e.inVOnce&&n(", true"),n("),"),s(),n("(")),n(`_cache[${e.index}] = `),o8(e.value,t),o&&(n(`).cacheIndex = ${e.index},`),s(),n(`${r(sN)}(1),`),s(),n(`_cache[${e.index}]`),l()),n(")"),a&&n(")]")}(e,t);break;case 21:o4(e.body,t,!0,!1)}}function o5(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function o9(e,t){for(let n=0;n(function(e,t,n,r){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(s2(28,t.loc)),t.exp=sj("true",!1,r)}if("if"===t.name){var i;let l=ae(e,t),s={type:9,loc:oq((i=e.loc).start.offset,i.end.offset),branches:[l]};if(n.replaceNode(s),r)return r(s,l,!0)}else{let i=n.parent.children,l=i.indexOf(e);for(;l-- >=-1;){let s=i[l];if(s&&ov(s)){n.removeNode(s);continue}if(s&&9===s.type){("else-if"===t.name||"else"===t.name)&&void 0===s.branches[s.branches.length-1].condition&&n.onError(s2(30,e.loc)),n.removeNode();let i=ae(e,t);s.branches.push(i);let l=r&&r(s,i,!1);oY(i,n),l&&l(),n.currentNode=null}else n.onError(s2(30,e.loc));break}}})(e,t,n,(e,t,r)=>{let i=n.parent.children,l=i.indexOf(e),s=0;for(;l-- >=0;){let e=i[l];e&&9===e.type&&(s+=e.branches.length)}return()=>{r?e.codegenNode=at(t,s,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=at(t,s+e.branches.length-1,n)}}));function ae(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!on(e,"for")?e.children:[e],userKey:or(e,"key"),isTemplateIf:n}}function at(e,t,n){return e.condition?sW(e.condition,an(e,t,n),sH(n.helper(ss),['""',"true"])):an(e,t,n)}function an(e,t,n){let{helper:r}=n,i=sB("key",sj(`${t}`,!1,sL,2)),{children:l}=e,s=l[0];if(1!==l.length||1!==s.type)if(1!==l.length||11!==s.type)return s$(n,r(l8),sV([i]),l,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=s.codegenNode;return oh(e,i,n),e}{let e=s.codegenNode,t=14===e.type&&e.callee===sM?e.arguments[1].returns:e;return 13===t.type&&sK(t,n),oh(t,i,n),e}}let ar=o0("for",(e,t,n)=>{let{helper:r,removeHelper:i}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(s2(31,t.loc));let i=t.forParseResult;if(!i)return void n.onError(s2(32,t.loc));ai(i);let{scopes:l}=n,{source:s,value:o,key:a,index:c}=i,u={type:11,loc:t.loc,source:s,valueAlias:o,keyAlias:a,objectIndexAlias:c,parseResult:i,children:oa(e)?e.children:[e]};n.replaceNode(u),l.vFor++;let h=r&&r(u);return()=>{l.vFor--,h&&h()}}(e,t,n,t=>{let l=sH(r(sf),[t.source]),s=oa(e),o=on(e,"memo"),a=or(e,"key",!1,!0);a&&a.type;let c=a&&(6===a.type?a.value?sj(a.value.content,!0):void 0:a.exp),u=a&&c?sB("key",c):null,h=4===t.source.type&&t.source.constType>0,d=h?64:a?128:256;return t.codegenNode=s$(n,r(l8),void 0,l,d,void 0,void 0,!0,!h,!1,e.loc),()=>{let a,{children:d}=t,p=1!==d.length||1!==d[0].type,f=oc(e)?e:s&&1===e.children.length&&oc(e.children[0])?e.children[0]:null;if(f)a=f.codegenNode,s&&u&&oh(a,u,n);else if(p)a=s$(n,r(l8),u?sV([u]):void 0,e.children,64,void 0,void 0,!0,void 0,!1);else{var g,m,y,b,_,S,x,C;a=d[0].codegenNode,s&&u&&oh(a,u,n),!h!==a.isBlock&&(a.isBlock?(i(st),i((g=n.inSSR,m=a.isComponent,g||m?sn:sr))):i((y=n.inSSR,b=a.isComponent,y||b?si:sl))),(a.isBlock=!h,a.isBlock)?(r(st),r((_=n.inSSR,S=a.isComponent,_||S?sn:sr))):r((x=n.inSSR,C=a.isComponent,x||C?si:sl))}if(o){let e=sq(al(t.parseResult,[sj("_cached")]));e.body={type:21,body:[sU(["const _memo = (",o.exp,")"]),sU(["if (_cached && _cached.el",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(sP)}(_cached, _memo)) return _cached`]),sU(["const _item = ",a]),sj("_item.memo = _memo"),sj("return _item")],loc:sL},l.arguments.push(e,sj("_cache"),sj(String(n.cached.length))),n.cached.push(null)}else l.arguments.push(sq(al(t.parseResult),a,!0))}})});function ai(e,t){e.finalized||(e.finalized=!0)}function al({value:e,key:t,index:n},r=[]){var i=[e,t,n,...r];let l=i.length;for(;l--&&!i[l];);return i.slice(0,l+1).map((e,t)=>e||sj("_".repeat(t+1),!1))}let as=sj("undefined",!1),ao=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=on(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}};function aa(e,t,n){let r=[sB("name",e),sB("fn",t)];return null!=n&&r.push(sB("key",sj(String(n),!0))),sV(r)}let ac=new WeakMap,au=(e,t)=>function(){let n,r,i,l,s;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:o,props:a}=e,c=1===e.tagType,u=c?function(e,t,n=!1){let{tag:r}=e,i=ap(r),l=or(e,"is",!1,!0);if(l)if(i){let e;if(6===l.type?e=l.value&&sj(l.value.content,!0):(e=l.exp)||(e=sj("is",!1,l.arg.loc)),e)return sH(t.helper(su),[e])}else 6===l.type&&l.value.content.startsWith("vue:")&&(r=l.value.content.slice(4));let s=s3(r)||t.isBuiltInComponent(r);return s?(n||t.helper(s),s):(t.helper(sc),t.components.add(r),op(r,"component"))}(e,t):`"${o}"`,h=M(u)&&u.callee===su,d=0,p=h||u===l5||u===l9||!c&&("svg"===o||"foreignObject"===o||"math"===o);if(a.length>0){let r=ah(e,t,void 0,c,h);n=r.props,d=r.patchFlag,l=r.dynamicPropNames;let i=r.directives;s=i&&i.length?sD(i.map(e=>(function(e,t){let n=[],r=ac.get(e);r?n.push(t.helperString(r)):(t.helper(sh),t.directives.add(e.name),n.push(op(e.name,"directive")));let{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=sj("true",!1,i);n.push(sV(e.modifiers.map(e=>sB(e,t)),i))}return sD(n,e.loc)})(e,t))):void 0,r.shouldUseBlock&&(p=!0)}if(e.children.length>0)if(u===l7&&(p=!0,d|=1024),c&&u!==l5&&u!==l7){let{slots:n,hasDynamicSlots:i}=function(e,t,n=(e,t,n,r)=>sq(e,n,!1,!0,n.length?n[0].loc:r)){t.helper(sI);let{children:r,loc:i}=e,l=[],s=[],o=t.scopes.vSlot>0||t.scopes.vFor>0,a=on(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!s6(e)&&(o=!0),l.push(sB(e||sj("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,h=[],d=new Set,p=0;for(let e=0;esB("default",n(e,void 0,t,i));c?h.length&&!h.every(om)&&(u?t.onError(s2(39,h[0].loc)):l.push(e(void 0,h))):l.push(e(void 0,r))}let f=o?2:!function e(t){for(let n=0;n0,f=!1,g=0,m=!1,y=!1,b=!1,_=!1,S=!1,x=!1,k=[],T=e=>{u.length&&(h.push(sV(ad(u),a)),u=[]),e&&h.push(e)},w=()=>{t.scopes.vFor>0&&u.push(sB(sj("ref_for",!0),sj("true")))},N=({key:e,value:n})=>{if(s6(e)){let l=e.content,s=C(l);s&&(!r||i)&&"onclick"!==l.toLowerCase()&&"onUpdate:modelValue"!==l&&!$(l)&&(_=!0),s&&$(l)&&(x=!0),s&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&oG(n,t)>0||("ref"===l?m=!0:"class"===l?y=!0:"style"===l?b=!0:"key"===l||k.includes(l)||k.push(l),r&&("class"===l||"style"===l)&&!k.includes(l)&&k.push(l))}else S=!0};for(let i=0;i"prop"===e.content)&&(g|=32);let x=t.directiveTransforms[n];if(x){let{props:n,needRuntime:r}=x(s,e,t);l||n.forEach(N),_&&i&&!s6(i)?T(sV(n,a)):u.push(...n),r&&(d.push(s),O(r)&&ac.set(s,r))}else!D(n)&&(d.push(s),p&&(f=!0))}}if(h.length?(T(),s=h.length>1?sH(t.helper(sy),h,a):h[0]):u.length&&(s=sV(ad(u),a)),S?g|=16:(y&&!r&&(g|=2),b&&!r&&(g|=4),k.length&&(g|=8),_&&(g|=32)),!f&&(0===g||32===g)&&(m||x||d.length>0)&&(g|=512),!t.inSSR&&s)switch(s.type){case 15:let A=-1,E=-1,I=!1;for(let e=0;e{if(oc(e)){let{children:n,loc:r}=e,{slotName:i,slotProps:l}=function(e,t){let n,r='"default"',i=[];for(let t=0;t0){let{props:r,directives:l}=ah(e,t,i,!1,!1);n=r,l.length&&t.onError(s2(36,l[0].loc))}return{slotName:r,slotProps:n}}(e,t),s=[t.prefixIdentifiers?"_ctx.$slots":"$slots",i,"{}","undefined","true"],o=2;l&&(s[2]=l,o=3),n.length&&(s[3]=sq([],n,!1,!1,r),o=4),t.scopeId&&!t.slotted&&(o=5),s.splice(o),e.codegenNode=sH(t.helper(sg),s,r)}},ag=(e,t,n,r)=>{let i,{loc:l,modifiers:s,arg:o}=e;if(!e.exp&&!s.length,4===o.type)if(o.isStatic){let e=o.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),i=sj(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?W(j(e)):`on:${e}`,!0,o.loc)}else i=sU([`${n.helperString(sw)}(`,o,")"]);else(i=o).children.unshift(`${n.helperString(sw)}(`),i.children.push(")");let a=e.exp;a&&!a.content.trim()&&(a=void 0);let c=n.cacheHandlers&&!a&&!n.inVOnce;if(a){let e,t=oe(a),n=!(t||(e=a,ot.test(s7(e)))),r=a.content.includes(";");(n||c&&t)&&(a=sU([`${n?"$event":"(...args)"} => ${r?"{":"("}`,a,r?"}":")"]))}let u={props:[sB(i,a||sj("() => {}",!1,l))]};return r&&(u=r(u)),c&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach(e=>e.key.isHandlerKey=!0),u},am=(e,t,n)=>{let{modifiers:r}=e,i=e.arg,{exp:l}=e;return l&&4===l.type&&!l.content.trim()&&(l=void 0),4!==i.type?(i.children.unshift("("),i.children.push(') || ""')):i.isStatic||(i.content=i.content?`${i.content} || ""`:'""'),r.some(e=>"camel"===e.content)&&(4===i.type?i.isStatic?i.content=j(i.content):i.content=`${n.helperString(sk)}(${i.content})`:(i.children.unshift(`${n.helperString(sk)}(`),i.children.push(")"))),!n.inSSR&&(r.some(e=>"prop"===e.content)&&av(i,"."),r.some(e=>"attr"===e.content)&&av(i,"^")),{props:[sB(i,l)]}},av=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},ay=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,r=e.children,i=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name]))))for(let e=0;e{if(1===e.type&&on(e,"once",!0)&&!ab.has(e)&&!t.inVOnce&&!t.inSSR)return ab.add(e),t.inVOnce=!0,t.helper(sN),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},aS=(e,t,n)=>{let r,{exp:i,arg:l}=e;if(!i)return n.onError(s2(41,e.loc)),ax();let s=i.loc.source.trim(),o=4===i.type?i.content:s,a=n.bindingMetadata[s];if("props"===a||"props-aliased"===a||"literal-const"===a||"setup-const"===a)return i.loc,ax();if(!o.trim()||!oe(i))return n.onError(s2(42,i.loc)),ax();let c=l||sj("modelValue",!0),u=l?s6(l)?`onUpdate:${j(l.content)}`:sU(['"onUpdate:" + ',l]):"onUpdate:modelValue",h=n.isTS?"($event: any)":"$event";r=sU([`${h} => ((`,i,") = $event)"]);let d=[sB(c,e.exp),sB(u,r)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(s4.test(e)?JSON.stringify(e):e)+": true").join(", "),n=l?s6(l)?`${l.content}Modifiers`:sU([l,' + "Modifiers"']):"modelModifiers";d.push(sB(n,sj(`{ ${t} }`,!1,e.loc,2)))}return ax(d)};function ax(e=[]){return{props:e}}let aC=new WeakSet,ak=(e,t)=>{if(1===e.type){let n=on(e,"memo");if(!(!n||aC.has(e))&&!t.inSSR)return aC.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&sK(r,t),e.codegenNode=sH(t.helper(sM),[n.exp,sq(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}},aT=(e,t)=>{if(1===e.type){for(let n of e.props)if(7===n.type&&"bind"===n.name&&(!n.exp||4===n.exp.type&&!n.exp.content.trim())&&n.arg){let e=n.arg;if(4===e.type&&e.isStatic){let t=j(e.content);(s8.test(t[0])||"-"===t[0])&&(n.exp=sj(t,!1,e.loc))}else t.onError(s2(53,e.loc)),n.exp=sj("",!0,e.loc)}}},aw=Symbol(""),aN=Symbol(""),aA=Symbol(""),aE=Symbol(""),aI=Symbol(""),aR=Symbol(""),aO=Symbol(""),aM=Symbol(""),aP=Symbol(""),aF=Symbol("");Object.getOwnPropertySymbols(r={[aw]:"vModelRadio",[aN]:"vModelCheckbox",[aA]:"vModelText",[aE]:"vModelSelect",[aI]:"vModelDynamic",[aR]:"withModifiers",[aO]:"withKeys",[aM]:"vShow",[aP]:"Transition",[aF]:"TransitionGroup"}).forEach(e=>{sF[e]=r[e]});let aL={parseMode:"html",isVoidTag:ea,isNativeTag:e=>el(e)||es(e)||eo(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,t=!1){return(f||(f=document.createElement("div")),t)?(f.innerHTML=`
    `,f.children[0].getAttribute("foo")):(f.innerHTML=e,f.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?aP:"TransitionGroup"===e||"transition-group"===e?aF:void 0,getNamespace(e,t,n){let r=t?t.ns:n;if(t&&2===r)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(r=0);else t&&1===r&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(r=0);if(0===r){if("svg"===e)return 1;if("math"===e)return 2}return r}},a$=y("passive,once,capture"),aD=y("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),aV=y("left,right"),aB=y("onkeyup,onkeydown,onkeypress"),aj=(e,t)=>s6(e)&&"onclick"===e.content.toLowerCase()?sj(t,!0):4!==e.type?sU(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,aU=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},aH=[e=>{1===e.type&&e.props.forEach((t,n)=>{let r,i;6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:sj("style",!0,t.loc),exp:(r=t.value.content,i=t.loc,sj(JSON.stringify(er(r)),!1,i,3)),modifiers:[],loc:t.loc})})}],aq={cloak:()=>({props:[]}),html:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s2(54,i)),t.children.length&&(n.onError(s2(55,i)),t.children.length=0),{props:[sB(sj("innerHTML",!0,i),r||sj("",!0))]}},text:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s2(56,i)),t.children.length&&(n.onError(s2(57,i)),t.children.length=0),{props:[sB(sj("textContent",!0),r?oG(r,n)>0?r:sH(n.helperString(sv),[r],i):sj("",!0))]}},model:(e,t,n)=>{let r=aS(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(s2(59,e.arg.loc));let{tag:i}=t,l=n.isCustomElement(i);if("input"===i||"textarea"===i||"select"===i||l){let s=aA,o=!1;if("input"===i||l){let r=or(t,"type");if(r){if(7===r.type)s=aI;else if(r.value)switch(r.value.content){case"radio":s=aw;break;case"checkbox":s=aN;break;case"file":o=!0,n.onError(s2(60,e.loc))}}else t.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))&&(s=aI)}else"select"===i&&(s=aE);o||(r.needRuntime=n.helper(s))}else n.onError(s2(58,e.loc));return r.props=r.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),r},on:(e,t,n)=>ag(e,t,n,t=>{let{modifiers:r}=e;if(!r.length)return t;let{key:i,value:l}=t.props[0],{keyModifiers:s,nonKeyModifiers:o,eventOptionModifiers:a}=((e,t,n,r)=>{let i=[],l=[],s=[];for(let n=0;n{let{exp:r,loc:i}=e;return r||n.onError(s2(62,i)),{props:[],needRuntime:n.helper(aM)}}},aW=Object.create(null);function aK(e,t){if(!R(e))if(!e.nodeType)return S;else e=e.innerHTML;let n=e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t),r=aW[n];if(r)return r;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let i=T({hoistStatic:!0,onError:void 0,onWarn:S},t);!i.isCustomElement&&"u">typeof customElements&&(i.isCustomElement=e=>!!customElements.get(e));let{code:l}=function(e,t={}){return function(e,t={}){var n;let r,i=t.onError||s0,l="module"===t.mode;!0===t.prefixIdentifiers?i(s2(48)):l&&i(s2(49)),t.cacheHandlers&&i(s2(50)),t.scopeId&&!l&&i(s2(51));let s=T({},t,{prefixIdentifiers:!1}),o=R(e)?function(e,t){if(oR.reset(),ox=null,oC=null,ok="",oT=-1,ow=-1,oI.length=0,oS=e,ob=T({},oy),t){let e;for(e in t)null!=t[e]&&(ob[e]=t[e])}oR.mode="html"===ob.parseMode?1:2*("sfc"===ob.parseMode),oR.inXML=1===ob.ns||2===ob.ns;let n=t&&t.delimiters;n&&(oR.delimiterOpen=sZ(n[0]),oR.delimiterClose=sZ(n[1]));let r=o_=function(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:sL}}([],e);return oR.parse(oS),r.loc=oq(0,e.length),r.children=oj(r.children),o_=null,r}(e,s):e,[a,c]=[[aT,a_,o7,ak,ar,af,au,ao,ay],{on:ag,bind:am,model:aS}];return r=function(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,hmr:i=!1,cacheHandlers:l=!1,nodeTransforms:s=[],directiveTransforms:o={},transformHoist:a=null,isBuiltInComponent:c=S,isCustomElement:u=S,expressionPlugins:h=[],scopeId:d=null,slotted:p=!0,ssr:f=!1,inSSR:g=!1,ssrCssVars:m="",bindingMetadata:y=b,inline:_=!1,isTS:x=!1,onError:C=s0,onWarn:k=s1,compatConfig:T}){let w=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),N={filename:t,selfName:w&&q(j(w[1])),prefixIdentifiers:n,hoistStatic:r,hmr:i,cacheHandlers:l,nodeTransforms:s,directiveTransforms:o,transformHoist:a,isBuiltInComponent:c,isCustomElement:u,expressionPlugins:h,scopeId:d,slotted:p,ssr:f,inSSR:g,ssrCssVars:m,bindingMetadata:y,inline:_,isTS:x,onError:C,onWarn:k,compatConfig:T,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=N.helpers.get(e)||0;return N.helpers.set(e,t+1),e},removeHelper(e){let t=N.helpers.get(e);if(t){let n=t-1;n?N.helpers.set(e,n):N.helpers.delete(e)}},helperString:e=>`_${sF[N.helper(e)]}`,replaceNode(e){N.parent.children[N.childIndex]=N.currentNode=e},removeNode(e){let t=N.parent.children,n=e?t.indexOf(e):N.currentNode?N.childIndex:-1;e&&e!==N.currentNode?N.childIndex>n&&(N.childIndex--,N.onNodeRemoved()):(N.currentNode=null,N.onNodeRemoved()),N.parent.children.splice(n,1)},onNodeRemoved:S,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){R(e)&&(e=sj(e)),N.hoists.push(e);let t=sj(`_hoisted_${N.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=function(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:sL}}(N.cached.length,e,t,n);return N.cached.push(r),r}};return N}(o,n=T({},s,{nodeTransforms:[...a,...t.nodeTransforms||[]],directiveTransforms:T({},c,t.directiveTransforms||{})})),oY(o,r),n.hoistStatic&&function e(t,n,r,i=!1,l=!1){let{children:s}=t,o=[];for(let n=0;n0){if(e>=2){a.codegenNode.patchFlag=-1,o.push(a);continue}}else{let e=a.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&oQ(a,r)>=2){let t=oZ(a);t&&(e.props=r.hoist(t))}e.dynamicProps&&(e.dynamicProps=r.hoist(e.dynamicProps))}}}else if(12===a.type&&(i?0:oG(a,r))>=2){14===a.codegenNode.type&&a.codegenNode.arguments.length>0&&a.codegenNode.arguments.push("-1"),o.push(a);continue}if(1===a.type){let n=1===a.tagType;n&&r.scopes.vSlot++,e(a,t,r,!1,l),n&&r.scopes.vSlot--}else if(11===a.type)e(a,t,r,1===a.children.length,!0);else if(9===a.type)for(let n=0;ne.key===t||e.key.content===t);return n&&n.value}}o.length&&r.transformHoist&&r.transformHoist(s,r,t)}(o,void 0,r,!!oJ(o)),n.ssr||function(e,t){let{helper:n}=t,{children:r}=e;if(1===r.length){let n=oJ(e);if(n&&n.codegenNode){let r=n.codegenNode;13===r.type&&sK(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=s$(t,n(l8),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(o,r),o.helpers=new Set([...r.helpers.keys()]),o.components=[...r.components],o.directives=[...r.directives],o.imports=r.imports,o.hoists=r.hoists,o.temps=r.temps,o.cached=r.cached,o.transformed=!0,function(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:i="template.vue.html",scopeId:l=null,optimizeImports:s=!1,runtimeGlobalName:o="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:h=!1,inSSR:d=!1}){let p={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:l,optimizeImports:s,runtimeGlobalName:o,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:h,inSSR:d,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${sF[e]}`,push(e,t=-2,n){p.code+=e},indent(){f(++p.indentLevel)},deindent(e=!1){e?--p.indentLevel:f(--p.indentLevel)},newline(){f(p.indentLevel)}};function f(e){p.push(` +`+" ".repeat(e),0)}return p}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:r,push:i,prefixIdentifiers:l,indent:s,deindent:o,newline:a,ssr:c}=n,u=Array.from(e.helpers),h=u.length>0,d=!l&&"module"!==r;!function(e,t){let{push:n,newline:r,runtimeGlobalName:i}=t,l=Array.from(e.helpers);if(l.length>0&&(n(`const _Vue = ${i} +`,-1),e.hoists.length)){let e=[si,sl,ss,so,sa].filter(e=>l.includes(e)).map(o2).join(", ");n(`const { ${e} } = _Vue +`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:r}=t;r();for(let i=0;i0)&&a()),e.directives.length&&(o6(e.directives,"directive",n),e.temps>0&&a()),e.temps>0){i("let ");for(let t=0;t0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(i(` +`,0),a()),c||i("return "),e.codegenNode?o8(e.codegenNode,n):i("null"),d&&(o(),i("}")),o(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(o,s)}(e,T({},aL,t,{nodeTransforms:[aU,...aH,...t.nodeTransforms||[]],directiveTransforms:T({},aq,t.directiveTransforms||{}),transformHoist:null}))}(e,i),s=Function(l)();return s._rc=!0,aW[n]=s}return iO(aK),e.BaseTransition=ny,e.BaseTransitionPropsValidators=ng,e.Comment=r5,e.DeprecationTypes=null,e.EffectScope=em,e.ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},e.ErrorTypeStrings=null,e.Fragment=r4,e.KeepAlive={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=iw(),r=n.ctx,i=new Map,l=new Set,s=null,o=n.suspense,{renderer:{p:a,m:c,um:u,o:{createElement:h}}}=r,d=h("div");function p(e){nJ(e),u(e,n,o,!0)}function f(e){i.forEach((t,n)=>{let r=i$(nj(t)?t.type.__asyncResolved||{}:t.type);r&&!e(r)&&g(n)})}function g(e){let t=i.get(e);!t||s&&ic(t,s)?s&&nJ(s):p(t),i.delete(e),l.delete(e)}r.activate=(e,t,n,r,i)=>{let l=e.component;c(e,t,n,0,o),a(l.vnode,e,t,n,l,o,r,e.slotScopeIds,i),rq(()=>{l.isDeactivated=!1,l.a&&z(l.a);let t=e.props&&e.props.onVnodeMounted;t&&ix(t,l.parent,e)},o)},r.deactivate=e=>{let t=e.component;rQ(t.m),rQ(t.a),c(e,d,null,1,o),rq(()=>{t.da&&z(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&ix(n,t.parent,e),t.isDeactivated=!0},o)},t7(()=>[e.include,e.exclude],([e,t])=>{e&&f(t=>nq(e,t)),t&&f(e=>!nq(t,e))},{flush:"post",deep:!0});let m=null,y=()=>{null!=m&&(rZ(n.subTree.type)?rq(()=>{i.set(m,nG(n.subTree))},n.subTree.suspense):i.set(m,nG(n.subTree)))};return nY(y),n1(y),n2(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=nG(t);if(e.type===i.type&&e.key===i.key){nJ(i);let e=i.component.da;e&&rq(e,r);return}p(e)})}),()=>{if(m=null,!t.default)return s=null;let n=t.default(),r=n[0];if(n.length>1)return s=null,n;if(!ia(r)||!(4&r.shapeFlag)&&!(128&r.shapeFlag))return s=null,r;let o=nG(r);if(o.type===r5)return s=null,o;let a=o.type,c=i$(nj(o)?o.type.__asyncResolved||{}:a),{include:u,exclude:h,max:d}=e;if(u&&(!c||!nq(u,c))||h&&c&&nq(h,c))return o.shapeFlag&=-257,s=o,r;let p=null==o.key?a:o.key,f=i.get(p);return o.el&&(o=im(o),128&r.shapeFlag&&(r.ssContent=o)),m=p,f?(o.el=f.el,o.component=f.component,o.transition&&nC(o,o.transition),o.shapeFlag|=512,l.delete(p),l.add(p)):(l.add(p),d&&l.size>parseInt(d,10)&&g(l.values().next().value)),o.shapeFlag|=256,s=o,rZ(r.type)?r:o}}},e.ReactiveEffect=ey,e.Static=r9,e.Suspense={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,l,s,o,a,c){if(null==e)!function(e,t,n,r,i,l,s,o,a){let{p:c,o:{createElement:u}}=a,h=u("div"),d=e.suspense=r1(e,i,r,t,h,n,l,s,o,a);c(null,d.pendingBranch=e.ssContent,h,null,r,d,l,s),d.deps>0?(r0(e,"onPending"),r0(e,"onFallback"),c(null,e.ssFallback,t,n,r,null,l,s),r3(d,e.ssFallback)):d.resolve(!1,!0)}(t,n,r,i,l,s,o,a,c);else{if(l&&l.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,r,i,l,s,o,{p:a,um:c,o:{createElement:u}}){let h=t.suspense=e.suspense;h.vnode=t,t.el=e.el;let d=t.ssContent,p=t.ssFallback,{activeBranch:f,pendingBranch:g,isInFallback:m,isHydrating:y}=h;if(g)h.pendingBranch=d,ic(g,d)?(a(g,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0?h.resolve():m&&!y&&(a(f,p,n,r,i,null,l,s,o),r3(h,p))):(h.pendingId=rY++,y?(h.isHydrating=!1,h.activeBranch=g):c(g,i,h),h.deps=0,h.effects.length=0,h.hiddenContainer=u("div"),m?(a(null,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0?h.resolve():(a(f,p,n,r,i,null,l,s,o),r3(h,p))):f&&ic(f,d)?(a(f,d,n,r,i,h,l,s,o),h.resolve(!0)):(a(null,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0&&h.resolve()));else if(f&&ic(f,d))a(f,d,n,r,i,h,l,s,o),r3(h,d);else if(r0(t,"onPending"),h.pendingBranch=d,512&d.shapeFlag?h.pendingId=d.component.suspenseId:h.pendingId=rY++,a(null,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0)h.resolve();else{let{timeout:e,pendingId:t}=h;e>0?setTimeout(()=>{h.pendingId===t&&h.fallback(p)},e):0===e&&h.fallback(p)}}(e,t,n,r,i,s,o,a,c)}},hydrate:function(e,t,n,r,i,l,s,o,a){let c=t.suspense=r1(t,r,n,e.parentNode,document.createElement("div"),null,i,l,s,o,!0),u=a(e,c.pendingBranch=t.ssContent,n,c,l,s);return 0===c.deps&&c.resolve(!1,!0),u},normalize:function(e){let{shapeFlag:t,children:n}=e,r=32&t;e.ssContent=r2(r?n.default:n),e.ssFallback=r?r2(n.fallback):ip(r5)}},e.Teleport={name:"Teleport",__isTeleport:!0,process(e,t,n,r,i,l,s,o,a,c){let{mc:u,pc:h,pbc:d,o:{insert:p,querySelector:f,createText:g}}=c,m=ni(t.props),{dynamicChildren:y}=t,b=(e,t,n)=>{16&e.shapeFlag&&u(e.children,t,n,i,l,s,o,a)},_=(e=t)=>{let n=ni(e.props),r=e.target=no(e.props,f),l=nu(r,e,g,p);r&&("svg"!==s&&nl(r)?s="svg":"mathml"!==s&&ns(r)&&(s="mathml"),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,l),nc(e,!1)))},S=e=>{let t=()=>{nn.get(e)===t&&(nn.delete(e),ni(e.props)&&(b(e,n,e.anchor),nc(e,!0)),_(e))};nn.set(e,t),rq(t,l)};if(null==e){let e,i=t.el=g(""),s=t.anchor=g("");if(p(i,n,r),p(s,n,r),(e=t.props)&&(e.defer||""===e.defer)||l&&l.pendingBranch)return void S(t);m&&(b(t,n,s),nc(t,!0)),_()}else{t.el=e.el;let r=t.anchor=e.anchor,u=nn.get(e);if(u){u.flags|=8,nn.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,g=t.targetAnchor=e.targetAnchor,b=ni(e.props),_=b?n:p,x=b?r:g;if("svg"===s||nl(p)?s="svg":("mathml"===s||ns(p))&&(s="mathml"),y?(d(e.dynamicChildren,y,_,i,l,s,o),rX(e,t,!0)):a||h(e,t,_,x,i,l,s,o,!1),m)b?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):na(t,n,r,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=no(t.props,f);e&&na(t,e,null,c,0)}else b&&na(t,p,g,c,1);nc(t,m)}},remove(e,t,n,{um:r,o:{remove:i}},l){let{shapeFlag:s,children:o,anchor:a,targetStart:c,targetAnchor:u,target:h,props:d}=e,p=l||!ni(d),f=nn.get(e);if(f&&(f.flags|=8,nn.delete(e),p=!1),h&&(i(c),i(u)),l&&i(a),16&s)for(let e=0;ee[r]});return n},e.createRenderer=function(e){return rK(e)},e.createSSRApp=l6,e.createSlots=function(e,t){for(let n=0;n{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e},e.createStaticVNode=function(e,t){let n=ip(r9,null,e);return n.staticCount=t,n},e.createTextVNode=iv,e.createVNode=ip,e.customRef=tE,e.defineAsyncComponent=function(e){let t;I(e)&&(e={loader:e});let{loader:n,loadingComponent:r,errorComponent:i,delay:l=200,hydrate:s,timeout:o,suspensible:a=!0,onError:c}=e,u=null,h=0,d=()=>{let e;return u||(e=u=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t((h++,u=null,d())),()=>n(e),h+1)});throw e}).then(n=>e!==u&&u?u:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nT({name:"AsyncComponentWrapper",__asyncLoader:d,__asyncHydrate(e,n,r){let i=!1;(n.bu||(n.bu=[])).push(()=>i=!0);let l=()=>{i||r()},o=s?()=>{let t=s(l,t=>(function(e,t){if(nP(e)&&"["===e.data){let n=1,r=e.nextSibling;for(;r;){if(1===r.nodeType){if(!1===t(r))break}else if(nP(r))if("]"===r.data){if(0==--n)break}else"["===r.data&&n++;r=r.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:l;t?o():d().then(()=>!n.isUnmounted&&o())},get __asyncResolved(){return t},setup(){let e=iT;if(nw(e),t)return()=>nU(t,e);let n=t=>{u=null,tV(t,e,13,!i)};if(a&&e.suspense)return d().then(t=>()=>nU(t,e)).catch(e=>(n(e),()=>i?ip(i,{error:e}):null));let s=tS(!1),c=tS(),h=tS(!!l);return l&&setTimeout(()=>{h.value=!1},l),null!=o&&setTimeout(()=>{if(!s.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),c.value=e}},o),d().then(()=>{s.value=!0,e.parent&&nH(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),c.value=e}),()=>s.value&&t?nU(t,e):c.value&&i?ip(i,{error:c.value}):r&&!h.value?nU(r,e):void 0}})},e.defineComponent=nT,e.defineCustomElement=lx,e.defineEmits=function(){return null},e.defineExpose=function(e){},e.defineModel=function(){},e.defineOptions=function(e){},e.defineProps=function(){return null},e.defineSSRCustomElement=(e,t)=>lx(e,t,l6),e.defineSlots=function(){return null},e.devtools=void 0,e.effect=function(e,t){e.effect instanceof ey&&(e=e.effect.fn);let n=new ey(e);t&&T(n,t);try{n.run()}catch(e){throw n.stop(),e}let r=n.run.bind(n);return r.effect=n,r},e.effectScope=function(e){return new em(e)},e.getCurrentInstance=iw,e.getCurrentScope=function(){return l},e.getCurrentWatcher=function(){return g},e.getTransitionRawChildren=nk,e.guardReactiveProps=ig,e.h=iV,e.handleError=tV,e.hasInjectionContext=function(){return!!(iw()||rS)},e.hydrate=(...e)=>{l0().hydrate(...e)},e.hydrateOnIdle=(e=1e4)=>t=>{let n=nV(t,{timeout:e});return()=>nB(n)},e.hydrateOnInteraction=(e=[])=>(t,n)=>{R(e)&&(e=[e]);let r=!1,i=e=>{r||(r=!0,l(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},l=()=>{n(t=>{for(let n of e)t.removeEventListener(n,i)})};return n(t=>{for(let n of e)t.addEventListener(n,i,{once:!0})}),l},e.hydrateOnMediaQuery=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},e.hydrateOnVisible=e=>(t,n)=>{let r=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){r.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:l,innerWidth:s}=window;return(t>0&&t0&&r0&&n0&&ir.disconnect()},e.initCustomFormatter=function(){},e.initDirectivesForSSR=S,e.inject=t8,e.isMemoSame=iB,e.isProxy=tg,e.isReactive=td,e.isReadonly=tp,e.isRef=t_,e.isRuntimeOnly=()=>!h,e.isShallow=tf,e.isVNode=ia,e.markRaw=tv,e.mergeDefaults=function(e,t){let n=ra(e);for(let e in t){if(e.startsWith("__skip"))continue;let r=n[e];r?E(r)||I(r)?r=n[e]={type:r,default:t[e]}:r.default=t[e]:null===r&&(r=n[e]={default:t[e]}),r&&t[`__skip_${e}`]&&(r.skipFactory=!0)}return n},e.mergeModels=function(e,t){return e&&t?E(e)&&E(t)?e.concat(t):T({},ra(e),ra(t)):e||t},e.mergeProps=iS,e.nextTick=tz,e.nodeOps=iK,e.normalizeClass=ei,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!R(t)&&(e.class=ei(t)),n&&(e.style=Y(n)),e},e.normalizeStyle=Y,e.onActivated=nW,e.onBeforeMount=nZ,e.onBeforeUnmount=n2,e.onBeforeUpdate=n0,e.onDeactivated=nK,e.onErrorCaptured=n5,e.onMounted=nY,e.onRenderTracked=n8,e.onRenderTriggered=n4,e.onScopeDispose=function(e,t=!1){l&&l.cleanups.push(e)},e.onServerPrefetch=n3,e.onUnmounted=n6,e.onUpdated=n1,e.onWatcherCleanup=tF,e.openBlock=it,e.patchProp=l_,e.popScopeId=function(){t1=null},e.provide=t4,e.proxyRefs=tN,e.pushScopeId=function(e){t1=e},e.queuePostFlushCb=tX,e.reactive=ta,e.readonly=tu,e.ref=tS,e.registerRuntimeCompiler=iO,e.render=l1,e.renderList=function(e,t,n,r){let i,l=n&&n[r],s=E(e);if(s||R(e)){let n=s&&td(e),r=!1,o=!1;n&&(r=!tf(e),o=tp(e),e=eU(e)),i=Array(e.length);for(let n=0,s=e.length;nt(e,n,void 0,l&&l[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,s=n.length;r0;return"default"!==t&&(n.name=t),it(),io(r4,null,[ip("slot",n,r&&r())],e?-2:64)}let l=e[t];l&&l._c&&(l._d=!1),it();let s=l&&function e(t){return t.some(t=>!ia(t)||t.type!==r5&&(t.type!==r4||!!e(t.children)))?t:null}(l(n)),o=n.key||s&&s.key,a=io(r4,{key:(o&&!O(o)?o:`_${t}`)+(!s&&r?"_fb":"")},s||(r?r():[]),s&&1===e._?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),l&&l._c&&(l._d=!0),a},e.resolveComponent=function(e,t){return re(n9,e,!0,t)||e},e.resolveDirective=function(e){return re("directives",e)},e.resolveDynamicComponent=function(e){return R(e)?re(n9,e,!1)||e:e||n7},e.resolveFilter=null,e.resolveTransitionHooks=n_,e.setBlockTracking=il,e.setDevtoolsHook=S,e.setTransitionHooks=nC,e.shallowReactive=tc,e.shallowReadonly=function(e){return th(e,!0,e8,tr,to)},e.shallowRef=tx,e.ssrContextKey=t5,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=ep,e.toHandlerKey=W,e.toHandlers=function(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:W(r)]=e[r];return n},e.toRaw=tm,e.toRef=function(e,t,n){if(t_(e))return e;if(I(e))return new tR(e);if(!M(e)||!(arguments.length>1))return tS(e);return new tI(e,t,n)},e.toRefs=function(e){let t=E(e)?Array(e.length):{};for(let n in e)t[n]=new tI(e,n,void 0);return t},e.toValue=function(e){return I(e)?e():tT(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=tT,e.useAttrs=function(){return ro().attrs},e.useCssModule=function(e="$style"){return b},e.useCssVars=function(e){let t=iw();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>ll(e,n))},r=()=>{let r=e(t.proxy);t.ce?ll(t.ce,r):function e(t,n){if(128&t.shapeFlag){let r=t.suspense;t=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{e(r.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)ll(t.el,n);else if(t.type===r4)t.children.forEach(t=>e(t,n));else if(t.type===r9){let{el:e,anchor:r}=t;for(;e&&(ll(e,n),e!==r);)e=e.nextSibling}}(t.subTree,r),n(r)};n0(()=>{tX(r)}),nY(()=>{t7(r,S,{flush:"post"});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),n6(()=>e.disconnect())})},e.useHost=lT,e.useId=function(){let e=iw();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""},e.useModel=function(e,t,n=b){let r=iw(),i=j(t),l=H(t),s=rx(e,i),o=tE((s,o)=>{let a,c,u=b;return t9(()=>{let t=e[i];K(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!K(s,a)&&!(u!==b&&K(e,u)))return;let h=r.vnode.props;h&&(t in h||i in h||l in h)&&(`onUpdate:${t}`in h||`onUpdate:${i}`in h||`onUpdate:${l}`in h)||(a=e,o()),r.emit(`update:${t}`,s),K(e,s)&&K(e,u)&&!K(s,c)&&o(),u=e,c=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||b:o,done:!1}:{done:!0}}},o},e.useSSRContext=()=>{},e.useShadowRoot=function(){let e=lT();return e&&e.shadowRoot},e.useSlots=function(){return ro().slots},e.useTemplateRef=function(e){let t=iw(),n=tx(null);return t&&Object.defineProperty(t.refs===b?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n},e.useTransitionState=np,e.vModelCheckbox=lj,e.vModelDynamic={created(e,t,n){lJ(e,t,n,null,"created")},mounted(e,t,n){lJ(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){lJ(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){lJ(e,t,n,r,"updated")}},e.vModelRadio=lH,e.vModelSelect=lq,e.vModelText=lB,e.vShow={name:"show",beforeMount(e,{value:t},{transition:n}){e[lt]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):lr(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),lr(e,!0),r.enter(e)):r.leave(e,()=>{lr(e,!1)}):lr(e,t))},beforeUnmount(e,{value:t}){lr(e,t)}},e.version=ij,e.warn=S,e.watch=function(e,t,n){return t7(e,t,n)},e.watchEffect=function(e,t){return t7(e,null,t)},e.watchPostEffect=function(e,t){return t7(e,null,{flush:"post"})},e.watchSyncEffect=t9,e.withAsyncContext=function(e){let t=iw(),n=iI,r=e();iA(),n&&u(!1);let i=()=>{iN(t),n&&u(!0)},l=()=>{iw()!==t&&t.scope.off(),iA(),n&&u(!1)};return P(r)&&(r=r.catch(e=>{throw i(),Promise.resolve().then(()=>Promise.resolve().then(l)),e})),[r,()=>{i(),Promise.resolve().then(l)}]},e.withCtx=t6,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){if(null===t0)return e;let n=iL(t0),r=e.dirs||(e.dirs=[]);for(let e=0;e{let n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=n=>{if(!("key"in n))return;let r=H(n.key);if(t.some(e=>e===r||lQ[e]===r))return e(n)})},e.withMemo=function(e,t,n,r){let i=n[r];if(i&&iB(i,e))return i;let l=t();return l.memo=e.slice(),l.cacheIndex=r,n[r]=l},e.withModifiers=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(n,...r)=>{for(let e=0;et6,e}({}); diff --git a/platform/backend/static/static/vue.global.prod.js.bak b/platform/backend/static/static/vue.global.prod.js.bak new file mode 100644 index 0000000..976472b --- /dev/null +++ b/platform/backend/static/static/vue.global.prod.js.bak @@ -0,0 +1,13 @@ +/** +* vue v3.5.32 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/var Vue=function(e){"use strict";var t,n,r;let i,l,s,o,a,c,u,h,d,p,f,g,m;function y(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let b={},_=[],S=()=>{},x=()=>!1,C=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),k=e=>e.startsWith("onUpdate:"),T=Object.assign,w=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},N=Object.prototype.hasOwnProperty,A=(e,t)=>N.call(e,t),E=Array.isArray,I=e=>"function"==typeof e,R=e=>"string"==typeof e,O=e=>"symbol"==typeof e,M=e=>null!==e&&"object"==typeof e,P=e=>(M(e)||I(e))&&I(e.then)&&I(e.catch),F=Object.prototype.toString,L=e=>R(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,$=y(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),D=y("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),V=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},B=/-\w/g,j=V(e=>e.replace(B,e=>e.slice(1).toUpperCase())),U=/\B([A-Z])/g,H=V(e=>e.replace(U,"-$1").toLowerCase()),q=V(e=>e.charAt(0).toUpperCase()+e.slice(1)),W=V(e=>e?`on${q(e)}`:""),K=(e,t)=>!Object.is(e,t),z=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},G=e=>{let t=parseFloat(e);return isNaN(t)?e:t},X=e=>{let t=R(e)?Number(e):NaN;return isNaN(t)?e:t},Q=()=>i||(i="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{}),Z=y("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function Y(e){if(E(e)){let t={};for(let n=0;n{if(e){let n=e.split(et);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ei(e){let t="";if(R(e))t=e;else if(E(e))for(let n=0;neu(e,t))}let ed=e=>!!(e&&!0===e.__v_isRef),ep=e=>R(e)?e:null==e?"":E(e)||M(e)&&(e.toString===F||!I(e.toString))?ed(e)?ep(e.value):JSON.stringify(e,ef,2):String(e),ef=(e,t)=>{let n;if(ed(t))return ef(e,t.value);if("[object Map]"===(n=t,F.call(n)))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[eg(t,r)+" =>"]=n,e),{})};{let e;if("[object Set]"===(e=t,F.call(e)))return{[`Set(${t.size})`]:[...t.values()].map(e=>eg(e))};else{if(O(t))return eg(t);let e;if(M(t)&&!E(t)&&"[object Object]"!==(e=t,F.call(e)))return String(t)}}return t},eg=(e,t="")=>{var n;return O(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class em{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=l,!e&&l&&(this.index=(l.scopes||(l.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0==--this._on&&(l=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t0)){if(a){let e=a;for(a=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;o;){let t=o;for(o=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function ex(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eC(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),ew(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function ek(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eT(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function eT(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eO)||(e.globalVersion=eO,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!ek(e))))return;e.flags|=2;let t=e.dep,n=s,r=eN;s=e,eN=!0;try{ex(e);let n=e.fn(e._value);(0===t.version||K(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{s=n,eN=r,eC(e),e.flags&=-3}}function ew(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)ew(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let eN=!0,eA=[];function eE(){eA.push(eN),eN=!1}function eI(){let e=eA.pop();eN=void 0===e||e}function eR(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=s;s=void 0;try{t()}finally{s=e}}}let eO=0;class eM{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}}class eP{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(!s||!eN||s===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==s)t=this.activeLink=new eM(s,this),s.deps?(t.prevDep=s.depsTail,s.depsTail.nextDep=t,s.depsTail=t):s.deps=s.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=s.depsTail,t.nextDep=void 0,s.depsTail.nextDep=t,s.depsTail=t,s.deps===t&&(s.deps=e)}return t}trigger(e){this.version++,eO++,this.notify(e)}notify(e){eb++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{eS()}}}let eF=new WeakMap,eL=Symbol(""),e$=Symbol(""),eD=Symbol("");function eV(e,t,n){if(eN&&s){let t=eF.get(e);t||eF.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new eP),r.map=t,r.key=n),r.track()}}function eB(e,t,n,r,i,l){let s=eF.get(e);if(!s)return void eO++;let o=e=>{e&&e.trigger()};if(eb++,"clear"===t)s.forEach(o);else{let i=E(e),l=i&&L(n);if(i&&"length"===n){let e=Number(r);s.forEach((t,n)=>{("length"===n||n===eD||!O(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),l&&o(s.get(eD)),t){case"add":if(i)l&&o(s.get("length"));else{let t;o(s.get(eL));"[object Map]"===(t=e,F.call(t))&&o(s.get(e$))}break;case"delete":if(!i){let t;o(s.get(eL));"[object Map]"===(t=e,F.call(t))&&o(s.get(e$))}break;case"set":let a;"[object Map]"===(a=e,F.call(a))&&o(s.get(eL))}}eS()}function ej(e){let t=tm(e);return t===e?t:(eV(t,"iterate",eD),tf(e)?t:t.map(ty))}function eU(e){return eV(e=tm(e),"iterate",eD),e}function eH(e,t){return tp(e)?td(e)?tb(ty(t)):tb(t):ty(t)}let eq={__proto__:null,[Symbol.iterator](){return eW(this,Symbol.iterator,e=>eH(this,e))},concat(...e){return ej(this).concat(...e.map(e=>E(e)?ej(e):e))},entries(){return eW(this,"entries",e=>(e[1]=eH(this,e[1]),e))},every(e,t){return ez(this,"every",e,t,void 0,arguments)},filter(e,t){return ez(this,"filter",e,t,e=>e.map(e=>eH(this,e)),arguments)},find(e,t){return ez(this,"find",e,t,e=>eH(this,e),arguments)},findIndex(e,t){return ez(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ez(this,"findLast",e,t,e=>eH(this,e),arguments)},findLastIndex(e,t){return ez(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ez(this,"forEach",e,t,void 0,arguments)},includes(...e){return eG(this,"includes",e)},indexOf(...e){return eG(this,"indexOf",e)},join(e){return ej(this).join(e)},lastIndexOf(...e){return eG(this,"lastIndexOf",e)},map(e,t){return ez(this,"map",e,t,void 0,arguments)},pop(){return eX(this,"pop")},push(...e){return eX(this,"push",e)},reduce(e,...t){return eJ(this,"reduce",e,t)},reduceRight(e,...t){return eJ(this,"reduceRight",e,t)},shift(){return eX(this,"shift")},some(e,t){return ez(this,"some",e,t,void 0,arguments)},splice(...e){return eX(this,"splice",e)},toReversed(){return ej(this).toReversed()},toSorted(e){return ej(this).toSorted(e)},toSpliced(...e){return ej(this).toSpliced(...e)},unshift(...e){return eX(this,"unshift",e)},values(){return eW(this,"values",e=>eH(this,e))}};function eW(e,t,n){let r=eU(e),i=r[t]();return r===e||tf(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}let eK=Array.prototype;function ez(e,t,n,r,i,l){let s=eU(e),o=s!==e&&!tf(e),a=s[t];if(a!==eK[t]){let t=a.apply(e,l);return o?ty(t):t}let c=n;s!==e&&(o?c=function(t,r){return n.call(this,eH(e,t),r,e)}:n.length>2&&(c=function(t,r){return n.call(this,t,r,e)}));let u=a.call(s,c,r);return o&&i?i(u):u}function eJ(e,t,n,r){let i=eU(e),l=i!==e&&!tf(e),s=n,o=!1;i!==e&&(l?(o=0===r.length,s=function(t,r,i){return o&&(o=!1,t=eH(e,t)),n.call(this,t,eH(e,r),i,e)}):n.length>3&&(s=function(t,r,i){return n.call(this,t,r,i,e)}));let a=i[t](s,...r);return o?eH(e,a):a}function eG(e,t,n){let r=tm(e);eV(r,"iterate",eD);let i=r[t](...n);return(-1===i||!1===i)&&tg(n[0])?(n[0]=tm(n[0]),r[t](...n)):i}function eX(e,t,n=[]){eE(),eb++;let r=tm(e)[t].apply(e,n);return eS(),eI(),r}let eQ=y("__proto__,__v_isRef,__isVue"),eZ=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(O));function eY(e){O(e)||(e=String(e));let t=tm(this);return eV(t,"has",e),t.hasOwnProperty(e)}class e0{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;if("__v_raw"===t)return n===(r?i?to:ts:i?tl:ti).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let l=E(e);if(!r){let e;if(l&&(e=eq[t]))return e;if("hasOwnProperty"===t)return eY}let s=Reflect.get(e,t,t_(e)?e:n);if((O(t)?eZ.has(t):eQ(t))||(r||eV(e,"get",t),i))return s;if(t_(s)){let e=l&&L(t)?s:s.value;return r&&M(e)?tu(e):e}return M(s)?r?tu(s):ta(s):s}}class e1 extends e0{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],l=E(e)&&L(t);if(!this._isShallow){let e=tp(i);if(tf(n)||tp(n)||(i=tm(i),n=tm(n)),!l&&t_(i)&&!t_(n))if(e)return!0;else return i.value=n,!0}let s=l?Number(t)e;function e9(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function e7(e,t){let n,r=(T(n={get(n){let r=this.__v_raw,i=tm(r),l=tm(n);e||(K(n,l)&&eV(i,"get",n),eV(i,"get",l));let{has:s}=Reflect.getPrototypeOf(i),o=t?e5:e?tb:ty;return s.call(i,n)?o(r.get(n)):s.call(i,l)?o(r.get(l)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||eV(tm(t),"iterate",eL),t.size},has(t){let n=this.__v_raw,r=tm(n),i=tm(t);return e||(K(t,i)&&eV(r,"has",t),eV(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,l=i.__v_raw,s=tm(l),o=t?e5:e?tb:ty;return e||eV(s,"iterate",eL),l.forEach((e,t)=>n.call(r,o(e),o(t),i))}},e?{add:e9("add"),set:e9("set"),delete:e9("delete"),clear:e9("clear")}:{add(e){let n=tm(this),r=Reflect.getPrototypeOf(n),i=tm(e),l=t||tf(e)||tp(e)?e:i;return r.has.call(n,l)||K(e,l)&&r.has.call(n,e)||K(i,l)&&r.has.call(n,i)||(n.add(l),eB(n,"add",l,l)),this},set(e,n){t||tf(n)||tp(n)||(n=tm(n));let r=tm(this),{has:i,get:l}=Reflect.getPrototypeOf(r),s=i.call(r,e);s||(e=tm(e),s=i.call(r,e));let o=l.call(r,e);return r.set(e,n),s?K(n,o)&&eB(r,"set",e,n):eB(r,"add",e,n),this},delete(e){let t=tm(this),{has:n,get:r}=Reflect.getPrototypeOf(t),i=n.call(t,e);i||(e=tm(e),i=n.call(t,e)),r&&r.call(t,e);let l=t.delete(e);return i&&eB(t,"delete",e,void 0),l},clear(){let e=tm(this),t=0!==e.size,n=e.clear();return t&&eB(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i,l=this.__v_raw,s=tm(l),o="[object Map]"===(i=s,F.call(i)),a="entries"===r||r===Symbol.iterator&&o,c=l[r](...n),u=t?e5:e?tb:ty;return e||eV(s,"iterate","keys"===r&&o?e$:eL),T(Object.create(c),{next(){let{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:a?[u(e[0]),u(e[1])]:u(e),done:t}}})}}),n);return(t,n,i)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(A(r,n)&&n in t?r:t,n,i)}let te={get:e7(!1,!1)},tt={get:e7(!1,!0)},tn={get:e7(!0,!1)},tr={get:e7(!0,!0)},ti=new WeakMap,tl=new WeakMap,ts=new WeakMap,to=new WeakMap;function ta(e){return tp(e)?e:th(e,!1,e6,te,ti)}function tc(e){return th(e,!1,e4,tt,tl)}function tu(e){return th(e,!0,e3,tn,ts)}function th(e,t,n,r,i){var l;let s;if(!M(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=(l=e).__v_skip||!Object.isExtensible(l)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((s=l,F.call(s)).slice(8,-1));if(0===o)return e;let a=i.get(e);if(a)return a;let c=new Proxy(e,2===o?r:n);return i.set(e,c),c}function td(e){return tp(e)?td(e.__v_raw):!!(e&&e.__v_isReactive)}function tp(e){return!!(e&&e.__v_isReadonly)}function tf(e){return!!(e&&e.__v_isShallow)}function tg(e){return!!e&&!!e.__v_raw}function tm(e){let t=e&&e.__v_raw;return t?tm(t):e}function tv(e){return!A(e,"__v_skip")&&Object.isExtensible(e)&&J(e,"__v_skip",!0),e}let ty=e=>M(e)?ta(e):e,tb=e=>M(e)?tu(e):e;function t_(e){return!!e&&!0===e.__v_isRef}function tS(e){return tC(e,!1)}function tx(e){return tC(e,!0)}function tC(e,t){return t_(e)?e:new tk(e,t)}class tk{constructor(e,t){this.dep=new eP,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:tm(e),this._value=t?e:ty(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tf(e)||tp(e);K(e=n?e:tm(e),t)&&(this._rawValue=e,this._value=n?e:ty(e),this.dep.trigger())}}function tT(e){return t_(e)?e.value:e}let tw={get:(e,t,n)=>"__v_raw"===t?e:tT(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return t_(i)&&!t_(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tN(e){return td(e)?e:new Proxy(e,tw)}class tA{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new eP,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tE(e){return new tA(e)}class tI{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=O(t)?t:String(t),this._raw=tm(e);let r=!0,i=e;if(!E(e)||O(this._key)||!L(this._key))do r=!tg(i)||tf(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=tT(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&t_(this._raw[this._key])){let t=this._object[this._key];if(t_(t)){t.value=e;return}}this._object[this._key]=e}get dep(){var e,t;let n;return e=this._raw,t=this._key,(n=eF.get(e))&&n.get(t)}}class tR{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}class tO{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eP(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eO-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&s!==this)return e_(this,!0),!0}get value(){let e=this.dep.track();return eT(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tM={},tP=new WeakMap;function tF(e,t=!1,n=g){if(n){let t=tP.get(n);t||tP.set(n,t=[]),t.push(e)}}function tL(e,t=1/0,n){if(t<=0||!M(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,t_(e))tL(e.value,t,n);else if(E(e))for(let r=0;r{tL(e,t,n)});else{let r;if("[object Object]"===(r=e,F.call(r))){for(let r in e)tL(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&tL(e[r],t,n)}}}return e}function t$(e,t,n,r){try{return r?e(...r):e()}catch(e){tV(e,t,n)}}function tD(e,t,n,r){if(I(e)){let i=t$(e,t,n,r);return i&&P(i)&&i.catch(e=>{tV(e,t,n)}),i}if(E(e)){let i=[];for(let l=0;l=tY(n)?tB.push(e):tB.splice(function(e){let t=tj+1,n=tB.length;for(;t>>1,i=tB[r],l=tY(i);ltY(e)-tY(t));if(tU.length=0,tH)return void tH.push(...e);for(tq=0,tH=e;tqnull==e.id?2&e.flags?-1:1/0:e.id,t0=null,t1=null;function t2(e){let t=t0;return t0=e,t1=e&&e.type.__scopeId||null,t}function t6(e,t=t0,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&il(-1);let l=t2(t);try{i=e(...n)}finally{t2(l),r._d&&il(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function t3(e,t,n,r){let i=e.dirs,l=t&&t.dirs;for(let s=0;s1)return n&&I(t)?t.call(r&&r.proxy):t}}let t5=Symbol.for("v-scx");function t9(e,t){return t7(e,null,{flush:"sync"})}function t7(e,t,n=b){let{flush:r}=n,i=T({},n),s=iT;i.call=(e,t,n)=>tD(e,s,t,n);let o=!1;return"post"===r?i.scheduler=e=>{rq(e,s&&s.suspense)}:"sync"!==r&&(o=!0,i.scheduler=(e,t)=>{t?e():tJ(e)}),i.augmentJob=e=>{t&&(e.flags|=4),o&&(e.flags|=2,s&&(e.id=s.uid,e.i=s))},function(e,t,n=b){let r,i,s,o,{immediate:a,deep:c,once:u,scheduler:h,augmentJob:d,call:p}=n,f=e=>c?e:tf(e)||!1===c||0===c?tL(e,1):tL(e),m=!1,y=!1;if(t_(e)?(i=()=>e.value,m=tf(e)):td(e)?(i=()=>f(e),m=!0):E(e)?(y=!0,m=e.some(e=>td(e)||tf(e)),i=()=>e.map(e=>t_(e)?e.value:td(e)?f(e):I(e)?p?p(e,2):e():void 0)):i=I(e)?t?p?()=>p(e,2):e:()=>{if(s){eE();try{s()}finally{eI()}}let t=g;g=r;try{return p?p(e,3,[o]):e(o)}finally{g=t}}:S,t&&c){let e=i,t=!0===c?1/0:c;i=()=>tL(e(),t)}let _=l,x=()=>{r.stop(),_&&_.active&&w(_.effects,r)};if(u&&t){let e=t;t=(...t)=>{e(...t),x()}}let C=y?Array(e.length).fill(tM):tM,k=e=>{if(1&r.flags&&(r.dirty||e))if(t){let e=r.run();if(c||m||(y?e.some((e,t)=>K(e,C[t])):K(e,C))){s&&s();let n=g;g=r;try{let n=[e,C===tM?void 0:y&&C[0]===tM?[]:C,o];C=e,p?p(t,3,n):t(...n)}finally{g=n}}}else r.run()};return d&&d(k),(r=new ey(i)).scheduler=h?()=>h(k,!1):k,o=e=>tF(e,!1,r),s=r.onStop=()=>{let e=tP.get(r);if(e){if(p)p(e,4);else for(let t of e)t();tP.delete(r)}},t?a?k(!0):C=r.run():h?h(k.bind(null,!0),!0):r.run(),x.pause=r.pause.bind(r),x.resume=r.resume.bind(r),x.stop=x,x}(e,t,i)}function ne(e,t,n){let r,i=this.proxy,l=R(e)?e.includes(".")?nt(i,e):()=>i[e]:e.bind(i,i);I(t)?r=t:(r=t.handler,n=t);let s=iN(this),o=t7(l,r.bind(i),n);return s(),o}function nt(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;ee&&(e.disabled||""===e.disabled),nl=e=>"u">typeof SVGElement&&e instanceof SVGElement,ns=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,no=(e,t)=>{let n=e&&e.to;return R(n)?t?t(n):null:n};function na(e,t,n,{o:{insert:r},m:i},l=2){0===l&&r(e.targetAnchor,t,n);let{el:s,anchor:o,shapeFlag:a,children:c,props:u}=e,h=2===l;if(h&&r(s,t,n),(!h||ni(u))&&16&a)for(let e=0;e{e.isMounted=!0}),n2(()=>{e.isUnmounting=!0}),e}let nf=[Function,Array],ng={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:nf,onEnter:nf,onAfterEnter:nf,onEnterCancelled:nf,onBeforeLeave:nf,onLeave:nf,onAfterLeave:nf,onLeaveCancelled:nf,onBeforeAppear:nf,onAppear:nf,onAfterAppear:nf,onAppearCancelled:nf},nm=e=>{let t=e.subTree;return t.component?nm(t.component):t};function nv(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==r5){t=n;break}}return t}let ny={name:"BaseTransition",props:ng,setup(e,{slots:t}){let n=iw(),r=np();return()=>{let i=t.default&&nk(t.default(),!0);if(!i||!i.length)return;let l=nv(i),s=tm(e),{mode:o}=s;if(r.isLeaving)return nS(l);let a=nx(l);if(!a)return nS(l);let c=n_(a,s,r,n,e=>c=e);a.type!==r5&&nC(a,c);let u=n.subTree&&nx(n.subTree);if(u&&u.type!==r5&&!ic(u,a)&&nm(n).type!==r5){let e=n_(u,s,r,n);if(nC(u,e),"out-in"===o&&a.type!==r5)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,u=void 0},nS(l);"in-out"===o&&a.type!==r5?e.delayLeave=(e,t,n)=>{nb(r,u)[String(u.key)]=u,e[nh]=()=>{t(),e[nh]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{n(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return l}}};function nb(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function n_(e,t,n,r,i){let{appear:l,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:h,onBeforeLeave:d,onLeave:p,onAfterLeave:f,onLeaveCancelled:g,onBeforeAppear:m,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,S=String(e.key),x=nb(n,e),C=(e,t)=>{e&&tD(e,r,9,t)},k=(e,t)=>{let n=t[1];C(e,t),E(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:s,persisted:o,beforeEnter(t){let r=a;if(!n.isMounted)if(!l)return;else r=m||a;t[nh]&&t[nh](!0);let i=x[S];i&&ic(e,i)&&i.el[nh]&&i.el[nh](),C(r,[t])},enter(t){if(x[S]===e)return;let r=c,i=u,s=h;if(!n.isMounted)if(!l)return;else r=y||c,i=b||u,s=_||h;let o=!1;t[nd]=e=>{o||(o=!0,e?C(s,[t]):C(i,[t]),T.delayedLeave&&T.delayedLeave(),t[nd]=void 0)};let a=t[nd].bind(null,!1);r?k(r,[t,a]):a()},leave(t,r){let i=String(e.key);if(t[nd]&&t[nd](!0),n.isUnmounting)return r();C(d,[t]);let l=!1;t[nh]=n=>{l||(l=!0,r(),n?C(g,[t]):C(f,[t]),t[nh]=void 0,x[i]===e&&delete x[i])};let s=t[nh].bind(null,!1);x[i]=e,p?k(p,[t,s]):s()},clone(e){let l=n_(e,t,n,r,i);return i&&i(l),l}};return T}function nS(e){if(nH(e))return(e=im(e)).children=null,e}function nx(e){if(!nH(e))return e.type.__isTeleport&&e.children?nv(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&I(n.default))return n.default()}}function nC(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nC(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nk(e,t=!1,n){let r=[],i=0;for(let l=0;l1)for(let e=0;enE(e,t&&(E(t)?t[l]:t),n,r,i));if(nj(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&nE(e,t,n,r.component.subTree);return}let l=4&r.shapeFlag?iL(r.component):r.el,s=i?null:l,{i:o,r:a}=e,c=t&&t.r,u=o.refs===b?o.refs={}:o.refs,h=o.setupState,d=tm(h),p=h===b?x:e=>!nN(u,e)&&A(d,e),f=(e,t)=>!(t&&nN(u,t));if(null!=c&&c!==a&&(nI(t),R(c)?(u[c]=null,p(c)&&(h[c]=null)):t_(c)&&(f(c,t.k)&&(c.value=null),t.k&&(u[t.k]=null))),I(a))t$(a,o,12,[s,u]);else{let t=R(a),r=t_(a);if(t||r){let o=()=>{if(e.f){let n=t?p(a)?h[a]:u[a]:f()||!e.k?a.value:u[e.k];if(i)E(n)&&w(n,l);else if(E(n))n.includes(l)||n.push(l);else if(t)u[a]=[l],p(a)&&(h[a]=u[a]);else{let t=[l];f(a,e.k)&&(a.value=t),e.k&&(u[e.k]=t)}}else t?(u[a]=s,p(a)&&(h[a]=s)):r&&(f(a,e.k)&&(a.value=s),e.k&&(u[e.k]=s))};if(s){let t=()=>{o(),nA.delete(e)};t.id=-1,nA.set(e,t),rq(t,n)}else nI(e),o()}}}function nI(e){let t=nA.get(e);t&&(t.flags|=8,nA.delete(e))}let nR=!1,nO=()=>{nR||(console.error("Hydration completed but contains mismatches."),nR=!0)},nM=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},nP=e=>8===e.nodeType;function nF(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:l,parentNode:s,remove:o,insert:a,createComment:c}}=e,u=(n,r,o,c,b,_=!1)=>{_=_||!!r.dynamicChildren;let S=nP(n)&&"["===n.data,x=()=>f(n,r,o,c,b,S),{type:C,ref:k,shapeFlag:T,patchFlag:w}=r,N=n.nodeType;r.el=n,-2===w&&(_=!1,r.dynamicChildren=null);let A=null;switch(C){case r8:3!==N?""===r.children?(a(r.el=i(""),s(n),n),A=n):A=x():(n.data!==r.children&&(nO(),n.data=r.children),A=l(n));break;case r5:y(n)?(A=l(n),m(r.el=n.content.firstChild,n,o)):A=8!==N||S?x():l(n);break;case r9:if(S&&(N=(n=l(n)).nodeType),1===N||3===N){A=n;let e=!r.children.length;for(let t=0;t{s=s||!!t.dynamicChildren;let{type:a,props:c,patchFlag:u,shapeFlag:h,dirs:p,transition:f}=t,g="input"===a||"option"===a;if(g||-1!==u){let a;p&&t3(t,null,n,"created");let b=!1;if(y(e)){b=rG(null,f)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(b){let e=r.getAttribute("class");e&&(r.$cls=e),f.beforeEnter(r)}m(r,e,n),t.el=e=r}if(16&h&&!(c&&(c.innerHTML||c.textContent))){let r=d(e.firstChild,t,e,n,i,l,s);for(;r;){nD(e,1)||nO();let t=r;r=r.nextSibling,o(t)}}else if(8&h){let n=t.children;` +`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1));let{textContent:r}=e;r!==n&&r!==n.replace(/\r\n|\r/g,` +`)&&(nD(e,0)||nO(),e.textContent=t.children)}if(c){if(g||!s||48&u){let t=e.tagName.includes("-");for(let i in c)(g&&(i.endsWith("value")||"indeterminate"===i)||C(i)&&!$(i)||"."===i[0]||t&&!$(i))&&r(e,i,null,c[i],void 0,n)}else if(c.onClick)r(e,"onClick",null,c.onClick,void 0,n);else if(4&u&&td(c.style))for(let e in c.style)c.style[e]}(a=c&&c.onVnodeBeforeMount)&&ix(a,n,t),p&&t3(t,null,n,"beforeMount"),((a=c&&c.onVnodeMounted)||p||b)&&r6(()=>{a&&ix(a,n,t),b&&f.enter(e),p&&t3(t,null,n,"mounted")},i)}return e.nextSibling},d=(e,t,r,s,o,c,h)=>{h=h||!!t.dynamicChildren;let d=t.children,p=d.length;for(let t=0;t{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let h=s(e),p=d(l(e),t,h,n,r,i,o);return p&&nP(p)&&"]"===p.data?l(t.anchor=p):(nO(),a(t.anchor=c("]"),h,p),p)},f=(e,t,r,i,a,c)=>{if(nD(e.parentElement,1)||nO(),t.el=null,c){let t=g(e);for(;;){let n=l(e);if(n&&n!==t)o(n);else break}}let u=l(e),h=s(e);return o(e),n(null,t,h,u,r,i,nM(h),a),r&&(r.vnode.el=t.el,rR(r,t.el)),u},g=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=l(e))&&nP(e)&&(e.data===t&&r++,e.data===n))if(0===r)return l(e);else r--;return e},m=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),tZ(),t._vnode=e;return}u(t.firstChild,e,null,null,null),tZ(),t._vnode=e},u]}let nL="data-allow-mismatch",n$={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function nD(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nL);)e=e.parentElement;let n=e&&e.getAttribute(nL);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(n$[t])}}let nV=Q().requestIdleCallback||(e=>setTimeout(e,1)),nB=Q().cancelIdleCallback||(e=>clearTimeout(e)),nj=e=>!!e.type.__asyncLoader;function nU(e,t){let{ref:n,props:r,children:i,ce:l}=t.vnode,s=ip(e,r,i);return s.ref=n,s.ce=l,delete t.vnode.ce,s}let nH=e=>e.type.__isKeepAlive;function nq(e,t){let n;if(E(e))return e.some(e=>nq(e,t));if(R(e))return e.split(",").includes(t);return"[object RegExp]"===(n=e,F.call(n))&&(e.lastIndex=0,e.test(t))}function nW(e,t){nz(e,"a",t)}function nK(e,t){nz(e,"da",t)}function nz(e,t,n=iT){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(nX(t,r,n),n){let e=n.parent;for(;e&&e.parent;)nH(e.parent.vnode)&&function(e,t,n,r){let i=nX(t,e,r,!0);n6(()=>{w(r[t],i)},n)}(r,t,n,e),e=e.parent}}function nJ(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function nG(e){return 128&e.shapeFlag?e.ssContent:e}function nX(e,t,n=iT,r=!1){if(n){let i=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...r)=>{eE();let i=iN(n),l=tD(t,n,e,r);return i(),eI(),l});return r?i.unshift(l):i.push(l),l}}let nQ=e=>(t,n=iT)=>{iI&&"sp"!==e||nX(e,(...e)=>t(...e),n)},nZ=nQ("bm"),nY=nQ("m"),n0=nQ("bu"),n1=nQ("u"),n2=nQ("bum"),n6=nQ("um"),n3=nQ("sp"),n4=nQ("rtg"),n8=nQ("rtc");function n5(e,t=iT){nX("ec",e,t)}let n9="components",n7=Symbol.for("v-ndc");function re(e,t,n=!0,r=!1){let i=t0||iT;if(i){let n=i.type;if(e===n9){let e=i$(n,!1);if(e&&(e===t||e===j(t)||e===q(j(t))))return n}let l=rt(i[e]||n[e],t)||rt(i.appContext[e],t);return!l&&r?n:l}}function rt(e,t){return e&&(e[t]||e[j(t)]||e[q(j(t))])}let rn=e=>e?iE(e)?iL(e):rn(e.parent):null,rr=T(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=>rn(e.parent),$root:e=>rn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>rh(e),$forceUpdate:e=>e.f||(e.f=()=>{tJ(e.update)}),$nextTick:e=>e.n||(e.n=tz.bind(e.proxy)),$watch:e=>ne.bind(e)}),ri=(e,t)=>e!==b&&!e.__isScriptSetup&&A(e,t),rl={get({_:e},t){let n,r;if("__v_skip"===t)return!0;let{ctx:i,setupState:l,data:s,props:o,accessCache:a,type:c,appContext:u}=e;if("$"!==t[0]){let e=a[t];if(void 0!==e)switch(e){case 1:return l[t];case 2:return s[t];case 4:return i[t];case 3:return o[t]}else{if(ri(l,t))return a[t]=1,l[t];if(s!==b&&A(s,t))return a[t]=2,s[t];if(A(o,t))return a[t]=3,o[t];if(i!==b&&A(i,t))return a[t]=4,i[t];rc&&(a[t]=0)}}let h=rr[t];return h?("$attrs"===t&&eV(e.attrs,"get",""),h(e)):(n=c.__cssModules)&&(n=n[t])?n:i!==b&&A(i,t)?(a[t]=4,i[t]):A(r=u.config.globalProperties,t)?r[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:l}=e;return ri(i,t)?(i[t]=n,!0):r!==b&&A(r,t)?(r[t]=n,!0):!A(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:l,type:s}},o){let a;return!!(n[o]||e!==b&&"$"!==o[0]&&A(e,o)||ri(t,o)||A(l,o)||A(r,o)||A(rr,o)||A(i.config.globalProperties,o)||(a=s.__cssModules)&&a[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:A(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},rs=T({},rl,{get(e,t){if(t!==Symbol.unscopables)return rl.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!Z(t)});function ro(e){let t=iw();return t.setupContext||(t.setupContext=iF(t))}function ra(e){return E(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let rc=!0;function ru(e,t,n){tD(E(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function rh(e){let t,n=e.type,{mixins:r,extends:i}=n,{mixins:l,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:l.length||r||i?(t={},l.length&&l.forEach(e=>rd(t,e,o,!0)),rd(t,n,o)):t=n,M(n)&&s.set(n,t),t}function rd(e,t,n,r=!1){let{mixins:i,extends:l}=t;for(let s in l&&rd(e,l,n,!0),i&&i.forEach(t=>rd(e,t,n,!0)),t)if(r&&"expose"===s);else{let r=rp[s]||n&&n[s];e[s]=r?r(e[s],t[s]):t[s]}return e}let rp={data:rf,props:ry,emits:ry,methods:rv,computed:rv,beforeCreate:rm,created:rm,beforeMount:rm,mounted:rm,beforeUpdate:rm,updated:rm,beforeDestroy:rm,beforeUnmount:rm,destroyed:rm,unmounted:rm,activated:rm,deactivated:rm,errorCaptured:rm,serverPrefetch:rm,components:rv,directives:rv,watch:function(e,t){if(!e)return t;if(!t)return e;let n=T(Object.create(null),e);for(let r in t)n[r]=rm(e[r],t[r]);return n},provide:rf,inject:function(e,t){return rv(rg(e),rg(t))}};function rf(e,t){return t?e?function(){return T(I(e)?e.call(this,this):e,I(t)?t.call(this,this):t)}:t:e}function rg(e){if(E(e)){let t={};for(let n=0;n"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${j(t)}Modifiers`]||e[`${H(t)}Modifiers`];function rC(e,t,...n){let r;if(e.isUnmounted)return;let i=e.vnode.props||b,l=n,s=t.startsWith("update:"),o=s&&rx(i,t.slice(7));o&&(o.trim&&(l=n.map(e=>R(e)?e.trim():e)),o.number&&(l=n.map(G)));let a=i[r=W(t)]||i[r=W(j(t))];!a&&s&&(a=i[r=W(H(t))]),a&&tD(a,e,6,l);let c=i[r+"Once"];if(c){if(e.emitted){if(e.emitted[r])return}else e.emitted={};e.emitted[r]=!0,tD(c,e,6,l)}}let rk=new WeakMap;function rT(e,t){return!!e&&!!C(t)&&(A(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||A(e,H(t))||A(e,t))}function rw(e){let t,n,{type:r,vnode:i,proxy:l,withProxy:s,propsOptions:[o],slots:a,attrs:c,emit:u,render:h,renderCache:d,props:p,data:f,setupState:g,ctx:m,inheritAttrs:y}=e,b=t2(e);try{if(4&i.shapeFlag){let e=s||l;t=iy(h.call(e,e,d,p,g,f,m)),n=c}else t=iy(r.length>1?r(p,{attrs:c,slots:a,emit:u}):r(p,null)),n=r.props?c:rN(c)}catch(n){r7.length=0,tV(n,e,1),t=ip(r5)}let _=t;if(n&&!1!==y){let e=Object.keys(n),{shapeFlag:t}=_;e.length&&7&t&&(o&&e.some(k)&&(n=rA(n,o)),_=im(_,n,!1,!0))}return i.dirs&&((_=im(_,null,!1,!0)).dirs=_.dirs?_.dirs.concat(i.dirs):i.dirs),i.transition&&nC(_,i.transition),t=_,t2(b),t}let rN=e=>{let t;for(let n in e)("class"===n||"style"===n||C(n))&&((t||(t={}))[n]=e[n]);return t},rA=(e,t)=>{let n={};for(let r in e)k(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function rE(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;iObject.getPrototypeOf(e)===rO;function rP(e,t,n,r){let i,[l,s]=e.propsOptions,o=!1;if(t)for(let a in t){let c;if($(a))continue;let u=t[a];l&&A(l,c=j(a))?s&&s.includes(c)?(i||(i={}))[c]=u:n[c]=u:rT(e.emitsOptions,a)||a in r&&u===r[a]||(r[a]=u,o=!0)}if(s){let t=tm(n),r=i||b;for(let i=0;i"_"===e||"_ctx"===e||"$stable"===e,rV=e=>E(e)?e.map(iy):[iy(e)],rB=(e,t,n)=>{if(t._n)return t;let r=t6((...e)=>rV(t(...e)),n);return r._c=!1,r},rj=(e,t,n)=>{let r=e._ctx;for(let n in e){if(rD(n))continue;let i=e[n];if(I(i))t[n]=rB(n,i,r);else if(null!=i){let e=rV(i);t[n]=()=>e}}},rU=(e,t)=>{let n=rV(t);e.slots.default=()=>n},rH=(e,t,n)=>{for(let r in t)(n||!rD(r))&&(e[r]=t[r])},rq=r6;function rW(e){return rK(e,nF)}function rK(e,t){var n;let r,i;Q().__VUE__=!0;let{insert:l,remove:s,patchProp:o,createElement:a,createText:c,createComment:h,setText:d,setElementText:p,parentNode:f,nextSibling:g,setScopeId:m=S,insertStaticContent:y}=e,x=(e,t,n,r=null,i=null,l=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!ic(e,t)&&(r=es(e),et(e,i,l,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:c,ref:u,shapeFlag:h}=t;switch(c){case r8:C(e,t,n,r);break;case r5:k(e,t,n,r);break;case r9:null==e&&w(t,n,r,s);break;case r4:B(e,t,n,r,i,l,s,o,a);break;default:1&h?N(e,t,n,r,i,l,s,o,a):6&h?U(e,t,n,r,i,l,s,o,a):64&h?c.process(e,t,n,r,i,l,s,o,a,ec):128&h&&c.process(e,t,n,r,i,l,s,o,a,ec)}null!=u&&i?nE(u,e&&e.ref,l,t||e,!t):null==u&&e&&null!=e.ref&&nE(e.ref,null,l,e,!0)},C=(e,t,n,r)=>{if(null==e)l(t.el=c(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&d(n,t.children)}},k=(e,t,n,r)=>{null==e?l(t.el=h(t.children||""),n,r):t.el=e.el},w=(e,t,n,r)=>{[e.el,e.anchor]=y(e.children,t,n,r,e.el,e.anchor)},N=(e,t,n,r,i,l,s,o,a)=>{if("svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e)R(t,n,r,i,l,s,o,a);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),L(e,t,i,l,s,o,a)}finally{n&&n._endPatch()}}},R=(e,t,n,r,i,s,c,u)=>{let h,d,{props:f,shapeFlag:g,transition:m,dirs:y}=e;if(h=e.el=a(e.type,s,f&&f.is,f),8&g?p(h,e.children):16&g&&F(e.children,h,null,r,i,rz(e,s),c,u),y&&t3(e,null,r,"created"),O(h,e,e.scopeId,c,r),f){for(let e in f)"value"===e||$(e)||o(h,e,null,f[e],s,r);"value"in f&&o(h,"value",null,f.value,s),(d=f.onVnodeBeforeMount)&&ix(d,r,e)}y&&t3(e,null,r,"beforeMount");let b=rG(i,m);b&&m.beforeEnter(h),l(h,t,n),((d=f&&f.onVnodeMounted)||b||y)&&rq(()=>{d&&ix(d,r,e),b&&m.enter(h),y&&t3(e,null,r,"mounted")},i)},O=(e,t,n,r,i)=>{if(n&&m(e,n),r)for(let t=0;t{for(let c=a;c{let a,c=t.el=e.el,{patchFlag:u,dynamicChildren:h,dirs:d}=t;u|=16&e.patchFlag;let f=e.props||b,g=t.props||b;if(n&&rJ(n,!1),(a=g.onVnodeBeforeUpdate)&&ix(a,n,t,e),d&&t3(t,e,n,"beforeUpdate"),n&&rJ(n,!0),(f.innerHTML&&null==g.innerHTML||f.textContent&&null==g.textContent)&&p(c,""),h?D(e.dynamicChildren,h,c,n,r,rz(t,i),l):s||X(e,t,c,null,n,r,rz(t,i),l,!1),u>0){if(16&u)V(c,f,g,n,i);else if(2&u&&f.class!==g.class&&o(c,"class",null,g.class,i),4&u&&o(c,"style",f.style,g.style,i),8&u){let e=t.dynamicProps;for(let t=0;t{a&&ix(a,n,t,e),d&&t3(t,e,n,"updated")},r)},D=(e,t,n,r,i,l,s)=>{for(let o=0;o{if(t!==n){if(t!==b)for(let l in t)$(l)||l in n||o(e,l,t[l],null,i,r);for(let l in n){if($(l))continue;let s=n[l],a=t[l];s!==a&&"value"!==l&&o(e,l,a,s,i,r)}"value"in n&&o(e,"value",t.value,n.value,i)}},B=(e,t,n,r,i,s,o,a,u)=>{let h=t.el=e?e.el:c(""),d=t.anchor=e?e.anchor:c(""),{patchFlag:p,dynamicChildren:f,slotScopeIds:g}=t;g&&(a=a?a.concat(g):g),null==e?(l(h,n,r),l(d,n,r),F(t.children||[],n,d,i,s,o,a,u)):p>0&&64&p&&f&&e.dynamicChildren&&e.dynamicChildren.length===f.length?(D(e.dynamicChildren,f,n,i,s,o,a),(null!=t.key||i&&t===i.subTree)&&rX(e,t,!0)):X(e,t,n,d,i,s,o,a,u)},U=(e,t,n,r,i,l,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?i.ctx.activate(t,n,r,s,a):q(t,n,r,i,l,s,a):W(e,t,a)},q=(e,t,n,r,i,l,s)=>{var o,a,c;let h,d,p,f=(o=e,a=r,c=i,h=o.type,d=(a?a.appContext:o.appContext)||iC,(p={uid:ik++,vnode:o,type:h,parent:a,appContext:d,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new em(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:a?a.provides:Object.create(d.provides),ids:a?a.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,r=!1){let i=r?rL:n.propsCache,l=i.get(t);if(l)return l;let s=t.props,o={},a=[],c=!1;if(!I(t)){let i=t=>{c=!0;let[r,i]=e(t,n,!0);T(o,r),i&&a.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}if(!s&&!c)return M(t)&&i.set(t,_),_;if(E(s))for(let e=0;e{let r=e(t,n,!0);r&&(a=!0,T(o,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return s||a?(E(s)?s.forEach(e=>o[e]=null):T(o,s),M(t)&&i.set(t,o),o):(M(t)&&i.set(t,null),null)}(h,d),emit:null,emitted:null,propsDefaults:b,inheritAttrs:h.inheritAttrs,ctx:b,data:b,props:b,attrs:b,slots:b,refs:b,setupState:b,setupContext:null,suspense:c,suspenseId:c?c.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null}).ctx={_:p},p.root=a?a.root:p,p.emit=rC.bind(null,p),o.ce&&o.ce(p),e.component=p);if(nH(e)&&(f.ctx.renderer=ec),function(e,t=!1,n=!1){t&&u(t);let{props:r,children:i}=e.vnode,l=iE(e);!function(e,t,n,r=!1){let i={},l=Object.create(rO);for(let n in e.propsDefaults=Object.create(null),rP(e,t,i,l),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:tc(i):e.type.props?e.props=i:e.props=l,e.attrs=l}(e,r,l,t);var s=n||t;let o=e.slots=Object.create(rO);if(32&e.vnode.shapeFlag){let e=i._;e?(rH(o,i,s),s&&J(o,"_",e,!0)):rj(i,o)}else i&&rU(e,i);l&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,rl);let{setup:r}=n;if(r){eE();let n=e.setupContext=r.length>1?iF(e):null,i=iN(e),l=t$(r,e,0,[e.props,n]),s=P(l);if(eI(),i(),(s||e.sp)&&!nj(e)&&nw(e),s){if(l.then(iA,iA),t)return l.then(n=>{iR(e,n,t)}).catch(t=>{tV(t,e,0)});e.asyncDep=l}else iR(e,l,t)}else iM(e,t)}(e,t),t&&u(!1)}(f,!1,s),f.asyncDep){if(i&&i.registerDep(f,K,s),!e.el){let r=f.subTree=ip(r5);k(null,r,t,n),e.placeholder=r.el}}else K(f,e,t,n,i,l,s)},W=(e,t,n)=>{let r=t.component=e.component;if(function(e,t,n){let{props:r,children:i,component:l}=e,{props:s,children:o,patchFlag:a}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!i||!!o)&&(!o||!o.$stable)||r!==s&&(r?!s||rE(r,s,c):!!s);if(1024&a)return!0;if(16&a)return r?rE(r,s,c):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t{e.scope.on();let a=e.effect=new ey(()=>{if(e.isMounted){let t,{next:n,bu:r,u:i,parent:a,vnode:u}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=u.el,G(e,n,o)),t.asyncDep.then(()=>{rq(()=>{e.isUnmounted||c()},l)});return}}let h=n;rJ(e,!1),n?(n.el=u.el,G(e,n,o)):n=u,r&&z(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&ix(t,a,n,u),rJ(e,!0);let d=rw(e),p=e.subTree;e.subTree=d,x(p,d,f(p.el),es(p),e,l,s),n.el=d.el,null===h&&rR(e,d.el),i&&rq(i,l),(t=n.props&&n.props.onVnodeUpdated)&&rq(()=>ix(t,a,n,u),l)}else{let o,{el:a,props:c}=t,{bm:u,m:h,parent:d,root:p,type:f}=e,g=nj(t);if(rJ(e,!1),u&&z(u),!g&&(o=c&&c.onVnodeBeforeMount)&&ix(o,d,t),rJ(e,!0),a&&i){let t=()=>{e.subTree=rw(e),i(a,e.subTree,e,l,null)};g&&f.__asyncHydrate?f.__asyncHydrate(a,e,t):t()}else{p.ce&&p.ce._hasShadowRoot()&&p.ce._injectChildStyle(f,e.parent?e.parent.type:void 0);let i=e.subTree=rw(e);x(null,i,n,r,e,l,s),t.el=i.el}if(h&&rq(h,l),!g&&(o=c&&c.onVnodeMounted)){let e=t;rq(()=>ix(o,d,e),l)}(256&t.shapeFlag||d&&nj(d.vnode)&&256&d.vnode.shapeFlag)&&e.a&&rq(e.a,l),e.isMounted=!0,t=n=r=null}});e.scope.off();let c=e.update=a.run.bind(a),u=e.job=a.runIfDirty.bind(a);u.i=e,u.id=e.uid,a.scheduler=()=>tJ(u),rJ(e,!0),c()},G=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){let{props:i,attrs:l,vnode:{patchFlag:s}}=e,o=tm(i),[a]=e.propsOptions,c=!1;if((r||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let r=0;r{let{vnode:r,slots:i}=e,l=!0,s=b;if(32&r.shapeFlag){let e=t._;e?n&&1===e?l=!1:rH(i,t,n):(l=!t.$stable,rj(t,i)),s=t}else t&&(rU(e,t),s={default:1});if(l)for(let e in i)rD(e)||null!=s[e]||delete i[e]})(e,t.children,n),eE(),tQ(e),eI()},X=(e,t,n,r,i,l,s,o,a=!1)=>{let c=e&&e.children,u=e?e.shapeFlag:0,h=t.children,{patchFlag:d,shapeFlag:f}=t;if(d>0){if(128&d)return void Y(c,h,n,r,i,l,s,o,a);else if(256&d)return void Z(c,h,n,r,i,l,s,o,a)}8&f?(16&u&&el(c,i,l),h!==c&&p(n,h)):16&u?16&f?Y(c,h,n,r,i,l,s,o,a):el(c,i,l,!0):(8&u&&p(n,""),16&f&&F(h,n,r,i,l,s,o,a))},Z=(e,t,n,r,i,l,s,o,a)=>{let c;e=e||_,t=t||_;let u=e.length,h=t.length,d=Math.min(u,h);for(c=0;ch?el(e,i,l,!0,!1,d):F(t,n,r,i,l,s,o,a,d)},Y=(e,t,n,r,i,l,s,o,a)=>{let c=0,u=t.length,h=e.length-1,d=u-1;for(;c<=h&&c<=d;){let r=e[c],u=t[c]=a?ib(t[c]):iy(t[c]);if(ic(r,u))x(r,u,n,null,i,l,s,o,a);else break;c++}for(;c<=h&&c<=d;){let r=e[h],c=t[d]=a?ib(t[d]):iy(t[d]);if(ic(r,c))x(r,c,n,null,i,l,s,o,a);else break;h--,d--}if(c>h){if(c<=d){let e=d+1,h=ed)for(;c<=h;)et(e[c],i,l,!0),c++;else{let p,f=c,g=c,m=new Map;for(c=g;c<=d;c++){let e=t[c]=a?ib(t[c]):iy(t[c]);null!=e.key&&m.set(e.key,c)}let y=0,b=d-g+1,S=!1,C=0,k=Array(b);for(c=0;c=b){et(u,i,l,!0);continue}if(null!=u.key)r=m.get(u.key);else for(p=g;p<=d;p++)if(0===k[p-g]&&ic(u,t[p])){r=p;break}void 0===r?et(u,i,l,!0):(k[r-g]=c+1,r>=C?C=r:S=!0,x(u,t[r],n,null,i,l,s,o,a),y++)}let T=S?function(e){let t,n,r,i,l,s=e.slice(),o=[0],a=e.length;for(t=0;t>1]]0&&(s[t]=o[r-1]),o[r]=t)}}for(r=o.length,i=o[r-1];r-- >0;)o[r]=i,i=s[i];return o}(k):_;for(p=T.length-1,c=b-1;c>=0;c--){let e=g+c,h=t[e],d=t[e+1],f=e+1{let{el:o,type:a,transition:c,children:u,shapeFlag:h}=e;if(6&h)return void ee(e.component.subTree,t,n,r);if(128&h)return void e.suspense.move(t,n,r);if(64&h)return void a.move(e,t,n,ec);if(a===r4){l(o,t,n);for(let e=0;e{let i;for(;e&&e!==t;)i=g(e),l(e,n,r),e=i;l(t,n,r)})(e,t,n);if(2!==r&&1&h&&c)if(0===r)c.beforeEnter(o),l(o,t,n),rq(()=>c.enter(o),i);else{let{leave:r,delayLeave:i,afterLeave:a}=c,u=()=>{e.ctx.isUnmounted?s(o):l(o,t,n)},h=()=>{o._isLeaving&&o[nh](!0),r(o,()=>{u(),a&&a()})};i?i(o,u,h):h()}else l(o,t,n)},et=(e,t,n,r=!1,i=!1)=>{let l,{type:s,props:o,ref:a,children:c,dynamicChildren:u,shapeFlag:h,patchFlag:d,dirs:p,cacheIndex:f,memo:g}=e;if(-2===d&&(i=!1),null!=a&&(eE(),nE(a,null,n,e,!0),eI()),null!=f&&(t.renderCache[f]=void 0),256&h)return void t.ctx.deactivate(e);let m=1&h&&p,y=!nj(e);if(y&&(l=o&&o.onVnodeBeforeUnmount)&&ix(l,t,e),6&h)ei(e.component,n,r);else{if(128&h)return void e.suspense.unmount(n,r);m&&t3(e,null,t,"beforeUnmount"),64&h?e.type.remove(e,t,n,ec,r):u&&!u.hasOnce&&(s!==r4||d>0&&64&d)?el(u,t,n,!1,!0):(s===r4&&384&d||!i&&16&h)&&el(c,t,n),r&&en(e)}let b=null!=g&&null==f;(y&&(l=o&&o.onVnodeUnmounted)||m||b)&&rq(()=>{l&&ix(l,t,e),m&&t3(e,null,t,"unmounted"),b&&(e.el=null)},n)},en=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===r4)return void er(n,r);if(t===r9)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=g(e),s(e),e=n;s(t)})(e);let l=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,s=()=>t(n,l);r?r(e.el,l,s):s()}else l()},er=(e,t)=>{let n;for(;e!==t;)n=g(e),s(e),e=n;s(t)},ei=(e,t,n)=>{let{bum:r,scope:i,job:l,subTree:s,um:o,m:a,a:c}=e;rQ(a),rQ(c),r&&z(r),i.stop(),l&&(l.flags|=8,et(s,e,t,n)),o&&rq(o,t),rq(()=>{e.isUnmounted=!0},t)},el=(e,t,n,r=!1,i=!1,l=0)=>{for(let s=l;s{if(6&e.shapeFlag)return es(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=g(e.anchor||e.el),n=t&&t[nr];return n?g(n):t},eo=!1,ea=(e,t,n)=>{let r;null==e?t._vnode&&(et(t._vnode,null,null,!0),r=t._vnode.component):x(t._vnode||null,e,t,null,null,null,n),t._vnode=e,eo||(eo=!0,tQ(r),tZ(),eo=!1)},ec={p:x,um:et,m:ee,r:en,mt:q,mc:F,pc:X,pbc:D,n:es,o:e};return t&&([r,i]=t(ec)),{render:ea,hydrate:r,createApp:(n=r,function(e,t=null){I(e)||(e=T({},e)),null==t||M(t)||(t=null);let r=rb(),i=new WeakSet,l=[],s=!1,o=r.app={_uid:r_++,_component:e,_props:t,_container:null,_context:r,_instance:null,version:ij,get config(){return r.config},set config(v){},use:(e,...t)=>(i.has(e)||(e&&I(e.install)?(i.add(e),e.install(o,...t)):I(e)&&(i.add(e),e(o,...t))),o),mixin:e=>(r.mixins.includes(e)||r.mixins.push(e),o),component:(e,t)=>t?(r.components[e]=t,o):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,o):r.directives[e],mount(i,l,a){if(!s){let c=o._ceVNode||ip(e,t);return c.appContext=r,!0===a?a="svg":!1===a&&(a=void 0),l&&n?n(c,i):ea(c,i,a),s=!0,o._container=i,i.__vue_app__=o,iL(c.component)}},onUnmount(e){l.push(e)},unmount(){s&&(tD(l,o._instance,16),ea(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,o),runWithContext(e){let t=rS;rS=o;try{return e()}finally{rS=t}}};return o})}}function rz({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rJ({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rG(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rX(e,t,n=!1){let r=e.children,i=t.children;if(E(r)&&E(i))for(let e=0;ee.__isSuspense,rY=0;function r0(e,t){let n=e.props&&e.props[t];I(n)&&n()}function r1(e,t,n,r,i,l,s,o,a,c,u=!1){var h;let d,p,{p:f,m:g,um:m,n:y,o:{parentNode:b,remove:_}}=c,S=null!=(d=(h=e).props&&h.props.suspensible)&&!1!==d;S&&t&&t.pendingBranch&&(p=t.pendingId,t.deps++);let x=e.props?X(e.props.timeout):void 0,C=l,k={vnode:e,parent:t,parentComponent:n,namespace:s,container:r,hiddenContainer:i,deps:0,pendingId:rY++,timeout:"number"==typeof x?x:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:r,activeBranch:i,pendingBranch:s,pendingId:o,effects:a,parentComponent:c,container:u,isInFallback:h}=k,d=!1;k.isHydrating?k.isHydrating=!1:!e&&((d=i&&s.transition&&"out-in"===s.transition.mode)&&(i.transition.afterLeave=()=>{o===k.pendingId&&(g(s,u,l===C?y(i):l,0),tX(a),h&&r.ssFallback&&(r.ssFallback.el=null))}),i&&!k.isFallbackMountPending&&(b(i.el)===u&&(l=y(i)),m(i,c,k,!0),!d&&h&&r.ssFallback&&rq(()=>r.ssFallback.el=null,k)),d||g(s,u,l,0)),k.isFallbackMountPending=!1,r3(k,s),k.pendingBranch=null,k.isInFallback=!1;let f=k.parent,_=!1;for(;f;){if(f.pendingBranch){f.effects.push(...a),_=!0;break}f=f.parent}_||d||tX(a),k.effects=[],S&&t&&t.pendingBranch&&p===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),r0(r,"onResolve")},fallback(e){if(!k.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:r,container:i,namespace:l}=k;r0(t,"onFallback");let s=y(n),c=()=>{k.isFallbackMountPending=!1,k.isInFallback&&(f(null,e,i,s,r,null,l,o,a),r3(k,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(k.isFallbackMountPending=!0,n.transition.afterLeave=c),k.isInFallback=!0,m(n,r,null,!0),u||c()},move(e,t,n){k.activeBranch&&g(k.activeBranch,e,t,n),k.container=e},next:()=>k.activeBranch&&y(k.activeBranch),registerDep(e,t,n){let r=!!k.pendingBranch;r&&k.deps++;let i=e.vnode.el;e.asyncDep.catch(t=>{tV(t,e,0)}).then(l=>{if(e.isUnmounted||k.isUnmounted||k.pendingId!==e.suspenseId)return;iA(),e.asyncResolved=!0;let{vnode:o}=e;iR(e,l,!1),i&&(o.el=i);let a=!i&&e.subTree.el;t(e,o,b(i||e.subTree.el),i?null:y(e.subTree),k,s,n),a&&(o.placeholder=null,_(a)),rR(e,o.el),r&&0==--k.deps&&k.resolve()})},unmount(e,t){k.isUnmounted=!0,k.activeBranch&&m(k.activeBranch,n,e,t),k.pendingBranch&&m(k.pendingBranch,n,e,t)}};return k}function r2(e){let t;if(I(e)){let n=ii&&e._c;n&&(e._d=!1,it()),e=e(),n&&(e._d=!0,t=ie,ir())}return E(e)&&(e=function(e){let t;for(let n=0;nt!==e)),e}function r6(e,t){t&&t.pendingBranch?E(e)?t.effects.push(...e):t.effects.push(e):tX(e)}function r3(e,t){e.activeBranch=t;let{vnode:n,parentComponent:r}=e,i=t.el;for(;!i&&t.component;)i=(t=t.component.subTree).el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,rR(r,i))}let r4=Symbol.for("v-fgt"),r8=Symbol.for("v-txt"),r5=Symbol.for("v-cmt"),r9=Symbol.for("v-stc"),r7=[],ie=null;function it(e=!1){r7.push(ie=e?null:[])}function ir(){r7.pop(),ie=r7[r7.length-1]||null}let ii=1;function il(e,t=!1){ii+=e,e<0&&ie&&t&&(ie.hasOnce=!0)}function is(e){return e.dynamicChildren=ii>0?ie||_:null,ir(),ii>0&&ie&&ie.push(e),e}function io(e,t,n,r,i){return is(ip(e,t,n,r,i,!0))}function ia(e){return!!e&&!0===e.__v_isVNode}function ic(e,t){return e.type===t.type&&e.key===t.key}let iu=({key:e})=>null!=e?e:null,ih=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?R(e)||t_(e)||I(e)?{i:t0,r:e,k:t,f:!!n}:e:null);function id(e,t=null,n=null,r=0,i=null,l=+(e!==r4),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&iu(t),ref:t&&ih(t),scopeId:t1,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:l,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:t0};return o?(i_(a,n),128&l&&e.normalize(a)):n&&(a.shapeFlag|=R(n)?8:16),ii>0&&!s&&ie&&(a.patchFlag>0||6&l)&&32!==a.patchFlag&&ie.push(a),a}let ip=function(e,t=null,n=null,r=0,i=null,l=!1){var s;if(e&&e!==n7||(e=r5),ia(e)){let r=im(e,t,!0);return n&&i_(r,n),ii>0&&!l&&ie&&(6&r.shapeFlag?ie[ie.indexOf(e)]=r:ie.push(r)),r.patchFlag=-2,r}if(I(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=ig(t);e&&!R(e)&&(t.class=ei(e)),M(n)&&(tg(n)&&!E(n)&&(n=T({},n)),t.style=Y(n))}let o=R(e)?1:rZ(e)?128:e.__isTeleport?64:M(e)?4:2*!!I(e);return id(e,t,n,r,i,o,l,!0)};function ig(e){return e?tg(e)||rM(e)?T({},e):e:null}function im(e,t,n=!1,r=!1){let{props:i,ref:l,patchFlag:s,children:o,transition:a}=e,c=t?iS(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&iu(c),ref:t&&t.ref?n&&l?E(l)?l.concat(ih(t)):[l,ih(t)]:ih(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==r4?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&im(e.ssContent),ssFallback:e.ssFallback&&im(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&nC(u,a.clone(u)),u}function iv(e=" ",t=0){return ip(r8,null,e,t)}function iy(e){return null==e||"boolean"==typeof e?ip(r5):E(e)?ip(r4,null,e.slice()):ia(e)?ib(e):ip(r8,null,String(e))}function ib(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:im(e)}function i_(e,t){let n=0,{shapeFlag:r}=e;if(null==t)t=null;else if(E(t))n=16;else if("object"==typeof t)if(65&r){let n=t.default;n&&(n._c&&(n._d=!1),i_(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;r||rM(t)?3===r&&t0&&(1===t0.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t0}else I(t)?(t={default:t,_ctx:t0},n=32):(t=String(t),64&r?(n=16,t=[iv(t)]):n=8);e.children=t,e.shapeFlag|=n}function iS(...e){let t={};for(let n=0;niT||t0;c=e=>{iT=e},u=e=>{iI=e};let iN=e=>{let t=iT;return c(e),e.scope.on(),()=>{e.scope.off(),c(t)}},iA=()=>{iT&&iT.scope.off(),c(null)};function iE(e){return 4&e.vnode.shapeFlag}let iI=!1;function iR(e,t,n){I(t)?e.render=t:M(t)&&(e.setupState=tN(t)),iM(e,n)}function iO(e){h=e,d=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,rs))}}function iM(e,t,n){let r=e.type;if(!e.render){if(!t&&h&&!r.render){let t=r.template||rh(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:s}=r,o=T(T({isCustomElement:n,delimiters:l},i),s);r.render=h(t,o)}}e.render=r.render||S,d&&d(e)}{let t=iN(e);eE();try{!function(e){let t=rh(e),n=e.proxy,r=e.ctx;rc=!1,t.beforeCreate&&ru(t.beforeCreate,e,"bc");let{data:i,computed:l,methods:s,watch:o,provide:a,inject:c,created:u,beforeMount:h,mounted:d,beforeUpdate:p,updated:f,activated:g,deactivated:m,beforeUnmount:y,unmounted:b,render:_,renderTracked:x,renderTriggered:C,errorCaptured:k,serverPrefetch:T,expose:w,inheritAttrs:N,components:A,directives:O}=t;if(c&&function(e,t){for(let n in E(e)&&(e=rg(e)),e){let r,i=e[n];t_(r=M(i)?"default"in i?t8(i.from||n,i.default,!0):t8(i.from||n):t8(i))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(c,r),s)for(let e in s){let t=s[e];I(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);M(t)&&(e.data=ta(t))}if(rc=!0,l)for(let e in l){let t=l[e],i=I(t)?t.bind(n,n):I(t.get)?t.get.bind(n,n):S,s=iD({get:i,set:!I(t)&&I(t.set)?t.set.bind(n):S});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,r,i){let l=i.includes(".")?nt(r,i):()=>r[i];if(R(t)){let e=n[t];I(e)&&t7(l,e,void 0)}else if(I(t))t7(l,t.bind(r),void 0);else if(M(t))if(E(t))t.forEach(t=>e(t,n,r,i));else{let e=I(t.handler)?t.handler.bind(r):n[t.handler];I(e)&&t7(l,e,t)}}(o[e],r,n,e);if(a){let e=I(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{t4(t,e[t])})}function P(e,t){E(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(u&&ru(u,e,"c"),P(nZ,h),P(nY,d),P(n0,p),P(n1,f),P(nW,g),P(nK,m),P(n5,k),P(n8,x),P(n4,C),P(n2,y),P(n6,b),P(n3,T),E(w))if(w.length){let t=e.exposed||(e.exposed={});w.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});_&&e.render===S&&(e.render=_),null!=N&&(e.inheritAttrs=N),A&&(e.components=A),O&&(e.directives=O)}(e)}finally{eI(),t()}}}let iP={get:(e,t)=>(eV(e,"get",""),e[t])};function iF(e){return{attrs:new Proxy(e.attrs,iP),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function iL(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tN(tv(e.exposed)),{get:(t,n)=>n in t?t[n]:n in rr?rr[n](e):void 0,has:(e,t)=>t in e||t in rr})):e.proxy}function i$(e,t=!0){return I(e)?e.displayName||e.name:e.name||t&&e.__name}let iD=(e,t)=>(function(e,t=!1){let n,r;return I(e)?n=e:(n=e.get,r=e.set),new tO(n,r,t)})(e,iI);function iV(e,t,n){try{il(-1);let r=arguments.length;if(2!==r)return r>3?n=Array.prototype.slice.call(arguments,2):3===r&&ia(n)&&(n=[n]),ip(e,t,n);if(!M(t)||E(t))return ip(e,null,t);if(ia(t))return ip(e,null,[t]);return ip(e,t)}finally{il(1)}}function iB(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e0&&ie&&ie.push(e),!0}let ij="3.5.32",iU="u">typeof window&&window.trustedTypes;if(iU)try{m=iU.createPolicy("vue",{createHTML:e=>e})}catch(e){}let iH=m?e=>m.createHTML(e):e=>e,iq="u">typeof document?document:null,iW=iq&&iq.createElement("template"),iK={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="svg"===t?iq.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?iq.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?iq.createElement(e,{is:n}):iq.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>iq.createTextNode(e),createComment:e=>iq.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iq.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,l){let s=n?n.previousSibling:t.lastChild;if(i&&(i===l||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==l&&(i=i.nextSibling););else{iW.innerHTML=iH("svg"===r?`${e}`:"mathml"===r?`${e}`:e);let i=iW.content;if("svg"===r||"mathml"===r){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},iz="transition",iJ="animation",iG=Symbol("_vtc"),iX={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},iQ=T({},ng,iX),iZ=((t=(e,{slots:t})=>iV(ny,i1(e),t)).displayName="Transition",t.props=iQ,t),iY=(e,t=[])=>{E(e)?e.forEach(e=>e(...t)):e&&e(...t)},i0=e=>!!e&&(E(e)?e.some(e=>e.length>1):e.length>1);function i1(e){let t={};for(let n in e)n in iX||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:r,duration:i,enterFromClass:l=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=l,appearActiveClass:c=s,appearToClass:u=o,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,f=function(e){if(null==e)return null;{if(M(e))return[function(e){return X(e)}(e.enter),function(e){return X(e)}(e.leave)];let t=function(e){return X(e)}(e);return[t,t]}}(i),g=f&&f[0],m=f&&f[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:S,onLeaveCancelled:x,onBeforeAppear:C=y,onAppear:k=b,onAppearCancelled:w=_}=t,N=(e,t,n,r)=>{e._enterCancelled=r,i6(e,t?u:o),i6(e,t?c:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,i6(e,h),i6(e,p),i6(e,d),t&&t()},E=e=>(t,n)=>{let i=e?k:b,s=()=>N(t,e,n);iY(i,[t,s]),i3(()=>{i6(t,e?a:l),i2(t,e?u:o),i0(i)||i8(t,r,g,s)})};return T(t,{onBeforeEnter(e){iY(y,[e]),i2(e,l),i2(e,s)},onBeforeAppear(e){iY(C,[e]),i2(e,a),i2(e,c)},onEnter:E(!1),onAppear:E(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);i2(e,h),e._enterCancelled?(i2(e,d),le(e)):(le(e),i2(e,d)),i3(()=>{e._isLeaving&&(i6(e,h),i2(e,p),i0(S)||i8(e,r,m,n))}),iY(S,[e,n])},onEnterCancelled(e){N(e,!1,void 0,!0),iY(_,[e])},onAppearCancelled(e){N(e,!0,void 0,!0),iY(w,[e])},onLeaveCancelled(e){A(e),iY(x,[e])}})}function i2(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[iG]||(e[iG]=new Set)).add(t)}function i6(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[iG];n&&(n.delete(t),n.size||(e[iG]=void 0))}function i3(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let i4=0;function i8(e,t,n,r){let i=e._endId=++i4,l=()=>{i===e._endId&&r()};if(null!=n)return setTimeout(l,n);let{type:s,timeout:o,propCount:a}=i5(e,t);if(!s)return r();let c=s+"end",u=0,h=()=>{e.removeEventListener(c,d),l()},d=t=>{t.target===e&&++u>=a&&h()};setTimeout(()=>{u(n[e]||"").split(", "),i=r(`${iz}Delay`),l=r(`${iz}Duration`),s=i9(i,l),o=r(`${iJ}Delay`),a=r(`${iJ}Duration`),c=i9(o,a),u=null,h=0,d=0;t===iz?s>0&&(u=iz,h=s,d=l.length):t===iJ?c>0&&(u=iJ,h=c,d=a.length):d=(u=(h=Math.max(s,c))>0?s>c?iz:iJ:null)?u===iz?l.length:a.length:0;let p=u===iz&&/\b(?:transform|all)(?:,|$)/.test(r(`${iz}Property`).toString());return{type:u,timeout:h,propCount:d,hasTransform:p}}function i9(e,t){for(;e.lengthi7(t)+i7(e[n])))}function i7(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function le(e){return(e?e.ownerDocument:document).body.offsetHeight}let lt=Symbol("_vod"),ln=Symbol("_vsh");function lr(e,t){e.style.display=t?e[lt]:"none",e[ln]=!t}let li=Symbol("");function ll(e,t){if(1===e.nodeType){let r=e.style,i="";for(let e in t){var n;let l=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);r.setProperty(`--${e}`,l),i+=`--${e}: ${l};`}r[li]=i}}let ls=/(?:^|;)\s*display\s*:/,lo=/\s*!important$/;function la(e,t,n){if(E(n))n.forEach(n=>la(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let r=function(e,t){let n=lu[t];if(n)return n;let r=j(t);if("filter"!==r&&r in e)return lu[t]=r;r=q(r);for(let n=0;n111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),l_=(e,t,n,r,i,l)=>{let s="svg"===i;if("class"===t){var o;let t;o=r,(t=e[iG])&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let r=e.style,i=R(n),l=!1;if(n&&!i){if(t)if(R(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&la(r,t,"")}else for(let e in t)null==n[e]&&la(r,e,"");for(let e in n)"display"===e&&(l=!0),la(r,e,n[e])}else if(i){if(t!==n){let e=r[li];e&&(n+=";"+e),r.cssText=n,l=ls.test(n)}}else t&&e.removeAttribute("style");lt in e&&(e[lt]=l?r.display:"",e[ln]&&(r.display="none"))}(e,n,r):C(t)?k(t)||function(e,t,n,r=null){let i=e[lg]||(e[lg]={}),l=i[t];if(n&&l)l.value=n;else{let[a,c]=function(e){let t;if(lm.test(e)){let n;for(t={};n=e.match(lm);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):H(e.slice(2)),t]}(t);if(n){var s,o;let l;lf(e,a,i[t]=(s=n,o=r,(l=e=>{if(e._vts){if(e._vts<=l.attached)return}else e._vts=Date.now();tD(function(e,t){if(!E(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,l.value),o,5,[e])}).value=s,l.attached=lv||(ly.then(()=>lv=0),lv=Date.now()),l),c)}else l&&(e.removeEventListener(a,l,c),i[t]=void 0)}}(e,t,r,l):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,r){if(r)return!!("innerHTML"===t||"textContent"===t||t in e&&lb(t)&&I(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"sandbox"===t&&"IFRAME"===e.tagName||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(lb(t)&&R(n))&&t in e}(e,t,r,s))?e._isVueCE&&(function(e,t){let n=e._def.props;if(!n)return!1;let r=j(t);return Array.isArray(n)?n.some(e=>j(e)===r):Object.keys(n).some(e=>j(e)===r)}(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!R(r)))?lp(e,j(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),ld(e,t,r,s)):(lp(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||ld(e,t,r,s,l,"value"!==t))},lS={};function lx(e,t,n){let r,i=nT(e,t);"[object Object]"===(r=i,F.call(r))&&(i=T({},i,t));class l extends lk{constructor(e){super(i,e,n)}}return l.def=i,l}let lC="u">typeof HTMLElement?HTMLElement:class{};class lk extends lC{constructor(e,t={},n=l2){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==l2?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow(T({},e.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.assignedSlot||e.parentNode||e.host);)if(e instanceof lk){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,tz(()=>{!this._connected&&(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(e){for(let t of e)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:r,styles:i}=e;if(r&&!E(r))for(let e in r){let t=r[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=X(this._props[e])),(n||(n=Object.create(null)))[j(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(i),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)A(this,e)||Object.defineProperty(this,e,{get:()=>tT(t[e])})}_resolveProps(e){let{props:t}=e,n=E(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(j))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!this._patching)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):lS,r=j(e);t&&this._numberProps&&this._numberProps[r]&&(n=X(n)),this._setProp(r,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!1){if(t!==this._props[e]&&(this._dirty=!0,t===lS?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),r&&this._instance&&this._update(),n)){let n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),!0===t?this.setAttribute(H(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(H(e),t+""):t||this.removeAttribute(H(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),l1(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=ip(this._def,T(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{let n;this.dispatchEvent(new CustomEvent(e,"[object Object]"===(n=t[0],F.call(n))?T({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),H(e)!==e&&t(H(e),n)},this._setParent()}),t}_applyStyles(e,t,n){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let r=this._nonce,i=this.shadowRoot,l=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i),s=null;for(let o=e.length-1;o>=0;o--){let a=document.createElement("style");r&&a.setAttribute("nonce",r),a.textContent=e[o],i.insertBefore(a,s||l),s=a,0===o&&(n||this._styleAnchors.set(this._def,a),t&&this._styleAnchors.set(t,a))}}_getStyleAnchor(e){if(!e)return null;let t=this._styleAnchors.get(e);return t&&t.parentNode===this.shadowRoot?t:(t&&this._styleAnchors.delete(e),null)}_getRootStyleInsertionAnchor(e){for(let t=0;t{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let r=e.cloneNode(),i=e[iG];i&&i.forEach(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 l=1===t.nodeType?t:t.parentNode;l.appendChild(r);let{hasTransform:s}=i5(r);return l.removeChild(r),s}(n[0].el,i.vnode.el,t)){n=[];return}n.forEach(lR),n.forEach(lO);let r=n.filter(lM);le(i.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;i2(n,t),r.transform=r.webkitTransform=r.transitionDuration="";let i=n[lA]=e=>{(!e||e.target===n)&&(!e||e.propertyName.endsWith("transform"))&&(n.removeEventListener("transitionend",i),n[lA]=null,i6(n,t))};n.addEventListener("transitionend",i)}),n=[]}),()=>{let s=tm(e),o=i1(s),a=s.tag||r4;if(n=[],r)for(let e=0;eMath.abs(s-1)&&(s=1),.01>Math.abs(o-1)&&(o=1),n.transform=n.webkitTransform=`translate(${r/s}px,${i/o}px)`,n.transitionDuration="0s",e}}function lP(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top}}let lF=e=>{let t=e.props["onUpdate:modelValue"]||!1;return E(t)?e=>z(t,e):t};function lL(e){e.target.composing=!0}function l$(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let lD=Symbol("_assign");function lV(e,t,n){return t&&(e=e.trim()),n&&(e=G(e)),e}let lB={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[lD]=lF(i);let l=r||i.props&&"number"===i.props.type;lf(e,t?"change":"input",t=>{t.target.composing||e[lD](lV(e.value,n,l))}),(n||l)&&lf(e,"change",()=>{e.value=lV(e.value,n,l)}),t||(lf(e,"compositionstart",lL),lf(e,"compositionend",l$),lf(e,"change",l$))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:l}},s){if(e[lD]=lF(s),e.composing)return;let o=(l||"number"===e.type)&&!/^0\d/.test(e.value)?G(e.value):e.value,a=null==t?"":t;if(o===a)return;let c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===a)||(e.value=a)}},lj={deep:!0,created(e,t,n){e[lD]=lF(n),lf(e,"change",()=>{let t=e._modelValue,n=lK(e),r=e.checked,i=e[lD];if(E(t)){let e=eh(t,n),l=-1!==e;if(r&&!l)i(t.concat(n));else if(!r&&l){let n=[...t];n.splice(e,1),i(n)}}else{let l;if("[object Set]"===(l=t,F.call(l))){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(lz(e,r))}})},mounted:lU,beforeUpdate(e,t,n){e[lD]=lF(n),lU(e,t,n)}};function lU(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,E(t))i=eh(t,r.props.value)>-1;else{let l;if("[object Set]"===(l=t,F.call(l)))i=t.has(r.props.value);else{if(t===n)return;i=eu(t,lz(e,!0))}}e.checked!==i&&(e.checked=i)}let lH={created(e,{value:t},n){e.checked=eu(t,n.props.value),e[lD]=lF(n),lf(e,"change",()=>{e[lD](lK(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[lD]=lF(r),t!==n&&(e.checked=eu(t,r.props.value))}},lq={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i,l="[object Set]"===(i=t,F.call(i));lf(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?G(lK(e)):lK(e));e[lD](e.multiple?l?new Set(t):t:t[0]),e._assigning=!0,tz(()=>{e._assigning=!1})}),e[lD]=lF(r)},mounted(e,{value:t}){lW(e,t)},beforeUpdate(e,t,n){e[lD]=lF(n)},updated(e,{value:t}){e._assigning||lW(e,t)}};function lW(e,t){let n,r=e.multiple,i=E(t);if(!r||i||"[object Set]"===(n=t,F.call(n))){for(let n=0,l=e.options.length;nString(e)===String(s)):l.selected=eh(t,s)>-1}else l.selected=t.has(s);else if(eu(lK(l),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}r||-1===e.selectedIndex||(e.selectedIndex=-1)}}function lK(e){return"_value"in e?e._value:e.value}function lz(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}function lJ(e,t,n,r,i){let l=function(e,t){switch(e){case"SELECT":return lq;case"TEXTAREA":return lB;default:switch(t){case"checkbox":return lj;case"radio":return lH;default:return lB}}}(e.tagName,n.props&&n.props.type)[i];l&&l(e,t,n,r)}let lG=["ctrl","shift","alt","meta"],lX={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&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>lG.some(n=>e[`${n}Key`]&&!t.includes(n))},lQ={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},lZ=T({patchProp:l_},iK),lY=!1;function l0(){return p=lY?p:rW(lZ),lY=!0,p}let l1=(...e)=>{(p||(p=rK(lZ))).render(...e)},l2=(...e)=>{let t=(p||(p=rK(lZ))).createApp(...e),{mount:n}=t;return t.mount=e=>{let r=l4(e);if(!r)return;let i=t._component;I(i)||i.render||i.template||(i.template=r.innerHTML),1===r.nodeType&&(r.textContent="");let l=n(r,!1,l3(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t},l6=(...e)=>{let t=l0().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=l4(e);if(t)return n(t,!0,l3(t))},t};function l3(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function l4(e){return R(e)?document.querySelector(e):e}let l8=Symbol(""),l5=Symbol(""),l9=Symbol(""),l7=Symbol(""),se=Symbol(""),st=Symbol(""),sn=Symbol(""),sr=Symbol(""),si=Symbol(""),sl=Symbol(""),ss=Symbol(""),so=Symbol(""),sa=Symbol(""),sc=Symbol(""),su=Symbol(""),sh=Symbol(""),sd=Symbol(""),sp=Symbol(""),sf=Symbol(""),sg=Symbol(""),sm=Symbol(""),sv=Symbol(""),sy=Symbol(""),sb=Symbol(""),s_=Symbol(""),sS=Symbol(""),sx=Symbol(""),sC=Symbol(""),sk=Symbol(""),sT=Symbol(""),sw=Symbol(""),sN=Symbol(""),sA=Symbol(""),sE=Symbol(""),sI=Symbol(""),sR=Symbol(""),sO=Symbol(""),sM=Symbol(""),sP=Symbol(""),sF={[l8]:"Fragment",[l5]:"Teleport",[l9]:"Suspense",[l7]:"KeepAlive",[se]:"BaseTransition",[st]:"openBlock",[sn]:"createBlock",[sr]:"createElementBlock",[si]:"createVNode",[sl]:"createElementVNode",[ss]:"createCommentVNode",[so]:"createTextVNode",[sa]:"createStaticVNode",[sc]:"resolveComponent",[su]:"resolveDynamicComponent",[sh]:"resolveDirective",[sd]:"resolveFilter",[sp]:"withDirectives",[sf]:"renderList",[sg]:"renderSlot",[sm]:"createSlots",[sv]:"toDisplayString",[sy]:"mergeProps",[sb]:"normalizeClass",[s_]:"normalizeStyle",[sS]:"normalizeProps",[sx]:"guardReactiveProps",[sC]:"toHandlers",[sk]:"camelize",[sT]:"capitalize",[sw]:"toHandlerKey",[sN]:"setBlockTracking",[sA]:"pushScopeId",[sE]:"popScopeId",[sI]:"withCtx",[sR]:"unref",[sO]:"isRef",[sM]:"withMemo",[sP]:"isMemoSame"},sL={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function s$(e,t,n,r,i,l,s,o=!1,a=!1,c=!1,u=sL){var h,d,p,f;return e&&(o?(e.helper(st),e.helper((h=e.inSSR,d=c,h||d?sn:sr))):e.helper((p=e.inSSR,f=c,p||f?si:sl)),s&&e.helper(sp)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:l,directives:s,isBlock:o,disableTracking:a,isComponent:c,loc:u}}function sD(e,t=sL){return{type:17,loc:t,elements:e}}function sV(e,t=sL){return{type:15,loc:t,properties:e}}function sB(e,t){return{type:16,loc:sL,key:R(e)?sj(e,!0):e,value:t}}function sj(e,t=!1,n=sL,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function sU(e,t=sL){return{type:8,loc:t,children:e}}function sH(e,t=[],n=sL){return{type:14,loc:n,callee:e,arguments:t}}function sq(e,t,n=!1,r=!1,i=sL){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function sW(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:sL}}function sK(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,l;e.isBlock=!0,n((i=e.isComponent,r||i?si:sl)),t(st),t((l=e.isComponent,r||l?sn:sr))}}let sz=new Uint8Array([123,123]),sJ=new Uint8Array([125,125]);function sG(e){return e>=97&&e<=122||e>=65&&e<=90}function sX(e){return 32===e||10===e||9===e||12===e||13===e}function sQ(e){return 47===e||62===e||sX(e)}function sZ(e){let t=new Uint8Array(e.length);for(let n=0;n4===e.type&&e.isStatic;function s3(e){switch(e){case"Teleport":case"teleport":return l5;case"Suspense":case"suspense":return l9;case"KeepAlive":case"keep-alive":return l7;case"BaseTransition":case"base-transition":return se}}let s4=/^$|^\d|[^\$\w\xA0-\uFFFF]/,s8=/[A-Za-z_$\xA0-\uFFFF]/,s5=/[\.\?\w$\xA0-\uFFFF]/,s9=/\s+[.[]\s*|\s*[.[]\s+/g,s7=e=>4===e.type?e.content:e.loc.source,oe=e=>{let t=s7(e).trim().replace(s9,e=>e.trim()),n=0,r=[],i=0,l=0,s=null;for(let e=0;e|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/;function on(e,t,n=!1){for(let r=0;r4===e.key.type&&e.key.content===r)}return n}function op(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let of=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/;function og(e){for(let t=0;t0,isVoidTag:x,isPreTag:x,isIgnoreNewlineTag:x,isCustomElement:x,onError:s0,onWarn:s1,comments:!1,prefixIdentifiers:!1},ob=oy,o_=null,oS="",ox=null,oC=null,ok="",oT=-1,ow=-1,oN=0,oA=!1,oE=null,oI=[],oR=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=sz,this.delimiterClose=sJ,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=sz,this.delimiterClose=sJ}getPos(e){let t=1,n=e+1,r=this.newlines.length,i=-1;if(r>100){let t=-1,n=r;for(;t+1>>1;this.newlines[r]=0;t--)if(e>this.newlines[t]){i=t;break}return i>=0&&(t=i+2,n=e-this.newlines[i]),{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?sQ(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||sX(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=e||(28===this.state?this.currentSequence===sY.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(oI,{onerr:oz,ontext(e,t){oL(oP(e,t),e,t)},ontextentity(e,t,n){oL(e,t,n)},oninterpolation(e,t){if(oA)return oL(oP(e,t),e,t);let n=e+oR.delimiterOpen.length,r=t-oR.delimiterClose.length;for(;sX(oS.charCodeAt(n));)n++;for(;sX(oS.charCodeAt(r-1));)r--;let i=oP(n,r);i.includes("&")&&(i=ob.decodeEntities(i,!1)),oH({type:5,content:oK(i,!1,oq(n,r)),loc:oq(e,t)})},onopentagname(e,t){let n=oP(e,t);ox={type:1,tag:n,ns:ob.getNamespace(n,oI[0],ob.ns),tagType:0,props:[],children:[],loc:oq(e-1,t),codegenNode:void 0}},onopentagend(e){oF(e)},onclosetag(e,t){let n=oP(e,t);if(!ob.isVoidTag(n)){let r=!1;for(let e=0;e0&&oI[0].loc.start.offset;for(let n=0;n<=e;n++)o$(oI.shift(),t,n(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){ox&&oC&&(oW(oC.loc,t),0!==e&&(ok.includes("&")&&(ok=ob.decodeEntities(ok,!0)),6===oC.type?("class"===oC.name&&(ok=oU(ok).trim()),oC.value={type:2,content:ok,loc:1===e?oq(oT,ow):oq(oT-1,ow+1)},oR.inSFCRoot&&"template"===ox.tag&&"lang"===oC.name&&ok&&"html"!==ok&&oR.enterRCDATA(sZ("{let i=t.start.offset+n,l=i+e.length;return oK(e,!1,oq(i,l),0,+!!r)},o={source:s(l.trim(),n.indexOf(l,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},a=i.trim().replace(oM,"").trim(),c=i.indexOf(a),u=a.match(oO);if(u){let e;a=a.replace(oO,"").trim();let t=u[1].trim();if(t&&(e=n.indexOf(t,c+a.length),o.key=s(t,e,!0)),u[2]){let r=u[2].trim();r&&(o.index=s(r,n.indexOf(r,o.key?e+t.length:c+a.length),!0))}}return a&&(o.value=s(a,c,!0)),o}(oC.exp)))),(7!==oC.type||"pre"!==oC.name)&&ox.props.push(oC)),ok="",oT=ow=-1},oncomment(e,t){ob.comments&&oH({type:3,content:oP(e,t),loc:oq(e-4,t+3)})},onend(){let e=oS.length;for(let t=0;t64&&n<91||s3(e)||ob.isBuiltInComponent&&ob.isBuiltInComponent(e)||ob.isNativeTag&&!ob.isNativeTag(e))return!0;for(let e=0;e=0;)n--;return n}let oV=new Set(["if","else","else-if","for","slot"]),oB=/\r\n/g;function oj(e){let t="preserve"!==ob.whitespace,n=!1;for(let r=0;r3!==e.type);return 1!==t.length||1!==t[0].type||oc(t[0])?null:t[0]}function oG(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let r=n.get(e);if(void 0!==r)return r;let i=e.codegenNode;if(13!==i.type||i.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==i.patchFlag)return n.set(e,0),0;{let r=3,c=oQ(e,t);if(0===c)return n.set(e,0),0;c1)for(let i=0;i{l--};for(;lt===e:t=>e.test(t);return(e,r)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(oo))return;let l=[];for(let s=0;s`${sF[e]}: _${sF[e]}`;function o6(e,t,{helper:n,push:r,newline:i,isTS:l}){let s=n("component"===t?sc:sh);for(let n=0;n3;t.push("["),n&&t.indent(),o4(e,t,n),n&&t.deindent(),t.push("]")}function o4(e,t,n=!1,r=!0){let{push:i,newline:l}=t;for(let s=0;se||"null")}([a,c,u,i,d]),t),l(")"),f&&l(")"),p&&(l(", "),o8(p,t),l(")"))}(e,t);break;case 14:!function(e,t){let{push:n,helper:r,pure:i}=t,l=R(e.callee)?e.callee:r(e.callee);i&&n(o1),n(l+"(",-2,e),o4(e.arguments,t),n(")")}(e,t);break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:l}=t,{properties:s}=e;if(!s.length)return n("{}",-2,e);let o=s.length>1;n(o?"{":"{ "),o&&r();for(let e=0;e "),(a||o)&&(n("{"),r()),s?(a&&n("return "),E(s)?o3(s,t):o8(s,t)):o&&o8(o,t),(a||o)&&(i(),n("}")),c&&n(")")}(e,t);break;case 19:!function(e,t){let{test:n,consequent:r,alternate:i,newline:l}=e,{push:s,indent:o,deindent:a,newline:c}=t;if(4===n.type){let e,r=(e=n.content,!!s4.test(e));r&&s("("),o5(n,t),r&&s(")")}else s("("),o8(n,t),s(")");l&&o(),t.indentLevel++,l||s(" "),s("? "),o8(r,t),t.indentLevel--,l&&c(),l||s(" "),s(": ");let u=19===i.type;!u&&t.indentLevel++,o8(i,t),!u&&t.indentLevel--,l&&a(!0)}(e,t);break;case 20:!function(e,t){let{push:n,helper:r,indent:i,deindent:l,newline:s}=t,{needPauseTracking:o,needArraySpread:a}=e;a&&n("[...("),n(`_cache[${e.index}] || (`),o&&(i(),n(`${r(sN)}(-1`),e.inVOnce&&n(", true"),n("),"),s(),n("(")),n(`_cache[${e.index}] = `),o8(e.value,t),o&&(n(`).cacheIndex = ${e.index},`),s(),n(`${r(sN)}(1),`),s(),n(`_cache[${e.index}]`),l()),n(")"),a&&n(")]")}(e,t);break;case 21:o4(e.body,t,!0,!1)}}function o5(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function o9(e,t){for(let n=0;n(function(e,t,n,r){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(s2(28,t.loc)),t.exp=sj("true",!1,r)}if("if"===t.name){var i;let l=ae(e,t),s={type:9,loc:oq((i=e.loc).start.offset,i.end.offset),branches:[l]};if(n.replaceNode(s),r)return r(s,l,!0)}else{let i=n.parent.children,l=i.indexOf(e);for(;l-- >=-1;){let s=i[l];if(s&&ov(s)){n.removeNode(s);continue}if(s&&9===s.type){("else-if"===t.name||"else"===t.name)&&void 0===s.branches[s.branches.length-1].condition&&n.onError(s2(30,e.loc)),n.removeNode();let i=ae(e,t);s.branches.push(i);let l=r&&r(s,i,!1);oY(i,n),l&&l(),n.currentNode=null}else n.onError(s2(30,e.loc));break}}})(e,t,n,(e,t,r)=>{let i=n.parent.children,l=i.indexOf(e),s=0;for(;l-- >=0;){let e=i[l];e&&9===e.type&&(s+=e.branches.length)}return()=>{r?e.codegenNode=at(t,s,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=at(t,s+e.branches.length-1,n)}}));function ae(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!on(e,"for")?e.children:[e],userKey:or(e,"key"),isTemplateIf:n}}function at(e,t,n){return e.condition?sW(e.condition,an(e,t,n),sH(n.helper(ss),['""',"true"])):an(e,t,n)}function an(e,t,n){let{helper:r}=n,i=sB("key",sj(`${t}`,!1,sL,2)),{children:l}=e,s=l[0];if(1!==l.length||1!==s.type)if(1!==l.length||11!==s.type)return s$(n,r(l8),sV([i]),l,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=s.codegenNode;return oh(e,i,n),e}{let e=s.codegenNode,t=14===e.type&&e.callee===sM?e.arguments[1].returns:e;return 13===t.type&&sK(t,n),oh(t,i,n),e}}let ar=o0("for",(e,t,n)=>{let{helper:r,removeHelper:i}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(s2(31,t.loc));let i=t.forParseResult;if(!i)return void n.onError(s2(32,t.loc));ai(i);let{scopes:l}=n,{source:s,value:o,key:a,index:c}=i,u={type:11,loc:t.loc,source:s,valueAlias:o,keyAlias:a,objectIndexAlias:c,parseResult:i,children:oa(e)?e.children:[e]};n.replaceNode(u),l.vFor++;let h=r&&r(u);return()=>{l.vFor--,h&&h()}}(e,t,n,t=>{let l=sH(r(sf),[t.source]),s=oa(e),o=on(e,"memo"),a=or(e,"key",!1,!0);a&&a.type;let c=a&&(6===a.type?a.value?sj(a.value.content,!0):void 0:a.exp),u=a&&c?sB("key",c):null,h=4===t.source.type&&t.source.constType>0,d=h?64:a?128:256;return t.codegenNode=s$(n,r(l8),void 0,l,d,void 0,void 0,!0,!h,!1,e.loc),()=>{let a,{children:d}=t,p=1!==d.length||1!==d[0].type,f=oc(e)?e:s&&1===e.children.length&&oc(e.children[0])?e.children[0]:null;if(f)a=f.codegenNode,s&&u&&oh(a,u,n);else if(p)a=s$(n,r(l8),u?sV([u]):void 0,e.children,64,void 0,void 0,!0,void 0,!1);else{var g,m,y,b,_,S,x,C;a=d[0].codegenNode,s&&u&&oh(a,u,n),!h!==a.isBlock&&(a.isBlock?(i(st),i((g=n.inSSR,m=a.isComponent,g||m?sn:sr))):i((y=n.inSSR,b=a.isComponent,y||b?si:sl))),(a.isBlock=!h,a.isBlock)?(r(st),r((_=n.inSSR,S=a.isComponent,_||S?sn:sr))):r((x=n.inSSR,C=a.isComponent,x||C?si:sl))}if(o){let e=sq(al(t.parseResult,[sj("_cached")]));e.body={type:21,body:[sU(["const _memo = (",o.exp,")"]),sU(["if (_cached && _cached.el",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(sP)}(_cached, _memo)) return _cached`]),sU(["const _item = ",a]),sj("_item.memo = _memo"),sj("return _item")],loc:sL},l.arguments.push(e,sj("_cache"),sj(String(n.cached.length))),n.cached.push(null)}else l.arguments.push(sq(al(t.parseResult),a,!0))}})});function ai(e,t){e.finalized||(e.finalized=!0)}function al({value:e,key:t,index:n},r=[]){var i=[e,t,n,...r];let l=i.length;for(;l--&&!i[l];);return i.slice(0,l+1).map((e,t)=>e||sj("_".repeat(t+1),!1))}let as=sj("undefined",!1),ao=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=on(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}};function aa(e,t,n){let r=[sB("name",e),sB("fn",t)];return null!=n&&r.push(sB("key",sj(String(n),!0))),sV(r)}let ac=new WeakMap,au=(e,t)=>function(){let n,r,i,l,s;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:o,props:a}=e,c=1===e.tagType,u=c?function(e,t,n=!1){let{tag:r}=e,i=ap(r),l=or(e,"is",!1,!0);if(l)if(i){let e;if(6===l.type?e=l.value&&sj(l.value.content,!0):(e=l.exp)||(e=sj("is",!1,l.arg.loc)),e)return sH(t.helper(su),[e])}else 6===l.type&&l.value.content.startsWith("vue:")&&(r=l.value.content.slice(4));let s=s3(r)||t.isBuiltInComponent(r);return s?(n||t.helper(s),s):(t.helper(sc),t.components.add(r),op(r,"component"))}(e,t):`"${o}"`,h=M(u)&&u.callee===su,d=0,p=h||u===l5||u===l9||!c&&("svg"===o||"foreignObject"===o||"math"===o);if(a.length>0){let r=ah(e,t,void 0,c,h);n=r.props,d=r.patchFlag,l=r.dynamicPropNames;let i=r.directives;s=i&&i.length?sD(i.map(e=>(function(e,t){let n=[],r=ac.get(e);r?n.push(t.helperString(r)):(t.helper(sh),t.directives.add(e.name),n.push(op(e.name,"directive")));let{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=sj("true",!1,i);n.push(sV(e.modifiers.map(e=>sB(e,t)),i))}return sD(n,e.loc)})(e,t))):void 0,r.shouldUseBlock&&(p=!0)}if(e.children.length>0)if(u===l7&&(p=!0,d|=1024),c&&u!==l5&&u!==l7){let{slots:n,hasDynamicSlots:i}=function(e,t,n=(e,t,n,r)=>sq(e,n,!1,!0,n.length?n[0].loc:r)){t.helper(sI);let{children:r,loc:i}=e,l=[],s=[],o=t.scopes.vSlot>0||t.scopes.vFor>0,a=on(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!s6(e)&&(o=!0),l.push(sB(e||sj("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,h=[],d=new Set,p=0;for(let e=0;esB("default",n(e,void 0,t,i));c?h.length&&!h.every(om)&&(u?t.onError(s2(39,h[0].loc)):l.push(e(void 0,h))):l.push(e(void 0,r))}let f=o?2:!function e(t){for(let n=0;n0,f=!1,g=0,m=!1,y=!1,b=!1,_=!1,S=!1,x=!1,k=[],T=e=>{u.length&&(h.push(sV(ad(u),a)),u=[]),e&&h.push(e)},w=()=>{t.scopes.vFor>0&&u.push(sB(sj("ref_for",!0),sj("true")))},N=({key:e,value:n})=>{if(s6(e)){let l=e.content,s=C(l);s&&(!r||i)&&"onclick"!==l.toLowerCase()&&"onUpdate:modelValue"!==l&&!$(l)&&(_=!0),s&&$(l)&&(x=!0),s&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&oG(n,t)>0||("ref"===l?m=!0:"class"===l?y=!0:"style"===l?b=!0:"key"===l||k.includes(l)||k.push(l),r&&("class"===l||"style"===l)&&!k.includes(l)&&k.push(l))}else S=!0};for(let i=0;i"prop"===e.content)&&(g|=32);let x=t.directiveTransforms[n];if(x){let{props:n,needRuntime:r}=x(s,e,t);l||n.forEach(N),_&&i&&!s6(i)?T(sV(n,a)):u.push(...n),r&&(d.push(s),O(r)&&ac.set(s,r))}else!D(n)&&(d.push(s),p&&(f=!0))}}if(h.length?(T(),s=h.length>1?sH(t.helper(sy),h,a):h[0]):u.length&&(s=sV(ad(u),a)),S?g|=16:(y&&!r&&(g|=2),b&&!r&&(g|=4),k.length&&(g|=8),_&&(g|=32)),!f&&(0===g||32===g)&&(m||x||d.length>0)&&(g|=512),!t.inSSR&&s)switch(s.type){case 15:let A=-1,E=-1,I=!1;for(let e=0;e{if(oc(e)){let{children:n,loc:r}=e,{slotName:i,slotProps:l}=function(e,t){let n,r='"default"',i=[];for(let t=0;t0){let{props:r,directives:l}=ah(e,t,i,!1,!1);n=r,l.length&&t.onError(s2(36,l[0].loc))}return{slotName:r,slotProps:n}}(e,t),s=[t.prefixIdentifiers?"_ctx.$slots":"$slots",i,"{}","undefined","true"],o=2;l&&(s[2]=l,o=3),n.length&&(s[3]=sq([],n,!1,!1,r),o=4),t.scopeId&&!t.slotted&&(o=5),s.splice(o),e.codegenNode=sH(t.helper(sg),s,r)}},ag=(e,t,n,r)=>{let i,{loc:l,modifiers:s,arg:o}=e;if(!e.exp&&!s.length,4===o.type)if(o.isStatic){let e=o.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),i=sj(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?W(j(e)):`on:${e}`,!0,o.loc)}else i=sU([`${n.helperString(sw)}(`,o,")"]);else(i=o).children.unshift(`${n.helperString(sw)}(`),i.children.push(")");let a=e.exp;a&&!a.content.trim()&&(a=void 0);let c=n.cacheHandlers&&!a&&!n.inVOnce;if(a){let e,t=oe(a),n=!(t||(e=a,ot.test(s7(e)))),r=a.content.includes(";");(n||c&&t)&&(a=sU([`${n?"$event":"(...args)"} => ${r?"{":"("}`,a,r?"}":")"]))}let u={props:[sB(i,a||sj("() => {}",!1,l))]};return r&&(u=r(u)),c&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach(e=>e.key.isHandlerKey=!0),u},am=(e,t,n)=>{let{modifiers:r}=e,i=e.arg,{exp:l}=e;return l&&4===l.type&&!l.content.trim()&&(l=void 0),4!==i.type?(i.children.unshift("("),i.children.push(') || ""')):i.isStatic||(i.content=i.content?`${i.content} || ""`:'""'),r.some(e=>"camel"===e.content)&&(4===i.type?i.isStatic?i.content=j(i.content):i.content=`${n.helperString(sk)}(${i.content})`:(i.children.unshift(`${n.helperString(sk)}(`),i.children.push(")"))),!n.inSSR&&(r.some(e=>"prop"===e.content)&&av(i,"."),r.some(e=>"attr"===e.content)&&av(i,"^")),{props:[sB(i,l)]}},av=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},ay=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,r=e.children,i=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name]))))for(let e=0;e{if(1===e.type&&on(e,"once",!0)&&!ab.has(e)&&!t.inVOnce&&!t.inSSR)return ab.add(e),t.inVOnce=!0,t.helper(sN),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},aS=(e,t,n)=>{let r,{exp:i,arg:l}=e;if(!i)return n.onError(s2(41,e.loc)),ax();let s=i.loc.source.trim(),o=4===i.type?i.content:s,a=n.bindingMetadata[s];if("props"===a||"props-aliased"===a||"literal-const"===a||"setup-const"===a)return i.loc,ax();if(!o.trim()||!oe(i))return n.onError(s2(42,i.loc)),ax();let c=l||sj("modelValue",!0),u=l?s6(l)?`onUpdate:${j(l.content)}`:sU(['"onUpdate:" + ',l]):"onUpdate:modelValue",h=n.isTS?"($event: any)":"$event";r=sU([`${h} => ((`,i,") = $event)"]);let d=[sB(c,e.exp),sB(u,r)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(s4.test(e)?JSON.stringify(e):e)+": true").join(", "),n=l?s6(l)?`${l.content}Modifiers`:sU([l,' + "Modifiers"']):"modelModifiers";d.push(sB(n,sj(`{ ${t} }`,!1,e.loc,2)))}return ax(d)};function ax(e=[]){return{props:e}}let aC=new WeakSet,ak=(e,t)=>{if(1===e.type){let n=on(e,"memo");if(!(!n||aC.has(e))&&!t.inSSR)return aC.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&sK(r,t),e.codegenNode=sH(t.helper(sM),[n.exp,sq(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}},aT=(e,t)=>{if(1===e.type){for(let n of e.props)if(7===n.type&&"bind"===n.name&&(!n.exp||4===n.exp.type&&!n.exp.content.trim())&&n.arg){let e=n.arg;if(4===e.type&&e.isStatic){let t=j(e.content);(s8.test(t[0])||"-"===t[0])&&(n.exp=sj(t,!1,e.loc))}else t.onError(s2(53,e.loc)),n.exp=sj("",!0,e.loc)}}},aw=Symbol(""),aN=Symbol(""),aA=Symbol(""),aE=Symbol(""),aI=Symbol(""),aR=Symbol(""),aO=Symbol(""),aM=Symbol(""),aP=Symbol(""),aF=Symbol("");Object.getOwnPropertySymbols(r={[aw]:"vModelRadio",[aN]:"vModelCheckbox",[aA]:"vModelText",[aE]:"vModelSelect",[aI]:"vModelDynamic",[aR]:"withModifiers",[aO]:"withKeys",[aM]:"vShow",[aP]:"Transition",[aF]:"TransitionGroup"}).forEach(e=>{sF[e]=r[e]});let aL={parseMode:"html",isVoidTag:ea,isNativeTag:e=>el(e)||es(e)||eo(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,t=!1){return(f||(f=document.createElement("div")),t)?(f.innerHTML=`
    `,f.children[0].getAttribute("foo")):(f.innerHTML=e,f.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?aP:"TransitionGroup"===e||"transition-group"===e?aF:void 0,getNamespace(e,t,n){let r=t?t.ns:n;if(t&&2===r)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(r=0);else t&&1===r&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(r=0);if(0===r){if("svg"===e)return 1;if("math"===e)return 2}return r}},a$=y("passive,once,capture"),aD=y("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),aV=y("left,right"),aB=y("onkeyup,onkeydown,onkeypress"),aj=(e,t)=>s6(e)&&"onclick"===e.content.toLowerCase()?sj(t,!0):4!==e.type?sU(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,aU=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},aH=[e=>{1===e.type&&e.props.forEach((t,n)=>{let r,i;6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:sj("style",!0,t.loc),exp:(r=t.value.content,i=t.loc,sj(JSON.stringify(er(r)),!1,i,3)),modifiers:[],loc:t.loc})})}],aq={cloak:()=>({props:[]}),html:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s2(54,i)),t.children.length&&(n.onError(s2(55,i)),t.children.length=0),{props:[sB(sj("innerHTML",!0,i),r||sj("",!0))]}},text:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s2(56,i)),t.children.length&&(n.onError(s2(57,i)),t.children.length=0),{props:[sB(sj("textContent",!0),r?oG(r,n)>0?r:sH(n.helperString(sv),[r],i):sj("",!0))]}},model:(e,t,n)=>{let r=aS(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(s2(59,e.arg.loc));let{tag:i}=t,l=n.isCustomElement(i);if("input"===i||"textarea"===i||"select"===i||l){let s=aA,o=!1;if("input"===i||l){let r=or(t,"type");if(r){if(7===r.type)s=aI;else if(r.value)switch(r.value.content){case"radio":s=aw;break;case"checkbox":s=aN;break;case"file":o=!0,n.onError(s2(60,e.loc))}}else t.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))&&(s=aI)}else"select"===i&&(s=aE);o||(r.needRuntime=n.helper(s))}else n.onError(s2(58,e.loc));return r.props=r.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),r},on:(e,t,n)=>ag(e,t,n,t=>{let{modifiers:r}=e;if(!r.length)return t;let{key:i,value:l}=t.props[0],{keyModifiers:s,nonKeyModifiers:o,eventOptionModifiers:a}=((e,t,n,r)=>{let i=[],l=[],s=[];for(let n=0;n{let{exp:r,loc:i}=e;return r||n.onError(s2(62,i)),{props:[],needRuntime:n.helper(aM)}}},aW=Object.create(null);function aK(e,t){if(!R(e))if(!e.nodeType)return S;else e=e.innerHTML;let n=e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t),r=aW[n];if(r)return r;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let i=T({hoistStatic:!0,onError:void 0,onWarn:S},t);!i.isCustomElement&&"u">typeof customElements&&(i.isCustomElement=e=>!!customElements.get(e));let{code:l}=function(e,t={}){return function(e,t={}){var n;let r,i=t.onError||s0,l="module"===t.mode;!0===t.prefixIdentifiers?i(s2(48)):l&&i(s2(49)),t.cacheHandlers&&i(s2(50)),t.scopeId&&!l&&i(s2(51));let s=T({},t,{prefixIdentifiers:!1}),o=R(e)?function(e,t){if(oR.reset(),ox=null,oC=null,ok="",oT=-1,ow=-1,oI.length=0,oS=e,ob=T({},oy),t){let e;for(e in t)null!=t[e]&&(ob[e]=t[e])}oR.mode="html"===ob.parseMode?1:2*("sfc"===ob.parseMode),oR.inXML=1===ob.ns||2===ob.ns;let n=t&&t.delimiters;n&&(oR.delimiterOpen=sZ(n[0]),oR.delimiterClose=sZ(n[1]));let r=o_=function(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:sL}}([],e);return oR.parse(oS),r.loc=oq(0,e.length),r.children=oj(r.children),o_=null,r}(e,s):e,[a,c]=[[aT,a_,o7,ak,ar,af,au,ao,ay],{on:ag,bind:am,model:aS}];return r=function(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,hmr:i=!1,cacheHandlers:l=!1,nodeTransforms:s=[],directiveTransforms:o={},transformHoist:a=null,isBuiltInComponent:c=S,isCustomElement:u=S,expressionPlugins:h=[],scopeId:d=null,slotted:p=!0,ssr:f=!1,inSSR:g=!1,ssrCssVars:m="",bindingMetadata:y=b,inline:_=!1,isTS:x=!1,onError:C=s0,onWarn:k=s1,compatConfig:T}){let w=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),N={filename:t,selfName:w&&q(j(w[1])),prefixIdentifiers:n,hoistStatic:r,hmr:i,cacheHandlers:l,nodeTransforms:s,directiveTransforms:o,transformHoist:a,isBuiltInComponent:c,isCustomElement:u,expressionPlugins:h,scopeId:d,slotted:p,ssr:f,inSSR:g,ssrCssVars:m,bindingMetadata:y,inline:_,isTS:x,onError:C,onWarn:k,compatConfig:T,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=N.helpers.get(e)||0;return N.helpers.set(e,t+1),e},removeHelper(e){let t=N.helpers.get(e);if(t){let n=t-1;n?N.helpers.set(e,n):N.helpers.delete(e)}},helperString:e=>`_${sF[N.helper(e)]}`,replaceNode(e){N.parent.children[N.childIndex]=N.currentNode=e},removeNode(e){let t=N.parent.children,n=e?t.indexOf(e):N.currentNode?N.childIndex:-1;e&&e!==N.currentNode?N.childIndex>n&&(N.childIndex--,N.onNodeRemoved()):(N.currentNode=null,N.onNodeRemoved()),N.parent.children.splice(n,1)},onNodeRemoved:S,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){R(e)&&(e=sj(e)),N.hoists.push(e);let t=sj(`_hoisted_${N.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=function(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:sL}}(N.cached.length,e,t,n);return N.cached.push(r),r}};return N}(o,n=T({},s,{nodeTransforms:[...a,...t.nodeTransforms||[]],directiveTransforms:T({},c,t.directiveTransforms||{})})),oY(o,r),n.hoistStatic&&function e(t,n,r,i=!1,l=!1){let{children:s}=t,o=[];for(let n=0;n0){if(e>=2){a.codegenNode.patchFlag=-1,o.push(a);continue}}else{let e=a.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&oQ(a,r)>=2){let t=oZ(a);t&&(e.props=r.hoist(t))}e.dynamicProps&&(e.dynamicProps=r.hoist(e.dynamicProps))}}}else if(12===a.type&&(i?0:oG(a,r))>=2){14===a.codegenNode.type&&a.codegenNode.arguments.length>0&&a.codegenNode.arguments.push("-1"),o.push(a);continue}if(1===a.type){let n=1===a.tagType;n&&r.scopes.vSlot++,e(a,t,r,!1,l),n&&r.scopes.vSlot--}else if(11===a.type)e(a,t,r,1===a.children.length,!0);else if(9===a.type)for(let n=0;ne.key===t||e.key.content===t);return n&&n.value}}o.length&&r.transformHoist&&r.transformHoist(s,r,t)}(o,void 0,r,!!oJ(o)),n.ssr||function(e,t){let{helper:n}=t,{children:r}=e;if(1===r.length){let n=oJ(e);if(n&&n.codegenNode){let r=n.codegenNode;13===r.type&&sK(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=s$(t,n(l8),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(o,r),o.helpers=new Set([...r.helpers.keys()]),o.components=[...r.components],o.directives=[...r.directives],o.imports=r.imports,o.hoists=r.hoists,o.temps=r.temps,o.cached=r.cached,o.transformed=!0,function(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:i="template.vue.html",scopeId:l=null,optimizeImports:s=!1,runtimeGlobalName:o="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:h=!1,inSSR:d=!1}){let p={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:l,optimizeImports:s,runtimeGlobalName:o,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:h,inSSR:d,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${sF[e]}`,push(e,t=-2,n){p.code+=e},indent(){f(++p.indentLevel)},deindent(e=!1){e?--p.indentLevel:f(--p.indentLevel)},newline(){f(p.indentLevel)}};function f(e){p.push(` +`+" ".repeat(e),0)}return p}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:r,push:i,prefixIdentifiers:l,indent:s,deindent:o,newline:a,ssr:c}=n,u=Array.from(e.helpers),h=u.length>0,d=!l&&"module"!==r;!function(e,t){let{push:n,newline:r,runtimeGlobalName:i}=t,l=Array.from(e.helpers);if(l.length>0&&(n(`const _Vue = ${i} +`,-1),e.hoists.length)){let e=[si,sl,ss,so,sa].filter(e=>l.includes(e)).map(o2).join(", ");n(`const { ${e} } = _Vue +`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:r}=t;r();for(let i=0;i0)&&a()),e.directives.length&&(o6(e.directives,"directive",n),e.temps>0&&a()),e.temps>0){i("let ");for(let t=0;t0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(i(` +`,0),a()),c||i("return "),e.codegenNode?o8(e.codegenNode,n):i("null"),d&&(o(),i("}")),o(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(o,s)}(e,T({},aL,t,{nodeTransforms:[aU,...aH,...t.nodeTransforms||[]],directiveTransforms:T({},aq,t.directiveTransforms||{}),transformHoist:null}))}(e,i),s=Function(l)();return s._rc=!0,aW[n]=s}return iO(aK),e.BaseTransition=ny,e.BaseTransitionPropsValidators=ng,e.Comment=r5,e.DeprecationTypes=null,e.EffectScope=em,e.ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},e.ErrorTypeStrings=null,e.Fragment=r4,e.KeepAlive={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=iw(),r=n.ctx,i=new Map,l=new Set,s=null,o=n.suspense,{renderer:{p:a,m:c,um:u,o:{createElement:h}}}=r,d=h("div");function p(e){nJ(e),u(e,n,o,!0)}function f(e){i.forEach((t,n)=>{let r=i$(nj(t)?t.type.__asyncResolved||{}:t.type);r&&!e(r)&&g(n)})}function g(e){let t=i.get(e);!t||s&&ic(t,s)?s&&nJ(s):p(t),i.delete(e),l.delete(e)}r.activate=(e,t,n,r,i)=>{let l=e.component;c(e,t,n,0,o),a(l.vnode,e,t,n,l,o,r,e.slotScopeIds,i),rq(()=>{l.isDeactivated=!1,l.a&&z(l.a);let t=e.props&&e.props.onVnodeMounted;t&&ix(t,l.parent,e)},o)},r.deactivate=e=>{let t=e.component;rQ(t.m),rQ(t.a),c(e,d,null,1,o),rq(()=>{t.da&&z(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&ix(n,t.parent,e),t.isDeactivated=!0},o)},t7(()=>[e.include,e.exclude],([e,t])=>{e&&f(t=>nq(e,t)),t&&f(e=>!nq(t,e))},{flush:"post",deep:!0});let m=null,y=()=>{null!=m&&(rZ(n.subTree.type)?rq(()=>{i.set(m,nG(n.subTree))},n.subTree.suspense):i.set(m,nG(n.subTree)))};return nY(y),n1(y),n2(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=nG(t);if(e.type===i.type&&e.key===i.key){nJ(i);let e=i.component.da;e&&rq(e,r);return}p(e)})}),()=>{if(m=null,!t.default)return s=null;let n=t.default(),r=n[0];if(n.length>1)return s=null,n;if(!ia(r)||!(4&r.shapeFlag)&&!(128&r.shapeFlag))return s=null,r;let o=nG(r);if(o.type===r5)return s=null,o;let a=o.type,c=i$(nj(o)?o.type.__asyncResolved||{}:a),{include:u,exclude:h,max:d}=e;if(u&&(!c||!nq(u,c))||h&&c&&nq(h,c))return o.shapeFlag&=-257,s=o,r;let p=null==o.key?a:o.key,f=i.get(p);return o.el&&(o=im(o),128&r.shapeFlag&&(r.ssContent=o)),m=p,f?(o.el=f.el,o.component=f.component,o.transition&&nC(o,o.transition),o.shapeFlag|=512,l.delete(p),l.add(p)):(l.add(p),d&&l.size>parseInt(d,10)&&g(l.values().next().value)),o.shapeFlag|=256,s=o,rZ(r.type)?r:o}}},e.ReactiveEffect=ey,e.Static=r9,e.Suspense={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,l,s,o,a,c){if(null==e)!function(e,t,n,r,i,l,s,o,a){let{p:c,o:{createElement:u}}=a,h=u("div"),d=e.suspense=r1(e,i,r,t,h,n,l,s,o,a);c(null,d.pendingBranch=e.ssContent,h,null,r,d,l,s),d.deps>0?(r0(e,"onPending"),r0(e,"onFallback"),c(null,e.ssFallback,t,n,r,null,l,s),r3(d,e.ssFallback)):d.resolve(!1,!0)}(t,n,r,i,l,s,o,a,c);else{if(l&&l.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,r,i,l,s,o,{p:a,um:c,o:{createElement:u}}){let h=t.suspense=e.suspense;h.vnode=t,t.el=e.el;let d=t.ssContent,p=t.ssFallback,{activeBranch:f,pendingBranch:g,isInFallback:m,isHydrating:y}=h;if(g)h.pendingBranch=d,ic(g,d)?(a(g,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0?h.resolve():m&&!y&&(a(f,p,n,r,i,null,l,s,o),r3(h,p))):(h.pendingId=rY++,y?(h.isHydrating=!1,h.activeBranch=g):c(g,i,h),h.deps=0,h.effects.length=0,h.hiddenContainer=u("div"),m?(a(null,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0?h.resolve():(a(f,p,n,r,i,null,l,s,o),r3(h,p))):f&&ic(f,d)?(a(f,d,n,r,i,h,l,s,o),h.resolve(!0)):(a(null,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0&&h.resolve()));else if(f&&ic(f,d))a(f,d,n,r,i,h,l,s,o),r3(h,d);else if(r0(t,"onPending"),h.pendingBranch=d,512&d.shapeFlag?h.pendingId=d.component.suspenseId:h.pendingId=rY++,a(null,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0)h.resolve();else{let{timeout:e,pendingId:t}=h;e>0?setTimeout(()=>{h.pendingId===t&&h.fallback(p)},e):0===e&&h.fallback(p)}}(e,t,n,r,i,s,o,a,c)}},hydrate:function(e,t,n,r,i,l,s,o,a){let c=t.suspense=r1(t,r,n,e.parentNode,document.createElement("div"),null,i,l,s,o,!0),u=a(e,c.pendingBranch=t.ssContent,n,c,l,s);return 0===c.deps&&c.resolve(!1,!0),u},normalize:function(e){let{shapeFlag:t,children:n}=e,r=32&t;e.ssContent=r2(r?n.default:n),e.ssFallback=r?r2(n.fallback):ip(r5)}},e.Teleport={name:"Teleport",__isTeleport:!0,process(e,t,n,r,i,l,s,o,a,c){let{mc:u,pc:h,pbc:d,o:{insert:p,querySelector:f,createText:g}}=c,m=ni(t.props),{dynamicChildren:y}=t,b=(e,t,n)=>{16&e.shapeFlag&&u(e.children,t,n,i,l,s,o,a)},_=(e=t)=>{let n=ni(e.props),r=e.target=no(e.props,f),l=nu(r,e,g,p);r&&("svg"!==s&&nl(r)?s="svg":"mathml"!==s&&ns(r)&&(s="mathml"),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,l),nc(e,!1)))},S=e=>{let t=()=>{nn.get(e)===t&&(nn.delete(e),ni(e.props)&&(b(e,n,e.anchor),nc(e,!0)),_(e))};nn.set(e,t),rq(t,l)};if(null==e){let e,i=t.el=g(""),s=t.anchor=g("");if(p(i,n,r),p(s,n,r),(e=t.props)&&(e.defer||""===e.defer)||l&&l.pendingBranch)return void S(t);m&&(b(t,n,s),nc(t,!0)),_()}else{t.el=e.el;let r=t.anchor=e.anchor,u=nn.get(e);if(u){u.flags|=8,nn.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,g=t.targetAnchor=e.targetAnchor,b=ni(e.props),_=b?n:p,x=b?r:g;if("svg"===s||nl(p)?s="svg":("mathml"===s||ns(p))&&(s="mathml"),y?(d(e.dynamicChildren,y,_,i,l,s,o),rX(e,t,!0)):a||h(e,t,_,x,i,l,s,o,!1),m)b?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):na(t,n,r,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=no(t.props,f);e&&na(t,e,null,c,0)}else b&&na(t,p,g,c,1);nc(t,m)}},remove(e,t,n,{um:r,o:{remove:i}},l){let{shapeFlag:s,children:o,anchor:a,targetStart:c,targetAnchor:u,target:h,props:d}=e,p=l||!ni(d),f=nn.get(e);if(f&&(f.flags|=8,nn.delete(e),p=!1),h&&(i(c),i(u)),l&&i(a),16&s)for(let e=0;ee[r]});return n},e.createRenderer=function(e){return rK(e)},e.createSSRApp=l6,e.createSlots=function(e,t){for(let n=0;n{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e},e.createStaticVNode=function(e,t){let n=ip(r9,null,e);return n.staticCount=t,n},e.createTextVNode=iv,e.createVNode=ip,e.customRef=tE,e.defineAsyncComponent=function(e){let t;I(e)&&(e={loader:e});let{loader:n,loadingComponent:r,errorComponent:i,delay:l=200,hydrate:s,timeout:o,suspensible:a=!0,onError:c}=e,u=null,h=0,d=()=>{let e;return u||(e=u=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t((h++,u=null,d())),()=>n(e),h+1)});throw e}).then(n=>e!==u&&u?u:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nT({name:"AsyncComponentWrapper",__asyncLoader:d,__asyncHydrate(e,n,r){let i=!1;(n.bu||(n.bu=[])).push(()=>i=!0);let l=()=>{i||r()},o=s?()=>{let t=s(l,t=>(function(e,t){if(nP(e)&&"["===e.data){let n=1,r=e.nextSibling;for(;r;){if(1===r.nodeType){if(!1===t(r))break}else if(nP(r))if("]"===r.data){if(0==--n)break}else"["===r.data&&n++;r=r.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:l;t?o():d().then(()=>!n.isUnmounted&&o())},get __asyncResolved(){return t},setup(){let e=iT;if(nw(e),t)return()=>nU(t,e);let n=t=>{u=null,tV(t,e,13,!i)};if(a&&e.suspense)return d().then(t=>()=>nU(t,e)).catch(e=>(n(e),()=>i?ip(i,{error:e}):null));let s=tS(!1),c=tS(),h=tS(!!l);return l&&setTimeout(()=>{h.value=!1},l),null!=o&&setTimeout(()=>{if(!s.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),c.value=e}},o),d().then(()=>{s.value=!0,e.parent&&nH(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),c.value=e}),()=>s.value&&t?nU(t,e):c.value&&i?ip(i,{error:c.value}):r&&!h.value?nU(r,e):void 0}})},e.defineComponent=nT,e.defineCustomElement=lx,e.defineEmits=function(){return null},e.defineExpose=function(e){},e.defineModel=function(){},e.defineOptions=function(e){},e.defineProps=function(){return null},e.defineSSRCustomElement=(e,t)=>lx(e,t,l6),e.defineSlots=function(){return null},e.devtools=void 0,e.effect=function(e,t){e.effect instanceof ey&&(e=e.effect.fn);let n=new ey(e);t&&T(n,t);try{n.run()}catch(e){throw n.stop(),e}let r=n.run.bind(n);return r.effect=n,r},e.effectScope=function(e){return new em(e)},e.getCurrentInstance=iw,e.getCurrentScope=function(){return l},e.getCurrentWatcher=function(){return g},e.getTransitionRawChildren=nk,e.guardReactiveProps=ig,e.h=iV,e.handleError=tV,e.hasInjectionContext=function(){return!!(iw()||rS)},e.hydrate=(...e)=>{l0().hydrate(...e)},e.hydrateOnIdle=(e=1e4)=>t=>{let n=nV(t,{timeout:e});return()=>nB(n)},e.hydrateOnInteraction=(e=[])=>(t,n)=>{R(e)&&(e=[e]);let r=!1,i=e=>{r||(r=!0,l(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},l=()=>{n(t=>{for(let n of e)t.removeEventListener(n,i)})};return n(t=>{for(let n of e)t.addEventListener(n,i,{once:!0})}),l},e.hydrateOnMediaQuery=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},e.hydrateOnVisible=e=>(t,n)=>{let r=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){r.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:l,innerWidth:s}=window;return(t>0&&t0&&r0&&n0&&ir.disconnect()},e.initCustomFormatter=function(){},e.initDirectivesForSSR=S,e.inject=t8,e.isMemoSame=iB,e.isProxy=tg,e.isReactive=td,e.isReadonly=tp,e.isRef=t_,e.isRuntimeOnly=()=>!h,e.isShallow=tf,e.isVNode=ia,e.markRaw=tv,e.mergeDefaults=function(e,t){let n=ra(e);for(let e in t){if(e.startsWith("__skip"))continue;let r=n[e];r?E(r)||I(r)?r=n[e]={type:r,default:t[e]}:r.default=t[e]:null===r&&(r=n[e]={default:t[e]}),r&&t[`__skip_${e}`]&&(r.skipFactory=!0)}return n},e.mergeModels=function(e,t){return e&&t?E(e)&&E(t)?e.concat(t):T({},ra(e),ra(t)):e||t},e.mergeProps=iS,e.nextTick=tz,e.nodeOps=iK,e.normalizeClass=ei,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!R(t)&&(e.class=ei(t)),n&&(e.style=Y(n)),e},e.normalizeStyle=Y,e.onActivated=nW,e.onBeforeMount=nZ,e.onBeforeUnmount=n2,e.onBeforeUpdate=n0,e.onDeactivated=nK,e.onErrorCaptured=n5,e.onMounted=nY,e.onRenderTracked=n8,e.onRenderTriggered=n4,e.onScopeDispose=function(e,t=!1){l&&l.cleanups.push(e)},e.onServerPrefetch=n3,e.onUnmounted=n6,e.onUpdated=n1,e.onWatcherCleanup=tF,e.openBlock=it,e.patchProp=l_,e.popScopeId=function(){t1=null},e.provide=t4,e.proxyRefs=tN,e.pushScopeId=function(e){t1=e},e.queuePostFlushCb=tX,e.reactive=ta,e.readonly=tu,e.ref=tS,e.registerRuntimeCompiler=iO,e.render=l1,e.renderList=function(e,t,n,r){let i,l=n&&n[r],s=E(e);if(s||R(e)){let n=s&&td(e),r=!1,o=!1;n&&(r=!tf(e),o=tp(e),e=eU(e)),i=Array(e.length);for(let n=0,s=e.length;nt(e,n,void 0,l&&l[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,s=n.length;r0;return"default"!==t&&(n.name=t),it(),io(r4,null,[ip("slot",n,r&&r())],e?-2:64)}let l=e[t];l&&l._c&&(l._d=!1),it();let s=l&&function e(t){return t.some(t=>!ia(t)||t.type!==r5&&(t.type!==r4||!!e(t.children)))?t:null}(l(n)),o=n.key||s&&s.key,a=io(r4,{key:(o&&!O(o)?o:`_${t}`)+(!s&&r?"_fb":"")},s||(r?r():[]),s&&1===e._?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),l&&l._c&&(l._d=!0),a},e.resolveComponent=function(e,t){return re(n9,e,!0,t)||e},e.resolveDirective=function(e){return re("directives",e)},e.resolveDynamicComponent=function(e){return R(e)?re(n9,e,!1)||e:e||n7},e.resolveFilter=null,e.resolveTransitionHooks=n_,e.setBlockTracking=il,e.setDevtoolsHook=S,e.setTransitionHooks=nC,e.shallowReactive=tc,e.shallowReadonly=function(e){return th(e,!0,e8,tr,to)},e.shallowRef=tx,e.ssrContextKey=t5,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=ep,e.toHandlerKey=W,e.toHandlers=function(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:W(r)]=e[r];return n},e.toRaw=tm,e.toRef=function(e,t,n){if(t_(e))return e;if(I(e))return new tR(e);if(!M(e)||!(arguments.length>1))return tS(e);return new tI(e,t,n)},e.toRefs=function(e){let t=E(e)?Array(e.length):{};for(let n in e)t[n]=new tI(e,n,void 0);return t},e.toValue=function(e){return I(e)?e():tT(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=tT,e.useAttrs=function(){return ro().attrs},e.useCssModule=function(e="$style"){return b},e.useCssVars=function(e){let t=iw();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>ll(e,n))},r=()=>{let r=e(t.proxy);t.ce?ll(t.ce,r):function e(t,n){if(128&t.shapeFlag){let r=t.suspense;t=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{e(r.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)ll(t.el,n);else if(t.type===r4)t.children.forEach(t=>e(t,n));else if(t.type===r9){let{el:e,anchor:r}=t;for(;e&&(ll(e,n),e!==r);)e=e.nextSibling}}(t.subTree,r),n(r)};n0(()=>{tX(r)}),nY(()=>{t7(r,S,{flush:"post"});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),n6(()=>e.disconnect())})},e.useHost=lT,e.useId=function(){let e=iw();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""},e.useModel=function(e,t,n=b){let r=iw(),i=j(t),l=H(t),s=rx(e,i),o=tE((s,o)=>{let a,c,u=b;return t9(()=>{let t=e[i];K(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!K(s,a)&&!(u!==b&&K(e,u)))return;let h=r.vnode.props;h&&(t in h||i in h||l in h)&&(`onUpdate:${t}`in h||`onUpdate:${i}`in h||`onUpdate:${l}`in h)||(a=e,o()),r.emit(`update:${t}`,s),K(e,s)&&K(e,u)&&!K(s,c)&&o(),u=e,c=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||b:o,done:!1}:{done:!0}}},o},e.useSSRContext=()=>{},e.useShadowRoot=function(){let e=lT();return e&&e.shadowRoot},e.useSlots=function(){return ro().slots},e.useTemplateRef=function(e){let t=iw(),n=tx(null);return t&&Object.defineProperty(t.refs===b?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n},e.useTransitionState=np,e.vModelCheckbox=lj,e.vModelDynamic={created(e,t,n){lJ(e,t,n,null,"created")},mounted(e,t,n){lJ(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){lJ(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){lJ(e,t,n,r,"updated")}},e.vModelRadio=lH,e.vModelSelect=lq,e.vModelText=lB,e.vShow={name:"show",beforeMount(e,{value:t},{transition:n}){e[lt]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):lr(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),lr(e,!0),r.enter(e)):r.leave(e,()=>{lr(e,!1)}):lr(e,t))},beforeUnmount(e,{value:t}){lr(e,t)}},e.version=ij,e.warn=S,e.watch=function(e,t,n){return t7(e,t,n)},e.watchEffect=function(e,t){return t7(e,null,t)},e.watchPostEffect=function(e,t){return t7(e,null,{flush:"post"})},e.watchSyncEffect=t9,e.withAsyncContext=function(e){let t=iw(),n=iI,r=e();iA(),n&&u(!1);let i=()=>{iN(t),n&&u(!0)},l=()=>{iw()!==t&&t.scope.off(),iA(),n&&u(!1)};return P(r)&&(r=r.catch(e=>{throw i(),Promise.resolve().then(()=>Promise.resolve().then(l)),e})),[r,()=>{i(),Promise.resolve().then(l)}]},e.withCtx=t6,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){if(null===t0)return e;let n=iL(t0),r=e.dirs||(e.dirs=[]);for(let e=0;e{let n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=n=>{if(!("key"in n))return;let r=H(n.key);if(t.some(e=>e===r||lQ[e]===r))return e(n)})},e.withMemo=function(e,t,n,r){let i=n[r];if(i&&iB(i,e))return i;let l=t();return l.memo=e.slice(),l.cacheIndex=r,n[r]=l},e.withModifiers=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(n,...r)=>{for(let e=0;et6,e}({}); diff --git a/platform/backend/static/static/vue/vue.global.js b/platform/backend/static/static/vue/vue.global.js new file mode 100644 index 0000000..ee229c3 --- /dev/null +++ b/platform/backend/static/static/vue/vue.global.js @@ -0,0 +1,18619 @@ +/** +* vue v3.5.33 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +var Vue = (function (exports) { + 'use strict'; + + // @__NO_SIDE_EFFECTS__ + function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; + } + + const EMPTY_OBJ = Object.freeze({}) ; + const EMPTY_ARR = Object.freeze([]) ; + const NOOP = () => { + }; + const NO = () => false; + const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter + (key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); + const isModelListener = (key) => key.startsWith("onUpdate:"); + const extend = Object.assign; + const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } + }; + const hasOwnProperty$1 = Object.prototype.hasOwnProperty; + const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); + const isArray = Array.isArray; + const isMap = (val) => toTypeString(val) === "[object Map]"; + const isSet = (val) => toTypeString(val) === "[object Set]"; + const isDate = (val) => toTypeString(val) === "[object Date]"; + const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; + const isFunction = (val) => typeof val === "function"; + const isString = (val) => typeof val === "string"; + const isSymbol = (val) => typeof val === "symbol"; + const isObject = (val) => val !== null && typeof val === "object"; + const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); + }; + const objectToString = Object.prototype.toString; + const toTypeString = (value) => objectToString.call(value); + const toRawType = (value) => { + return toTypeString(value).slice(8, -1); + }; + const isPlainObject = (val) => toTypeString(val) === "[object Object]"; + const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; + const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" + ); + const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" + ); + const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); + }; + const camelizeRE = /-\w/g; + const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } + ); + const hyphenateRE = /\B([A-Z])/g; + const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() + ); + const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); + }); + const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } + ); + const hasChanged = (value, oldValue) => !Object.is(value, oldValue); + const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } + }; + const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); + }; + const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; + }; + const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; + }; + let _globalThis; + const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); + }; + function genCacheKey(source, options) { + return source + JSON.stringify( + options, + (_, val) => typeof val === "function" ? val.toString() : val + ); + } + + const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `NEED_HYDRATION`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `CACHED`, + [-2]: `BAIL` + }; + + const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" + }; + + const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; + const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); + + const range = 2; + function generateCodeFrame(source, start = 0, end = source.length) { + start = Math.max(0, Math.min(start, source.length)); + end = Math.max(0, Math.min(end, source.length)); + if (start > end) return ""; + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); + } + + function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } + } + const listDelimiterRE = /;(?![^(]*\))/g; + const propertyDelimiterRE = /:([^]+)/; + const styleCommentRE = /\/\*[^]*?\*\//g; + function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; + } + function stringifyStyle(styles) { + if (!styles) return ""; + if (isString(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; + } + function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); + } + function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; + } + + const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; + const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; + const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; + const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; + const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); + const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); + const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); + const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + + const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; + const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); + const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` + ); + function includeBooleanAttr(value) { + return !!value || value === ""; + } + const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` + ); + const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` + ); + function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; + } + + const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; + function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => `\\${s}` + ); + } + + function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; + } + function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); + } + function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); + } + + const isRef$1 = (val) => { + return !!(val && val["__v_isRef"] === true); + }; + const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); + }; + const replacer = (_key, val) => { + if (isRef$1(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; + }; + const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); + }; + + function normalizeCssVarValue(value) { + if (value == null) { + return "initial"; + } + if (typeof value === "string") { + return value === "" ? " " : value; + } + if (typeof value !== "number" || !Number.isFinite(value)) { + { + console.warn( + "[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:", + value + ); + } + } + return String(value); + } + + function warn$2(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); + } + + let activeEffectScope; + class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn$2(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + if (activeEffectScope === this) { + activeEffectScope = this.prevScope; + } else { + let current = activeEffectScope; + while (current) { + if (current.prevScope === this) { + current.prevScope = this.prevScope; + break; + } + current = current.prevScope; + } + } + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } + } + function effectScope(detached) { + return new EffectScope(detached); + } + function getCurrentScope() { + return activeEffectScope; + } + function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (!failSilently) { + warn$2( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } + } + + let activeSub; + const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); + class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + if (activeSub !== this) { + warn$2( + "Active effect was not restored correctly - this is likely a Vue internal bug." + ); + } + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } + } + let batchDepth = 0; + let batchedSub; + let batchedComputed; + function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; + } + function startBatch() { + batchDepth++; + } + function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; + } + function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } + } + function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; + } + function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; + } + function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } + } + function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subsHead === link) { + dep.subsHead = nextSub; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } + } + function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } + } + function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; + } + function stop(runner) { + runner.effect.stop(); + } + let shouldTrack = true; + const trackStack = []; + function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; + } + function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; + } + function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } + } + + let globalVersion = 0; + class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } + } + class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + { + this.subsHead = void 0; + } + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + if (activeSub.onTrack) { + activeSub.onTrack( + extend( + { + effect: activeSub + }, + debugInfo + ) + ); + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (true) { + for (let head = this.subsHead; head; head = head.nextSub) { + if (head.sub.onTrigger && !(head.sub.flags & 8)) { + head.sub.onTrigger( + extend( + { + effect: head.sub + }, + debugInfo + ) + ); + } + } + } + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } + } + function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + if (link.dep.subsHead === void 0) { + link.dep.subsHead = link; + } + link.dep.subs = link; + } + } + const targetMap = /* @__PURE__ */ new WeakMap(); + const ITERATE_KEY = /* @__PURE__ */ Symbol( + "Object iterate" + ); + const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Map keys iterate" + ); + const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Array iterate" + ); + function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track({ + target, + type, + key + }); + } + } + } + function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger({ + target, + type, + key, + newValue, + oldValue, + oldTarget + }); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = isArray(target); + const isArrayIndex = targetIsArray && isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); + } + function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); + } + + function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); + } + function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; + } + function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); + } + const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } + }; + function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; + } + const arrayProto = Array.prototype; + function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; + } + function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + let wrappedFn = fn; + let wrapInitialAccumulator = false; + if (arr !== self) { + if (needsWrap) { + wrapInitialAccumulator = args.length === 0; + wrappedFn = function(acc, item, index) { + if (wrapInitialAccumulator) { + wrapInitialAccumulator = false; + acc = toWrapped(self, acc); + } + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + const result = arr[method](wrappedFn, ...args); + return wrapInitialAccumulator ? toWrapped(self, result) : result; + } + function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; + } + function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; + } + + const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); + const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) + ); + function hasOwnProperty(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); + } + class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && isIntegerKey(key) ? res : res.value; + return isReadonly2 && isObject(value) ? readonly(value) : value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } + } + class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target[key] + ); + } + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } + } + class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + { + warn$2( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + } + const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); + const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); + const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); + const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + + const toShallow = (value) => value; + const getProto = (v) => Reflect.getPrototypeOf(v); + function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; + } + function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn$2( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; + } + function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + const target = toRaw(this); + const proto = getProto(target); + const rawValue = toRaw(value); + const valueToAdd = !shallow && !isShallow(value) && !isReadonly(value) ? rawValue : value; + const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue); + if (!hadKey) { + target.add(valueToAdd); + trigger(target, "add", valueToAdd, valueToAdd); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0, + oldTarget + ); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; + } + function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; + } + const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) + }; + const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) + }; + const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) + }; + const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) + }; + function checkIdentityKeys(target, has, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has.call(target, rawKey)) { + const type = toRawType(target); + warn$2( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } + } + + const reactiveMap = /* @__PURE__ */ new WeakMap(); + const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); + const readonlyMap = /* @__PURE__ */ new WeakMap(); + const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); + function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } + } + function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); + } + // @__NO_SIDE_EFFECTS__ + function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); + } + // @__NO_SIDE_EFFECTS__ + function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); + } + // @__NO_SIDE_EFFECTS__ + function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); + } + // @__NO_SIDE_EFFECTS__ + function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); + } + function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + warn$2( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; + } + // @__NO_SIDE_EFFECTS__ + function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); + } + // @__NO_SIDE_EFFECTS__ + function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); + } + // @__NO_SIDE_EFFECTS__ + function isShallow(value) { + return !!(value && value["__v_isShallow"]); + } + // @__NO_SIDE_EFFECTS__ + function isProxy(value) { + return value ? !!value["__v_raw"] : false; + } + // @__NO_SIDE_EFFECTS__ + function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; + } + function markRaw(value) { + if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; + } + const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value; + const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value; + + // @__NO_SIDE_EFFECTS__ + function isRef(r) { + return r ? r["__v_isRef"] === true : false; + } + // @__NO_SIDE_EFFECTS__ + function ref(value) { + return createRef(value, false); + } + // @__NO_SIDE_EFFECTS__ + function shallowRef(value) { + return createRef(value, true); + } + function createRef(rawValue, shallow) { + if (/* @__PURE__ */ isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); + } + class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + { + this.dep.track({ + target: this, + type: "get", + key: "value" + }); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + { + this.dep.trigger({ + target: this, + type: "set", + key: "value", + newValue, + oldValue + }); + } + } + } + } + function triggerRef(ref2) { + if (ref2.dep) { + { + ref2.dep.trigger({ + target: ref2, + type: "set", + key: "value", + newValue: ref2._value + }); + } + } + } + function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; + } + function toValue(source) { + return isFunction(source) ? source() : unref(source); + } + const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } + }; + function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); + } + class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } + } + function customRef(factory) { + return new CustomRefImpl(factory); + } + // @__NO_SIDE_EFFECTS__ + function toRefs(object) { + if (!isProxy(object)) { + warn$2(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; + } + class ObjectRefImpl { + constructor(_object, key, _defaultValue) { + this._object = _object; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + this._key = isSymbol(key) ? key : String(key); + this._raw = toRaw(_object); + let shallow = true; + let obj = _object; + if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) { + do { + shallow = !isProxy(obj) || isShallow(obj); + } while (shallow && (obj = obj["__v_raw"])); + } + this._shallow = shallow; + } + get value() { + let val = this._object[this._key]; + if (this._shallow) { + val = unref(val); + } + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { + const nestedRef = this._object[this._key]; + if (/* @__PURE__ */ isRef(nestedRef)) { + nestedRef.value = newVal; + return; + } + } + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(this._raw, this._key); + } + } + class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } + } + // @__NO_SIDE_EFFECTS__ + function toRef(source, key, defaultValue) { + if (/* @__PURE__ */ isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return /* @__PURE__ */ ref(source); + } + } + function propertyToRef(source, key, defaultValue) { + return new ObjectRefImpl(source, key, defaultValue); + } + + class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track({ + target: this, + type: "get", + key: "value" + }) ; + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } else { + warn$2("Write operation failed: computed value is readonly"); + } + } + } + // @__NO_SIDE_EFFECTS__ + function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + if (debugOptions && !isSSR) { + cRef.onTrack = debugOptions.onTrack; + cRef.onTrigger = debugOptions.onTrigger; + } + return cRef; + } + + const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" + }; + const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" + }; + + const INITIAL_WATCHER_VALUE = {}; + const cleanupMap = /* @__PURE__ */ new WeakMap(); + let activeWatcher = void 0; + function getCurrentWatcher() { + return activeWatcher; + } + function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } else if (!failSilently) { + warn$2( + `onWatcherCleanup() was called when there was no active watcher to associate with.` + ); + } + } + function watch$1(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const warnInvalidSource = (s) => { + (options.onWarn || warn$2)( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (isFunction(s)) { + return call ? call(s, 2) : s(); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + { + effect.onTrack = options.onTrack; + effect.onTrigger = options.onTrigger; + } + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; + } + function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; + } + + const stack$1 = []; + function pushWarningContext(vnode) { + stack$1.push(vnode); + } + function popWarningContext() { + stack$1.pop(); + } + let isWarning = false; + function warn$1(msg, ...args) { + if (isWarning) return; + isWarning = true; + pauseTracking(); + const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); + isWarning = false; + } + function getComponentTrace() { + let currentVNode = stack$1[stack$1.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; + } + function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; + } + function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; + } + function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; + } + function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } + } + function assertNumber(val, type) { + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1(`${type} is NaN - the duration expression might be incorrect.`); + } + } + + const ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER", + "COMPONENT_UPDATE": 15, + "15": "COMPONENT_UPDATE", + "APP_UNMOUNT_CLEANUP": 16, + "16": "APP_UNMOUNT_CLEANUP" + }; + const ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" + }; + function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } + } + function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } else { + warn$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } + } + function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings$1[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + pauseTracking(); + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); + } + function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } + } + + const queue = []; + let flushIndex = -1; + const pendingPostFlushCbs = []; + let activePostFlushCbs = null; + let postFlushIndex = 0; + const resolvedPromise = /* @__PURE__ */ Promise.resolve(); + let currentFlushPromise = null; + const RECURSION_LIMIT = 100; + function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; + } + function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { + start = middle + 1; + } else { + end = middle; + } + } + return start; + } + function queueJob(job) { + if (!(job.flags & 1)) { + const jobId = getId(job); + const lastJob = queue[queue.length - 1]; + if (!lastJob || // fast path when the job id is larger than the tail + !(job.flags & 2) && jobId >= getId(lastJob)) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(jobId), 0, job); + } + job.flags |= 1; + queueFlush(); + } + } + function queueFlush() { + if (!currentFlushPromise) { + currentFlushPromise = resolvedPromise.then(flushJobs); + } + } + function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (activePostFlushCbs && cb.id === -1) { + activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); + } else if (!(cb.flags & 1)) { + pendingPostFlushCbs.push(cb); + cb.flags |= 1; + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); + } + function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.flags & 2) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + if (cb.flags & 4) { + cb.flags &= -2; + } + cb(); + if (!(cb.flags & 4)) { + cb.flags &= -2; + } + } + } + } + function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + if (cb.flags & 4) { + cb.flags &= -2; + } + if (!(cb.flags & 8)) cb(); + cb.flags &= -2; + } + activePostFlushCbs = null; + postFlushIndex = 0; + } + } + const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; + function flushJobs(seen) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + const check = (job) => checkRecursiveUpdates(seen, job) ; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && !(job.flags & 8)) { + if (check(job)) { + continue; + } + if (job.flags & 4) { + job.flags &= ~1; + } + callWithErrorHandling( + job, + job.i, + job.i ? 15 : 14 + ); + if (!(job.flags & 4)) { + job.flags &= ~1; + } + } + } + } finally { + for (; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + job.flags &= -2; + } + } + flushIndex = -1; + queue.length = 0; + flushPostFlushCbs(seen); + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } + } + function checkRecursiveUpdates(seen, fn) { + const count = seen.get(fn) || 0; + if (count > RECURSION_LIMIT) { + const instance = fn.i; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } + seen.set(fn, count + 1); + return false; + } + + let isHmrUpdating = false; + const setHmrUpdating = (v) => { + try { + return isHmrUpdating; + } finally { + isHmrUpdating = v; + } + }; + const hmrDirtyComponents = /* @__PURE__ */ new Map(); + { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; + } + const map = /* @__PURE__ */ new Map(); + function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); + } + function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); + } + function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; + } + function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; + } + function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + if (!(instance.job.flags & 8)) { + instance.update(); + } + isHmrUpdating = false; + }); + } + function reload(id, newComp) { + const record = map.get(id); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (let i = 0; i < instances.length; i++) { + const instance = instances[i]; + const oldComp = normalizeClassComponent(instance.type); + let dirtyInstances = hmrDirtyComponents.get(oldComp); + if (!dirtyInstances) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set()); + } + dirtyInstances.add(instance); + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + dirtyInstances.add(instance); + instance.ceReload(newComp.styles); + dirtyInstances.delete(instance); + } else if (instance.parent) { + queueJob(() => { + if (!(instance.job.flags & 8)) { + isHmrUpdating = true; + instance.parent.update(); + isHmrUpdating = false; + dirtyInstances.delete(instance); + } + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + if (instance.root.ce && instance !== instance.root) { + instance.root.ce._removeChildStyle(oldComp); + } + } + queuePostFlushCb(() => { + hmrDirtyComponents.clear(); + }); + } + function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } + } + function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; + } + + let devtools$1; + let buffer = []; + let devtoolsNotInstalled = false; + function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } + } + function setDevtoolsHook$1(hook, target) { + var _a, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } + } + function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); + } + function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); + } + const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */); + const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); + const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ + ); + const devtoolsComponentRemoved = (component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } + }; + // @__NO_SIDE_EFFECTS__ + function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; + } + const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */); + const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */); + function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; + } + function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); + } + + let currentRenderingInstance = null; + let currentScopeId = null; + function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; + } + function pushScopeId(id) { + currentScopeId = id; + } + function popScopeId() { + currentScopeId = null; + } + const withScopeId = (_id) => withCtx; + function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; + } + + function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } + } + function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + warn$1(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; + } + function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } + } + + function provide(key, value) { + { + if (!currentInstance || currentInstance.isMounted) { + warn$1(`provide() can only be used inside setup().`); + } + } + if (currentInstance) { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } + } + function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = getCurrentInstance(); + if (instance || currentApp) { + let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else { + warn$1(`injection "${String(key)}" not found.`); + } + } else { + warn$1(`inject() can only be used inside setup() or functional components.`); + } + } + function hasInjectionContext() { + return !!(getCurrentInstance() || currentApp); + } + + const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx"); + const useSSRContext = () => { + { + warn$1(`useSSRContext() is not supported in the global build.`); + } + }; + + function watchEffect(effect, options) { + return doWatch(effect, null, options); + } + function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "post" }) + ); + } + function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "sync" }) + ); + } + function watch(source, cb, options) { + if (!isFunction(cb)) { + warn$1( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); + } + function doWatch(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, flush, once } = options; + if (!cb) { + if (immediate !== void 0) { + warn$1( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn$1( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (once !== void 0) { + warn$1( + `watch() "once" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const baseWatchOptions = extend({}, options); + baseWatchOptions.onWarn = warn$1; + const instance = currentInstance; + baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); + let isPre = false; + if (flush === "post") { + baseWatchOptions.scheduler = (job) => { + queuePostRenderEffect(job, instance && instance.suspense); + }; + } else if (flush !== "sync") { + isPre = true; + baseWatchOptions.scheduler = (job, isFirstRun) => { + if (isFirstRun) { + job(); + } else { + queueJob(job); + } + }; + } + baseWatchOptions.augmentJob = (job) => { + if (cb) { + job.flags |= 4; + } + if (isPre) { + job.flags |= 2; + if (instance) { + job.id = instance.uid; + job.i = instance; + } + } + }; + const watchHandle = watch$1(source, cb, baseWatchOptions); + return watchHandle; + } + function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; + } + function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; + } + + const pendingMounts = /* @__PURE__ */ new WeakMap(); + const TeleportEndKey = /* @__PURE__ */ Symbol("_vte"); + const isTeleport = (type) => type.__isTeleport; + const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); + const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); + const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; + const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; + const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (isString(targetSelector)) { + if (!select) { + warn$1( + `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` + ); + return null; + } else { + const target = select(targetSelector); + if (!target && !isTeleportDisabled(props)) { + warn$1( + `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` + ); + } + return target; + } + } else { + if (!targetSelector && !isTeleportDisabled(props)) { + warn$1(`Invalid Teleport target: ${targetSelector}`); + } + return targetSelector; + } + }; + const TeleportImpl = { + name: "Teleport", + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment, parentNode } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { dynamicChildren } = n2; + if (isHmrUpdating) { + optimized = false; + dynamicChildren = null; + } + const mount = (vnode, container2, anchor2) => { + if (vnode.shapeFlag & 16) { + mountChildren( + vnode.children, + container2, + anchor2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const mountToTarget = (vnode = n2) => { + const disabled2 = isTeleportDisabled(vnode.props); + const target = vnode.target = resolveTarget(vnode.props, querySelector); + const targetAnchor = prepareAnchor(target, vnode, createText, insert); + if (target) { + if (namespace !== "svg" && isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace !== "mathml" && isTargetMathML(target)) { + namespace = "mathml"; + } + if (parentComponent && parentComponent.isCE) { + (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target); + } + if (!disabled2) { + mount(vnode, target, targetAnchor); + updateCssVars(vnode, false); + } + } else if (!disabled2) { + warn$1("Invalid Teleport target on mount:", target, `(${typeof target})`); + } + }; + const queuePendingMount = (vnode) => { + const mountJob = () => { + if (pendingMounts.get(vnode) !== mountJob) return; + pendingMounts.delete(vnode); + if (isTeleportDisabled(vnode.props)) { + const mountContainer = parentNode(vnode.el) || container; + mount(vnode, mountContainer, vnode.anchor); + updateCssVars(vnode, true); + } + mountToTarget(vnode); + }; + pendingMounts.set(vnode, mountJob); + queuePostRenderEffect(mountJob, parentSuspense); + }; + if (n1 == null) { + const placeholder = n2.el = createComment("teleport start") ; + const mainAnchor = n2.anchor = createComment("teleport end") ; + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) { + queuePendingMount(n2); + return; + } + if (disabled) { + mount(n2, container, mainAnchor); + updateCssVars(n2, true); + } + mountToTarget(); + } else { + n2.el = n1.el; + const mainAnchor = n2.anchor = n1.anchor; + const pendingMount = pendingMounts.get(n1); + if (pendingMount) { + pendingMount.flags |= 8; + pendingMounts.delete(n1); + queuePendingMount(n2); + return; + } + n2.targetStart = n1.targetStart; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + if (namespace === "svg" || isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace === "mathml" || isTargetMathML(target)) { + namespace = "mathml"; + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + traverseStaticChildren(n1, n2, false); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } else { + if (n2.props && n1.props && n2.props.to !== n1.props.to) { + n2.props.to = n1.props.to; + } + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } else { + warn$1( + "Invalid Teleport target on update:", + target, + `(${typeof target})` + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + updateCssVars(n2, disabled); + } + }, + remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { + shapeFlag, + children, + anchor, + targetStart, + targetAnchor, + target, + props + } = vnode; + let shouldRemove = doRemove || !isTeleportDisabled(props); + const pendingMount = pendingMounts.get(vnode); + if (pendingMount) { + pendingMount.flags |= 8; + pendingMounts.delete(vnode); + shouldRemove = false; + } + if (target) { + hostRemove(targetStart); + hostRemove(targetAnchor); + } + doRemove && hostRemove(anchor); + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + shouldRemove, + !!child.dynamicChildren + ); + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport + }; + function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } + } + function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector, insert, createText } + }, hydrateChildren) { + function hydrateAnchor(target2, targetNode) { + let targetAnchor = targetNode; + while (targetAnchor) { + if (targetAnchor && targetAnchor.nodeType === 8) { + if (targetAnchor.data === "teleport start anchor") { + vnode.targetStart = targetAnchor; + } else if (targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + targetAnchor = nextSibling(targetAnchor); + } + } + function hydrateDisabledTeleport(node2, vnode2) { + vnode2.anchor = hydrateChildren( + nextSibling(node2), + vnode2, + parentNode(node2), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + const disabled = isTeleportDisabled(vnode.props); + if (target) { + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (disabled) { + hydrateDisabledTeleport(node, vnode); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor( + target, + vnode, + createText, + insert, + // if target is the same as the main view, insert anchors before current node + // to avoid hydrating mismatch + parentNode(node) === target ? node : null + ); + } + } else { + vnode.anchor = nextSibling(node); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor(target, vnode, createText, insert); + } + hydrateChildren( + targetNode && nextSibling(targetNode), + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode, disabled); + } else if (disabled) { + if (vnode.shapeFlag & 16) { + hydrateDisabledTeleport(node, vnode); + vnode.targetStart = node; + vnode.targetAnchor = nextSibling(node); + } + } + return vnode.anchor && nextSibling(vnode.anchor); + } + const Teleport = TeleportImpl; + function updateCssVars(vnode, isDisabled) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node, anchor; + if (isDisabled) { + node = vnode.el; + anchor = vnode.anchor; + } else { + node = vnode.targetStart; + anchor = vnode.targetAnchor; + } + while (node && node !== anchor) { + if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } + } + function prepareAnchor(target, vnode, createText, insert, anchor = null) { + const targetStart = vnode.targetStart = createText(""); + const targetAnchor = vnode.targetAnchor = createText(""); + targetStart[TeleportEndKey] = targetAnchor; + if (target) { + insert(targetStart, target, anchor); + insert(targetAnchor, target, anchor); + } + return targetAnchor; + } + + const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb"); + const enterCbKey$1 = /* @__PURE__ */ Symbol("_enterCb"); + function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; + } + const TransitionHookValidator = [Function, Array]; + const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator + }; + const recursiveGetSubtree = (instance) => { + const subTree = instance.subTree; + return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; + }; + const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + const child = children && children.length ? findNonCommentChild(children) : ( + // Keep explicit default-slot conditionals on the same transition path + // as regular v-if branches, which render a comment placeholder. + instance.subTree ? createCommentVNode() : void 0 + ); + if (!child) { + return; + } + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn$1(`invalid mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getInnerChild$1(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + let enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance, + // #11061, ensure enterHooks is fresh after clone + (hooks) => enterHooks = hooks + ); + if (innerChild.type !== Comment) { + setTransitionHooks(innerChild, enterHooks); + } + let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); + if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) { + let leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in" && innerChild.type !== Comment) { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (!(instance.job.flags & 8)) { + instance.update(); + } + delete leavingHooks.afterLeave; + oldInnerChild = void 0; + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + enterHooks.delayedLeave = () => { + delayedLeave(); + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + }; + } else { + oldInnerChild = void 0; + } + } else if (oldInnerChild) { + oldInnerChild = void 0; + } + return child; + }; + } + }; + function findNonCommentChild(children) { + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn$1( + " can only be used on a single element or component. Use for lists." + ); + break; + } + child = c; + hasFound = true; + } + } + } + return child; + } + const BaseTransition = BaseTransitionImpl; + function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; + } + function resolveTransitionHooks(vnode, props, state, instance, postClone) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook(hook, [el]); + }, + enter(el) { + if (!isHmrUpdating && leavingVNodesCache[key] === vnode) return; + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + el[enterCbKey$1] = (cancelled) => { + if (called) return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey$1] = void 0; + }; + const done = el[enterCbKey$1].bind(null, false); + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el[enterCbKey$1]) { + el[enterCbKey$1]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + el[leaveCbKey] = (cancelled) => { + if (called) return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + const done = el[leaveCbKey].bind(null, false); + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + const hooks2 = resolveTransitionHooks( + vnode2, + props, + state, + instance, + postClone + ); + if (postClone) postClone(hooks2); + return hooks2; + } + }; + return hooks; + } + function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } + } + function getInnerChild$1(vnode) { + if (!isKeepAlive(vnode)) { + if (isTeleport(vnode.type) && vnode.children) { + return findNonCommentChild(vnode.children); + } + return vnode; + } + if (vnode.component) { + return vnode.component.subTree; + } + const { shapeFlag, children } = vnode; + if (children) { + if (shapeFlag & 16) { + return children[0]; + } + if (shapeFlag & 32 && isFunction(children.default)) { + return children.default(); + } + } + } + function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + vnode.transition = hooks; + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } + } + function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; + } + + // @__NO_SIDE_EFFECTS__ + function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8236: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; + } + + function useId() { + const i = getCurrentInstance(); + if (i) { + return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; + } else { + warn$1( + `useId() is called when there is no active component instance to be associated with.` + ); + } + return ""; + } + function markAsyncBoundary(instance) { + instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; + } + + const knownTemplateRefs = /* @__PURE__ */ new WeakSet(); + function useTemplateRef(key) { + const i = getCurrentInstance(); + const r = shallowRef(null); + if (i) { + const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs; + if (isTemplateRefKey(refs, key)) { + warn$1(`useTemplateRef('${key}') already exists.`); + } else { + Object.defineProperty(refs, key, { + enumerable: true, + get: () => r.value, + set: (val) => r.value = val + }); + } + } else { + warn$1( + `useTemplateRef() is called when there is no active component instance to be associated with.` + ); + } + const ret = readonly(r) ; + { + knownTemplateRefs.add(ret); + } + return ret; + } + function isTemplateRefKey(refs, key) { + let desc; + return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable); + } + + const pendingSetRefMap = /* @__PURE__ */ new WeakMap(); + function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { + setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); + } + return; + } + const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + if (!owner) { + warn$1( + `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` + ); + return; + } + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + const rawSetupState = toRaw(setupState); + const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => { + { + if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) { + warn$1( + `Template ref "${key}" used on a non-ref value. It will not work in the production build.` + ); + } + if (knownTemplateRefs.has(rawSetupState[key])) { + return false; + } + } + if (isTemplateRefKey(refs, key)) { + return false; + } + return hasOwn(rawSetupState, key); + }; + const canSetRef = (ref2, key) => { + if (knownTemplateRefs.has(ref2)) { + return false; + } + if (key && isTemplateRefKey(refs, key)) { + return false; + } + return true; + }; + if (oldRef != null && oldRef !== ref) { + invalidatePendingSetRef(oldRawRef); + if (isString(oldRef)) { + refs[oldRef] = null; + if (canSetSetupRef(oldRef)) { + setupState[oldRef] = null; + } + } else if (isRef(oldRef)) { + const oldRawRefAtom = oldRawRef; + if (canSetRef(oldRef, oldRawRefAtom.k)) { + oldRef.value = null; + } + if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null; + } + } + if (isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = isString(ref); + const _isRef = isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k]; + if (isUnmount) { + isArray(existing) && remove(existing, refValue); + } else { + if (!isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (canSetSetupRef(ref)) { + setupState[ref] = refs[ref]; + } + } else { + const newVal = [refValue]; + if (canSetRef(ref, rawRef.k)) { + ref.value = newVal; + } + if (rawRef.k) refs[rawRef.k] = newVal; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (canSetSetupRef(ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + if (canSetRef(ref, rawRef.k)) { + ref.value = value; + } + if (rawRef.k) refs[rawRef.k] = value; + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + }; + if (value) { + const job = () => { + doSet(); + pendingSetRefMap.delete(rawRef); + }; + job.id = -1; + pendingSetRefMap.set(rawRef, job); + queuePostRenderEffect(job, parentSuspense); + } else { + invalidatePendingSetRef(rawRef); + doSet(); + } + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + } + } + function invalidatePendingSetRef(rawRef) { + const pendingSetRef = pendingSetRefMap.get(rawRef); + if (pendingSetRef) { + pendingSetRef.flags |= 8; + pendingSetRefMap.delete(rawRef); + } + } + + let hasLoggedMismatchError = false; + const logMismatchError = () => { + if (hasLoggedMismatchError) { + return; + } + console.error("Hydration completed but contains mismatches."); + hasLoggedMismatchError = true; + }; + const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; + const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); + const getContainerType = (container) => { + if (container.nodeType !== 1) return void 0; + if (isSVGContainer(container)) return "svg"; + if (isMathMLContainer(container)) return "mathml"; + return void 0; + }; + const isComment = (node) => node.nodeType === 8; + function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + warn$1( + `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` + ); + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + optimized = optimized || !!vnode.dynamicChildren; + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + { + def(node, "__vnode", vnode, true); + def(node, "__vueParentComponent", parentComponent, true); + } + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + warn$1( + `Hydration text mismatch in`, + node.parentNode, + ` + - rendered on server: ${JSON.stringify( + node.data + )} + - expected on client: ${JSON.stringify(vnode.children)}` + ); + logMismatchError(); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (isTemplateNode(node)) { + nextNode = nextSibling(node); + replaceNode( + vnode.el = node.content.firstChild, + node, + parentComponent + ); + } else if (domType !== 8 || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 || domType === 3) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + if (isFragmentStart) { + nextNode = locateClosingAnchor(node); + } else if (isComment(node) && node.data === "teleport start") { + nextNode = locateClosingAnchor(node, node.data, "teleport end"); + } else { + nextNode = nextSibling(node); + } + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + optimized + ); + if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + getContainerType(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else { + warn$1("Invalid HostVNode type:", type, `(${typeof type})`); + } + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; + const forcePatch = type === "input" || type === "option"; + { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + let needCallTransitionHooks = false; + if (isTemplateNode(el)) { + needCallTransitionHooks = needTransition( + null, + // no need check parentSuspense in hydration + transition + ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; + const content = el.content.firstChild; + if (needCallTransitionHooks) { + const cls = content.getAttribute("class"); + if (cls) content.$cls = cls; + transition.beforeEnter(content); + } + replaceNode(content, el, parentComponent); + vnode.el = el = content; + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + let hasWarned = false; + while (next) { + if (!isMismatchAllowed(el, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + el, + ` +Server rendered element contains more child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + let clientText = vnode.children; + if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { + clientText = clientText.slice(1); + } + const { textContent } = el; + if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM + textContent !== clientText.replace(/\r\n|\r/g, "\n")) { + if (!isMismatchAllowed(el, 0 /* TEXT */)) { + warn$1( + `Hydration text content mismatch on`, + el, + ` + - rendered on server: ${textContent} + - expected on client: ${clientText}` + ); + logMismatchError(); + } + el.textContent = vnode.children; + } + } + if (props) { + { + const isCustomElement = el.tagName.includes("-"); + for (const key in props) { + if (// #11189 skip if this node has directives that have created hooks + // as it could have mutated the DOM in any possible way + !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) { + logMismatchError(); + } + if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers + key[0] === "." || isCustomElement && !isReservedProp(key)) { + patchProp(el, key, null, props[key], void 0, parentComponent); + } + } + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + let hasWarned = false; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + const isText = vnode.type === Text; + if (node) { + if (isText && !optimized) { + if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { + insert( + createText( + node.data.slice(vnode.children.length) + ), + container, + nextSibling(node) + ); + node.data = vnode.children; + } + } + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (isText && !vnode.children) { + insert(vnode.el = createText(""), container); + } else { + if (!isMismatchAllowed(container, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + container, + ` +Server rendered element contains fewer child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + logMismatchError(); + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) { + warn$1( + `Hydration node mismatch: +- rendered on server:`, + node, + node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, + ` +- expected on client:`, + vnode.type + ); + logMismatchError(); + } + vnode.el = null; + if (isFragment) { + const end = locateClosingAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + if (parentComponent) { + parentComponent.vnode.el = vnode.el; + updateHOCHostEl(parentComponent, vnode.el); + } + return next; + }; + const locateClosingAnchor = (node, open = "[", close = "]") => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === open) match++; + if (node.data === close) { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + const replaceNode = (newNode, oldNode, parentComponent) => { + const parentNode2 = oldNode.parentNode; + if (parentNode2) { + parentNode2.replaceChild(newNode, oldNode); + } + let parent = parentComponent; + while (parent) { + if (parent.vnode.el === oldNode) { + parent.vnode.el = parent.subTree.el = newNode; + } + parent = parent.parent; + } + }; + const isTemplateNode = (node) => { + return node.nodeType === 1 && node.tagName === "TEMPLATE"; + }; + return [hydrate, hydrateNode]; + } + function propHasMismatch(el, key, clientValue, vnode, instance) { + let mismatchType; + let mismatchKey; + let actual; + let expected; + if (key === "class") { + if (el.$cls) { + actual = el.$cls; + delete el.$cls; + } else { + actual = el.getAttribute("class"); + } + expected = normalizeClass(clientValue); + if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) { + mismatchType = 2 /* CLASS */; + mismatchKey = `class`; + } + } else if (key === "style") { + actual = el.getAttribute("style") || ""; + expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); + const actualMap = toStyleMap(actual); + const expectedMap = toStyleMap(expected); + if (vnode.dirs) { + for (const { dir, value } of vnode.dirs) { + if (dir.name === "show" && !value) { + expectedMap.set("display", "none"); + } + } + } + if (instance) { + resolveCssVars(instance, vnode, expectedMap); + } + if (!isMapEqual(actualMap, expectedMap)) { + mismatchType = 3 /* STYLE */; + mismatchKey = "style"; + } + } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { + if (isBooleanAttr(key)) { + actual = el.hasAttribute(key); + expected = includeBooleanAttr(clientValue); + } else if (clientValue == null) { + actual = el.hasAttribute(key); + expected = false; + } else { + if (el.hasAttribute(key)) { + actual = el.getAttribute(key); + } else if (key === "value" && el.tagName === "TEXTAREA") { + actual = el.value; + } else { + actual = false; + } + expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false; + } + if (actual !== expected) { + mismatchType = 4 /* ATTRIBUTE */; + mismatchKey = key; + } + } + if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) { + const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; + const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`; + const postSegment = ` + - rendered on server: ${format(actual)} + - expected on client: ${format(expected)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`; + { + warn$1(preSegment, el, postSegment); + } + return true; + } + return false; + } + function toClassSet(str) { + return new Set(str.trim().split(/\s+/)); + } + function isSetEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const s of a) { + if (!b.has(s)) { + return false; + } + } + return true; + } + function toStyleMap(str) { + const styleMap = /* @__PURE__ */ new Map(); + for (const item of str.split(";")) { + let [key, value] = item.split(":"); + key = key.trim(); + value = value && value.trim(); + if (key && value) { + styleMap.set(key, value); + } + } + return styleMap; + } + function isMapEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const [key, value] of a) { + if (value !== b.get(key)) { + return false; + } + } + return true; + } + function resolveCssVars(instance, vnode, expectedMap) { + const root = instance.subTree; + if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) { + const cssVars = instance.getCssVars(); + for (const key in cssVars) { + const value = normalizeCssVarValue(cssVars[key]); + expectedMap.set(`--${getEscapedCssVarName(key)}`, value); + } + } + if (vnode === root && instance.parent) { + resolveCssVars(instance.parent, instance.vnode, expectedMap); + } + } + const allowMismatchAttr = "data-allow-mismatch"; + const MismatchTypeString = { + [0 /* TEXT */]: "text", + [1 /* CHILDREN */]: "children", + [2 /* CLASS */]: "class", + [3 /* STYLE */]: "style", + [4 /* ATTRIBUTE */]: "attribute" + }; + function isMismatchAllowed(el, allowedType) { + if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) { + while (el && !el.hasAttribute(allowMismatchAttr)) { + el = el.parentElement; + } + } + const allowedAttr = el && el.getAttribute(allowMismatchAttr); + if (allowedAttr == null) { + return false; + } else if (allowedAttr === "") { + return true; + } else { + const list = allowedAttr.split(","); + if (allowedType === 0 /* TEXT */ && list.includes("children")) { + return true; + } + return list.includes(MismatchTypeString[allowedType]); + } + } + + const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); + const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); + const hydrateOnIdle = (timeout = 1e4) => (hydrate) => { + const id = requestIdleCallback(hydrate, { timeout }); + return () => cancelIdleCallback(id); + }; + function elementIsVisibleInViewport(el) { + const { top, left, bottom, right } = el.getBoundingClientRect(); + const { innerHeight, innerWidth } = window; + return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); + } + const hydrateOnVisible = (opts) => (hydrate, forEach) => { + const ob = new IntersectionObserver((entries) => { + for (const e of entries) { + if (!e.isIntersecting) continue; + ob.disconnect(); + hydrate(); + break; + } + }, opts); + forEach((el) => { + if (!(el instanceof Element)) return; + if (elementIsVisibleInViewport(el)) { + hydrate(); + ob.disconnect(); + return false; + } + ob.observe(el); + }); + return () => ob.disconnect(); + }; + const hydrateOnMediaQuery = (query) => (hydrate) => { + if (query) { + const mql = matchMedia(query); + if (mql.matches) { + hydrate(); + } else { + mql.addEventListener("change", hydrate, { once: true }); + return () => mql.removeEventListener("change", hydrate); + } + } + }; + const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => { + if (isString(interactions)) interactions = [interactions]; + let hasHydrated = false; + const doHydrate = (e) => { + if (!hasHydrated) { + hasHydrated = true; + teardown(); + hydrate(); + e.target.dispatchEvent(new e.constructor(e.type, e)); + } + }; + const teardown = () => { + forEach((el) => { + for (const i of interactions) { + el.removeEventListener(i, doHydrate); + } + }); + }; + forEach((el) => { + for (const i of interactions) { + el.addEventListener(i, doHydrate, { once: true }); + } + }); + return teardown; + }; + function forEachElement(node, cb) { + if (isComment(node) && node.data === "[") { + let depth = 1; + let next = node.nextSibling; + while (next) { + if (next.nodeType === 1) { + const result = cb(next); + if (result === false) { + break; + } + } else if (isComment(next)) { + if (next.data === "]") { + if (--depth === 0) break; + } else if (next.data === "[") { + depth++; + } + } + next = next.nextSibling; + } + } else { + cb(node); + } + } + + const isAsyncWrapper = (i) => !!i.type.__asyncLoader; + // @__NO_SIDE_EFFECTS__ + function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + hydrate: hydrateStrategy, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + __asyncHydrate(el, instance, hydrate) { + let patched = false; + (instance.bu || (instance.bu = [])).push(() => patched = true); + const performHydrate = () => { + if (patched) { + { + warn$1( + `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.` + ); + } + return; + } + hydrate(); + }; + const doHydrate = hydrateStrategy ? () => { + const teardown = hydrateStrategy( + performHydrate, + (cb) => forEachElement(el, cb) + ); + if (teardown) { + (instance.bum || (instance.bum = [])).push(teardown); + } + } : performHydrate; + if (resolvedComp) { + doHydrate(); + } else { + load().then(() => !instance.isUnmounted && doHydrate()); + } + }, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + markAsyncBoundary(instance); + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || false) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.update(); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createInnerComp( + loadingComponent, + instance + ); + } + }; + } + }); + } + function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; + } + + const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; + const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + namespace, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + invalidateMount(instance2.m); + invalidateMount(instance2.a); + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + { + instance2.__keepAliveStorageContainer = storageContainer; + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type + ); + if (name && !filter(name)) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (cached && (!current || !isSameVNodeType(cached, current))) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + if (isSuspense(instance.subTree.type)) { + queuePostRenderEffect(() => { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + }, instance.subTree.suspense); + } else { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return current = null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + { + warn$1(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + if (vnode.type === Comment) { + current = null; + return vnode; + } + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + vnode.shapeFlag &= -257; + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } + }; + const KeepAlive = KeepAliveImpl; + function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + pattern.lastIndex = 0; + return pattern.test(name); + } + return false; + } + function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); + } + function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); + } + function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } + } + function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); + } + function resetShapeFlag(vnode) { + vnode.shapeFlag &= -257; + vnode.shapeFlag &= -513; + } + function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; + } + + function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } + } + const createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } + }; + const onBeforeMount = createHook("bm"); + const onMounted = createHook("m"); + const onBeforeUpdate = createHook( + "bu" + ); + const onUpdated = createHook("u"); + const onBeforeUnmount = createHook( + "bum" + ); + const onUnmounted = createHook("um"); + const onServerPrefetch = createHook( + "sp" + ); + const onRenderTriggered = createHook("rtg"); + const onRenderTracked = createHook("rtc"); + function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); + } + + const COMPONENTS = "components"; + const DIRECTIVES = "directives"; + function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; + } + const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc"); + function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } + } + function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); + } + function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else { + warn$1( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } + } + function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); + } + + function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + const sourceIsArray = isArray(source); + if (sourceIsArray || isString(source)) { + const sourceIsReactiveArray = sourceIsArray && isReactive(source); + let needsWrap = false; + let isReadonlySource = false; + if (sourceIsReactiveArray) { + needsWrap = !isShallow(source); + isReadonlySource = isReadonly(source); + source = shallowReadArray(source); + } + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem( + needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], + i, + void 0, + cached && cached[i] + ); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source) || source < 0) { + warn$1( + `The v-for range expects a positive integer value but got ${source}.` + ); + ret = []; + } else { + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; + } + + function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; + } + + function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { + const hasProps = Object.keys(props).length > 0; + if (name !== "default") props.name = name; + return openBlock(), createBlock( + Fragment, + null, + [createVNode("slot", props, fallback && fallback())], + hasProps ? -2 : 64 + ); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key; + const rendered = createBlock( + Fragment, + { + key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content + (!validSlotContent && fallback ? "_fb" : "") + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; + } + function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; + } + + function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; + } + + const getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); + }; + const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => shallowReadonly(i.props) , + $attrs: (i) => shallowReadonly(i.attrs) , + $slots: (i) => shallowReadonly(i.slots) , + $refs: (i) => shallowReadonly(i.refs) , + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $host: (i) => i.ce, + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => { + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) + ); + const isReservedPrefix = (key) => key === "_" || key === "$"; + const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); + const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if (hasOwn(props, key)) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance.attrs, "get", ""); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn$1(`Cannot mutate + + + + + +
    +

    测试页面

    +

    Vue 已加载: {{ loaded }}

    + 测试按钮 +
    + + + \ No newline at end of file diff --git a/platform/backend/static/topics.html b/platform/backend/static/topics.html new file mode 100644 index 0000000..dc3d77d --- /dev/null +++ b/platform/backend/static/topics.html @@ -0,0 +1,306 @@ + + + + + + 宇之然内容创作平台 - 选题管理 + + + + +
    + +
    + +
    +
    +

    📋 选题管理

    +
    +
    + 🔄 批量刷新 + ▶ 批量创作 + 🔍 批量优化 + 已选 {{ selectedTopicIds.length }} 项 +
    +
    +
    + 全部 ({{ topics.length }}) + 待处理 ({{ countByStatus('pending') }}) + 待审查 ({{ countByStatus('review') }}) + 待发布 ({{ countByStatus('ready') }}) + 已发布 ({{ countByStatus('published') }}) +
    +
    + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    {{ topic.title }}
    + {{ topic.status }} +
    +
    + {{ topic.field }} + 合规{{ topic.compliance_score }} +
    +
    +
    创建: {{ formatDate(topic.created_at) }}
    +
    创作: {{ topic.generated_at ? formatDate(topic.generated_at) : '-' }}
    +
    发布: {{ topic.published_at ? formatDate(topic.published_at) : '-' }}
    +
    +
    + 预览 + 创作 + 审查 + 发布 + 删除 +
    +
    +
    + +
    +
    +
    +
    + +
    + + + + + + + \ No newline at end of file diff --git a/platform/backend/static/topics.html.bak b/platform/backend/static/topics.html.bak new file mode 100644 index 0000000..31bd478 --- /dev/null +++ b/platform/backend/static/topics.html.bak @@ -0,0 +1,415 @@ + + + + + + 宇之然内容创作平台 - 选题管理 + + + + + +
    + +
    + +
    +
    +

    📋 选题管理

    +
    +
    + 🔄 批量刷新 + ▶ 批量创作 + 🔍 批量优化 + 已选 {{ selectedTopicIds.length }} 项 +
    +
    +
    + 全部 ({{ topics.length }}) + 待处理 ({{ countByStatus('待处理') }}) + 待审查 ({{ countByStatus('待审查') }}) + 待发布 ({{ countByStatus('待发布') }}) + 已发布 ({{ countByStatus('已发布') }}) +
    +
    + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    {{ topic.title }}
    + {{ topic.status }} +
    +
    + {{ topic.field }} + 合规{{ topic.compliance_score }} +
    +
    +
    创建: {{ formatDate(topic.created_at) }}
    +
    创作: {{ topic.generated_at ? formatDate(topic.generated_at) : '-' }}
    +
    发布: {{ topic.published_at ? formatDate(topic.published_at) : '-' }}
    +
    +
    + 预览 + 创作 + 审查 + 发布 + 删除 +
    +
    +
    + +
    +
    +
    +
    + +
    + + + + + + + \ No newline at end of file diff --git a/platform/backend/static/topics.html.bak-1777375526 b/platform/backend/static/topics.html.bak-1777375526 new file mode 100644 index 0000000..93077ac --- /dev/null +++ b/platform/backend/static/topics.html.bak-1777375526 @@ -0,0 +1,430 @@ + + + + + + 宇之然内容创作平台 - 选题管理 + + + + + +
    + +
    + +
    +
    +

    📋 选题管理

    +
    +
    + 🔄 批量刷新 + ▶ 批量创作 + 🔍 批量优化 + 已选 {{ selectedTopicIds.length }} 项 +
    +
    +
    + 全部 ({{ topics.length }}) + 待处理 ({{ countByStatus('待处理') }}) + 待审查 ({{ countByStatus('待审查') }}) + 待发布 ({{ countByStatus('待发布') }}) + 已发布 ({{ countByStatus('已发布') }}) +
    +
    + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    {{ topic.title }}
    + {{ topic.status }} +
    +
    + {{ topic.field }} + 合规{{ topic.compliance_score }} +
    +
    +
    创建: {{ formatDate(topic.created_at) }}
    +
    创作: {{ topic.generated_at ? formatDate(topic.generated_at) : '-' }}
    +
    发布: {{ topic.published_at ? formatDate(topic.published_at) : '-' }}
    +
    +
    + 预览 + 创作 + 审查 + 发布 + 删除 +
    +
    +
    + +
    +
    +
    +
    + +
    + + + + + + + \ No newline at end of file diff --git a/platform/backend/static/topics.html.bak-1936 b/platform/backend/static/topics.html.bak-1936 new file mode 100644 index 0000000..6c2c820 --- /dev/null +++ b/platform/backend/static/topics.html.bak-1936 @@ -0,0 +1,430 @@ + + + + + + 宇之然内容创作平台 - 选题管理 + + + + + +
    + +
    + +
    +
    +

    📋 选题管理

    +
    +
    + 🔄 批量刷新 + ▶ 批量创作 + 🔍 批量优化 + 已选 {{ selectedTopicIds.length }} 项 +
    +
    +
    + 全部 ({{ topics.length }}) + 待处理 ({{ countByStatus('待处理') }}) + 待审查 ({{ countByStatus('待审查') }}) + 待发布 ({{ countByStatus('待发布') }}) + 已发布 ({{ countByStatus('已发布') }}) +
    +
    + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    {{ topic.title }}
    + {{ topic.status }} +
    +
    + {{ topic.field }} + 合规{{ topic.compliance_score }} +
    +
    +
    创建: {{ formatDate(topic.created_at) }}
    +
    创作: {{ topic.generated_at ? formatDate(topic.generated_at) : '-' }}
    +
    发布: {{ topic.published_at ? formatDate(topic.published_at) : '-' }}
    +
    +
    + 预览 + 创作 + 审查 + 发布 + 删除 +
    +
    +
    + +
    +
    +
    +
    + +
    + + + + + + + \ No newline at end of file diff --git a/platform/backend/static/topics.html.bak-1937 b/platform/backend/static/topics.html.bak-1937 new file mode 100644 index 0000000..e69de29 diff --git a/platform/backend/static/topics.html.bak2 b/platform/backend/static/topics.html.bak2 new file mode 100644 index 0000000..5d35045 --- /dev/null +++ b/platform/backend/static/topics.html.bak2 @@ -0,0 +1,446 @@ + + + + + 宇之然内容创作平台 - 选题管理 + + + + + +
    + +
    + +
    +
    +

    📋 选题管理

    +
    +
    + 🔄 批量刷新 + ▶ 批量创作 + 🔍 批量优化 + 已选 {{ selectedTopicIds.length }} 项 +
    +
    +
    + 全部 ({{ topics.length }}) + 待处理 ({{ countByStatus('待处理') }}) + 待审查 ({{ countByStatus('待审查') }}) + 待发布 ({{ countByStatus('待发布') }}) + 已发布 ({{ countByStatus('已发布') }}) +
    +
    + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    {{ topic.title }}
    + {{ topic.status }} +
    +
    + {{ topic.field }} + 合规{{ topic.compliance_score }} +
    +
    +
    创建: {{ formatDate(topic.created_at) }}
    +
    创作: {{ topic.generated_at ? formatDate(topic.generated_at) : '-' }}
    +
    发布: {{ topic.published_at ? formatDate(topic.published_at) : '-' }}
    +
    +
    + 预览 + 创作 + 审查 + 发布 + 删除 +
    +
    +
    + +
    +
    +
    +
    + +
    + + + + + + + \ No newline at end of file diff --git a/platform/backend/static/topics_vue3.html b/platform/backend/static/topics_vue3.html new file mode 100644 index 0000000..6c2c820 --- /dev/null +++ b/platform/backend/static/topics_vue3.html @@ -0,0 +1,430 @@ + + + + + + 宇之然内容创作平台 - 选题管理 + + + + + +
    + +
    + +
    +
    +

    📋 选题管理

    +
    +
    + 🔄 批量刷新 + ▶ 批量创作 + 🔍 批量优化 + 已选 {{ selectedTopicIds.length }} 项 +
    +
    +
    + 全部 ({{ topics.length }}) + 待处理 ({{ countByStatus('待处理') }}) + 待审查 ({{ countByStatus('待审查') }}) + 待发布 ({{ countByStatus('待发布') }}) + 已发布 ({{ countByStatus('已发布') }}) +
    +
    + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    {{ topic.title }}
    + {{ topic.status }} +
    +
    + {{ topic.field }} + 合规{{ topic.compliance_score }} +
    +
    +
    创建: {{ formatDate(topic.created_at) }}
    +
    创作: {{ topic.generated_at ? formatDate(topic.generated_at) : '-' }}
    +
    发布: {{ topic.published_at ? formatDate(topic.published_at) : '-' }}
    +
    +
    + 预览 + 创作 + 审查 + 发布 + 删除 +
    +
    +
    + +
    +
    +
    +
    + +
    + + + + + + + \ No newline at end of file diff --git a/platform/backend/static/users.html b/platform/backend/static/users.html new file mode 100644 index 0000000..cf87dfa --- /dev/null +++ b/platform/backend/static/users.html @@ -0,0 +1,170 @@ + + + + + + 宇之然内容创作平台 - 用户管理 + + + + +
    + +
    + +
    +
    +

    👥 用户管理

    +
    +

    用户列表

    + + 新建用户 +
    + + + + + + + + + + + +
    +
    +
    + +
    + + + + + \ No newline at end of file diff --git a/platform/backend/static/vue-test.html b/platform/backend/static/vue-test.html new file mode 100644 index 0000000..36b560a --- /dev/null +++ b/platform/backend/static/vue-test.html @@ -0,0 +1,61 @@ + + + + + + + Vue基础测试 + + + + + +
    +

    {{ title }}

    + +
    +

    数据绑定测试

    +

    当前计数: {{ count }}

    + +
    + +
    +

    列表渲染测试

    +
      +
    • {{ item }}
    • +
    +
    + +
    +

    条件渲染测试

    +

    ✅ Vue基础功能正常工作!

    + +
    +
    + + + + diff --git a/platform/backend/static/vue.global.prod.js b/platform/backend/static/vue.global.prod.js new file mode 100644 index 0000000..976472b --- /dev/null +++ b/platform/backend/static/vue.global.prod.js @@ -0,0 +1,13 @@ +/** +* vue v3.5.32 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/var Vue=function(e){"use strict";var t,n,r;let i,l,s,o,a,c,u,h,d,p,f,g,m;function y(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let b={},_=[],S=()=>{},x=()=>!1,C=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),k=e=>e.startsWith("onUpdate:"),T=Object.assign,w=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},N=Object.prototype.hasOwnProperty,A=(e,t)=>N.call(e,t),E=Array.isArray,I=e=>"function"==typeof e,R=e=>"string"==typeof e,O=e=>"symbol"==typeof e,M=e=>null!==e&&"object"==typeof e,P=e=>(M(e)||I(e))&&I(e.then)&&I(e.catch),F=Object.prototype.toString,L=e=>R(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,$=y(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),D=y("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),V=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},B=/-\w/g,j=V(e=>e.replace(B,e=>e.slice(1).toUpperCase())),U=/\B([A-Z])/g,H=V(e=>e.replace(U,"-$1").toLowerCase()),q=V(e=>e.charAt(0).toUpperCase()+e.slice(1)),W=V(e=>e?`on${q(e)}`:""),K=(e,t)=>!Object.is(e,t),z=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},G=e=>{let t=parseFloat(e);return isNaN(t)?e:t},X=e=>{let t=R(e)?Number(e):NaN;return isNaN(t)?e:t},Q=()=>i||(i="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{}),Z=y("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function Y(e){if(E(e)){let t={};for(let n=0;n{if(e){let n=e.split(et);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ei(e){let t="";if(R(e))t=e;else if(E(e))for(let n=0;neu(e,t))}let ed=e=>!!(e&&!0===e.__v_isRef),ep=e=>R(e)?e:null==e?"":E(e)||M(e)&&(e.toString===F||!I(e.toString))?ed(e)?ep(e.value):JSON.stringify(e,ef,2):String(e),ef=(e,t)=>{let n;if(ed(t))return ef(e,t.value);if("[object Map]"===(n=t,F.call(n)))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[eg(t,r)+" =>"]=n,e),{})};{let e;if("[object Set]"===(e=t,F.call(e)))return{[`Set(${t.size})`]:[...t.values()].map(e=>eg(e))};else{if(O(t))return eg(t);let e;if(M(t)&&!E(t)&&"[object Object]"!==(e=t,F.call(e)))return String(t)}}return t},eg=(e,t="")=>{var n;return O(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class em{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=l,!e&&l&&(this.index=(l.scopes||(l.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0==--this._on&&(l=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t0)){if(a){let e=a;for(a=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;o;){let t=o;for(o=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function ex(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eC(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),ew(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function ek(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eT(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function eT(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eO)||(e.globalVersion=eO,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!ek(e))))return;e.flags|=2;let t=e.dep,n=s,r=eN;s=e,eN=!0;try{ex(e);let n=e.fn(e._value);(0===t.version||K(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{s=n,eN=r,eC(e),e.flags&=-3}}function ew(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)ew(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let eN=!0,eA=[];function eE(){eA.push(eN),eN=!1}function eI(){let e=eA.pop();eN=void 0===e||e}function eR(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=s;s=void 0;try{t()}finally{s=e}}}let eO=0;class eM{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}}class eP{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(!s||!eN||s===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==s)t=this.activeLink=new eM(s,this),s.deps?(t.prevDep=s.depsTail,s.depsTail.nextDep=t,s.depsTail=t):s.deps=s.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=s.depsTail,t.nextDep=void 0,s.depsTail.nextDep=t,s.depsTail=t,s.deps===t&&(s.deps=e)}return t}trigger(e){this.version++,eO++,this.notify(e)}notify(e){eb++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{eS()}}}let eF=new WeakMap,eL=Symbol(""),e$=Symbol(""),eD=Symbol("");function eV(e,t,n){if(eN&&s){let t=eF.get(e);t||eF.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new eP),r.map=t,r.key=n),r.track()}}function eB(e,t,n,r,i,l){let s=eF.get(e);if(!s)return void eO++;let o=e=>{e&&e.trigger()};if(eb++,"clear"===t)s.forEach(o);else{let i=E(e),l=i&&L(n);if(i&&"length"===n){let e=Number(r);s.forEach((t,n)=>{("length"===n||n===eD||!O(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),l&&o(s.get(eD)),t){case"add":if(i)l&&o(s.get("length"));else{let t;o(s.get(eL));"[object Map]"===(t=e,F.call(t))&&o(s.get(e$))}break;case"delete":if(!i){let t;o(s.get(eL));"[object Map]"===(t=e,F.call(t))&&o(s.get(e$))}break;case"set":let a;"[object Map]"===(a=e,F.call(a))&&o(s.get(eL))}}eS()}function ej(e){let t=tm(e);return t===e?t:(eV(t,"iterate",eD),tf(e)?t:t.map(ty))}function eU(e){return eV(e=tm(e),"iterate",eD),e}function eH(e,t){return tp(e)?td(e)?tb(ty(t)):tb(t):ty(t)}let eq={__proto__:null,[Symbol.iterator](){return eW(this,Symbol.iterator,e=>eH(this,e))},concat(...e){return ej(this).concat(...e.map(e=>E(e)?ej(e):e))},entries(){return eW(this,"entries",e=>(e[1]=eH(this,e[1]),e))},every(e,t){return ez(this,"every",e,t,void 0,arguments)},filter(e,t){return ez(this,"filter",e,t,e=>e.map(e=>eH(this,e)),arguments)},find(e,t){return ez(this,"find",e,t,e=>eH(this,e),arguments)},findIndex(e,t){return ez(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ez(this,"findLast",e,t,e=>eH(this,e),arguments)},findLastIndex(e,t){return ez(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ez(this,"forEach",e,t,void 0,arguments)},includes(...e){return eG(this,"includes",e)},indexOf(...e){return eG(this,"indexOf",e)},join(e){return ej(this).join(e)},lastIndexOf(...e){return eG(this,"lastIndexOf",e)},map(e,t){return ez(this,"map",e,t,void 0,arguments)},pop(){return eX(this,"pop")},push(...e){return eX(this,"push",e)},reduce(e,...t){return eJ(this,"reduce",e,t)},reduceRight(e,...t){return eJ(this,"reduceRight",e,t)},shift(){return eX(this,"shift")},some(e,t){return ez(this,"some",e,t,void 0,arguments)},splice(...e){return eX(this,"splice",e)},toReversed(){return ej(this).toReversed()},toSorted(e){return ej(this).toSorted(e)},toSpliced(...e){return ej(this).toSpliced(...e)},unshift(...e){return eX(this,"unshift",e)},values(){return eW(this,"values",e=>eH(this,e))}};function eW(e,t,n){let r=eU(e),i=r[t]();return r===e||tf(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}let eK=Array.prototype;function ez(e,t,n,r,i,l){let s=eU(e),o=s!==e&&!tf(e),a=s[t];if(a!==eK[t]){let t=a.apply(e,l);return o?ty(t):t}let c=n;s!==e&&(o?c=function(t,r){return n.call(this,eH(e,t),r,e)}:n.length>2&&(c=function(t,r){return n.call(this,t,r,e)}));let u=a.call(s,c,r);return o&&i?i(u):u}function eJ(e,t,n,r){let i=eU(e),l=i!==e&&!tf(e),s=n,o=!1;i!==e&&(l?(o=0===r.length,s=function(t,r,i){return o&&(o=!1,t=eH(e,t)),n.call(this,t,eH(e,r),i,e)}):n.length>3&&(s=function(t,r,i){return n.call(this,t,r,i,e)}));let a=i[t](s,...r);return o?eH(e,a):a}function eG(e,t,n){let r=tm(e);eV(r,"iterate",eD);let i=r[t](...n);return(-1===i||!1===i)&&tg(n[0])?(n[0]=tm(n[0]),r[t](...n)):i}function eX(e,t,n=[]){eE(),eb++;let r=tm(e)[t].apply(e,n);return eS(),eI(),r}let eQ=y("__proto__,__v_isRef,__isVue"),eZ=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(O));function eY(e){O(e)||(e=String(e));let t=tm(this);return eV(t,"has",e),t.hasOwnProperty(e)}class e0{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;if("__v_raw"===t)return n===(r?i?to:ts:i?tl:ti).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let l=E(e);if(!r){let e;if(l&&(e=eq[t]))return e;if("hasOwnProperty"===t)return eY}let s=Reflect.get(e,t,t_(e)?e:n);if((O(t)?eZ.has(t):eQ(t))||(r||eV(e,"get",t),i))return s;if(t_(s)){let e=l&&L(t)?s:s.value;return r&&M(e)?tu(e):e}return M(s)?r?tu(s):ta(s):s}}class e1 extends e0{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],l=E(e)&&L(t);if(!this._isShallow){let e=tp(i);if(tf(n)||tp(n)||(i=tm(i),n=tm(n)),!l&&t_(i)&&!t_(n))if(e)return!0;else return i.value=n,!0}let s=l?Number(t)e;function e9(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function e7(e,t){let n,r=(T(n={get(n){let r=this.__v_raw,i=tm(r),l=tm(n);e||(K(n,l)&&eV(i,"get",n),eV(i,"get",l));let{has:s}=Reflect.getPrototypeOf(i),o=t?e5:e?tb:ty;return s.call(i,n)?o(r.get(n)):s.call(i,l)?o(r.get(l)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||eV(tm(t),"iterate",eL),t.size},has(t){let n=this.__v_raw,r=tm(n),i=tm(t);return e||(K(t,i)&&eV(r,"has",t),eV(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,l=i.__v_raw,s=tm(l),o=t?e5:e?tb:ty;return e||eV(s,"iterate",eL),l.forEach((e,t)=>n.call(r,o(e),o(t),i))}},e?{add:e9("add"),set:e9("set"),delete:e9("delete"),clear:e9("clear")}:{add(e){let n=tm(this),r=Reflect.getPrototypeOf(n),i=tm(e),l=t||tf(e)||tp(e)?e:i;return r.has.call(n,l)||K(e,l)&&r.has.call(n,e)||K(i,l)&&r.has.call(n,i)||(n.add(l),eB(n,"add",l,l)),this},set(e,n){t||tf(n)||tp(n)||(n=tm(n));let r=tm(this),{has:i,get:l}=Reflect.getPrototypeOf(r),s=i.call(r,e);s||(e=tm(e),s=i.call(r,e));let o=l.call(r,e);return r.set(e,n),s?K(n,o)&&eB(r,"set",e,n):eB(r,"add",e,n),this},delete(e){let t=tm(this),{has:n,get:r}=Reflect.getPrototypeOf(t),i=n.call(t,e);i||(e=tm(e),i=n.call(t,e)),r&&r.call(t,e);let l=t.delete(e);return i&&eB(t,"delete",e,void 0),l},clear(){let e=tm(this),t=0!==e.size,n=e.clear();return t&&eB(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i,l=this.__v_raw,s=tm(l),o="[object Map]"===(i=s,F.call(i)),a="entries"===r||r===Symbol.iterator&&o,c=l[r](...n),u=t?e5:e?tb:ty;return e||eV(s,"iterate","keys"===r&&o?e$:eL),T(Object.create(c),{next(){let{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:a?[u(e[0]),u(e[1])]:u(e),done:t}}})}}),n);return(t,n,i)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(A(r,n)&&n in t?r:t,n,i)}let te={get:e7(!1,!1)},tt={get:e7(!1,!0)},tn={get:e7(!0,!1)},tr={get:e7(!0,!0)},ti=new WeakMap,tl=new WeakMap,ts=new WeakMap,to=new WeakMap;function ta(e){return tp(e)?e:th(e,!1,e6,te,ti)}function tc(e){return th(e,!1,e4,tt,tl)}function tu(e){return th(e,!0,e3,tn,ts)}function th(e,t,n,r,i){var l;let s;if(!M(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=(l=e).__v_skip||!Object.isExtensible(l)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((s=l,F.call(s)).slice(8,-1));if(0===o)return e;let a=i.get(e);if(a)return a;let c=new Proxy(e,2===o?r:n);return i.set(e,c),c}function td(e){return tp(e)?td(e.__v_raw):!!(e&&e.__v_isReactive)}function tp(e){return!!(e&&e.__v_isReadonly)}function tf(e){return!!(e&&e.__v_isShallow)}function tg(e){return!!e&&!!e.__v_raw}function tm(e){let t=e&&e.__v_raw;return t?tm(t):e}function tv(e){return!A(e,"__v_skip")&&Object.isExtensible(e)&&J(e,"__v_skip",!0),e}let ty=e=>M(e)?ta(e):e,tb=e=>M(e)?tu(e):e;function t_(e){return!!e&&!0===e.__v_isRef}function tS(e){return tC(e,!1)}function tx(e){return tC(e,!0)}function tC(e,t){return t_(e)?e:new tk(e,t)}class tk{constructor(e,t){this.dep=new eP,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:tm(e),this._value=t?e:ty(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tf(e)||tp(e);K(e=n?e:tm(e),t)&&(this._rawValue=e,this._value=n?e:ty(e),this.dep.trigger())}}function tT(e){return t_(e)?e.value:e}let tw={get:(e,t,n)=>"__v_raw"===t?e:tT(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return t_(i)&&!t_(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tN(e){return td(e)?e:new Proxy(e,tw)}class tA{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new eP,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tE(e){return new tA(e)}class tI{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=O(t)?t:String(t),this._raw=tm(e);let r=!0,i=e;if(!E(e)||O(this._key)||!L(this._key))do r=!tg(i)||tf(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=tT(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&t_(this._raw[this._key])){let t=this._object[this._key];if(t_(t)){t.value=e;return}}this._object[this._key]=e}get dep(){var e,t;let n;return e=this._raw,t=this._key,(n=eF.get(e))&&n.get(t)}}class tR{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}class tO{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eP(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eO-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&s!==this)return e_(this,!0),!0}get value(){let e=this.dep.track();return eT(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tM={},tP=new WeakMap;function tF(e,t=!1,n=g){if(n){let t=tP.get(n);t||tP.set(n,t=[]),t.push(e)}}function tL(e,t=1/0,n){if(t<=0||!M(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,t_(e))tL(e.value,t,n);else if(E(e))for(let r=0;r{tL(e,t,n)});else{let r;if("[object Object]"===(r=e,F.call(r))){for(let r in e)tL(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&tL(e[r],t,n)}}}return e}function t$(e,t,n,r){try{return r?e(...r):e()}catch(e){tV(e,t,n)}}function tD(e,t,n,r){if(I(e)){let i=t$(e,t,n,r);return i&&P(i)&&i.catch(e=>{tV(e,t,n)}),i}if(E(e)){let i=[];for(let l=0;l=tY(n)?tB.push(e):tB.splice(function(e){let t=tj+1,n=tB.length;for(;t>>1,i=tB[r],l=tY(i);ltY(e)-tY(t));if(tU.length=0,tH)return void tH.push(...e);for(tq=0,tH=e;tqnull==e.id?2&e.flags?-1:1/0:e.id,t0=null,t1=null;function t2(e){let t=t0;return t0=e,t1=e&&e.type.__scopeId||null,t}function t6(e,t=t0,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&il(-1);let l=t2(t);try{i=e(...n)}finally{t2(l),r._d&&il(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function t3(e,t,n,r){let i=e.dirs,l=t&&t.dirs;for(let s=0;s1)return n&&I(t)?t.call(r&&r.proxy):t}}let t5=Symbol.for("v-scx");function t9(e,t){return t7(e,null,{flush:"sync"})}function t7(e,t,n=b){let{flush:r}=n,i=T({},n),s=iT;i.call=(e,t,n)=>tD(e,s,t,n);let o=!1;return"post"===r?i.scheduler=e=>{rq(e,s&&s.suspense)}:"sync"!==r&&(o=!0,i.scheduler=(e,t)=>{t?e():tJ(e)}),i.augmentJob=e=>{t&&(e.flags|=4),o&&(e.flags|=2,s&&(e.id=s.uid,e.i=s))},function(e,t,n=b){let r,i,s,o,{immediate:a,deep:c,once:u,scheduler:h,augmentJob:d,call:p}=n,f=e=>c?e:tf(e)||!1===c||0===c?tL(e,1):tL(e),m=!1,y=!1;if(t_(e)?(i=()=>e.value,m=tf(e)):td(e)?(i=()=>f(e),m=!0):E(e)?(y=!0,m=e.some(e=>td(e)||tf(e)),i=()=>e.map(e=>t_(e)?e.value:td(e)?f(e):I(e)?p?p(e,2):e():void 0)):i=I(e)?t?p?()=>p(e,2):e:()=>{if(s){eE();try{s()}finally{eI()}}let t=g;g=r;try{return p?p(e,3,[o]):e(o)}finally{g=t}}:S,t&&c){let e=i,t=!0===c?1/0:c;i=()=>tL(e(),t)}let _=l,x=()=>{r.stop(),_&&_.active&&w(_.effects,r)};if(u&&t){let e=t;t=(...t)=>{e(...t),x()}}let C=y?Array(e.length).fill(tM):tM,k=e=>{if(1&r.flags&&(r.dirty||e))if(t){let e=r.run();if(c||m||(y?e.some((e,t)=>K(e,C[t])):K(e,C))){s&&s();let n=g;g=r;try{let n=[e,C===tM?void 0:y&&C[0]===tM?[]:C,o];C=e,p?p(t,3,n):t(...n)}finally{g=n}}}else r.run()};return d&&d(k),(r=new ey(i)).scheduler=h?()=>h(k,!1):k,o=e=>tF(e,!1,r),s=r.onStop=()=>{let e=tP.get(r);if(e){if(p)p(e,4);else for(let t of e)t();tP.delete(r)}},t?a?k(!0):C=r.run():h?h(k.bind(null,!0),!0):r.run(),x.pause=r.pause.bind(r),x.resume=r.resume.bind(r),x.stop=x,x}(e,t,i)}function ne(e,t,n){let r,i=this.proxy,l=R(e)?e.includes(".")?nt(i,e):()=>i[e]:e.bind(i,i);I(t)?r=t:(r=t.handler,n=t);let s=iN(this),o=t7(l,r.bind(i),n);return s(),o}function nt(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;ee&&(e.disabled||""===e.disabled),nl=e=>"u">typeof SVGElement&&e instanceof SVGElement,ns=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,no=(e,t)=>{let n=e&&e.to;return R(n)?t?t(n):null:n};function na(e,t,n,{o:{insert:r},m:i},l=2){0===l&&r(e.targetAnchor,t,n);let{el:s,anchor:o,shapeFlag:a,children:c,props:u}=e,h=2===l;if(h&&r(s,t,n),(!h||ni(u))&&16&a)for(let e=0;e{e.isMounted=!0}),n2(()=>{e.isUnmounting=!0}),e}let nf=[Function,Array],ng={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:nf,onEnter:nf,onAfterEnter:nf,onEnterCancelled:nf,onBeforeLeave:nf,onLeave:nf,onAfterLeave:nf,onLeaveCancelled:nf,onBeforeAppear:nf,onAppear:nf,onAfterAppear:nf,onAppearCancelled:nf},nm=e=>{let t=e.subTree;return t.component?nm(t.component):t};function nv(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==r5){t=n;break}}return t}let ny={name:"BaseTransition",props:ng,setup(e,{slots:t}){let n=iw(),r=np();return()=>{let i=t.default&&nk(t.default(),!0);if(!i||!i.length)return;let l=nv(i),s=tm(e),{mode:o}=s;if(r.isLeaving)return nS(l);let a=nx(l);if(!a)return nS(l);let c=n_(a,s,r,n,e=>c=e);a.type!==r5&&nC(a,c);let u=n.subTree&&nx(n.subTree);if(u&&u.type!==r5&&!ic(u,a)&&nm(n).type!==r5){let e=n_(u,s,r,n);if(nC(u,e),"out-in"===o&&a.type!==r5)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,u=void 0},nS(l);"in-out"===o&&a.type!==r5?e.delayLeave=(e,t,n)=>{nb(r,u)[String(u.key)]=u,e[nh]=()=>{t(),e[nh]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{n(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return l}}};function nb(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function n_(e,t,n,r,i){let{appear:l,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:h,onBeforeLeave:d,onLeave:p,onAfterLeave:f,onLeaveCancelled:g,onBeforeAppear:m,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,S=String(e.key),x=nb(n,e),C=(e,t)=>{e&&tD(e,r,9,t)},k=(e,t)=>{let n=t[1];C(e,t),E(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:s,persisted:o,beforeEnter(t){let r=a;if(!n.isMounted)if(!l)return;else r=m||a;t[nh]&&t[nh](!0);let i=x[S];i&&ic(e,i)&&i.el[nh]&&i.el[nh](),C(r,[t])},enter(t){if(x[S]===e)return;let r=c,i=u,s=h;if(!n.isMounted)if(!l)return;else r=y||c,i=b||u,s=_||h;let o=!1;t[nd]=e=>{o||(o=!0,e?C(s,[t]):C(i,[t]),T.delayedLeave&&T.delayedLeave(),t[nd]=void 0)};let a=t[nd].bind(null,!1);r?k(r,[t,a]):a()},leave(t,r){let i=String(e.key);if(t[nd]&&t[nd](!0),n.isUnmounting)return r();C(d,[t]);let l=!1;t[nh]=n=>{l||(l=!0,r(),n?C(g,[t]):C(f,[t]),t[nh]=void 0,x[i]===e&&delete x[i])};let s=t[nh].bind(null,!1);x[i]=e,p?k(p,[t,s]):s()},clone(e){let l=n_(e,t,n,r,i);return i&&i(l),l}};return T}function nS(e){if(nH(e))return(e=im(e)).children=null,e}function nx(e){if(!nH(e))return e.type.__isTeleport&&e.children?nv(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&I(n.default))return n.default()}}function nC(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nC(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nk(e,t=!1,n){let r=[],i=0;for(let l=0;l1)for(let e=0;enE(e,t&&(E(t)?t[l]:t),n,r,i));if(nj(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&nE(e,t,n,r.component.subTree);return}let l=4&r.shapeFlag?iL(r.component):r.el,s=i?null:l,{i:o,r:a}=e,c=t&&t.r,u=o.refs===b?o.refs={}:o.refs,h=o.setupState,d=tm(h),p=h===b?x:e=>!nN(u,e)&&A(d,e),f=(e,t)=>!(t&&nN(u,t));if(null!=c&&c!==a&&(nI(t),R(c)?(u[c]=null,p(c)&&(h[c]=null)):t_(c)&&(f(c,t.k)&&(c.value=null),t.k&&(u[t.k]=null))),I(a))t$(a,o,12,[s,u]);else{let t=R(a),r=t_(a);if(t||r){let o=()=>{if(e.f){let n=t?p(a)?h[a]:u[a]:f()||!e.k?a.value:u[e.k];if(i)E(n)&&w(n,l);else if(E(n))n.includes(l)||n.push(l);else if(t)u[a]=[l],p(a)&&(h[a]=u[a]);else{let t=[l];f(a,e.k)&&(a.value=t),e.k&&(u[e.k]=t)}}else t?(u[a]=s,p(a)&&(h[a]=s)):r&&(f(a,e.k)&&(a.value=s),e.k&&(u[e.k]=s))};if(s){let t=()=>{o(),nA.delete(e)};t.id=-1,nA.set(e,t),rq(t,n)}else nI(e),o()}}}function nI(e){let t=nA.get(e);t&&(t.flags|=8,nA.delete(e))}let nR=!1,nO=()=>{nR||(console.error("Hydration completed but contains mismatches."),nR=!0)},nM=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},nP=e=>8===e.nodeType;function nF(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:l,parentNode:s,remove:o,insert:a,createComment:c}}=e,u=(n,r,o,c,b,_=!1)=>{_=_||!!r.dynamicChildren;let S=nP(n)&&"["===n.data,x=()=>f(n,r,o,c,b,S),{type:C,ref:k,shapeFlag:T,patchFlag:w}=r,N=n.nodeType;r.el=n,-2===w&&(_=!1,r.dynamicChildren=null);let A=null;switch(C){case r8:3!==N?""===r.children?(a(r.el=i(""),s(n),n),A=n):A=x():(n.data!==r.children&&(nO(),n.data=r.children),A=l(n));break;case r5:y(n)?(A=l(n),m(r.el=n.content.firstChild,n,o)):A=8!==N||S?x():l(n);break;case r9:if(S&&(N=(n=l(n)).nodeType),1===N||3===N){A=n;let e=!r.children.length;for(let t=0;t{s=s||!!t.dynamicChildren;let{type:a,props:c,patchFlag:u,shapeFlag:h,dirs:p,transition:f}=t,g="input"===a||"option"===a;if(g||-1!==u){let a;p&&t3(t,null,n,"created");let b=!1;if(y(e)){b=rG(null,f)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(b){let e=r.getAttribute("class");e&&(r.$cls=e),f.beforeEnter(r)}m(r,e,n),t.el=e=r}if(16&h&&!(c&&(c.innerHTML||c.textContent))){let r=d(e.firstChild,t,e,n,i,l,s);for(;r;){nD(e,1)||nO();let t=r;r=r.nextSibling,o(t)}}else if(8&h){let n=t.children;` +`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1));let{textContent:r}=e;r!==n&&r!==n.replace(/\r\n|\r/g,` +`)&&(nD(e,0)||nO(),e.textContent=t.children)}if(c){if(g||!s||48&u){let t=e.tagName.includes("-");for(let i in c)(g&&(i.endsWith("value")||"indeterminate"===i)||C(i)&&!$(i)||"."===i[0]||t&&!$(i))&&r(e,i,null,c[i],void 0,n)}else if(c.onClick)r(e,"onClick",null,c.onClick,void 0,n);else if(4&u&&td(c.style))for(let e in c.style)c.style[e]}(a=c&&c.onVnodeBeforeMount)&&ix(a,n,t),p&&t3(t,null,n,"beforeMount"),((a=c&&c.onVnodeMounted)||p||b)&&r6(()=>{a&&ix(a,n,t),b&&f.enter(e),p&&t3(t,null,n,"mounted")},i)}return e.nextSibling},d=(e,t,r,s,o,c,h)=>{h=h||!!t.dynamicChildren;let d=t.children,p=d.length;for(let t=0;t{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let h=s(e),p=d(l(e),t,h,n,r,i,o);return p&&nP(p)&&"]"===p.data?l(t.anchor=p):(nO(),a(t.anchor=c("]"),h,p),p)},f=(e,t,r,i,a,c)=>{if(nD(e.parentElement,1)||nO(),t.el=null,c){let t=g(e);for(;;){let n=l(e);if(n&&n!==t)o(n);else break}}let u=l(e),h=s(e);return o(e),n(null,t,h,u,r,i,nM(h),a),r&&(r.vnode.el=t.el,rR(r,t.el)),u},g=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=l(e))&&nP(e)&&(e.data===t&&r++,e.data===n))if(0===r)return l(e);else r--;return e},m=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),tZ(),t._vnode=e;return}u(t.firstChild,e,null,null,null),tZ(),t._vnode=e},u]}let nL="data-allow-mismatch",n$={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function nD(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nL);)e=e.parentElement;let n=e&&e.getAttribute(nL);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(n$[t])}}let nV=Q().requestIdleCallback||(e=>setTimeout(e,1)),nB=Q().cancelIdleCallback||(e=>clearTimeout(e)),nj=e=>!!e.type.__asyncLoader;function nU(e,t){let{ref:n,props:r,children:i,ce:l}=t.vnode,s=ip(e,r,i);return s.ref=n,s.ce=l,delete t.vnode.ce,s}let nH=e=>e.type.__isKeepAlive;function nq(e,t){let n;if(E(e))return e.some(e=>nq(e,t));if(R(e))return e.split(",").includes(t);return"[object RegExp]"===(n=e,F.call(n))&&(e.lastIndex=0,e.test(t))}function nW(e,t){nz(e,"a",t)}function nK(e,t){nz(e,"da",t)}function nz(e,t,n=iT){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(nX(t,r,n),n){let e=n.parent;for(;e&&e.parent;)nH(e.parent.vnode)&&function(e,t,n,r){let i=nX(t,e,r,!0);n6(()=>{w(r[t],i)},n)}(r,t,n,e),e=e.parent}}function nJ(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function nG(e){return 128&e.shapeFlag?e.ssContent:e}function nX(e,t,n=iT,r=!1){if(n){let i=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...r)=>{eE();let i=iN(n),l=tD(t,n,e,r);return i(),eI(),l});return r?i.unshift(l):i.push(l),l}}let nQ=e=>(t,n=iT)=>{iI&&"sp"!==e||nX(e,(...e)=>t(...e),n)},nZ=nQ("bm"),nY=nQ("m"),n0=nQ("bu"),n1=nQ("u"),n2=nQ("bum"),n6=nQ("um"),n3=nQ("sp"),n4=nQ("rtg"),n8=nQ("rtc");function n5(e,t=iT){nX("ec",e,t)}let n9="components",n7=Symbol.for("v-ndc");function re(e,t,n=!0,r=!1){let i=t0||iT;if(i){let n=i.type;if(e===n9){let e=i$(n,!1);if(e&&(e===t||e===j(t)||e===q(j(t))))return n}let l=rt(i[e]||n[e],t)||rt(i.appContext[e],t);return!l&&r?n:l}}function rt(e,t){return e&&(e[t]||e[j(t)]||e[q(j(t))])}let rn=e=>e?iE(e)?iL(e):rn(e.parent):null,rr=T(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=>rn(e.parent),$root:e=>rn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>rh(e),$forceUpdate:e=>e.f||(e.f=()=>{tJ(e.update)}),$nextTick:e=>e.n||(e.n=tz.bind(e.proxy)),$watch:e=>ne.bind(e)}),ri=(e,t)=>e!==b&&!e.__isScriptSetup&&A(e,t),rl={get({_:e},t){let n,r;if("__v_skip"===t)return!0;let{ctx:i,setupState:l,data:s,props:o,accessCache:a,type:c,appContext:u}=e;if("$"!==t[0]){let e=a[t];if(void 0!==e)switch(e){case 1:return l[t];case 2:return s[t];case 4:return i[t];case 3:return o[t]}else{if(ri(l,t))return a[t]=1,l[t];if(s!==b&&A(s,t))return a[t]=2,s[t];if(A(o,t))return a[t]=3,o[t];if(i!==b&&A(i,t))return a[t]=4,i[t];rc&&(a[t]=0)}}let h=rr[t];return h?("$attrs"===t&&eV(e.attrs,"get",""),h(e)):(n=c.__cssModules)&&(n=n[t])?n:i!==b&&A(i,t)?(a[t]=4,i[t]):A(r=u.config.globalProperties,t)?r[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:l}=e;return ri(i,t)?(i[t]=n,!0):r!==b&&A(r,t)?(r[t]=n,!0):!A(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:l,type:s}},o){let a;return!!(n[o]||e!==b&&"$"!==o[0]&&A(e,o)||ri(t,o)||A(l,o)||A(r,o)||A(rr,o)||A(i.config.globalProperties,o)||(a=s.__cssModules)&&a[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:A(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},rs=T({},rl,{get(e,t){if(t!==Symbol.unscopables)return rl.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!Z(t)});function ro(e){let t=iw();return t.setupContext||(t.setupContext=iF(t))}function ra(e){return E(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let rc=!0;function ru(e,t,n){tD(E(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function rh(e){let t,n=e.type,{mixins:r,extends:i}=n,{mixins:l,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:l.length||r||i?(t={},l.length&&l.forEach(e=>rd(t,e,o,!0)),rd(t,n,o)):t=n,M(n)&&s.set(n,t),t}function rd(e,t,n,r=!1){let{mixins:i,extends:l}=t;for(let s in l&&rd(e,l,n,!0),i&&i.forEach(t=>rd(e,t,n,!0)),t)if(r&&"expose"===s);else{let r=rp[s]||n&&n[s];e[s]=r?r(e[s],t[s]):t[s]}return e}let rp={data:rf,props:ry,emits:ry,methods:rv,computed:rv,beforeCreate:rm,created:rm,beforeMount:rm,mounted:rm,beforeUpdate:rm,updated:rm,beforeDestroy:rm,beforeUnmount:rm,destroyed:rm,unmounted:rm,activated:rm,deactivated:rm,errorCaptured:rm,serverPrefetch:rm,components:rv,directives:rv,watch:function(e,t){if(!e)return t;if(!t)return e;let n=T(Object.create(null),e);for(let r in t)n[r]=rm(e[r],t[r]);return n},provide:rf,inject:function(e,t){return rv(rg(e),rg(t))}};function rf(e,t){return t?e?function(){return T(I(e)?e.call(this,this):e,I(t)?t.call(this,this):t)}:t:e}function rg(e){if(E(e)){let t={};for(let n=0;n"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${j(t)}Modifiers`]||e[`${H(t)}Modifiers`];function rC(e,t,...n){let r;if(e.isUnmounted)return;let i=e.vnode.props||b,l=n,s=t.startsWith("update:"),o=s&&rx(i,t.slice(7));o&&(o.trim&&(l=n.map(e=>R(e)?e.trim():e)),o.number&&(l=n.map(G)));let a=i[r=W(t)]||i[r=W(j(t))];!a&&s&&(a=i[r=W(H(t))]),a&&tD(a,e,6,l);let c=i[r+"Once"];if(c){if(e.emitted){if(e.emitted[r])return}else e.emitted={};e.emitted[r]=!0,tD(c,e,6,l)}}let rk=new WeakMap;function rT(e,t){return!!e&&!!C(t)&&(A(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||A(e,H(t))||A(e,t))}function rw(e){let t,n,{type:r,vnode:i,proxy:l,withProxy:s,propsOptions:[o],slots:a,attrs:c,emit:u,render:h,renderCache:d,props:p,data:f,setupState:g,ctx:m,inheritAttrs:y}=e,b=t2(e);try{if(4&i.shapeFlag){let e=s||l;t=iy(h.call(e,e,d,p,g,f,m)),n=c}else t=iy(r.length>1?r(p,{attrs:c,slots:a,emit:u}):r(p,null)),n=r.props?c:rN(c)}catch(n){r7.length=0,tV(n,e,1),t=ip(r5)}let _=t;if(n&&!1!==y){let e=Object.keys(n),{shapeFlag:t}=_;e.length&&7&t&&(o&&e.some(k)&&(n=rA(n,o)),_=im(_,n,!1,!0))}return i.dirs&&((_=im(_,null,!1,!0)).dirs=_.dirs?_.dirs.concat(i.dirs):i.dirs),i.transition&&nC(_,i.transition),t=_,t2(b),t}let rN=e=>{let t;for(let n in e)("class"===n||"style"===n||C(n))&&((t||(t={}))[n]=e[n]);return t},rA=(e,t)=>{let n={};for(let r in e)k(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function rE(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;iObject.getPrototypeOf(e)===rO;function rP(e,t,n,r){let i,[l,s]=e.propsOptions,o=!1;if(t)for(let a in t){let c;if($(a))continue;let u=t[a];l&&A(l,c=j(a))?s&&s.includes(c)?(i||(i={}))[c]=u:n[c]=u:rT(e.emitsOptions,a)||a in r&&u===r[a]||(r[a]=u,o=!0)}if(s){let t=tm(n),r=i||b;for(let i=0;i"_"===e||"_ctx"===e||"$stable"===e,rV=e=>E(e)?e.map(iy):[iy(e)],rB=(e,t,n)=>{if(t._n)return t;let r=t6((...e)=>rV(t(...e)),n);return r._c=!1,r},rj=(e,t,n)=>{let r=e._ctx;for(let n in e){if(rD(n))continue;let i=e[n];if(I(i))t[n]=rB(n,i,r);else if(null!=i){let e=rV(i);t[n]=()=>e}}},rU=(e,t)=>{let n=rV(t);e.slots.default=()=>n},rH=(e,t,n)=>{for(let r in t)(n||!rD(r))&&(e[r]=t[r])},rq=r6;function rW(e){return rK(e,nF)}function rK(e,t){var n;let r,i;Q().__VUE__=!0;let{insert:l,remove:s,patchProp:o,createElement:a,createText:c,createComment:h,setText:d,setElementText:p,parentNode:f,nextSibling:g,setScopeId:m=S,insertStaticContent:y}=e,x=(e,t,n,r=null,i=null,l=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!ic(e,t)&&(r=es(e),et(e,i,l,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:c,ref:u,shapeFlag:h}=t;switch(c){case r8:C(e,t,n,r);break;case r5:k(e,t,n,r);break;case r9:null==e&&w(t,n,r,s);break;case r4:B(e,t,n,r,i,l,s,o,a);break;default:1&h?N(e,t,n,r,i,l,s,o,a):6&h?U(e,t,n,r,i,l,s,o,a):64&h?c.process(e,t,n,r,i,l,s,o,a,ec):128&h&&c.process(e,t,n,r,i,l,s,o,a,ec)}null!=u&&i?nE(u,e&&e.ref,l,t||e,!t):null==u&&e&&null!=e.ref&&nE(e.ref,null,l,e,!0)},C=(e,t,n,r)=>{if(null==e)l(t.el=c(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&d(n,t.children)}},k=(e,t,n,r)=>{null==e?l(t.el=h(t.children||""),n,r):t.el=e.el},w=(e,t,n,r)=>{[e.el,e.anchor]=y(e.children,t,n,r,e.el,e.anchor)},N=(e,t,n,r,i,l,s,o,a)=>{if("svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e)R(t,n,r,i,l,s,o,a);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),L(e,t,i,l,s,o,a)}finally{n&&n._endPatch()}}},R=(e,t,n,r,i,s,c,u)=>{let h,d,{props:f,shapeFlag:g,transition:m,dirs:y}=e;if(h=e.el=a(e.type,s,f&&f.is,f),8&g?p(h,e.children):16&g&&F(e.children,h,null,r,i,rz(e,s),c,u),y&&t3(e,null,r,"created"),O(h,e,e.scopeId,c,r),f){for(let e in f)"value"===e||$(e)||o(h,e,null,f[e],s,r);"value"in f&&o(h,"value",null,f.value,s),(d=f.onVnodeBeforeMount)&&ix(d,r,e)}y&&t3(e,null,r,"beforeMount");let b=rG(i,m);b&&m.beforeEnter(h),l(h,t,n),((d=f&&f.onVnodeMounted)||b||y)&&rq(()=>{d&&ix(d,r,e),b&&m.enter(h),y&&t3(e,null,r,"mounted")},i)},O=(e,t,n,r,i)=>{if(n&&m(e,n),r)for(let t=0;t{for(let c=a;c{let a,c=t.el=e.el,{patchFlag:u,dynamicChildren:h,dirs:d}=t;u|=16&e.patchFlag;let f=e.props||b,g=t.props||b;if(n&&rJ(n,!1),(a=g.onVnodeBeforeUpdate)&&ix(a,n,t,e),d&&t3(t,e,n,"beforeUpdate"),n&&rJ(n,!0),(f.innerHTML&&null==g.innerHTML||f.textContent&&null==g.textContent)&&p(c,""),h?D(e.dynamicChildren,h,c,n,r,rz(t,i),l):s||X(e,t,c,null,n,r,rz(t,i),l,!1),u>0){if(16&u)V(c,f,g,n,i);else if(2&u&&f.class!==g.class&&o(c,"class",null,g.class,i),4&u&&o(c,"style",f.style,g.style,i),8&u){let e=t.dynamicProps;for(let t=0;t{a&&ix(a,n,t,e),d&&t3(t,e,n,"updated")},r)},D=(e,t,n,r,i,l,s)=>{for(let o=0;o{if(t!==n){if(t!==b)for(let l in t)$(l)||l in n||o(e,l,t[l],null,i,r);for(let l in n){if($(l))continue;let s=n[l],a=t[l];s!==a&&"value"!==l&&o(e,l,a,s,i,r)}"value"in n&&o(e,"value",t.value,n.value,i)}},B=(e,t,n,r,i,s,o,a,u)=>{let h=t.el=e?e.el:c(""),d=t.anchor=e?e.anchor:c(""),{patchFlag:p,dynamicChildren:f,slotScopeIds:g}=t;g&&(a=a?a.concat(g):g),null==e?(l(h,n,r),l(d,n,r),F(t.children||[],n,d,i,s,o,a,u)):p>0&&64&p&&f&&e.dynamicChildren&&e.dynamicChildren.length===f.length?(D(e.dynamicChildren,f,n,i,s,o,a),(null!=t.key||i&&t===i.subTree)&&rX(e,t,!0)):X(e,t,n,d,i,s,o,a,u)},U=(e,t,n,r,i,l,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?i.ctx.activate(t,n,r,s,a):q(t,n,r,i,l,s,a):W(e,t,a)},q=(e,t,n,r,i,l,s)=>{var o,a,c;let h,d,p,f=(o=e,a=r,c=i,h=o.type,d=(a?a.appContext:o.appContext)||iC,(p={uid:ik++,vnode:o,type:h,parent:a,appContext:d,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new em(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:a?a.provides:Object.create(d.provides),ids:a?a.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,r=!1){let i=r?rL:n.propsCache,l=i.get(t);if(l)return l;let s=t.props,o={},a=[],c=!1;if(!I(t)){let i=t=>{c=!0;let[r,i]=e(t,n,!0);T(o,r),i&&a.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}if(!s&&!c)return M(t)&&i.set(t,_),_;if(E(s))for(let e=0;e{let r=e(t,n,!0);r&&(a=!0,T(o,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return s||a?(E(s)?s.forEach(e=>o[e]=null):T(o,s),M(t)&&i.set(t,o),o):(M(t)&&i.set(t,null),null)}(h,d),emit:null,emitted:null,propsDefaults:b,inheritAttrs:h.inheritAttrs,ctx:b,data:b,props:b,attrs:b,slots:b,refs:b,setupState:b,setupContext:null,suspense:c,suspenseId:c?c.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null}).ctx={_:p},p.root=a?a.root:p,p.emit=rC.bind(null,p),o.ce&&o.ce(p),e.component=p);if(nH(e)&&(f.ctx.renderer=ec),function(e,t=!1,n=!1){t&&u(t);let{props:r,children:i}=e.vnode,l=iE(e);!function(e,t,n,r=!1){let i={},l=Object.create(rO);for(let n in e.propsDefaults=Object.create(null),rP(e,t,i,l),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:tc(i):e.type.props?e.props=i:e.props=l,e.attrs=l}(e,r,l,t);var s=n||t;let o=e.slots=Object.create(rO);if(32&e.vnode.shapeFlag){let e=i._;e?(rH(o,i,s),s&&J(o,"_",e,!0)):rj(i,o)}else i&&rU(e,i);l&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,rl);let{setup:r}=n;if(r){eE();let n=e.setupContext=r.length>1?iF(e):null,i=iN(e),l=t$(r,e,0,[e.props,n]),s=P(l);if(eI(),i(),(s||e.sp)&&!nj(e)&&nw(e),s){if(l.then(iA,iA),t)return l.then(n=>{iR(e,n,t)}).catch(t=>{tV(t,e,0)});e.asyncDep=l}else iR(e,l,t)}else iM(e,t)}(e,t),t&&u(!1)}(f,!1,s),f.asyncDep){if(i&&i.registerDep(f,K,s),!e.el){let r=f.subTree=ip(r5);k(null,r,t,n),e.placeholder=r.el}}else K(f,e,t,n,i,l,s)},W=(e,t,n)=>{let r=t.component=e.component;if(function(e,t,n){let{props:r,children:i,component:l}=e,{props:s,children:o,patchFlag:a}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!i||!!o)&&(!o||!o.$stable)||r!==s&&(r?!s||rE(r,s,c):!!s);if(1024&a)return!0;if(16&a)return r?rE(r,s,c):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t{e.scope.on();let a=e.effect=new ey(()=>{if(e.isMounted){let t,{next:n,bu:r,u:i,parent:a,vnode:u}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=u.el,G(e,n,o)),t.asyncDep.then(()=>{rq(()=>{e.isUnmounted||c()},l)});return}}let h=n;rJ(e,!1),n?(n.el=u.el,G(e,n,o)):n=u,r&&z(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&ix(t,a,n,u),rJ(e,!0);let d=rw(e),p=e.subTree;e.subTree=d,x(p,d,f(p.el),es(p),e,l,s),n.el=d.el,null===h&&rR(e,d.el),i&&rq(i,l),(t=n.props&&n.props.onVnodeUpdated)&&rq(()=>ix(t,a,n,u),l)}else{let o,{el:a,props:c}=t,{bm:u,m:h,parent:d,root:p,type:f}=e,g=nj(t);if(rJ(e,!1),u&&z(u),!g&&(o=c&&c.onVnodeBeforeMount)&&ix(o,d,t),rJ(e,!0),a&&i){let t=()=>{e.subTree=rw(e),i(a,e.subTree,e,l,null)};g&&f.__asyncHydrate?f.__asyncHydrate(a,e,t):t()}else{p.ce&&p.ce._hasShadowRoot()&&p.ce._injectChildStyle(f,e.parent?e.parent.type:void 0);let i=e.subTree=rw(e);x(null,i,n,r,e,l,s),t.el=i.el}if(h&&rq(h,l),!g&&(o=c&&c.onVnodeMounted)){let e=t;rq(()=>ix(o,d,e),l)}(256&t.shapeFlag||d&&nj(d.vnode)&&256&d.vnode.shapeFlag)&&e.a&&rq(e.a,l),e.isMounted=!0,t=n=r=null}});e.scope.off();let c=e.update=a.run.bind(a),u=e.job=a.runIfDirty.bind(a);u.i=e,u.id=e.uid,a.scheduler=()=>tJ(u),rJ(e,!0),c()},G=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){let{props:i,attrs:l,vnode:{patchFlag:s}}=e,o=tm(i),[a]=e.propsOptions,c=!1;if((r||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let r=0;r{let{vnode:r,slots:i}=e,l=!0,s=b;if(32&r.shapeFlag){let e=t._;e?n&&1===e?l=!1:rH(i,t,n):(l=!t.$stable,rj(t,i)),s=t}else t&&(rU(e,t),s={default:1});if(l)for(let e in i)rD(e)||null!=s[e]||delete i[e]})(e,t.children,n),eE(),tQ(e),eI()},X=(e,t,n,r,i,l,s,o,a=!1)=>{let c=e&&e.children,u=e?e.shapeFlag:0,h=t.children,{patchFlag:d,shapeFlag:f}=t;if(d>0){if(128&d)return void Y(c,h,n,r,i,l,s,o,a);else if(256&d)return void Z(c,h,n,r,i,l,s,o,a)}8&f?(16&u&&el(c,i,l),h!==c&&p(n,h)):16&u?16&f?Y(c,h,n,r,i,l,s,o,a):el(c,i,l,!0):(8&u&&p(n,""),16&f&&F(h,n,r,i,l,s,o,a))},Z=(e,t,n,r,i,l,s,o,a)=>{let c;e=e||_,t=t||_;let u=e.length,h=t.length,d=Math.min(u,h);for(c=0;ch?el(e,i,l,!0,!1,d):F(t,n,r,i,l,s,o,a,d)},Y=(e,t,n,r,i,l,s,o,a)=>{let c=0,u=t.length,h=e.length-1,d=u-1;for(;c<=h&&c<=d;){let r=e[c],u=t[c]=a?ib(t[c]):iy(t[c]);if(ic(r,u))x(r,u,n,null,i,l,s,o,a);else break;c++}for(;c<=h&&c<=d;){let r=e[h],c=t[d]=a?ib(t[d]):iy(t[d]);if(ic(r,c))x(r,c,n,null,i,l,s,o,a);else break;h--,d--}if(c>h){if(c<=d){let e=d+1,h=ed)for(;c<=h;)et(e[c],i,l,!0),c++;else{let p,f=c,g=c,m=new Map;for(c=g;c<=d;c++){let e=t[c]=a?ib(t[c]):iy(t[c]);null!=e.key&&m.set(e.key,c)}let y=0,b=d-g+1,S=!1,C=0,k=Array(b);for(c=0;c=b){et(u,i,l,!0);continue}if(null!=u.key)r=m.get(u.key);else for(p=g;p<=d;p++)if(0===k[p-g]&&ic(u,t[p])){r=p;break}void 0===r?et(u,i,l,!0):(k[r-g]=c+1,r>=C?C=r:S=!0,x(u,t[r],n,null,i,l,s,o,a),y++)}let T=S?function(e){let t,n,r,i,l,s=e.slice(),o=[0],a=e.length;for(t=0;t>1]]0&&(s[t]=o[r-1]),o[r]=t)}}for(r=o.length,i=o[r-1];r-- >0;)o[r]=i,i=s[i];return o}(k):_;for(p=T.length-1,c=b-1;c>=0;c--){let e=g+c,h=t[e],d=t[e+1],f=e+1{let{el:o,type:a,transition:c,children:u,shapeFlag:h}=e;if(6&h)return void ee(e.component.subTree,t,n,r);if(128&h)return void e.suspense.move(t,n,r);if(64&h)return void a.move(e,t,n,ec);if(a===r4){l(o,t,n);for(let e=0;e{let i;for(;e&&e!==t;)i=g(e),l(e,n,r),e=i;l(t,n,r)})(e,t,n);if(2!==r&&1&h&&c)if(0===r)c.beforeEnter(o),l(o,t,n),rq(()=>c.enter(o),i);else{let{leave:r,delayLeave:i,afterLeave:a}=c,u=()=>{e.ctx.isUnmounted?s(o):l(o,t,n)},h=()=>{o._isLeaving&&o[nh](!0),r(o,()=>{u(),a&&a()})};i?i(o,u,h):h()}else l(o,t,n)},et=(e,t,n,r=!1,i=!1)=>{let l,{type:s,props:o,ref:a,children:c,dynamicChildren:u,shapeFlag:h,patchFlag:d,dirs:p,cacheIndex:f,memo:g}=e;if(-2===d&&(i=!1),null!=a&&(eE(),nE(a,null,n,e,!0),eI()),null!=f&&(t.renderCache[f]=void 0),256&h)return void t.ctx.deactivate(e);let m=1&h&&p,y=!nj(e);if(y&&(l=o&&o.onVnodeBeforeUnmount)&&ix(l,t,e),6&h)ei(e.component,n,r);else{if(128&h)return void e.suspense.unmount(n,r);m&&t3(e,null,t,"beforeUnmount"),64&h?e.type.remove(e,t,n,ec,r):u&&!u.hasOnce&&(s!==r4||d>0&&64&d)?el(u,t,n,!1,!0):(s===r4&&384&d||!i&&16&h)&&el(c,t,n),r&&en(e)}let b=null!=g&&null==f;(y&&(l=o&&o.onVnodeUnmounted)||m||b)&&rq(()=>{l&&ix(l,t,e),m&&t3(e,null,t,"unmounted"),b&&(e.el=null)},n)},en=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===r4)return void er(n,r);if(t===r9)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=g(e),s(e),e=n;s(t)})(e);let l=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,s=()=>t(n,l);r?r(e.el,l,s):s()}else l()},er=(e,t)=>{let n;for(;e!==t;)n=g(e),s(e),e=n;s(t)},ei=(e,t,n)=>{let{bum:r,scope:i,job:l,subTree:s,um:o,m:a,a:c}=e;rQ(a),rQ(c),r&&z(r),i.stop(),l&&(l.flags|=8,et(s,e,t,n)),o&&rq(o,t),rq(()=>{e.isUnmounted=!0},t)},el=(e,t,n,r=!1,i=!1,l=0)=>{for(let s=l;s{if(6&e.shapeFlag)return es(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=g(e.anchor||e.el),n=t&&t[nr];return n?g(n):t},eo=!1,ea=(e,t,n)=>{let r;null==e?t._vnode&&(et(t._vnode,null,null,!0),r=t._vnode.component):x(t._vnode||null,e,t,null,null,null,n),t._vnode=e,eo||(eo=!0,tQ(r),tZ(),eo=!1)},ec={p:x,um:et,m:ee,r:en,mt:q,mc:F,pc:X,pbc:D,n:es,o:e};return t&&([r,i]=t(ec)),{render:ea,hydrate:r,createApp:(n=r,function(e,t=null){I(e)||(e=T({},e)),null==t||M(t)||(t=null);let r=rb(),i=new WeakSet,l=[],s=!1,o=r.app={_uid:r_++,_component:e,_props:t,_container:null,_context:r,_instance:null,version:ij,get config(){return r.config},set config(v){},use:(e,...t)=>(i.has(e)||(e&&I(e.install)?(i.add(e),e.install(o,...t)):I(e)&&(i.add(e),e(o,...t))),o),mixin:e=>(r.mixins.includes(e)||r.mixins.push(e),o),component:(e,t)=>t?(r.components[e]=t,o):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,o):r.directives[e],mount(i,l,a){if(!s){let c=o._ceVNode||ip(e,t);return c.appContext=r,!0===a?a="svg":!1===a&&(a=void 0),l&&n?n(c,i):ea(c,i,a),s=!0,o._container=i,i.__vue_app__=o,iL(c.component)}},onUnmount(e){l.push(e)},unmount(){s&&(tD(l,o._instance,16),ea(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,o),runWithContext(e){let t=rS;rS=o;try{return e()}finally{rS=t}}};return o})}}function rz({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rJ({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rG(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rX(e,t,n=!1){let r=e.children,i=t.children;if(E(r)&&E(i))for(let e=0;ee.__isSuspense,rY=0;function r0(e,t){let n=e.props&&e.props[t];I(n)&&n()}function r1(e,t,n,r,i,l,s,o,a,c,u=!1){var h;let d,p,{p:f,m:g,um:m,n:y,o:{parentNode:b,remove:_}}=c,S=null!=(d=(h=e).props&&h.props.suspensible)&&!1!==d;S&&t&&t.pendingBranch&&(p=t.pendingId,t.deps++);let x=e.props?X(e.props.timeout):void 0,C=l,k={vnode:e,parent:t,parentComponent:n,namespace:s,container:r,hiddenContainer:i,deps:0,pendingId:rY++,timeout:"number"==typeof x?x:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:r,activeBranch:i,pendingBranch:s,pendingId:o,effects:a,parentComponent:c,container:u,isInFallback:h}=k,d=!1;k.isHydrating?k.isHydrating=!1:!e&&((d=i&&s.transition&&"out-in"===s.transition.mode)&&(i.transition.afterLeave=()=>{o===k.pendingId&&(g(s,u,l===C?y(i):l,0),tX(a),h&&r.ssFallback&&(r.ssFallback.el=null))}),i&&!k.isFallbackMountPending&&(b(i.el)===u&&(l=y(i)),m(i,c,k,!0),!d&&h&&r.ssFallback&&rq(()=>r.ssFallback.el=null,k)),d||g(s,u,l,0)),k.isFallbackMountPending=!1,r3(k,s),k.pendingBranch=null,k.isInFallback=!1;let f=k.parent,_=!1;for(;f;){if(f.pendingBranch){f.effects.push(...a),_=!0;break}f=f.parent}_||d||tX(a),k.effects=[],S&&t&&t.pendingBranch&&p===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),r0(r,"onResolve")},fallback(e){if(!k.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:r,container:i,namespace:l}=k;r0(t,"onFallback");let s=y(n),c=()=>{k.isFallbackMountPending=!1,k.isInFallback&&(f(null,e,i,s,r,null,l,o,a),r3(k,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(k.isFallbackMountPending=!0,n.transition.afterLeave=c),k.isInFallback=!0,m(n,r,null,!0),u||c()},move(e,t,n){k.activeBranch&&g(k.activeBranch,e,t,n),k.container=e},next:()=>k.activeBranch&&y(k.activeBranch),registerDep(e,t,n){let r=!!k.pendingBranch;r&&k.deps++;let i=e.vnode.el;e.asyncDep.catch(t=>{tV(t,e,0)}).then(l=>{if(e.isUnmounted||k.isUnmounted||k.pendingId!==e.suspenseId)return;iA(),e.asyncResolved=!0;let{vnode:o}=e;iR(e,l,!1),i&&(o.el=i);let a=!i&&e.subTree.el;t(e,o,b(i||e.subTree.el),i?null:y(e.subTree),k,s,n),a&&(o.placeholder=null,_(a)),rR(e,o.el),r&&0==--k.deps&&k.resolve()})},unmount(e,t){k.isUnmounted=!0,k.activeBranch&&m(k.activeBranch,n,e,t),k.pendingBranch&&m(k.pendingBranch,n,e,t)}};return k}function r2(e){let t;if(I(e)){let n=ii&&e._c;n&&(e._d=!1,it()),e=e(),n&&(e._d=!0,t=ie,ir())}return E(e)&&(e=function(e){let t;for(let n=0;nt!==e)),e}function r6(e,t){t&&t.pendingBranch?E(e)?t.effects.push(...e):t.effects.push(e):tX(e)}function r3(e,t){e.activeBranch=t;let{vnode:n,parentComponent:r}=e,i=t.el;for(;!i&&t.component;)i=(t=t.component.subTree).el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,rR(r,i))}let r4=Symbol.for("v-fgt"),r8=Symbol.for("v-txt"),r5=Symbol.for("v-cmt"),r9=Symbol.for("v-stc"),r7=[],ie=null;function it(e=!1){r7.push(ie=e?null:[])}function ir(){r7.pop(),ie=r7[r7.length-1]||null}let ii=1;function il(e,t=!1){ii+=e,e<0&&ie&&t&&(ie.hasOnce=!0)}function is(e){return e.dynamicChildren=ii>0?ie||_:null,ir(),ii>0&&ie&&ie.push(e),e}function io(e,t,n,r,i){return is(ip(e,t,n,r,i,!0))}function ia(e){return!!e&&!0===e.__v_isVNode}function ic(e,t){return e.type===t.type&&e.key===t.key}let iu=({key:e})=>null!=e?e:null,ih=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?R(e)||t_(e)||I(e)?{i:t0,r:e,k:t,f:!!n}:e:null);function id(e,t=null,n=null,r=0,i=null,l=+(e!==r4),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&iu(t),ref:t&&ih(t),scopeId:t1,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:l,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:t0};return o?(i_(a,n),128&l&&e.normalize(a)):n&&(a.shapeFlag|=R(n)?8:16),ii>0&&!s&&ie&&(a.patchFlag>0||6&l)&&32!==a.patchFlag&&ie.push(a),a}let ip=function(e,t=null,n=null,r=0,i=null,l=!1){var s;if(e&&e!==n7||(e=r5),ia(e)){let r=im(e,t,!0);return n&&i_(r,n),ii>0&&!l&&ie&&(6&r.shapeFlag?ie[ie.indexOf(e)]=r:ie.push(r)),r.patchFlag=-2,r}if(I(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=ig(t);e&&!R(e)&&(t.class=ei(e)),M(n)&&(tg(n)&&!E(n)&&(n=T({},n)),t.style=Y(n))}let o=R(e)?1:rZ(e)?128:e.__isTeleport?64:M(e)?4:2*!!I(e);return id(e,t,n,r,i,o,l,!0)};function ig(e){return e?tg(e)||rM(e)?T({},e):e:null}function im(e,t,n=!1,r=!1){let{props:i,ref:l,patchFlag:s,children:o,transition:a}=e,c=t?iS(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&iu(c),ref:t&&t.ref?n&&l?E(l)?l.concat(ih(t)):[l,ih(t)]:ih(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==r4?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&im(e.ssContent),ssFallback:e.ssFallback&&im(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&nC(u,a.clone(u)),u}function iv(e=" ",t=0){return ip(r8,null,e,t)}function iy(e){return null==e||"boolean"==typeof e?ip(r5):E(e)?ip(r4,null,e.slice()):ia(e)?ib(e):ip(r8,null,String(e))}function ib(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:im(e)}function i_(e,t){let n=0,{shapeFlag:r}=e;if(null==t)t=null;else if(E(t))n=16;else if("object"==typeof t)if(65&r){let n=t.default;n&&(n._c&&(n._d=!1),i_(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;r||rM(t)?3===r&&t0&&(1===t0.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t0}else I(t)?(t={default:t,_ctx:t0},n=32):(t=String(t),64&r?(n=16,t=[iv(t)]):n=8);e.children=t,e.shapeFlag|=n}function iS(...e){let t={};for(let n=0;niT||t0;c=e=>{iT=e},u=e=>{iI=e};let iN=e=>{let t=iT;return c(e),e.scope.on(),()=>{e.scope.off(),c(t)}},iA=()=>{iT&&iT.scope.off(),c(null)};function iE(e){return 4&e.vnode.shapeFlag}let iI=!1;function iR(e,t,n){I(t)?e.render=t:M(t)&&(e.setupState=tN(t)),iM(e,n)}function iO(e){h=e,d=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,rs))}}function iM(e,t,n){let r=e.type;if(!e.render){if(!t&&h&&!r.render){let t=r.template||rh(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:s}=r,o=T(T({isCustomElement:n,delimiters:l},i),s);r.render=h(t,o)}}e.render=r.render||S,d&&d(e)}{let t=iN(e);eE();try{!function(e){let t=rh(e),n=e.proxy,r=e.ctx;rc=!1,t.beforeCreate&&ru(t.beforeCreate,e,"bc");let{data:i,computed:l,methods:s,watch:o,provide:a,inject:c,created:u,beforeMount:h,mounted:d,beforeUpdate:p,updated:f,activated:g,deactivated:m,beforeUnmount:y,unmounted:b,render:_,renderTracked:x,renderTriggered:C,errorCaptured:k,serverPrefetch:T,expose:w,inheritAttrs:N,components:A,directives:O}=t;if(c&&function(e,t){for(let n in E(e)&&(e=rg(e)),e){let r,i=e[n];t_(r=M(i)?"default"in i?t8(i.from||n,i.default,!0):t8(i.from||n):t8(i))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(c,r),s)for(let e in s){let t=s[e];I(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);M(t)&&(e.data=ta(t))}if(rc=!0,l)for(let e in l){let t=l[e],i=I(t)?t.bind(n,n):I(t.get)?t.get.bind(n,n):S,s=iD({get:i,set:!I(t)&&I(t.set)?t.set.bind(n):S});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,r,i){let l=i.includes(".")?nt(r,i):()=>r[i];if(R(t)){let e=n[t];I(e)&&t7(l,e,void 0)}else if(I(t))t7(l,t.bind(r),void 0);else if(M(t))if(E(t))t.forEach(t=>e(t,n,r,i));else{let e=I(t.handler)?t.handler.bind(r):n[t.handler];I(e)&&t7(l,e,t)}}(o[e],r,n,e);if(a){let e=I(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{t4(t,e[t])})}function P(e,t){E(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(u&&ru(u,e,"c"),P(nZ,h),P(nY,d),P(n0,p),P(n1,f),P(nW,g),P(nK,m),P(n5,k),P(n8,x),P(n4,C),P(n2,y),P(n6,b),P(n3,T),E(w))if(w.length){let t=e.exposed||(e.exposed={});w.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});_&&e.render===S&&(e.render=_),null!=N&&(e.inheritAttrs=N),A&&(e.components=A),O&&(e.directives=O)}(e)}finally{eI(),t()}}}let iP={get:(e,t)=>(eV(e,"get",""),e[t])};function iF(e){return{attrs:new Proxy(e.attrs,iP),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function iL(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tN(tv(e.exposed)),{get:(t,n)=>n in t?t[n]:n in rr?rr[n](e):void 0,has:(e,t)=>t in e||t in rr})):e.proxy}function i$(e,t=!0){return I(e)?e.displayName||e.name:e.name||t&&e.__name}let iD=(e,t)=>(function(e,t=!1){let n,r;return I(e)?n=e:(n=e.get,r=e.set),new tO(n,r,t)})(e,iI);function iV(e,t,n){try{il(-1);let r=arguments.length;if(2!==r)return r>3?n=Array.prototype.slice.call(arguments,2):3===r&&ia(n)&&(n=[n]),ip(e,t,n);if(!M(t)||E(t))return ip(e,null,t);if(ia(t))return ip(e,null,[t]);return ip(e,t)}finally{il(1)}}function iB(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e0&&ie&&ie.push(e),!0}let ij="3.5.32",iU="u">typeof window&&window.trustedTypes;if(iU)try{m=iU.createPolicy("vue",{createHTML:e=>e})}catch(e){}let iH=m?e=>m.createHTML(e):e=>e,iq="u">typeof document?document:null,iW=iq&&iq.createElement("template"),iK={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="svg"===t?iq.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?iq.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?iq.createElement(e,{is:n}):iq.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>iq.createTextNode(e),createComment:e=>iq.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iq.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,l){let s=n?n.previousSibling:t.lastChild;if(i&&(i===l||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==l&&(i=i.nextSibling););else{iW.innerHTML=iH("svg"===r?`${e}`:"mathml"===r?`${e}`:e);let i=iW.content;if("svg"===r||"mathml"===r){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},iz="transition",iJ="animation",iG=Symbol("_vtc"),iX={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},iQ=T({},ng,iX),iZ=((t=(e,{slots:t})=>iV(ny,i1(e),t)).displayName="Transition",t.props=iQ,t),iY=(e,t=[])=>{E(e)?e.forEach(e=>e(...t)):e&&e(...t)},i0=e=>!!e&&(E(e)?e.some(e=>e.length>1):e.length>1);function i1(e){let t={};for(let n in e)n in iX||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:r,duration:i,enterFromClass:l=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=l,appearActiveClass:c=s,appearToClass:u=o,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,f=function(e){if(null==e)return null;{if(M(e))return[function(e){return X(e)}(e.enter),function(e){return X(e)}(e.leave)];let t=function(e){return X(e)}(e);return[t,t]}}(i),g=f&&f[0],m=f&&f[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:S,onLeaveCancelled:x,onBeforeAppear:C=y,onAppear:k=b,onAppearCancelled:w=_}=t,N=(e,t,n,r)=>{e._enterCancelled=r,i6(e,t?u:o),i6(e,t?c:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,i6(e,h),i6(e,p),i6(e,d),t&&t()},E=e=>(t,n)=>{let i=e?k:b,s=()=>N(t,e,n);iY(i,[t,s]),i3(()=>{i6(t,e?a:l),i2(t,e?u:o),i0(i)||i8(t,r,g,s)})};return T(t,{onBeforeEnter(e){iY(y,[e]),i2(e,l),i2(e,s)},onBeforeAppear(e){iY(C,[e]),i2(e,a),i2(e,c)},onEnter:E(!1),onAppear:E(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);i2(e,h),e._enterCancelled?(i2(e,d),le(e)):(le(e),i2(e,d)),i3(()=>{e._isLeaving&&(i6(e,h),i2(e,p),i0(S)||i8(e,r,m,n))}),iY(S,[e,n])},onEnterCancelled(e){N(e,!1,void 0,!0),iY(_,[e])},onAppearCancelled(e){N(e,!0,void 0,!0),iY(w,[e])},onLeaveCancelled(e){A(e),iY(x,[e])}})}function i2(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[iG]||(e[iG]=new Set)).add(t)}function i6(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[iG];n&&(n.delete(t),n.size||(e[iG]=void 0))}function i3(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let i4=0;function i8(e,t,n,r){let i=e._endId=++i4,l=()=>{i===e._endId&&r()};if(null!=n)return setTimeout(l,n);let{type:s,timeout:o,propCount:a}=i5(e,t);if(!s)return r();let c=s+"end",u=0,h=()=>{e.removeEventListener(c,d),l()},d=t=>{t.target===e&&++u>=a&&h()};setTimeout(()=>{u(n[e]||"").split(", "),i=r(`${iz}Delay`),l=r(`${iz}Duration`),s=i9(i,l),o=r(`${iJ}Delay`),a=r(`${iJ}Duration`),c=i9(o,a),u=null,h=0,d=0;t===iz?s>0&&(u=iz,h=s,d=l.length):t===iJ?c>0&&(u=iJ,h=c,d=a.length):d=(u=(h=Math.max(s,c))>0?s>c?iz:iJ:null)?u===iz?l.length:a.length:0;let p=u===iz&&/\b(?:transform|all)(?:,|$)/.test(r(`${iz}Property`).toString());return{type:u,timeout:h,propCount:d,hasTransform:p}}function i9(e,t){for(;e.lengthi7(t)+i7(e[n])))}function i7(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function le(e){return(e?e.ownerDocument:document).body.offsetHeight}let lt=Symbol("_vod"),ln=Symbol("_vsh");function lr(e,t){e.style.display=t?e[lt]:"none",e[ln]=!t}let li=Symbol("");function ll(e,t){if(1===e.nodeType){let r=e.style,i="";for(let e in t){var n;let l=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);r.setProperty(`--${e}`,l),i+=`--${e}: ${l};`}r[li]=i}}let ls=/(?:^|;)\s*display\s*:/,lo=/\s*!important$/;function la(e,t,n){if(E(n))n.forEach(n=>la(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let r=function(e,t){let n=lu[t];if(n)return n;let r=j(t);if("filter"!==r&&r in e)return lu[t]=r;r=q(r);for(let n=0;n111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),l_=(e,t,n,r,i,l)=>{let s="svg"===i;if("class"===t){var o;let t;o=r,(t=e[iG])&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let r=e.style,i=R(n),l=!1;if(n&&!i){if(t)if(R(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&la(r,t,"")}else for(let e in t)null==n[e]&&la(r,e,"");for(let e in n)"display"===e&&(l=!0),la(r,e,n[e])}else if(i){if(t!==n){let e=r[li];e&&(n+=";"+e),r.cssText=n,l=ls.test(n)}}else t&&e.removeAttribute("style");lt in e&&(e[lt]=l?r.display:"",e[ln]&&(r.display="none"))}(e,n,r):C(t)?k(t)||function(e,t,n,r=null){let i=e[lg]||(e[lg]={}),l=i[t];if(n&&l)l.value=n;else{let[a,c]=function(e){let t;if(lm.test(e)){let n;for(t={};n=e.match(lm);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):H(e.slice(2)),t]}(t);if(n){var s,o;let l;lf(e,a,i[t]=(s=n,o=r,(l=e=>{if(e._vts){if(e._vts<=l.attached)return}else e._vts=Date.now();tD(function(e,t){if(!E(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,l.value),o,5,[e])}).value=s,l.attached=lv||(ly.then(()=>lv=0),lv=Date.now()),l),c)}else l&&(e.removeEventListener(a,l,c),i[t]=void 0)}}(e,t,r,l):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,r){if(r)return!!("innerHTML"===t||"textContent"===t||t in e&&lb(t)&&I(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"sandbox"===t&&"IFRAME"===e.tagName||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(lb(t)&&R(n))&&t in e}(e,t,r,s))?e._isVueCE&&(function(e,t){let n=e._def.props;if(!n)return!1;let r=j(t);return Array.isArray(n)?n.some(e=>j(e)===r):Object.keys(n).some(e=>j(e)===r)}(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!R(r)))?lp(e,j(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),ld(e,t,r,s)):(lp(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||ld(e,t,r,s,l,"value"!==t))},lS={};function lx(e,t,n){let r,i=nT(e,t);"[object Object]"===(r=i,F.call(r))&&(i=T({},i,t));class l extends lk{constructor(e){super(i,e,n)}}return l.def=i,l}let lC="u">typeof HTMLElement?HTMLElement:class{};class lk extends lC{constructor(e,t={},n=l2){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==l2?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow(T({},e.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.assignedSlot||e.parentNode||e.host);)if(e instanceof lk){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,tz(()=>{!this._connected&&(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(e){for(let t of e)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:r,styles:i}=e;if(r&&!E(r))for(let e in r){let t=r[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=X(this._props[e])),(n||(n=Object.create(null)))[j(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(i),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)A(this,e)||Object.defineProperty(this,e,{get:()=>tT(t[e])})}_resolveProps(e){let{props:t}=e,n=E(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(j))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!this._patching)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):lS,r=j(e);t&&this._numberProps&&this._numberProps[r]&&(n=X(n)),this._setProp(r,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!1){if(t!==this._props[e]&&(this._dirty=!0,t===lS?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),r&&this._instance&&this._update(),n)){let n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),!0===t?this.setAttribute(H(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(H(e),t+""):t||this.removeAttribute(H(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),l1(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=ip(this._def,T(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{let n;this.dispatchEvent(new CustomEvent(e,"[object Object]"===(n=t[0],F.call(n))?T({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),H(e)!==e&&t(H(e),n)},this._setParent()}),t}_applyStyles(e,t,n){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let r=this._nonce,i=this.shadowRoot,l=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i),s=null;for(let o=e.length-1;o>=0;o--){let a=document.createElement("style");r&&a.setAttribute("nonce",r),a.textContent=e[o],i.insertBefore(a,s||l),s=a,0===o&&(n||this._styleAnchors.set(this._def,a),t&&this._styleAnchors.set(t,a))}}_getStyleAnchor(e){if(!e)return null;let t=this._styleAnchors.get(e);return t&&t.parentNode===this.shadowRoot?t:(t&&this._styleAnchors.delete(e),null)}_getRootStyleInsertionAnchor(e){for(let t=0;t{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let r=e.cloneNode(),i=e[iG];i&&i.forEach(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 l=1===t.nodeType?t:t.parentNode;l.appendChild(r);let{hasTransform:s}=i5(r);return l.removeChild(r),s}(n[0].el,i.vnode.el,t)){n=[];return}n.forEach(lR),n.forEach(lO);let r=n.filter(lM);le(i.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;i2(n,t),r.transform=r.webkitTransform=r.transitionDuration="";let i=n[lA]=e=>{(!e||e.target===n)&&(!e||e.propertyName.endsWith("transform"))&&(n.removeEventListener("transitionend",i),n[lA]=null,i6(n,t))};n.addEventListener("transitionend",i)}),n=[]}),()=>{let s=tm(e),o=i1(s),a=s.tag||r4;if(n=[],r)for(let e=0;eMath.abs(s-1)&&(s=1),.01>Math.abs(o-1)&&(o=1),n.transform=n.webkitTransform=`translate(${r/s}px,${i/o}px)`,n.transitionDuration="0s",e}}function lP(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top}}let lF=e=>{let t=e.props["onUpdate:modelValue"]||!1;return E(t)?e=>z(t,e):t};function lL(e){e.target.composing=!0}function l$(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let lD=Symbol("_assign");function lV(e,t,n){return t&&(e=e.trim()),n&&(e=G(e)),e}let lB={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[lD]=lF(i);let l=r||i.props&&"number"===i.props.type;lf(e,t?"change":"input",t=>{t.target.composing||e[lD](lV(e.value,n,l))}),(n||l)&&lf(e,"change",()=>{e.value=lV(e.value,n,l)}),t||(lf(e,"compositionstart",lL),lf(e,"compositionend",l$),lf(e,"change",l$))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:l}},s){if(e[lD]=lF(s),e.composing)return;let o=(l||"number"===e.type)&&!/^0\d/.test(e.value)?G(e.value):e.value,a=null==t?"":t;if(o===a)return;let c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===a)||(e.value=a)}},lj={deep:!0,created(e,t,n){e[lD]=lF(n),lf(e,"change",()=>{let t=e._modelValue,n=lK(e),r=e.checked,i=e[lD];if(E(t)){let e=eh(t,n),l=-1!==e;if(r&&!l)i(t.concat(n));else if(!r&&l){let n=[...t];n.splice(e,1),i(n)}}else{let l;if("[object Set]"===(l=t,F.call(l))){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(lz(e,r))}})},mounted:lU,beforeUpdate(e,t,n){e[lD]=lF(n),lU(e,t,n)}};function lU(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,E(t))i=eh(t,r.props.value)>-1;else{let l;if("[object Set]"===(l=t,F.call(l)))i=t.has(r.props.value);else{if(t===n)return;i=eu(t,lz(e,!0))}}e.checked!==i&&(e.checked=i)}let lH={created(e,{value:t},n){e.checked=eu(t,n.props.value),e[lD]=lF(n),lf(e,"change",()=>{e[lD](lK(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[lD]=lF(r),t!==n&&(e.checked=eu(t,r.props.value))}},lq={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i,l="[object Set]"===(i=t,F.call(i));lf(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?G(lK(e)):lK(e));e[lD](e.multiple?l?new Set(t):t:t[0]),e._assigning=!0,tz(()=>{e._assigning=!1})}),e[lD]=lF(r)},mounted(e,{value:t}){lW(e,t)},beforeUpdate(e,t,n){e[lD]=lF(n)},updated(e,{value:t}){e._assigning||lW(e,t)}};function lW(e,t){let n,r=e.multiple,i=E(t);if(!r||i||"[object Set]"===(n=t,F.call(n))){for(let n=0,l=e.options.length;nString(e)===String(s)):l.selected=eh(t,s)>-1}else l.selected=t.has(s);else if(eu(lK(l),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}r||-1===e.selectedIndex||(e.selectedIndex=-1)}}function lK(e){return"_value"in e?e._value:e.value}function lz(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}function lJ(e,t,n,r,i){let l=function(e,t){switch(e){case"SELECT":return lq;case"TEXTAREA":return lB;default:switch(t){case"checkbox":return lj;case"radio":return lH;default:return lB}}}(e.tagName,n.props&&n.props.type)[i];l&&l(e,t,n,r)}let lG=["ctrl","shift","alt","meta"],lX={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&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>lG.some(n=>e[`${n}Key`]&&!t.includes(n))},lQ={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},lZ=T({patchProp:l_},iK),lY=!1;function l0(){return p=lY?p:rW(lZ),lY=!0,p}let l1=(...e)=>{(p||(p=rK(lZ))).render(...e)},l2=(...e)=>{let t=(p||(p=rK(lZ))).createApp(...e),{mount:n}=t;return t.mount=e=>{let r=l4(e);if(!r)return;let i=t._component;I(i)||i.render||i.template||(i.template=r.innerHTML),1===r.nodeType&&(r.textContent="");let l=n(r,!1,l3(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t},l6=(...e)=>{let t=l0().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=l4(e);if(t)return n(t,!0,l3(t))},t};function l3(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function l4(e){return R(e)?document.querySelector(e):e}let l8=Symbol(""),l5=Symbol(""),l9=Symbol(""),l7=Symbol(""),se=Symbol(""),st=Symbol(""),sn=Symbol(""),sr=Symbol(""),si=Symbol(""),sl=Symbol(""),ss=Symbol(""),so=Symbol(""),sa=Symbol(""),sc=Symbol(""),su=Symbol(""),sh=Symbol(""),sd=Symbol(""),sp=Symbol(""),sf=Symbol(""),sg=Symbol(""),sm=Symbol(""),sv=Symbol(""),sy=Symbol(""),sb=Symbol(""),s_=Symbol(""),sS=Symbol(""),sx=Symbol(""),sC=Symbol(""),sk=Symbol(""),sT=Symbol(""),sw=Symbol(""),sN=Symbol(""),sA=Symbol(""),sE=Symbol(""),sI=Symbol(""),sR=Symbol(""),sO=Symbol(""),sM=Symbol(""),sP=Symbol(""),sF={[l8]:"Fragment",[l5]:"Teleport",[l9]:"Suspense",[l7]:"KeepAlive",[se]:"BaseTransition",[st]:"openBlock",[sn]:"createBlock",[sr]:"createElementBlock",[si]:"createVNode",[sl]:"createElementVNode",[ss]:"createCommentVNode",[so]:"createTextVNode",[sa]:"createStaticVNode",[sc]:"resolveComponent",[su]:"resolveDynamicComponent",[sh]:"resolveDirective",[sd]:"resolveFilter",[sp]:"withDirectives",[sf]:"renderList",[sg]:"renderSlot",[sm]:"createSlots",[sv]:"toDisplayString",[sy]:"mergeProps",[sb]:"normalizeClass",[s_]:"normalizeStyle",[sS]:"normalizeProps",[sx]:"guardReactiveProps",[sC]:"toHandlers",[sk]:"camelize",[sT]:"capitalize",[sw]:"toHandlerKey",[sN]:"setBlockTracking",[sA]:"pushScopeId",[sE]:"popScopeId",[sI]:"withCtx",[sR]:"unref",[sO]:"isRef",[sM]:"withMemo",[sP]:"isMemoSame"},sL={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function s$(e,t,n,r,i,l,s,o=!1,a=!1,c=!1,u=sL){var h,d,p,f;return e&&(o?(e.helper(st),e.helper((h=e.inSSR,d=c,h||d?sn:sr))):e.helper((p=e.inSSR,f=c,p||f?si:sl)),s&&e.helper(sp)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:l,directives:s,isBlock:o,disableTracking:a,isComponent:c,loc:u}}function sD(e,t=sL){return{type:17,loc:t,elements:e}}function sV(e,t=sL){return{type:15,loc:t,properties:e}}function sB(e,t){return{type:16,loc:sL,key:R(e)?sj(e,!0):e,value:t}}function sj(e,t=!1,n=sL,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function sU(e,t=sL){return{type:8,loc:t,children:e}}function sH(e,t=[],n=sL){return{type:14,loc:n,callee:e,arguments:t}}function sq(e,t,n=!1,r=!1,i=sL){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function sW(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:sL}}function sK(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,l;e.isBlock=!0,n((i=e.isComponent,r||i?si:sl)),t(st),t((l=e.isComponent,r||l?sn:sr))}}let sz=new Uint8Array([123,123]),sJ=new Uint8Array([125,125]);function sG(e){return e>=97&&e<=122||e>=65&&e<=90}function sX(e){return 32===e||10===e||9===e||12===e||13===e}function sQ(e){return 47===e||62===e||sX(e)}function sZ(e){let t=new Uint8Array(e.length);for(let n=0;n4===e.type&&e.isStatic;function s3(e){switch(e){case"Teleport":case"teleport":return l5;case"Suspense":case"suspense":return l9;case"KeepAlive":case"keep-alive":return l7;case"BaseTransition":case"base-transition":return se}}let s4=/^$|^\d|[^\$\w\xA0-\uFFFF]/,s8=/[A-Za-z_$\xA0-\uFFFF]/,s5=/[\.\?\w$\xA0-\uFFFF]/,s9=/\s+[.[]\s*|\s*[.[]\s+/g,s7=e=>4===e.type?e.content:e.loc.source,oe=e=>{let t=s7(e).trim().replace(s9,e=>e.trim()),n=0,r=[],i=0,l=0,s=null;for(let e=0;e|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/;function on(e,t,n=!1){for(let r=0;r4===e.key.type&&e.key.content===r)}return n}function op(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let of=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/;function og(e){for(let t=0;t0,isVoidTag:x,isPreTag:x,isIgnoreNewlineTag:x,isCustomElement:x,onError:s0,onWarn:s1,comments:!1,prefixIdentifiers:!1},ob=oy,o_=null,oS="",ox=null,oC=null,ok="",oT=-1,ow=-1,oN=0,oA=!1,oE=null,oI=[],oR=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=sz,this.delimiterClose=sJ,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=sz,this.delimiterClose=sJ}getPos(e){let t=1,n=e+1,r=this.newlines.length,i=-1;if(r>100){let t=-1,n=r;for(;t+1>>1;this.newlines[r]=0;t--)if(e>this.newlines[t]){i=t;break}return i>=0&&(t=i+2,n=e-this.newlines[i]),{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?sQ(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||sX(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=e||(28===this.state?this.currentSequence===sY.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(oI,{onerr:oz,ontext(e,t){oL(oP(e,t),e,t)},ontextentity(e,t,n){oL(e,t,n)},oninterpolation(e,t){if(oA)return oL(oP(e,t),e,t);let n=e+oR.delimiterOpen.length,r=t-oR.delimiterClose.length;for(;sX(oS.charCodeAt(n));)n++;for(;sX(oS.charCodeAt(r-1));)r--;let i=oP(n,r);i.includes("&")&&(i=ob.decodeEntities(i,!1)),oH({type:5,content:oK(i,!1,oq(n,r)),loc:oq(e,t)})},onopentagname(e,t){let n=oP(e,t);ox={type:1,tag:n,ns:ob.getNamespace(n,oI[0],ob.ns),tagType:0,props:[],children:[],loc:oq(e-1,t),codegenNode:void 0}},onopentagend(e){oF(e)},onclosetag(e,t){let n=oP(e,t);if(!ob.isVoidTag(n)){let r=!1;for(let e=0;e0&&oI[0].loc.start.offset;for(let n=0;n<=e;n++)o$(oI.shift(),t,n(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){ox&&oC&&(oW(oC.loc,t),0!==e&&(ok.includes("&")&&(ok=ob.decodeEntities(ok,!0)),6===oC.type?("class"===oC.name&&(ok=oU(ok).trim()),oC.value={type:2,content:ok,loc:1===e?oq(oT,ow):oq(oT-1,ow+1)},oR.inSFCRoot&&"template"===ox.tag&&"lang"===oC.name&&ok&&"html"!==ok&&oR.enterRCDATA(sZ("{let i=t.start.offset+n,l=i+e.length;return oK(e,!1,oq(i,l),0,+!!r)},o={source:s(l.trim(),n.indexOf(l,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},a=i.trim().replace(oM,"").trim(),c=i.indexOf(a),u=a.match(oO);if(u){let e;a=a.replace(oO,"").trim();let t=u[1].trim();if(t&&(e=n.indexOf(t,c+a.length),o.key=s(t,e,!0)),u[2]){let r=u[2].trim();r&&(o.index=s(r,n.indexOf(r,o.key?e+t.length:c+a.length),!0))}}return a&&(o.value=s(a,c,!0)),o}(oC.exp)))),(7!==oC.type||"pre"!==oC.name)&&ox.props.push(oC)),ok="",oT=ow=-1},oncomment(e,t){ob.comments&&oH({type:3,content:oP(e,t),loc:oq(e-4,t+3)})},onend(){let e=oS.length;for(let t=0;t64&&n<91||s3(e)||ob.isBuiltInComponent&&ob.isBuiltInComponent(e)||ob.isNativeTag&&!ob.isNativeTag(e))return!0;for(let e=0;e=0;)n--;return n}let oV=new Set(["if","else","else-if","for","slot"]),oB=/\r\n/g;function oj(e){let t="preserve"!==ob.whitespace,n=!1;for(let r=0;r3!==e.type);return 1!==t.length||1!==t[0].type||oc(t[0])?null:t[0]}function oG(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let r=n.get(e);if(void 0!==r)return r;let i=e.codegenNode;if(13!==i.type||i.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==i.patchFlag)return n.set(e,0),0;{let r=3,c=oQ(e,t);if(0===c)return n.set(e,0),0;c1)for(let i=0;i{l--};for(;lt===e:t=>e.test(t);return(e,r)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(oo))return;let l=[];for(let s=0;s`${sF[e]}: _${sF[e]}`;function o6(e,t,{helper:n,push:r,newline:i,isTS:l}){let s=n("component"===t?sc:sh);for(let n=0;n3;t.push("["),n&&t.indent(),o4(e,t,n),n&&t.deindent(),t.push("]")}function o4(e,t,n=!1,r=!0){let{push:i,newline:l}=t;for(let s=0;se||"null")}([a,c,u,i,d]),t),l(")"),f&&l(")"),p&&(l(", "),o8(p,t),l(")"))}(e,t);break;case 14:!function(e,t){let{push:n,helper:r,pure:i}=t,l=R(e.callee)?e.callee:r(e.callee);i&&n(o1),n(l+"(",-2,e),o4(e.arguments,t),n(")")}(e,t);break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:l}=t,{properties:s}=e;if(!s.length)return n("{}",-2,e);let o=s.length>1;n(o?"{":"{ "),o&&r();for(let e=0;e "),(a||o)&&(n("{"),r()),s?(a&&n("return "),E(s)?o3(s,t):o8(s,t)):o&&o8(o,t),(a||o)&&(i(),n("}")),c&&n(")")}(e,t);break;case 19:!function(e,t){let{test:n,consequent:r,alternate:i,newline:l}=e,{push:s,indent:o,deindent:a,newline:c}=t;if(4===n.type){let e,r=(e=n.content,!!s4.test(e));r&&s("("),o5(n,t),r&&s(")")}else s("("),o8(n,t),s(")");l&&o(),t.indentLevel++,l||s(" "),s("? "),o8(r,t),t.indentLevel--,l&&c(),l||s(" "),s(": ");let u=19===i.type;!u&&t.indentLevel++,o8(i,t),!u&&t.indentLevel--,l&&a(!0)}(e,t);break;case 20:!function(e,t){let{push:n,helper:r,indent:i,deindent:l,newline:s}=t,{needPauseTracking:o,needArraySpread:a}=e;a&&n("[...("),n(`_cache[${e.index}] || (`),o&&(i(),n(`${r(sN)}(-1`),e.inVOnce&&n(", true"),n("),"),s(),n("(")),n(`_cache[${e.index}] = `),o8(e.value,t),o&&(n(`).cacheIndex = ${e.index},`),s(),n(`${r(sN)}(1),`),s(),n(`_cache[${e.index}]`),l()),n(")"),a&&n(")]")}(e,t);break;case 21:o4(e.body,t,!0,!1)}}function o5(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function o9(e,t){for(let n=0;n(function(e,t,n,r){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(s2(28,t.loc)),t.exp=sj("true",!1,r)}if("if"===t.name){var i;let l=ae(e,t),s={type:9,loc:oq((i=e.loc).start.offset,i.end.offset),branches:[l]};if(n.replaceNode(s),r)return r(s,l,!0)}else{let i=n.parent.children,l=i.indexOf(e);for(;l-- >=-1;){let s=i[l];if(s&&ov(s)){n.removeNode(s);continue}if(s&&9===s.type){("else-if"===t.name||"else"===t.name)&&void 0===s.branches[s.branches.length-1].condition&&n.onError(s2(30,e.loc)),n.removeNode();let i=ae(e,t);s.branches.push(i);let l=r&&r(s,i,!1);oY(i,n),l&&l(),n.currentNode=null}else n.onError(s2(30,e.loc));break}}})(e,t,n,(e,t,r)=>{let i=n.parent.children,l=i.indexOf(e),s=0;for(;l-- >=0;){let e=i[l];e&&9===e.type&&(s+=e.branches.length)}return()=>{r?e.codegenNode=at(t,s,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=at(t,s+e.branches.length-1,n)}}));function ae(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!on(e,"for")?e.children:[e],userKey:or(e,"key"),isTemplateIf:n}}function at(e,t,n){return e.condition?sW(e.condition,an(e,t,n),sH(n.helper(ss),['""',"true"])):an(e,t,n)}function an(e,t,n){let{helper:r}=n,i=sB("key",sj(`${t}`,!1,sL,2)),{children:l}=e,s=l[0];if(1!==l.length||1!==s.type)if(1!==l.length||11!==s.type)return s$(n,r(l8),sV([i]),l,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=s.codegenNode;return oh(e,i,n),e}{let e=s.codegenNode,t=14===e.type&&e.callee===sM?e.arguments[1].returns:e;return 13===t.type&&sK(t,n),oh(t,i,n),e}}let ar=o0("for",(e,t,n)=>{let{helper:r,removeHelper:i}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(s2(31,t.loc));let i=t.forParseResult;if(!i)return void n.onError(s2(32,t.loc));ai(i);let{scopes:l}=n,{source:s,value:o,key:a,index:c}=i,u={type:11,loc:t.loc,source:s,valueAlias:o,keyAlias:a,objectIndexAlias:c,parseResult:i,children:oa(e)?e.children:[e]};n.replaceNode(u),l.vFor++;let h=r&&r(u);return()=>{l.vFor--,h&&h()}}(e,t,n,t=>{let l=sH(r(sf),[t.source]),s=oa(e),o=on(e,"memo"),a=or(e,"key",!1,!0);a&&a.type;let c=a&&(6===a.type?a.value?sj(a.value.content,!0):void 0:a.exp),u=a&&c?sB("key",c):null,h=4===t.source.type&&t.source.constType>0,d=h?64:a?128:256;return t.codegenNode=s$(n,r(l8),void 0,l,d,void 0,void 0,!0,!h,!1,e.loc),()=>{let a,{children:d}=t,p=1!==d.length||1!==d[0].type,f=oc(e)?e:s&&1===e.children.length&&oc(e.children[0])?e.children[0]:null;if(f)a=f.codegenNode,s&&u&&oh(a,u,n);else if(p)a=s$(n,r(l8),u?sV([u]):void 0,e.children,64,void 0,void 0,!0,void 0,!1);else{var g,m,y,b,_,S,x,C;a=d[0].codegenNode,s&&u&&oh(a,u,n),!h!==a.isBlock&&(a.isBlock?(i(st),i((g=n.inSSR,m=a.isComponent,g||m?sn:sr))):i((y=n.inSSR,b=a.isComponent,y||b?si:sl))),(a.isBlock=!h,a.isBlock)?(r(st),r((_=n.inSSR,S=a.isComponent,_||S?sn:sr))):r((x=n.inSSR,C=a.isComponent,x||C?si:sl))}if(o){let e=sq(al(t.parseResult,[sj("_cached")]));e.body={type:21,body:[sU(["const _memo = (",o.exp,")"]),sU(["if (_cached && _cached.el",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(sP)}(_cached, _memo)) return _cached`]),sU(["const _item = ",a]),sj("_item.memo = _memo"),sj("return _item")],loc:sL},l.arguments.push(e,sj("_cache"),sj(String(n.cached.length))),n.cached.push(null)}else l.arguments.push(sq(al(t.parseResult),a,!0))}})});function ai(e,t){e.finalized||(e.finalized=!0)}function al({value:e,key:t,index:n},r=[]){var i=[e,t,n,...r];let l=i.length;for(;l--&&!i[l];);return i.slice(0,l+1).map((e,t)=>e||sj("_".repeat(t+1),!1))}let as=sj("undefined",!1),ao=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=on(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}};function aa(e,t,n){let r=[sB("name",e),sB("fn",t)];return null!=n&&r.push(sB("key",sj(String(n),!0))),sV(r)}let ac=new WeakMap,au=(e,t)=>function(){let n,r,i,l,s;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:o,props:a}=e,c=1===e.tagType,u=c?function(e,t,n=!1){let{tag:r}=e,i=ap(r),l=or(e,"is",!1,!0);if(l)if(i){let e;if(6===l.type?e=l.value&&sj(l.value.content,!0):(e=l.exp)||(e=sj("is",!1,l.arg.loc)),e)return sH(t.helper(su),[e])}else 6===l.type&&l.value.content.startsWith("vue:")&&(r=l.value.content.slice(4));let s=s3(r)||t.isBuiltInComponent(r);return s?(n||t.helper(s),s):(t.helper(sc),t.components.add(r),op(r,"component"))}(e,t):`"${o}"`,h=M(u)&&u.callee===su,d=0,p=h||u===l5||u===l9||!c&&("svg"===o||"foreignObject"===o||"math"===o);if(a.length>0){let r=ah(e,t,void 0,c,h);n=r.props,d=r.patchFlag,l=r.dynamicPropNames;let i=r.directives;s=i&&i.length?sD(i.map(e=>(function(e,t){let n=[],r=ac.get(e);r?n.push(t.helperString(r)):(t.helper(sh),t.directives.add(e.name),n.push(op(e.name,"directive")));let{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=sj("true",!1,i);n.push(sV(e.modifiers.map(e=>sB(e,t)),i))}return sD(n,e.loc)})(e,t))):void 0,r.shouldUseBlock&&(p=!0)}if(e.children.length>0)if(u===l7&&(p=!0,d|=1024),c&&u!==l5&&u!==l7){let{slots:n,hasDynamicSlots:i}=function(e,t,n=(e,t,n,r)=>sq(e,n,!1,!0,n.length?n[0].loc:r)){t.helper(sI);let{children:r,loc:i}=e,l=[],s=[],o=t.scopes.vSlot>0||t.scopes.vFor>0,a=on(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!s6(e)&&(o=!0),l.push(sB(e||sj("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,h=[],d=new Set,p=0;for(let e=0;esB("default",n(e,void 0,t,i));c?h.length&&!h.every(om)&&(u?t.onError(s2(39,h[0].loc)):l.push(e(void 0,h))):l.push(e(void 0,r))}let f=o?2:!function e(t){for(let n=0;n0,f=!1,g=0,m=!1,y=!1,b=!1,_=!1,S=!1,x=!1,k=[],T=e=>{u.length&&(h.push(sV(ad(u),a)),u=[]),e&&h.push(e)},w=()=>{t.scopes.vFor>0&&u.push(sB(sj("ref_for",!0),sj("true")))},N=({key:e,value:n})=>{if(s6(e)){let l=e.content,s=C(l);s&&(!r||i)&&"onclick"!==l.toLowerCase()&&"onUpdate:modelValue"!==l&&!$(l)&&(_=!0),s&&$(l)&&(x=!0),s&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&oG(n,t)>0||("ref"===l?m=!0:"class"===l?y=!0:"style"===l?b=!0:"key"===l||k.includes(l)||k.push(l),r&&("class"===l||"style"===l)&&!k.includes(l)&&k.push(l))}else S=!0};for(let i=0;i"prop"===e.content)&&(g|=32);let x=t.directiveTransforms[n];if(x){let{props:n,needRuntime:r}=x(s,e,t);l||n.forEach(N),_&&i&&!s6(i)?T(sV(n,a)):u.push(...n),r&&(d.push(s),O(r)&&ac.set(s,r))}else!D(n)&&(d.push(s),p&&(f=!0))}}if(h.length?(T(),s=h.length>1?sH(t.helper(sy),h,a):h[0]):u.length&&(s=sV(ad(u),a)),S?g|=16:(y&&!r&&(g|=2),b&&!r&&(g|=4),k.length&&(g|=8),_&&(g|=32)),!f&&(0===g||32===g)&&(m||x||d.length>0)&&(g|=512),!t.inSSR&&s)switch(s.type){case 15:let A=-1,E=-1,I=!1;for(let e=0;e{if(oc(e)){let{children:n,loc:r}=e,{slotName:i,slotProps:l}=function(e,t){let n,r='"default"',i=[];for(let t=0;t0){let{props:r,directives:l}=ah(e,t,i,!1,!1);n=r,l.length&&t.onError(s2(36,l[0].loc))}return{slotName:r,slotProps:n}}(e,t),s=[t.prefixIdentifiers?"_ctx.$slots":"$slots",i,"{}","undefined","true"],o=2;l&&(s[2]=l,o=3),n.length&&(s[3]=sq([],n,!1,!1,r),o=4),t.scopeId&&!t.slotted&&(o=5),s.splice(o),e.codegenNode=sH(t.helper(sg),s,r)}},ag=(e,t,n,r)=>{let i,{loc:l,modifiers:s,arg:o}=e;if(!e.exp&&!s.length,4===o.type)if(o.isStatic){let e=o.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),i=sj(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?W(j(e)):`on:${e}`,!0,o.loc)}else i=sU([`${n.helperString(sw)}(`,o,")"]);else(i=o).children.unshift(`${n.helperString(sw)}(`),i.children.push(")");let a=e.exp;a&&!a.content.trim()&&(a=void 0);let c=n.cacheHandlers&&!a&&!n.inVOnce;if(a){let e,t=oe(a),n=!(t||(e=a,ot.test(s7(e)))),r=a.content.includes(";");(n||c&&t)&&(a=sU([`${n?"$event":"(...args)"} => ${r?"{":"("}`,a,r?"}":")"]))}let u={props:[sB(i,a||sj("() => {}",!1,l))]};return r&&(u=r(u)),c&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach(e=>e.key.isHandlerKey=!0),u},am=(e,t,n)=>{let{modifiers:r}=e,i=e.arg,{exp:l}=e;return l&&4===l.type&&!l.content.trim()&&(l=void 0),4!==i.type?(i.children.unshift("("),i.children.push(') || ""')):i.isStatic||(i.content=i.content?`${i.content} || ""`:'""'),r.some(e=>"camel"===e.content)&&(4===i.type?i.isStatic?i.content=j(i.content):i.content=`${n.helperString(sk)}(${i.content})`:(i.children.unshift(`${n.helperString(sk)}(`),i.children.push(")"))),!n.inSSR&&(r.some(e=>"prop"===e.content)&&av(i,"."),r.some(e=>"attr"===e.content)&&av(i,"^")),{props:[sB(i,l)]}},av=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},ay=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,r=e.children,i=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name]))))for(let e=0;e{if(1===e.type&&on(e,"once",!0)&&!ab.has(e)&&!t.inVOnce&&!t.inSSR)return ab.add(e),t.inVOnce=!0,t.helper(sN),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},aS=(e,t,n)=>{let r,{exp:i,arg:l}=e;if(!i)return n.onError(s2(41,e.loc)),ax();let s=i.loc.source.trim(),o=4===i.type?i.content:s,a=n.bindingMetadata[s];if("props"===a||"props-aliased"===a||"literal-const"===a||"setup-const"===a)return i.loc,ax();if(!o.trim()||!oe(i))return n.onError(s2(42,i.loc)),ax();let c=l||sj("modelValue",!0),u=l?s6(l)?`onUpdate:${j(l.content)}`:sU(['"onUpdate:" + ',l]):"onUpdate:modelValue",h=n.isTS?"($event: any)":"$event";r=sU([`${h} => ((`,i,") = $event)"]);let d=[sB(c,e.exp),sB(u,r)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(s4.test(e)?JSON.stringify(e):e)+": true").join(", "),n=l?s6(l)?`${l.content}Modifiers`:sU([l,' + "Modifiers"']):"modelModifiers";d.push(sB(n,sj(`{ ${t} }`,!1,e.loc,2)))}return ax(d)};function ax(e=[]){return{props:e}}let aC=new WeakSet,ak=(e,t)=>{if(1===e.type){let n=on(e,"memo");if(!(!n||aC.has(e))&&!t.inSSR)return aC.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&sK(r,t),e.codegenNode=sH(t.helper(sM),[n.exp,sq(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}},aT=(e,t)=>{if(1===e.type){for(let n of e.props)if(7===n.type&&"bind"===n.name&&(!n.exp||4===n.exp.type&&!n.exp.content.trim())&&n.arg){let e=n.arg;if(4===e.type&&e.isStatic){let t=j(e.content);(s8.test(t[0])||"-"===t[0])&&(n.exp=sj(t,!1,e.loc))}else t.onError(s2(53,e.loc)),n.exp=sj("",!0,e.loc)}}},aw=Symbol(""),aN=Symbol(""),aA=Symbol(""),aE=Symbol(""),aI=Symbol(""),aR=Symbol(""),aO=Symbol(""),aM=Symbol(""),aP=Symbol(""),aF=Symbol("");Object.getOwnPropertySymbols(r={[aw]:"vModelRadio",[aN]:"vModelCheckbox",[aA]:"vModelText",[aE]:"vModelSelect",[aI]:"vModelDynamic",[aR]:"withModifiers",[aO]:"withKeys",[aM]:"vShow",[aP]:"Transition",[aF]:"TransitionGroup"}).forEach(e=>{sF[e]=r[e]});let aL={parseMode:"html",isVoidTag:ea,isNativeTag:e=>el(e)||es(e)||eo(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,t=!1){return(f||(f=document.createElement("div")),t)?(f.innerHTML=`
    `,f.children[0].getAttribute("foo")):(f.innerHTML=e,f.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?aP:"TransitionGroup"===e||"transition-group"===e?aF:void 0,getNamespace(e,t,n){let r=t?t.ns:n;if(t&&2===r)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(r=0);else t&&1===r&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(r=0);if(0===r){if("svg"===e)return 1;if("math"===e)return 2}return r}},a$=y("passive,once,capture"),aD=y("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),aV=y("left,right"),aB=y("onkeyup,onkeydown,onkeypress"),aj=(e,t)=>s6(e)&&"onclick"===e.content.toLowerCase()?sj(t,!0):4!==e.type?sU(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,aU=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},aH=[e=>{1===e.type&&e.props.forEach((t,n)=>{let r,i;6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:sj("style",!0,t.loc),exp:(r=t.value.content,i=t.loc,sj(JSON.stringify(er(r)),!1,i,3)),modifiers:[],loc:t.loc})})}],aq={cloak:()=>({props:[]}),html:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s2(54,i)),t.children.length&&(n.onError(s2(55,i)),t.children.length=0),{props:[sB(sj("innerHTML",!0,i),r||sj("",!0))]}},text:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s2(56,i)),t.children.length&&(n.onError(s2(57,i)),t.children.length=0),{props:[sB(sj("textContent",!0),r?oG(r,n)>0?r:sH(n.helperString(sv),[r],i):sj("",!0))]}},model:(e,t,n)=>{let r=aS(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(s2(59,e.arg.loc));let{tag:i}=t,l=n.isCustomElement(i);if("input"===i||"textarea"===i||"select"===i||l){let s=aA,o=!1;if("input"===i||l){let r=or(t,"type");if(r){if(7===r.type)s=aI;else if(r.value)switch(r.value.content){case"radio":s=aw;break;case"checkbox":s=aN;break;case"file":o=!0,n.onError(s2(60,e.loc))}}else t.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))&&(s=aI)}else"select"===i&&(s=aE);o||(r.needRuntime=n.helper(s))}else n.onError(s2(58,e.loc));return r.props=r.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),r},on:(e,t,n)=>ag(e,t,n,t=>{let{modifiers:r}=e;if(!r.length)return t;let{key:i,value:l}=t.props[0],{keyModifiers:s,nonKeyModifiers:o,eventOptionModifiers:a}=((e,t,n,r)=>{let i=[],l=[],s=[];for(let n=0;n{let{exp:r,loc:i}=e;return r||n.onError(s2(62,i)),{props:[],needRuntime:n.helper(aM)}}},aW=Object.create(null);function aK(e,t){if(!R(e))if(!e.nodeType)return S;else e=e.innerHTML;let n=e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t),r=aW[n];if(r)return r;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let i=T({hoistStatic:!0,onError:void 0,onWarn:S},t);!i.isCustomElement&&"u">typeof customElements&&(i.isCustomElement=e=>!!customElements.get(e));let{code:l}=function(e,t={}){return function(e,t={}){var n;let r,i=t.onError||s0,l="module"===t.mode;!0===t.prefixIdentifiers?i(s2(48)):l&&i(s2(49)),t.cacheHandlers&&i(s2(50)),t.scopeId&&!l&&i(s2(51));let s=T({},t,{prefixIdentifiers:!1}),o=R(e)?function(e,t){if(oR.reset(),ox=null,oC=null,ok="",oT=-1,ow=-1,oI.length=0,oS=e,ob=T({},oy),t){let e;for(e in t)null!=t[e]&&(ob[e]=t[e])}oR.mode="html"===ob.parseMode?1:2*("sfc"===ob.parseMode),oR.inXML=1===ob.ns||2===ob.ns;let n=t&&t.delimiters;n&&(oR.delimiterOpen=sZ(n[0]),oR.delimiterClose=sZ(n[1]));let r=o_=function(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:sL}}([],e);return oR.parse(oS),r.loc=oq(0,e.length),r.children=oj(r.children),o_=null,r}(e,s):e,[a,c]=[[aT,a_,o7,ak,ar,af,au,ao,ay],{on:ag,bind:am,model:aS}];return r=function(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,hmr:i=!1,cacheHandlers:l=!1,nodeTransforms:s=[],directiveTransforms:o={},transformHoist:a=null,isBuiltInComponent:c=S,isCustomElement:u=S,expressionPlugins:h=[],scopeId:d=null,slotted:p=!0,ssr:f=!1,inSSR:g=!1,ssrCssVars:m="",bindingMetadata:y=b,inline:_=!1,isTS:x=!1,onError:C=s0,onWarn:k=s1,compatConfig:T}){let w=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),N={filename:t,selfName:w&&q(j(w[1])),prefixIdentifiers:n,hoistStatic:r,hmr:i,cacheHandlers:l,nodeTransforms:s,directiveTransforms:o,transformHoist:a,isBuiltInComponent:c,isCustomElement:u,expressionPlugins:h,scopeId:d,slotted:p,ssr:f,inSSR:g,ssrCssVars:m,bindingMetadata:y,inline:_,isTS:x,onError:C,onWarn:k,compatConfig:T,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=N.helpers.get(e)||0;return N.helpers.set(e,t+1),e},removeHelper(e){let t=N.helpers.get(e);if(t){let n=t-1;n?N.helpers.set(e,n):N.helpers.delete(e)}},helperString:e=>`_${sF[N.helper(e)]}`,replaceNode(e){N.parent.children[N.childIndex]=N.currentNode=e},removeNode(e){let t=N.parent.children,n=e?t.indexOf(e):N.currentNode?N.childIndex:-1;e&&e!==N.currentNode?N.childIndex>n&&(N.childIndex--,N.onNodeRemoved()):(N.currentNode=null,N.onNodeRemoved()),N.parent.children.splice(n,1)},onNodeRemoved:S,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){R(e)&&(e=sj(e)),N.hoists.push(e);let t=sj(`_hoisted_${N.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=function(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:sL}}(N.cached.length,e,t,n);return N.cached.push(r),r}};return N}(o,n=T({},s,{nodeTransforms:[...a,...t.nodeTransforms||[]],directiveTransforms:T({},c,t.directiveTransforms||{})})),oY(o,r),n.hoistStatic&&function e(t,n,r,i=!1,l=!1){let{children:s}=t,o=[];for(let n=0;n0){if(e>=2){a.codegenNode.patchFlag=-1,o.push(a);continue}}else{let e=a.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&oQ(a,r)>=2){let t=oZ(a);t&&(e.props=r.hoist(t))}e.dynamicProps&&(e.dynamicProps=r.hoist(e.dynamicProps))}}}else if(12===a.type&&(i?0:oG(a,r))>=2){14===a.codegenNode.type&&a.codegenNode.arguments.length>0&&a.codegenNode.arguments.push("-1"),o.push(a);continue}if(1===a.type){let n=1===a.tagType;n&&r.scopes.vSlot++,e(a,t,r,!1,l),n&&r.scopes.vSlot--}else if(11===a.type)e(a,t,r,1===a.children.length,!0);else if(9===a.type)for(let n=0;ne.key===t||e.key.content===t);return n&&n.value}}o.length&&r.transformHoist&&r.transformHoist(s,r,t)}(o,void 0,r,!!oJ(o)),n.ssr||function(e,t){let{helper:n}=t,{children:r}=e;if(1===r.length){let n=oJ(e);if(n&&n.codegenNode){let r=n.codegenNode;13===r.type&&sK(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=s$(t,n(l8),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(o,r),o.helpers=new Set([...r.helpers.keys()]),o.components=[...r.components],o.directives=[...r.directives],o.imports=r.imports,o.hoists=r.hoists,o.temps=r.temps,o.cached=r.cached,o.transformed=!0,function(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:i="template.vue.html",scopeId:l=null,optimizeImports:s=!1,runtimeGlobalName:o="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:h=!1,inSSR:d=!1}){let p={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:l,optimizeImports:s,runtimeGlobalName:o,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:h,inSSR:d,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${sF[e]}`,push(e,t=-2,n){p.code+=e},indent(){f(++p.indentLevel)},deindent(e=!1){e?--p.indentLevel:f(--p.indentLevel)},newline(){f(p.indentLevel)}};function f(e){p.push(` +`+" ".repeat(e),0)}return p}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:r,push:i,prefixIdentifiers:l,indent:s,deindent:o,newline:a,ssr:c}=n,u=Array.from(e.helpers),h=u.length>0,d=!l&&"module"!==r;!function(e,t){let{push:n,newline:r,runtimeGlobalName:i}=t,l=Array.from(e.helpers);if(l.length>0&&(n(`const _Vue = ${i} +`,-1),e.hoists.length)){let e=[si,sl,ss,so,sa].filter(e=>l.includes(e)).map(o2).join(", ");n(`const { ${e} } = _Vue +`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:r}=t;r();for(let i=0;i0)&&a()),e.directives.length&&(o6(e.directives,"directive",n),e.temps>0&&a()),e.temps>0){i("let ");for(let t=0;t0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(i(` +`,0),a()),c||i("return "),e.codegenNode?o8(e.codegenNode,n):i("null"),d&&(o(),i("}")),o(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(o,s)}(e,T({},aL,t,{nodeTransforms:[aU,...aH,...t.nodeTransforms||[]],directiveTransforms:T({},aq,t.directiveTransforms||{}),transformHoist:null}))}(e,i),s=Function(l)();return s._rc=!0,aW[n]=s}return iO(aK),e.BaseTransition=ny,e.BaseTransitionPropsValidators=ng,e.Comment=r5,e.DeprecationTypes=null,e.EffectScope=em,e.ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},e.ErrorTypeStrings=null,e.Fragment=r4,e.KeepAlive={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=iw(),r=n.ctx,i=new Map,l=new Set,s=null,o=n.suspense,{renderer:{p:a,m:c,um:u,o:{createElement:h}}}=r,d=h("div");function p(e){nJ(e),u(e,n,o,!0)}function f(e){i.forEach((t,n)=>{let r=i$(nj(t)?t.type.__asyncResolved||{}:t.type);r&&!e(r)&&g(n)})}function g(e){let t=i.get(e);!t||s&&ic(t,s)?s&&nJ(s):p(t),i.delete(e),l.delete(e)}r.activate=(e,t,n,r,i)=>{let l=e.component;c(e,t,n,0,o),a(l.vnode,e,t,n,l,o,r,e.slotScopeIds,i),rq(()=>{l.isDeactivated=!1,l.a&&z(l.a);let t=e.props&&e.props.onVnodeMounted;t&&ix(t,l.parent,e)},o)},r.deactivate=e=>{let t=e.component;rQ(t.m),rQ(t.a),c(e,d,null,1,o),rq(()=>{t.da&&z(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&ix(n,t.parent,e),t.isDeactivated=!0},o)},t7(()=>[e.include,e.exclude],([e,t])=>{e&&f(t=>nq(e,t)),t&&f(e=>!nq(t,e))},{flush:"post",deep:!0});let m=null,y=()=>{null!=m&&(rZ(n.subTree.type)?rq(()=>{i.set(m,nG(n.subTree))},n.subTree.suspense):i.set(m,nG(n.subTree)))};return nY(y),n1(y),n2(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=nG(t);if(e.type===i.type&&e.key===i.key){nJ(i);let e=i.component.da;e&&rq(e,r);return}p(e)})}),()=>{if(m=null,!t.default)return s=null;let n=t.default(),r=n[0];if(n.length>1)return s=null,n;if(!ia(r)||!(4&r.shapeFlag)&&!(128&r.shapeFlag))return s=null,r;let o=nG(r);if(o.type===r5)return s=null,o;let a=o.type,c=i$(nj(o)?o.type.__asyncResolved||{}:a),{include:u,exclude:h,max:d}=e;if(u&&(!c||!nq(u,c))||h&&c&&nq(h,c))return o.shapeFlag&=-257,s=o,r;let p=null==o.key?a:o.key,f=i.get(p);return o.el&&(o=im(o),128&r.shapeFlag&&(r.ssContent=o)),m=p,f?(o.el=f.el,o.component=f.component,o.transition&&nC(o,o.transition),o.shapeFlag|=512,l.delete(p),l.add(p)):(l.add(p),d&&l.size>parseInt(d,10)&&g(l.values().next().value)),o.shapeFlag|=256,s=o,rZ(r.type)?r:o}}},e.ReactiveEffect=ey,e.Static=r9,e.Suspense={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,l,s,o,a,c){if(null==e)!function(e,t,n,r,i,l,s,o,a){let{p:c,o:{createElement:u}}=a,h=u("div"),d=e.suspense=r1(e,i,r,t,h,n,l,s,o,a);c(null,d.pendingBranch=e.ssContent,h,null,r,d,l,s),d.deps>0?(r0(e,"onPending"),r0(e,"onFallback"),c(null,e.ssFallback,t,n,r,null,l,s),r3(d,e.ssFallback)):d.resolve(!1,!0)}(t,n,r,i,l,s,o,a,c);else{if(l&&l.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,r,i,l,s,o,{p:a,um:c,o:{createElement:u}}){let h=t.suspense=e.suspense;h.vnode=t,t.el=e.el;let d=t.ssContent,p=t.ssFallback,{activeBranch:f,pendingBranch:g,isInFallback:m,isHydrating:y}=h;if(g)h.pendingBranch=d,ic(g,d)?(a(g,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0?h.resolve():m&&!y&&(a(f,p,n,r,i,null,l,s,o),r3(h,p))):(h.pendingId=rY++,y?(h.isHydrating=!1,h.activeBranch=g):c(g,i,h),h.deps=0,h.effects.length=0,h.hiddenContainer=u("div"),m?(a(null,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0?h.resolve():(a(f,p,n,r,i,null,l,s,o),r3(h,p))):f&&ic(f,d)?(a(f,d,n,r,i,h,l,s,o),h.resolve(!0)):(a(null,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0&&h.resolve()));else if(f&&ic(f,d))a(f,d,n,r,i,h,l,s,o),r3(h,d);else if(r0(t,"onPending"),h.pendingBranch=d,512&d.shapeFlag?h.pendingId=d.component.suspenseId:h.pendingId=rY++,a(null,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0)h.resolve();else{let{timeout:e,pendingId:t}=h;e>0?setTimeout(()=>{h.pendingId===t&&h.fallback(p)},e):0===e&&h.fallback(p)}}(e,t,n,r,i,s,o,a,c)}},hydrate:function(e,t,n,r,i,l,s,o,a){let c=t.suspense=r1(t,r,n,e.parentNode,document.createElement("div"),null,i,l,s,o,!0),u=a(e,c.pendingBranch=t.ssContent,n,c,l,s);return 0===c.deps&&c.resolve(!1,!0),u},normalize:function(e){let{shapeFlag:t,children:n}=e,r=32&t;e.ssContent=r2(r?n.default:n),e.ssFallback=r?r2(n.fallback):ip(r5)}},e.Teleport={name:"Teleport",__isTeleport:!0,process(e,t,n,r,i,l,s,o,a,c){let{mc:u,pc:h,pbc:d,o:{insert:p,querySelector:f,createText:g}}=c,m=ni(t.props),{dynamicChildren:y}=t,b=(e,t,n)=>{16&e.shapeFlag&&u(e.children,t,n,i,l,s,o,a)},_=(e=t)=>{let n=ni(e.props),r=e.target=no(e.props,f),l=nu(r,e,g,p);r&&("svg"!==s&&nl(r)?s="svg":"mathml"!==s&&ns(r)&&(s="mathml"),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,l),nc(e,!1)))},S=e=>{let t=()=>{nn.get(e)===t&&(nn.delete(e),ni(e.props)&&(b(e,n,e.anchor),nc(e,!0)),_(e))};nn.set(e,t),rq(t,l)};if(null==e){let e,i=t.el=g(""),s=t.anchor=g("");if(p(i,n,r),p(s,n,r),(e=t.props)&&(e.defer||""===e.defer)||l&&l.pendingBranch)return void S(t);m&&(b(t,n,s),nc(t,!0)),_()}else{t.el=e.el;let r=t.anchor=e.anchor,u=nn.get(e);if(u){u.flags|=8,nn.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,g=t.targetAnchor=e.targetAnchor,b=ni(e.props),_=b?n:p,x=b?r:g;if("svg"===s||nl(p)?s="svg":("mathml"===s||ns(p))&&(s="mathml"),y?(d(e.dynamicChildren,y,_,i,l,s,o),rX(e,t,!0)):a||h(e,t,_,x,i,l,s,o,!1),m)b?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):na(t,n,r,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=no(t.props,f);e&&na(t,e,null,c,0)}else b&&na(t,p,g,c,1);nc(t,m)}},remove(e,t,n,{um:r,o:{remove:i}},l){let{shapeFlag:s,children:o,anchor:a,targetStart:c,targetAnchor:u,target:h,props:d}=e,p=l||!ni(d),f=nn.get(e);if(f&&(f.flags|=8,nn.delete(e),p=!1),h&&(i(c),i(u)),l&&i(a),16&s)for(let e=0;ee[r]});return n},e.createRenderer=function(e){return rK(e)},e.createSSRApp=l6,e.createSlots=function(e,t){for(let n=0;n{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e},e.createStaticVNode=function(e,t){let n=ip(r9,null,e);return n.staticCount=t,n},e.createTextVNode=iv,e.createVNode=ip,e.customRef=tE,e.defineAsyncComponent=function(e){let t;I(e)&&(e={loader:e});let{loader:n,loadingComponent:r,errorComponent:i,delay:l=200,hydrate:s,timeout:o,suspensible:a=!0,onError:c}=e,u=null,h=0,d=()=>{let e;return u||(e=u=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t((h++,u=null,d())),()=>n(e),h+1)});throw e}).then(n=>e!==u&&u?u:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nT({name:"AsyncComponentWrapper",__asyncLoader:d,__asyncHydrate(e,n,r){let i=!1;(n.bu||(n.bu=[])).push(()=>i=!0);let l=()=>{i||r()},o=s?()=>{let t=s(l,t=>(function(e,t){if(nP(e)&&"["===e.data){let n=1,r=e.nextSibling;for(;r;){if(1===r.nodeType){if(!1===t(r))break}else if(nP(r))if("]"===r.data){if(0==--n)break}else"["===r.data&&n++;r=r.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:l;t?o():d().then(()=>!n.isUnmounted&&o())},get __asyncResolved(){return t},setup(){let e=iT;if(nw(e),t)return()=>nU(t,e);let n=t=>{u=null,tV(t,e,13,!i)};if(a&&e.suspense)return d().then(t=>()=>nU(t,e)).catch(e=>(n(e),()=>i?ip(i,{error:e}):null));let s=tS(!1),c=tS(),h=tS(!!l);return l&&setTimeout(()=>{h.value=!1},l),null!=o&&setTimeout(()=>{if(!s.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),c.value=e}},o),d().then(()=>{s.value=!0,e.parent&&nH(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),c.value=e}),()=>s.value&&t?nU(t,e):c.value&&i?ip(i,{error:c.value}):r&&!h.value?nU(r,e):void 0}})},e.defineComponent=nT,e.defineCustomElement=lx,e.defineEmits=function(){return null},e.defineExpose=function(e){},e.defineModel=function(){},e.defineOptions=function(e){},e.defineProps=function(){return null},e.defineSSRCustomElement=(e,t)=>lx(e,t,l6),e.defineSlots=function(){return null},e.devtools=void 0,e.effect=function(e,t){e.effect instanceof ey&&(e=e.effect.fn);let n=new ey(e);t&&T(n,t);try{n.run()}catch(e){throw n.stop(),e}let r=n.run.bind(n);return r.effect=n,r},e.effectScope=function(e){return new em(e)},e.getCurrentInstance=iw,e.getCurrentScope=function(){return l},e.getCurrentWatcher=function(){return g},e.getTransitionRawChildren=nk,e.guardReactiveProps=ig,e.h=iV,e.handleError=tV,e.hasInjectionContext=function(){return!!(iw()||rS)},e.hydrate=(...e)=>{l0().hydrate(...e)},e.hydrateOnIdle=(e=1e4)=>t=>{let n=nV(t,{timeout:e});return()=>nB(n)},e.hydrateOnInteraction=(e=[])=>(t,n)=>{R(e)&&(e=[e]);let r=!1,i=e=>{r||(r=!0,l(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},l=()=>{n(t=>{for(let n of e)t.removeEventListener(n,i)})};return n(t=>{for(let n of e)t.addEventListener(n,i,{once:!0})}),l},e.hydrateOnMediaQuery=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},e.hydrateOnVisible=e=>(t,n)=>{let r=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){r.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:l,innerWidth:s}=window;return(t>0&&t0&&r0&&n0&&ir.disconnect()},e.initCustomFormatter=function(){},e.initDirectivesForSSR=S,e.inject=t8,e.isMemoSame=iB,e.isProxy=tg,e.isReactive=td,e.isReadonly=tp,e.isRef=t_,e.isRuntimeOnly=()=>!h,e.isShallow=tf,e.isVNode=ia,e.markRaw=tv,e.mergeDefaults=function(e,t){let n=ra(e);for(let e in t){if(e.startsWith("__skip"))continue;let r=n[e];r?E(r)||I(r)?r=n[e]={type:r,default:t[e]}:r.default=t[e]:null===r&&(r=n[e]={default:t[e]}),r&&t[`__skip_${e}`]&&(r.skipFactory=!0)}return n},e.mergeModels=function(e,t){return e&&t?E(e)&&E(t)?e.concat(t):T({},ra(e),ra(t)):e||t},e.mergeProps=iS,e.nextTick=tz,e.nodeOps=iK,e.normalizeClass=ei,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!R(t)&&(e.class=ei(t)),n&&(e.style=Y(n)),e},e.normalizeStyle=Y,e.onActivated=nW,e.onBeforeMount=nZ,e.onBeforeUnmount=n2,e.onBeforeUpdate=n0,e.onDeactivated=nK,e.onErrorCaptured=n5,e.onMounted=nY,e.onRenderTracked=n8,e.onRenderTriggered=n4,e.onScopeDispose=function(e,t=!1){l&&l.cleanups.push(e)},e.onServerPrefetch=n3,e.onUnmounted=n6,e.onUpdated=n1,e.onWatcherCleanup=tF,e.openBlock=it,e.patchProp=l_,e.popScopeId=function(){t1=null},e.provide=t4,e.proxyRefs=tN,e.pushScopeId=function(e){t1=e},e.queuePostFlushCb=tX,e.reactive=ta,e.readonly=tu,e.ref=tS,e.registerRuntimeCompiler=iO,e.render=l1,e.renderList=function(e,t,n,r){let i,l=n&&n[r],s=E(e);if(s||R(e)){let n=s&&td(e),r=!1,o=!1;n&&(r=!tf(e),o=tp(e),e=eU(e)),i=Array(e.length);for(let n=0,s=e.length;nt(e,n,void 0,l&&l[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,s=n.length;r0;return"default"!==t&&(n.name=t),it(),io(r4,null,[ip("slot",n,r&&r())],e?-2:64)}let l=e[t];l&&l._c&&(l._d=!1),it();let s=l&&function e(t){return t.some(t=>!ia(t)||t.type!==r5&&(t.type!==r4||!!e(t.children)))?t:null}(l(n)),o=n.key||s&&s.key,a=io(r4,{key:(o&&!O(o)?o:`_${t}`)+(!s&&r?"_fb":"")},s||(r?r():[]),s&&1===e._?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),l&&l._c&&(l._d=!0),a},e.resolveComponent=function(e,t){return re(n9,e,!0,t)||e},e.resolveDirective=function(e){return re("directives",e)},e.resolveDynamicComponent=function(e){return R(e)?re(n9,e,!1)||e:e||n7},e.resolveFilter=null,e.resolveTransitionHooks=n_,e.setBlockTracking=il,e.setDevtoolsHook=S,e.setTransitionHooks=nC,e.shallowReactive=tc,e.shallowReadonly=function(e){return th(e,!0,e8,tr,to)},e.shallowRef=tx,e.ssrContextKey=t5,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=ep,e.toHandlerKey=W,e.toHandlers=function(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:W(r)]=e[r];return n},e.toRaw=tm,e.toRef=function(e,t,n){if(t_(e))return e;if(I(e))return new tR(e);if(!M(e)||!(arguments.length>1))return tS(e);return new tI(e,t,n)},e.toRefs=function(e){let t=E(e)?Array(e.length):{};for(let n in e)t[n]=new tI(e,n,void 0);return t},e.toValue=function(e){return I(e)?e():tT(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=tT,e.useAttrs=function(){return ro().attrs},e.useCssModule=function(e="$style"){return b},e.useCssVars=function(e){let t=iw();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>ll(e,n))},r=()=>{let r=e(t.proxy);t.ce?ll(t.ce,r):function e(t,n){if(128&t.shapeFlag){let r=t.suspense;t=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{e(r.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)ll(t.el,n);else if(t.type===r4)t.children.forEach(t=>e(t,n));else if(t.type===r9){let{el:e,anchor:r}=t;for(;e&&(ll(e,n),e!==r);)e=e.nextSibling}}(t.subTree,r),n(r)};n0(()=>{tX(r)}),nY(()=>{t7(r,S,{flush:"post"});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),n6(()=>e.disconnect())})},e.useHost=lT,e.useId=function(){let e=iw();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""},e.useModel=function(e,t,n=b){let r=iw(),i=j(t),l=H(t),s=rx(e,i),o=tE((s,o)=>{let a,c,u=b;return t9(()=>{let t=e[i];K(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!K(s,a)&&!(u!==b&&K(e,u)))return;let h=r.vnode.props;h&&(t in h||i in h||l in h)&&(`onUpdate:${t}`in h||`onUpdate:${i}`in h||`onUpdate:${l}`in h)||(a=e,o()),r.emit(`update:${t}`,s),K(e,s)&&K(e,u)&&!K(s,c)&&o(),u=e,c=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||b:o,done:!1}:{done:!0}}},o},e.useSSRContext=()=>{},e.useShadowRoot=function(){let e=lT();return e&&e.shadowRoot},e.useSlots=function(){return ro().slots},e.useTemplateRef=function(e){let t=iw(),n=tx(null);return t&&Object.defineProperty(t.refs===b?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n},e.useTransitionState=np,e.vModelCheckbox=lj,e.vModelDynamic={created(e,t,n){lJ(e,t,n,null,"created")},mounted(e,t,n){lJ(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){lJ(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){lJ(e,t,n,r,"updated")}},e.vModelRadio=lH,e.vModelSelect=lq,e.vModelText=lB,e.vShow={name:"show",beforeMount(e,{value:t},{transition:n}){e[lt]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):lr(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),lr(e,!0),r.enter(e)):r.leave(e,()=>{lr(e,!1)}):lr(e,t))},beforeUnmount(e,{value:t}){lr(e,t)}},e.version=ij,e.warn=S,e.watch=function(e,t,n){return t7(e,t,n)},e.watchEffect=function(e,t){return t7(e,null,t)},e.watchPostEffect=function(e,t){return t7(e,null,{flush:"post"})},e.watchSyncEffect=t9,e.withAsyncContext=function(e){let t=iw(),n=iI,r=e();iA(),n&&u(!1);let i=()=>{iN(t),n&&u(!0)},l=()=>{iw()!==t&&t.scope.off(),iA(),n&&u(!1)};return P(r)&&(r=r.catch(e=>{throw i(),Promise.resolve().then(()=>Promise.resolve().then(l)),e})),[r,()=>{i(),Promise.resolve().then(l)}]},e.withCtx=t6,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){if(null===t0)return e;let n=iL(t0),r=e.dirs||(e.dirs=[]);for(let e=0;e{let n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=n=>{if(!("key"in n))return;let r=H(n.key);if(t.some(e=>e===r||lQ[e]===r))return e(n)})},e.withMemo=function(e,t,n,r){let i=n[r];if(i&&iB(i,e))return i;let l=t();return l.memo=e.slice(),l.cacheIndex=r,n[r]=l},e.withModifiers=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(n,...r)=>{for(let e=0;et6,e}({}); diff --git a/platform/backend/static/vue.global.prod.js.bak b/platform/backend/static/vue.global.prod.js.bak new file mode 100644 index 0000000..976472b --- /dev/null +++ b/platform/backend/static/vue.global.prod.js.bak @@ -0,0 +1,13 @@ +/** +* vue v3.5.32 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/var Vue=function(e){"use strict";var t,n,r;let i,l,s,o,a,c,u,h,d,p,f,g,m;function y(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}let b={},_=[],S=()=>{},x=()=>!1,C=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),k=e=>e.startsWith("onUpdate:"),T=Object.assign,w=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},N=Object.prototype.hasOwnProperty,A=(e,t)=>N.call(e,t),E=Array.isArray,I=e=>"function"==typeof e,R=e=>"string"==typeof e,O=e=>"symbol"==typeof e,M=e=>null!==e&&"object"==typeof e,P=e=>(M(e)||I(e))&&I(e.then)&&I(e.catch),F=Object.prototype.toString,L=e=>R(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,$=y(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),D=y("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),V=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},B=/-\w/g,j=V(e=>e.replace(B,e=>e.slice(1).toUpperCase())),U=/\B([A-Z])/g,H=V(e=>e.replace(U,"-$1").toLowerCase()),q=V(e=>e.charAt(0).toUpperCase()+e.slice(1)),W=V(e=>e?`on${q(e)}`:""),K=(e,t)=>!Object.is(e,t),z=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},G=e=>{let t=parseFloat(e);return isNaN(t)?e:t},X=e=>{let t=R(e)?Number(e):NaN;return isNaN(t)?e:t},Q=()=>i||(i="u">typeof globalThis?globalThis:"u">typeof self?self:"u">typeof window?window:"u">typeof global?global:{}),Z=y("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function Y(e){if(E(e)){let t={};for(let n=0;n{if(e){let n=e.split(et);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ei(e){let t="";if(R(e))t=e;else if(E(e))for(let n=0;neu(e,t))}let ed=e=>!!(e&&!0===e.__v_isRef),ep=e=>R(e)?e:null==e?"":E(e)||M(e)&&(e.toString===F||!I(e.toString))?ed(e)?ep(e.value):JSON.stringify(e,ef,2):String(e),ef=(e,t)=>{let n;if(ed(t))return ef(e,t.value);if("[object Map]"===(n=t,F.call(n)))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[eg(t,r)+" =>"]=n,e),{})};{let e;if("[object Set]"===(e=t,F.call(e)))return{[`Set(${t.size})`]:[...t.values()].map(e=>eg(e))};else{if(O(t))return eg(t);let e;if(M(t)&&!E(t)&&"[object Object]"!==(e=t,F.call(e)))return String(t)}}return t},eg=(e,t="")=>{var n;return O(e)?`Symbol(${null!=(n=e.description)?n:t})`:e};class em{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=l,!e&&l&&(this.index=(l.scopes||(l.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0==--this._on&&(l=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t0)){if(a){let e=a;for(a=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;o;){let t=o;for(o=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function ex(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function eC(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),ew(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function ek(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(eT(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function eT(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===eO)||(e.globalVersion=eO,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!ek(e))))return;e.flags|=2;let t=e.dep,n=s,r=eN;s=e,eN=!0;try{ex(e);let n=e.fn(e._value);(0===t.version||K(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{s=n,eN=r,eC(e),e.flags&=-3}}function ew(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)ew(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let eN=!0,eA=[];function eE(){eA.push(eN),eN=!1}function eI(){let e=eA.pop();eN=void 0===e||e}function eR(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=s;s=void 0;try{t()}finally{s=e}}}let eO=0;class eM{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}}class eP{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(!s||!eN||s===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==s)t=this.activeLink=new eM(s,this),s.deps?(t.prevDep=s.depsTail,s.depsTail.nextDep=t,s.depsTail=t):s.deps=s.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=s.depsTail,t.nextDep=void 0,s.depsTail.nextDep=t,s.depsTail=t,s.deps===t&&(s.deps=e)}return t}trigger(e){this.version++,eO++,this.notify(e)}notify(e){eb++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{eS()}}}let eF=new WeakMap,eL=Symbol(""),e$=Symbol(""),eD=Symbol("");function eV(e,t,n){if(eN&&s){let t=eF.get(e);t||eF.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new eP),r.map=t,r.key=n),r.track()}}function eB(e,t,n,r,i,l){let s=eF.get(e);if(!s)return void eO++;let o=e=>{e&&e.trigger()};if(eb++,"clear"===t)s.forEach(o);else{let i=E(e),l=i&&L(n);if(i&&"length"===n){let e=Number(r);s.forEach((t,n)=>{("length"===n||n===eD||!O(n)&&n>=e)&&o(t)})}else switch((void 0!==n||s.has(void 0))&&o(s.get(n)),l&&o(s.get(eD)),t){case"add":if(i)l&&o(s.get("length"));else{let t;o(s.get(eL));"[object Map]"===(t=e,F.call(t))&&o(s.get(e$))}break;case"delete":if(!i){let t;o(s.get(eL));"[object Map]"===(t=e,F.call(t))&&o(s.get(e$))}break;case"set":let a;"[object Map]"===(a=e,F.call(a))&&o(s.get(eL))}}eS()}function ej(e){let t=tm(e);return t===e?t:(eV(t,"iterate",eD),tf(e)?t:t.map(ty))}function eU(e){return eV(e=tm(e),"iterate",eD),e}function eH(e,t){return tp(e)?td(e)?tb(ty(t)):tb(t):ty(t)}let eq={__proto__:null,[Symbol.iterator](){return eW(this,Symbol.iterator,e=>eH(this,e))},concat(...e){return ej(this).concat(...e.map(e=>E(e)?ej(e):e))},entries(){return eW(this,"entries",e=>(e[1]=eH(this,e[1]),e))},every(e,t){return ez(this,"every",e,t,void 0,arguments)},filter(e,t){return ez(this,"filter",e,t,e=>e.map(e=>eH(this,e)),arguments)},find(e,t){return ez(this,"find",e,t,e=>eH(this,e),arguments)},findIndex(e,t){return ez(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return ez(this,"findLast",e,t,e=>eH(this,e),arguments)},findLastIndex(e,t){return ez(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return ez(this,"forEach",e,t,void 0,arguments)},includes(...e){return eG(this,"includes",e)},indexOf(...e){return eG(this,"indexOf",e)},join(e){return ej(this).join(e)},lastIndexOf(...e){return eG(this,"lastIndexOf",e)},map(e,t){return ez(this,"map",e,t,void 0,arguments)},pop(){return eX(this,"pop")},push(...e){return eX(this,"push",e)},reduce(e,...t){return eJ(this,"reduce",e,t)},reduceRight(e,...t){return eJ(this,"reduceRight",e,t)},shift(){return eX(this,"shift")},some(e,t){return ez(this,"some",e,t,void 0,arguments)},splice(...e){return eX(this,"splice",e)},toReversed(){return ej(this).toReversed()},toSorted(e){return ej(this).toSorted(e)},toSpliced(...e){return ej(this).toSpliced(...e)},unshift(...e){return eX(this,"unshift",e)},values(){return eW(this,"values",e=>eH(this,e))}};function eW(e,t,n){let r=eU(e),i=r[t]();return r===e||tf(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}let eK=Array.prototype;function ez(e,t,n,r,i,l){let s=eU(e),o=s!==e&&!tf(e),a=s[t];if(a!==eK[t]){let t=a.apply(e,l);return o?ty(t):t}let c=n;s!==e&&(o?c=function(t,r){return n.call(this,eH(e,t),r,e)}:n.length>2&&(c=function(t,r){return n.call(this,t,r,e)}));let u=a.call(s,c,r);return o&&i?i(u):u}function eJ(e,t,n,r){let i=eU(e),l=i!==e&&!tf(e),s=n,o=!1;i!==e&&(l?(o=0===r.length,s=function(t,r,i){return o&&(o=!1,t=eH(e,t)),n.call(this,t,eH(e,r),i,e)}):n.length>3&&(s=function(t,r,i){return n.call(this,t,r,i,e)}));let a=i[t](s,...r);return o?eH(e,a):a}function eG(e,t,n){let r=tm(e);eV(r,"iterate",eD);let i=r[t](...n);return(-1===i||!1===i)&&tg(n[0])?(n[0]=tm(n[0]),r[t](...n)):i}function eX(e,t,n=[]){eE(),eb++;let r=tm(e)[t].apply(e,n);return eS(),eI(),r}let eQ=y("__proto__,__v_isRef,__isVue"),eZ=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(O));function eY(e){O(e)||(e=String(e));let t=tm(this);return eV(t,"has",e),t.hasOwnProperty(e)}class e0{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;if("__v_raw"===t)return n===(r?i?to:ts:i?tl:ti).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let l=E(e);if(!r){let e;if(l&&(e=eq[t]))return e;if("hasOwnProperty"===t)return eY}let s=Reflect.get(e,t,t_(e)?e:n);if((O(t)?eZ.has(t):eQ(t))||(r||eV(e,"get",t),i))return s;if(t_(s)){let e=l&&L(t)?s:s.value;return r&&M(e)?tu(e):e}return M(s)?r?tu(s):ta(s):s}}class e1 extends e0{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],l=E(e)&&L(t);if(!this._isShallow){let e=tp(i);if(tf(n)||tp(n)||(i=tm(i),n=tm(n)),!l&&t_(i)&&!t_(n))if(e)return!0;else return i.value=n,!0}let s=l?Number(t)e;function e9(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function e7(e,t){let n,r=(T(n={get(n){let r=this.__v_raw,i=tm(r),l=tm(n);e||(K(n,l)&&eV(i,"get",n),eV(i,"get",l));let{has:s}=Reflect.getPrototypeOf(i),o=t?e5:e?tb:ty;return s.call(i,n)?o(r.get(n)):s.call(i,l)?o(r.get(l)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||eV(tm(t),"iterate",eL),t.size},has(t){let n=this.__v_raw,r=tm(n),i=tm(t);return e||(K(t,i)&&eV(r,"has",t),eV(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,l=i.__v_raw,s=tm(l),o=t?e5:e?tb:ty;return e||eV(s,"iterate",eL),l.forEach((e,t)=>n.call(r,o(e),o(t),i))}},e?{add:e9("add"),set:e9("set"),delete:e9("delete"),clear:e9("clear")}:{add(e){let n=tm(this),r=Reflect.getPrototypeOf(n),i=tm(e),l=t||tf(e)||tp(e)?e:i;return r.has.call(n,l)||K(e,l)&&r.has.call(n,e)||K(i,l)&&r.has.call(n,i)||(n.add(l),eB(n,"add",l,l)),this},set(e,n){t||tf(n)||tp(n)||(n=tm(n));let r=tm(this),{has:i,get:l}=Reflect.getPrototypeOf(r),s=i.call(r,e);s||(e=tm(e),s=i.call(r,e));let o=l.call(r,e);return r.set(e,n),s?K(n,o)&&eB(r,"set",e,n):eB(r,"add",e,n),this},delete(e){let t=tm(this),{has:n,get:r}=Reflect.getPrototypeOf(t),i=n.call(t,e);i||(e=tm(e),i=n.call(t,e)),r&&r.call(t,e);let l=t.delete(e);return i&&eB(t,"delete",e,void 0),l},clear(){let e=tm(this),t=0!==e.size,n=e.clear();return t&&eB(e,"clear",void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i,l=this.__v_raw,s=tm(l),o="[object Map]"===(i=s,F.call(i)),a="entries"===r||r===Symbol.iterator&&o,c=l[r](...n),u=t?e5:e?tb:ty;return e||eV(s,"iterate","keys"===r&&o?e$:eL),T(Object.create(c),{next(){let{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:a?[u(e[0]),u(e[1])]:u(e),done:t}}})}}),n);return(t,n,i)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(A(r,n)&&n in t?r:t,n,i)}let te={get:e7(!1,!1)},tt={get:e7(!1,!0)},tn={get:e7(!0,!1)},tr={get:e7(!0,!0)},ti=new WeakMap,tl=new WeakMap,ts=new WeakMap,to=new WeakMap;function ta(e){return tp(e)?e:th(e,!1,e6,te,ti)}function tc(e){return th(e,!1,e4,tt,tl)}function tu(e){return th(e,!0,e3,tn,ts)}function th(e,t,n,r,i){var l;let s;if(!M(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let o=(l=e).__v_skip||!Object.isExtensible(l)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((s=l,F.call(s)).slice(8,-1));if(0===o)return e;let a=i.get(e);if(a)return a;let c=new Proxy(e,2===o?r:n);return i.set(e,c),c}function td(e){return tp(e)?td(e.__v_raw):!!(e&&e.__v_isReactive)}function tp(e){return!!(e&&e.__v_isReadonly)}function tf(e){return!!(e&&e.__v_isShallow)}function tg(e){return!!e&&!!e.__v_raw}function tm(e){let t=e&&e.__v_raw;return t?tm(t):e}function tv(e){return!A(e,"__v_skip")&&Object.isExtensible(e)&&J(e,"__v_skip",!0),e}let ty=e=>M(e)?ta(e):e,tb=e=>M(e)?tu(e):e;function t_(e){return!!e&&!0===e.__v_isRef}function tS(e){return tC(e,!1)}function tx(e){return tC(e,!0)}function tC(e,t){return t_(e)?e:new tk(e,t)}class tk{constructor(e,t){this.dep=new eP,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:tm(e),this._value=t?e:ty(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||tf(e)||tp(e);K(e=n?e:tm(e),t)&&(this._rawValue=e,this._value=n?e:ty(e),this.dep.trigger())}}function tT(e){return t_(e)?e.value:e}let tw={get:(e,t,n)=>"__v_raw"===t?e:tT(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return t_(i)&&!t_(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tN(e){return td(e)?e:new Proxy(e,tw)}class tA{constructor(e){this.__v_isRef=!0,this._value=void 0;const t=this.dep=new eP,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function tE(e){return new tA(e)}class tI{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=O(t)?t:String(t),this._raw=tm(e);let r=!0,i=e;if(!E(e)||O(this._key)||!L(this._key))do r=!tg(i)||tf(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=tT(e)),this._value=void 0===e?this._defaultValue:e}set value(e){if(this._shallow&&t_(this._raw[this._key])){let t=this._object[this._key];if(t_(t)){t.value=e;return}}this._object[this._key]=e}get dep(){var e,t;let n;return e=this._raw,t=this._key,(n=eF.get(e))&&n.get(t)}}class tR{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}class tO{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new eP(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=eO-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&s!==this)return e_(this,!0),!0}get value(){let e=this.dep.track();return eT(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}let tM={},tP=new WeakMap;function tF(e,t=!1,n=g){if(n){let t=tP.get(n);t||tP.set(n,t=[]),t.push(e)}}function tL(e,t=1/0,n){if(t<=0||!M(e)||e.__v_skip||((n=n||new Map).get(e)||0)>=t)return e;if(n.set(e,t),t--,t_(e))tL(e.value,t,n);else if(E(e))for(let r=0;r{tL(e,t,n)});else{let r;if("[object Object]"===(r=e,F.call(r))){for(let r in e)tL(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&tL(e[r],t,n)}}}return e}function t$(e,t,n,r){try{return r?e(...r):e()}catch(e){tV(e,t,n)}}function tD(e,t,n,r){if(I(e)){let i=t$(e,t,n,r);return i&&P(i)&&i.catch(e=>{tV(e,t,n)}),i}if(E(e)){let i=[];for(let l=0;l=tY(n)?tB.push(e):tB.splice(function(e){let t=tj+1,n=tB.length;for(;t>>1,i=tB[r],l=tY(i);ltY(e)-tY(t));if(tU.length=0,tH)return void tH.push(...e);for(tq=0,tH=e;tqnull==e.id?2&e.flags?-1:1/0:e.id,t0=null,t1=null;function t2(e){let t=t0;return t0=e,t1=e&&e.type.__scopeId||null,t}function t6(e,t=t0,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&il(-1);let l=t2(t);try{i=e(...n)}finally{t2(l),r._d&&il(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function t3(e,t,n,r){let i=e.dirs,l=t&&t.dirs;for(let s=0;s1)return n&&I(t)?t.call(r&&r.proxy):t}}let t5=Symbol.for("v-scx");function t9(e,t){return t7(e,null,{flush:"sync"})}function t7(e,t,n=b){let{flush:r}=n,i=T({},n),s=iT;i.call=(e,t,n)=>tD(e,s,t,n);let o=!1;return"post"===r?i.scheduler=e=>{rq(e,s&&s.suspense)}:"sync"!==r&&(o=!0,i.scheduler=(e,t)=>{t?e():tJ(e)}),i.augmentJob=e=>{t&&(e.flags|=4),o&&(e.flags|=2,s&&(e.id=s.uid,e.i=s))},function(e,t,n=b){let r,i,s,o,{immediate:a,deep:c,once:u,scheduler:h,augmentJob:d,call:p}=n,f=e=>c?e:tf(e)||!1===c||0===c?tL(e,1):tL(e),m=!1,y=!1;if(t_(e)?(i=()=>e.value,m=tf(e)):td(e)?(i=()=>f(e),m=!0):E(e)?(y=!0,m=e.some(e=>td(e)||tf(e)),i=()=>e.map(e=>t_(e)?e.value:td(e)?f(e):I(e)?p?p(e,2):e():void 0)):i=I(e)?t?p?()=>p(e,2):e:()=>{if(s){eE();try{s()}finally{eI()}}let t=g;g=r;try{return p?p(e,3,[o]):e(o)}finally{g=t}}:S,t&&c){let e=i,t=!0===c?1/0:c;i=()=>tL(e(),t)}let _=l,x=()=>{r.stop(),_&&_.active&&w(_.effects,r)};if(u&&t){let e=t;t=(...t)=>{e(...t),x()}}let C=y?Array(e.length).fill(tM):tM,k=e=>{if(1&r.flags&&(r.dirty||e))if(t){let e=r.run();if(c||m||(y?e.some((e,t)=>K(e,C[t])):K(e,C))){s&&s();let n=g;g=r;try{let n=[e,C===tM?void 0:y&&C[0]===tM?[]:C,o];C=e,p?p(t,3,n):t(...n)}finally{g=n}}}else r.run()};return d&&d(k),(r=new ey(i)).scheduler=h?()=>h(k,!1):k,o=e=>tF(e,!1,r),s=r.onStop=()=>{let e=tP.get(r);if(e){if(p)p(e,4);else for(let t of e)t();tP.delete(r)}},t?a?k(!0):C=r.run():h?h(k.bind(null,!0),!0):r.run(),x.pause=r.pause.bind(r),x.resume=r.resume.bind(r),x.stop=x,x}(e,t,i)}function ne(e,t,n){let r,i=this.proxy,l=R(e)?e.includes(".")?nt(i,e):()=>i[e]:e.bind(i,i);I(t)?r=t:(r=t.handler,n=t);let s=iN(this),o=t7(l,r.bind(i),n);return s(),o}function nt(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;ee&&(e.disabled||""===e.disabled),nl=e=>"u">typeof SVGElement&&e instanceof SVGElement,ns=e=>"function"==typeof MathMLElement&&e instanceof MathMLElement,no=(e,t)=>{let n=e&&e.to;return R(n)?t?t(n):null:n};function na(e,t,n,{o:{insert:r},m:i},l=2){0===l&&r(e.targetAnchor,t,n);let{el:s,anchor:o,shapeFlag:a,children:c,props:u}=e,h=2===l;if(h&&r(s,t,n),(!h||ni(u))&&16&a)for(let e=0;e{e.isMounted=!0}),n2(()=>{e.isUnmounting=!0}),e}let nf=[Function,Array],ng={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:nf,onEnter:nf,onAfterEnter:nf,onEnterCancelled:nf,onBeforeLeave:nf,onLeave:nf,onAfterLeave:nf,onLeaveCancelled:nf,onBeforeAppear:nf,onAppear:nf,onAfterAppear:nf,onAppearCancelled:nf},nm=e=>{let t=e.subTree;return t.component?nm(t.component):t};function nv(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==r5){t=n;break}}return t}let ny={name:"BaseTransition",props:ng,setup(e,{slots:t}){let n=iw(),r=np();return()=>{let i=t.default&&nk(t.default(),!0);if(!i||!i.length)return;let l=nv(i),s=tm(e),{mode:o}=s;if(r.isLeaving)return nS(l);let a=nx(l);if(!a)return nS(l);let c=n_(a,s,r,n,e=>c=e);a.type!==r5&&nC(a,c);let u=n.subTree&&nx(n.subTree);if(u&&u.type!==r5&&!ic(u,a)&&nm(n).type!==r5){let e=n_(u,s,r,n);if(nC(u,e),"out-in"===o&&a.type!==r5)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,u=void 0},nS(l);"in-out"===o&&a.type!==r5?e.delayLeave=(e,t,n)=>{nb(r,u)[String(u.key)]=u,e[nh]=()=>{t(),e[nh]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{n(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return l}}};function nb(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function n_(e,t,n,r,i){let{appear:l,mode:s,persisted:o=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:u,onEnterCancelled:h,onBeforeLeave:d,onLeave:p,onAfterLeave:f,onLeaveCancelled:g,onBeforeAppear:m,onAppear:y,onAfterAppear:b,onAppearCancelled:_}=t,S=String(e.key),x=nb(n,e),C=(e,t)=>{e&&tD(e,r,9,t)},k=(e,t)=>{let n=t[1];C(e,t),E(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},T={mode:s,persisted:o,beforeEnter(t){let r=a;if(!n.isMounted)if(!l)return;else r=m||a;t[nh]&&t[nh](!0);let i=x[S];i&&ic(e,i)&&i.el[nh]&&i.el[nh](),C(r,[t])},enter(t){if(x[S]===e)return;let r=c,i=u,s=h;if(!n.isMounted)if(!l)return;else r=y||c,i=b||u,s=_||h;let o=!1;t[nd]=e=>{o||(o=!0,e?C(s,[t]):C(i,[t]),T.delayedLeave&&T.delayedLeave(),t[nd]=void 0)};let a=t[nd].bind(null,!1);r?k(r,[t,a]):a()},leave(t,r){let i=String(e.key);if(t[nd]&&t[nd](!0),n.isUnmounting)return r();C(d,[t]);let l=!1;t[nh]=n=>{l||(l=!0,r(),n?C(g,[t]):C(f,[t]),t[nh]=void 0,x[i]===e&&delete x[i])};let s=t[nh].bind(null,!1);x[i]=e,p?k(p,[t,s]):s()},clone(e){let l=n_(e,t,n,r,i);return i&&i(l),l}};return T}function nS(e){if(nH(e))return(e=im(e)).children=null,e}function nx(e){if(!nH(e))return e.type.__isTeleport&&e.children?nv(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&I(n.default))return n.default()}}function nC(e,t){6&e.shapeFlag&&e.component?(e.transition=t,nC(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function nk(e,t=!1,n){let r=[],i=0;for(let l=0;l1)for(let e=0;enE(e,t&&(E(t)?t[l]:t),n,r,i));if(nj(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&nE(e,t,n,r.component.subTree);return}let l=4&r.shapeFlag?iL(r.component):r.el,s=i?null:l,{i:o,r:a}=e,c=t&&t.r,u=o.refs===b?o.refs={}:o.refs,h=o.setupState,d=tm(h),p=h===b?x:e=>!nN(u,e)&&A(d,e),f=(e,t)=>!(t&&nN(u,t));if(null!=c&&c!==a&&(nI(t),R(c)?(u[c]=null,p(c)&&(h[c]=null)):t_(c)&&(f(c,t.k)&&(c.value=null),t.k&&(u[t.k]=null))),I(a))t$(a,o,12,[s,u]);else{let t=R(a),r=t_(a);if(t||r){let o=()=>{if(e.f){let n=t?p(a)?h[a]:u[a]:f()||!e.k?a.value:u[e.k];if(i)E(n)&&w(n,l);else if(E(n))n.includes(l)||n.push(l);else if(t)u[a]=[l],p(a)&&(h[a]=u[a]);else{let t=[l];f(a,e.k)&&(a.value=t),e.k&&(u[e.k]=t)}}else t?(u[a]=s,p(a)&&(h[a]=s)):r&&(f(a,e.k)&&(a.value=s),e.k&&(u[e.k]=s))};if(s){let t=()=>{o(),nA.delete(e)};t.id=-1,nA.set(e,t),rq(t,n)}else nI(e),o()}}}function nI(e){let t=nA.get(e);t&&(t.flags|=8,nA.delete(e))}let nR=!1,nO=()=>{nR||(console.error("Hydration completed but contains mismatches."),nR=!0)},nM=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},nP=e=>8===e.nodeType;function nF(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:l,parentNode:s,remove:o,insert:a,createComment:c}}=e,u=(n,r,o,c,b,_=!1)=>{_=_||!!r.dynamicChildren;let S=nP(n)&&"["===n.data,x=()=>f(n,r,o,c,b,S),{type:C,ref:k,shapeFlag:T,patchFlag:w}=r,N=n.nodeType;r.el=n,-2===w&&(_=!1,r.dynamicChildren=null);let A=null;switch(C){case r8:3!==N?""===r.children?(a(r.el=i(""),s(n),n),A=n):A=x():(n.data!==r.children&&(nO(),n.data=r.children),A=l(n));break;case r5:y(n)?(A=l(n),m(r.el=n.content.firstChild,n,o)):A=8!==N||S?x():l(n);break;case r9:if(S&&(N=(n=l(n)).nodeType),1===N||3===N){A=n;let e=!r.children.length;for(let t=0;t{s=s||!!t.dynamicChildren;let{type:a,props:c,patchFlag:u,shapeFlag:h,dirs:p,transition:f}=t,g="input"===a||"option"===a;if(g||-1!==u){let a;p&&t3(t,null,n,"created");let b=!1;if(y(e)){b=rG(null,f)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(b){let e=r.getAttribute("class");e&&(r.$cls=e),f.beforeEnter(r)}m(r,e,n),t.el=e=r}if(16&h&&!(c&&(c.innerHTML||c.textContent))){let r=d(e.firstChild,t,e,n,i,l,s);for(;r;){nD(e,1)||nO();let t=r;r=r.nextSibling,o(t)}}else if(8&h){let n=t.children;` +`===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1));let{textContent:r}=e;r!==n&&r!==n.replace(/\r\n|\r/g,` +`)&&(nD(e,0)||nO(),e.textContent=t.children)}if(c){if(g||!s||48&u){let t=e.tagName.includes("-");for(let i in c)(g&&(i.endsWith("value")||"indeterminate"===i)||C(i)&&!$(i)||"."===i[0]||t&&!$(i))&&r(e,i,null,c[i],void 0,n)}else if(c.onClick)r(e,"onClick",null,c.onClick,void 0,n);else if(4&u&&td(c.style))for(let e in c.style)c.style[e]}(a=c&&c.onVnodeBeforeMount)&&ix(a,n,t),p&&t3(t,null,n,"beforeMount"),((a=c&&c.onVnodeMounted)||p||b)&&r6(()=>{a&&ix(a,n,t),b&&f.enter(e),p&&t3(t,null,n,"mounted")},i)}return e.nextSibling},d=(e,t,r,s,o,c,h)=>{h=h||!!t.dynamicChildren;let d=t.children,p=d.length;for(let t=0;t{let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let h=s(e),p=d(l(e),t,h,n,r,i,o);return p&&nP(p)&&"]"===p.data?l(t.anchor=p):(nO(),a(t.anchor=c("]"),h,p),p)},f=(e,t,r,i,a,c)=>{if(nD(e.parentElement,1)||nO(),t.el=null,c){let t=g(e);for(;;){let n=l(e);if(n&&n!==t)o(n);else break}}let u=l(e),h=s(e);return o(e),n(null,t,h,u,r,i,nM(h),a),r&&(r.vnode.el=t.el,rR(r,t.el)),u},g=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=l(e))&&nP(e)&&(e.data===t&&r++,e.data===n))if(0===r)return l(e);else r--;return e},m=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){n(null,e,t),tZ(),t._vnode=e;return}u(t.firstChild,e,null,null,null),tZ(),t._vnode=e},u]}let nL="data-allow-mismatch",n$={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function nD(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(nL);)e=e.parentElement;let n=e&&e.getAttribute(nL);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(n$[t])}}let nV=Q().requestIdleCallback||(e=>setTimeout(e,1)),nB=Q().cancelIdleCallback||(e=>clearTimeout(e)),nj=e=>!!e.type.__asyncLoader;function nU(e,t){let{ref:n,props:r,children:i,ce:l}=t.vnode,s=ip(e,r,i);return s.ref=n,s.ce=l,delete t.vnode.ce,s}let nH=e=>e.type.__isKeepAlive;function nq(e,t){let n;if(E(e))return e.some(e=>nq(e,t));if(R(e))return e.split(",").includes(t);return"[object RegExp]"===(n=e,F.call(n))&&(e.lastIndex=0,e.test(t))}function nW(e,t){nz(e,"a",t)}function nK(e,t){nz(e,"da",t)}function nz(e,t,n=iT){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(nX(t,r,n),n){let e=n.parent;for(;e&&e.parent;)nH(e.parent.vnode)&&function(e,t,n,r){let i=nX(t,e,r,!0);n6(()=>{w(r[t],i)},n)}(r,t,n,e),e=e.parent}}function nJ(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function nG(e){return 128&e.shapeFlag?e.ssContent:e}function nX(e,t,n=iT,r=!1){if(n){let i=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...r)=>{eE();let i=iN(n),l=tD(t,n,e,r);return i(),eI(),l});return r?i.unshift(l):i.push(l),l}}let nQ=e=>(t,n=iT)=>{iI&&"sp"!==e||nX(e,(...e)=>t(...e),n)},nZ=nQ("bm"),nY=nQ("m"),n0=nQ("bu"),n1=nQ("u"),n2=nQ("bum"),n6=nQ("um"),n3=nQ("sp"),n4=nQ("rtg"),n8=nQ("rtc");function n5(e,t=iT){nX("ec",e,t)}let n9="components",n7=Symbol.for("v-ndc");function re(e,t,n=!0,r=!1){let i=t0||iT;if(i){let n=i.type;if(e===n9){let e=i$(n,!1);if(e&&(e===t||e===j(t)||e===q(j(t))))return n}let l=rt(i[e]||n[e],t)||rt(i.appContext[e],t);return!l&&r?n:l}}function rt(e,t){return e&&(e[t]||e[j(t)]||e[q(j(t))])}let rn=e=>e?iE(e)?iL(e):rn(e.parent):null,rr=T(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=>rn(e.parent),$root:e=>rn(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>rh(e),$forceUpdate:e=>e.f||(e.f=()=>{tJ(e.update)}),$nextTick:e=>e.n||(e.n=tz.bind(e.proxy)),$watch:e=>ne.bind(e)}),ri=(e,t)=>e!==b&&!e.__isScriptSetup&&A(e,t),rl={get({_:e},t){let n,r;if("__v_skip"===t)return!0;let{ctx:i,setupState:l,data:s,props:o,accessCache:a,type:c,appContext:u}=e;if("$"!==t[0]){let e=a[t];if(void 0!==e)switch(e){case 1:return l[t];case 2:return s[t];case 4:return i[t];case 3:return o[t]}else{if(ri(l,t))return a[t]=1,l[t];if(s!==b&&A(s,t))return a[t]=2,s[t];if(A(o,t))return a[t]=3,o[t];if(i!==b&&A(i,t))return a[t]=4,i[t];rc&&(a[t]=0)}}let h=rr[t];return h?("$attrs"===t&&eV(e.attrs,"get",""),h(e)):(n=c.__cssModules)&&(n=n[t])?n:i!==b&&A(i,t)?(a[t]=4,i[t]):A(r=u.config.globalProperties,t)?r[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:l}=e;return ri(i,t)?(i[t]=n,!0):r!==b&&A(r,t)?(r[t]=n,!0):!A(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:l,type:s}},o){let a;return!!(n[o]||e!==b&&"$"!==o[0]&&A(e,o)||ri(t,o)||A(l,o)||A(r,o)||A(rr,o)||A(i.config.globalProperties,o)||(a=s.__cssModules)&&a[o])},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:A(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},rs=T({},rl,{get(e,t){if(t!==Symbol.unscopables)return rl.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!Z(t)});function ro(e){let t=iw();return t.setupContext||(t.setupContext=iF(t))}function ra(e){return E(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let rc=!0;function ru(e,t,n){tD(E(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function rh(e){let t,n=e.type,{mixins:r,extends:i}=n,{mixins:l,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,a=s.get(n);return a?t=a:l.length||r||i?(t={},l.length&&l.forEach(e=>rd(t,e,o,!0)),rd(t,n,o)):t=n,M(n)&&s.set(n,t),t}function rd(e,t,n,r=!1){let{mixins:i,extends:l}=t;for(let s in l&&rd(e,l,n,!0),i&&i.forEach(t=>rd(e,t,n,!0)),t)if(r&&"expose"===s);else{let r=rp[s]||n&&n[s];e[s]=r?r(e[s],t[s]):t[s]}return e}let rp={data:rf,props:ry,emits:ry,methods:rv,computed:rv,beforeCreate:rm,created:rm,beforeMount:rm,mounted:rm,beforeUpdate:rm,updated:rm,beforeDestroy:rm,beforeUnmount:rm,destroyed:rm,unmounted:rm,activated:rm,deactivated:rm,errorCaptured:rm,serverPrefetch:rm,components:rv,directives:rv,watch:function(e,t){if(!e)return t;if(!t)return e;let n=T(Object.create(null),e);for(let r in t)n[r]=rm(e[r],t[r]);return n},provide:rf,inject:function(e,t){return rv(rg(e),rg(t))}};function rf(e,t){return t?e?function(){return T(I(e)?e.call(this,this):e,I(t)?t.call(this,this):t)}:t:e}function rg(e){if(E(e)){let t={};for(let n=0;n"modelValue"===t||"model-value"===t?e.modelModifiers:e[`${t}Modifiers`]||e[`${j(t)}Modifiers`]||e[`${H(t)}Modifiers`];function rC(e,t,...n){let r;if(e.isUnmounted)return;let i=e.vnode.props||b,l=n,s=t.startsWith("update:"),o=s&&rx(i,t.slice(7));o&&(o.trim&&(l=n.map(e=>R(e)?e.trim():e)),o.number&&(l=n.map(G)));let a=i[r=W(t)]||i[r=W(j(t))];!a&&s&&(a=i[r=W(H(t))]),a&&tD(a,e,6,l);let c=i[r+"Once"];if(c){if(e.emitted){if(e.emitted[r])return}else e.emitted={};e.emitted[r]=!0,tD(c,e,6,l)}}let rk=new WeakMap;function rT(e,t){return!!e&&!!C(t)&&(A(e,(t=t.slice(2).replace(/Once$/,""))[0].toLowerCase()+t.slice(1))||A(e,H(t))||A(e,t))}function rw(e){let t,n,{type:r,vnode:i,proxy:l,withProxy:s,propsOptions:[o],slots:a,attrs:c,emit:u,render:h,renderCache:d,props:p,data:f,setupState:g,ctx:m,inheritAttrs:y}=e,b=t2(e);try{if(4&i.shapeFlag){let e=s||l;t=iy(h.call(e,e,d,p,g,f,m)),n=c}else t=iy(r.length>1?r(p,{attrs:c,slots:a,emit:u}):r(p,null)),n=r.props?c:rN(c)}catch(n){r7.length=0,tV(n,e,1),t=ip(r5)}let _=t;if(n&&!1!==y){let e=Object.keys(n),{shapeFlag:t}=_;e.length&&7&t&&(o&&e.some(k)&&(n=rA(n,o)),_=im(_,n,!1,!0))}return i.dirs&&((_=im(_,null,!1,!0)).dirs=_.dirs?_.dirs.concat(i.dirs):i.dirs),i.transition&&nC(_,i.transition),t=_,t2(b),t}let rN=e=>{let t;for(let n in e)("class"===n||"style"===n||C(n))&&((t||(t={}))[n]=e[n]);return t},rA=(e,t)=>{let n={};for(let r in e)k(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function rE(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;iObject.getPrototypeOf(e)===rO;function rP(e,t,n,r){let i,[l,s]=e.propsOptions,o=!1;if(t)for(let a in t){let c;if($(a))continue;let u=t[a];l&&A(l,c=j(a))?s&&s.includes(c)?(i||(i={}))[c]=u:n[c]=u:rT(e.emitsOptions,a)||a in r&&u===r[a]||(r[a]=u,o=!0)}if(s){let t=tm(n),r=i||b;for(let i=0;i"_"===e||"_ctx"===e||"$stable"===e,rV=e=>E(e)?e.map(iy):[iy(e)],rB=(e,t,n)=>{if(t._n)return t;let r=t6((...e)=>rV(t(...e)),n);return r._c=!1,r},rj=(e,t,n)=>{let r=e._ctx;for(let n in e){if(rD(n))continue;let i=e[n];if(I(i))t[n]=rB(n,i,r);else if(null!=i){let e=rV(i);t[n]=()=>e}}},rU=(e,t)=>{let n=rV(t);e.slots.default=()=>n},rH=(e,t,n)=>{for(let r in t)(n||!rD(r))&&(e[r]=t[r])},rq=r6;function rW(e){return rK(e,nF)}function rK(e,t){var n;let r,i;Q().__VUE__=!0;let{insert:l,remove:s,patchProp:o,createElement:a,createText:c,createComment:h,setText:d,setElementText:p,parentNode:f,nextSibling:g,setScopeId:m=S,insertStaticContent:y}=e,x=(e,t,n,r=null,i=null,l=null,s,o=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!ic(e,t)&&(r=es(e),et(e,i,l,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:c,ref:u,shapeFlag:h}=t;switch(c){case r8:C(e,t,n,r);break;case r5:k(e,t,n,r);break;case r9:null==e&&w(t,n,r,s);break;case r4:B(e,t,n,r,i,l,s,o,a);break;default:1&h?N(e,t,n,r,i,l,s,o,a):6&h?U(e,t,n,r,i,l,s,o,a):64&h?c.process(e,t,n,r,i,l,s,o,a,ec):128&h&&c.process(e,t,n,r,i,l,s,o,a,ec)}null!=u&&i?nE(u,e&&e.ref,l,t||e,!t):null==u&&e&&null!=e.ref&&nE(e.ref,null,l,e,!0)},C=(e,t,n,r)=>{if(null==e)l(t.el=c(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&d(n,t.children)}},k=(e,t,n,r)=>{null==e?l(t.el=h(t.children||""),n,r):t.el=e.el},w=(e,t,n,r)=>{[e.el,e.anchor]=y(e.children,t,n,r,e.el,e.anchor)},N=(e,t,n,r,i,l,s,o,a)=>{if("svg"===t.type?s="svg":"math"===t.type&&(s="mathml"),null==e)R(t,n,r,i,l,s,o,a);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),L(e,t,i,l,s,o,a)}finally{n&&n._endPatch()}}},R=(e,t,n,r,i,s,c,u)=>{let h,d,{props:f,shapeFlag:g,transition:m,dirs:y}=e;if(h=e.el=a(e.type,s,f&&f.is,f),8&g?p(h,e.children):16&g&&F(e.children,h,null,r,i,rz(e,s),c,u),y&&t3(e,null,r,"created"),O(h,e,e.scopeId,c,r),f){for(let e in f)"value"===e||$(e)||o(h,e,null,f[e],s,r);"value"in f&&o(h,"value",null,f.value,s),(d=f.onVnodeBeforeMount)&&ix(d,r,e)}y&&t3(e,null,r,"beforeMount");let b=rG(i,m);b&&m.beforeEnter(h),l(h,t,n),((d=f&&f.onVnodeMounted)||b||y)&&rq(()=>{d&&ix(d,r,e),b&&m.enter(h),y&&t3(e,null,r,"mounted")},i)},O=(e,t,n,r,i)=>{if(n&&m(e,n),r)for(let t=0;t{for(let c=a;c{let a,c=t.el=e.el,{patchFlag:u,dynamicChildren:h,dirs:d}=t;u|=16&e.patchFlag;let f=e.props||b,g=t.props||b;if(n&&rJ(n,!1),(a=g.onVnodeBeforeUpdate)&&ix(a,n,t,e),d&&t3(t,e,n,"beforeUpdate"),n&&rJ(n,!0),(f.innerHTML&&null==g.innerHTML||f.textContent&&null==g.textContent)&&p(c,""),h?D(e.dynamicChildren,h,c,n,r,rz(t,i),l):s||X(e,t,c,null,n,r,rz(t,i),l,!1),u>0){if(16&u)V(c,f,g,n,i);else if(2&u&&f.class!==g.class&&o(c,"class",null,g.class,i),4&u&&o(c,"style",f.style,g.style,i),8&u){let e=t.dynamicProps;for(let t=0;t{a&&ix(a,n,t,e),d&&t3(t,e,n,"updated")},r)},D=(e,t,n,r,i,l,s)=>{for(let o=0;o{if(t!==n){if(t!==b)for(let l in t)$(l)||l in n||o(e,l,t[l],null,i,r);for(let l in n){if($(l))continue;let s=n[l],a=t[l];s!==a&&"value"!==l&&o(e,l,a,s,i,r)}"value"in n&&o(e,"value",t.value,n.value,i)}},B=(e,t,n,r,i,s,o,a,u)=>{let h=t.el=e?e.el:c(""),d=t.anchor=e?e.anchor:c(""),{patchFlag:p,dynamicChildren:f,slotScopeIds:g}=t;g&&(a=a?a.concat(g):g),null==e?(l(h,n,r),l(d,n,r),F(t.children||[],n,d,i,s,o,a,u)):p>0&&64&p&&f&&e.dynamicChildren&&e.dynamicChildren.length===f.length?(D(e.dynamicChildren,f,n,i,s,o,a),(null!=t.key||i&&t===i.subTree)&&rX(e,t,!0)):X(e,t,n,d,i,s,o,a,u)},U=(e,t,n,r,i,l,s,o,a)=>{t.slotScopeIds=o,null==e?512&t.shapeFlag?i.ctx.activate(t,n,r,s,a):q(t,n,r,i,l,s,a):W(e,t,a)},q=(e,t,n,r,i,l,s)=>{var o,a,c;let h,d,p,f=(o=e,a=r,c=i,h=o.type,d=(a?a.appContext:o.appContext)||iC,(p={uid:ik++,vnode:o,type:h,parent:a,appContext:d,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new em(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:a?a.provides:Object.create(d.provides),ids:a?a.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,r=!1){let i=r?rL:n.propsCache,l=i.get(t);if(l)return l;let s=t.props,o={},a=[],c=!1;if(!I(t)){let i=t=>{c=!0;let[r,i]=e(t,n,!0);T(o,r),i&&a.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}if(!s&&!c)return M(t)&&i.set(t,_),_;if(E(s))for(let e=0;e{let r=e(t,n,!0);r&&(a=!0,T(o,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return s||a?(E(s)?s.forEach(e=>o[e]=null):T(o,s),M(t)&&i.set(t,o),o):(M(t)&&i.set(t,null),null)}(h,d),emit:null,emitted:null,propsDefaults:b,inheritAttrs:h.inheritAttrs,ctx:b,data:b,props:b,attrs:b,slots:b,refs:b,setupState:b,setupContext:null,suspense:c,suspenseId:c?c.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null}).ctx={_:p},p.root=a?a.root:p,p.emit=rC.bind(null,p),o.ce&&o.ce(p),e.component=p);if(nH(e)&&(f.ctx.renderer=ec),function(e,t=!1,n=!1){t&&u(t);let{props:r,children:i}=e.vnode,l=iE(e);!function(e,t,n,r=!1){let i={},l=Object.create(rO);for(let n in e.propsDefaults=Object.create(null),rP(e,t,i,l),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:tc(i):e.type.props?e.props=i:e.props=l,e.attrs=l}(e,r,l,t);var s=n||t;let o=e.slots=Object.create(rO);if(32&e.vnode.shapeFlag){let e=i._;e?(rH(o,i,s),s&&J(o,"_",e,!0)):rj(i,o)}else i&&rU(e,i);l&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,rl);let{setup:r}=n;if(r){eE();let n=e.setupContext=r.length>1?iF(e):null,i=iN(e),l=t$(r,e,0,[e.props,n]),s=P(l);if(eI(),i(),(s||e.sp)&&!nj(e)&&nw(e),s){if(l.then(iA,iA),t)return l.then(n=>{iR(e,n,t)}).catch(t=>{tV(t,e,0)});e.asyncDep=l}else iR(e,l,t)}else iM(e,t)}(e,t),t&&u(!1)}(f,!1,s),f.asyncDep){if(i&&i.registerDep(f,K,s),!e.el){let r=f.subTree=ip(r5);k(null,r,t,n),e.placeholder=r.el}}else K(f,e,t,n,i,l,s)},W=(e,t,n)=>{let r=t.component=e.component;if(function(e,t,n){let{props:r,children:i,component:l}=e,{props:s,children:o,patchFlag:a}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!i||!!o)&&(!o||!o.$stable)||r!==s&&(r?!s||rE(r,s,c):!!s);if(1024&a)return!0;if(16&a)return r?rE(r,s,c):!!s;if(8&a){let e=t.dynamicProps;for(let t=0;t{e.scope.on();let a=e.effect=new ey(()=>{if(e.isMounted){let t,{next:n,bu:r,u:i,parent:a,vnode:u}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=u.el,G(e,n,o)),t.asyncDep.then(()=>{rq(()=>{e.isUnmounted||c()},l)});return}}let h=n;rJ(e,!1),n?(n.el=u.el,G(e,n,o)):n=u,r&&z(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&ix(t,a,n,u),rJ(e,!0);let d=rw(e),p=e.subTree;e.subTree=d,x(p,d,f(p.el),es(p),e,l,s),n.el=d.el,null===h&&rR(e,d.el),i&&rq(i,l),(t=n.props&&n.props.onVnodeUpdated)&&rq(()=>ix(t,a,n,u),l)}else{let o,{el:a,props:c}=t,{bm:u,m:h,parent:d,root:p,type:f}=e,g=nj(t);if(rJ(e,!1),u&&z(u),!g&&(o=c&&c.onVnodeBeforeMount)&&ix(o,d,t),rJ(e,!0),a&&i){let t=()=>{e.subTree=rw(e),i(a,e.subTree,e,l,null)};g&&f.__asyncHydrate?f.__asyncHydrate(a,e,t):t()}else{p.ce&&p.ce._hasShadowRoot()&&p.ce._injectChildStyle(f,e.parent?e.parent.type:void 0);let i=e.subTree=rw(e);x(null,i,n,r,e,l,s),t.el=i.el}if(h&&rq(h,l),!g&&(o=c&&c.onVnodeMounted)){let e=t;rq(()=>ix(o,d,e),l)}(256&t.shapeFlag||d&&nj(d.vnode)&&256&d.vnode.shapeFlag)&&e.a&&rq(e.a,l),e.isMounted=!0,t=n=r=null}});e.scope.off();let c=e.update=a.run.bind(a),u=e.job=a.runIfDirty.bind(a);u.i=e,u.id=e.uid,a.scheduler=()=>tJ(u),rJ(e,!0),c()},G=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){let{props:i,attrs:l,vnode:{patchFlag:s}}=e,o=tm(i),[a]=e.propsOptions,c=!1;if((r||s>0)&&!(16&s)){if(8&s){let n=e.vnode.dynamicProps;for(let r=0;r{let{vnode:r,slots:i}=e,l=!0,s=b;if(32&r.shapeFlag){let e=t._;e?n&&1===e?l=!1:rH(i,t,n):(l=!t.$stable,rj(t,i)),s=t}else t&&(rU(e,t),s={default:1});if(l)for(let e in i)rD(e)||null!=s[e]||delete i[e]})(e,t.children,n),eE(),tQ(e),eI()},X=(e,t,n,r,i,l,s,o,a=!1)=>{let c=e&&e.children,u=e?e.shapeFlag:0,h=t.children,{patchFlag:d,shapeFlag:f}=t;if(d>0){if(128&d)return void Y(c,h,n,r,i,l,s,o,a);else if(256&d)return void Z(c,h,n,r,i,l,s,o,a)}8&f?(16&u&&el(c,i,l),h!==c&&p(n,h)):16&u?16&f?Y(c,h,n,r,i,l,s,o,a):el(c,i,l,!0):(8&u&&p(n,""),16&f&&F(h,n,r,i,l,s,o,a))},Z=(e,t,n,r,i,l,s,o,a)=>{let c;e=e||_,t=t||_;let u=e.length,h=t.length,d=Math.min(u,h);for(c=0;ch?el(e,i,l,!0,!1,d):F(t,n,r,i,l,s,o,a,d)},Y=(e,t,n,r,i,l,s,o,a)=>{let c=0,u=t.length,h=e.length-1,d=u-1;for(;c<=h&&c<=d;){let r=e[c],u=t[c]=a?ib(t[c]):iy(t[c]);if(ic(r,u))x(r,u,n,null,i,l,s,o,a);else break;c++}for(;c<=h&&c<=d;){let r=e[h],c=t[d]=a?ib(t[d]):iy(t[d]);if(ic(r,c))x(r,c,n,null,i,l,s,o,a);else break;h--,d--}if(c>h){if(c<=d){let e=d+1,h=ed)for(;c<=h;)et(e[c],i,l,!0),c++;else{let p,f=c,g=c,m=new Map;for(c=g;c<=d;c++){let e=t[c]=a?ib(t[c]):iy(t[c]);null!=e.key&&m.set(e.key,c)}let y=0,b=d-g+1,S=!1,C=0,k=Array(b);for(c=0;c=b){et(u,i,l,!0);continue}if(null!=u.key)r=m.get(u.key);else for(p=g;p<=d;p++)if(0===k[p-g]&&ic(u,t[p])){r=p;break}void 0===r?et(u,i,l,!0):(k[r-g]=c+1,r>=C?C=r:S=!0,x(u,t[r],n,null,i,l,s,o,a),y++)}let T=S?function(e){let t,n,r,i,l,s=e.slice(),o=[0],a=e.length;for(t=0;t>1]]0&&(s[t]=o[r-1]),o[r]=t)}}for(r=o.length,i=o[r-1];r-- >0;)o[r]=i,i=s[i];return o}(k):_;for(p=T.length-1,c=b-1;c>=0;c--){let e=g+c,h=t[e],d=t[e+1],f=e+1{let{el:o,type:a,transition:c,children:u,shapeFlag:h}=e;if(6&h)return void ee(e.component.subTree,t,n,r);if(128&h)return void e.suspense.move(t,n,r);if(64&h)return void a.move(e,t,n,ec);if(a===r4){l(o,t,n);for(let e=0;e{let i;for(;e&&e!==t;)i=g(e),l(e,n,r),e=i;l(t,n,r)})(e,t,n);if(2!==r&&1&h&&c)if(0===r)c.beforeEnter(o),l(o,t,n),rq(()=>c.enter(o),i);else{let{leave:r,delayLeave:i,afterLeave:a}=c,u=()=>{e.ctx.isUnmounted?s(o):l(o,t,n)},h=()=>{o._isLeaving&&o[nh](!0),r(o,()=>{u(),a&&a()})};i?i(o,u,h):h()}else l(o,t,n)},et=(e,t,n,r=!1,i=!1)=>{let l,{type:s,props:o,ref:a,children:c,dynamicChildren:u,shapeFlag:h,patchFlag:d,dirs:p,cacheIndex:f,memo:g}=e;if(-2===d&&(i=!1),null!=a&&(eE(),nE(a,null,n,e,!0),eI()),null!=f&&(t.renderCache[f]=void 0),256&h)return void t.ctx.deactivate(e);let m=1&h&&p,y=!nj(e);if(y&&(l=o&&o.onVnodeBeforeUnmount)&&ix(l,t,e),6&h)ei(e.component,n,r);else{if(128&h)return void e.suspense.unmount(n,r);m&&t3(e,null,t,"beforeUnmount"),64&h?e.type.remove(e,t,n,ec,r):u&&!u.hasOnce&&(s!==r4||d>0&&64&d)?el(u,t,n,!1,!0):(s===r4&&384&d||!i&&16&h)&&el(c,t,n),r&&en(e)}let b=null!=g&&null==f;(y&&(l=o&&o.onVnodeUnmounted)||m||b)&&rq(()=>{l&&ix(l,t,e),m&&t3(e,null,t,"unmounted"),b&&(e.el=null)},n)},en=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===r4)return void er(n,r);if(t===r9)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=g(e),s(e),e=n;s(t)})(e);let l=()=>{s(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,s=()=>t(n,l);r?r(e.el,l,s):s()}else l()},er=(e,t)=>{let n;for(;e!==t;)n=g(e),s(e),e=n;s(t)},ei=(e,t,n)=>{let{bum:r,scope:i,job:l,subTree:s,um:o,m:a,a:c}=e;rQ(a),rQ(c),r&&z(r),i.stop(),l&&(l.flags|=8,et(s,e,t,n)),o&&rq(o,t),rq(()=>{e.isUnmounted=!0},t)},el=(e,t,n,r=!1,i=!1,l=0)=>{for(let s=l;s{if(6&e.shapeFlag)return es(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=g(e.anchor||e.el),n=t&&t[nr];return n?g(n):t},eo=!1,ea=(e,t,n)=>{let r;null==e?t._vnode&&(et(t._vnode,null,null,!0),r=t._vnode.component):x(t._vnode||null,e,t,null,null,null,n),t._vnode=e,eo||(eo=!0,tQ(r),tZ(),eo=!1)},ec={p:x,um:et,m:ee,r:en,mt:q,mc:F,pc:X,pbc:D,n:es,o:e};return t&&([r,i]=t(ec)),{render:ea,hydrate:r,createApp:(n=r,function(e,t=null){I(e)||(e=T({},e)),null==t||M(t)||(t=null);let r=rb(),i=new WeakSet,l=[],s=!1,o=r.app={_uid:r_++,_component:e,_props:t,_container:null,_context:r,_instance:null,version:ij,get config(){return r.config},set config(v){},use:(e,...t)=>(i.has(e)||(e&&I(e.install)?(i.add(e),e.install(o,...t)):I(e)&&(i.add(e),e(o,...t))),o),mixin:e=>(r.mixins.includes(e)||r.mixins.push(e),o),component:(e,t)=>t?(r.components[e]=t,o):r.components[e],directive:(e,t)=>t?(r.directives[e]=t,o):r.directives[e],mount(i,l,a){if(!s){let c=o._ceVNode||ip(e,t);return c.appContext=r,!0===a?a="svg":!1===a&&(a=void 0),l&&n?n(c,i):ea(c,i,a),s=!0,o._container=i,i.__vue_app__=o,iL(c.component)}},onUnmount(e){l.push(e)},unmount(){s&&(tD(l,o._instance,16),ea(null,o._container),delete o._container.__vue_app__)},provide:(e,t)=>(r.provides[e]=t,o),runWithContext(e){let t=rS;rS=o;try{return e()}finally{rS=t}}};return o})}}function rz({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function rJ({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function rG(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function rX(e,t,n=!1){let r=e.children,i=t.children;if(E(r)&&E(i))for(let e=0;ee.__isSuspense,rY=0;function r0(e,t){let n=e.props&&e.props[t];I(n)&&n()}function r1(e,t,n,r,i,l,s,o,a,c,u=!1){var h;let d,p,{p:f,m:g,um:m,n:y,o:{parentNode:b,remove:_}}=c,S=null!=(d=(h=e).props&&h.props.suspensible)&&!1!==d;S&&t&&t.pendingBranch&&(p=t.pendingId,t.deps++);let x=e.props?X(e.props.timeout):void 0,C=l,k={vnode:e,parent:t,parentComponent:n,namespace:s,container:r,hiddenContainer:i,deps:0,pendingId:rY++,timeout:"number"==typeof x?x:-1,activeBranch:null,isFallbackMountPending:!1,pendingBranch:null,isInFallback:!u,isHydrating:u,isUnmounted:!1,effects:[],resolve(e=!1,n=!1){let{vnode:r,activeBranch:i,pendingBranch:s,pendingId:o,effects:a,parentComponent:c,container:u,isInFallback:h}=k,d=!1;k.isHydrating?k.isHydrating=!1:!e&&((d=i&&s.transition&&"out-in"===s.transition.mode)&&(i.transition.afterLeave=()=>{o===k.pendingId&&(g(s,u,l===C?y(i):l,0),tX(a),h&&r.ssFallback&&(r.ssFallback.el=null))}),i&&!k.isFallbackMountPending&&(b(i.el)===u&&(l=y(i)),m(i,c,k,!0),!d&&h&&r.ssFallback&&rq(()=>r.ssFallback.el=null,k)),d||g(s,u,l,0)),k.isFallbackMountPending=!1,r3(k,s),k.pendingBranch=null,k.isInFallback=!1;let f=k.parent,_=!1;for(;f;){if(f.pendingBranch){f.effects.push(...a),_=!0;break}f=f.parent}_||d||tX(a),k.effects=[],S&&t&&t.pendingBranch&&p===t.pendingId&&(t.deps--,0!==t.deps||n||t.resolve()),r0(r,"onResolve")},fallback(e){if(!k.pendingBranch)return;let{vnode:t,activeBranch:n,parentComponent:r,container:i,namespace:l}=k;r0(t,"onFallback");let s=y(n),c=()=>{k.isFallbackMountPending=!1,k.isInFallback&&(f(null,e,i,s,r,null,l,o,a),r3(k,e))},u=e.transition&&"out-in"===e.transition.mode;u&&(k.isFallbackMountPending=!0,n.transition.afterLeave=c),k.isInFallback=!0,m(n,r,null,!0),u||c()},move(e,t,n){k.activeBranch&&g(k.activeBranch,e,t,n),k.container=e},next:()=>k.activeBranch&&y(k.activeBranch),registerDep(e,t,n){let r=!!k.pendingBranch;r&&k.deps++;let i=e.vnode.el;e.asyncDep.catch(t=>{tV(t,e,0)}).then(l=>{if(e.isUnmounted||k.isUnmounted||k.pendingId!==e.suspenseId)return;iA(),e.asyncResolved=!0;let{vnode:o}=e;iR(e,l,!1),i&&(o.el=i);let a=!i&&e.subTree.el;t(e,o,b(i||e.subTree.el),i?null:y(e.subTree),k,s,n),a&&(o.placeholder=null,_(a)),rR(e,o.el),r&&0==--k.deps&&k.resolve()})},unmount(e,t){k.isUnmounted=!0,k.activeBranch&&m(k.activeBranch,n,e,t),k.pendingBranch&&m(k.pendingBranch,n,e,t)}};return k}function r2(e){let t;if(I(e)){let n=ii&&e._c;n&&(e._d=!1,it()),e=e(),n&&(e._d=!0,t=ie,ir())}return E(e)&&(e=function(e){let t;for(let n=0;nt!==e)),e}function r6(e,t){t&&t.pendingBranch?E(e)?t.effects.push(...e):t.effects.push(e):tX(e)}function r3(e,t){e.activeBranch=t;let{vnode:n,parentComponent:r}=e,i=t.el;for(;!i&&t.component;)i=(t=t.component.subTree).el;n.el=i,r&&r.subTree===n&&(r.vnode.el=i,rR(r,i))}let r4=Symbol.for("v-fgt"),r8=Symbol.for("v-txt"),r5=Symbol.for("v-cmt"),r9=Symbol.for("v-stc"),r7=[],ie=null;function it(e=!1){r7.push(ie=e?null:[])}function ir(){r7.pop(),ie=r7[r7.length-1]||null}let ii=1;function il(e,t=!1){ii+=e,e<0&&ie&&t&&(ie.hasOnce=!0)}function is(e){return e.dynamicChildren=ii>0?ie||_:null,ir(),ii>0&&ie&&ie.push(e),e}function io(e,t,n,r,i){return is(ip(e,t,n,r,i,!0))}function ia(e){return!!e&&!0===e.__v_isVNode}function ic(e,t){return e.type===t.type&&e.key===t.key}let iu=({key:e})=>null!=e?e:null,ih=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?R(e)||t_(e)||I(e)?{i:t0,r:e,k:t,f:!!n}:e:null);function id(e,t=null,n=null,r=0,i=null,l=+(e!==r4),s=!1,o=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&iu(t),ref:t&&ih(t),scopeId:t1,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:l,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:t0};return o?(i_(a,n),128&l&&e.normalize(a)):n&&(a.shapeFlag|=R(n)?8:16),ii>0&&!s&&ie&&(a.patchFlag>0||6&l)&&32!==a.patchFlag&&ie.push(a),a}let ip=function(e,t=null,n=null,r=0,i=null,l=!1){var s;if(e&&e!==n7||(e=r5),ia(e)){let r=im(e,t,!0);return n&&i_(r,n),ii>0&&!l&&ie&&(6&r.shapeFlag?ie[ie.indexOf(e)]=r:ie.push(r)),r.patchFlag=-2,r}if(I(s=e)&&"__vccOpts"in s&&(e=e.__vccOpts),t){let{class:e,style:n}=t=ig(t);e&&!R(e)&&(t.class=ei(e)),M(n)&&(tg(n)&&!E(n)&&(n=T({},n)),t.style=Y(n))}let o=R(e)?1:rZ(e)?128:e.__isTeleport?64:M(e)?4:2*!!I(e);return id(e,t,n,r,i,o,l,!0)};function ig(e){return e?tg(e)||rM(e)?T({},e):e:null}function im(e,t,n=!1,r=!1){let{props:i,ref:l,patchFlag:s,children:o,transition:a}=e,c=t?iS(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&iu(c),ref:t&&t.ref?n&&l?E(l)?l.concat(ih(t)):[l,ih(t)]:ih(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:o,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==r4?-1===s?16:16|s:s,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&im(e.ssContent),ssFallback:e.ssFallback&&im(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&r&&nC(u,a.clone(u)),u}function iv(e=" ",t=0){return ip(r8,null,e,t)}function iy(e){return null==e||"boolean"==typeof e?ip(r5):E(e)?ip(r4,null,e.slice()):ia(e)?ib(e):ip(r8,null,String(e))}function ib(e){return null===e.el&&-1!==e.patchFlag||e.memo?e:im(e)}function i_(e,t){let n=0,{shapeFlag:r}=e;if(null==t)t=null;else if(E(t))n=16;else if("object"==typeof t)if(65&r){let n=t.default;n&&(n._c&&(n._d=!1),i_(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;r||rM(t)?3===r&&t0&&(1===t0.slots._?t._=1:(t._=2,e.patchFlag|=1024)):t._ctx=t0}else I(t)?(t={default:t,_ctx:t0},n=32):(t=String(t),64&r?(n=16,t=[iv(t)]):n=8);e.children=t,e.shapeFlag|=n}function iS(...e){let t={};for(let n=0;niT||t0;c=e=>{iT=e},u=e=>{iI=e};let iN=e=>{let t=iT;return c(e),e.scope.on(),()=>{e.scope.off(),c(t)}},iA=()=>{iT&&iT.scope.off(),c(null)};function iE(e){return 4&e.vnode.shapeFlag}let iI=!1;function iR(e,t,n){I(t)?e.render=t:M(t)&&(e.setupState=tN(t)),iM(e,n)}function iO(e){h=e,d=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,rs))}}function iM(e,t,n){let r=e.type;if(!e.render){if(!t&&h&&!r.render){let t=r.template||rh(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:l,compilerOptions:s}=r,o=T(T({isCustomElement:n,delimiters:l},i),s);r.render=h(t,o)}}e.render=r.render||S,d&&d(e)}{let t=iN(e);eE();try{!function(e){let t=rh(e),n=e.proxy,r=e.ctx;rc=!1,t.beforeCreate&&ru(t.beforeCreate,e,"bc");let{data:i,computed:l,methods:s,watch:o,provide:a,inject:c,created:u,beforeMount:h,mounted:d,beforeUpdate:p,updated:f,activated:g,deactivated:m,beforeUnmount:y,unmounted:b,render:_,renderTracked:x,renderTriggered:C,errorCaptured:k,serverPrefetch:T,expose:w,inheritAttrs:N,components:A,directives:O}=t;if(c&&function(e,t){for(let n in E(e)&&(e=rg(e)),e){let r,i=e[n];t_(r=M(i)?"default"in i?t8(i.from||n,i.default,!0):t8(i.from||n):t8(i))?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(c,r),s)for(let e in s){let t=s[e];I(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);M(t)&&(e.data=ta(t))}if(rc=!0,l)for(let e in l){let t=l[e],i=I(t)?t.bind(n,n):I(t.get)?t.get.bind(n,n):S,s=iD({get:i,set:!I(t)&&I(t.set)?t.set.bind(n):S});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>s.value,set:e=>s.value=e})}if(o)for(let e in o)!function e(t,n,r,i){let l=i.includes(".")?nt(r,i):()=>r[i];if(R(t)){let e=n[t];I(e)&&t7(l,e,void 0)}else if(I(t))t7(l,t.bind(r),void 0);else if(M(t))if(E(t))t.forEach(t=>e(t,n,r,i));else{let e=I(t.handler)?t.handler.bind(r):n[t.handler];I(e)&&t7(l,e,t)}}(o[e],r,n,e);if(a){let e=I(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{t4(t,e[t])})}function P(e,t){E(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(u&&ru(u,e,"c"),P(nZ,h),P(nY,d),P(n0,p),P(n1,f),P(nW,g),P(nK,m),P(n5,k),P(n8,x),P(n4,C),P(n2,y),P(n6,b),P(n3,T),E(w))if(w.length){let t=e.exposed||(e.exposed={});w.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||(e.exposed={});_&&e.render===S&&(e.render=_),null!=N&&(e.inheritAttrs=N),A&&(e.components=A),O&&(e.directives=O)}(e)}finally{eI(),t()}}}let iP={get:(e,t)=>(eV(e,"get",""),e[t])};function iF(e){return{attrs:new Proxy(e.attrs,iP),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function iL(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(tN(tv(e.exposed)),{get:(t,n)=>n in t?t[n]:n in rr?rr[n](e):void 0,has:(e,t)=>t in e||t in rr})):e.proxy}function i$(e,t=!0){return I(e)?e.displayName||e.name:e.name||t&&e.__name}let iD=(e,t)=>(function(e,t=!1){let n,r;return I(e)?n=e:(n=e.get,r=e.set),new tO(n,r,t)})(e,iI);function iV(e,t,n){try{il(-1);let r=arguments.length;if(2!==r)return r>3?n=Array.prototype.slice.call(arguments,2):3===r&&ia(n)&&(n=[n]),ip(e,t,n);if(!M(t)||E(t))return ip(e,null,t);if(ia(t))return ip(e,null,[t]);return ip(e,t)}finally{il(1)}}function iB(e,t){let n=e.memo;if(n.length!=t.length)return!1;for(let e=0;e0&&ie&&ie.push(e),!0}let ij="3.5.32",iU="u">typeof window&&window.trustedTypes;if(iU)try{m=iU.createPolicy("vue",{createHTML:e=>e})}catch(e){}let iH=m?e=>m.createHTML(e):e=>e,iq="u">typeof document?document:null,iW=iq&&iq.createElement("template"),iK={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="svg"===t?iq.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?iq.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?iq.createElement(e,{is:n}):iq.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>iq.createTextNode(e),createComment:e=>iq.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>iq.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,l){let s=n?n.previousSibling:t.lastChild;if(i&&(i===l||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==l&&(i=i.nextSibling););else{iW.innerHTML=iH("svg"===r?`${e}`:"mathml"===r?`${e}`:e);let i=iW.content;if("svg"===r||"mathml"===r){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[s?s.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},iz="transition",iJ="animation",iG=Symbol("_vtc"),iX={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},iQ=T({},ng,iX),iZ=((t=(e,{slots:t})=>iV(ny,i1(e),t)).displayName="Transition",t.props=iQ,t),iY=(e,t=[])=>{E(e)?e.forEach(e=>e(...t)):e&&e(...t)},i0=e=>!!e&&(E(e)?e.some(e=>e.length>1):e.length>1);function i1(e){let t={};for(let n in e)n in iX||(t[n]=e[n]);if(!1===e.css)return t;let{name:n="v",type:r,duration:i,enterFromClass:l=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:a=l,appearActiveClass:c=s,appearToClass:u=o,leaveFromClass:h=`${n}-leave-from`,leaveActiveClass:d=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,f=function(e){if(null==e)return null;{if(M(e))return[function(e){return X(e)}(e.enter),function(e){return X(e)}(e.leave)];let t=function(e){return X(e)}(e);return[t,t]}}(i),g=f&&f[0],m=f&&f[1],{onBeforeEnter:y,onEnter:b,onEnterCancelled:_,onLeave:S,onLeaveCancelled:x,onBeforeAppear:C=y,onAppear:k=b,onAppearCancelled:w=_}=t,N=(e,t,n,r)=>{e._enterCancelled=r,i6(e,t?u:o),i6(e,t?c:s),n&&n()},A=(e,t)=>{e._isLeaving=!1,i6(e,h),i6(e,p),i6(e,d),t&&t()},E=e=>(t,n)=>{let i=e?k:b,s=()=>N(t,e,n);iY(i,[t,s]),i3(()=>{i6(t,e?a:l),i2(t,e?u:o),i0(i)||i8(t,r,g,s)})};return T(t,{onBeforeEnter(e){iY(y,[e]),i2(e,l),i2(e,s)},onBeforeAppear(e){iY(C,[e]),i2(e,a),i2(e,c)},onEnter:E(!1),onAppear:E(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>A(e,t);i2(e,h),e._enterCancelled?(i2(e,d),le(e)):(le(e),i2(e,d)),i3(()=>{e._isLeaving&&(i6(e,h),i2(e,p),i0(S)||i8(e,r,m,n))}),iY(S,[e,n])},onEnterCancelled(e){N(e,!1,void 0,!0),iY(_,[e])},onAppearCancelled(e){N(e,!0,void 0,!0),iY(w,[e])},onLeaveCancelled(e){A(e),iY(x,[e])}})}function i2(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[iG]||(e[iG]=new Set)).add(t)}function i6(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[iG];n&&(n.delete(t),n.size||(e[iG]=void 0))}function i3(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let i4=0;function i8(e,t,n,r){let i=e._endId=++i4,l=()=>{i===e._endId&&r()};if(null!=n)return setTimeout(l,n);let{type:s,timeout:o,propCount:a}=i5(e,t);if(!s)return r();let c=s+"end",u=0,h=()=>{e.removeEventListener(c,d),l()},d=t=>{t.target===e&&++u>=a&&h()};setTimeout(()=>{u(n[e]||"").split(", "),i=r(`${iz}Delay`),l=r(`${iz}Duration`),s=i9(i,l),o=r(`${iJ}Delay`),a=r(`${iJ}Duration`),c=i9(o,a),u=null,h=0,d=0;t===iz?s>0&&(u=iz,h=s,d=l.length):t===iJ?c>0&&(u=iJ,h=c,d=a.length):d=(u=(h=Math.max(s,c))>0?s>c?iz:iJ:null)?u===iz?l.length:a.length:0;let p=u===iz&&/\b(?:transform|all)(?:,|$)/.test(r(`${iz}Property`).toString());return{type:u,timeout:h,propCount:d,hasTransform:p}}function i9(e,t){for(;e.lengthi7(t)+i7(e[n])))}function i7(e){return"auto"===e?0:1e3*Number(e.slice(0,-1).replace(",","."))}function le(e){return(e?e.ownerDocument:document).body.offsetHeight}let lt=Symbol("_vod"),ln=Symbol("_vsh");function lr(e,t){e.style.display=t?e[lt]:"none",e[ln]=!t}let li=Symbol("");function ll(e,t){if(1===e.nodeType){let r=e.style,i="";for(let e in t){var n;let l=null==(n=t[e])?"initial":"string"==typeof n?""===n?" ":n:String(n);r.setProperty(`--${e}`,l),i+=`--${e}: ${l};`}r[li]=i}}let ls=/(?:^|;)\s*display\s*:/,lo=/\s*!important$/;function la(e,t,n){if(E(n))n.forEach(n=>la(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let r=function(e,t){let n=lu[t];if(n)return n;let r=j(t);if("filter"!==r&&r in e)return lu[t]=r;r=q(r);for(let n=0;n111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2),l_=(e,t,n,r,i,l)=>{let s="svg"===i;if("class"===t){var o;let t;o=r,(t=e[iG])&&(o=(o?[o,...t]:[...t]).join(" ")),null==o?e.removeAttribute("class"):s?e.setAttribute("class",o):e.className=o}else"style"===t?function(e,t,n){let r=e.style,i=R(n),l=!1;if(n&&!i){if(t)if(R(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&la(r,t,"")}else for(let e in t)null==n[e]&&la(r,e,"");for(let e in n)"display"===e&&(l=!0),la(r,e,n[e])}else if(i){if(t!==n){let e=r[li];e&&(n+=";"+e),r.cssText=n,l=ls.test(n)}}else t&&e.removeAttribute("style");lt in e&&(e[lt]=l?r.display:"",e[ln]&&(r.display="none"))}(e,n,r):C(t)?k(t)||function(e,t,n,r=null){let i=e[lg]||(e[lg]={}),l=i[t];if(n&&l)l.value=n;else{let[a,c]=function(e){let t;if(lm.test(e)){let n;for(t={};n=e.match(lm);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):H(e.slice(2)),t]}(t);if(n){var s,o;let l;lf(e,a,i[t]=(s=n,o=r,(l=e=>{if(e._vts){if(e._vts<=l.attached)return}else e._vts=Date.now();tD(function(e,t){if(!E(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,l.value),o,5,[e])}).value=s,l.attached=lv||(ly.then(()=>lv=0),lv=Date.now()),l),c)}else l&&(e.removeEventListener(a,l,c),i[t]=void 0)}}(e,t,r,l):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,r){if(r)return!!("innerHTML"===t||"textContent"===t||t in e&&lb(t)&&I(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"sandbox"===t&&"IFRAME"===e.tagName||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(lb(t)&&R(n))&&t in e}(e,t,r,s))?e._isVueCE&&(function(e,t){let n=e._def.props;if(!n)return!1;let r=j(t);return Array.isArray(n)?n.some(e=>j(e)===r):Object.keys(n).some(e=>j(e)===r)}(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!R(r)))?lp(e,j(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),ld(e,t,r,s)):(lp(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||ld(e,t,r,s,l,"value"!==t))},lS={};function lx(e,t,n){let r,i=nT(e,t);"[object Object]"===(r=i,F.call(r))&&(i=T({},i,t));class l extends lk{constructor(e){super(i,e,n)}}return l.def=i,l}let lC="u">typeof HTMLElement?HTMLElement:class{};class lk extends lC{constructor(e,t={},n=l2){super(),this._def=e,this._props=t,this._createApp=n,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&n!==l2?this._root=this.shadowRoot:!1!==e.shadowRoot?(this.attachShadow(T({},e.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;this.shadowRoot||this._resolved||this._parseSlots(),this._connected=!0;let e=this;for(;e=e&&(e.assignedSlot||e.parentNode||e.host);)if(e instanceof lk){this._parent=e;break}this._instance||(this._resolved?this._mount(this._def):e&&e._pendingResolve?this._pendingResolve=e._pendingResolve.then(()=>{this._pendingResolve=void 0,this._resolveDef()}):this._resolveDef())}_setParent(e=this._parent){e&&(this._instance.parent=e._instance,this._inheritParentContext(e))}_inheritParentContext(e=this._parent){e&&this._app&&Object.setPrototypeOf(this._app._context.provides,e._instance.provides)}disconnectedCallback(){this._connected=!1,tz(()=>{!this._connected&&(this._ob&&(this._ob.disconnect(),this._ob=null),this._app&&this._app.unmount(),this._instance&&(this._instance.ce=void 0),this._app=this._instance=null,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(e){for(let t of e)this._setAttr(t.attributeName)}_resolveDef(){if(this._pendingResolve)return;for(let e=0;e{let n;this._resolved=!0,this._pendingResolve=void 0;let{props:r,styles:i}=e;if(r&&!E(r))for(let e in r){let t=r[e];(t===Number||t&&t.type===Number)&&(e in this._props&&(this._props[e]=X(this._props[e])),(n||(n=Object.create(null)))[j(e)]=!0)}this._numberProps=n,this._resolveProps(e),this.shadowRoot&&this._applyStyles(i),this._mount(e)},t=this._def.__asyncLoader;t?this._pendingResolve=t().then(t=>{t.configureApp=this._def.configureApp,e(this._def=t,!0)}):e(this._def)}_mount(e){this._app=this._createApp(e),this._inheritParentContext(),e.configureApp&&e.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);let t=this._instance&&this._instance.exposed;if(t)for(let e in t)A(this,e)||Object.defineProperty(this,e,{get:()=>tT(t[e])})}_resolveProps(e){let{props:t}=e,n=E(t)?t:Object.keys(t||{});for(let e of Object.keys(this))"_"!==e[0]&&n.includes(e)&&this._setProp(e,this[e]);for(let e of n.map(j))Object.defineProperty(this,e,{get(){return this._getProp(e)},set(t){this._setProp(e,t,!0,!this._patching)}})}_setAttr(e){if(e.startsWith("data-v-"))return;let t=this.hasAttribute(e),n=t?this.getAttribute(e):lS,r=j(e);t&&this._numberProps&&this._numberProps[r]&&(n=X(n)),this._setProp(r,n,!1,!0)}_getProp(e){return this._props[e]}_setProp(e,t,n=!0,r=!1){if(t!==this._props[e]&&(this._dirty=!0,t===lS?delete this._props[e]:(this._props[e]=t,"key"===e&&this._app&&(this._app._ceVNode.key=t)),r&&this._instance&&this._update(),n)){let n=this._ob;n&&(this._processMutations(n.takeRecords()),n.disconnect()),!0===t?this.setAttribute(H(e),""):"string"==typeof t||"number"==typeof t?this.setAttribute(H(e),t+""):t||this.removeAttribute(H(e)),n&&n.observe(this,{attributes:!0})}}_update(){let e=this._createVNode();this._app&&(e.appContext=this._app._context),l1(e,this._root)}_createVNode(){let e={};this.shadowRoot||(e.onVnodeMounted=e.onVnodeUpdated=this._renderSlots.bind(this));let t=ip(this._def,T(e,this._props));return this._instance||(t.ce=e=>{this._instance=e,e.ce=this,e.isCE=!0;let t=(e,t)=>{let n;this.dispatchEvent(new CustomEvent(e,"[object Object]"===(n=t[0],F.call(n))?T({detail:t},t[0]):{detail:t}))};e.emit=(e,...n)=>{t(e,n),H(e)!==e&&t(H(e),n)},this._setParent()}),t}_applyStyles(e,t,n){if(!e)return;if(t){if(t===this._def||this._styleChildren.has(t))return;this._styleChildren.add(t)}let r=this._nonce,i=this.shadowRoot,l=n?this._getStyleAnchor(n)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i),s=null;for(let o=e.length-1;o>=0;o--){let a=document.createElement("style");r&&a.setAttribute("nonce",r),a.textContent=e[o],i.insertBefore(a,s||l),s=a,0===o&&(n||this._styleAnchors.set(this._def,a),t&&this._styleAnchors.set(t,a))}}_getStyleAnchor(e){if(!e)return null;let t=this._styleAnchors.get(e);return t&&t.parentNode===this.shadowRoot?t:(t&&this._styleAnchors.delete(e),null)}_getRootStyleInsertionAnchor(e){for(let t=0;t{if(!n.length)return;let t=e.moveClass||`${e.name||"v"}-move`;if(!function(e,t,n){let r=e.cloneNode(),i=e[iG];i&&i.forEach(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 l=1===t.nodeType?t:t.parentNode;l.appendChild(r);let{hasTransform:s}=i5(r);return l.removeChild(r),s}(n[0].el,i.vnode.el,t)){n=[];return}n.forEach(lR),n.forEach(lO);let r=n.filter(lM);le(i.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;i2(n,t),r.transform=r.webkitTransform=r.transitionDuration="";let i=n[lA]=e=>{(!e||e.target===n)&&(!e||e.propertyName.endsWith("transform"))&&(n.removeEventListener("transitionend",i),n[lA]=null,i6(n,t))};n.addEventListener("transitionend",i)}),n=[]}),()=>{let s=tm(e),o=i1(s),a=s.tag||r4;if(n=[],r)for(let e=0;eMath.abs(s-1)&&(s=1),.01>Math.abs(o-1)&&(o=1),n.transform=n.webkitTransform=`translate(${r/s}px,${i/o}px)`,n.transitionDuration="0s",e}}function lP(e){let t=e.getBoundingClientRect();return{left:t.left,top:t.top}}let lF=e=>{let t=e.props["onUpdate:modelValue"]||!1;return E(t)?e=>z(t,e):t};function lL(e){e.target.composing=!0}function l$(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let lD=Symbol("_assign");function lV(e,t,n){return t&&(e=e.trim()),n&&(e=G(e)),e}let lB={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[lD]=lF(i);let l=r||i.props&&"number"===i.props.type;lf(e,t?"change":"input",t=>{t.target.composing||e[lD](lV(e.value,n,l))}),(n||l)&&lf(e,"change",()=>{e.value=lV(e.value,n,l)}),t||(lf(e,"compositionstart",lL),lf(e,"compositionend",l$),lf(e,"change",l$))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:l}},s){if(e[lD]=lF(s),e.composing)return;let o=(l||"number"===e.type)&&!/^0\d/.test(e.value)?G(e.value):e.value,a=null==t?"":t;if(o===a)return;let c=e.getRootNode();(c instanceof Document||c instanceof ShadowRoot)&&c.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===a)||(e.value=a)}},lj={deep:!0,created(e,t,n){e[lD]=lF(n),lf(e,"change",()=>{let t=e._modelValue,n=lK(e),r=e.checked,i=e[lD];if(E(t)){let e=eh(t,n),l=-1!==e;if(r&&!l)i(t.concat(n));else if(!r&&l){let n=[...t];n.splice(e,1),i(n)}}else{let l;if("[object Set]"===(l=t,F.call(l))){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(lz(e,r))}})},mounted:lU,beforeUpdate(e,t,n){e[lD]=lF(n),lU(e,t,n)}};function lU(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,E(t))i=eh(t,r.props.value)>-1;else{let l;if("[object Set]"===(l=t,F.call(l)))i=t.has(r.props.value);else{if(t===n)return;i=eu(t,lz(e,!0))}}e.checked!==i&&(e.checked=i)}let lH={created(e,{value:t},n){e.checked=eu(t,n.props.value),e[lD]=lF(n),lf(e,"change",()=>{e[lD](lK(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[lD]=lF(r),t!==n&&(e.checked=eu(t,r.props.value))}},lq={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i,l="[object Set]"===(i=t,F.call(i));lf(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?G(lK(e)):lK(e));e[lD](e.multiple?l?new Set(t):t:t[0]),e._assigning=!0,tz(()=>{e._assigning=!1})}),e[lD]=lF(r)},mounted(e,{value:t}){lW(e,t)},beforeUpdate(e,t,n){e[lD]=lF(n)},updated(e,{value:t}){e._assigning||lW(e,t)}};function lW(e,t){let n,r=e.multiple,i=E(t);if(!r||i||"[object Set]"===(n=t,F.call(n))){for(let n=0,l=e.options.length;nString(e)===String(s)):l.selected=eh(t,s)>-1}else l.selected=t.has(s);else if(eu(lK(l),t)){e.selectedIndex!==n&&(e.selectedIndex=n);return}}r||-1===e.selectedIndex||(e.selectedIndex=-1)}}function lK(e){return"_value"in e?e._value:e.value}function lz(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}function lJ(e,t,n,r,i){let l=function(e,t){switch(e){case"SELECT":return lq;case"TEXTAREA":return lB;default:switch(t){case"checkbox":return lj;case"radio":return lH;default:return lB}}}(e.tagName,n.props&&n.props.type)[i];l&&l(e,t,n,r)}let lG=["ctrl","shift","alt","meta"],lX={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&&0!==e.button,middle:e=>"button"in e&&1!==e.button,right:e=>"button"in e&&2!==e.button,exact:(e,t)=>lG.some(n=>e[`${n}Key`]&&!t.includes(n))},lQ={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},lZ=T({patchProp:l_},iK),lY=!1;function l0(){return p=lY?p:rW(lZ),lY=!0,p}let l1=(...e)=>{(p||(p=rK(lZ))).render(...e)},l2=(...e)=>{let t=(p||(p=rK(lZ))).createApp(...e),{mount:n}=t;return t.mount=e=>{let r=l4(e);if(!r)return;let i=t._component;I(i)||i.render||i.template||(i.template=r.innerHTML),1===r.nodeType&&(r.textContent="");let l=n(r,!1,l3(r));return r instanceof Element&&(r.removeAttribute("v-cloak"),r.setAttribute("data-v-app","")),l},t},l6=(...e)=>{let t=l0().createApp(...e),{mount:n}=t;return t.mount=e=>{let t=l4(e);if(t)return n(t,!0,l3(t))},t};function l3(e){return e instanceof SVGElement?"svg":"function"==typeof MathMLElement&&e instanceof MathMLElement?"mathml":void 0}function l4(e){return R(e)?document.querySelector(e):e}let l8=Symbol(""),l5=Symbol(""),l9=Symbol(""),l7=Symbol(""),se=Symbol(""),st=Symbol(""),sn=Symbol(""),sr=Symbol(""),si=Symbol(""),sl=Symbol(""),ss=Symbol(""),so=Symbol(""),sa=Symbol(""),sc=Symbol(""),su=Symbol(""),sh=Symbol(""),sd=Symbol(""),sp=Symbol(""),sf=Symbol(""),sg=Symbol(""),sm=Symbol(""),sv=Symbol(""),sy=Symbol(""),sb=Symbol(""),s_=Symbol(""),sS=Symbol(""),sx=Symbol(""),sC=Symbol(""),sk=Symbol(""),sT=Symbol(""),sw=Symbol(""),sN=Symbol(""),sA=Symbol(""),sE=Symbol(""),sI=Symbol(""),sR=Symbol(""),sO=Symbol(""),sM=Symbol(""),sP=Symbol(""),sF={[l8]:"Fragment",[l5]:"Teleport",[l9]:"Suspense",[l7]:"KeepAlive",[se]:"BaseTransition",[st]:"openBlock",[sn]:"createBlock",[sr]:"createElementBlock",[si]:"createVNode",[sl]:"createElementVNode",[ss]:"createCommentVNode",[so]:"createTextVNode",[sa]:"createStaticVNode",[sc]:"resolveComponent",[su]:"resolveDynamicComponent",[sh]:"resolveDirective",[sd]:"resolveFilter",[sp]:"withDirectives",[sf]:"renderList",[sg]:"renderSlot",[sm]:"createSlots",[sv]:"toDisplayString",[sy]:"mergeProps",[sb]:"normalizeClass",[s_]:"normalizeStyle",[sS]:"normalizeProps",[sx]:"guardReactiveProps",[sC]:"toHandlers",[sk]:"camelize",[sT]:"capitalize",[sw]:"toHandlerKey",[sN]:"setBlockTracking",[sA]:"pushScopeId",[sE]:"popScopeId",[sI]:"withCtx",[sR]:"unref",[sO]:"isRef",[sM]:"withMemo",[sP]:"isMemoSame"},sL={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function s$(e,t,n,r,i,l,s,o=!1,a=!1,c=!1,u=sL){var h,d,p,f;return e&&(o?(e.helper(st),e.helper((h=e.inSSR,d=c,h||d?sn:sr))):e.helper((p=e.inSSR,f=c,p||f?si:sl)),s&&e.helper(sp)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:l,directives:s,isBlock:o,disableTracking:a,isComponent:c,loc:u}}function sD(e,t=sL){return{type:17,loc:t,elements:e}}function sV(e,t=sL){return{type:15,loc:t,properties:e}}function sB(e,t){return{type:16,loc:sL,key:R(e)?sj(e,!0):e,value:t}}function sj(e,t=!1,n=sL,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function sU(e,t=sL){return{type:8,loc:t,children:e}}function sH(e,t=[],n=sL){return{type:14,loc:n,callee:e,arguments:t}}function sq(e,t,n=!1,r=!1,i=sL){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function sW(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:sL}}function sK(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,l;e.isBlock=!0,n((i=e.isComponent,r||i?si:sl)),t(st),t((l=e.isComponent,r||l?sn:sr))}}let sz=new Uint8Array([123,123]),sJ=new Uint8Array([125,125]);function sG(e){return e>=97&&e<=122||e>=65&&e<=90}function sX(e){return 32===e||10===e||9===e||12===e||13===e}function sQ(e){return 47===e||62===e||sX(e)}function sZ(e){let t=new Uint8Array(e.length);for(let n=0;n4===e.type&&e.isStatic;function s3(e){switch(e){case"Teleport":case"teleport":return l5;case"Suspense":case"suspense":return l9;case"KeepAlive":case"keep-alive":return l7;case"BaseTransition":case"base-transition":return se}}let s4=/^$|^\d|[^\$\w\xA0-\uFFFF]/,s8=/[A-Za-z_$\xA0-\uFFFF]/,s5=/[\.\?\w$\xA0-\uFFFF]/,s9=/\s+[.[]\s*|\s*[.[]\s+/g,s7=e=>4===e.type?e.content:e.loc.source,oe=e=>{let t=s7(e).trim().replace(s9,e=>e.trim()),n=0,r=[],i=0,l=0,s=null;for(let e=0;e|^\s*(?:async\s+)?function(?:\s+[\w$]+)?\s*\(/;function on(e,t,n=!1){for(let r=0;r4===e.key.type&&e.key.content===r)}return n}function op(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let of=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/;function og(e){for(let t=0;t0,isVoidTag:x,isPreTag:x,isIgnoreNewlineTag:x,isCustomElement:x,onError:s0,onWarn:s1,comments:!1,prefixIdentifiers:!1},ob=oy,o_=null,oS="",ox=null,oC=null,ok="",oT=-1,ow=-1,oN=0,oA=!1,oE=null,oI=[],oR=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=sz,this.delimiterClose=sJ,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=sz,this.delimiterClose=sJ}getPos(e){let t=1,n=e+1,r=this.newlines.length,i=-1;if(r>100){let t=-1,n=r;for(;t+1>>1;this.newlines[r]=0;t--)if(e>this.newlines[t]){i=t;break}return i>=0&&(t=i+2,n=e-this.newlines[i]),{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?sQ(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||sX(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=e||(28===this.state?this.currentSequence===sY.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(oI,{onerr:oz,ontext(e,t){oL(oP(e,t),e,t)},ontextentity(e,t,n){oL(e,t,n)},oninterpolation(e,t){if(oA)return oL(oP(e,t),e,t);let n=e+oR.delimiterOpen.length,r=t-oR.delimiterClose.length;for(;sX(oS.charCodeAt(n));)n++;for(;sX(oS.charCodeAt(r-1));)r--;let i=oP(n,r);i.includes("&")&&(i=ob.decodeEntities(i,!1)),oH({type:5,content:oK(i,!1,oq(n,r)),loc:oq(e,t)})},onopentagname(e,t){let n=oP(e,t);ox={type:1,tag:n,ns:ob.getNamespace(n,oI[0],ob.ns),tagType:0,props:[],children:[],loc:oq(e-1,t),codegenNode:void 0}},onopentagend(e){oF(e)},onclosetag(e,t){let n=oP(e,t);if(!ob.isVoidTag(n)){let r=!1;for(let e=0;e0&&oI[0].loc.start.offset;for(let n=0;n<=e;n++)o$(oI.shift(),t,n(7===e.type?e.rawName:e.name)===t)},onattribend(e,t){ox&&oC&&(oW(oC.loc,t),0!==e&&(ok.includes("&")&&(ok=ob.decodeEntities(ok,!0)),6===oC.type?("class"===oC.name&&(ok=oU(ok).trim()),oC.value={type:2,content:ok,loc:1===e?oq(oT,ow):oq(oT-1,ow+1)},oR.inSFCRoot&&"template"===ox.tag&&"lang"===oC.name&&ok&&"html"!==ok&&oR.enterRCDATA(sZ("{let i=t.start.offset+n,l=i+e.length;return oK(e,!1,oq(i,l),0,+!!r)},o={source:s(l.trim(),n.indexOf(l,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},a=i.trim().replace(oM,"").trim(),c=i.indexOf(a),u=a.match(oO);if(u){let e;a=a.replace(oO,"").trim();let t=u[1].trim();if(t&&(e=n.indexOf(t,c+a.length),o.key=s(t,e,!0)),u[2]){let r=u[2].trim();r&&(o.index=s(r,n.indexOf(r,o.key?e+t.length:c+a.length),!0))}}return a&&(o.value=s(a,c,!0)),o}(oC.exp)))),(7!==oC.type||"pre"!==oC.name)&&ox.props.push(oC)),ok="",oT=ow=-1},oncomment(e,t){ob.comments&&oH({type:3,content:oP(e,t),loc:oq(e-4,t+3)})},onend(){let e=oS.length;for(let t=0;t64&&n<91||s3(e)||ob.isBuiltInComponent&&ob.isBuiltInComponent(e)||ob.isNativeTag&&!ob.isNativeTag(e))return!0;for(let e=0;e=0;)n--;return n}let oV=new Set(["if","else","else-if","for","slot"]),oB=/\r\n/g;function oj(e){let t="preserve"!==ob.whitespace,n=!1;for(let r=0;r3!==e.type);return 1!==t.length||1!==t[0].type||oc(t[0])?null:t[0]}function oG(e,t){let{constantCache:n}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let r=n.get(e);if(void 0!==r)return r;let i=e.codegenNode;if(13!==i.type||i.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==i.patchFlag)return n.set(e,0),0;{let r=3,c=oQ(e,t);if(0===c)return n.set(e,0),0;c1)for(let i=0;i{l--};for(;lt===e:t=>e.test(t);return(e,r)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(oo))return;let l=[];for(let s=0;s`${sF[e]}: _${sF[e]}`;function o6(e,t,{helper:n,push:r,newline:i,isTS:l}){let s=n("component"===t?sc:sh);for(let n=0;n3;t.push("["),n&&t.indent(),o4(e,t,n),n&&t.deindent(),t.push("]")}function o4(e,t,n=!1,r=!0){let{push:i,newline:l}=t;for(let s=0;se||"null")}([a,c,u,i,d]),t),l(")"),f&&l(")"),p&&(l(", "),o8(p,t),l(")"))}(e,t);break;case 14:!function(e,t){let{push:n,helper:r,pure:i}=t,l=R(e.callee)?e.callee:r(e.callee);i&&n(o1),n(l+"(",-2,e),o4(e.arguments,t),n(")")}(e,t);break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:l}=t,{properties:s}=e;if(!s.length)return n("{}",-2,e);let o=s.length>1;n(o?"{":"{ "),o&&r();for(let e=0;e "),(a||o)&&(n("{"),r()),s?(a&&n("return "),E(s)?o3(s,t):o8(s,t)):o&&o8(o,t),(a||o)&&(i(),n("}")),c&&n(")")}(e,t);break;case 19:!function(e,t){let{test:n,consequent:r,alternate:i,newline:l}=e,{push:s,indent:o,deindent:a,newline:c}=t;if(4===n.type){let e,r=(e=n.content,!!s4.test(e));r&&s("("),o5(n,t),r&&s(")")}else s("("),o8(n,t),s(")");l&&o(),t.indentLevel++,l||s(" "),s("? "),o8(r,t),t.indentLevel--,l&&c(),l||s(" "),s(": ");let u=19===i.type;!u&&t.indentLevel++,o8(i,t),!u&&t.indentLevel--,l&&a(!0)}(e,t);break;case 20:!function(e,t){let{push:n,helper:r,indent:i,deindent:l,newline:s}=t,{needPauseTracking:o,needArraySpread:a}=e;a&&n("[...("),n(`_cache[${e.index}] || (`),o&&(i(),n(`${r(sN)}(-1`),e.inVOnce&&n(", true"),n("),"),s(),n("(")),n(`_cache[${e.index}] = `),o8(e.value,t),o&&(n(`).cacheIndex = ${e.index},`),s(),n(`${r(sN)}(1),`),s(),n(`_cache[${e.index}]`),l()),n(")"),a&&n(")]")}(e,t);break;case 21:o4(e.body,t,!0,!1)}}function o5(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function o9(e,t){for(let n=0;n(function(e,t,n,r){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(s2(28,t.loc)),t.exp=sj("true",!1,r)}if("if"===t.name){var i;let l=ae(e,t),s={type:9,loc:oq((i=e.loc).start.offset,i.end.offset),branches:[l]};if(n.replaceNode(s),r)return r(s,l,!0)}else{let i=n.parent.children,l=i.indexOf(e);for(;l-- >=-1;){let s=i[l];if(s&&ov(s)){n.removeNode(s);continue}if(s&&9===s.type){("else-if"===t.name||"else"===t.name)&&void 0===s.branches[s.branches.length-1].condition&&n.onError(s2(30,e.loc)),n.removeNode();let i=ae(e,t);s.branches.push(i);let l=r&&r(s,i,!1);oY(i,n),l&&l(),n.currentNode=null}else n.onError(s2(30,e.loc));break}}})(e,t,n,(e,t,r)=>{let i=n.parent.children,l=i.indexOf(e),s=0;for(;l-- >=0;){let e=i[l];e&&9===e.type&&(s+=e.branches.length)}return()=>{r?e.codegenNode=at(t,s,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=at(t,s+e.branches.length-1,n)}}));function ae(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!on(e,"for")?e.children:[e],userKey:or(e,"key"),isTemplateIf:n}}function at(e,t,n){return e.condition?sW(e.condition,an(e,t,n),sH(n.helper(ss),['""',"true"])):an(e,t,n)}function an(e,t,n){let{helper:r}=n,i=sB("key",sj(`${t}`,!1,sL,2)),{children:l}=e,s=l[0];if(1!==l.length||1!==s.type)if(1!==l.length||11!==s.type)return s$(n,r(l8),sV([i]),l,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=s.codegenNode;return oh(e,i,n),e}{let e=s.codegenNode,t=14===e.type&&e.callee===sM?e.arguments[1].returns:e;return 13===t.type&&sK(t,n),oh(t,i,n),e}}let ar=o0("for",(e,t,n)=>{let{helper:r,removeHelper:i}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(s2(31,t.loc));let i=t.forParseResult;if(!i)return void n.onError(s2(32,t.loc));ai(i);let{scopes:l}=n,{source:s,value:o,key:a,index:c}=i,u={type:11,loc:t.loc,source:s,valueAlias:o,keyAlias:a,objectIndexAlias:c,parseResult:i,children:oa(e)?e.children:[e]};n.replaceNode(u),l.vFor++;let h=r&&r(u);return()=>{l.vFor--,h&&h()}}(e,t,n,t=>{let l=sH(r(sf),[t.source]),s=oa(e),o=on(e,"memo"),a=or(e,"key",!1,!0);a&&a.type;let c=a&&(6===a.type?a.value?sj(a.value.content,!0):void 0:a.exp),u=a&&c?sB("key",c):null,h=4===t.source.type&&t.source.constType>0,d=h?64:a?128:256;return t.codegenNode=s$(n,r(l8),void 0,l,d,void 0,void 0,!0,!h,!1,e.loc),()=>{let a,{children:d}=t,p=1!==d.length||1!==d[0].type,f=oc(e)?e:s&&1===e.children.length&&oc(e.children[0])?e.children[0]:null;if(f)a=f.codegenNode,s&&u&&oh(a,u,n);else if(p)a=s$(n,r(l8),u?sV([u]):void 0,e.children,64,void 0,void 0,!0,void 0,!1);else{var g,m,y,b,_,S,x,C;a=d[0].codegenNode,s&&u&&oh(a,u,n),!h!==a.isBlock&&(a.isBlock?(i(st),i((g=n.inSSR,m=a.isComponent,g||m?sn:sr))):i((y=n.inSSR,b=a.isComponent,y||b?si:sl))),(a.isBlock=!h,a.isBlock)?(r(st),r((_=n.inSSR,S=a.isComponent,_||S?sn:sr))):r((x=n.inSSR,C=a.isComponent,x||C?si:sl))}if(o){let e=sq(al(t.parseResult,[sj("_cached")]));e.body={type:21,body:[sU(["const _memo = (",o.exp,")"]),sU(["if (_cached && _cached.el",...c?[" && _cached.key === ",c]:[],` && ${n.helperString(sP)}(_cached, _memo)) return _cached`]),sU(["const _item = ",a]),sj("_item.memo = _memo"),sj("return _item")],loc:sL},l.arguments.push(e,sj("_cache"),sj(String(n.cached.length))),n.cached.push(null)}else l.arguments.push(sq(al(t.parseResult),a,!0))}})});function ai(e,t){e.finalized||(e.finalized=!0)}function al({value:e,key:t,index:n},r=[]){var i=[e,t,n,...r];let l=i.length;for(;l--&&!i[l];);return i.slice(0,l+1).map((e,t)=>e||sj("_".repeat(t+1),!1))}let as=sj("undefined",!1),ao=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=on(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}};function aa(e,t,n){let r=[sB("name",e),sB("fn",t)];return null!=n&&r.push(sB("key",sj(String(n),!0))),sV(r)}let ac=new WeakMap,au=(e,t)=>function(){let n,r,i,l,s;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:o,props:a}=e,c=1===e.tagType,u=c?function(e,t,n=!1){let{tag:r}=e,i=ap(r),l=or(e,"is",!1,!0);if(l)if(i){let e;if(6===l.type?e=l.value&&sj(l.value.content,!0):(e=l.exp)||(e=sj("is",!1,l.arg.loc)),e)return sH(t.helper(su),[e])}else 6===l.type&&l.value.content.startsWith("vue:")&&(r=l.value.content.slice(4));let s=s3(r)||t.isBuiltInComponent(r);return s?(n||t.helper(s),s):(t.helper(sc),t.components.add(r),op(r,"component"))}(e,t):`"${o}"`,h=M(u)&&u.callee===su,d=0,p=h||u===l5||u===l9||!c&&("svg"===o||"foreignObject"===o||"math"===o);if(a.length>0){let r=ah(e,t,void 0,c,h);n=r.props,d=r.patchFlag,l=r.dynamicPropNames;let i=r.directives;s=i&&i.length?sD(i.map(e=>(function(e,t){let n=[],r=ac.get(e);r?n.push(t.helperString(r)):(t.helper(sh),t.directives.add(e.name),n.push(op(e.name,"directive")));let{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=sj("true",!1,i);n.push(sV(e.modifiers.map(e=>sB(e,t)),i))}return sD(n,e.loc)})(e,t))):void 0,r.shouldUseBlock&&(p=!0)}if(e.children.length>0)if(u===l7&&(p=!0,d|=1024),c&&u!==l5&&u!==l7){let{slots:n,hasDynamicSlots:i}=function(e,t,n=(e,t,n,r)=>sq(e,n,!1,!0,n.length?n[0].loc:r)){t.helper(sI);let{children:r,loc:i}=e,l=[],s=[],o=t.scopes.vSlot>0||t.scopes.vFor>0,a=on(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!s6(e)&&(o=!0),l.push(sB(e||sj("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,h=[],d=new Set,p=0;for(let e=0;esB("default",n(e,void 0,t,i));c?h.length&&!h.every(om)&&(u?t.onError(s2(39,h[0].loc)):l.push(e(void 0,h))):l.push(e(void 0,r))}let f=o?2:!function e(t){for(let n=0;n0,f=!1,g=0,m=!1,y=!1,b=!1,_=!1,S=!1,x=!1,k=[],T=e=>{u.length&&(h.push(sV(ad(u),a)),u=[]),e&&h.push(e)},w=()=>{t.scopes.vFor>0&&u.push(sB(sj("ref_for",!0),sj("true")))},N=({key:e,value:n})=>{if(s6(e)){let l=e.content,s=C(l);s&&(!r||i)&&"onclick"!==l.toLowerCase()&&"onUpdate:modelValue"!==l&&!$(l)&&(_=!0),s&&$(l)&&(x=!0),s&&14===n.type&&(n=n.arguments[0]),20===n.type||(4===n.type||8===n.type)&&oG(n,t)>0||("ref"===l?m=!0:"class"===l?y=!0:"style"===l?b=!0:"key"===l||k.includes(l)||k.push(l),r&&("class"===l||"style"===l)&&!k.includes(l)&&k.push(l))}else S=!0};for(let i=0;i"prop"===e.content)&&(g|=32);let x=t.directiveTransforms[n];if(x){let{props:n,needRuntime:r}=x(s,e,t);l||n.forEach(N),_&&i&&!s6(i)?T(sV(n,a)):u.push(...n),r&&(d.push(s),O(r)&&ac.set(s,r))}else!D(n)&&(d.push(s),p&&(f=!0))}}if(h.length?(T(),s=h.length>1?sH(t.helper(sy),h,a):h[0]):u.length&&(s=sV(ad(u),a)),S?g|=16:(y&&!r&&(g|=2),b&&!r&&(g|=4),k.length&&(g|=8),_&&(g|=32)),!f&&(0===g||32===g)&&(m||x||d.length>0)&&(g|=512),!t.inSSR&&s)switch(s.type){case 15:let A=-1,E=-1,I=!1;for(let e=0;e{if(oc(e)){let{children:n,loc:r}=e,{slotName:i,slotProps:l}=function(e,t){let n,r='"default"',i=[];for(let t=0;t0){let{props:r,directives:l}=ah(e,t,i,!1,!1);n=r,l.length&&t.onError(s2(36,l[0].loc))}return{slotName:r,slotProps:n}}(e,t),s=[t.prefixIdentifiers?"_ctx.$slots":"$slots",i,"{}","undefined","true"],o=2;l&&(s[2]=l,o=3),n.length&&(s[3]=sq([],n,!1,!1,r),o=4),t.scopeId&&!t.slotted&&(o=5),s.splice(o),e.codegenNode=sH(t.helper(sg),s,r)}},ag=(e,t,n,r)=>{let i,{loc:l,modifiers:s,arg:o}=e;if(!e.exp&&!s.length,4===o.type)if(o.isStatic){let e=o.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),i=sj(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?W(j(e)):`on:${e}`,!0,o.loc)}else i=sU([`${n.helperString(sw)}(`,o,")"]);else(i=o).children.unshift(`${n.helperString(sw)}(`),i.children.push(")");let a=e.exp;a&&!a.content.trim()&&(a=void 0);let c=n.cacheHandlers&&!a&&!n.inVOnce;if(a){let e,t=oe(a),n=!(t||(e=a,ot.test(s7(e)))),r=a.content.includes(";");(n||c&&t)&&(a=sU([`${n?"$event":"(...args)"} => ${r?"{":"("}`,a,r?"}":")"]))}let u={props:[sB(i,a||sj("() => {}",!1,l))]};return r&&(u=r(u)),c&&(u.props[0].value=n.cache(u.props[0].value)),u.props.forEach(e=>e.key.isHandlerKey=!0),u},am=(e,t,n)=>{let{modifiers:r}=e,i=e.arg,{exp:l}=e;return l&&4===l.type&&!l.content.trim()&&(l=void 0),4!==i.type?(i.children.unshift("("),i.children.push(') || ""')):i.isStatic||(i.content=i.content?`${i.content} || ""`:'""'),r.some(e=>"camel"===e.content)&&(4===i.type?i.isStatic?i.content=j(i.content):i.content=`${n.helperString(sk)}(${i.content})`:(i.children.unshift(`${n.helperString(sk)}(`),i.children.push(")"))),!n.inSSR&&(r.some(e=>"prop"===e.content)&&av(i,"."),r.some(e=>"attr"===e.content)&&av(i,"^")),{props:[sB(i,l)]}},av=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},ay=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,r=e.children,i=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name]))))for(let e=0;e{if(1===e.type&&on(e,"once",!0)&&!ab.has(e)&&!t.inVOnce&&!t.inSSR)return ab.add(e),t.inVOnce=!0,t.helper(sN),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},aS=(e,t,n)=>{let r,{exp:i,arg:l}=e;if(!i)return n.onError(s2(41,e.loc)),ax();let s=i.loc.source.trim(),o=4===i.type?i.content:s,a=n.bindingMetadata[s];if("props"===a||"props-aliased"===a||"literal-const"===a||"setup-const"===a)return i.loc,ax();if(!o.trim()||!oe(i))return n.onError(s2(42,i.loc)),ax();let c=l||sj("modelValue",!0),u=l?s6(l)?`onUpdate:${j(l.content)}`:sU(['"onUpdate:" + ',l]):"onUpdate:modelValue",h=n.isTS?"($event: any)":"$event";r=sU([`${h} => ((`,i,") = $event)"]);let d=[sB(c,e.exp),sB(u,r)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(s4.test(e)?JSON.stringify(e):e)+": true").join(", "),n=l?s6(l)?`${l.content}Modifiers`:sU([l,' + "Modifiers"']):"modelModifiers";d.push(sB(n,sj(`{ ${t} }`,!1,e.loc,2)))}return ax(d)};function ax(e=[]){return{props:e}}let aC=new WeakSet,ak=(e,t)=>{if(1===e.type){let n=on(e,"memo");if(!(!n||aC.has(e))&&!t.inSSR)return aC.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&sK(r,t),e.codegenNode=sH(t.helper(sM),[n.exp,sq(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}},aT=(e,t)=>{if(1===e.type){for(let n of e.props)if(7===n.type&&"bind"===n.name&&(!n.exp||4===n.exp.type&&!n.exp.content.trim())&&n.arg){let e=n.arg;if(4===e.type&&e.isStatic){let t=j(e.content);(s8.test(t[0])||"-"===t[0])&&(n.exp=sj(t,!1,e.loc))}else t.onError(s2(53,e.loc)),n.exp=sj("",!0,e.loc)}}},aw=Symbol(""),aN=Symbol(""),aA=Symbol(""),aE=Symbol(""),aI=Symbol(""),aR=Symbol(""),aO=Symbol(""),aM=Symbol(""),aP=Symbol(""),aF=Symbol("");Object.getOwnPropertySymbols(r={[aw]:"vModelRadio",[aN]:"vModelCheckbox",[aA]:"vModelText",[aE]:"vModelSelect",[aI]:"vModelDynamic",[aR]:"withModifiers",[aO]:"withKeys",[aM]:"vShow",[aP]:"Transition",[aF]:"TransitionGroup"}).forEach(e=>{sF[e]=r[e]});let aL={parseMode:"html",isVoidTag:ea,isNativeTag:e=>el(e)||es(e)||eo(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,t=!1){return(f||(f=document.createElement("div")),t)?(f.innerHTML=`
    `,f.children[0].getAttribute("foo")):(f.innerHTML=e,f.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?aP:"TransitionGroup"===e||"transition-group"===e?aF:void 0,getNamespace(e,t,n){let r=t?t.ns:n;if(t&&2===r)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(r=0);else t&&1===r&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(r=0);if(0===r){if("svg"===e)return 1;if("math"===e)return 2}return r}},a$=y("passive,once,capture"),aD=y("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),aV=y("left,right"),aB=y("onkeyup,onkeydown,onkeypress"),aj=(e,t)=>s6(e)&&"onclick"===e.content.toLowerCase()?sj(t,!0):4!==e.type?sU(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,aU=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},aH=[e=>{1===e.type&&e.props.forEach((t,n)=>{let r,i;6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:sj("style",!0,t.loc),exp:(r=t.value.content,i=t.loc,sj(JSON.stringify(er(r)),!1,i,3)),modifiers:[],loc:t.loc})})}],aq={cloak:()=>({props:[]}),html:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s2(54,i)),t.children.length&&(n.onError(s2(55,i)),t.children.length=0),{props:[sB(sj("innerHTML",!0,i),r||sj("",!0))]}},text:(e,t,n)=>{let{exp:r,loc:i}=e;return r||n.onError(s2(56,i)),t.children.length&&(n.onError(s2(57,i)),t.children.length=0),{props:[sB(sj("textContent",!0),r?oG(r,n)>0?r:sH(n.helperString(sv),[r],i):sj("",!0))]}},model:(e,t,n)=>{let r=aS(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(s2(59,e.arg.loc));let{tag:i}=t,l=n.isCustomElement(i);if("input"===i||"textarea"===i||"select"===i||l){let s=aA,o=!1;if("input"===i||l){let r=or(t,"type");if(r){if(7===r.type)s=aI;else if(r.value)switch(r.value.content){case"radio":s=aw;break;case"checkbox":s=aN;break;case"file":o=!0,n.onError(s2(60,e.loc))}}else t.props.some(e=>7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))&&(s=aI)}else"select"===i&&(s=aE);o||(r.needRuntime=n.helper(s))}else n.onError(s2(58,e.loc));return r.props=r.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),r},on:(e,t,n)=>ag(e,t,n,t=>{let{modifiers:r}=e;if(!r.length)return t;let{key:i,value:l}=t.props[0],{keyModifiers:s,nonKeyModifiers:o,eventOptionModifiers:a}=((e,t,n,r)=>{let i=[],l=[],s=[];for(let n=0;n{let{exp:r,loc:i}=e;return r||n.onError(s2(62,i)),{props:[],needRuntime:n.helper(aM)}}},aW=Object.create(null);function aK(e,t){if(!R(e))if(!e.nodeType)return S;else e=e.innerHTML;let n=e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t),r=aW[n];if(r)return r;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let i=T({hoistStatic:!0,onError:void 0,onWarn:S},t);!i.isCustomElement&&"u">typeof customElements&&(i.isCustomElement=e=>!!customElements.get(e));let{code:l}=function(e,t={}){return function(e,t={}){var n;let r,i=t.onError||s0,l="module"===t.mode;!0===t.prefixIdentifiers?i(s2(48)):l&&i(s2(49)),t.cacheHandlers&&i(s2(50)),t.scopeId&&!l&&i(s2(51));let s=T({},t,{prefixIdentifiers:!1}),o=R(e)?function(e,t){if(oR.reset(),ox=null,oC=null,ok="",oT=-1,ow=-1,oI.length=0,oS=e,ob=T({},oy),t){let e;for(e in t)null!=t[e]&&(ob[e]=t[e])}oR.mode="html"===ob.parseMode?1:2*("sfc"===ob.parseMode),oR.inXML=1===ob.ns||2===ob.ns;let n=t&&t.delimiters;n&&(oR.delimiterOpen=sZ(n[0]),oR.delimiterClose=sZ(n[1]));let r=o_=function(e,t=""){return{type:0,source:t,children:e,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:sL}}([],e);return oR.parse(oS),r.loc=oq(0,e.length),r.children=oj(r.children),o_=null,r}(e,s):e,[a,c]=[[aT,a_,o7,ak,ar,af,au,ao,ay],{on:ag,bind:am,model:aS}];return r=function(e,{filename:t="",prefixIdentifiers:n=!1,hoistStatic:r=!1,hmr:i=!1,cacheHandlers:l=!1,nodeTransforms:s=[],directiveTransforms:o={},transformHoist:a=null,isBuiltInComponent:c=S,isCustomElement:u=S,expressionPlugins:h=[],scopeId:d=null,slotted:p=!0,ssr:f=!1,inSSR:g=!1,ssrCssVars:m="",bindingMetadata:y=b,inline:_=!1,isTS:x=!1,onError:C=s0,onWarn:k=s1,compatConfig:T}){let w=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),N={filename:t,selfName:w&&q(j(w[1])),prefixIdentifiers:n,hoistStatic:r,hmr:i,cacheHandlers:l,nodeTransforms:s,directiveTransforms:o,transformHoist:a,isBuiltInComponent:c,isCustomElement:u,expressionPlugins:h,scopeId:d,slotted:p,ssr:f,inSSR:g,ssrCssVars:m,bindingMetadata:y,inline:_,isTS:x,onError:C,onWarn:k,compatConfig:T,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=N.helpers.get(e)||0;return N.helpers.set(e,t+1),e},removeHelper(e){let t=N.helpers.get(e);if(t){let n=t-1;n?N.helpers.set(e,n):N.helpers.delete(e)}},helperString:e=>`_${sF[N.helper(e)]}`,replaceNode(e){N.parent.children[N.childIndex]=N.currentNode=e},removeNode(e){let t=N.parent.children,n=e?t.indexOf(e):N.currentNode?N.childIndex:-1;e&&e!==N.currentNode?N.childIndex>n&&(N.childIndex--,N.onNodeRemoved()):(N.currentNode=null,N.onNodeRemoved()),N.parent.children.splice(n,1)},onNodeRemoved:S,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){R(e)&&(e=sj(e)),N.hoists.push(e);let t=sj(`_hoisted_${N.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=function(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:sL}}(N.cached.length,e,t,n);return N.cached.push(r),r}};return N}(o,n=T({},s,{nodeTransforms:[...a,...t.nodeTransforms||[]],directiveTransforms:T({},c,t.directiveTransforms||{})})),oY(o,r),n.hoistStatic&&function e(t,n,r,i=!1,l=!1){let{children:s}=t,o=[];for(let n=0;n0){if(e>=2){a.codegenNode.patchFlag=-1,o.push(a);continue}}else{let e=a.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&oQ(a,r)>=2){let t=oZ(a);t&&(e.props=r.hoist(t))}e.dynamicProps&&(e.dynamicProps=r.hoist(e.dynamicProps))}}}else if(12===a.type&&(i?0:oG(a,r))>=2){14===a.codegenNode.type&&a.codegenNode.arguments.length>0&&a.codegenNode.arguments.push("-1"),o.push(a);continue}if(1===a.type){let n=1===a.tagType;n&&r.scopes.vSlot++,e(a,t,r,!1,l),n&&r.scopes.vSlot--}else if(11===a.type)e(a,t,r,1===a.children.length,!0);else if(9===a.type)for(let n=0;ne.key===t||e.key.content===t);return n&&n.value}}o.length&&r.transformHoist&&r.transformHoist(s,r,t)}(o,void 0,r,!!oJ(o)),n.ssr||function(e,t){let{helper:n}=t,{children:r}=e;if(1===r.length){let n=oJ(e);if(n&&n.codegenNode){let r=n.codegenNode;13===r.type&&sK(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=s$(t,n(l8),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(o,r),o.helpers=new Set([...r.helpers.keys()]),o.components=[...r.components],o.directives=[...r.directives],o.imports=r.imports,o.hoists=r.hoists,o.temps=r.temps,o.cached=r.cached,o.transformed=!0,function(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:i="template.vue.html",scopeId:l=null,optimizeImports:s=!1,runtimeGlobalName:o="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:h=!1,inSSR:d=!1}){let p={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:l,optimizeImports:s,runtimeGlobalName:o,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:h,inSSR:d,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${sF[e]}`,push(e,t=-2,n){p.code+=e},indent(){f(++p.indentLevel)},deindent(e=!1){e?--p.indentLevel:f(--p.indentLevel)},newline(){f(p.indentLevel)}};function f(e){p.push(` +`+" ".repeat(e),0)}return p}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:r,push:i,prefixIdentifiers:l,indent:s,deindent:o,newline:a,ssr:c}=n,u=Array.from(e.helpers),h=u.length>0,d=!l&&"module"!==r;!function(e,t){let{push:n,newline:r,runtimeGlobalName:i}=t,l=Array.from(e.helpers);if(l.length>0&&(n(`const _Vue = ${i} +`,-1),e.hoists.length)){let e=[si,sl,ss,so,sa].filter(e=>l.includes(e)).map(o2).join(", ");n(`const { ${e} } = _Vue +`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:r}=t;r();for(let i=0;i0)&&a()),e.directives.length&&(o6(e.directives,"directive",n),e.temps>0&&a()),e.temps>0){i("let ");for(let t=0;t0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(i(` +`,0),a()),c||i("return "),e.codegenNode?o8(e.codegenNode,n):i("null"),d&&(o(),i("}")),o(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(o,s)}(e,T({},aL,t,{nodeTransforms:[aU,...aH,...t.nodeTransforms||[]],directiveTransforms:T({},aq,t.directiveTransforms||{}),transformHoist:null}))}(e,i),s=Function(l)();return s._rc=!0,aW[n]=s}return iO(aK),e.BaseTransition=ny,e.BaseTransitionPropsValidators=ng,e.Comment=r5,e.DeprecationTypes=null,e.EffectScope=em,e.ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},e.ErrorTypeStrings=null,e.Fragment=r4,e.KeepAlive={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=iw(),r=n.ctx,i=new Map,l=new Set,s=null,o=n.suspense,{renderer:{p:a,m:c,um:u,o:{createElement:h}}}=r,d=h("div");function p(e){nJ(e),u(e,n,o,!0)}function f(e){i.forEach((t,n)=>{let r=i$(nj(t)?t.type.__asyncResolved||{}:t.type);r&&!e(r)&&g(n)})}function g(e){let t=i.get(e);!t||s&&ic(t,s)?s&&nJ(s):p(t),i.delete(e),l.delete(e)}r.activate=(e,t,n,r,i)=>{let l=e.component;c(e,t,n,0,o),a(l.vnode,e,t,n,l,o,r,e.slotScopeIds,i),rq(()=>{l.isDeactivated=!1,l.a&&z(l.a);let t=e.props&&e.props.onVnodeMounted;t&&ix(t,l.parent,e)},o)},r.deactivate=e=>{let t=e.component;rQ(t.m),rQ(t.a),c(e,d,null,1,o),rq(()=>{t.da&&z(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&ix(n,t.parent,e),t.isDeactivated=!0},o)},t7(()=>[e.include,e.exclude],([e,t])=>{e&&f(t=>nq(e,t)),t&&f(e=>!nq(t,e))},{flush:"post",deep:!0});let m=null,y=()=>{null!=m&&(rZ(n.subTree.type)?rq(()=>{i.set(m,nG(n.subTree))},n.subTree.suspense):i.set(m,nG(n.subTree)))};return nY(y),n1(y),n2(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=nG(t);if(e.type===i.type&&e.key===i.key){nJ(i);let e=i.component.da;e&&rq(e,r);return}p(e)})}),()=>{if(m=null,!t.default)return s=null;let n=t.default(),r=n[0];if(n.length>1)return s=null,n;if(!ia(r)||!(4&r.shapeFlag)&&!(128&r.shapeFlag))return s=null,r;let o=nG(r);if(o.type===r5)return s=null,o;let a=o.type,c=i$(nj(o)?o.type.__asyncResolved||{}:a),{include:u,exclude:h,max:d}=e;if(u&&(!c||!nq(u,c))||h&&c&&nq(h,c))return o.shapeFlag&=-257,s=o,r;let p=null==o.key?a:o.key,f=i.get(p);return o.el&&(o=im(o),128&r.shapeFlag&&(r.ssContent=o)),m=p,f?(o.el=f.el,o.component=f.component,o.transition&&nC(o,o.transition),o.shapeFlag|=512,l.delete(p),l.add(p)):(l.add(p),d&&l.size>parseInt(d,10)&&g(l.values().next().value)),o.shapeFlag|=256,s=o,rZ(r.type)?r:o}}},e.ReactiveEffect=ey,e.Static=r9,e.Suspense={name:"Suspense",__isSuspense:!0,process(e,t,n,r,i,l,s,o,a,c){if(null==e)!function(e,t,n,r,i,l,s,o,a){let{p:c,o:{createElement:u}}=a,h=u("div"),d=e.suspense=r1(e,i,r,t,h,n,l,s,o,a);c(null,d.pendingBranch=e.ssContent,h,null,r,d,l,s),d.deps>0?(r0(e,"onPending"),r0(e,"onFallback"),c(null,e.ssFallback,t,n,r,null,l,s),r3(d,e.ssFallback)):d.resolve(!1,!0)}(t,n,r,i,l,s,o,a,c);else{if(l&&l.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}!function(e,t,n,r,i,l,s,o,{p:a,um:c,o:{createElement:u}}){let h=t.suspense=e.suspense;h.vnode=t,t.el=e.el;let d=t.ssContent,p=t.ssFallback,{activeBranch:f,pendingBranch:g,isInFallback:m,isHydrating:y}=h;if(g)h.pendingBranch=d,ic(g,d)?(a(g,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0?h.resolve():m&&!y&&(a(f,p,n,r,i,null,l,s,o),r3(h,p))):(h.pendingId=rY++,y?(h.isHydrating=!1,h.activeBranch=g):c(g,i,h),h.deps=0,h.effects.length=0,h.hiddenContainer=u("div"),m?(a(null,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0?h.resolve():(a(f,p,n,r,i,null,l,s,o),r3(h,p))):f&&ic(f,d)?(a(f,d,n,r,i,h,l,s,o),h.resolve(!0)):(a(null,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0&&h.resolve()));else if(f&&ic(f,d))a(f,d,n,r,i,h,l,s,o),r3(h,d);else if(r0(t,"onPending"),h.pendingBranch=d,512&d.shapeFlag?h.pendingId=d.component.suspenseId:h.pendingId=rY++,a(null,d,h.hiddenContainer,null,i,h,l,s,o),h.deps<=0)h.resolve();else{let{timeout:e,pendingId:t}=h;e>0?setTimeout(()=>{h.pendingId===t&&h.fallback(p)},e):0===e&&h.fallback(p)}}(e,t,n,r,i,s,o,a,c)}},hydrate:function(e,t,n,r,i,l,s,o,a){let c=t.suspense=r1(t,r,n,e.parentNode,document.createElement("div"),null,i,l,s,o,!0),u=a(e,c.pendingBranch=t.ssContent,n,c,l,s);return 0===c.deps&&c.resolve(!1,!0),u},normalize:function(e){let{shapeFlag:t,children:n}=e,r=32&t;e.ssContent=r2(r?n.default:n),e.ssFallback=r?r2(n.fallback):ip(r5)}},e.Teleport={name:"Teleport",__isTeleport:!0,process(e,t,n,r,i,l,s,o,a,c){let{mc:u,pc:h,pbc:d,o:{insert:p,querySelector:f,createText:g}}=c,m=ni(t.props),{dynamicChildren:y}=t,b=(e,t,n)=>{16&e.shapeFlag&&u(e.children,t,n,i,l,s,o,a)},_=(e=t)=>{let n=ni(e.props),r=e.target=no(e.props,f),l=nu(r,e,g,p);r&&("svg"!==s&&nl(r)?s="svg":"mathml"!==s&&ns(r)&&(s="mathml"),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,l),nc(e,!1)))},S=e=>{let t=()=>{nn.get(e)===t&&(nn.delete(e),ni(e.props)&&(b(e,n,e.anchor),nc(e,!0)),_(e))};nn.set(e,t),rq(t,l)};if(null==e){let e,i=t.el=g(""),s=t.anchor=g("");if(p(i,n,r),p(s,n,r),(e=t.props)&&(e.defer||""===e.defer)||l&&l.pendingBranch)return void S(t);m&&(b(t,n,s),nc(t,!0)),_()}else{t.el=e.el;let r=t.anchor=e.anchor,u=nn.get(e);if(u){u.flags|=8,nn.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,g=t.targetAnchor=e.targetAnchor,b=ni(e.props),_=b?n:p,x=b?r:g;if("svg"===s||nl(p)?s="svg":("mathml"===s||ns(p))&&(s="mathml"),y?(d(e.dynamicChildren,y,_,i,l,s,o),rX(e,t,!0)):a||h(e,t,_,x,i,l,s,o,!1),m)b?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):na(t,n,r,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=no(t.props,f);e&&na(t,e,null,c,0)}else b&&na(t,p,g,c,1);nc(t,m)}},remove(e,t,n,{um:r,o:{remove:i}},l){let{shapeFlag:s,children:o,anchor:a,targetStart:c,targetAnchor:u,target:h,props:d}=e,p=l||!ni(d),f=nn.get(e);if(f&&(f.flags|=8,nn.delete(e),p=!1),h&&(i(c),i(u)),l&&i(a),16&s)for(let e=0;ee[r]});return n},e.createRenderer=function(e){return rK(e)},e.createSSRApp=l6,e.createSlots=function(e,t){for(let n=0;n{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e},e.createStaticVNode=function(e,t){let n=ip(r9,null,e);return n.staticCount=t,n},e.createTextVNode=iv,e.createVNode=ip,e.customRef=tE,e.defineAsyncComponent=function(e){let t;I(e)&&(e={loader:e});let{loader:n,loadingComponent:r,errorComponent:i,delay:l=200,hydrate:s,timeout:o,suspensible:a=!0,onError:c}=e,u=null,h=0,d=()=>{let e;return u||(e=u=n().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t((h++,u=null,d())),()=>n(e),h+1)});throw e}).then(n=>e!==u&&u?u:(n&&(n.__esModule||"Module"===n[Symbol.toStringTag])&&(n=n.default),t=n,n)))};return nT({name:"AsyncComponentWrapper",__asyncLoader:d,__asyncHydrate(e,n,r){let i=!1;(n.bu||(n.bu=[])).push(()=>i=!0);let l=()=>{i||r()},o=s?()=>{let t=s(l,t=>(function(e,t){if(nP(e)&&"["===e.data){let n=1,r=e.nextSibling;for(;r;){if(1===r.nodeType){if(!1===t(r))break}else if(nP(r))if("]"===r.data){if(0==--n)break}else"["===r.data&&n++;r=r.nextSibling}}else t(e)})(e,t));t&&(n.bum||(n.bum=[])).push(t)}:l;t?o():d().then(()=>!n.isUnmounted&&o())},get __asyncResolved(){return t},setup(){let e=iT;if(nw(e),t)return()=>nU(t,e);let n=t=>{u=null,tV(t,e,13,!i)};if(a&&e.suspense)return d().then(t=>()=>nU(t,e)).catch(e=>(n(e),()=>i?ip(i,{error:e}):null));let s=tS(!1),c=tS(),h=tS(!!l);return l&&setTimeout(()=>{h.value=!1},l),null!=o&&setTimeout(()=>{if(!s.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);n(e),c.value=e}},o),d().then(()=>{s.value=!0,e.parent&&nH(e.parent.vnode)&&e.parent.update()}).catch(e=>{n(e),c.value=e}),()=>s.value&&t?nU(t,e):c.value&&i?ip(i,{error:c.value}):r&&!h.value?nU(r,e):void 0}})},e.defineComponent=nT,e.defineCustomElement=lx,e.defineEmits=function(){return null},e.defineExpose=function(e){},e.defineModel=function(){},e.defineOptions=function(e){},e.defineProps=function(){return null},e.defineSSRCustomElement=(e,t)=>lx(e,t,l6),e.defineSlots=function(){return null},e.devtools=void 0,e.effect=function(e,t){e.effect instanceof ey&&(e=e.effect.fn);let n=new ey(e);t&&T(n,t);try{n.run()}catch(e){throw n.stop(),e}let r=n.run.bind(n);return r.effect=n,r},e.effectScope=function(e){return new em(e)},e.getCurrentInstance=iw,e.getCurrentScope=function(){return l},e.getCurrentWatcher=function(){return g},e.getTransitionRawChildren=nk,e.guardReactiveProps=ig,e.h=iV,e.handleError=tV,e.hasInjectionContext=function(){return!!(iw()||rS)},e.hydrate=(...e)=>{l0().hydrate(...e)},e.hydrateOnIdle=(e=1e4)=>t=>{let n=nV(t,{timeout:e});return()=>nB(n)},e.hydrateOnInteraction=(e=[])=>(t,n)=>{R(e)&&(e=[e]);let r=!1,i=e=>{r||(r=!0,l(),t(),e.target.dispatchEvent(new e.constructor(e.type,e)))},l=()=>{n(t=>{for(let n of e)t.removeEventListener(n,i)})};return n(t=>{for(let n of e)t.addEventListener(n,i,{once:!0})}),l},e.hydrateOnMediaQuery=e=>t=>{if(e){let n=matchMedia(e);if(!n.matches)return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t);t()}},e.hydrateOnVisible=e=>(t,n)=>{let r=new IntersectionObserver(e=>{for(let n of e)if(n.isIntersecting){r.disconnect(),t();break}},e);return n(e=>{if(e instanceof Element){if(function(e){let{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:l,innerWidth:s}=window;return(t>0&&t0&&r0&&n0&&ir.disconnect()},e.initCustomFormatter=function(){},e.initDirectivesForSSR=S,e.inject=t8,e.isMemoSame=iB,e.isProxy=tg,e.isReactive=td,e.isReadonly=tp,e.isRef=t_,e.isRuntimeOnly=()=>!h,e.isShallow=tf,e.isVNode=ia,e.markRaw=tv,e.mergeDefaults=function(e,t){let n=ra(e);for(let e in t){if(e.startsWith("__skip"))continue;let r=n[e];r?E(r)||I(r)?r=n[e]={type:r,default:t[e]}:r.default=t[e]:null===r&&(r=n[e]={default:t[e]}),r&&t[`__skip_${e}`]&&(r.skipFactory=!0)}return n},e.mergeModels=function(e,t){return e&&t?E(e)&&E(t)?e.concat(t):T({},ra(e),ra(t)):e||t},e.mergeProps=iS,e.nextTick=tz,e.nodeOps=iK,e.normalizeClass=ei,e.normalizeProps=function(e){if(!e)return null;let{class:t,style:n}=e;return t&&!R(t)&&(e.class=ei(t)),n&&(e.style=Y(n)),e},e.normalizeStyle=Y,e.onActivated=nW,e.onBeforeMount=nZ,e.onBeforeUnmount=n2,e.onBeforeUpdate=n0,e.onDeactivated=nK,e.onErrorCaptured=n5,e.onMounted=nY,e.onRenderTracked=n8,e.onRenderTriggered=n4,e.onScopeDispose=function(e,t=!1){l&&l.cleanups.push(e)},e.onServerPrefetch=n3,e.onUnmounted=n6,e.onUpdated=n1,e.onWatcherCleanup=tF,e.openBlock=it,e.patchProp=l_,e.popScopeId=function(){t1=null},e.provide=t4,e.proxyRefs=tN,e.pushScopeId=function(e){t1=e},e.queuePostFlushCb=tX,e.reactive=ta,e.readonly=tu,e.ref=tS,e.registerRuntimeCompiler=iO,e.render=l1,e.renderList=function(e,t,n,r){let i,l=n&&n[r],s=E(e);if(s||R(e)){let n=s&&td(e),r=!1,o=!1;n&&(r=!tf(e),o=tp(e),e=eU(e)),i=Array(e.length);for(let n=0,s=e.length;nt(e,n,void 0,l&&l[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,s=n.length;r0;return"default"!==t&&(n.name=t),it(),io(r4,null,[ip("slot",n,r&&r())],e?-2:64)}let l=e[t];l&&l._c&&(l._d=!1),it();let s=l&&function e(t){return t.some(t=>!ia(t)||t.type!==r5&&(t.type!==r4||!!e(t.children)))?t:null}(l(n)),o=n.key||s&&s.key,a=io(r4,{key:(o&&!O(o)?o:`_${t}`)+(!s&&r?"_fb":"")},s||(r?r():[]),s&&1===e._?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),l&&l._c&&(l._d=!0),a},e.resolveComponent=function(e,t){return re(n9,e,!0,t)||e},e.resolveDirective=function(e){return re("directives",e)},e.resolveDynamicComponent=function(e){return R(e)?re(n9,e,!1)||e:e||n7},e.resolveFilter=null,e.resolveTransitionHooks=n_,e.setBlockTracking=il,e.setDevtoolsHook=S,e.setTransitionHooks=nC,e.shallowReactive=tc,e.shallowReadonly=function(e){return th(e,!0,e8,tr,to)},e.shallowRef=tx,e.ssrContextKey=t5,e.ssrUtils=null,e.stop=function(e){e.effect.stop()},e.toDisplayString=ep,e.toHandlerKey=W,e.toHandlers=function(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:W(r)]=e[r];return n},e.toRaw=tm,e.toRef=function(e,t,n){if(t_(e))return e;if(I(e))return new tR(e);if(!M(e)||!(arguments.length>1))return tS(e);return new tI(e,t,n)},e.toRefs=function(e){let t=E(e)?Array(e.length):{};for(let n in e)t[n]=new tI(e,n,void 0);return t},e.toValue=function(e){return I(e)?e():tT(e)},e.transformVNodeArgs=function(e){},e.triggerRef=function(e){e.dep&&e.dep.trigger()},e.unref=tT,e.useAttrs=function(){return ro().attrs},e.useCssModule=function(e="$style"){return b},e.useCssVars=function(e){let t=iw();if(!t)return;let n=t.ut=(n=e(t.proxy))=>{Array.from(document.querySelectorAll(`[data-v-owner="${t.uid}"]`)).forEach(e=>ll(e,n))},r=()=>{let r=e(t.proxy);t.ce?ll(t.ce,r):function e(t,n){if(128&t.shapeFlag){let r=t.suspense;t=r.activeBranch,r.pendingBranch&&!r.isHydrating&&r.effects.push(()=>{e(r.activeBranch,n)})}for(;t.component;)t=t.component.subTree;if(1&t.shapeFlag&&t.el)ll(t.el,n);else if(t.type===r4)t.children.forEach(t=>e(t,n));else if(t.type===r9){let{el:e,anchor:r}=t;for(;e&&(ll(e,n),e!==r);)e=e.nextSibling}}(t.subTree,r),n(r)};n0(()=>{tX(r)}),nY(()=>{t7(r,S,{flush:"post"});let e=new MutationObserver(r);e.observe(t.subTree.el.parentNode,{childList:!0}),n6(()=>e.disconnect())})},e.useHost=lT,e.useId=function(){let e=iw();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:""},e.useModel=function(e,t,n=b){let r=iw(),i=j(t),l=H(t),s=rx(e,i),o=tE((s,o)=>{let a,c,u=b;return t9(()=>{let t=e[i];K(a,t)&&(a=t,o())}),{get:()=>(s(),n.get?n.get(a):a),set(e){let s=n.set?n.set(e):e;if(!K(s,a)&&!(u!==b&&K(e,u)))return;let h=r.vnode.props;h&&(t in h||i in h||l in h)&&(`onUpdate:${t}`in h||`onUpdate:${i}`in h||`onUpdate:${l}`in h)||(a=e,o()),r.emit(`update:${t}`,s),K(e,s)&&K(e,u)&&!K(s,c)&&o(),u=e,c=s}}});return o[Symbol.iterator]=()=>{let e=0;return{next:()=>e<2?{value:e++?s||b:o,done:!1}:{done:!0}}},o},e.useSSRContext=()=>{},e.useShadowRoot=function(){let e=lT();return e&&e.shadowRoot},e.useSlots=function(){return ro().slots},e.useTemplateRef=function(e){let t=iw(),n=tx(null);return t&&Object.defineProperty(t.refs===b?t.refs={}:t.refs,e,{enumerable:!0,get:()=>n.value,set:e=>n.value=e}),n},e.useTransitionState=np,e.vModelCheckbox=lj,e.vModelDynamic={created(e,t,n){lJ(e,t,n,null,"created")},mounted(e,t,n){lJ(e,t,n,null,"mounted")},beforeUpdate(e,t,n,r){lJ(e,t,n,r,"beforeUpdate")},updated(e,t,n,r){lJ(e,t,n,r,"updated")}},e.vModelRadio=lH,e.vModelSelect=lq,e.vModelText=lB,e.vShow={name:"show",beforeMount(e,{value:t},{transition:n}){e[lt]="none"===e.style.display?"":e.style.display,n&&t?n.beforeEnter(e):lr(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),lr(e,!0),r.enter(e)):r.leave(e,()=>{lr(e,!1)}):lr(e,t))},beforeUnmount(e,{value:t}){lr(e,t)}},e.version=ij,e.warn=S,e.watch=function(e,t,n){return t7(e,t,n)},e.watchEffect=function(e,t){return t7(e,null,t)},e.watchPostEffect=function(e,t){return t7(e,null,{flush:"post"})},e.watchSyncEffect=t9,e.withAsyncContext=function(e){let t=iw(),n=iI,r=e();iA(),n&&u(!1);let i=()=>{iN(t),n&&u(!0)},l=()=>{iw()!==t&&t.scope.off(),iA(),n&&u(!1)};return P(r)&&(r=r.catch(e=>{throw i(),Promise.resolve().then(()=>Promise.resolve().then(l)),e})),[r,()=>{i(),Promise.resolve().then(l)}]},e.withCtx=t6,e.withDefaults=function(e,t){return null},e.withDirectives=function(e,t){if(null===t0)return e;let n=iL(t0),r=e.dirs||(e.dirs=[]);for(let e=0;e{let n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=n=>{if(!("key"in n))return;let r=H(n.key);if(t.some(e=>e===r||lQ[e]===r))return e(n)})},e.withMemo=function(e,t,n,r){let i=n[r];if(i&&iB(i,e))return i;let l=t();return l.memo=e.slice(),l.cacheIndex=r,n[r]=l},e.withModifiers=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(n,...r)=>{for(let e=0;et6,e}({}); diff --git a/platform/backend/static/vue/vue.global.js b/platform/backend/static/vue/vue.global.js new file mode 100644 index 0000000..ee229c3 --- /dev/null +++ b/platform/backend/static/vue/vue.global.js @@ -0,0 +1,18619 @@ +/** +* vue v3.5.33 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/ +var Vue = (function (exports) { + 'use strict'; + + // @__NO_SIDE_EFFECTS__ + function makeMap(str) { + const map = /* @__PURE__ */ Object.create(null); + for (const key of str.split(",")) map[key] = 1; + return (val) => val in map; + } + + const EMPTY_OBJ = Object.freeze({}) ; + const EMPTY_ARR = Object.freeze([]) ; + const NOOP = () => { + }; + const NO = () => false; + const isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter + (key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97); + const isModelListener = (key) => key.startsWith("onUpdate:"); + const extend = Object.assign; + const remove = (arr, el) => { + const i = arr.indexOf(el); + if (i > -1) { + arr.splice(i, 1); + } + }; + const hasOwnProperty$1 = Object.prototype.hasOwnProperty; + const hasOwn = (val, key) => hasOwnProperty$1.call(val, key); + const isArray = Array.isArray; + const isMap = (val) => toTypeString(val) === "[object Map]"; + const isSet = (val) => toTypeString(val) === "[object Set]"; + const isDate = (val) => toTypeString(val) === "[object Date]"; + const isRegExp = (val) => toTypeString(val) === "[object RegExp]"; + const isFunction = (val) => typeof val === "function"; + const isString = (val) => typeof val === "string"; + const isSymbol = (val) => typeof val === "symbol"; + const isObject = (val) => val !== null && typeof val === "object"; + const isPromise = (val) => { + return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch); + }; + const objectToString = Object.prototype.toString; + const toTypeString = (value) => objectToString.call(value); + const toRawType = (value) => { + return toTypeString(value).slice(8, -1); + }; + const isPlainObject = (val) => toTypeString(val) === "[object Object]"; + const isIntegerKey = (key) => isString(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key; + const isReservedProp = /* @__PURE__ */ makeMap( + // the leading comma is intentional so empty string "" is also included + ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" + ); + const isBuiltInDirective = /* @__PURE__ */ makeMap( + "bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo" + ); + const cacheStringFunction = (fn) => { + const cache = /* @__PURE__ */ Object.create(null); + return ((str) => { + const hit = cache[str]; + return hit || (cache[str] = fn(str)); + }); + }; + const camelizeRE = /-\w/g; + const camelize = cacheStringFunction( + (str) => { + return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase()); + } + ); + const hyphenateRE = /\B([A-Z])/g; + const hyphenate = cacheStringFunction( + (str) => str.replace(hyphenateRE, "-$1").toLowerCase() + ); + const capitalize = cacheStringFunction((str) => { + return str.charAt(0).toUpperCase() + str.slice(1); + }); + const toHandlerKey = cacheStringFunction( + (str) => { + const s = str ? `on${capitalize(str)}` : ``; + return s; + } + ); + const hasChanged = (value, oldValue) => !Object.is(value, oldValue); + const invokeArrayFns = (fns, ...arg) => { + for (let i = 0; i < fns.length; i++) { + fns[i](...arg); + } + }; + const def = (obj, key, value, writable = false) => { + Object.defineProperty(obj, key, { + configurable: true, + enumerable: false, + writable, + value + }); + }; + const looseToNumber = (val) => { + const n = parseFloat(val); + return isNaN(n) ? val : n; + }; + const toNumber = (val) => { + const n = isString(val) ? Number(val) : NaN; + return isNaN(n) ? val : n; + }; + let _globalThis; + const getGlobalThis = () => { + return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}); + }; + function genCacheKey(source, options) { + return source + JSON.stringify( + options, + (_, val) => typeof val === "function" ? val.toString() : val + ); + } + + const PatchFlagNames = { + [1]: `TEXT`, + [2]: `CLASS`, + [4]: `STYLE`, + [8]: `PROPS`, + [16]: `FULL_PROPS`, + [32]: `NEED_HYDRATION`, + [64]: `STABLE_FRAGMENT`, + [128]: `KEYED_FRAGMENT`, + [256]: `UNKEYED_FRAGMENT`, + [512]: `NEED_PATCH`, + [1024]: `DYNAMIC_SLOTS`, + [2048]: `DEV_ROOT_FRAGMENT`, + [-1]: `CACHED`, + [-2]: `BAIL` + }; + + const slotFlagsText = { + [1]: "STABLE", + [2]: "DYNAMIC", + [3]: "FORWARDED" + }; + + const GLOBALS_ALLOWED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol"; + const isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED); + + const range = 2; + function generateCodeFrame(source, start = 0, end = source.length) { + start = Math.max(0, Math.min(start, source.length)); + end = Math.max(0, Math.min(end, source.length)); + if (start > end) return ""; + let lines = source.split(/(\r?\n)/); + const newlineSequences = lines.filter((_, idx) => idx % 2 === 1); + lines = lines.filter((_, idx) => idx % 2 === 0); + let count = 0; + const res = []; + for (let i = 0; i < lines.length; i++) { + count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0); + if (count >= start) { + for (let j = i - range; j <= i + range || end > count; j++) { + if (j < 0 || j >= lines.length) continue; + const line = j + 1; + res.push( + `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}` + ); + const lineLength = lines[j].length; + const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0; + if (j === i) { + const pad = start - (count - (lineLength + newLineSeqLength)); + const length = Math.max( + 1, + end > count ? lineLength - pad : end - start + ); + res.push(` | ` + " ".repeat(pad) + "^".repeat(length)); + } else if (j > i) { + if (end > count) { + const length = Math.max(Math.min(end - count, lineLength), 1); + res.push(` | ` + "^".repeat(length)); + } + count += lineLength + newLineSeqLength; + } + } + break; + } + } + return res.join("\n"); + } + + function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } + } + const listDelimiterRE = /;(?![^(]*\))/g; + const propertyDelimiterRE = /:([^]+)/; + const styleCommentRE = /\/\*[^]*?\*\//g; + function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; + } + function stringifyStyle(styles) { + if (!styles) return ""; + if (isString(styles)) return styles; + let ret = ""; + for (const key in styles) { + const value = styles[key]; + if (isString(value) || typeof value === "number") { + const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key); + ret += `${normalizedKey}:${value};`; + } + } + return ret; + } + function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); + } + function normalizeProps(props) { + if (!props) return null; + let { class: klass, style } = props; + if (klass && !isString(klass)) { + props.class = normalizeClass(klass); + } + if (style) { + props.style = normalizeStyle(style); + } + return props; + } + + const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot"; + const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view"; + const MATH_TAGS = "annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"; + const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"; + const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS); + const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS); + const isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS); + const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS); + + const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`; + const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs); + const isBooleanAttr = /* @__PURE__ */ makeMap( + specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected` + ); + function includeBooleanAttr(value) { + return !!value || value === ""; + } + const isKnownHtmlAttr = /* @__PURE__ */ makeMap( + `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap` + ); + const isKnownSvgAttr = /* @__PURE__ */ makeMap( + `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan` + ); + function isRenderableAttrValue(value) { + if (value == null) { + return false; + } + const type = typeof value; + return type === "string" || type === "number" || type === "boolean"; + } + + const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g; + function getEscapedCssVarName(key, doubleEscape) { + return key.replace( + cssVarNameEscapeSymbolsRE, + (s) => `\\${s}` + ); + } + + function looseCompareArrays(a, b) { + if (a.length !== b.length) return false; + let equal = true; + for (let i = 0; equal && i < a.length; i++) { + equal = looseEqual(a[i], b[i]); + } + return equal; + } + function looseEqual(a, b) { + if (a === b) return true; + let aValidType = isDate(a); + let bValidType = isDate(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? a.getTime() === b.getTime() : false; + } + aValidType = isSymbol(a); + bValidType = isSymbol(b); + if (aValidType || bValidType) { + return a === b; + } + aValidType = isArray(a); + bValidType = isArray(b); + if (aValidType || bValidType) { + return aValidType && bValidType ? looseCompareArrays(a, b) : false; + } + aValidType = isObject(a); + bValidType = isObject(b); + if (aValidType || bValidType) { + if (!aValidType || !bValidType) { + return false; + } + const aKeysCount = Object.keys(a).length; + const bKeysCount = Object.keys(b).length; + if (aKeysCount !== bKeysCount) { + return false; + } + for (const key in a) { + const aHasKey = a.hasOwnProperty(key); + const bHasKey = b.hasOwnProperty(key); + if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) { + return false; + } + } + } + return String(a) === String(b); + } + function looseIndexOf(arr, val) { + return arr.findIndex((item) => looseEqual(item, val)); + } + + const isRef$1 = (val) => { + return !!(val && val["__v_isRef"] === true); + }; + const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef$1(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val); + }; + const replacer = (_key, val) => { + if (isRef$1(val)) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; + }; + const stringifySymbol = (v, i = "") => { + var _a; + return ( + // Symbol.description in es2019+ so we need to cast here to pass + // the lib: es2016 check + isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v + ); + }; + + function normalizeCssVarValue(value) { + if (value == null) { + return "initial"; + } + if (typeof value === "string") { + return value === "" ? " " : value; + } + if (typeof value !== "number" || !Number.isFinite(value)) { + { + console.warn( + "[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:", + value + ); + } + } + return String(value); + } + + function warn$2(msg, ...args) { + console.warn(`[Vue warn] ${msg}`, ...args); + } + + let activeEffectScope; + class EffectScope { + // TODO isolatedDeclarations "__v_skip" + constructor(detached = false) { + this.detached = detached; + /** + * @internal + */ + this._active = true; + /** + * @internal track `on` calls, allow `on` call multiple times + */ + this._on = 0; + /** + * @internal + */ + this.effects = []; + /** + * @internal + */ + this.cleanups = []; + this._isPaused = false; + this.__v_skip = true; + this.parent = activeEffectScope; + if (!detached && activeEffectScope) { + this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push( + this + ) - 1; + } + } + get active() { + return this._active; + } + pause() { + if (this._active) { + this._isPaused = true; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].pause(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].pause(); + } + } + } + /** + * Resumes the effect scope, including all child scopes and effects. + */ + resume() { + if (this._active) { + if (this._isPaused) { + this._isPaused = false; + let i, l; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].resume(); + } + } + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].resume(); + } + } + } + } + run(fn) { + if (this._active) { + const currentEffectScope = activeEffectScope; + try { + activeEffectScope = this; + return fn(); + } finally { + activeEffectScope = currentEffectScope; + } + } else { + warn$2(`cannot run an inactive effect scope.`); + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + on() { + if (++this._on === 1) { + this.prevScope = activeEffectScope; + activeEffectScope = this; + } + } + /** + * This should only be called on non-detached scopes + * @internal + */ + off() { + if (this._on > 0 && --this._on === 0) { + if (activeEffectScope === this) { + activeEffectScope = this.prevScope; + } else { + let current = activeEffectScope; + while (current) { + if (current.prevScope === this) { + current.prevScope = this.prevScope; + break; + } + current = current.prevScope; + } + } + this.prevScope = void 0; + } + } + stop(fromParent) { + if (this._active) { + this._active = false; + let i, l; + for (i = 0, l = this.effects.length; i < l; i++) { + this.effects[i].stop(); + } + this.effects.length = 0; + for (i = 0, l = this.cleanups.length; i < l; i++) { + this.cleanups[i](); + } + this.cleanups.length = 0; + if (this.scopes) { + for (i = 0, l = this.scopes.length; i < l; i++) { + this.scopes[i].stop(true); + } + this.scopes.length = 0; + } + if (!this.detached && this.parent && !fromParent) { + const last = this.parent.scopes.pop(); + if (last && last !== this) { + this.parent.scopes[this.index] = last; + last.index = this.index; + } + } + this.parent = void 0; + } + } + } + function effectScope(detached) { + return new EffectScope(detached); + } + function getCurrentScope() { + return activeEffectScope; + } + function onScopeDispose(fn, failSilently = false) { + if (activeEffectScope) { + activeEffectScope.cleanups.push(fn); + } else if (!failSilently) { + warn$2( + `onScopeDispose() is called when there is no active effect scope to be associated with.` + ); + } + } + + let activeSub; + const pausedQueueEffects = /* @__PURE__ */ new WeakSet(); + class ReactiveEffect { + constructor(fn) { + this.fn = fn; + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 1 | 4; + /** + * @internal + */ + this.next = void 0; + /** + * @internal + */ + this.cleanup = void 0; + this.scheduler = void 0; + if (activeEffectScope && activeEffectScope.active) { + activeEffectScope.effects.push(this); + } + } + pause() { + this.flags |= 64; + } + resume() { + if (this.flags & 64) { + this.flags &= -65; + if (pausedQueueEffects.has(this)) { + pausedQueueEffects.delete(this); + this.trigger(); + } + } + } + /** + * @internal + */ + notify() { + if (this.flags & 2 && !(this.flags & 32)) { + return; + } + if (!(this.flags & 8)) { + batch(this); + } + } + run() { + if (!(this.flags & 1)) { + return this.fn(); + } + this.flags |= 2; + cleanupEffect(this); + prepareDeps(this); + const prevEffect = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = this; + shouldTrack = true; + try { + return this.fn(); + } finally { + if (activeSub !== this) { + warn$2( + "Active effect was not restored correctly - this is likely a Vue internal bug." + ); + } + cleanupDeps(this); + activeSub = prevEffect; + shouldTrack = prevShouldTrack; + this.flags &= -3; + } + } + stop() { + if (this.flags & 1) { + for (let link = this.deps; link; link = link.nextDep) { + removeSub(link); + } + this.deps = this.depsTail = void 0; + cleanupEffect(this); + this.onStop && this.onStop(); + this.flags &= -2; + } + } + trigger() { + if (this.flags & 64) { + pausedQueueEffects.add(this); + } else if (this.scheduler) { + this.scheduler(); + } else { + this.runIfDirty(); + } + } + /** + * @internal + */ + runIfDirty() { + if (isDirty(this)) { + this.run(); + } + } + get dirty() { + return isDirty(this); + } + } + let batchDepth = 0; + let batchedSub; + let batchedComputed; + function batch(sub, isComputed = false) { + sub.flags |= 8; + if (isComputed) { + sub.next = batchedComputed; + batchedComputed = sub; + return; + } + sub.next = batchedSub; + batchedSub = sub; + } + function startBatch() { + batchDepth++; + } + function endBatch() { + if (--batchDepth > 0) { + return; + } + if (batchedComputed) { + let e = batchedComputed; + batchedComputed = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + e = next; + } + } + let error; + while (batchedSub) { + let e = batchedSub; + batchedSub = void 0; + while (e) { + const next = e.next; + e.next = void 0; + e.flags &= -9; + if (e.flags & 1) { + try { + ; + e.trigger(); + } catch (err) { + if (!error) error = err; + } + } + e = next; + } + } + if (error) throw error; + } + function prepareDeps(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + link.version = -1; + link.prevActiveLink = link.dep.activeLink; + link.dep.activeLink = link; + } + } + function cleanupDeps(sub) { + let head; + let tail = sub.depsTail; + let link = tail; + while (link) { + const prev = link.prevDep; + if (link.version === -1) { + if (link === tail) tail = prev; + removeSub(link); + removeDep(link); + } else { + head = link; + } + link.dep.activeLink = link.prevActiveLink; + link.prevActiveLink = void 0; + link = prev; + } + sub.deps = head; + sub.depsTail = tail; + } + function isDirty(sub) { + for (let link = sub.deps; link; link = link.nextDep) { + if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) { + return true; + } + } + if (sub._dirty) { + return true; + } + return false; + } + function refreshComputed(computed) { + if (computed.flags & 4 && !(computed.flags & 16)) { + return; + } + computed.flags &= -17; + if (computed.globalVersion === globalVersion) { + return; + } + computed.globalVersion = globalVersion; + if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) { + return; + } + computed.flags |= 2; + const dep = computed.dep; + const prevSub = activeSub; + const prevShouldTrack = shouldTrack; + activeSub = computed; + shouldTrack = true; + try { + prepareDeps(computed); + const value = computed.fn(computed._value); + if (dep.version === 0 || hasChanged(value, computed._value)) { + computed.flags |= 128; + computed._value = value; + dep.version++; + } + } catch (err) { + dep.version++; + throw err; + } finally { + activeSub = prevSub; + shouldTrack = prevShouldTrack; + cleanupDeps(computed); + computed.flags &= -3; + } + } + function removeSub(link, soft = false) { + const { dep, prevSub, nextSub } = link; + if (prevSub) { + prevSub.nextSub = nextSub; + link.prevSub = void 0; + } + if (nextSub) { + nextSub.prevSub = prevSub; + link.nextSub = void 0; + } + if (dep.subsHead === link) { + dep.subsHead = nextSub; + } + if (dep.subs === link) { + dep.subs = prevSub; + if (!prevSub && dep.computed) { + dep.computed.flags &= -5; + for (let l = dep.computed.deps; l; l = l.nextDep) { + removeSub(l, true); + } + } + } + if (!soft && !--dep.sc && dep.map) { + dep.map.delete(dep.key); + } + } + function removeDep(link) { + const { prevDep, nextDep } = link; + if (prevDep) { + prevDep.nextDep = nextDep; + link.prevDep = void 0; + } + if (nextDep) { + nextDep.prevDep = prevDep; + link.nextDep = void 0; + } + } + function effect(fn, options) { + if (fn.effect instanceof ReactiveEffect) { + fn = fn.effect.fn; + } + const e = new ReactiveEffect(fn); + if (options) { + extend(e, options); + } + try { + e.run(); + } catch (err) { + e.stop(); + throw err; + } + const runner = e.run.bind(e); + runner.effect = e; + return runner; + } + function stop(runner) { + runner.effect.stop(); + } + let shouldTrack = true; + const trackStack = []; + function pauseTracking() { + trackStack.push(shouldTrack); + shouldTrack = false; + } + function resetTracking() { + const last = trackStack.pop(); + shouldTrack = last === void 0 ? true : last; + } + function cleanupEffect(e) { + const { cleanup } = e; + e.cleanup = void 0; + if (cleanup) { + const prevSub = activeSub; + activeSub = void 0; + try { + cleanup(); + } finally { + activeSub = prevSub; + } + } + } + + let globalVersion = 0; + class Link { + constructor(sub, dep) { + this.sub = sub; + this.dep = dep; + this.version = dep.version; + this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0; + } + } + class Dep { + // TODO isolatedDeclarations "__v_skip" + constructor(computed) { + this.computed = computed; + this.version = 0; + /** + * Link between this dep and the current active effect + */ + this.activeLink = void 0; + /** + * Doubly linked list representing the subscribing effects (tail) + */ + this.subs = void 0; + /** + * For object property deps cleanup + */ + this.map = void 0; + this.key = void 0; + /** + * Subscriber counter + */ + this.sc = 0; + /** + * @internal + */ + this.__v_skip = true; + { + this.subsHead = void 0; + } + } + track(debugInfo) { + if (!activeSub || !shouldTrack || activeSub === this.computed) { + return; + } + let link = this.activeLink; + if (link === void 0 || link.sub !== activeSub) { + link = this.activeLink = new Link(activeSub, this); + if (!activeSub.deps) { + activeSub.deps = activeSub.depsTail = link; + } else { + link.prevDep = activeSub.depsTail; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + } + addSub(link); + } else if (link.version === -1) { + link.version = this.version; + if (link.nextDep) { + const next = link.nextDep; + next.prevDep = link.prevDep; + if (link.prevDep) { + link.prevDep.nextDep = next; + } + link.prevDep = activeSub.depsTail; + link.nextDep = void 0; + activeSub.depsTail.nextDep = link; + activeSub.depsTail = link; + if (activeSub.deps === link) { + activeSub.deps = next; + } + } + } + if (activeSub.onTrack) { + activeSub.onTrack( + extend( + { + effect: activeSub + }, + debugInfo + ) + ); + } + return link; + } + trigger(debugInfo) { + this.version++; + globalVersion++; + this.notify(debugInfo); + } + notify(debugInfo) { + startBatch(); + try { + if (true) { + for (let head = this.subsHead; head; head = head.nextSub) { + if (head.sub.onTrigger && !(head.sub.flags & 8)) { + head.sub.onTrigger( + extend( + { + effect: head.sub + }, + debugInfo + ) + ); + } + } + } + for (let link = this.subs; link; link = link.prevSub) { + if (link.sub.notify()) { + ; + link.sub.dep.notify(); + } + } + } finally { + endBatch(); + } + } + } + function addSub(link) { + link.dep.sc++; + if (link.sub.flags & 4) { + const computed = link.dep.computed; + if (computed && !link.dep.subs) { + computed.flags |= 4 | 16; + for (let l = computed.deps; l; l = l.nextDep) { + addSub(l); + } + } + const currentTail = link.dep.subs; + if (currentTail !== link) { + link.prevSub = currentTail; + if (currentTail) currentTail.nextSub = link; + } + if (link.dep.subsHead === void 0) { + link.dep.subsHead = link; + } + link.dep.subs = link; + } + } + const targetMap = /* @__PURE__ */ new WeakMap(); + const ITERATE_KEY = /* @__PURE__ */ Symbol( + "Object iterate" + ); + const MAP_KEY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Map keys iterate" + ); + const ARRAY_ITERATE_KEY = /* @__PURE__ */ Symbol( + "Array iterate" + ); + function track(target, type, key) { + if (shouldTrack && activeSub) { + let depsMap = targetMap.get(target); + if (!depsMap) { + targetMap.set(target, depsMap = /* @__PURE__ */ new Map()); + } + let dep = depsMap.get(key); + if (!dep) { + depsMap.set(key, dep = new Dep()); + dep.map = depsMap; + dep.key = key; + } + { + dep.track({ + target, + type, + key + }); + } + } + } + function trigger(target, type, key, newValue, oldValue, oldTarget) { + const depsMap = targetMap.get(target); + if (!depsMap) { + globalVersion++; + return; + } + const run = (dep) => { + if (dep) { + { + dep.trigger({ + target, + type, + key, + newValue, + oldValue, + oldTarget + }); + } + } + }; + startBatch(); + if (type === "clear") { + depsMap.forEach(run); + } else { + const targetIsArray = isArray(target); + const isArrayIndex = targetIsArray && isIntegerKey(key); + if (targetIsArray && key === "length") { + const newLength = Number(newValue); + depsMap.forEach((dep, key2) => { + if (key2 === "length" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) { + run(dep); + } + }); + } else { + if (key !== void 0 || depsMap.has(void 0)) { + run(depsMap.get(key)); + } + if (isArrayIndex) { + run(depsMap.get(ARRAY_ITERATE_KEY)); + } + switch (type) { + case "add": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } else if (isArrayIndex) { + run(depsMap.get("length")); + } + break; + case "delete": + if (!targetIsArray) { + run(depsMap.get(ITERATE_KEY)); + if (isMap(target)) { + run(depsMap.get(MAP_KEY_ITERATE_KEY)); + } + } + break; + case "set": + if (isMap(target)) { + run(depsMap.get(ITERATE_KEY)); + } + break; + } + } + } + endBatch(); + } + function getDepFromReactive(object, key) { + const depMap = targetMap.get(object); + return depMap && depMap.get(key); + } + + function reactiveReadArray(array) { + const raw = toRaw(array); + if (raw === array) return raw; + track(raw, "iterate", ARRAY_ITERATE_KEY); + return isShallow(array) ? raw : raw.map(toReactive); + } + function shallowReadArray(arr) { + track(arr = toRaw(arr), "iterate", ARRAY_ITERATE_KEY); + return arr; + } + function toWrapped(target, item) { + if (isReadonly(target)) { + return isReactive(target) ? toReadonly(toReactive(item)) : toReadonly(item); + } + return toReactive(item); + } + const arrayInstrumentations = { + __proto__: null, + [Symbol.iterator]() { + return iterator(this, Symbol.iterator, (item) => toWrapped(this, item)); + }, + concat(...args) { + return reactiveReadArray(this).concat( + ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x) + ); + }, + entries() { + return iterator(this, "entries", (value) => { + value[1] = toWrapped(this, value[1]); + return value; + }); + }, + every(fn, thisArg) { + return apply(this, "every", fn, thisArg, void 0, arguments); + }, + filter(fn, thisArg) { + return apply( + this, + "filter", + fn, + thisArg, + (v) => v.map((item) => toWrapped(this, item)), + arguments + ); + }, + find(fn, thisArg) { + return apply( + this, + "find", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findIndex(fn, thisArg) { + return apply(this, "findIndex", fn, thisArg, void 0, arguments); + }, + findLast(fn, thisArg) { + return apply( + this, + "findLast", + fn, + thisArg, + (item) => toWrapped(this, item), + arguments + ); + }, + findLastIndex(fn, thisArg) { + return apply(this, "findLastIndex", fn, thisArg, void 0, arguments); + }, + // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement + forEach(fn, thisArg) { + return apply(this, "forEach", fn, thisArg, void 0, arguments); + }, + includes(...args) { + return searchProxy(this, "includes", args); + }, + indexOf(...args) { + return searchProxy(this, "indexOf", args); + }, + join(separator) { + return reactiveReadArray(this).join(separator); + }, + // keys() iterator only reads `length`, no optimization required + lastIndexOf(...args) { + return searchProxy(this, "lastIndexOf", args); + }, + map(fn, thisArg) { + return apply(this, "map", fn, thisArg, void 0, arguments); + }, + pop() { + return noTracking(this, "pop"); + }, + push(...args) { + return noTracking(this, "push", args); + }, + reduce(fn, ...args) { + return reduce(this, "reduce", fn, args); + }, + reduceRight(fn, ...args) { + return reduce(this, "reduceRight", fn, args); + }, + shift() { + return noTracking(this, "shift"); + }, + // slice could use ARRAY_ITERATE but also seems to beg for range tracking + some(fn, thisArg) { + return apply(this, "some", fn, thisArg, void 0, arguments); + }, + splice(...args) { + return noTracking(this, "splice", args); + }, + toReversed() { + return reactiveReadArray(this).toReversed(); + }, + toSorted(comparer) { + return reactiveReadArray(this).toSorted(comparer); + }, + toSpliced(...args) { + return reactiveReadArray(this).toSpliced(...args); + }, + unshift(...args) { + return noTracking(this, "unshift", args); + }, + values() { + return iterator(this, "values", (item) => toWrapped(this, item)); + } + }; + function iterator(self, method, wrapValue) { + const arr = shallowReadArray(self); + const iter = arr[method](); + if (arr !== self && !isShallow(self)) { + iter._next = iter.next; + iter.next = () => { + const result = iter._next(); + if (!result.done) { + result.value = wrapValue(result.value); + } + return result; + }; + } + return iter; + } + const arrayProto = Array.prototype; + function apply(self, method, fn, thisArg, wrappedRetFn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + const methodFn = arr[method]; + if (methodFn !== arrayProto[method]) { + const result2 = methodFn.apply(self, args); + return needsWrap ? toReactive(result2) : result2; + } + let wrappedFn = fn; + if (arr !== self) { + if (needsWrap) { + wrappedFn = function(item, index) { + return fn.call(this, toWrapped(self, item), index, self); + }; + } else if (fn.length > 2) { + wrappedFn = function(item, index) { + return fn.call(this, item, index, self); + }; + } + } + const result = methodFn.call(arr, wrappedFn, thisArg); + return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result; + } + function reduce(self, method, fn, args) { + const arr = shallowReadArray(self); + const needsWrap = arr !== self && !isShallow(self); + let wrappedFn = fn; + let wrapInitialAccumulator = false; + if (arr !== self) { + if (needsWrap) { + wrapInitialAccumulator = args.length === 0; + wrappedFn = function(acc, item, index) { + if (wrapInitialAccumulator) { + wrapInitialAccumulator = false; + acc = toWrapped(self, acc); + } + return fn.call(this, acc, toWrapped(self, item), index, self); + }; + } else if (fn.length > 3) { + wrappedFn = function(acc, item, index) { + return fn.call(this, acc, item, index, self); + }; + } + } + const result = arr[method](wrappedFn, ...args); + return wrapInitialAccumulator ? toWrapped(self, result) : result; + } + function searchProxy(self, method, args) { + const arr = toRaw(self); + track(arr, "iterate", ARRAY_ITERATE_KEY); + const res = arr[method](...args); + if ((res === -1 || res === false) && isProxy(args[0])) { + args[0] = toRaw(args[0]); + return arr[method](...args); + } + return res; + } + function noTracking(self, method, args = []) { + pauseTracking(); + startBatch(); + const res = toRaw(self)[method].apply(self, args); + endBatch(); + resetTracking(); + return res; + } + + const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`); + const builtInSymbols = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol) + ); + function hasOwnProperty(key) { + if (!isSymbol(key)) key = String(key); + const obj = toRaw(this); + track(obj, "has", key); + return obj.hasOwnProperty(key); + } + class BaseReactiveHandler { + constructor(_isReadonly = false, _isShallow = false) { + this._isReadonly = _isReadonly; + this._isShallow = _isShallow; + } + get(target, key, receiver) { + if (key === "__v_skip") return target["__v_skip"]; + const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow; + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_isShallow") { + return isShallow2; + } else if (key === "__v_raw") { + if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype + // this means the receiver is a user proxy of the reactive proxy + Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) { + return target; + } + return; + } + const targetIsArray = isArray(target); + if (!isReadonly2) { + let fn; + if (targetIsArray && (fn = arrayInstrumentations[key])) { + return fn; + } + if (key === "hasOwnProperty") { + return hasOwnProperty; + } + } + const res = Reflect.get( + target, + key, + // if this is a proxy wrapping a ref, return methods using the raw ref + // as receiver so that we don't have to call `toRaw` on the ref in all + // its class methods + isRef(target) ? target : receiver + ); + if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) { + return res; + } + if (!isReadonly2) { + track(target, "get", key); + } + if (isShallow2) { + return res; + } + if (isRef(res)) { + const value = targetIsArray && isIntegerKey(key) ? res : res.value; + return isReadonly2 && isObject(value) ? readonly(value) : value; + } + if (isObject(res)) { + return isReadonly2 ? readonly(res) : reactive(res); + } + return res; + } + } + class MutableReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(false, isShallow2); + } + set(target, key, value, receiver) { + let oldValue = target[key]; + const isArrayWithIntegerKey = isArray(target) && isIntegerKey(key); + if (!this._isShallow) { + const isOldValueReadonly = isReadonly(oldValue); + if (!isShallow(value) && !isReadonly(value)) { + oldValue = toRaw(oldValue); + value = toRaw(value); + } + if (!isArrayWithIntegerKey && isRef(oldValue) && !isRef(value)) { + if (isOldValueReadonly) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target[key] + ); + } + return true; + } else { + oldValue.value = value; + return true; + } + } + } + const hadKey = isArrayWithIntegerKey ? Number(key) < target.length : hasOwn(target, key); + const result = Reflect.set( + target, + key, + value, + isRef(target) ? target : receiver + ); + if (target === toRaw(receiver)) { + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + } + return result; + } + deleteProperty(target, key) { + const hadKey = hasOwn(target, key); + const oldValue = target[key]; + const result = Reflect.deleteProperty(target, key); + if (result && hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + } + has(target, key) { + const result = Reflect.has(target, key); + if (!isSymbol(key) || !builtInSymbols.has(key)) { + track(target, "has", key); + } + return result; + } + ownKeys(target) { + track( + target, + "iterate", + isArray(target) ? "length" : ITERATE_KEY + ); + return Reflect.ownKeys(target); + } + } + class ReadonlyReactiveHandler extends BaseReactiveHandler { + constructor(isShallow2 = false) { + super(true, isShallow2); + } + set(target, key) { + { + warn$2( + `Set operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + deleteProperty(target, key) { + { + warn$2( + `Delete operation on key "${String(key)}" failed: target is readonly.`, + target + ); + } + return true; + } + } + const mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler(); + const readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(); + const shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true); + const shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true); + + const toShallow = (value) => value; + const getProto = (v) => Reflect.getPrototypeOf(v); + function createIterableMethod(method, isReadonly2, isShallow2) { + return function(...args) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const targetIsMap = isMap(rawTarget); + const isPair = method === "entries" || method === Symbol.iterator && targetIsMap; + const isKeyOnly = method === "keys" && targetIsMap; + const innerIterator = target[method](...args); + const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive; + !isReadonly2 && track( + rawTarget, + "iterate", + isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY + ); + return extend( + // inheriting all iterator properties + Object.create(innerIterator), + { + // iterator protocol + next() { + const { value, done } = innerIterator.next(); + return done ? { value, done } : { + value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value), + done + }; + } + } + ); + }; + } + function createReadonlyMethod(type) { + return function(...args) { + { + const key = args[0] ? `on key "${args[0]}" ` : ``; + warn$2( + `${capitalize(type)} operation ${key}failed: target is readonly.`, + toRaw(this) + ); + } + return type === "delete" ? false : type === "clear" ? void 0 : this; + }; + } + function createInstrumentations(readonly, shallow) { + const instrumentations = { + get(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "get", key); + } + track(rawTarget, "get", rawKey); + } + const { has } = getProto(rawTarget); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + if (has.call(rawTarget, key)) { + return wrap(target.get(key)); + } else if (has.call(rawTarget, rawKey)) { + return wrap(target.get(rawKey)); + } else if (target !== rawTarget) { + target.get(key); + } + }, + get size() { + const target = this["__v_raw"]; + !readonly && track(toRaw(target), "iterate", ITERATE_KEY); + return target.size; + }, + has(key) { + const target = this["__v_raw"]; + const rawTarget = toRaw(target); + const rawKey = toRaw(key); + if (!readonly) { + if (hasChanged(key, rawKey)) { + track(rawTarget, "has", key); + } + track(rawTarget, "has", rawKey); + } + return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey); + }, + forEach(callback, thisArg) { + const observed = this; + const target = observed["__v_raw"]; + const rawTarget = toRaw(target); + const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive; + !readonly && track(rawTarget, "iterate", ITERATE_KEY); + return target.forEach((value, key) => { + return callback.call(thisArg, wrap(value), wrap(key), observed); + }); + } + }; + extend( + instrumentations, + readonly ? { + add: createReadonlyMethod("add"), + set: createReadonlyMethod("set"), + delete: createReadonlyMethod("delete"), + clear: createReadonlyMethod("clear") + } : { + add(value) { + const target = toRaw(this); + const proto = getProto(target); + const rawValue = toRaw(value); + const valueToAdd = !shallow && !isShallow(value) && !isReadonly(value) ? rawValue : value; + const hadKey = proto.has.call(target, valueToAdd) || hasChanged(value, valueToAdd) && proto.has.call(target, value) || hasChanged(rawValue, valueToAdd) && proto.has.call(target, rawValue); + if (!hadKey) { + target.add(valueToAdd); + trigger(target, "add", valueToAdd, valueToAdd); + } + return this; + }, + set(key, value) { + if (!shallow && !isShallow(value) && !isReadonly(value)) { + value = toRaw(value); + } + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get.call(target, key); + target.set(key, value); + if (!hadKey) { + trigger(target, "add", key, value); + } else if (hasChanged(value, oldValue)) { + trigger(target, "set", key, value, oldValue); + } + return this; + }, + delete(key) { + const target = toRaw(this); + const { has, get } = getProto(target); + let hadKey = has.call(target, key); + if (!hadKey) { + key = toRaw(key); + hadKey = has.call(target, key); + } else { + checkIdentityKeys(target, has, key); + } + const oldValue = get ? get.call(target, key) : void 0; + const result = target.delete(key); + if (hadKey) { + trigger(target, "delete", key, void 0, oldValue); + } + return result; + }, + clear() { + const target = toRaw(this); + const hadItems = target.size !== 0; + const oldTarget = isMap(target) ? new Map(target) : new Set(target) ; + const result = target.clear(); + if (hadItems) { + trigger( + target, + "clear", + void 0, + void 0, + oldTarget + ); + } + return result; + } + } + ); + const iteratorMethods = [ + "keys", + "values", + "entries", + Symbol.iterator + ]; + iteratorMethods.forEach((method) => { + instrumentations[method] = createIterableMethod(method, readonly, shallow); + }); + return instrumentations; + } + function createInstrumentationGetter(isReadonly2, shallow) { + const instrumentations = createInstrumentations(isReadonly2, shallow); + return (target, key, receiver) => { + if (key === "__v_isReactive") { + return !isReadonly2; + } else if (key === "__v_isReadonly") { + return isReadonly2; + } else if (key === "__v_raw") { + return target; + } + return Reflect.get( + hasOwn(instrumentations, key) && key in target ? instrumentations : target, + key, + receiver + ); + }; + } + const mutableCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, false) + }; + const shallowCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(false, true) + }; + const readonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, false) + }; + const shallowReadonlyCollectionHandlers = { + get: /* @__PURE__ */ createInstrumentationGetter(true, true) + }; + function checkIdentityKeys(target, has, key) { + const rawKey = toRaw(key); + if (rawKey !== key && has.call(target, rawKey)) { + const type = toRawType(target); + warn$2( + `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.` + ); + } + } + + const reactiveMap = /* @__PURE__ */ new WeakMap(); + const shallowReactiveMap = /* @__PURE__ */ new WeakMap(); + const readonlyMap = /* @__PURE__ */ new WeakMap(); + const shallowReadonlyMap = /* @__PURE__ */ new WeakMap(); + function targetTypeMap(rawType) { + switch (rawType) { + case "Object": + case "Array": + return 1 /* COMMON */; + case "Map": + case "Set": + case "WeakMap": + case "WeakSet": + return 2 /* COLLECTION */; + default: + return 0 /* INVALID */; + } + } + function getTargetType(value) { + return value["__v_skip"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value)); + } + // @__NO_SIDE_EFFECTS__ + function reactive(target) { + if (/* @__PURE__ */ isReadonly(target)) { + return target; + } + return createReactiveObject( + target, + false, + mutableHandlers, + mutableCollectionHandlers, + reactiveMap + ); + } + // @__NO_SIDE_EFFECTS__ + function shallowReactive(target) { + return createReactiveObject( + target, + false, + shallowReactiveHandlers, + shallowCollectionHandlers, + shallowReactiveMap + ); + } + // @__NO_SIDE_EFFECTS__ + function readonly(target) { + return createReactiveObject( + target, + true, + readonlyHandlers, + readonlyCollectionHandlers, + readonlyMap + ); + } + // @__NO_SIDE_EFFECTS__ + function shallowReadonly(target) { + return createReactiveObject( + target, + true, + shallowReadonlyHandlers, + shallowReadonlyCollectionHandlers, + shallowReadonlyMap + ); + } + function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) { + if (!isObject(target)) { + { + warn$2( + `value cannot be made ${isReadonly2 ? "readonly" : "reactive"}: ${String( + target + )}` + ); + } + return target; + } + if (target["__v_raw"] && !(isReadonly2 && target["__v_isReactive"])) { + return target; + } + const targetType = getTargetType(target); + if (targetType === 0 /* INVALID */) { + return target; + } + const existingProxy = proxyMap.get(target); + if (existingProxy) { + return existingProxy; + } + const proxy = new Proxy( + target, + targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers + ); + proxyMap.set(target, proxy); + return proxy; + } + // @__NO_SIDE_EFFECTS__ + function isReactive(value) { + if (/* @__PURE__ */ isReadonly(value)) { + return /* @__PURE__ */ isReactive(value["__v_raw"]); + } + return !!(value && value["__v_isReactive"]); + } + // @__NO_SIDE_EFFECTS__ + function isReadonly(value) { + return !!(value && value["__v_isReadonly"]); + } + // @__NO_SIDE_EFFECTS__ + function isShallow(value) { + return !!(value && value["__v_isShallow"]); + } + // @__NO_SIDE_EFFECTS__ + function isProxy(value) { + return value ? !!value["__v_raw"] : false; + } + // @__NO_SIDE_EFFECTS__ + function toRaw(observed) { + const raw = observed && observed["__v_raw"]; + return raw ? /* @__PURE__ */ toRaw(raw) : observed; + } + function markRaw(value) { + if (!hasOwn(value, "__v_skip") && Object.isExtensible(value)) { + def(value, "__v_skip", true); + } + return value; + } + const toReactive = (value) => isObject(value) ? /* @__PURE__ */ reactive(value) : value; + const toReadonly = (value) => isObject(value) ? /* @__PURE__ */ readonly(value) : value; + + // @__NO_SIDE_EFFECTS__ + function isRef(r) { + return r ? r["__v_isRef"] === true : false; + } + // @__NO_SIDE_EFFECTS__ + function ref(value) { + return createRef(value, false); + } + // @__NO_SIDE_EFFECTS__ + function shallowRef(value) { + return createRef(value, true); + } + function createRef(rawValue, shallow) { + if (/* @__PURE__ */ isRef(rawValue)) { + return rawValue; + } + return new RefImpl(rawValue, shallow); + } + class RefImpl { + constructor(value, isShallow2) { + this.dep = new Dep(); + this["__v_isRef"] = true; + this["__v_isShallow"] = false; + this._rawValue = isShallow2 ? value : toRaw(value); + this._value = isShallow2 ? value : toReactive(value); + this["__v_isShallow"] = isShallow2; + } + get value() { + { + this.dep.track({ + target: this, + type: "get", + key: "value" + }); + } + return this._value; + } + set value(newValue) { + const oldValue = this._rawValue; + const useDirectValue = this["__v_isShallow"] || isShallow(newValue) || isReadonly(newValue); + newValue = useDirectValue ? newValue : toRaw(newValue); + if (hasChanged(newValue, oldValue)) { + this._rawValue = newValue; + this._value = useDirectValue ? newValue : toReactive(newValue); + { + this.dep.trigger({ + target: this, + type: "set", + key: "value", + newValue, + oldValue + }); + } + } + } + } + function triggerRef(ref2) { + if (ref2.dep) { + { + ref2.dep.trigger({ + target: ref2, + type: "set", + key: "value", + newValue: ref2._value + }); + } + } + } + function unref(ref2) { + return /* @__PURE__ */ isRef(ref2) ? ref2.value : ref2; + } + function toValue(source) { + return isFunction(source) ? source() : unref(source); + } + const shallowUnwrapHandlers = { + get: (target, key, receiver) => key === "__v_raw" ? target : unref(Reflect.get(target, key, receiver)), + set: (target, key, value, receiver) => { + const oldValue = target[key]; + if (/* @__PURE__ */ isRef(oldValue) && !/* @__PURE__ */ isRef(value)) { + oldValue.value = value; + return true; + } else { + return Reflect.set(target, key, value, receiver); + } + } + }; + function proxyRefs(objectWithRefs) { + return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers); + } + class CustomRefImpl { + constructor(factory) { + this["__v_isRef"] = true; + this._value = void 0; + const dep = this.dep = new Dep(); + const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep)); + this._get = get; + this._set = set; + } + get value() { + return this._value = this._get(); + } + set value(newVal) { + this._set(newVal); + } + } + function customRef(factory) { + return new CustomRefImpl(factory); + } + // @__NO_SIDE_EFFECTS__ + function toRefs(object) { + if (!isProxy(object)) { + warn$2(`toRefs() expects a reactive object but received a plain one.`); + } + const ret = isArray(object) ? new Array(object.length) : {}; + for (const key in object) { + ret[key] = propertyToRef(object, key); + } + return ret; + } + class ObjectRefImpl { + constructor(_object, key, _defaultValue) { + this._object = _object; + this._defaultValue = _defaultValue; + this["__v_isRef"] = true; + this._value = void 0; + this._key = isSymbol(key) ? key : String(key); + this._raw = toRaw(_object); + let shallow = true; + let obj = _object; + if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) { + do { + shallow = !isProxy(obj) || isShallow(obj); + } while (shallow && (obj = obj["__v_raw"])); + } + this._shallow = shallow; + } + get value() { + let val = this._object[this._key]; + if (this._shallow) { + val = unref(val); + } + return this._value = val === void 0 ? this._defaultValue : val; + } + set value(newVal) { + if (this._shallow && /* @__PURE__ */ isRef(this._raw[this._key])) { + const nestedRef = this._object[this._key]; + if (/* @__PURE__ */ isRef(nestedRef)) { + nestedRef.value = newVal; + return; + } + } + this._object[this._key] = newVal; + } + get dep() { + return getDepFromReactive(this._raw, this._key); + } + } + class GetterRefImpl { + constructor(_getter) { + this._getter = _getter; + this["__v_isRef"] = true; + this["__v_isReadonly"] = true; + this._value = void 0; + } + get value() { + return this._value = this._getter(); + } + } + // @__NO_SIDE_EFFECTS__ + function toRef(source, key, defaultValue) { + if (/* @__PURE__ */ isRef(source)) { + return source; + } else if (isFunction(source)) { + return new GetterRefImpl(source); + } else if (isObject(source) && arguments.length > 1) { + return propertyToRef(source, key, defaultValue); + } else { + return /* @__PURE__ */ ref(source); + } + } + function propertyToRef(source, key, defaultValue) { + return new ObjectRefImpl(source, key, defaultValue); + } + + class ComputedRefImpl { + constructor(fn, setter, isSSR) { + this.fn = fn; + this.setter = setter; + /** + * @internal + */ + this._value = void 0; + /** + * @internal + */ + this.dep = new Dep(this); + /** + * @internal + */ + this.__v_isRef = true; + // TODO isolatedDeclarations "__v_isReadonly" + // A computed is also a subscriber that tracks other deps + /** + * @internal + */ + this.deps = void 0; + /** + * @internal + */ + this.depsTail = void 0; + /** + * @internal + */ + this.flags = 16; + /** + * @internal + */ + this.globalVersion = globalVersion - 1; + /** + * @internal + */ + this.next = void 0; + // for backwards compat + this.effect = this; + this["__v_isReadonly"] = !setter; + this.isSSR = isSSR; + } + /** + * @internal + */ + notify() { + this.flags |= 16; + if (!(this.flags & 8) && // avoid infinite self recursion + activeSub !== this) { + batch(this, true); + return true; + } + } + get value() { + const link = this.dep.track({ + target: this, + type: "get", + key: "value" + }) ; + refreshComputed(this); + if (link) { + link.version = this.dep.version; + } + return this._value; + } + set value(newValue) { + if (this.setter) { + this.setter(newValue); + } else { + warn$2("Write operation failed: computed value is readonly"); + } + } + } + // @__NO_SIDE_EFFECTS__ + function computed$1(getterOrOptions, debugOptions, isSSR = false) { + let getter; + let setter; + if (isFunction(getterOrOptions)) { + getter = getterOrOptions; + } else { + getter = getterOrOptions.get; + setter = getterOrOptions.set; + } + const cRef = new ComputedRefImpl(getter, setter, isSSR); + if (debugOptions && !isSSR) { + cRef.onTrack = debugOptions.onTrack; + cRef.onTrigger = debugOptions.onTrigger; + } + return cRef; + } + + const TrackOpTypes = { + "GET": "get", + "HAS": "has", + "ITERATE": "iterate" + }; + const TriggerOpTypes = { + "SET": "set", + "ADD": "add", + "DELETE": "delete", + "CLEAR": "clear" + }; + + const INITIAL_WATCHER_VALUE = {}; + const cleanupMap = /* @__PURE__ */ new WeakMap(); + let activeWatcher = void 0; + function getCurrentWatcher() { + return activeWatcher; + } + function onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) { + if (owner) { + let cleanups = cleanupMap.get(owner); + if (!cleanups) cleanupMap.set(owner, cleanups = []); + cleanups.push(cleanupFn); + } else if (!failSilently) { + warn$2( + `onWatcherCleanup() was called when there was no active watcher to associate with.` + ); + } + } + function watch$1(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, once, scheduler, augmentJob, call } = options; + const warnInvalidSource = (s) => { + (options.onWarn || warn$2)( + `Invalid watch source: `, + s, + `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.` + ); + }; + const reactiveGetter = (source2) => { + if (deep) return source2; + if (isShallow(source2) || deep === false || deep === 0) + return traverse(source2, 1); + return traverse(source2); + }; + let effect; + let getter; + let cleanup; + let boundCleanup; + let forceTrigger = false; + let isMultiSource = false; + if (isRef(source)) { + getter = () => source.value; + forceTrigger = isShallow(source); + } else if (isReactive(source)) { + getter = () => reactiveGetter(source); + forceTrigger = true; + } else if (isArray(source)) { + isMultiSource = true; + forceTrigger = source.some((s) => isReactive(s) || isShallow(s)); + getter = () => source.map((s) => { + if (isRef(s)) { + return s.value; + } else if (isReactive(s)) { + return reactiveGetter(s); + } else if (isFunction(s)) { + return call ? call(s, 2) : s(); + } else { + warnInvalidSource(s); + } + }); + } else if (isFunction(source)) { + if (cb) { + getter = call ? () => call(source, 2) : source; + } else { + getter = () => { + if (cleanup) { + pauseTracking(); + try { + cleanup(); + } finally { + resetTracking(); + } + } + const currentEffect = activeWatcher; + activeWatcher = effect; + try { + return call ? call(source, 3, [boundCleanup]) : source(boundCleanup); + } finally { + activeWatcher = currentEffect; + } + }; + } + } else { + getter = NOOP; + warnInvalidSource(source); + } + if (cb && deep) { + const baseGetter = getter; + const depth = deep === true ? Infinity : deep; + getter = () => traverse(baseGetter(), depth); + } + const scope = getCurrentScope(); + const watchHandle = () => { + effect.stop(); + if (scope && scope.active) { + remove(scope.effects, effect); + } + }; + if (once && cb) { + const _cb = cb; + cb = (...args) => { + _cb(...args); + watchHandle(); + }; + } + let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE; + const job = (immediateFirstRun) => { + if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) { + return; + } + if (cb) { + const newValue = effect.run(); + if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) { + if (cleanup) { + cleanup(); + } + const currentWatcher = activeWatcher; + activeWatcher = effect; + try { + const args = [ + newValue, + // pass undefined as the old value when it's changed for the first time + oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue, + boundCleanup + ]; + oldValue = newValue; + call ? call(cb, 3, args) : ( + // @ts-expect-error + cb(...args) + ); + } finally { + activeWatcher = currentWatcher; + } + } + } else { + effect.run(); + } + }; + if (augmentJob) { + augmentJob(job); + } + effect = new ReactiveEffect(getter); + effect.scheduler = scheduler ? () => scheduler(job, false) : job; + boundCleanup = (fn) => onWatcherCleanup(fn, false, effect); + cleanup = effect.onStop = () => { + const cleanups = cleanupMap.get(effect); + if (cleanups) { + if (call) { + call(cleanups, 4); + } else { + for (const cleanup2 of cleanups) cleanup2(); + } + cleanupMap.delete(effect); + } + }; + { + effect.onTrack = options.onTrack; + effect.onTrigger = options.onTrigger; + } + if (cb) { + if (immediate) { + job(true); + } else { + oldValue = effect.run(); + } + } else if (scheduler) { + scheduler(job.bind(null, true), true); + } else { + effect.run(); + } + watchHandle.pause = effect.pause.bind(effect); + watchHandle.resume = effect.resume.bind(effect); + watchHandle.stop = watchHandle; + return watchHandle; + } + function traverse(value, depth = Infinity, seen) { + if (depth <= 0 || !isObject(value) || value["__v_skip"]) { + return value; + } + seen = seen || /* @__PURE__ */ new Map(); + if ((seen.get(value) || 0) >= depth) { + return value; + } + seen.set(value, depth); + depth--; + if (isRef(value)) { + traverse(value.value, depth, seen); + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + traverse(value[i], depth, seen); + } + } else if (isSet(value) || isMap(value)) { + value.forEach((v) => { + traverse(v, depth, seen); + }); + } else if (isPlainObject(value)) { + for (const key in value) { + traverse(value[key], depth, seen); + } + for (const key of Object.getOwnPropertySymbols(value)) { + if (Object.prototype.propertyIsEnumerable.call(value, key)) { + traverse(value[key], depth, seen); + } + } + } + return value; + } + + const stack$1 = []; + function pushWarningContext(vnode) { + stack$1.push(vnode); + } + function popWarningContext() { + stack$1.pop(); + } + let isWarning = false; + function warn$1(msg, ...args) { + if (isWarning) return; + isWarning = true; + pauseTracking(); + const instance = stack$1.length ? stack$1[stack$1.length - 1].component : null; + const appWarnHandler = instance && instance.appContext.config.warnHandler; + const trace = getComponentTrace(); + if (appWarnHandler) { + callWithErrorHandling( + appWarnHandler, + instance, + 11, + [ + // eslint-disable-next-line no-restricted-syntax + msg + args.map((a) => { + var _a, _b; + return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a); + }).join(""), + instance && instance.proxy, + trace.map( + ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>` + ).join("\n"), + trace + ] + ); + } else { + const warnArgs = [`[Vue warn]: ${msg}`, ...args]; + if (trace.length && // avoid spamming console during tests + true) { + warnArgs.push(` +`, ...formatTrace(trace)); + } + console.warn(...warnArgs); + } + resetTracking(); + isWarning = false; + } + function getComponentTrace() { + let currentVNode = stack$1[stack$1.length - 1]; + if (!currentVNode) { + return []; + } + const normalizedStack = []; + while (currentVNode) { + const last = normalizedStack[0]; + if (last && last.vnode === currentVNode) { + last.recurseCount++; + } else { + normalizedStack.push({ + vnode: currentVNode, + recurseCount: 0 + }); + } + const parentInstance = currentVNode.component && currentVNode.component.parent; + currentVNode = parentInstance && parentInstance.vnode; + } + return normalizedStack; + } + function formatTrace(trace) { + const logs = []; + trace.forEach((entry, i) => { + logs.push(...i === 0 ? [] : [` +`], ...formatTraceEntry(entry)); + }); + return logs; + } + function formatTraceEntry({ vnode, recurseCount }) { + const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``; + const isRoot = vnode.component ? vnode.component.parent == null : false; + const open = ` at <${formatComponentName( + vnode.component, + vnode.type, + isRoot + )}`; + const close = `>` + postfix; + return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close]; + } + function formatProps(props) { + const res = []; + const keys = Object.keys(props); + keys.slice(0, 3).forEach((key) => { + res.push(...formatProp(key, props[key])); + }); + if (keys.length > 3) { + res.push(` ...`); + } + return res; + } + function formatProp(key, value, raw) { + if (isString(value)) { + value = JSON.stringify(value); + return raw ? value : [`${key}=${value}`]; + } else if (typeof value === "number" || typeof value === "boolean" || value == null) { + return raw ? value : [`${key}=${value}`]; + } else if (isRef(value)) { + value = formatProp(key, toRaw(value.value), true); + return raw ? value : [`${key}=Ref<`, value, `>`]; + } else if (isFunction(value)) { + return [`${key}=fn${value.name ? `<${value.name}>` : ``}`]; + } else { + value = toRaw(value); + return raw ? value : [`${key}=`, value]; + } + } + function assertNumber(val, type) { + if (val === void 0) { + return; + } else if (typeof val !== "number") { + warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`); + } else if (isNaN(val)) { + warn$1(`${type} is NaN - the duration expression might be incorrect.`); + } + } + + const ErrorCodes = { + "SETUP_FUNCTION": 0, + "0": "SETUP_FUNCTION", + "RENDER_FUNCTION": 1, + "1": "RENDER_FUNCTION", + "NATIVE_EVENT_HANDLER": 5, + "5": "NATIVE_EVENT_HANDLER", + "COMPONENT_EVENT_HANDLER": 6, + "6": "COMPONENT_EVENT_HANDLER", + "VNODE_HOOK": 7, + "7": "VNODE_HOOK", + "DIRECTIVE_HOOK": 8, + "8": "DIRECTIVE_HOOK", + "TRANSITION_HOOK": 9, + "9": "TRANSITION_HOOK", + "APP_ERROR_HANDLER": 10, + "10": "APP_ERROR_HANDLER", + "APP_WARN_HANDLER": 11, + "11": "APP_WARN_HANDLER", + "FUNCTION_REF": 12, + "12": "FUNCTION_REF", + "ASYNC_COMPONENT_LOADER": 13, + "13": "ASYNC_COMPONENT_LOADER", + "SCHEDULER": 14, + "14": "SCHEDULER", + "COMPONENT_UPDATE": 15, + "15": "COMPONENT_UPDATE", + "APP_UNMOUNT_CLEANUP": 16, + "16": "APP_UNMOUNT_CLEANUP" + }; + const ErrorTypeStrings$1 = { + ["sp"]: "serverPrefetch hook", + ["bc"]: "beforeCreate hook", + ["c"]: "created hook", + ["bm"]: "beforeMount hook", + ["m"]: "mounted hook", + ["bu"]: "beforeUpdate hook", + ["u"]: "updated", + ["bum"]: "beforeUnmount hook", + ["um"]: "unmounted hook", + ["a"]: "activated hook", + ["da"]: "deactivated hook", + ["ec"]: "errorCaptured hook", + ["rtc"]: "renderTracked hook", + ["rtg"]: "renderTriggered hook", + [0]: "setup function", + [1]: "render function", + [2]: "watcher getter", + [3]: "watcher callback", + [4]: "watcher cleanup function", + [5]: "native event handler", + [6]: "component event handler", + [7]: "vnode hook", + [8]: "directive hook", + [9]: "transition hook", + [10]: "app errorHandler", + [11]: "app warnHandler", + [12]: "ref function", + [13]: "async component loader", + [14]: "scheduler flush", + [15]: "component update", + [16]: "app unmount cleanup function" + }; + function callWithErrorHandling(fn, instance, type, args) { + try { + return args ? fn(...args) : fn(); + } catch (err) { + handleError(err, instance, type); + } + } + function callWithAsyncErrorHandling(fn, instance, type, args) { + if (isFunction(fn)) { + const res = callWithErrorHandling(fn, instance, type, args); + if (res && isPromise(res)) { + res.catch((err) => { + handleError(err, instance, type); + }); + } + return res; + } + if (isArray(fn)) { + const values = []; + for (let i = 0; i < fn.length; i++) { + values.push(callWithAsyncErrorHandling(fn[i], instance, type, args)); + } + return values; + } else { + warn$1( + `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}` + ); + } + } + function handleError(err, instance, type, throwInDev = true) { + const contextVNode = instance ? instance.vnode : null; + const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ; + if (instance) { + let cur = instance.parent; + const exposedInstance = instance.proxy; + const errorInfo = ErrorTypeStrings$1[type] ; + while (cur) { + const errorCapturedHooks = cur.ec; + if (errorCapturedHooks) { + for (let i = 0; i < errorCapturedHooks.length; i++) { + if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) { + return; + } + } + } + cur = cur.parent; + } + if (errorHandler) { + pauseTracking(); + callWithErrorHandling(errorHandler, null, 10, [ + err, + exposedInstance, + errorInfo + ]); + resetTracking(); + return; + } + } + logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction); + } + function logError(err, type, contextVNode, throwInDev = true, throwInProd = false) { + { + const info = ErrorTypeStrings$1[type]; + if (contextVNode) { + pushWarningContext(contextVNode); + } + warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`); + if (contextVNode) { + popWarningContext(); + } + if (throwInDev) { + throw err; + } else { + console.error(err); + } + } + } + + const queue = []; + let flushIndex = -1; + const pendingPostFlushCbs = []; + let activePostFlushCbs = null; + let postFlushIndex = 0; + const resolvedPromise = /* @__PURE__ */ Promise.resolve(); + let currentFlushPromise = null; + const RECURSION_LIMIT = 100; + function nextTick(fn) { + const p = currentFlushPromise || resolvedPromise; + return fn ? p.then(this ? fn.bind(this) : fn) : p; + } + function findInsertionIndex(id) { + let start = flushIndex + 1; + let end = queue.length; + while (start < end) { + const middle = start + end >>> 1; + const middleJob = queue[middle]; + const middleJobId = getId(middleJob); + if (middleJobId < id || middleJobId === id && middleJob.flags & 2) { + start = middle + 1; + } else { + end = middle; + } + } + return start; + } + function queueJob(job) { + if (!(job.flags & 1)) { + const jobId = getId(job); + const lastJob = queue[queue.length - 1]; + if (!lastJob || // fast path when the job id is larger than the tail + !(job.flags & 2) && jobId >= getId(lastJob)) { + queue.push(job); + } else { + queue.splice(findInsertionIndex(jobId), 0, job); + } + job.flags |= 1; + queueFlush(); + } + } + function queueFlush() { + if (!currentFlushPromise) { + currentFlushPromise = resolvedPromise.then(flushJobs); + } + } + function queuePostFlushCb(cb) { + if (!isArray(cb)) { + if (activePostFlushCbs && cb.id === -1) { + activePostFlushCbs.splice(postFlushIndex + 1, 0, cb); + } else if (!(cb.flags & 1)) { + pendingPostFlushCbs.push(cb); + cb.flags |= 1; + } + } else { + pendingPostFlushCbs.push(...cb); + } + queueFlush(); + } + function flushPreFlushCbs(instance, seen, i = flushIndex + 1) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (; i < queue.length; i++) { + const cb = queue[i]; + if (cb && cb.flags & 2) { + if (instance && cb.id !== instance.uid) { + continue; + } + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + queue.splice(i, 1); + i--; + if (cb.flags & 4) { + cb.flags &= -2; + } + cb(); + if (!(cb.flags & 4)) { + cb.flags &= -2; + } + } + } + } + function flushPostFlushCbs(seen) { + if (pendingPostFlushCbs.length) { + const deduped = [...new Set(pendingPostFlushCbs)].sort( + (a, b) => getId(a) - getId(b) + ); + pendingPostFlushCbs.length = 0; + if (activePostFlushCbs) { + activePostFlushCbs.push(...deduped); + return; + } + activePostFlushCbs = deduped; + { + seen = seen || /* @__PURE__ */ new Map(); + } + for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) { + const cb = activePostFlushCbs[postFlushIndex]; + if (checkRecursiveUpdates(seen, cb)) { + continue; + } + if (cb.flags & 4) { + cb.flags &= -2; + } + if (!(cb.flags & 8)) cb(); + cb.flags &= -2; + } + activePostFlushCbs = null; + postFlushIndex = 0; + } + } + const getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id; + function flushJobs(seen) { + { + seen = seen || /* @__PURE__ */ new Map(); + } + const check = (job) => checkRecursiveUpdates(seen, job) ; + try { + for (flushIndex = 0; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job && !(job.flags & 8)) { + if (check(job)) { + continue; + } + if (job.flags & 4) { + job.flags &= ~1; + } + callWithErrorHandling( + job, + job.i, + job.i ? 15 : 14 + ); + if (!(job.flags & 4)) { + job.flags &= ~1; + } + } + } + } finally { + for (; flushIndex < queue.length; flushIndex++) { + const job = queue[flushIndex]; + if (job) { + job.flags &= -2; + } + } + flushIndex = -1; + queue.length = 0; + flushPostFlushCbs(seen); + currentFlushPromise = null; + if (queue.length || pendingPostFlushCbs.length) { + flushJobs(seen); + } + } + } + function checkRecursiveUpdates(seen, fn) { + const count = seen.get(fn) || 0; + if (count > RECURSION_LIMIT) { + const instance = fn.i; + const componentName = instance && getComponentName(instance.type); + handleError( + `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`, + null, + 10 + ); + return true; + } + seen.set(fn, count + 1); + return false; + } + + let isHmrUpdating = false; + const setHmrUpdating = (v) => { + try { + return isHmrUpdating; + } finally { + isHmrUpdating = v; + } + }; + const hmrDirtyComponents = /* @__PURE__ */ new Map(); + { + getGlobalThis().__VUE_HMR_RUNTIME__ = { + createRecord: tryWrap(createRecord), + rerender: tryWrap(rerender), + reload: tryWrap(reload) + }; + } + const map = /* @__PURE__ */ new Map(); + function registerHMR(instance) { + const id = instance.type.__hmrId; + let record = map.get(id); + if (!record) { + createRecord(id, instance.type); + record = map.get(id); + } + record.instances.add(instance); + } + function unregisterHMR(instance) { + map.get(instance.type.__hmrId).instances.delete(instance); + } + function createRecord(id, initialDef) { + if (map.has(id)) { + return false; + } + map.set(id, { + initialDef: normalizeClassComponent(initialDef), + instances: /* @__PURE__ */ new Set() + }); + return true; + } + function normalizeClassComponent(component) { + return isClassComponent(component) ? component.__vccOpts : component; + } + function rerender(id, newRender) { + const record = map.get(id); + if (!record) { + return; + } + record.initialDef.render = newRender; + [...record.instances].forEach((instance) => { + if (newRender) { + instance.render = newRender; + normalizeClassComponent(instance.type).render = newRender; + } + instance.renderCache = []; + isHmrUpdating = true; + if (!(instance.job.flags & 8)) { + instance.update(); + } + isHmrUpdating = false; + }); + } + function reload(id, newComp) { + const record = map.get(id); + if (!record) return; + newComp = normalizeClassComponent(newComp); + updateComponentDef(record.initialDef, newComp); + const instances = [...record.instances]; + for (let i = 0; i < instances.length; i++) { + const instance = instances[i]; + const oldComp = normalizeClassComponent(instance.type); + let dirtyInstances = hmrDirtyComponents.get(oldComp); + if (!dirtyInstances) { + if (oldComp !== record.initialDef) { + updateComponentDef(oldComp, newComp); + } + hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set()); + } + dirtyInstances.add(instance); + instance.appContext.propsCache.delete(instance.type); + instance.appContext.emitsCache.delete(instance.type); + instance.appContext.optionsCache.delete(instance.type); + if (instance.ceReload) { + dirtyInstances.add(instance); + instance.ceReload(newComp.styles); + dirtyInstances.delete(instance); + } else if (instance.parent) { + queueJob(() => { + if (!(instance.job.flags & 8)) { + isHmrUpdating = true; + instance.parent.update(); + isHmrUpdating = false; + dirtyInstances.delete(instance); + } + }); + } else if (instance.appContext.reload) { + instance.appContext.reload(); + } else if (typeof window !== "undefined") { + window.location.reload(); + } else { + console.warn( + "[HMR] Root or manually mounted instance modified. Full reload required." + ); + } + if (instance.root.ce && instance !== instance.root) { + instance.root.ce._removeChildStyle(oldComp); + } + } + queuePostFlushCb(() => { + hmrDirtyComponents.clear(); + }); + } + function updateComponentDef(oldComp, newComp) { + extend(oldComp, newComp); + for (const key in oldComp) { + if (key !== "__file" && !(key in newComp)) { + delete oldComp[key]; + } + } + } + function tryWrap(fn) { + return (id, arg) => { + try { + return fn(id, arg); + } catch (e) { + console.error(e); + console.warn( + `[HMR] Something went wrong during Vue component hot-reload. Full reload required.` + ); + } + }; + } + + let devtools$1; + let buffer = []; + let devtoolsNotInstalled = false; + function emit$1(event, ...args) { + if (devtools$1) { + devtools$1.emit(event, ...args); + } else if (!devtoolsNotInstalled) { + buffer.push({ event, args }); + } + } + function setDevtoolsHook$1(hook, target) { + var _a, _b; + devtools$1 = hook; + if (devtools$1) { + devtools$1.enabled = true; + buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args)); + buffer = []; + } else if ( + // handle late devtools injection - only do this if we are in an actual + // browser environment to avoid the timer handle stalling test runner exit + // (#4815) + typeof window !== "undefined" && // some envs mock window but not fully + window.HTMLElement && // also exclude jsdom + // eslint-disable-next-line no-restricted-syntax + !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes("jsdom")) + ) { + const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []; + replay.push((newHook) => { + setDevtoolsHook$1(newHook, target); + }); + setTimeout(() => { + if (!devtools$1) { + target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null; + devtoolsNotInstalled = true; + buffer = []; + } + }, 3e3); + } else { + devtoolsNotInstalled = true; + buffer = []; + } + } + function devtoolsInitApp(app, version) { + emit$1("app:init" /* APP_INIT */, app, version, { + Fragment, + Text, + Comment, + Static + }); + } + function devtoolsUnmountApp(app) { + emit$1("app:unmount" /* APP_UNMOUNT */, app); + } + const devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook("component:added" /* COMPONENT_ADDED */); + const devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook("component:updated" /* COMPONENT_UPDATED */); + const _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook( + "component:removed" /* COMPONENT_REMOVED */ + ); + const devtoolsComponentRemoved = (component) => { + if (devtools$1 && typeof devtools$1.cleanupBuffer === "function" && // remove the component if it wasn't buffered + !devtools$1.cleanupBuffer(component)) { + _devtoolsComponentRemoved(component); + } + }; + // @__NO_SIDE_EFFECTS__ + function createDevtoolsComponentHook(hook) { + return (component) => { + emit$1( + hook, + component.appContext.app, + component.uid, + component.parent ? component.parent.uid : void 0, + component + ); + }; + } + const devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:start" /* PERFORMANCE_START */); + const devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook("perf:end" /* PERFORMANCE_END */); + function createDevtoolsPerformanceHook(hook) { + return (component, type, time) => { + emit$1(hook, component.appContext.app, component.uid, component, type, time); + }; + } + function devtoolsComponentEmit(component, event, params) { + emit$1( + "component:emit" /* COMPONENT_EMIT */, + component.appContext.app, + component, + event, + params + ); + } + + let currentRenderingInstance = null; + let currentScopeId = null; + function setCurrentRenderingInstance(instance) { + const prev = currentRenderingInstance; + currentRenderingInstance = instance; + currentScopeId = instance && instance.type.__scopeId || null; + return prev; + } + function pushScopeId(id) { + currentScopeId = id; + } + function popScopeId() { + currentScopeId = null; + } + const withScopeId = (_id) => withCtx; + function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) { + if (!ctx) return fn; + if (fn._n) { + return fn; + } + const renderFnWithContext = (...args) => { + if (renderFnWithContext._d) { + setBlockTracking(-1); + } + const prevInstance = setCurrentRenderingInstance(ctx); + let res; + try { + res = fn(...args); + } finally { + setCurrentRenderingInstance(prevInstance); + if (renderFnWithContext._d) { + setBlockTracking(1); + } + } + { + devtoolsComponentUpdated(ctx); + } + return res; + }; + renderFnWithContext._n = true; + renderFnWithContext._c = true; + renderFnWithContext._d = true; + return renderFnWithContext; + } + + function validateDirectiveName(name) { + if (isBuiltInDirective(name)) { + warn$1("Do not use built-in directive ids as custom directive id: " + name); + } + } + function withDirectives(vnode, directives) { + if (currentRenderingInstance === null) { + warn$1(`withDirectives can only be used inside render functions.`); + return vnode; + } + const instance = getComponentPublicInstance(currentRenderingInstance); + const bindings = vnode.dirs || (vnode.dirs = []); + for (let i = 0; i < directives.length; i++) { + let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i]; + if (dir) { + if (isFunction(dir)) { + dir = { + mounted: dir, + updated: dir + }; + } + if (dir.deep) { + traverse(value); + } + bindings.push({ + dir, + instance, + value, + oldValue: void 0, + arg, + modifiers + }); + } + } + return vnode; + } + function invokeDirectiveHook(vnode, prevVNode, instance, name) { + const bindings = vnode.dirs; + const oldBindings = prevVNode && prevVNode.dirs; + for (let i = 0; i < bindings.length; i++) { + const binding = bindings[i]; + if (oldBindings) { + binding.oldValue = oldBindings[i].value; + } + let hook = binding.dir[name]; + if (hook) { + pauseTracking(); + callWithAsyncErrorHandling(hook, instance, 8, [ + vnode.el, + binding, + vnode, + prevVNode + ]); + resetTracking(); + } + } + } + + function provide(key, value) { + { + if (!currentInstance || currentInstance.isMounted) { + warn$1(`provide() can only be used inside setup().`); + } + } + if (currentInstance) { + let provides = currentInstance.provides; + const parentProvides = currentInstance.parent && currentInstance.parent.provides; + if (parentProvides === provides) { + provides = currentInstance.provides = Object.create(parentProvides); + } + provides[key] = value; + } + } + function inject(key, defaultValue, treatDefaultAsFactory = false) { + const instance = getCurrentInstance(); + if (instance || currentApp) { + let provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null || instance.ce ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0; + if (provides && key in provides) { + return provides[key]; + } else if (arguments.length > 1) { + return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue; + } else { + warn$1(`injection "${String(key)}" not found.`); + } + } else { + warn$1(`inject() can only be used inside setup() or functional components.`); + } + } + function hasInjectionContext() { + return !!(getCurrentInstance() || currentApp); + } + + const ssrContextKey = /* @__PURE__ */ Symbol.for("v-scx"); + const useSSRContext = () => { + { + warn$1(`useSSRContext() is not supported in the global build.`); + } + }; + + function watchEffect(effect, options) { + return doWatch(effect, null, options); + } + function watchPostEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "post" }) + ); + } + function watchSyncEffect(effect, options) { + return doWatch( + effect, + null, + extend({}, options, { flush: "sync" }) + ); + } + function watch(source, cb, options) { + if (!isFunction(cb)) { + warn$1( + `\`watch(fn, options?)\` signature has been moved to a separate API. Use \`watchEffect(fn, options?)\` instead. \`watch\` now only supports \`watch(source, cb, options?) signature.` + ); + } + return doWatch(source, cb, options); + } + function doWatch(source, cb, options = EMPTY_OBJ) { + const { immediate, deep, flush, once } = options; + if (!cb) { + if (immediate !== void 0) { + warn$1( + `watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (deep !== void 0) { + warn$1( + `watch() "deep" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + if (once !== void 0) { + warn$1( + `watch() "once" option is only respected when using the watch(source, callback, options?) signature.` + ); + } + } + const baseWatchOptions = extend({}, options); + baseWatchOptions.onWarn = warn$1; + const instance = currentInstance; + baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args); + let isPre = false; + if (flush === "post") { + baseWatchOptions.scheduler = (job) => { + queuePostRenderEffect(job, instance && instance.suspense); + }; + } else if (flush !== "sync") { + isPre = true; + baseWatchOptions.scheduler = (job, isFirstRun) => { + if (isFirstRun) { + job(); + } else { + queueJob(job); + } + }; + } + baseWatchOptions.augmentJob = (job) => { + if (cb) { + job.flags |= 4; + } + if (isPre) { + job.flags |= 2; + if (instance) { + job.id = instance.uid; + job.i = instance; + } + } + }; + const watchHandle = watch$1(source, cb, baseWatchOptions); + return watchHandle; + } + function instanceWatch(source, value, options) { + const publicThis = this.proxy; + const getter = isString(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis); + let cb; + if (isFunction(value)) { + cb = value; + } else { + cb = value.handler; + options = value; + } + const reset = setCurrentInstance(this); + const res = doWatch(getter, cb.bind(publicThis), options); + reset(); + return res; + } + function createPathGetter(ctx, path) { + const segments = path.split("."); + return () => { + let cur = ctx; + for (let i = 0; i < segments.length && cur; i++) { + cur = cur[segments[i]]; + } + return cur; + }; + } + + const pendingMounts = /* @__PURE__ */ new WeakMap(); + const TeleportEndKey = /* @__PURE__ */ Symbol("_vte"); + const isTeleport = (type) => type.__isTeleport; + const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === ""); + const isTeleportDeferred = (props) => props && (props.defer || props.defer === ""); + const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement; + const isTargetMathML = (target) => typeof MathMLElement === "function" && target instanceof MathMLElement; + const resolveTarget = (props, select) => { + const targetSelector = props && props.to; + if (isString(targetSelector)) { + if (!select) { + warn$1( + `Current renderer does not support string target for Teleports. (missing querySelector renderer option)` + ); + return null; + } else { + const target = select(targetSelector); + if (!target && !isTeleportDisabled(props)) { + warn$1( + `Failed to locate Teleport target with selector "${targetSelector}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.` + ); + } + return target; + } + } else { + if (!targetSelector && !isTeleportDisabled(props)) { + warn$1(`Invalid Teleport target: ${targetSelector}`); + } + return targetSelector; + } + }; + const TeleportImpl = { + name: "Teleport", + __isTeleport: true, + process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) { + const { + mc: mountChildren, + pc: patchChildren, + pbc: patchBlockChildren, + o: { insert, querySelector, createText, createComment, parentNode } + } = internals; + const disabled = isTeleportDisabled(n2.props); + let { dynamicChildren } = n2; + if (isHmrUpdating) { + optimized = false; + dynamicChildren = null; + } + const mount = (vnode, container2, anchor2) => { + if (vnode.shapeFlag & 16) { + mountChildren( + vnode.children, + container2, + anchor2, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + optimized + ); + } + }; + const mountToTarget = (vnode = n2) => { + const disabled2 = isTeleportDisabled(vnode.props); + const target = vnode.target = resolveTarget(vnode.props, querySelector); + const targetAnchor = prepareAnchor(target, vnode, createText, insert); + if (target) { + if (namespace !== "svg" && isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace !== "mathml" && isTargetMathML(target)) { + namespace = "mathml"; + } + if (parentComponent && parentComponent.isCE) { + (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target); + } + if (!disabled2) { + mount(vnode, target, targetAnchor); + updateCssVars(vnode, false); + } + } else if (!disabled2) { + warn$1("Invalid Teleport target on mount:", target, `(${typeof target})`); + } + }; + const queuePendingMount = (vnode) => { + const mountJob = () => { + if (pendingMounts.get(vnode) !== mountJob) return; + pendingMounts.delete(vnode); + if (isTeleportDisabled(vnode.props)) { + const mountContainer = parentNode(vnode.el) || container; + mount(vnode, mountContainer, vnode.anchor); + updateCssVars(vnode, true); + } + mountToTarget(vnode); + }; + pendingMounts.set(vnode, mountJob); + queuePostRenderEffect(mountJob, parentSuspense); + }; + if (n1 == null) { + const placeholder = n2.el = createComment("teleport start") ; + const mainAnchor = n2.anchor = createComment("teleport end") ; + insert(placeholder, container, anchor); + insert(mainAnchor, container, anchor); + if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) { + queuePendingMount(n2); + return; + } + if (disabled) { + mount(n2, container, mainAnchor); + updateCssVars(n2, true); + } + mountToTarget(); + } else { + n2.el = n1.el; + const mainAnchor = n2.anchor = n1.anchor; + const pendingMount = pendingMounts.get(n1); + if (pendingMount) { + pendingMount.flags |= 8; + pendingMounts.delete(n1); + queuePendingMount(n2); + return; + } + n2.targetStart = n1.targetStart; + const target = n2.target = n1.target; + const targetAnchor = n2.targetAnchor = n1.targetAnchor; + const wasDisabled = isTeleportDisabled(n1.props); + const currentContainer = wasDisabled ? container : target; + const currentAnchor = wasDisabled ? mainAnchor : targetAnchor; + if (namespace === "svg" || isTargetSVG(target)) { + namespace = "svg"; + } else if (namespace === "mathml" || isTargetMathML(target)) { + namespace = "mathml"; + } + if (dynamicChildren) { + patchBlockChildren( + n1.dynamicChildren, + dynamicChildren, + currentContainer, + parentComponent, + parentSuspense, + namespace, + slotScopeIds + ); + traverseStaticChildren(n1, n2, false); + } else if (!optimized) { + patchChildren( + n1, + n2, + currentContainer, + currentAnchor, + parentComponent, + parentSuspense, + namespace, + slotScopeIds, + false + ); + } + if (disabled) { + if (!wasDisabled) { + moveTeleport( + n2, + container, + mainAnchor, + internals, + 1 + ); + } else { + if (n2.props && n1.props && n2.props.to !== n1.props.to) { + n2.props.to = n1.props.to; + } + } + } else { + if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) { + const nextTarget = n2.target = resolveTarget( + n2.props, + querySelector + ); + if (nextTarget) { + moveTeleport( + n2, + nextTarget, + null, + internals, + 0 + ); + } else { + warn$1( + "Invalid Teleport target on update:", + target, + `(${typeof target})` + ); + } + } else if (wasDisabled) { + moveTeleport( + n2, + target, + targetAnchor, + internals, + 1 + ); + } + } + updateCssVars(n2, disabled); + } + }, + remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) { + const { + shapeFlag, + children, + anchor, + targetStart, + targetAnchor, + target, + props + } = vnode; + let shouldRemove = doRemove || !isTeleportDisabled(props); + const pendingMount = pendingMounts.get(vnode); + if (pendingMount) { + pendingMount.flags |= 8; + pendingMounts.delete(vnode); + shouldRemove = false; + } + if (target) { + hostRemove(targetStart); + hostRemove(targetAnchor); + } + doRemove && hostRemove(anchor); + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + const child = children[i]; + unmount( + child, + parentComponent, + parentSuspense, + shouldRemove, + !!child.dynamicChildren + ); + } + } + }, + move: moveTeleport, + hydrate: hydrateTeleport + }; + function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) { + if (moveType === 0) { + insert(vnode.targetAnchor, container, parentAnchor); + } + const { el, anchor, shapeFlag, children, props } = vnode; + const isReorder = moveType === 2; + if (isReorder) { + insert(el, container, parentAnchor); + } + if (!pendingMounts.has(vnode) && (!isReorder || isTeleportDisabled(props))) { + if (shapeFlag & 16) { + for (let i = 0; i < children.length; i++) { + move( + children[i], + container, + parentAnchor, + 2 + ); + } + } + } + if (isReorder) { + insert(anchor, container, parentAnchor); + } + } + function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { + o: { nextSibling, parentNode, querySelector, insert, createText } + }, hydrateChildren) { + function hydrateAnchor(target2, targetNode) { + let targetAnchor = targetNode; + while (targetAnchor) { + if (targetAnchor && targetAnchor.nodeType === 8) { + if (targetAnchor.data === "teleport start anchor") { + vnode.targetStart = targetAnchor; + } else if (targetAnchor.data === "teleport anchor") { + vnode.targetAnchor = targetAnchor; + target2._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor); + break; + } + } + targetAnchor = nextSibling(targetAnchor); + } + } + function hydrateDisabledTeleport(node2, vnode2) { + vnode2.anchor = hydrateChildren( + nextSibling(node2), + vnode2, + parentNode(node2), + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + const target = vnode.target = resolveTarget( + vnode.props, + querySelector + ); + const disabled = isTeleportDisabled(vnode.props); + if (target) { + const targetNode = target._lpa || target.firstChild; + if (vnode.shapeFlag & 16) { + if (disabled) { + hydrateDisabledTeleport(node, vnode); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor( + target, + vnode, + createText, + insert, + // if target is the same as the main view, insert anchors before current node + // to avoid hydrating mismatch + parentNode(node) === target ? node : null + ); + } + } else { + vnode.anchor = nextSibling(node); + hydrateAnchor(target, targetNode); + if (!vnode.targetAnchor) { + prepareAnchor(target, vnode, createText, insert); + } + hydrateChildren( + targetNode && nextSibling(targetNode), + vnode, + target, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } + updateCssVars(vnode, disabled); + } else if (disabled) { + if (vnode.shapeFlag & 16) { + hydrateDisabledTeleport(node, vnode); + vnode.targetStart = node; + vnode.targetAnchor = nextSibling(node); + } + } + return vnode.anchor && nextSibling(vnode.anchor); + } + const Teleport = TeleportImpl; + function updateCssVars(vnode, isDisabled) { + const ctx = vnode.ctx; + if (ctx && ctx.ut) { + let node, anchor; + if (isDisabled) { + node = vnode.el; + anchor = vnode.anchor; + } else { + node = vnode.targetStart; + anchor = vnode.targetAnchor; + } + while (node && node !== anchor) { + if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid); + node = node.nextSibling; + } + ctx.ut(); + } + } + function prepareAnchor(target, vnode, createText, insert, anchor = null) { + const targetStart = vnode.targetStart = createText(""); + const targetAnchor = vnode.targetAnchor = createText(""); + targetStart[TeleportEndKey] = targetAnchor; + if (target) { + insert(targetStart, target, anchor); + insert(targetAnchor, target, anchor); + } + return targetAnchor; + } + + const leaveCbKey = /* @__PURE__ */ Symbol("_leaveCb"); + const enterCbKey$1 = /* @__PURE__ */ Symbol("_enterCb"); + function useTransitionState() { + const state = { + isMounted: false, + isLeaving: false, + isUnmounting: false, + leavingVNodes: /* @__PURE__ */ new Map() + }; + onMounted(() => { + state.isMounted = true; + }); + onBeforeUnmount(() => { + state.isUnmounting = true; + }); + return state; + } + const TransitionHookValidator = [Function, Array]; + const BaseTransitionPropsValidators = { + mode: String, + appear: Boolean, + persisted: Boolean, + // enter + onBeforeEnter: TransitionHookValidator, + onEnter: TransitionHookValidator, + onAfterEnter: TransitionHookValidator, + onEnterCancelled: TransitionHookValidator, + // leave + onBeforeLeave: TransitionHookValidator, + onLeave: TransitionHookValidator, + onAfterLeave: TransitionHookValidator, + onLeaveCancelled: TransitionHookValidator, + // appear + onBeforeAppear: TransitionHookValidator, + onAppear: TransitionHookValidator, + onAfterAppear: TransitionHookValidator, + onAppearCancelled: TransitionHookValidator + }; + const recursiveGetSubtree = (instance) => { + const subTree = instance.subTree; + return subTree.component ? recursiveGetSubtree(subTree.component) : subTree; + }; + const BaseTransitionImpl = { + name: `BaseTransition`, + props: BaseTransitionPropsValidators, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const state = useTransitionState(); + return () => { + const children = slots.default && getTransitionRawChildren(slots.default(), true); + const child = children && children.length ? findNonCommentChild(children) : ( + // Keep explicit default-slot conditionals on the same transition path + // as regular v-if branches, which render a comment placeholder. + instance.subTree ? createCommentVNode() : void 0 + ); + if (!child) { + return; + } + const rawProps = toRaw(props); + const { mode } = rawProps; + if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") { + warn$1(`invalid mode: ${mode}`); + } + if (state.isLeaving) { + return emptyPlaceholder(child); + } + const innerChild = getInnerChild$1(child); + if (!innerChild) { + return emptyPlaceholder(child); + } + let enterHooks = resolveTransitionHooks( + innerChild, + rawProps, + state, + instance, + // #11061, ensure enterHooks is fresh after clone + (hooks) => enterHooks = hooks + ); + if (innerChild.type !== Comment) { + setTransitionHooks(innerChild, enterHooks); + } + let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree); + if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) { + let leavingHooks = resolveTransitionHooks( + oldInnerChild, + rawProps, + state, + instance + ); + setTransitionHooks(oldInnerChild, leavingHooks); + if (mode === "out-in" && innerChild.type !== Comment) { + state.isLeaving = true; + leavingHooks.afterLeave = () => { + state.isLeaving = false; + if (!(instance.job.flags & 8)) { + instance.update(); + } + delete leavingHooks.afterLeave; + oldInnerChild = void 0; + }; + return emptyPlaceholder(child); + } else if (mode === "in-out" && innerChild.type !== Comment) { + leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => { + const leavingVNodesCache = getLeavingNodesForType( + state, + oldInnerChild + ); + leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild; + el[leaveCbKey] = () => { + earlyRemove(); + el[leaveCbKey] = void 0; + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + enterHooks.delayedLeave = () => { + delayedLeave(); + delete enterHooks.delayedLeave; + oldInnerChild = void 0; + }; + }; + } else { + oldInnerChild = void 0; + } + } else if (oldInnerChild) { + oldInnerChild = void 0; + } + return child; + }; + } + }; + function findNonCommentChild(children) { + let child = children[0]; + if (children.length > 1) { + let hasFound = false; + for (const c of children) { + if (c.type !== Comment) { + if (hasFound) { + warn$1( + " can only be used on a single element or component. Use for lists." + ); + break; + } + child = c; + hasFound = true; + } + } + } + return child; + } + const BaseTransition = BaseTransitionImpl; + function getLeavingNodesForType(state, vnode) { + const { leavingVNodes } = state; + let leavingVNodesCache = leavingVNodes.get(vnode.type); + if (!leavingVNodesCache) { + leavingVNodesCache = /* @__PURE__ */ Object.create(null); + leavingVNodes.set(vnode.type, leavingVNodesCache); + } + return leavingVNodesCache; + } + function resolveTransitionHooks(vnode, props, state, instance, postClone) { + const { + appear, + mode, + persisted = false, + onBeforeEnter, + onEnter, + onAfterEnter, + onEnterCancelled, + onBeforeLeave, + onLeave, + onAfterLeave, + onLeaveCancelled, + onBeforeAppear, + onAppear, + onAfterAppear, + onAppearCancelled + } = props; + const key = String(vnode.key); + const leavingVNodesCache = getLeavingNodesForType(state, vnode); + const callHook = (hook, args) => { + hook && callWithAsyncErrorHandling( + hook, + instance, + 9, + args + ); + }; + const callAsyncHook = (hook, args) => { + const done = args[1]; + callHook(hook, args); + if (isArray(hook)) { + if (hook.every((hook2) => hook2.length <= 1)) done(); + } else if (hook.length <= 1) { + done(); + } + }; + const hooks = { + mode, + persisted, + beforeEnter(el) { + let hook = onBeforeEnter; + if (!state.isMounted) { + if (appear) { + hook = onBeforeAppear || onBeforeEnter; + } else { + return; + } + } + if (el[leaveCbKey]) { + el[leaveCbKey]( + true + /* cancelled */ + ); + } + const leavingVNode = leavingVNodesCache[key]; + if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) { + leavingVNode.el[leaveCbKey](); + } + callHook(hook, [el]); + }, + enter(el) { + if (!isHmrUpdating && leavingVNodesCache[key] === vnode) return; + let hook = onEnter; + let afterHook = onAfterEnter; + let cancelHook = onEnterCancelled; + if (!state.isMounted) { + if (appear) { + hook = onAppear || onEnter; + afterHook = onAfterAppear || onAfterEnter; + cancelHook = onAppearCancelled || onEnterCancelled; + } else { + return; + } + } + let called = false; + el[enterCbKey$1] = (cancelled) => { + if (called) return; + called = true; + if (cancelled) { + callHook(cancelHook, [el]); + } else { + callHook(afterHook, [el]); + } + if (hooks.delayedLeave) { + hooks.delayedLeave(); + } + el[enterCbKey$1] = void 0; + }; + const done = el[enterCbKey$1].bind(null, false); + if (hook) { + callAsyncHook(hook, [el, done]); + } else { + done(); + } + }, + leave(el, remove) { + const key2 = String(vnode.key); + if (el[enterCbKey$1]) { + el[enterCbKey$1]( + true + /* cancelled */ + ); + } + if (state.isUnmounting) { + return remove(); + } + callHook(onBeforeLeave, [el]); + let called = false; + el[leaveCbKey] = (cancelled) => { + if (called) return; + called = true; + remove(); + if (cancelled) { + callHook(onLeaveCancelled, [el]); + } else { + callHook(onAfterLeave, [el]); + } + el[leaveCbKey] = void 0; + if (leavingVNodesCache[key2] === vnode) { + delete leavingVNodesCache[key2]; + } + }; + const done = el[leaveCbKey].bind(null, false); + leavingVNodesCache[key2] = vnode; + if (onLeave) { + callAsyncHook(onLeave, [el, done]); + } else { + done(); + } + }, + clone(vnode2) { + const hooks2 = resolveTransitionHooks( + vnode2, + props, + state, + instance, + postClone + ); + if (postClone) postClone(hooks2); + return hooks2; + } + }; + return hooks; + } + function emptyPlaceholder(vnode) { + if (isKeepAlive(vnode)) { + vnode = cloneVNode(vnode); + vnode.children = null; + return vnode; + } + } + function getInnerChild$1(vnode) { + if (!isKeepAlive(vnode)) { + if (isTeleport(vnode.type) && vnode.children) { + return findNonCommentChild(vnode.children); + } + return vnode; + } + if (vnode.component) { + return vnode.component.subTree; + } + const { shapeFlag, children } = vnode; + if (children) { + if (shapeFlag & 16) { + return children[0]; + } + if (shapeFlag & 32 && isFunction(children.default)) { + return children.default(); + } + } + } + function setTransitionHooks(vnode, hooks) { + if (vnode.shapeFlag & 6 && vnode.component) { + vnode.transition = hooks; + setTransitionHooks(vnode.component.subTree, hooks); + } else if (vnode.shapeFlag & 128) { + vnode.ssContent.transition = hooks.clone(vnode.ssContent); + vnode.ssFallback.transition = hooks.clone(vnode.ssFallback); + } else { + vnode.transition = hooks; + } + } + function getTransitionRawChildren(children, keepComment = false, parentKey) { + let ret = []; + let keyedFragmentCount = 0; + for (let i = 0; i < children.length; i++) { + let child = children[i]; + const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i); + if (child.type === Fragment) { + if (child.patchFlag & 128) keyedFragmentCount++; + ret = ret.concat( + getTransitionRawChildren(child.children, keepComment, key) + ); + } else if (keepComment || child.type !== Comment) { + ret.push(key != null ? cloneVNode(child, { key }) : child); + } + } + if (keyedFragmentCount > 1) { + for (let i = 0; i < ret.length; i++) { + ret[i].patchFlag = -2; + } + } + return ret; + } + + // @__NO_SIDE_EFFECTS__ + function defineComponent(options, extraOptions) { + return isFunction(options) ? ( + // #8236: extend call and options.name access are considered side-effects + // by Rollup, so we have to wrap it in a pure-annotated IIFE. + /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))() + ) : options; + } + + function useId() { + const i = getCurrentInstance(); + if (i) { + return (i.appContext.config.idPrefix || "v") + "-" + i.ids[0] + i.ids[1]++; + } else { + warn$1( + `useId() is called when there is no active component instance to be associated with.` + ); + } + return ""; + } + function markAsyncBoundary(instance) { + instance.ids = [instance.ids[0] + instance.ids[2]++ + "-", 0, 0]; + } + + const knownTemplateRefs = /* @__PURE__ */ new WeakSet(); + function useTemplateRef(key) { + const i = getCurrentInstance(); + const r = shallowRef(null); + if (i) { + const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs; + if (isTemplateRefKey(refs, key)) { + warn$1(`useTemplateRef('${key}') already exists.`); + } else { + Object.defineProperty(refs, key, { + enumerable: true, + get: () => r.value, + set: (val) => r.value = val + }); + } + } else { + warn$1( + `useTemplateRef() is called when there is no active component instance to be associated with.` + ); + } + const ret = readonly(r) ; + { + knownTemplateRefs.add(ret); + } + return ret; + } + function isTemplateRefKey(refs, key) { + let desc; + return !!((desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable); + } + + const pendingSetRefMap = /* @__PURE__ */ new WeakMap(); + function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) { + if (isArray(rawRef)) { + rawRef.forEach( + (r, i) => setRef( + r, + oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef), + parentSuspense, + vnode, + isUnmount + ) + ); + return; + } + if (isAsyncWrapper(vnode) && !isUnmount) { + if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) { + setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree); + } + return; + } + const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el; + const value = isUnmount ? null : refValue; + const { i: owner, r: ref } = rawRef; + if (!owner) { + warn$1( + `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.` + ); + return; + } + const oldRef = oldRawRef && oldRawRef.r; + const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs; + const setupState = owner.setupState; + const rawSetupState = toRaw(setupState); + const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => { + { + if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) { + warn$1( + `Template ref "${key}" used on a non-ref value. It will not work in the production build.` + ); + } + if (knownTemplateRefs.has(rawSetupState[key])) { + return false; + } + } + if (isTemplateRefKey(refs, key)) { + return false; + } + return hasOwn(rawSetupState, key); + }; + const canSetRef = (ref2, key) => { + if (knownTemplateRefs.has(ref2)) { + return false; + } + if (key && isTemplateRefKey(refs, key)) { + return false; + } + return true; + }; + if (oldRef != null && oldRef !== ref) { + invalidatePendingSetRef(oldRawRef); + if (isString(oldRef)) { + refs[oldRef] = null; + if (canSetSetupRef(oldRef)) { + setupState[oldRef] = null; + } + } else if (isRef(oldRef)) { + const oldRawRefAtom = oldRawRef; + if (canSetRef(oldRef, oldRawRefAtom.k)) { + oldRef.value = null; + } + if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null; + } + } + if (isFunction(ref)) { + callWithErrorHandling(ref, owner, 12, [value, refs]); + } else { + const _isString = isString(ref); + const _isRef = isRef(ref); + if (_isString || _isRef) { + const doSet = () => { + if (rawRef.f) { + const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k]; + if (isUnmount) { + isArray(existing) && remove(existing, refValue); + } else { + if (!isArray(existing)) { + if (_isString) { + refs[ref] = [refValue]; + if (canSetSetupRef(ref)) { + setupState[ref] = refs[ref]; + } + } else { + const newVal = [refValue]; + if (canSetRef(ref, rawRef.k)) { + ref.value = newVal; + } + if (rawRef.k) refs[rawRef.k] = newVal; + } + } else if (!existing.includes(refValue)) { + existing.push(refValue); + } + } + } else if (_isString) { + refs[ref] = value; + if (canSetSetupRef(ref)) { + setupState[ref] = value; + } + } else if (_isRef) { + if (canSetRef(ref, rawRef.k)) { + ref.value = value; + } + if (rawRef.k) refs[rawRef.k] = value; + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + }; + if (value) { + const job = () => { + doSet(); + pendingSetRefMap.delete(rawRef); + }; + job.id = -1; + pendingSetRefMap.set(rawRef, job); + queuePostRenderEffect(job, parentSuspense); + } else { + invalidatePendingSetRef(rawRef); + doSet(); + } + } else { + warn$1("Invalid template ref type:", ref, `(${typeof ref})`); + } + } + } + function invalidatePendingSetRef(rawRef) { + const pendingSetRef = pendingSetRefMap.get(rawRef); + if (pendingSetRef) { + pendingSetRef.flags |= 8; + pendingSetRefMap.delete(rawRef); + } + } + + let hasLoggedMismatchError = false; + const logMismatchError = () => { + if (hasLoggedMismatchError) { + return; + } + console.error("Hydration completed but contains mismatches."); + hasLoggedMismatchError = true; + }; + const isSVGContainer = (container) => container.namespaceURI.includes("svg") && container.tagName !== "foreignObject"; + const isMathMLContainer = (container) => container.namespaceURI.includes("MathML"); + const getContainerType = (container) => { + if (container.nodeType !== 1) return void 0; + if (isSVGContainer(container)) return "svg"; + if (isMathMLContainer(container)) return "mathml"; + return void 0; + }; + const isComment = (node) => node.nodeType === 8; + function createHydrationFunctions(rendererInternals) { + const { + mt: mountComponent, + p: patch, + o: { + patchProp, + createText, + nextSibling, + parentNode, + remove, + insert, + createComment + } + } = rendererInternals; + const hydrate = (vnode, container) => { + if (!container.hasChildNodes()) { + warn$1( + `Attempting to hydrate existing markup but container is empty. Performing full mount instead.` + ); + patch(null, vnode, container); + flushPostFlushCbs(); + container._vnode = vnode; + return; + } + hydrateNode(container.firstChild, vnode, null, null, null); + flushPostFlushCbs(); + container._vnode = vnode; + }; + const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => { + optimized = optimized || !!vnode.dynamicChildren; + const isFragmentStart = isComment(node) && node.data === "["; + const onMismatch = () => handleMismatch( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + isFragmentStart + ); + const { type, ref, shapeFlag, patchFlag } = vnode; + let domType = node.nodeType; + vnode.el = node; + { + def(node, "__vnode", vnode, true); + def(node, "__vueParentComponent", parentComponent, true); + } + if (patchFlag === -2) { + optimized = false; + vnode.dynamicChildren = null; + } + let nextNode = null; + switch (type) { + case Text: + if (domType !== 3) { + if (vnode.children === "") { + insert(vnode.el = createText(""), parentNode(node), node); + nextNode = node; + } else { + nextNode = onMismatch(); + } + } else { + if (node.data !== vnode.children) { + warn$1( + `Hydration text mismatch in`, + node.parentNode, + ` + - rendered on server: ${JSON.stringify( + node.data + )} + - expected on client: ${JSON.stringify(vnode.children)}` + ); + logMismatchError(); + node.data = vnode.children; + } + nextNode = nextSibling(node); + } + break; + case Comment: + if (isTemplateNode(node)) { + nextNode = nextSibling(node); + replaceNode( + vnode.el = node.content.firstChild, + node, + parentComponent + ); + } else if (domType !== 8 || isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = nextSibling(node); + } + break; + case Static: + if (isFragmentStart) { + node = nextSibling(node); + domType = node.nodeType; + } + if (domType === 1 || domType === 3) { + nextNode = node; + const needToAdoptContent = !vnode.children.length; + for (let i = 0; i < vnode.staticCount; i++) { + if (needToAdoptContent) + vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data; + if (i === vnode.staticCount - 1) { + vnode.anchor = nextNode; + } + nextNode = nextSibling(nextNode); + } + return isFragmentStart ? nextSibling(nextNode) : nextNode; + } else { + onMismatch(); + } + break; + case Fragment: + if (!isFragmentStart) { + nextNode = onMismatch(); + } else { + nextNode = hydrateFragment( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + break; + default: + if (shapeFlag & 1) { + if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) { + nextNode = onMismatch(); + } else { + nextNode = hydrateElement( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } + } else if (shapeFlag & 6) { + vnode.slotScopeIds = slotScopeIds; + const container = parentNode(node); + if (isFragmentStart) { + nextNode = locateClosingAnchor(node); + } else if (isComment(node) && node.data === "teleport start") { + nextNode = locateClosingAnchor(node, node.data, "teleport end"); + } else { + nextNode = nextSibling(node); + } + mountComponent( + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + optimized + ); + if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) { + let subTree; + if (isFragmentStart) { + subTree = createVNode(Fragment); + subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild; + } else { + subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div"); + } + subTree.el = node; + vnode.component.subTree = subTree; + } + } else if (shapeFlag & 64) { + if (domType !== 8) { + nextNode = onMismatch(); + } else { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized, + rendererInternals, + hydrateChildren + ); + } + } else if (shapeFlag & 128) { + nextNode = vnode.type.hydrate( + node, + vnode, + parentComponent, + parentSuspense, + getContainerType(parentNode(node)), + slotScopeIds, + optimized, + rendererInternals, + hydrateNode + ); + } else { + warn$1("Invalid HostVNode type:", type, `(${typeof type})`); + } + } + if (ref != null) { + setRef(ref, null, parentSuspense, vnode); + } + return nextNode; + }; + const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!vnode.dynamicChildren; + const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode; + const forcePatch = type === "input" || type === "option"; + { + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "created"); + } + let needCallTransitionHooks = false; + if (isTemplateNode(el)) { + needCallTransitionHooks = needTransition( + null, + // no need check parentSuspense in hydration + transition + ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear; + const content = el.content.firstChild; + if (needCallTransitionHooks) { + const cls = content.getAttribute("class"); + if (cls) content.$cls = cls; + transition.beforeEnter(content); + } + replaceNode(content, el, parentComponent); + vnode.el = el = content; + } + if (shapeFlag & 16 && // skip if element has innerHTML / textContent + !(props && (props.innerHTML || props.textContent))) { + let next = hydrateChildren( + el.firstChild, + vnode, + el, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + let hasWarned = false; + while (next) { + if (!isMismatchAllowed(el, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + el, + ` +Server rendered element contains more child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + const cur = next; + next = next.nextSibling; + remove(cur); + } + } else if (shapeFlag & 8) { + let clientText = vnode.children; + if (clientText[0] === "\n" && (el.tagName === "PRE" || el.tagName === "TEXTAREA")) { + clientText = clientText.slice(1); + } + const { textContent } = el; + if (textContent !== clientText && // innerHTML normalize \r\n or \r into a single \n in the DOM + textContent !== clientText.replace(/\r\n|\r/g, "\n")) { + if (!isMismatchAllowed(el, 0 /* TEXT */)) { + warn$1( + `Hydration text content mismatch on`, + el, + ` + - rendered on server: ${textContent} + - expected on client: ${clientText}` + ); + logMismatchError(); + } + el.textContent = vnode.children; + } + } + if (props) { + { + const isCustomElement = el.tagName.includes("-"); + for (const key in props) { + if (// #11189 skip if this node has directives that have created hooks + // as it could have mutated the DOM in any possible way + !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) { + logMismatchError(); + } + if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers + key[0] === "." || isCustomElement && !isReservedProp(key)) { + patchProp(el, key, null, props[key], void 0, parentComponent); + } + } + } + } + let vnodeHooks; + if (vnodeHooks = props && props.onVnodeBeforeMount) { + invokeVNodeHook(vnodeHooks, parentComponent, vnode); + } + if (dirs) { + invokeDirectiveHook(vnode, null, parentComponent, "beforeMount"); + } + if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) { + queueEffectWithSuspense(() => { + vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode); + needCallTransitionHooks && transition.enter(el); + dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted"); + }, parentSuspense); + } + } + return el.nextSibling; + }; + const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => { + optimized = optimized || !!parentVNode.dynamicChildren; + const children = parentVNode.children; + const l = children.length; + let hasWarned = false; + for (let i = 0; i < l; i++) { + const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]); + const isText = vnode.type === Text; + if (node) { + if (isText && !optimized) { + if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) { + insert( + createText( + node.data.slice(vnode.children.length) + ), + container, + nextSibling(node) + ); + node.data = vnode.children; + } + } + node = hydrateNode( + node, + vnode, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + } else if (isText && !vnode.children) { + insert(vnode.el = createText(""), container); + } else { + if (!isMismatchAllowed(container, 1 /* CHILDREN */)) { + if (!hasWarned) { + warn$1( + `Hydration children mismatch on`, + container, + ` +Server rendered element contains fewer child nodes than client vdom.` + ); + hasWarned = true; + } + logMismatchError(); + } + patch( + null, + vnode, + container, + null, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + } + } + return node; + }; + const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => { + const { slotScopeIds: fragmentSlotScopeIds } = vnode; + if (fragmentSlotScopeIds) { + slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds; + } + const container = parentNode(node); + const next = hydrateChildren( + nextSibling(node), + vnode, + container, + parentComponent, + parentSuspense, + slotScopeIds, + optimized + ); + if (next && isComment(next) && next.data === "]") { + return nextSibling(vnode.anchor = next); + } else { + logMismatchError(); + insert(vnode.anchor = createComment(`]`), container, next); + return next; + } + }; + const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => { + if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) { + warn$1( + `Hydration node mismatch: +- rendered on server:`, + node, + node.nodeType === 3 ? `(text)` : isComment(node) && node.data === "[" ? `(start of fragment)` : ``, + ` +- expected on client:`, + vnode.type + ); + logMismatchError(); + } + vnode.el = null; + if (isFragment) { + const end = locateClosingAnchor(node); + while (true) { + const next2 = nextSibling(node); + if (next2 && next2 !== end) { + remove(next2); + } else { + break; + } + } + } + const next = nextSibling(node); + const container = parentNode(node); + remove(node); + patch( + null, + vnode, + container, + next, + parentComponent, + parentSuspense, + getContainerType(container), + slotScopeIds + ); + if (parentComponent) { + parentComponent.vnode.el = vnode.el; + updateHOCHostEl(parentComponent, vnode.el); + } + return next; + }; + const locateClosingAnchor = (node, open = "[", close = "]") => { + let match = 0; + while (node) { + node = nextSibling(node); + if (node && isComment(node)) { + if (node.data === open) match++; + if (node.data === close) { + if (match === 0) { + return nextSibling(node); + } else { + match--; + } + } + } + } + return node; + }; + const replaceNode = (newNode, oldNode, parentComponent) => { + const parentNode2 = oldNode.parentNode; + if (parentNode2) { + parentNode2.replaceChild(newNode, oldNode); + } + let parent = parentComponent; + while (parent) { + if (parent.vnode.el === oldNode) { + parent.vnode.el = parent.subTree.el = newNode; + } + parent = parent.parent; + } + }; + const isTemplateNode = (node) => { + return node.nodeType === 1 && node.tagName === "TEMPLATE"; + }; + return [hydrate, hydrateNode]; + } + function propHasMismatch(el, key, clientValue, vnode, instance) { + let mismatchType; + let mismatchKey; + let actual; + let expected; + if (key === "class") { + if (el.$cls) { + actual = el.$cls; + delete el.$cls; + } else { + actual = el.getAttribute("class"); + } + expected = normalizeClass(clientValue); + if (!isSetEqual(toClassSet(actual || ""), toClassSet(expected))) { + mismatchType = 2 /* CLASS */; + mismatchKey = `class`; + } + } else if (key === "style") { + actual = el.getAttribute("style") || ""; + expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue)); + const actualMap = toStyleMap(actual); + const expectedMap = toStyleMap(expected); + if (vnode.dirs) { + for (const { dir, value } of vnode.dirs) { + if (dir.name === "show" && !value) { + expectedMap.set("display", "none"); + } + } + } + if (instance) { + resolveCssVars(instance, vnode, expectedMap); + } + if (!isMapEqual(actualMap, expectedMap)) { + mismatchType = 3 /* STYLE */; + mismatchKey = "style"; + } + } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) { + if (isBooleanAttr(key)) { + actual = el.hasAttribute(key); + expected = includeBooleanAttr(clientValue); + } else if (clientValue == null) { + actual = el.hasAttribute(key); + expected = false; + } else { + if (el.hasAttribute(key)) { + actual = el.getAttribute(key); + } else if (key === "value" && el.tagName === "TEXTAREA") { + actual = el.value; + } else { + actual = false; + } + expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false; + } + if (actual !== expected) { + mismatchType = 4 /* ATTRIBUTE */; + mismatchKey = key; + } + } + if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) { + const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}="${v}"`; + const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`; + const postSegment = ` + - rendered on server: ${format(actual)} + - expected on client: ${format(expected)} + Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. + You should fix the source of the mismatch.`; + { + warn$1(preSegment, el, postSegment); + } + return true; + } + return false; + } + function toClassSet(str) { + return new Set(str.trim().split(/\s+/)); + } + function isSetEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const s of a) { + if (!b.has(s)) { + return false; + } + } + return true; + } + function toStyleMap(str) { + const styleMap = /* @__PURE__ */ new Map(); + for (const item of str.split(";")) { + let [key, value] = item.split(":"); + key = key.trim(); + value = value && value.trim(); + if (key && value) { + styleMap.set(key, value); + } + } + return styleMap; + } + function isMapEqual(a, b) { + if (a.size !== b.size) { + return false; + } + for (const [key, value] of a) { + if (value !== b.get(key)) { + return false; + } + } + return true; + } + function resolveCssVars(instance, vnode, expectedMap) { + const root = instance.subTree; + if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) { + const cssVars = instance.getCssVars(); + for (const key in cssVars) { + const value = normalizeCssVarValue(cssVars[key]); + expectedMap.set(`--${getEscapedCssVarName(key)}`, value); + } + } + if (vnode === root && instance.parent) { + resolveCssVars(instance.parent, instance.vnode, expectedMap); + } + } + const allowMismatchAttr = "data-allow-mismatch"; + const MismatchTypeString = { + [0 /* TEXT */]: "text", + [1 /* CHILDREN */]: "children", + [2 /* CLASS */]: "class", + [3 /* STYLE */]: "style", + [4 /* ATTRIBUTE */]: "attribute" + }; + function isMismatchAllowed(el, allowedType) { + if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) { + while (el && !el.hasAttribute(allowMismatchAttr)) { + el = el.parentElement; + } + } + const allowedAttr = el && el.getAttribute(allowMismatchAttr); + if (allowedAttr == null) { + return false; + } else if (allowedAttr === "") { + return true; + } else { + const list = allowedAttr.split(","); + if (allowedType === 0 /* TEXT */ && list.includes("children")) { + return true; + } + return list.includes(MismatchTypeString[allowedType]); + } + } + + const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1)); + const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id)); + const hydrateOnIdle = (timeout = 1e4) => (hydrate) => { + const id = requestIdleCallback(hydrate, { timeout }); + return () => cancelIdleCallback(id); + }; + function elementIsVisibleInViewport(el) { + const { top, left, bottom, right } = el.getBoundingClientRect(); + const { innerHeight, innerWidth } = window; + return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth); + } + const hydrateOnVisible = (opts) => (hydrate, forEach) => { + const ob = new IntersectionObserver((entries) => { + for (const e of entries) { + if (!e.isIntersecting) continue; + ob.disconnect(); + hydrate(); + break; + } + }, opts); + forEach((el) => { + if (!(el instanceof Element)) return; + if (elementIsVisibleInViewport(el)) { + hydrate(); + ob.disconnect(); + return false; + } + ob.observe(el); + }); + return () => ob.disconnect(); + }; + const hydrateOnMediaQuery = (query) => (hydrate) => { + if (query) { + const mql = matchMedia(query); + if (mql.matches) { + hydrate(); + } else { + mql.addEventListener("change", hydrate, { once: true }); + return () => mql.removeEventListener("change", hydrate); + } + } + }; + const hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => { + if (isString(interactions)) interactions = [interactions]; + let hasHydrated = false; + const doHydrate = (e) => { + if (!hasHydrated) { + hasHydrated = true; + teardown(); + hydrate(); + e.target.dispatchEvent(new e.constructor(e.type, e)); + } + }; + const teardown = () => { + forEach((el) => { + for (const i of interactions) { + el.removeEventListener(i, doHydrate); + } + }); + }; + forEach((el) => { + for (const i of interactions) { + el.addEventListener(i, doHydrate, { once: true }); + } + }); + return teardown; + }; + function forEachElement(node, cb) { + if (isComment(node) && node.data === "[") { + let depth = 1; + let next = node.nextSibling; + while (next) { + if (next.nodeType === 1) { + const result = cb(next); + if (result === false) { + break; + } + } else if (isComment(next)) { + if (next.data === "]") { + if (--depth === 0) break; + } else if (next.data === "[") { + depth++; + } + } + next = next.nextSibling; + } + } else { + cb(node); + } + } + + const isAsyncWrapper = (i) => !!i.type.__asyncLoader; + // @__NO_SIDE_EFFECTS__ + function defineAsyncComponent(source) { + if (isFunction(source)) { + source = { loader: source }; + } + const { + loader, + loadingComponent, + errorComponent, + delay = 200, + hydrate: hydrateStrategy, + timeout, + // undefined = never times out + suspensible = true, + onError: userOnError + } = source; + let pendingRequest = null; + let resolvedComp; + let retries = 0; + const retry = () => { + retries++; + pendingRequest = null; + return load(); + }; + const load = () => { + let thisRequest; + return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => { + err = err instanceof Error ? err : new Error(String(err)); + if (userOnError) { + return new Promise((resolve, reject) => { + const userRetry = () => resolve(retry()); + const userFail = () => reject(err); + userOnError(err, userRetry, userFail, retries + 1); + }); + } else { + throw err; + } + }).then((comp) => { + if (thisRequest !== pendingRequest && pendingRequest) { + return pendingRequest; + } + if (!comp) { + warn$1( + `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.` + ); + } + if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) { + comp = comp.default; + } + if (comp && !isObject(comp) && !isFunction(comp)) { + throw new Error(`Invalid async component load result: ${comp}`); + } + resolvedComp = comp; + return comp; + })); + }; + return defineComponent({ + name: "AsyncComponentWrapper", + __asyncLoader: load, + __asyncHydrate(el, instance, hydrate) { + let patched = false; + (instance.bu || (instance.bu = [])).push(() => patched = true); + const performHydrate = () => { + if (patched) { + { + warn$1( + `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.` + ); + } + return; + } + hydrate(); + }; + const doHydrate = hydrateStrategy ? () => { + const teardown = hydrateStrategy( + performHydrate, + (cb) => forEachElement(el, cb) + ); + if (teardown) { + (instance.bum || (instance.bum = [])).push(teardown); + } + } : performHydrate; + if (resolvedComp) { + doHydrate(); + } else { + load().then(() => !instance.isUnmounted && doHydrate()); + } + }, + get __asyncResolved() { + return resolvedComp; + }, + setup() { + const instance = currentInstance; + markAsyncBoundary(instance); + if (resolvedComp) { + return () => createInnerComp(resolvedComp, instance); + } + const onError = (err) => { + pendingRequest = null; + handleError( + err, + instance, + 13, + !errorComponent + ); + }; + if (suspensible && instance.suspense || false) { + return load().then((comp) => { + return () => createInnerComp(comp, instance); + }).catch((err) => { + onError(err); + return () => errorComponent ? createVNode(errorComponent, { + error: err + }) : null; + }); + } + const loaded = ref(false); + const error = ref(); + const delayed = ref(!!delay); + if (delay) { + setTimeout(() => { + delayed.value = false; + }, delay); + } + if (timeout != null) { + setTimeout(() => { + if (!loaded.value && !error.value) { + const err = new Error( + `Async component timed out after ${timeout}ms.` + ); + onError(err); + error.value = err; + } + }, timeout); + } + load().then(() => { + loaded.value = true; + if (instance.parent && isKeepAlive(instance.parent.vnode)) { + instance.parent.update(); + } + }).catch((err) => { + onError(err); + error.value = err; + }); + return () => { + if (loaded.value && resolvedComp) { + return createInnerComp(resolvedComp, instance); + } else if (error.value && errorComponent) { + return createVNode(errorComponent, { + error: error.value + }); + } else if (loadingComponent && !delayed.value) { + return createInnerComp( + loadingComponent, + instance + ); + } + }; + } + }); + } + function createInnerComp(comp, parent) { + const { ref: ref2, props, children, ce } = parent.vnode; + const vnode = createVNode(comp, props, children); + vnode.ref = ref2; + vnode.ce = ce; + delete parent.vnode.ce; + return vnode; + } + + const isKeepAlive = (vnode) => vnode.type.__isKeepAlive; + const KeepAliveImpl = { + name: `KeepAlive`, + // Marker for special handling inside the renderer. We are not using a === + // check directly on KeepAlive in the renderer, because importing it directly + // would prevent it from being tree-shaken. + __isKeepAlive: true, + props: { + include: [String, RegExp, Array], + exclude: [String, RegExp, Array], + max: [String, Number] + }, + setup(props, { slots }) { + const instance = getCurrentInstance(); + const sharedContext = instance.ctx; + const cache = /* @__PURE__ */ new Map(); + const keys = /* @__PURE__ */ new Set(); + let current = null; + { + instance.__v_cache = cache; + } + const parentSuspense = instance.suspense; + const { + renderer: { + p: patch, + m: move, + um: _unmount, + o: { createElement } + } + } = sharedContext; + const storageContainer = createElement("div"); + sharedContext.activate = (vnode, container, anchor, namespace, optimized) => { + const instance2 = vnode.component; + move(vnode, container, anchor, 0, parentSuspense); + patch( + instance2.vnode, + vnode, + container, + anchor, + instance2, + parentSuspense, + namespace, + vnode.slotScopeIds, + optimized + ); + queuePostRenderEffect(() => { + instance2.isDeactivated = false; + if (instance2.a) { + invokeArrayFns(instance2.a); + } + const vnodeHook = vnode.props && vnode.props.onVnodeMounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + }; + sharedContext.deactivate = (vnode) => { + const instance2 = vnode.component; + invalidateMount(instance2.m); + invalidateMount(instance2.a); + move(vnode, storageContainer, null, 1, parentSuspense); + queuePostRenderEffect(() => { + if (instance2.da) { + invokeArrayFns(instance2.da); + } + const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted; + if (vnodeHook) { + invokeVNodeHook(vnodeHook, instance2.parent, vnode); + } + instance2.isDeactivated = true; + }, parentSuspense); + { + devtoolsComponentAdded(instance2); + } + { + instance2.__keepAliveStorageContainer = storageContainer; + } + }; + function unmount(vnode) { + resetShapeFlag(vnode); + _unmount(vnode, instance, parentSuspense, true); + } + function pruneCache(filter) { + cache.forEach((vnode, key) => { + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : vnode.type + ); + if (name && !filter(name)) { + pruneCacheEntry(key); + } + }); + } + function pruneCacheEntry(key) { + const cached = cache.get(key); + if (cached && (!current || !isSameVNodeType(cached, current))) { + unmount(cached); + } else if (current) { + resetShapeFlag(current); + } + cache.delete(key); + keys.delete(key); + } + watch( + () => [props.include, props.exclude], + ([include, exclude]) => { + include && pruneCache((name) => matches(include, name)); + exclude && pruneCache((name) => !matches(exclude, name)); + }, + // prune post-render after `current` has been updated + { flush: "post", deep: true } + ); + let pendingCacheKey = null; + const cacheSubtree = () => { + if (pendingCacheKey != null) { + if (isSuspense(instance.subTree.type)) { + queuePostRenderEffect(() => { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + }, instance.subTree.suspense); + } else { + cache.set(pendingCacheKey, getInnerChild(instance.subTree)); + } + } + }; + onMounted(cacheSubtree); + onUpdated(cacheSubtree); + onBeforeUnmount(() => { + cache.forEach((cached) => { + const { subTree, suspense } = instance; + const vnode = getInnerChild(subTree); + if (cached.type === vnode.type && cached.key === vnode.key) { + resetShapeFlag(vnode); + const da = vnode.component.da; + da && queuePostRenderEffect(da, suspense); + return; + } + unmount(cached); + }); + }); + return () => { + pendingCacheKey = null; + if (!slots.default) { + return current = null; + } + const children = slots.default(); + const rawVNode = children[0]; + if (children.length > 1) { + { + warn$1(`KeepAlive should contain exactly one component child.`); + } + current = null; + return children; + } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) { + current = null; + return rawVNode; + } + let vnode = getInnerChild(rawVNode); + if (vnode.type === Comment) { + current = null; + return vnode; + } + const comp = vnode.type; + const name = getComponentName( + isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp + ); + const { include, exclude, max } = props; + if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) { + vnode.shapeFlag &= -257; + current = vnode; + return rawVNode; + } + const key = vnode.key == null ? comp : vnode.key; + const cachedVNode = cache.get(key); + if (vnode.el) { + vnode = cloneVNode(vnode); + if (rawVNode.shapeFlag & 128) { + rawVNode.ssContent = vnode; + } + } + pendingCacheKey = key; + if (cachedVNode) { + vnode.el = cachedVNode.el; + vnode.component = cachedVNode.component; + if (vnode.transition) { + setTransitionHooks(vnode, vnode.transition); + } + vnode.shapeFlag |= 512; + keys.delete(key); + keys.add(key); + } else { + keys.add(key); + if (max && keys.size > parseInt(max, 10)) { + pruneCacheEntry(keys.values().next().value); + } + } + vnode.shapeFlag |= 256; + current = vnode; + return isSuspense(rawVNode.type) ? rawVNode : vnode; + }; + } + }; + const KeepAlive = KeepAliveImpl; + function matches(pattern, name) { + if (isArray(pattern)) { + return pattern.some((p) => matches(p, name)); + } else if (isString(pattern)) { + return pattern.split(",").includes(name); + } else if (isRegExp(pattern)) { + pattern.lastIndex = 0; + return pattern.test(name); + } + return false; + } + function onActivated(hook, target) { + registerKeepAliveHook(hook, "a", target); + } + function onDeactivated(hook, target) { + registerKeepAliveHook(hook, "da", target); + } + function registerKeepAliveHook(hook, type, target = currentInstance) { + const wrappedHook = hook.__wdc || (hook.__wdc = () => { + let current = target; + while (current) { + if (current.isDeactivated) { + return; + } + current = current.parent; + } + return hook(); + }); + injectHook(type, wrappedHook, target); + if (target) { + let current = target.parent; + while (current && current.parent) { + if (isKeepAlive(current.parent.vnode)) { + injectToKeepAliveRoot(wrappedHook, type, target, current); + } + current = current.parent; + } + } + } + function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) { + const injected = injectHook( + type, + hook, + keepAliveRoot, + true + /* prepend */ + ); + onUnmounted(() => { + remove(keepAliveRoot[type], injected); + }, target); + } + function resetShapeFlag(vnode) { + vnode.shapeFlag &= -257; + vnode.shapeFlag &= -513; + } + function getInnerChild(vnode) { + return vnode.shapeFlag & 128 ? vnode.ssContent : vnode; + } + + function injectHook(type, hook, target = currentInstance, prepend = false) { + if (target) { + const hooks = target[type] || (target[type] = []); + const wrappedHook = hook.__weh || (hook.__weh = (...args) => { + pauseTracking(); + const reset = setCurrentInstance(target); + const res = callWithAsyncErrorHandling(hook, target, type, args); + reset(); + resetTracking(); + return res; + }); + if (prepend) { + hooks.unshift(wrappedHook); + } else { + hooks.push(wrappedHook); + } + return wrappedHook; + } else { + const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, "")); + warn$1( + `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` ) + ); + } + } + const createHook = (lifecycle) => (hook, target = currentInstance) => { + if (!isInSSRComponentSetup || lifecycle === "sp") { + injectHook(lifecycle, (...args) => hook(...args), target); + } + }; + const onBeforeMount = createHook("bm"); + const onMounted = createHook("m"); + const onBeforeUpdate = createHook( + "bu" + ); + const onUpdated = createHook("u"); + const onBeforeUnmount = createHook( + "bum" + ); + const onUnmounted = createHook("um"); + const onServerPrefetch = createHook( + "sp" + ); + const onRenderTriggered = createHook("rtg"); + const onRenderTracked = createHook("rtc"); + function onErrorCaptured(hook, target = currentInstance) { + injectHook("ec", hook, target); + } + + const COMPONENTS = "components"; + const DIRECTIVES = "directives"; + function resolveComponent(name, maybeSelfReference) { + return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; + } + const NULL_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol.for("v-ndc"); + function resolveDynamicComponent(component) { + if (isString(component)) { + return resolveAsset(COMPONENTS, component, false) || component; + } else { + return component || NULL_DYNAMIC_COMPONENT; + } + } + function resolveDirective(name) { + return resolveAsset(DIRECTIVES, name); + } + function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { + const instance = currentRenderingInstance || currentInstance; + if (instance) { + const Component = instance.type; + if (type === COMPONENTS) { + const selfName = getComponentName( + Component, + false + ); + if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { + return Component; + } + } + const res = ( + // local registration + // check instance[type] first which is resolved for options API + resolve(instance[type] || Component[type], name) || // global registration + resolve(instance.appContext[type], name) + ); + if (!res && maybeSelfReference) { + return Component; + } + if (warnMissing && !res) { + const extra = type === COMPONENTS ? ` +If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; + warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); + } + return res; + } else { + warn$1( + `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` + ); + } + } + function resolve(registry, name) { + return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); + } + + function renderList(source, renderItem, cache, index) { + let ret; + const cached = cache && cache[index]; + const sourceIsArray = isArray(source); + if (sourceIsArray || isString(source)) { + const sourceIsReactiveArray = sourceIsArray && isReactive(source); + let needsWrap = false; + let isReadonlySource = false; + if (sourceIsReactiveArray) { + needsWrap = !isShallow(source); + isReadonlySource = isReadonly(source); + source = shallowReadArray(source); + } + ret = new Array(source.length); + for (let i = 0, l = source.length; i < l; i++) { + ret[i] = renderItem( + needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i], + i, + void 0, + cached && cached[i] + ); + } + } else if (typeof source === "number") { + if (!Number.isInteger(source) || source < 0) { + warn$1( + `The v-for range expects a positive integer value but got ${source}.` + ); + ret = []; + } else { + ret = new Array(source); + for (let i = 0; i < source; i++) { + ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]); + } + } + } else if (isObject(source)) { + if (source[Symbol.iterator]) { + ret = Array.from( + source, + (item, i) => renderItem(item, i, void 0, cached && cached[i]) + ); + } else { + const keys = Object.keys(source); + ret = new Array(keys.length); + for (let i = 0, l = keys.length; i < l; i++) { + const key = keys[i]; + ret[i] = renderItem(source[key], key, i, cached && cached[i]); + } + } + } else { + ret = []; + } + if (cache) { + cache[index] = ret; + } + return ret; + } + + function createSlots(slots, dynamicSlots) { + for (let i = 0; i < dynamicSlots.length; i++) { + const slot = dynamicSlots[i]; + if (isArray(slot)) { + for (let j = 0; j < slot.length; j++) { + slots[slot[j].name] = slot[j].fn; + } + } else if (slot) { + slots[slot.name] = slot.key ? (...args) => { + const res = slot.fn(...args); + if (res) res.key = slot.key; + return res; + } : slot.fn; + } + } + return slots; + } + + function renderSlot(slots, name, props = {}, fallback, noSlotted) { + if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) { + const hasProps = Object.keys(props).length > 0; + if (name !== "default") props.name = name; + return openBlock(), createBlock( + Fragment, + null, + [createVNode("slot", props, fallback && fallback())], + hasProps ? -2 : 64 + ); + } + let slot = slots[name]; + if (slot && slot.length > 1) { + warn$1( + `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.` + ); + slot = () => []; + } + if (slot && slot._c) { + slot._d = false; + } + openBlock(); + const validSlotContent = slot && ensureValidVNode(slot(props)); + const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch + // key attached in the `createSlots` helper, respect that + validSlotContent && validSlotContent.key; + const rendered = createBlock( + Fragment, + { + key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content + (!validSlotContent && fallback ? "_fb" : "") + }, + validSlotContent || (fallback ? fallback() : []), + validSlotContent && slots._ === 1 ? 64 : -2 + ); + if (!noSlotted && rendered.scopeId) { + rendered.slotScopeIds = [rendered.scopeId + "-s"]; + } + if (slot && slot._c) { + slot._d = true; + } + return rendered; + } + function ensureValidVNode(vnodes) { + return vnodes.some((child) => { + if (!isVNode(child)) return true; + if (child.type === Comment) return false; + if (child.type === Fragment && !ensureValidVNode(child.children)) + return false; + return true; + }) ? vnodes : null; + } + + function toHandlers(obj, preserveCaseIfNecessary) { + const ret = {}; + if (!isObject(obj)) { + warn$1(`v-on with no argument expects an object value.`); + return ret; + } + for (const key in obj) { + ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key]; + } + return ret; + } + + const getPublicInstance = (i) => { + if (!i) return null; + if (isStatefulComponent(i)) return getComponentPublicInstance(i); + return getPublicInstance(i.parent); + }; + const publicPropertiesMap = ( + // Move PURE marker to new line to workaround compiler discarding it + // due to type annotation + /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), { + $: (i) => i, + $el: (i) => i.vnode.el, + $data: (i) => i.data, + $props: (i) => shallowReadonly(i.props) , + $attrs: (i) => shallowReadonly(i.attrs) , + $slots: (i) => shallowReadonly(i.slots) , + $refs: (i) => shallowReadonly(i.refs) , + $parent: (i) => getPublicInstance(i.parent), + $root: (i) => getPublicInstance(i.root), + $host: (i) => i.ce, + $emit: (i) => i.emit, + $options: (i) => resolveMergedOptions(i) , + $forceUpdate: (i) => i.f || (i.f = () => { + queueJob(i.update); + }), + $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)), + $watch: (i) => instanceWatch.bind(i) + }) + ); + const isReservedPrefix = (key) => key === "_" || key === "$"; + const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key); + const PublicInstanceProxyHandlers = { + get({ _: instance }, key) { + if (key === "__v_skip") { + return true; + } + const { ctx, setupState, data, props, accessCache, type, appContext } = instance; + if (key === "__isVue") { + return true; + } + if (key[0] !== "$") { + const n = accessCache[key]; + if (n !== void 0) { + switch (n) { + case 1 /* SETUP */: + return setupState[key]; + case 2 /* DATA */: + return data[key]; + case 4 /* CONTEXT */: + return ctx[key]; + case 3 /* PROPS */: + return props[key]; + } + } else if (hasSetupBinding(setupState, key)) { + accessCache[key] = 1 /* SETUP */; + return setupState[key]; + } else if (data !== EMPTY_OBJ && hasOwn(data, key)) { + accessCache[key] = 2 /* DATA */; + return data[key]; + } else if (hasOwn(props, key)) { + accessCache[key] = 3 /* PROPS */; + return props[key]; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if (shouldCacheAccess) { + accessCache[key] = 0 /* OTHER */; + } + } + const publicGetter = publicPropertiesMap[key]; + let cssModule, globalProperties; + if (publicGetter) { + if (key === "$attrs") { + track(instance.attrs, "get", ""); + markAttrsAccessed(); + } else if (key === "$slots") { + track(instance, "get", key); + } + return publicGetter(instance); + } else if ( + // css module (injected by vue-loader) + (cssModule = type.__cssModules) && (cssModule = cssModule[key]) + ) { + return cssModule; + } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) { + accessCache[key] = 4 /* CONTEXT */; + return ctx[key]; + } else if ( + // global properties + globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key) + ) { + { + return globalProperties[key]; + } + } else if (currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading + // to infinite warning loop + key.indexOf("__v") !== 0)) { + if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) { + warn$1( + `Property ${JSON.stringify( + key + )} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.` + ); + } else if (instance === currentRenderingInstance) { + warn$1( + `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.` + ); + } + } + }, + set({ _: instance }, key, value) { + const { data, setupState, ctx } = instance; + if (hasSetupBinding(setupState, key)) { + setupState[key] = value; + return true; + } else if (setupState.__isScriptSetup && hasOwn(setupState, key)) { + warn$1(`Cannot mutate diff --git a/platform/frontend/login.html b/platform/frontend/login.html index bd479d1..98c5f02 100644 --- a/platform/frontend/login.html +++ b/platform/frontend/login.html @@ -4,176 +4,273 @@ 宇之然内容创作平台 - 登录 - - - - + - - - - - - - - - - - + .login-footer a { + color: #667eea; + text-decoration: none; + transition: color 0.2s; + } + .login-footer a:hover { + color: #764ba2; + } - - - - - - - - -
    全部 ({{ topics.length }}) - 待处理 ({{ countByStatus('待处理') }}) - 待审查 ({{ countByStatus('待审查') }}) - 待发布 ({{ countByStatus('待发布') }}) - 已发布 ({{ countByStatus('已发布') }}) + 待处理 ({{ countByStatus('pending') }}) + 待审查 ({{ countByStatus('review') }}) + 待发布 ({{ countByStatus('ready') }}) + 已发布 ({{ countByStatus('published') }})
    @@ -134,9 +134,9 @@ @@ -160,9 +160,9 @@
    预览 - 创作 - 审查 - 发布 + 创作 + 审查 + 发布 删除
    @@ -221,9 +221,9 @@ const TopicsApp = { console.log('获取选题失败,使用模拟数据'); this.$message.error('获取选题失败,使用模拟数据'); this.topics = [ - { id: 'A01', title: '可持续发展趋势分析', field: '环保', status: '待处理', compliance_score: 85, created_at: '2026-04-27 10:30', generated_at: null, published_at: null }, - { id: 'B02', title: 'AI 在内容创作中的应用', field: '科技', status: '待审查', compliance_score: 92, created_at: '2026-04-27 11:15', generated_at: '2026-04-27 11:45', published_at: null }, - { id: 'C03', title: '数字化转型案例研究', field: '商业', status: '待发布', compliance_score: 78, created_at: '2026-04-27 12:00', generated_at: '2026-04-27 12:30', published_at: '2026-04-27 13:00' } + { id: 'A01', title: '可持续发展趋势分析', field: '环保', status: 'pending', compliance_score: 85, created_at: '2026-04-27 10:30', generated_at: null, published_at: null }, + { id: 'B02', title: 'AI 在内容创作中的应用', field: '科技', status: 'review', compliance_score: 92, created_at: '2026-04-27 11:15', generated_at: '2026-04-27 11:45', published_at: null }, + { id: 'C03', title: '数字化转型案例研究', field: '商业', status: 'ready', compliance_score: 78, created_at: '2026-04-27 12:00', generated_at: '2026-04-27 12:30', published_at: '2026-04-27 13:00' } ]; this.loadingTable = false; } @@ -243,13 +243,13 @@ const TopicsApp = { }, openPreview(topic) { this.$message.info('预览:' + topic.title); }, async createTopic(topic) { - if (topic.status === '待处理') { + if (topic.status === 'pending') { this.$message.success('开始创作:' + topic.title); await this.fetchTopics(); } else { this.$message.info('仅待处理选题可创作'); } }, async optimizeTopic(topic) { - if (topic.status === '待审查') { + if (topic.status === 'review') { this.$message.success('开始优化:' + topic.title); await this.fetchTopics(); } else { this.$message.info('仅待审查选题可优化'); } @@ -271,7 +271,7 @@ const TopicsApp = { } catch (e) { return dateStr; } }, getStatusType(status) { - const map = { '待处理': 'warning', '待审查': 'danger', '待发布': 'success', '已发布': 'info' }; + const map = { 'pending': 'warning', 'review': 'danger', 'ready': 'success', 'published': 'info' }; return map[status] || 'primary'; } }, diff --git a/scripts/compliance_optimizer.py b/scripts/compliance_optimizer.py index c1dfaf1..cfb6572 100644 --- a/scripts/compliance_optimizer.py +++ b/scripts/compliance_optimizer.py @@ -14,7 +14,7 @@ from pathlib import Path from typing import Dict, List from dataclasses import dataclass, asdict -PROJECT_ROOT = Path('/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran') +PROJECT_ROOT = Path('/root/openclaw-workspace/projects/yu-zhi-ran') sys.path.insert(0, str(PROJECT_ROOT)) from scripts.compliance_checker import check_article diff --git a/scripts/creator.py b/scripts/creator.py index f074592..ab690bc 100755 --- a/scripts/creator.py +++ b/scripts/creator.py @@ -7,7 +7,7 @@ import json, datetime, logging, sys, subprocess from pathlib import Path from typing import Dict -PROJECT_ROOT = Path('/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran') +PROJECT_ROOT = Path('/root/openclaw-workspace/projects/yu-zhi-ran') sys.path.insert(0, str(PROJECT_ROOT)) DATA_DIR = PROJECT_ROOT / "automation" / "data" diff --git a/scripts/image_generator.py b/scripts/image_generator.py index 746e12e..e8f85d6 100644 --- a/scripts/image_generator.py +++ b/scripts/image_generator.py @@ -23,7 +23,7 @@ from PIL import Image, ImageDraw, ImageFont import random # 确保项目根目录在路径中 -PROJECT_ROOT = Path('/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran') +PROJECT_ROOT = Path('/root/openclaw-workspace/projects/yu-zhi-ran') sys.path.insert(0, str(PROJECT_ROOT)) # 加载配置 diff --git a/scripts/publisher.py b/scripts/publisher.py index 9d46f0c..e1ead14 100755 --- a/scripts/publisher.py +++ b/scripts/publisher.py @@ -10,7 +10,7 @@ from pathlib import Path from typing import Dict, List import argparse -PROJECT_ROOT = Path('/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran') +PROJECT_ROOT = Path('/root/openclaw-workspace/projects/yu-zhi-ran') sys.path.insert(0, str(PROJECT_ROOT)) DATA_DIR = PROJECT_ROOT / "automation" / "data" diff --git a/scripts/wecom_notifier.py b/scripts/wecom_notifier.py index dd62832..3a4ae81 100644 --- a/scripts/wecom_notifier.py +++ b/scripts/wecom_notifier.py @@ -96,7 +96,7 @@ class WeComNotifier: Args: message: 要发送的消息 account: OpenClaw账户ID(对应openclaw.json中的channels.wecom.accounts key) - 默认为None,自动根据项目选择:yzr-yxl项目用"yzr-yxl",main项目用"main" + 默认为None,自动根据项目选择:yu-zhi-ran项目用"yuzhiran",main项目用"main" """ try: import subprocess @@ -105,8 +105,8 @@ class WeComNotifier: if account is None: # 根据项目根目录推断账户(PROJECT_ROOT已定义) cwd = str(PROJECT_ROOT) - if 'yzr-yxl' in cwd: - account = "yzr-yxl" + if 'yu-zhi-ran' in cwd: + account = "yuzhiran" elif 'agent-lt' in cwd: account = "agent-lt" else: diff --git a/start-platform.sh b/start-platform.sh index e260def..7e411af 100755 --- a/start-platform.sh +++ b/start-platform.sh @@ -24,12 +24,11 @@ echo "" cd "$PLATFORM_DIR" # 检查虚拟环境 -if [ ! -f "backend/venv/bin/activate" ]; then - echo "⚠️ 虚拟环境不存在,使用系统 Python" - PYTHON_CMD="python3" +VENV_PYTHON="$PLATFORM_DIR/backend/venv/bin/python" +if [ -f "$VENV_PYTHON" ]; then + PYTHON_CMD="$VENV_PYTHON" else - source backend/venv/bin/activate - PYTHON_CMD="python" + PYTHON_CMD="python3" fi # 检查依赖 diff --git a/tests/test_full_pipeline.py b/tests/test_full_pipeline.py index eef676c..ac98fd7 100644 --- a/tests/test_full_pipeline.py +++ b/tests/test_full_pipeline.py @@ -4,7 +4,7 @@ import sys, subprocess, json from pathlib import Path -PROJECT_ROOT = Path('/root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran') +PROJECT_ROOT = Path('/root/openclaw-workspace/projects/yu-zhi-ran') sys.path.insert(0, str(PROJECT_ROOT)) def run(cmd): diff --git a/tests/test_pipeline.sh b/tests/test_pipeline.sh index 9f4529f..0f390dc 100755 --- a/tests/test_pipeline.sh +++ b/tests/test_pipeline.sh @@ -1,6 +1,6 @@ #!/bin/bash set -e -cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran +cd /root/openclaw-workspace/projects/yu-zhi-ran echo "=== 测试研究阶段 ===" python3 scripts/research.py --topic-id A05 diff --git a/tests/test_publisher.sh b/tests/test_publisher.sh index 83440f6..c1abe81 100755 --- a/tests/test_publisher.sh +++ b/tests/test_publisher.sh @@ -1,3 +1,3 @@ #!/bin/bash -cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran +cd /root/openclaw-workspace/projects/yu-zhi-ran python3 scripts/publisher.py --topic-id A01 \ No newline at end of file diff --git a/tests/test_runner.sh b/tests/test_runner.sh index 0252e60..19cc562 100755 --- a/tests/test_runner.sh +++ b/tests/test_runner.sh @@ -1,6 +1,6 @@ #!/bin/bash set -e -cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran +cd /root/openclaw-workspace/projects/yu-zhi-ran if [ "$1" == "publisher" ]; then echo "=== Testing publisher ===" python3 scripts/publisher.py diff --git a/tests/test_xhs_publish.sh b/tests/test_xhs_publish.sh index 4a780de..1f19437 100755 --- a/tests/test_xhs_publish.sh +++ b/tests/test_xhs_publish.sh @@ -1,6 +1,6 @@ #!/bin/bash set -e -cd /root/.openclaw/workspaces/yzr-yxl/projects/yu-zhi-ran +cd /root/openclaw-workspace/projects/yu-zhi-ran echo "=== 测试小红书真实发布(A01)===" node /root/.openclaw/workspaces/agent-lt/scripts/xhs-article-publisher.js \